X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fprogramcompiler.h;h=0bff354a50571128a0fa31bed3dbe8c935a0b1dc;hp=9c20e090980fd3d403c4574345692314a1eeff71;hb=6e528ad728ed93f2016bc9f4204a9d906576300e;hpb=be55468e10915d377634aa850a95dcfb9093216d diff --git a/source/programcompiler.h b/source/programcompiler.h index 9c20e090..0bff354a 100644 --- a/source/programcompiler.h +++ b/source/programcompiler.h @@ -44,6 +44,8 @@ private: typedef std::string ResultType; std::string formatted; + unsigned source_index; + unsigned source_line; unsigned indent; bool parameter_list; std::string block_interface; @@ -55,6 +57,7 @@ private: using Visitor::visit; void append(const std::string &); void append(char); + void set_source(unsigned, unsigned); virtual void visit(ProgramSyntax::Block &); virtual void visit(ProgramSyntax::Literal &); virtual void visit(ProgramSyntax::ParenthesizedExpression &); @@ -153,7 +156,7 @@ private: virtual void visit(ProgramSyntax::Block &); std::string change_prefix(const std::string &, const std::string &) const; bool generate_interface(ProgramSyntax::VariableDeclaration &, const std::string &, const std::string &); - void insert_assignment(const std::string &, ProgramSyntax::Expression *); + ProgramSyntax::ExpressionStatement &insert_assignment(const std::string &, ProgramSyntax::Expression *); virtual void visit(ProgramSyntax::VariableReference &); virtual void visit(ProgramSyntax::VariableDeclaration &); virtual void visit(ProgramSyntax::Passthrough &); @@ -378,7 +381,7 @@ private: Resources *resources; ProgramSyntax::Module *module; - std::set imported_names; + std::vector imported_names; public: ProgramCompiler();