2006-03-23 14:50 UTC+0100 Ryszard Glab <rglab//imid.med.pl>
* source/pp/ppcore.c
* fixed preprocessor to preserve spaces the same way (almost)
as Clipper
* tests/pretest.prg
* added more tests to check preprocessor
This commit is contained in:
@@ -8,6 +8,15 @@
|
||||
2002-12-01 13:30 UTC+0100 Foo Bar <foo.bar@foobar.org>
|
||||
*/
|
||||
* source/pp/ppcore.c
|
||||
|
||||
* harbour/source/rdd/dbf1.c
|
||||
* set Operation in error object to field name in field{put,get} methods.
|
||||
+ added DBI_LOCKOFFSET
|
||||
|
||||
* harbour/source/vm/classes.c
|
||||
* formatting
|
||||
|
||||
* harbour/source/vm/hvm.c
|
||||
* harbour/source/vm/itemapi.c
|
||||
* some minor speed optimizations
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,8 @@
|
||||
#command TEXT TO VAR <v> => #pragma __stream|%s||<v>:=
|
||||
#command CTEXT TO VAR <v> => #pragma __cstream|%s||<v>:=
|
||||
|
||||
/* Testing match markers */
|
||||
|
||||
PROCEDURE MAIN()
|
||||
LOCAL in, out, pre
|
||||
LOCAL nCnt:=0
|
||||
@@ -8,14 +10,16 @@ LOCAL nRes:=0
|
||||
|
||||
__PP_INIT()
|
||||
|
||||
|
||||
/* ---------------------------------------------------------------------*/
|
||||
|
||||
in := "#xtranslate CCC <v> => QOUT( <v>[2] [, <v>[<v>][3]] )"+HB_OSNewLine()+;
|
||||
"CCC b"
|
||||
pre := "QOUT(b[2] ,bb[3] )"
|
||||
nRes += PreResult( pre, PreRun( in, pre ), @nCnt )
|
||||
nRes += PreResult( pre, PreRun( in, pre ), @nCnt )
|
||||
/*------------*/
|
||||
in := "#xtranslate AAA [A <a> [B <b>] ] => Qout([ <a> ][, <b>] )"
|
||||
in := "#xtranslate AAA [A <a> [B <b>] ] => Qout([<a>][, <b>])"
|
||||
__PreProcess( in )
|
||||
/*------------*/
|
||||
in:= "AAA"
|
||||
@@ -47,7 +51,7 @@ ENDTEXT
|
||||
nRes += PreResult( pre, PreRun( in, pre ), @nCnt )
|
||||
|
||||
/*------------*/
|
||||
in :="#command ZZZ [<v>] => QOUT( [ <v>[1] ] )"
|
||||
in :="#command ZZZ [<v>] => QOUT([<v>[1]])"
|
||||
__PreProcess( in )
|
||||
in :="ZZZ a"
|
||||
pre :="QOUT(a[1] )"
|
||||
@@ -73,11 +77,11 @@ ENDTEXT
|
||||
|
||||
/*------------*/
|
||||
CTEXT TO VAR in
|
||||
#define clas( x ) ( x )\n
|
||||
#xtranslate ( <!name!>{ [<p,...>] } => (<name>():New( <p> )\n
|
||||
a :=clas( TEST{ 1, 2,3} )
|
||||
#define clas( x ) (x)\n
|
||||
#xtranslate ( <!name!>{ [<p,...>] } => (<name>():New(<p>)\n
|
||||
a :=clas( TEST{ 1,2,3} )
|
||||
ENDTEXT
|
||||
pre := "a :=(TEST():New(1,2,3 ) )"
|
||||
pre := "a :=(TEST():New(1,2,3) )"
|
||||
nRes += PreResult( pre, PreRun( in, pre ), @nCnt )
|
||||
|
||||
/*------------*/
|
||||
@@ -93,7 +97,281 @@ ENDTEXT
|
||||
nRes += PreResult( pre, PreRun( in, pre ), @nCnt )
|
||||
|
||||
/*------------*/
|
||||
//REGULAR
|
||||
in := "#command _REGULAR_(<z>) => rm( <z> )"
|
||||
__PreProcess( in )
|
||||
|
||||
in := "_REGULAR_(a)"
|
||||
pre :="rm(a )"
|
||||
nRes += PreResult( pre, PreRun( in, pre ), @nCnt )
|
||||
|
||||
in := '_REGULAR_("a")'
|
||||
pre :='rm("a" )'
|
||||
nRes += PreResult( pre, PreRun( in, pre ), @nCnt )
|
||||
|
||||
in := "_REGULAR_('a')"
|
||||
pre :='rm("a" )'
|
||||
nRes += PreResult( pre, PreRun( in, pre ), @nCnt )
|
||||
|
||||
CTEXT TO VAR in
|
||||
_REGULAR_(["'a'"])
|
||||
ENDTEXT
|
||||
CTEXT TO VAR pre
|
||||
rm(["'a'"] )
|
||||
ENDTEXT
|
||||
nRes += PreResult( pre, PreRun( in, pre ), @nCnt )
|
||||
|
||||
in := "_REGULAR_(&a.1)"
|
||||
pre :="rm(&a.1 )"
|
||||
nRes += PreResult( pre, PreRun( in, pre ), @nCnt )
|
||||
|
||||
in := "_REGULAR_(&a)"
|
||||
pre :="rm(&a )"
|
||||
nRes += PreResult( pre, PreRun( in, pre ), @nCnt )
|
||||
|
||||
in := "_REGULAR_(&a.)"
|
||||
pre :="rm(&a. )"
|
||||
nRes += PreResult( pre, PreRun( in, pre ), @nCnt )
|
||||
|
||||
in := "_REGULAR_(&(a))"
|
||||
pre :="rm(&(a) )"
|
||||
nRes += PreResult( pre, PreRun( in, pre ), @nCnt )
|
||||
|
||||
in := "_REGULAR_(&a[1])"
|
||||
pre :="rm(&a[1] )"
|
||||
nRes += PreResult( pre, PreRun( in, pre ), @nCnt )
|
||||
|
||||
in := "_REGULAR_(a[1])"
|
||||
pre :="rm(a[1] )"
|
||||
nRes += PreResult( pre, PreRun( in, pre ), @nCnt )
|
||||
|
||||
CTEXT TO VAR in
|
||||
_REGULAR_("['']")
|
||||
ENDTEXT
|
||||
CTEXT TO VAR pre
|
||||
rm("['']" )
|
||||
ENDTEXT
|
||||
nRes += PreResult( pre, PreRun( in, pre ), @nCnt )
|
||||
|
||||
|
||||
//NORMAL
|
||||
in := '#command _NORMAL_M(<z>) => nm( <"z"> )'
|
||||
__PreProcess( in )
|
||||
|
||||
in := "_NORMAL_M(a)"
|
||||
pre :='nm("a" )'
|
||||
nRes += PreResult( pre, PreRun( in, pre ), @nCnt )
|
||||
|
||||
in := '_NORMAL_M("a")'
|
||||
pre :=[nm('"a"' )]
|
||||
nRes += PreResult( pre, PreRun( in, pre ), @nCnt )
|
||||
|
||||
in := "_NORMAL_M('a')"
|
||||
pre :=[nm('"a"' )]
|
||||
nRes += PreResult( pre, PreRun( in, pre ), @nCnt )
|
||||
|
||||
CTEXT TO VAR in
|
||||
_NORMAL_M(["'a'"])
|
||||
ENDTEXT
|
||||
CTEXT TO VAR pre
|
||||
nm([["'a'"]] )
|
||||
ENDTEXT
|
||||
nRes += PreResult( pre, PreRun( in, pre ), @nCnt )
|
||||
|
||||
in := "_NORMAL_M(&a.1)"
|
||||
pre :='nm("&a.1" )'
|
||||
nRes += PreResult( pre, PreRun( in, pre ), @nCnt )
|
||||
|
||||
in := "_NORMAL_M(&a)"
|
||||
pre :="nm(a )"
|
||||
nRes += PreResult( pre, PreRun( in, pre ), @nCnt )
|
||||
|
||||
in := "_NORMAL_M(&a.)"
|
||||
pre :="nm(a )"
|
||||
nRes += PreResult( pre, PreRun( in, pre ), @nCnt )
|
||||
|
||||
in := "_NORMAL_M(&(a))"
|
||||
pre :="nm((a) )"
|
||||
nRes += PreResult( pre, PreRun( in, pre ), @nCnt )
|
||||
|
||||
in := "_NORMAL_M(&a[1])"
|
||||
pre :='nm("&a[1]" )'
|
||||
nRes += PreResult( pre, PreRun( in, pre ), @nCnt )
|
||||
|
||||
in := "_NORMAL_M(a[1])"
|
||||
pre :='nm("a[1]" )'
|
||||
nRes += PreResult( pre, PreRun( in, pre ), @nCnt )
|
||||
|
||||
CTEXT TO VAR in
|
||||
_NORMAL_M("['']")
|
||||
ENDTEXT
|
||||
CTEXT TO VAR pre
|
||||
nm(["['']"] )
|
||||
ENDTEXT
|
||||
nRes += PreResult( pre, PreRun( in, pre ), @nCnt )
|
||||
|
||||
|
||||
//SMART
|
||||
in := '#command _SMART_M(<z>) => sm( <(z)> )'
|
||||
__PreProcess( in )
|
||||
|
||||
in := "_SMART_M(a)"
|
||||
pre :='sm("a" )'
|
||||
nRes += PreResult( pre, PreRun( in, pre ), @nCnt )
|
||||
|
||||
in := '_SMART_M("a")'
|
||||
pre :='sm("a" )'
|
||||
nRes += PreResult( pre, PreRun( in, pre ), @nCnt )
|
||||
|
||||
in := "_SMART_M('a')"
|
||||
pre :='sm("a" )'
|
||||
nRes += PreResult( pre, PreRun( in, pre ), @nCnt )
|
||||
|
||||
CTEXT TO VAR in
|
||||
_SMART_M(["'a'"])
|
||||
ENDTEXT
|
||||
CTEXT TO VAR pre
|
||||
sm(["'a'"] )
|
||||
ENDTEXT
|
||||
nRes += PreResult( pre, PreRun( in, pre ), @nCnt )
|
||||
|
||||
in := "_SMART_M(&a.1)"
|
||||
pre :='sm("&a.1" )'
|
||||
nRes += PreResult( pre, PreRun( in, pre ), @nCnt )
|
||||
|
||||
in := "_SMART_M(&a)"
|
||||
pre :='sm(a )'
|
||||
nRes += PreResult( pre, PreRun( in, pre ), @nCnt )
|
||||
|
||||
in := "_SMART_M(&a.)"
|
||||
pre :='sm(a )'
|
||||
nRes += PreResult( pre, PreRun( in, pre ), @nCnt )
|
||||
|
||||
in := "_SMART_M(&(a))"
|
||||
pre :='sm((a) )'
|
||||
nRes += PreResult( pre, PreRun( in, pre ), @nCnt )
|
||||
|
||||
in := "_SMART_M(&a[1])"
|
||||
pre :='sm("&a[1]" )'
|
||||
nRes += PreResult( pre, PreRun( in, pre ), @nCnt )
|
||||
|
||||
in := "_SMART_M(a[1])"
|
||||
pre :='sm("a[1]" )'
|
||||
nRes += PreResult( pre, PreRun( in, pre ), @nCnt )
|
||||
|
||||
CTEXT TO VAR in
|
||||
_SMART_M("['']")
|
||||
ENDTEXT
|
||||
CTEXT TO VAR pre
|
||||
sm("['']" )
|
||||
ENDTEXT
|
||||
nRes += PreResult( pre, PreRun( in, pre ), @nCnt )
|
||||
|
||||
|
||||
|
||||
//DUMB
|
||||
in := '#command _DUMB_M(<z>) => dm( #<z> )'
|
||||
__PreProcess( in )
|
||||
|
||||
in := "_DUMB_M(a)"
|
||||
pre :='dm("a" )'
|
||||
nRes += PreResult( pre, PreRun( in, pre ), @nCnt )
|
||||
|
||||
in := '_DUMB_M("a")'
|
||||
pre :=[dm('"a"' )]
|
||||
nRes += PreResult( pre, PreRun( in, pre ), @nCnt )
|
||||
|
||||
in := "_DUMB_M('a')"
|
||||
pre :=[dm('"a"' )]
|
||||
nRes += PreResult( pre, PreRun( in, pre ), @nCnt )
|
||||
|
||||
CTEXT TO VAR in
|
||||
_DUMB_M(["'a'"])
|
||||
ENDTEXT
|
||||
CTEXT TO VAR pre
|
||||
dm([["'a'"]] )
|
||||
ENDTEXT
|
||||
nRes += PreResult( pre, PreRun( in, pre ), @nCnt )
|
||||
|
||||
in := "_DUMB_M(&a.1)"
|
||||
pre :='dm("&a.1" )'
|
||||
nRes += PreResult( pre, PreRun( in, pre ), @nCnt )
|
||||
|
||||
in := "_DUMB_M(&a)"
|
||||
pre :='dm("&a" )'
|
||||
nRes += PreResult( pre, PreRun( in, pre ), @nCnt )
|
||||
|
||||
in := "_DUMB_M(&a.)"
|
||||
pre :='dm("&a." )'
|
||||
nRes += PreResult( pre, PreRun( in, pre ), @nCnt )
|
||||
|
||||
in := "_DUMB_M(&(a))"
|
||||
pre :='dm("&(a)" )'
|
||||
nRes += PreResult( pre, PreRun( in, pre ), @nCnt )
|
||||
|
||||
in := "_DUMB_M(&a[1])"
|
||||
pre :='dm("&a[1]" )'
|
||||
nRes += PreResult( pre, PreRun( in, pre ), @nCnt )
|
||||
|
||||
in := "_DUMB_M(a[1])"
|
||||
pre :='dm("a[1]" )'
|
||||
nRes += PreResult( pre, PreRun( in, pre ), @nCnt )
|
||||
|
||||
CTEXT TO VAR in
|
||||
_DUMB_M("['']")
|
||||
ENDTEXT
|
||||
CTEXT TO VAR pre
|
||||
dm(["['']"] )
|
||||
ENDTEXT
|
||||
nRes += PreResult( pre, PreRun( in, pre ), @nCnt )
|
||||
|
||||
|
||||
// REGULAR list
|
||||
CTEXT TO VAR in
|
||||
#command _REGULAR_L(<z,...>) => rl( <z> )\n
|
||||
_REGULAR_L(a,"a",'a',["'a'"],"['a']",'["a"]',&a.1,&a,&a.,&a. ,&(a),&a[1],&a.[1],&a. [2],&a&a, &a.a, a, a)
|
||||
ENDTEXT
|
||||
CTEXT TO VAR pre
|
||||
rl(a,"a","a",["'a'"],"['a']",'["a"]',&a.1,&a,&a.,&a. ,&(a),&a[1],&a.[1],&a. [2],&a&a, &a.a, a, a )
|
||||
ENDTEXT
|
||||
nRes += PreResult( pre, PreRun( in, pre ), @nCnt )
|
||||
|
||||
// NORMAL list
|
||||
CTEXT TO VAR in
|
||||
#command _NORMAL_L(<z,...>) => nl( <"z"> )\n
|
||||
_NORMAL_L(n,"n",'a',["'a'"],"['a']",'["a"]',&a.1,&a,&a.,&a. ,&(a),&a[1],&a.[1],&a. [2],&a&a, &.a, &a.a, a, a)
|
||||
ENDTEXT
|
||||
CTEXT TO VAR pre
|
||||
nl("n",'"n"','"a"',[["'a'"]],["['a']"],['["a"]'],"&a.1",a,a,a,(a),"&a[1]","&a.[1]",a,"&a&a","&.a","&a.a","a","a" )
|
||||
ENDTEXT
|
||||
nRes += PreResult( pre, PreRun( in, pre ), @nCnt )
|
||||
|
||||
// SMART list
|
||||
CTEXT TO VAR in
|
||||
#command _SMART_L(<z,...>) => sl( <(z)> )\n
|
||||
_SMART_L(a,"a",'a',["'a'"],"['a']",'["a"]',&a.1,&a,&a.,&a. ,&(a),&a[1],&a.[1],&a. [2],&a&a, &.a, &a.a, a, a)
|
||||
ENDTEXT
|
||||
CTEXT TO VAR pre
|
||||
sl("a","a","a",["'a'"],"['a']",'["a"]',"&a.1",a,a,a,(a),"&a[1]","&a.[1]",a,"&a&a","&.a","&a.a","a","a" )
|
||||
ENDTEXT
|
||||
nRes += PreResult( pre, PreRun( in, pre ), @nCnt )
|
||||
|
||||
// DUMB list
|
||||
CTEXT TO VAR in
|
||||
#command _DUMB_L(<z,...>) => dl( #<z> )\n
|
||||
_DUMB_L(a,"a",'a',["'a'"],"['a']",'["a"]',&a.1,&a,&a.,&a. ,&(a),&a[1],&a.[1],&a. [2],&a&a, &.a, &a.a, a, a)
|
||||
ENDTEXT
|
||||
CTEXT TO VAR pre
|
||||
dl([a,"a","a",["'a'"],"['a']",'["a"]',&a.1,&a,&a.,&a. ,&(a),&a[1],&a.[1],&a. [2],&a&a, &.a, &a.a, a, a] )
|
||||
ENDTEXT
|
||||
nRes += PreResult( pre, PreRun( in, pre ), @nCnt )
|
||||
|
||||
in := "
|
||||
index on LEFT( f1 , 10 ) to _tst"
|
||||
CTEXT TO VAR pre
|
||||
dbCreateIndex( "_tst", "LEFT( f1 , 10 )", {||LEFT( f1 , 10 )}, if( .F., .t., NIL ) )
|
||||
ENDTEXT
|
||||
nRes += PreResult( pre, PreRun( in, pre ), @nCnt )
|
||||
|
||||
|
||||
|
||||
@@ -137,7 +415,7 @@ FUNCTION PreResult( pre, out, pCnt )
|
||||
ELSE
|
||||
? pre
|
||||
? out
|
||||
? " => FAILED"
|
||||
? " => FAILED in LINE: ", PROCLINE(1)
|
||||
ENDIF
|
||||
|
||||
RETURN 0
|
||||
Reference in New Issue
Block a user