version <2 is only a RPN parser
----------------------------
revision :2.80 Fri Sep 6 11:53:29 CEST 2013
RPN.pm
Prevent crash when variable not defined in PERLVAR
t/11Perl.t
and test for var not defined
test returning a hash multikey are most of the time in different order, removing multikey test
RPN.pl
Use persistent history ( and add flag and command to set another histoty file )
----------------------------
revision : 2.79 Wed Sep 4 14:09:21 CEST 2013
fix PERLVAR for simple scalar
add $scal test variable in RPN.pl
----------------------------
revision : 2.78 Mon Sep 2 12:24:01 2013 +0200
update test with TZ set tp EST to allow make test succeed anywhere
----------------------------
revision : 2.77 Sun Sep 1 18:23:05 2013 +0200
Parse::RPN
MOD >> << : Swap arguments
REMAIN and REV: remove processed argument
PI : better value for COS
MINX MAXX SLSLICE N!= UNSET FORGOT UNLINK CHOMP : new words
MIN MAX SUM STATS : in section arithmetic
>< >=< UNPACK !!!CA ; : typo on pod
TRUE and FALSE : check if argument numeric and prevent warning
All SLxxx and OIDSEARCHxxx words : correct code to allow structurated string without leading #
EQ : correct return value for DICT
Better test ( by type of operator )
FIND FINDK fix initial index ( no more warning )
VARIABLE only set variable if variable name defined
; ( word creation ) create private dict and prevent overwriting of native dict
fix warning if IF (variable not numeric if uninitialized)
LOOP add _T_ variable
+LOOP fix error in code + simplification for _T_
PERL push STDOUT on stack
TELL fix for unbuffered IO
WRITELINE in correct order
remove spurious warning in HGTIME
fix SLGREP and SLGREPI ending space in SL result
RPN.pl
add argument -I to put a full path to RPM.pm.
In shell mode auto reload of RPN.pm.
Add command \c r to force a reload of RPN.pm ( reset all provate dict and vars )
----------------------------
revision : 2.76
Date: Thu Jul 18 11:27:05 2013 +0200
Add SLITEM
----------------------------
revision : 2. 75
Date: Wed May 22 18:53:55 2013 +0200
funct rpn_separator_out and rpn_separator_in return current value
----------------------------
revision : 2.74
Date: Tue May 14 11:22:08 2013 +0200
use recursion to create SL list from PERLVAR
Allow PERLVAR to be inside LOOP or IF
----------------------------
revision : 2.73
Date: Fri May 10 17:49:54 2013 +0200
Replace PERLUNARY by PERLFUNC1
Add PERLFUNCX
Add PERLVAR
----------------------------
revision : 2.72
Date: Tue May 7 09:09:08 2013 +0200
Add PERLUNARY
Clean PERLFUNC
----------------------------
revision : 2.71
Date: Mon May 6 11:18:06 2013 +0200
Replace rpn_separator by rpn_sseparator_out
Add rpn_separator_in
----------------------------
revision : 2.70
Date: Fri May 3 12:09:43 2013 +0200
Add SLGREP, SLGREPI , SLSEARCHALL and SLSEARCHALLI
----------------------------
revision : 2.69
Date: Mon Apr 15 14:00:00 2013 +0200
Add SLSEARCHALLKEYS and SLSEARCHALLKEYSI
Some typo in doc
----------------------------
revision : 2.68
Date: Tue Apr 9 12:47:45 2013 +0200
add NXOR
----------------------------
revision : 2.67
Date: Sun Mar 17 17:37:09 2013 +0100
add >< and >=< operator
----------------------------
revision : 2.66
Date: Mon Feb 6 13:37:00 2012 +0100
add case insensitive OIDSEARCHALLVALI and OIDSEARCHLEAFI ( the latest one is not very useful )
----------------------------
revision : 2.65
Date: Thu Jan 19 13:46:21 2012 +0100
add relational operator staring with N to test th efirst element as numeric
----------------------------
revision : 2.64
Date: Mon Nov 28 14:39:56 2011 +0100
add OIDSEARCHALLVAL and OIDSEARCHALLVAL
----------------------------
revision : 2.63
Date: Thu Apr 14 12:08:06 2011 +0200
add KEEPV and KEEPVV
----------------------------
revision : 2.62
Date: Thu Jan 27 19:04:22 2011 +0100
typo error
----------------------------
revision : 2.61
Date: Thu Jan 27 18:25:09 2011 +0100
fix IF THEN ELSE ( specifically ELSE )
----------------------------
revision : 2.60
Date: Wed Jan 26 16:14:04 2011 +0100
fix OPEN ( mode )
WRITELINE and WRITE (remove value from the stack)
----------------------------
revision : 2.59
Date: Wed Dec 1 13:26:49 2010 +0100
add POPV, SHIFTV and IND
----------------------------
revision : 2.58
Date: Wed Dec 1 11:34:50 2010 +0100
add SEARCHA and SEARCHI
----------------------------
revision : 2.57
Date: Thu Oct 21 15:32:18 2010 +0200
add SPLIT2
correct LOOKUP and LOOKUPOP ( switch parameter order )
----------------------------
revision : 2.56
Date: Tue Oct 19 15:01:54 2010 +0200
add SIZE
correct variable append code
----------------------------
revision : 2.55
Date: Mon Oct 11 14:10:46 2010 +0200
add HTTP::Date in Makefile.pl
----------------------------
revision : 2.54
Date: Fri Oct 1 15:33:53 2010 +0200
add FILE IO
correct ROLL with negative value ( remove undef extra value )
typo in doc
----------------------------
revision : 2.53
Date: Thu Sep 30 13:47:01 2010 +0200
add all append to variable primitives ( !A, !!A, !!!A, !!CA, !!!CA )
----------------------------
revision : 2.52
Date: Thu Apr 29 18:15:46 2010 +0200
add KEEPR and KEEPRN
fix the offset of PUT
change ROLL to allow reverse ROLL when value is negative
fix ROLL when value are = 0
----------------------------
revision : 2.51
date : 2010/04/27 08:37:09
UNORM and UNORM2 allow entry in the form 249.12 G
some digit, zero or one dot followed by some digit, some space , and a letter as suffix)
----------------------------
revision : 2.50
date : 2010/04/26 14:57:46
add UNORM and UNORM2
----------------------------
revision : 2.49
date : 2010/04/23 14:08:13
if the only data on the stack is 0, return 0 and not an empty value
----------------------------
revision : 2.48
date : 2010/04/09 14:24:19
add HTTPTIME
correct TICK function ( don't remove first elem of the stack )
----------------------------
revision : 2.47
date : 2009/04/30 18:24:12
add SUM and STATS
----------------------------
revision : 2.46
date : 2009/04/08 11:32:54
bug fix : reverse order for >, >= and < <=
----------------------------
revision : 2.45
date : 2009/03/16 10:37:23
typo error in STR2DDEC
----------------------------
revision : 2.44
date : 2009/03/13 18:14:17
add OCTSTR2HEX, OCTSTR2HEX, DDEC2STR and STR2DDEC
----------------------------
revision : 2.43
date : 2008/11/07 08:53:12
add LOOKUPP and LOOKUPOPP
IF THEN and OF THEN ELSE become reentrant
----------------------------
revision : 2.42
date : 2008/8/18 13:22:38
add LOOKUP and LOOKUPOP
fix !! and !!C parameter
----------------------------
revision : 2.41
date : 2008/4/15 15:41:38
add SEARCHK and SEARCHKI
----------------------------
revision : 2.39
date : 2008/4/4 11:44:23
correct !!! operators
----------------------------
revision : 2.38
date : 2007/9/25 16:12:30
add ISNUM ISNUMD ISINT ISINTD ISHEX ISHEXD
----------------------------
revision : 2.37
date : 2007/8/8 16:01:37
correct IF ELSE THEN to follow the IF THEN code
----------------------------
revision : 2.36
date : 2007/8/8 11:01:53
remove extra value on the return stack in IF THEN
----------------------------
revision : 2.35
date : 2007/8/8 10:48:11
correct the IF THEN
----------------------------
revision : 2.34
date : 2007/6/7 9:29:40
correct the return from dict (retrun always 3 values)
----------------------------
revision : 2.33
date : 2006/8/23 11:29:40
add CATALL
----------------------------
revision : 2.32
date : 2006/3/16 16:2:41
add KEEPN, COPY, !!, !!C, !!!, !!!C
change in PRESERVE INC, DEC, @
----------------------------
revision : 2.31
date : 2006/3/16 12:11:22
correct +LOOP code
----------------------------
revision : 2.30
date : 2006/3/16 9:41:0
don't execute code in definition when creating new WORD
correct code for WHILE
----------------------------
revision : 2.29
date : 2006/3/13 15:27:25
add PRESERVE
correct DEL and PRESERVE when length to delete is greater then stack
----------------------------
revision : 2.28
date : 2006/3/13 14:33:55
now xxx,0,KEEP clear the stack
----------------------------
revision : 2.27
date : 2006/3/13 14:24:9
add SEARCH and SEARCHI
----------------------------
revision : 2.26
date : 2006/1/16 15:16:56
the previous PERL for call of a perl function become PERLFUNC
PERL become the inline perl code use
----------------------------
revision : 2.25
date : 2006/1/12 13:0:30
add OCT operator
correct SPATx operators to allow replacement by capturing parentheses
----------------------------
revision : 2.24
date : 2006/1/6 10:33:2
add a function to modify the separator of the result
----------------------------
revision : 2.23
date : 2006/1/6 9:6:31
add the KEEP function
----------------------------
revision 2.19
date: 2005-10-05 13:53:57 +0000;
create name space for PERL function
----------------------------
revision 2.18
date: 2005-10-03 06:58:08 +0000;
possibility to call PERL function
----------------------------
revision 2.17
date: 2005-07-20 06:56:17 +0000;
correct the SUB creation (don't execute stack when store function)
----------------------------
revision 2.16
date: 2005-06-29 09:15:33 +0000;
return '' in case of LN(0)
----------------------------
revision 2.15
date: 2005-06-29 09:06:40 +0000;
retrun '' in case of division by null
----------------------------
revision 2.14
date: 2005-04-21 10:51:45 +0000;
in IF remove the value on top of the stack before executing the IF code
----------------------------
revision 2.13
date: 2005-04-21 08:14:49 +0000;
add logical operators
----------------------------
revision 2.12
date: 2005-04-20 13:36:41 +0000;
correct all the loop algo
----------------------------
revision 2.11
date: 2005-04-19 14:31:39 +0000;
error in TIF (no stack )
----------------------------
revision 2.10
date: 2005-04-17 14:27:03 +0000;
remove the leading empty string when SPLIT and SPLITI matche the beginning of the string
----------------------------
revision 2.9
date: 2005-04-17 13:44:59 +0000;
correct code for IF (use top of stack and not end)
----------------------------
revision 2.8
date: 2004-11-28 17:44:03 +0000;
replace \1 by $1 to prevent warning in substitution
----------------------------
revision 2.7
date: 2004-10-12 10:11:27 +0000;
clean up code
----------------------------
revision 2.6
date: 2004-10-12 10:09:00 +0000;
clean up code
----------------------------
revision 2.5
date: 2004-10-01 06:58:49 +0000;
add SPLIT, SPLITI, PATI, TPATI
----------------------------
revision 2.4
date: 2004-09-30 15:38:51 +0000;
correct PAT return and LCFIRST return
----------------------------
revision 2.3
date: 2004-08-29 17:43:08 +0000;
test if string in VAR or DICT
----------------------------
revision 2.02
date: 2004-08-29 16:48:17 +0000;
better use of STRING (when space before and after)
----------------------------
revision 2.01
date: 2004-08-29 11:56:06 +0000;
transfert NRPM to RPM
----------------------------
revision 2.00
date: 2004-08-29 10:02:59 +0000;
transfert NRPM to RPM
----------------------------
revision 1.24
date: 2004-08-06 10:40:56 +0000;
add DEL
----------------------------
revision 1.23
date: 2004-08-06 10:19:19 +0000;
correct license text
----------------------------
revision 1.22
date: 2004-08-06 08:41:47 +0000;
POPN, PI added
----------------------------
revision 1.21
date: 2004-08-06 07:30:56 +0000;
use the same loop in PRINTF to allow any number of field in format
----------------------------
revision 1.20
date: 2004-08-06 07:12:31 +0000;
correct REGEX in PACK to allow only 1 letter as format
----------------------------
revision 1.19
date: 2004-08-05 19:03:37 +0000;
correct PACK command to allow any number of param
----------------------------
revision 1.18
date: 2004-08-05 15:59:12 +0000;
use PACK and check number of variable in format
----------------------------
revision 1.17
date: 2004-08-05 14:25:59 +0000;
add PRINTF to convert value to
----------------------------
revision 1.16
date: 2004-08-05 13:18:23 +0000;
add synomin of +- to NEG
----------------------------
revision 1.15
date: 2004-08-05 13:11:23 +0000;
add +- function to negate a numerical value
----------------------------
revision 1.14
date: 2004-04-27 15:02:11 +0000;
swap RROT and ROT
----------------------------
revision 1.13
date: 2004-04-27 14:52:55 +0000;
add function RROT, SWAP2, REVERSE, ROT3
----------------------------
revision 1.12
date: 2003-10-20 10:05:14 +0000;
correct typo error in POD for TPAT
----------------------------
revision 1.11
date: 2003-10-20 09:56:25 +0000;
add TPAT
----------------------------
revision 1.10
date: 2003-10-20 09:49:55 +0000;
TPAT return 0 if not pattern found
----------------------------
revision 1.9
date: 2003-10-20 09:42:27 +0000;
add TPAT (test pattern)
----------------------------
revision 1.8
date: 2003-10-20 09:16:12 +0000;
add SWAT alias EXCH to keep compatibility with Math::RPN
----------------------------
revision 1.7
date: 2003-10-20 08:20:10 +0000;
correct VERSION number for MakeMaker again
----------------------------
revision 1.6
date: 2003-10-20 08:15:32 +0000;
correct VERSION number for MakeMaker
----------------------------
revision 1.5
date: 2003-10-19 20:03:20 +0000;
correct typo in POD
----------------------------
revision 1.4
date: 2003-10-19 19:59:53 +0000;
correct typo in POD
----------------------------
revision 1.3
date: 2003-10-19 19:59:23 +0000;
correct typo in POD
----------------------------
revision 1.2
date: 2003-10-19 19:57:41 +0000;
Clean code and add POD doc
----------------------------
revision 1.1
date: 2003-10-19 19:50:20 +0000;
branches: 1.1.1;
Initial revision
----------------------------
revision 1.1.1.2
date: 2004-08-29 11:54:26 +0000;
no message
----------------------------
revision 1.1.1.1
date: 2003-10-19 19:50:20 +0000;
RPN parser with STRING functions
=============================================================================