return ex;
}
-ast *
-newAst_STMNT (unsigned val)
-{
- ast *ex = newAst_ (EX_STMNT);
- ex->opval.stmnt = val;
- return ex;
-}
-
/*-----------------------------------------------------------------*/
/* newNode - creates a new node */
/*-----------------------------------------------------------------*/
if (constExprTree(cexpr->left) && constExprTree(cexpr->right)) {
return TRUE;
}
+ case EX_OPERAND:
+ return IS_CONSTANT(operandType(cexpr->opval.oprnd));
}
return FALSE;
}
EX_OP=0,
EX_VALUE,
EX_LINK,
- EX_STMNT,
EX_OPERAND
} ASTTYPE;
value *val; /* value if type = EX_VALUE */
sym_link *lnk; /* sym_link * if type= EX_LINK */
struct operand *oprnd; /* used only for side effecting function calls */
- unsigned stmnt; /* statement if type=EX_STMNT */
unsigned op; /* operator if type= EX_OP */
}
opval;
ast *newAst_VALUE (value * val);
ast *newAst_OP (unsigned op);
ast *newAst_LINK (sym_link * val);
-ast *newAst_STMNT (unsigned val);
void initAst ();
ast *newNode (long, ast *, ast *);
case EX_LINK:
return operandFromLink (tree->opval.lnk);
- }
+ break;
- assert (0);
- /* Just to keep the comiler happy */
+ default:
+ assert (0);
+ }
+
+ /* Just to keep the compiler happy */
return (operand *) 0;
}