HBEGPAR HENDPAR
HEQR HNER
HADD HSUB HMUL HDIV HINTDIV HEXP
- HDOTDOTDOT
+ HDOTDOTDOT
%token <ident> HIDENTIFIER
%token <ival> HBOOLEANKONST HINTEGERKONST HCHARACTERKONST
MAIN_MODULE : { categ=CLOCAL; mout(MBLOCK);
beginBlock(KBLOKK);separat_comp=FALSE;}
MODULS { endBlock(NULL,CCNO); mout(MENDBLOCK);}
- | error HSTATEMENTSEPARATOR MBEE_DECLSTMS
+ | error HSTATEMENTSEPARATOR MBEE_DECLSTMS
;
EXT_DECLARATION : HEXTERNAL
MBEE_TYPE
/* | HELSE
HIF
EXPRESSION
- HTHEN { mout(MELSE);
+ HTHEN { mout(MELSE);
mout(MIF);
OBSBLOCK();}
BLOCK { MBEEENDBLOCK();}
HIDENTIFIER
HDO { beginBlock(KCON); mout(MIDENTIFIER);
OBSBLOCK(); moutId($2);
- mout(MWHEN);}
+ mout(MWHEN);}
BLOCK { endBlock(NULL,CCNO);
MBEEENDBLOCK(); mout(MENDWHEN);}
| WHEN_CLAUSE_LIST
HIDENTIFIER
HDO { beginBlock(KCON); mout(MIDENTIFIER);
OBSBLOCK(); moutId($3);
- mout(MWHEN);}
+ mout(MWHEN);}
BLOCK { endBlock(NULL,CCNO);
MBEEENDBLOCK(); mout(MENDWHEN);}
;
HDO { STOPOBSBLOCK(); mout(MWHILE);
OBSBLOCK();}
BLOCK { MBEEENDBLOCK(); mout(MENDWHILE);
- $$=STATEMENT;}
- | HIF
+ $$=STATEMENT;}
+ | HIF
EXPRESSION
HTHEN { STOPOBSBLOCK(); mout(MIF);
OBSBLOCK();}
{ STOPOBSBLOCK(); $$=STATEMENT;
mout(MENDASSIGN);}
| ACTIVATOR EXPRESSION SCHEDULE
- { $$=STATEMENT;
+ { $$=STATEMENT;
mout(MENDSEP);
mout(MARGUMENTSEP);
mout(MARGUMENTSEP);
MODULS : MODULSTATEMENT { if($1==DECLARATION)
{separat_comp=TRUE;gettimestamp();}
$$=$1;}
- | MODULS HSTATEMENTSEPARATOR MODULSTATEMENT
+ | MODULS HSTATEMENTSEPARATOR MODULSTATEMENT
{ if($1>=STATEMENT && $3<=DECLARATION)
yerror (26);else
- if($1>=STATEMENT
+ if($1>=STATEMENT
&& $3!=EMPTYSTATEMENT)yerror (25);
if(separat_comp && $3==STATEMENT)
yerror (25);
;
FPP_PROC_DECL_IN_SPEC: MBEE_TYPE HPROCEDURE
HIDENTIFIER
- { $<ival>$=categ;
+ { $<ival>$=categ;
regDecl($3, type, KPROC, categ);
beginBlock(KPROC);}
FPP_HEADING
;
PROC_DECL_IN_SPEC: MBEE_TYPE HPROCEDURE
HIDENTIFIER
- { $<ival>$=categ;
+ { $<ival>$=categ;
regDecl($3, type, KPROC, categ);
beginBlock(KPROC);}
HEADING
%token AND
%token HERE
%token DOT_N
-%token DOT_E
+%token DOT_E
%token DOT_W
%token DOT_S
%token DOT_NE
%left CHOP SOLID DASHED DOTTED UP DOWN FILL COLORED OUTLINED
%left LABEL
-%left VARIABLE NUMBER '(' SIN COS ATAN2 LOG EXP SQRT K_MAX K_MIN INT RAND SRAND LAST
+%left VARIABLE NUMBER '(' SIN COS ATAN2 LOG EXP SQRT K_MAX K_MIN INT RAND SRAND LAST
%left ORDINAL HERE '`'
%left BOX CIRCLE ELLIPSE ARC LINE ARROW SPLINE '[' /* ] */
}
| COPY TEXT THRU
{ delim_flag = 2; }
- DELIMITED
+ DELIMITED
{ delim_flag = 0; }
until
{
a_delete $6;
}
| FOR VARIABLE '=' expr TO expr optional_by DO
- { delim_flag = 1; }
+ { delim_flag = 1; }
DELIMITED
- {
+ {
delim_flag = 0;
if (yychar < 0)
do_lookahead();
- do_for($2, $4, $6, $7.is_multiplicative, $7.val, $10);
+ do_for($2, $4, $6, $7.is_multiplicative, $7.val, $10);
}
| simple_if
{
;
print_arg:
- expr %prec ','
+ expr %prec ','
{
$$.str = new char[GDIGITS + 1];
sprintf($$.str, "%g", $1);
| UNTIL TEXT
{ $$ = $2.str; }
;
-
+
any_expr:
expr
{ $$ = $1; }
| text_expr
{ $$ = $1; }
;
-
+
text_expr:
text EQUALEQUAL text
{
$3.filename, $3.lineno);
a_delete $3.str;
}
- | '['
+ | '['
{
saved_state *p = new saved_state;
$<pstate>$ = p;
$$->segment_pos.y += $3.y;
}
| object_spec THEN
- {
+ {
$$ = $1;
if ($$->flags & HAS_SEGMENT) {
$$->segment_list = new segment($$->segment_pos,
strcpy($$->outlined, $3.str);
}
| object_spec CHOP
- {
+ {
$$ = $1;
// line chop chop means line chop 0 chop 0
if ($$->flags & IS_DEFAULT_CHOPPED) {
;
position:
- position_not_place
+ position_not_place
{ $$ = $1; }
| place
- {
+ {
position pos = $1;
$$.x = pos.x;
$$.y = pos.y;
optional_ordinal_last:
LAST
{ $$ = 1; }
- | ordinal LAST
+ | ordinal LAST
{ $$ = $1; }
;
object_type:
BOX
- { $$ = BOX_OBJECT; }
+ { $$ = BOX_OBJECT; }
| CIRCLE
{ $$ = CIRCLE_OBJECT; }
| ELLIPSE
;
label_path:
- '.' LABEL
+ '.' LABEL
{ $$ = new path($2); }
| label_path '.' LABEL
{
{ $$ = new path($1); }
/* give this a lower precedence than LEFT and RIGHT so that
[A: box] with .A left == [A: box] with (.A left) */
- | label_path %prec TEXT
+ | label_path %prec TEXT
{ $$ = $1; }
| label_path corner
{
corner:
DOT_N
{ $$ = &object::north; }
- | DOT_E
+ | DOT_E
{ $$ = &object::east; }
| DOT_W
{ $$ = &object::west; }
{ $$ = &object::start; }
| DOT_END
{ $$ = &object::end; }
- | TOP
+ | TOP
{ $$ = &object::north; }
| BOTTOM
{ $$ = &object::south; }
| NUMBER
{ $$ = $1; }
| place DOT_X
- {
+ {
if ($1.obj != 0)
$$ = $1.obj->origin().x;
else
$$ = $1.x;
- }
+ }
| place DOT_Y
{
if ($1.obj != 0)