2000-08-07 09:05 UTC+0800 Ron Pinkas <ron@profit-master.com>
* source/compiler/harbour.l
+ Added rule to allow DECLARE Var AS ... (like PRIVATE Var AS ...)
* source/compiler/harbour.slx
+ Added rule to allow DECLARE Var AS ... (like PRIVATE Var AS ...)
! Corrected typo with DECLARE IDENTIFIER := rule.
! Corrcted compiler warnings reported by Maurilio
* tests/testdecl.prg
+ Added DECLARE Var9 AS STRING to test this syntax too.
This commit is contained in:
@@ -1,3 +1,15 @@
|
||||
2000-08-07 09:05 UTC+0800 Ron Pinkas <ron@profit-master.com>
|
||||
* source/compiler/harbour.l
|
||||
+ Added rule to allow DECLARE Var AS ... (like PRIVATE Var AS ...)
|
||||
|
||||
* source/compiler/harbour.slx
|
||||
+ Added rule to allow DECLARE Var AS ... (like PRIVATE Var AS ...)
|
||||
! Corrected typo with DECLARE IDENTIFIER := rule.
|
||||
! Corrcted compiler warnings reported by Maurilio
|
||||
|
||||
* tests/testdecl.prg
|
||||
+ Added DECLARE Var9 AS STRING to test this syntax too.
|
||||
|
||||
2000-08-07 16:20 GMT+2 Maurilio Longo <maurilio.longo@libero.it>
|
||||
* source/rtl/tbrowse.prg
|
||||
! lines 671..680: if tbrowse was stable current cell was not hilited again, this breaks dbu.exe which
|
||||
|
||||
@@ -415,6 +415,14 @@ Separator {SpaceTab}
|
||||
hb_comp_iState = PRIVATE;
|
||||
return PRIVATE;
|
||||
}
|
||||
|
||||
<DECLARE_ID_>({Identifier}|{MacroTxt}){Separator}*"as"{Separator}+ { /* variable declaration */
|
||||
BEGIN 0;
|
||||
yyless(0);
|
||||
hb_comp_iState = PRIVATE;
|
||||
return PRIVATE;
|
||||
}
|
||||
|
||||
<DECLARE_ID_>.|\n {
|
||||
BEGIN 0;
|
||||
unput( yytext[ yyleng-1 ] );
|
||||
|
||||
@@ -303,16 +303,17 @@ LANGUAGE_WORDS_ARE {
|
||||
#define _ID_COMMA 3003
|
||||
#define _ID_CR 3004
|
||||
#define _ID_SEMI 3005
|
||||
#define _ID_COLON 3006
|
||||
#define _CASE_WITH 3007
|
||||
#define _WHL_ID_CR 3008
|
||||
#define _WHL_ID_SEMI 3009
|
||||
#define _INC_CR 3010
|
||||
#define _INC_SEMI 3011
|
||||
#define _DEC_CR 3012
|
||||
#define _DEC_SEMI 3013
|
||||
#define _VAR_ARRAY 3014
|
||||
#define _TEXT_ARRAY 3015
|
||||
#define _ID_ASSIGN 3006
|
||||
#define _ID_AS 3007
|
||||
#define _CASE_WITH 3008
|
||||
#define _WHL_ID_CR 3009
|
||||
#define _WHL_ID_SEMI 3010
|
||||
#define _INC_CR 3011
|
||||
#define _INC_SEMI 3012
|
||||
#define _DEC_CR 3013
|
||||
#define _DEC_SEMI 3014
|
||||
#define _VAR_ARRAY 3015
|
||||
#define _TEXT_ARRAY 3016
|
||||
|
||||
LANGUAGE_RULES_ARE {
|
||||
IF_SEQUENCE_IS( '^' , 0 , 0 , 0 ) REDUCE_TO( POWER , 0 ),
|
||||
@@ -383,14 +384,16 @@ LANGUAGE_RULES_ARE {
|
||||
IF_SEQUENCE_IS( DECLARE , IDENTIFIER , ',' , 0 ) REDUCE_TO( PRIVATE , _ID_COMMA ),
|
||||
IF_SEQUENCE_IS( DECLARE , IDENTIFIER , '\n' , 0 ) REDUCE_TO( PRIVATE , _ID_CR ),
|
||||
IF_SEQUENCE_IS( DECLARE , IDENTIFIER , ';' , 0 ) REDUCE_TO( PRIVATE , _ID_SEMI ),
|
||||
IF_SEQUENCE_IS( DECLARE , IDENTIFIER , ':' , 0 ) REDUCE_TO( PRIVATE , _ID_COLON ),
|
||||
IF_SEQUENCE_IS( DECLARE , IDENTIFIER ,INASSIGN, 0 ) REDUCE_TO( PRIVATE , _ID_ASSIGN ),
|
||||
IF_SEQUENCE_IS( DECLARE , IDENTIFIER ,_AS_ , 0 ) REDUCE_TO( PRIVATE , _ID_AS ),
|
||||
IF_SEQUENCE_IS( DECLARE , MACROVAR , 0 , 0 ) REDUCE_TO( PRIVATE , MACROVAR ),
|
||||
IF_SEQUENCE_IS( DECLARE , MACROTEXT , 0 , 0 ) REDUCE_TO( PRIVATE , MACROTEXT ),
|
||||
IF_SEQUENCE_IS( _ID_ARRAY , 0 , 0 , 0 ) REDUCE_TO( IDENTIFIER , '[' ),
|
||||
IF_SEQUENCE_IS( _ID_COMMA , 0 , 0 , 0 ) REDUCE_TO( IDENTIFIER , ',' ),
|
||||
IF_SEQUENCE_IS( _ID_CR , 0 , 0 , 0 ) REDUCE_TO( IDENTIFIER , '\n' ),
|
||||
IF_SEQUENCE_IS( _ID_SEMI , 0 , 0 , 0 ) REDUCE_TO( IDENTIFIER , ';' ),
|
||||
IF_SEQUENCE_IS( _ID_COLON , 0 , 0 , 0 ) REDUCE_TO( IDENTIFIER , ':' ),
|
||||
IF_SEQUENCE_IS( _ID_ASSIGN , 0 , 0 , 0 ) REDUCE_TO( IDENTIFIER , INASSIGN ),
|
||||
IF_SEQUENCE_IS( _ID_AS , 0 , 0 , 0 ) REDUCE_TO( IDENTIFIER , _AS_ ),
|
||||
|
||||
/* Anything DECLARE IDENTIFIER, must be Strong Type DECLARE. */
|
||||
IF_SEQUENCE_IS( DECLARE , IDENTIFIER , 0 , 0 ) PASS_THROUGH(),
|
||||
@@ -1045,7 +1048,7 @@ int hb_lex_CustomAction( int x, int iWordLen, int aiHold[], char asHold[][TOKEN_
|
||||
|
||||
/* Equivalent of PUSH_TOKEN(x). */
|
||||
aiHold[ (*ptr_iHold)++ ] = EXTERN;
|
||||
asHold[ (*ptr_iHold) - 1 ][0] = NULL;
|
||||
asHold[ (*ptr_iHold) - 1 ][0] = '\0';
|
||||
|
||||
x = 0;
|
||||
break;
|
||||
@@ -1055,7 +1058,7 @@ int hb_lex_CustomAction( int x, int iWordLen, int aiHold[], char asHold[][TOKEN_
|
||||
|
||||
/* Equivalent of PUSH_TOKEN(x). */
|
||||
aiHold[ (*ptr_iHold)++ ] = DECLARE;
|
||||
asHold[ (*ptr_iHold) - 1 ][0] = NULL;
|
||||
asHold[ (*ptr_iHold) - 1 ][0] = '\0';
|
||||
|
||||
x = 0;
|
||||
break;
|
||||
@@ -1065,7 +1068,7 @@ int hb_lex_CustomAction( int x, int iWordLen, int aiHold[], char asHold[][TOKEN_
|
||||
|
||||
/* Equivalent of PUSH_TOKEN(x). */
|
||||
aiHold[ (*ptr_iHold)++ ] = PUBLIC;
|
||||
asHold[ (*ptr_iHold) - 1 ][0] = NULL;
|
||||
asHold[ (*ptr_iHold) - 1 ][0] = '\0';
|
||||
|
||||
x = 0;
|
||||
break;
|
||||
@@ -1075,7 +1078,7 @@ int hb_lex_CustomAction( int x, int iWordLen, int aiHold[], char asHold[][TOKEN_
|
||||
|
||||
/* Equivalent of PUSH_TOKEN(x). */
|
||||
aiHold[ (*ptr_iHold)++ ] = PRIVATE_;
|
||||
asHold[ (*ptr_iHold) - 1 ][0] = NULL;
|
||||
asHold[ (*ptr_iHold) - 1 ][0] = '\0';
|
||||
|
||||
x = 0;
|
||||
break;
|
||||
@@ -1085,7 +1088,7 @@ int hb_lex_CustomAction( int x, int iWordLen, int aiHold[], char asHold[][TOKEN_
|
||||
|
||||
/* Equivalent of PUSH_TOKEN(x). */
|
||||
aiHold[ (*ptr_iHold)++ ] = LOCAL;
|
||||
asHold[ (*ptr_iHold) - 1 ][0] = NULL;
|
||||
asHold[ (*ptr_iHold) - 1 ][0] = '\0';
|
||||
|
||||
x = 0;
|
||||
break;
|
||||
@@ -1095,7 +1098,7 @@ int hb_lex_CustomAction( int x, int iWordLen, int aiHold[], char asHold[][TOKEN_
|
||||
|
||||
/* Equivalent of PUSH_TOKEN(x). */
|
||||
aiHold[ (*ptr_iHold)++ ] = MEMVAR;
|
||||
asHold[ (*ptr_iHold) - 1 ][0] = NULL;
|
||||
asHold[ (*ptr_iHold) - 1 ][0] = '\0';
|
||||
|
||||
x = 0;
|
||||
break;
|
||||
@@ -1105,7 +1108,7 @@ int hb_lex_CustomAction( int x, int iWordLen, int aiHold[], char asHold[][TOKEN_
|
||||
|
||||
/* Equivalent of PUSH_TOKEN(x). */
|
||||
aiHold[ (*ptr_iHold)++ ] = FIELD_;
|
||||
asHold[ (*ptr_iHold) - 1 ][0] = NULL;
|
||||
asHold[ (*ptr_iHold) - 1 ][0] = '\0';
|
||||
|
||||
x = 0;
|
||||
break;
|
||||
@@ -1115,7 +1118,7 @@ int hb_lex_CustomAction( int x, int iWordLen, int aiHold[], char asHold[][TOKEN_
|
||||
|
||||
/* Equivalent of PUSH_TOKEN(x). */
|
||||
aiHold[ (*ptr_iHold)++ ] = PARAMETERS;
|
||||
asHold[ (*ptr_iHold) - 1 ][0] = NULL;
|
||||
asHold[ (*ptr_iHold) - 1 ][0] = '\0';
|
||||
|
||||
x = 0;
|
||||
break;
|
||||
@@ -1125,7 +1128,7 @@ int hb_lex_CustomAction( int x, int iWordLen, int aiHold[], char asHold[][TOKEN_
|
||||
|
||||
/* Equivalent of PUSH_TOKEN(x). */
|
||||
aiHold[ (*ptr_iHold)++ ] = FOR;
|
||||
asHold[ (*ptr_iHold) - 1 ][0] = NULL;
|
||||
asHold[ (*ptr_iHold) - 1 ][0] = '\0';
|
||||
|
||||
x = 0;
|
||||
break;
|
||||
@@ -1454,8 +1457,8 @@ int hb_lex_CustomAction( int x, int iWordLen, int aiHold[], char asHold[][TOKEN_
|
||||
iIdentifier++;
|
||||
*/
|
||||
/* Equivalent of PUSH_TOKEN(x). */
|
||||
aiHold[ (*ptr_iHold)++ ] = x;
|
||||
strcpy( asHold[ (*ptr_iHold) - 1 ], yylval.string );
|
||||
aiHold[ (int)(*ptr_iHold)++ ] = x;
|
||||
strcpy( asHold[ (int)(*ptr_iHold) - 1 ], yylval.string );
|
||||
|
||||
x = 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user