ChangeLog 2000-08-11 08-55 UTC+0100
This commit is contained in:
@@ -1,3 +1,19 @@
|
||||
2000-08-11 08:55 UTC+0100 Ryszard Glab <rglab@imid.med.pl>
|
||||
|
||||
*source/compiler/harbour.l
|
||||
* added support for code generated by the preprocessed TEXT/ENDTEXT
|
||||
NOTE: Since it is not implemented yet in harbour preprocessor
|
||||
I have followed Clipper method here. Every line of TEXT/ENDTEXT
|
||||
is preprocessed into
|
||||
QOUT("...")<EndOfLine>
|
||||
or
|
||||
QOUT([...])<EndOfLine>
|
||||
with no spaces. [] string delimiters are used if any combination
|
||||
of "'[] are used inside a text.
|
||||
Notice that during preprocessing of normal code when [] string
|
||||
delimiters are used then Clipper uses the first closing ] character
|
||||
as a string terminator.
|
||||
|
||||
2000-08-10 14:30 UTC-0400 David G. Holm <dholm@jsd-llc.com>
|
||||
|
||||
* source/rdd/dbcmd.c
|
||||
|
||||
@@ -117,7 +117,7 @@ FalseValue "."[f|n]"."
|
||||
|
||||
Separator {SpaceTab}
|
||||
|
||||
%x STRING1 STRING2 STRING3
|
||||
%x STRING1 STRING2 STRING3 STRING4START STRING4
|
||||
%x NEXT_ BREAK_ CASE_ DO_ WHILE_ WITH_ END_ FIELD_
|
||||
%x FOR_ FUNCTION_ IIF_ IF_ IN_ INIT_
|
||||
%x RETURN_ RECOVER_
|
||||
@@ -151,6 +151,25 @@ Separator {SpaceTab}
|
||||
}
|
||||
}
|
||||
|
||||
"QOUT([" {
|
||||
/* preprocessed TEXT/ENDTEXT line
|
||||
NOTE: Clipper preprocesses TEXT/ENDTEXT block into a series of QOUT calls
|
||||
QOUT("...")<EndOfLine>
|
||||
or
|
||||
QOUT([...])<EndOfLine>
|
||||
[] is used if text contains any string delimiters "'[]
|
||||
NOTE: Clipper allows for [[nested]] only if it is preprocessed from
|
||||
TEXT/ENDTEXT block - in normal code the preprocesor uses the first
|
||||
closing ] as a string terminator.
|
||||
*/
|
||||
BEGIN STRING4START;
|
||||
unput( '(' );
|
||||
yylval.string = hb_compIdentifierNew( "QOUT", TRUE );
|
||||
hb_comp_iState = IDENTIFIER;
|
||||
|
||||
return IDENTIFIER;
|
||||
}
|
||||
|
||||
<STRING1>[^'\n]*\n { BEGIN 0;
|
||||
unput( '\n' );
|
||||
yytext[--yyleng] = '\0';
|
||||
@@ -202,6 +221,21 @@ Separator {SpaceTab}
|
||||
return LITERAL;
|
||||
}
|
||||
|
||||
<STRING4START>\( { BEGIN STRING4; return( '(' ); }
|
||||
<STRING4START>. { BEGIN 0; unput( yytext[ yyleng-1 ] ); }
|
||||
|
||||
<STRING4>.*\]\)\n { BEGIN 0;
|
||||
unput( '\n' );
|
||||
unput( ')' );
|
||||
yyleng -= 3;
|
||||
yytext[ yyleng ] = '\0';
|
||||
yylval.string = hb_compIdentifierNew( yytext, TRUE );
|
||||
hb_comp_iState = LITERAL;
|
||||
|
||||
return LITERAL;
|
||||
}
|
||||
<STRING4>. { BEGIN STRING3; unput( yytext[ yyleng-1 ] ); }
|
||||
|
||||
{SpaceTab} ;
|
||||
|
||||
\n {
|
||||
|
||||
Reference in New Issue
Block a user