PROCEDURE CreateBinaryOp(VAR at: Attribute; opsy: Symbol;
leftop, rightop: Attribute);
VAR
node: Attribute;
BEGIN
NEW(node); node.sy := opsy;
node.leftop := leftop; node.rightop := rightop;
at := node;
END CreateBinaryOp;
PROCEDURE CreateUnaryOp(VAR at: Attribute; opsy: Symbol;
op: Attribute);
VAR
node: Attribute;
BEGIN
NEW(node); node.sy := opsy;
node.leftop := NIL; node.rightop := op;
at := node;
END CreateUnaryOp;
PROCEDURE CreateConstant(VAR at: Attribute; const: INTEGER);
BEGIN
NEW(at); at.sy := constantSY;
at.const := const;
END CreateConstant;
|