Modern compiler design [PDF]
Modern compiler design [PDF]
Modern compiler design [PDF]
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
* File treeDefinitions.c */<br />
#include "treeDefinitions.h"<br />
#include <br />
expressionTree operatorExpression(optype op, expressionTree left,<br />
expressionTree right) {<br />
expressionTree retval = (expressionTree) malloc(sizeof(struct expression));<br />
retval->kind = operatorExp;<br />
retval->u.oper.op = op;<br />
retval->u.oper.left = left;<br />
retval->u.oper.right = right;<br />
return retval;<br />
}<br />
expressionTree IdentifierExpression(char *variable) {<br />
expressionTree retval = (expressionTree) malloc(sizeof(struct expression));<br />
retval->kind = variableExp;<br />
retval->u.variable = variable;<br />
return retval;<br />
}<br />
expressionTree ConstantExpression(int constantval) {<br />
expressionTree retval = (expressionTree) malloc(sizeof(struct expression));<br />
retval->kind = constantExp;<br />
retval->u.constantval = constantval;<br />
return retval;<br />
}<br />
Figure 6.4: File treeDefinitions.c, containing the constructors for building simple expression trees.<br />
40