01.03.2015 Views

Modern compiler design [PDF]

Modern compiler design [PDF]

Modern compiler design [PDF]

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!