|
|
|
@ -143,7 +143,7 @@ context : KW_CONTEXT word LC elements RC {$$=npval(PV_CONTEXT,@1.first_line,@5.l
|
|
|
|
|
| KW_CONTEXT word LC RC /* empty context OK */ {$$=npval(PV_CONTEXT,@1.first_line,@4.last_line, @1.first_column, @4.last_column); $$->u1.str = $2; }
|
|
|
|
|
| KW_CONTEXT KW_DEFAULT LC elements RC {$$=npval(PV_CONTEXT,@1.first_line,@5.last_line, @1.first_column, @5.last_column); $$->u1.str = strdup("default"); $$->u2.statements = $4; }
|
|
|
|
|
| KW_CONTEXT KW_DEFAULT LC RC /* empty context OK */ {$$=npval(PV_CONTEXT,@1.first_line,@4.last_line, @1.first_column, @4.last_column); $$->u1.str = strdup("default"); }
|
|
|
|
|
| KW_ABSTRACT KW_CONTEXT word LC elements RC {$$=npval(PV_CONTEXT,@1.first_line,@6.last_line, @1.first_column, @6.last_column); $$->u1.str = $3; $$->u2.statements = $5; $$->u3.abstract = 1;}
|
|
|
|
|
| KW_ABSTRACT KW_CONTEXT word LC elements RC {$$=npval(PV_CONTEXT,@1.first_line,@6.last_line, @1.first_column, @6.last_column); $$->u1.str = $3; $$->u2.statements = $5; $$->u3.abstract = 1;}
|
|
|
|
|
| KW_ABSTRACT KW_CONTEXT word LC RC /* empty context OK */ {$$=npval(PV_CONTEXT,@1.first_line,@5.last_line, @1.first_column, @5.last_column); $$->u1.str = $3; $$->u3.abstract = 1; }
|
|
|
|
|
| KW_ABSTRACT KW_CONTEXT KW_DEFAULT LC elements RC {$$=npval(PV_CONTEXT,@1.first_line,@6.last_line, @1.first_column, @6.last_column); $$->u1.str = strdup("default"); $$->u2.statements = $5; $$->u3.abstract = 1; }
|
|
|
|
|
| KW_ABSTRACT KW_CONTEXT KW_DEFAULT LC RC /* empty context OK */ {$$=npval(PV_CONTEXT,@1.first_line,@5.last_line, @1.first_column, @5.last_column); $$->u1.str = strdup("default"); $$->u3.abstract = 1; }
|
|
|
|
@ -174,10 +174,10 @@ arglist : word {$$= npval(PV_WORD,@1.first_line,@1.last_line, @1.first_column, @
|
|
|
|
|
;
|
|
|
|
|
|
|
|
|
|
elements : element { $$=$1;}
|
|
|
|
|
| error {$$=0;}
|
|
|
|
|
| error {$$=0;}
|
|
|
|
|
| elements element { if ( $1 && $2 ) {$$=$1; linku1($$,$2);}
|
|
|
|
|
else if ( $1 ) {$$=$1;}
|
|
|
|
|
else if ( $2 ) {$$=$2;} }
|
|
|
|
|
else if ( $1 ) {$$=$1;}
|
|
|
|
|
else if ( $2 ) {$$=$2;} }
|
|
|
|
|
| elements error { $$=$1;}
|
|
|
|
|
;
|
|
|
|
|
|
|
|
|
@ -187,7 +187,7 @@ element : extension {$$=$1;}
|
|
|
|
|
| eswitches {$$=$1;}
|
|
|
|
|
| ignorepat {$$=$1;}
|
|
|
|
|
| word EQ { reset_semicount(parseio->scanner); } word SEMI {$$=npval(PV_VARDEC,@1.first_line,@5.last_line, @1.first_column, @5.last_column); $$->u1.str = $1;$$->u2.val = $4; }
|
|
|
|
|
| word error {free($1); $$=0;}
|
|
|
|
|
| word error {free($1); $$=0;}
|
|
|
|
|
| SEMI {$$=0;/* allow older docs to be read */}
|
|
|
|
|
;
|
|
|
|
|
|
|
|
|
@ -275,7 +275,7 @@ statement : LC statements RC {$$=npval(PV_STATEMENTBLOCK,@1.first_line,@3.last_l
|
|
|
|
|
{$$=npval(PV_VARDEC,@1.first_line,@5.last_line, @1.first_column, @5.last_column);
|
|
|
|
|
$$->u1.str = $1; $$->u2.val = $4; }
|
|
|
|
|
| KW_GOTO target SEMI {$$=npval(PV_GOTO,@1.first_line,@3.last_line, @1.first_column, @3.last_column); $$->u1.list = $2;}
|
|
|
|
|
| KW_JUMP jumptarget SEMI {$$=npval(PV_GOTO,@1.first_line,@3.last_line, @1.first_column, @3.last_column); $$->u1.list = $2;}
|
|
|
|
|
| KW_JUMP jumptarget SEMI {$$=npval(PV_GOTO,@1.first_line,@3.last_line, @1.first_column, @3.last_column); $$->u1.list = $2;}
|
|
|
|
|
| word COLON {$$=npval(PV_LABEL,@1.first_line,@2.last_line, @1.first_column, @2.last_column); $$->u1.str = $1; }
|
|
|
|
|
| KW_FOR LP {reset_semicount(parseio->scanner);} word SEMI
|
|
|
|
|
{reset_semicount(parseio->scanner);} word SEMI
|
|
|
|
@ -289,7 +289,7 @@ statement : LC statements RC {$$=npval(PV_STATEMENTBLOCK,@1.first_line,@3.last_l
|
|
|
|
|
| switch_head case_statements RC {$$=$1; $$->u2.statements = $2;$$->endline = @3.last_line; $$->endcol = @3.last_column;}
|
|
|
|
|
| AMPER macro_call SEMI {$$ = $2;$$->endline = @2.last_line; $$->endcol = @2.last_column;}
|
|
|
|
|
| application_call SEMI { $$ = $1;$$->endline = @2.last_line; $$->endcol = @2.last_column;}
|
|
|
|
|
| word SEMI { $$= npval(PV_APPLICATION_CALL,@1.first_line,@2.last_line, @1.first_column, @2.last_column);
|
|
|
|
|
| word SEMI { $$= npval(PV_APPLICATION_CALL,@1.first_line,@2.last_line, @1.first_column, @2.last_column);
|
|
|
|
|
$$->u1.str = $1;}
|
|
|
|
|
| application_call EQ {reset_semicount(parseio->scanner);} word SEMI {
|
|
|
|
|
char *bufx;
|
|
|
|
@ -432,7 +432,7 @@ case_statements: case_statement {$$=$1;}
|
|
|
|
|
case_statement: KW_CASE word COLON statements {$$ = npval(PV_CASE,@1.first_line,@3.last_line, @1.first_column, @3.last_column); $$->u1.str = $2; $$->u2.statements = $4;}
|
|
|
|
|
| KW_DEFAULT COLON statements {$$ = npval(PV_DEFAULT,@1.first_line,@3.last_line, @1.first_column, @3.last_column); $$->u1.str = 0; $$->u2.statements = $3;}
|
|
|
|
|
| KW_PATTERN word COLON statements {$$ = npval(PV_PATTERN,@1.first_line,@3.last_line, @1.first_column, @3.last_column); $$->u1.str = $2; $$->u2.statements = $4;}
|
|
|
|
|
| KW_CASE word COLON {$$ = npval(PV_CASE,@1.first_line,@3.last_line, @1.first_column, @3.last_column); $$->u1.str = $2;}
|
|
|
|
|
| KW_CASE word COLON {$$ = npval(PV_CASE,@1.first_line,@3.last_line, @1.first_column, @3.last_column); $$->u1.str = $2;}
|
|
|
|
|
| KW_DEFAULT COLON {$$ = npval(PV_DEFAULT,@1.first_line,@2.last_line, @1.first_column, @2.last_column); $$->u1.str = 0;}
|
|
|
|
|
| KW_PATTERN word COLON {$$ = npval(PV_PATTERN,@1.first_line,@3.last_line, @1.first_column, @3.last_column); $$->u1.str = $2;}
|
|
|
|
|
;
|
|
|
|
|