-public:
- VariableResolver();
-
- void apply(Stage &);
-
-private:
- Block *next_block(Block &);
-
- virtual void visit(Block &);
- virtual void visit(VariableReference &);
- virtual void visit(MemberAccess &);
- virtual void visit(BinaryExpression &);
- virtual void visit(Assignment &);
- virtual void visit(StructDeclaration &);
- virtual void visit(VariableDeclaration &);
- virtual void visit(InterfaceBlock &);
- virtual void visit(FunctionDeclaration &);
- virtual void visit(Iteration &);
- using TraversingVisitor::visit;
-};
-
-class FunctionResolver: private TraversingVisitor
-{
-private:
- std::map<std::string, std::vector<FunctionDeclaration *> > functions;
-
-public:
- void apply(Stage &s) { visit(s.content); }
-
-private:
- virtual void visit(FunctionCall &);
- virtual void visit(FunctionDeclaration &);
- using TraversingVisitor::visit;
-};
+Passthrough statements are processed, generating out variables to match in
+variables and copying values.