From 41405ddc55cea80d552f50e2c8e7370269358cb3 Mon Sep 17 00:00:00 2001 From: Ron Pinkas Date: Fri, 23 Feb 2001 16:32:35 +0000 Subject: [PATCH] 2001-02-23 08:25 UTC-0800 Ron Pinkas * contrib/dot/pp.prg + Added support for DO <>.prg * contrib/dot/rp_dot.ch + Added #command DO <>.prg (no support for WITH yet) --- harbour/ChangeLog | 7 +++++++ harbour/contrib/dot/pp.prg | 35 ++++++++++++++++++++++++++--------- harbour/contrib/dot/rp_dot.ch | 2 ++ 3 files changed, 35 insertions(+), 9 deletions(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index f5152a6b17..584e55f149 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -1,3 +1,10 @@ +2001-02-23 08:25 UTC-0800 Ron Pinkas + * contrib/dot/pp.prg + + Added support for DO <>.prg + + * contrib/dot/rp_dot.ch + + Added #command DO <>.prg (no support for WITH yet) + 2001-02-22 22:25 UTC-0800 Ron Pinkas * contrib/dot/pp.prg + Started support for interpreting prg files. diff --git a/harbour/contrib/dot/pp.prg b/harbour/contrib/dot/pp.prg index 52fd4bba0b..a76567d85c 100644 --- a/harbour/contrib/dot/pp.prg +++ b/harbour/contrib/dot/pp.prg @@ -378,6 +378,14 @@ RETURN //--------------------------------------------------------------// +PROCEDURE PP_SetRun( bOn ) + + bRun := bOn + +RETURN + +//--------------------------------------------------------------// + PROCEDURE RP_Dot_Err() Alert( "Sorry, could not execute last request." ) @@ -2255,20 +2263,29 @@ FUNCTION NextToken( sLine, bCheckRules ) sReturn := Left( sLine, Counter - 1 ) EXIT - ELSEIF cChar == '.' .AND. Upper( SubStr( sLine, Counter + 1, 4 ) ) == 'AND.' + ELSEIF cChar == '.' - sReturn := Left( sLine, Counter - 1 ) - EXIT + IF Upper( SubStr( sLine, Counter + 1, 4 ) ) == 'AND.' - ELSEIF cChar == '.' .AND. Upper( SubStr( sLine, Counter + 1, 3 ) ) == 'OR.' + sReturn := Left( sLine, Counter - 1 ) + EXIT - sReturn := Left( sLine, Counter - 1 ) - EXIT + ELSEIF Upper( SubStr( sLine, Counter + 1, 3 ) ) == 'OR.' - ELSEIF cChar == '.' .AND. Upper( SubStr( sLine, Counter + 1, 4 ) ) == 'NOT.' + sReturn := Left( sLine, Counter - 1 ) + EXIT - sReturn := Left( sLine, Counter - 1 ) - EXIT + ELSEIF Upper( SubStr( sLine, Counter + 1, 4 ) ) == 'NOT.' + + sReturn := Left( sLine, Counter - 1 ) + EXIT + + ELSEIF IsAlpha( Left( sLine, 1 ) ) .AND. ! ( '&' $ Left( sLine, Counter ) ) + + sReturn := Left( sLine, Counter - 1 ) + EXIT + + ENDIF ELSEIF cChar == ' '// .OR. cChar == Chr(9) // Tabs converted to spaces diff --git a/harbour/contrib/dot/rp_dot.ch b/harbour/contrib/dot/rp_dot.ch index 428c25cb4d..b60c002832 100644 --- a/harbour/contrib/dot/rp_dot.ch +++ b/harbour/contrib/dot/rp_dot.ch @@ -22,3 +22,5 @@ #COMMAND CASE => __SetCase( ) #COMMAND OTHERWISE => __SetOtherwise() #COMMAND ENDCASE [<*x*>] => __SetEndCase() + +#COMMAND DO .prg => PP_SetRun(.T.); ProcessFile( # + ".prg" ); PP_SetRun( .F. )