virtual void visit(Block &);
virtual void visit(UnaryExpression &);
virtual void visit(BinaryExpression &);
+ virtual void visit(Assignment &a) { visit(static_cast<BinaryExpression &>(a)); }
virtual void visit(MemberAccess &);
virtual void visit(FunctionCall &);
virtual void visit(ExpressionStatement &);
bool apply(Stage &);
private:
+ virtual void visit(Literal &);
+ virtual void visit(UnaryExpression &);
+ virtual void visit(BinaryExpression &);
+ virtual void visit(FunctionCall &);
virtual void visit(BasicTypeDeclaration &);
virtual void visit(ImageTypeDeclaration &);
virtual void visit(StructDeclaration &);
virtual void visit(VariableDeclaration &);
+ virtual void visit(FunctionDeclaration &);
};
/** Removes variable declarations with no references to them. Assignment