X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fprogramcompiler.h;h=7e8d3373a53e4ffcf028a218d99e420d1a9cd5a7;hp=b14c03d8021fa5fa4726aa9a9ef6b9cbbb94be1c;hb=bfeb6c6404659fffb1222e084b0bd08cccb4e67d;hpb=573ea4e5602c4321cc1d75daf9ed0beed5cde280 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