register struct def *df;
unsigned size;
int retval = 1;
+ int SetIsConstant = 1;
assert(expp->nd_symb == SET);
- expp->nd_class = Set;
expp->nd_type = error_type;
+ expp->nd_class = Set;
/* First determine the type of the set
*/
expp->nd_set)) {
retval = 0;
}
+ if (nd->nd_left) SetIsConstant = 0;
nd = nd->nd_right;
}
- if (expp->nd_class == Set) {
+ if (SetIsConstant) {
FreeNode(expp->nd_right);
expp->nd_right = 0;
}
|
CaseStatement(pnd)
|
- WhileStatement(pnd)
+ WHILE { *pnd = nd = MkLeaf(Stat, &dot); }
+ expression(&(nd->nd_left))
+ DO
+ StatementSequence(&(nd->nd_right))
+ END
|
- RepeatStatement(pnd)
+ REPEAT { *pnd = nd = MkLeaf(Stat, &dot); }
+ StatementSequence(&(nd->nd_left))
+ UNTIL
+ expression(&(nd->nd_right))
|
{ loopcount++; }
- LoopStatement(pnd)
+ LOOP { *pnd = nd = MkLeaf(Stat, &dot); }
+ StatementSequence(&((*pnd)->nd_right))
+ END
{ loopcount--; }
|
ForStatement(pnd)
}
;
+/* inline in statement; lack of space
WhileStatement(struct node **pnd;)
{
register struct node *nd;
UNTIL
expression(&(nd->nd_right))
;
+*/
ForStatement(struct node **pnd;)
{
END
;
+/* inline in Statement; lack of space
LoopStatement(struct node **pnd;):
LOOP { *pnd = MkLeaf(Stat, &dot); }
StatementSequence(&((*pnd)->nd_right))
END
;
+*/
WithStatement(struct node **pnd;)
{