public:
InlineableFunctionLocator();
- const std::set<FunctionDeclaration *> &apply(Stage &s) { s.content.visit(*this); return inlineable; }
+ std::set<FunctionDeclaration *> apply(Stage &s) { s.content.visit(*this); return inlineable; }
private:
virtual void visit(FunctionCall &);
private:
enum Pass
{
- DEPENDS,
REFERENCED,
INLINE,
RENAME
public:
InlineContentInjector();
- const std::string &apply(Stage &, FunctionDeclaration &, Block &, const NodeList<Statement>::iterator &, FunctionCall &);
+ std::string apply(Stage &, FunctionDeclaration &, Block &, const NodeList<Statement>::iterator &, FunctionCall &);
private:
virtual void visit(VariableReference &);
bool apply(Stage &);
private:
- virtual void visit(Literal &);
- virtual void visit(UnaryExpression &);
- virtual void visit(BinaryExpression &);
- virtual void visit(TernaryExpression &);
- virtual void visit(FunctionCall &);
+ virtual void visit(RefPtr<Expression> &);
virtual void visit(BasicTypeDeclaration &);
virtual void visit(ImageTypeDeclaration &);
virtual void visit(StructDeclaration &);