X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fprogramcompiler.h;h=7e8d3373a53e4ffcf028a218d99e420d1a9cd5a7;hp=b14c03d8021fa5fa4726aa9a9ef6b9cbbb94be1c;hb=e9d5d1945f110d5307036af0d4b3f0c3ebfe3d2a;hpb=e1e69c49b7727223a43cdc2deac4f1c03a3e3aba diff --git a/source/programcompiler.h b/source/programcompiler.h index b14c03d8..7e8d3373 100644 --- a/source/programcompiler.h +++ b/source/programcompiler.h @@ -169,17 +169,21 @@ private: FUNCTION }; + unsigned scope_level; DeclarationKind kind; + std::set ordered_funcs; + std::set needed_funcs; DeclarationReorderer(); using Visitor::visit; virtual void visit(ProgramSyntax::Block &); + virtual void visit(ProgramSyntax::FunctionCall &); virtual void visit(ProgramSyntax::InterfaceLayout &) { kind = LAYOUT; } virtual void visit(ProgramSyntax::StructDeclaration &) { kind = STRUCT; } - virtual void visit(ProgramSyntax::VariableDeclaration &) { kind = VARIABLE; } + virtual void visit(ProgramSyntax::VariableDeclaration &); virtual void visit(ProgramSyntax::InterfaceBlock &) { kind = VARIABLE; } - virtual void visit(ProgramSyntax::FunctionDeclaration &) { kind = FUNCTION; } + virtual void visit(ProgramSyntax::FunctionDeclaration &); }; struct InlineableFunctionLocator: Visitor