X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fprogramcompiler.h;h=bea3faec1d0fee7552cb4cbd5fb36717dca8fb34;hp=76e9eef352f83f67a46c6b8a620d0411c0bf0440;hb=b699b811b22450828268be7ed67e35900be7bdad;hpb=7189f63c549e9061789c47726ff8d6d12afca1a0 diff --git a/source/programcompiler.h b/source/programcompiler.h index 76e9eef3..bea3faec 100644 --- a/source/programcompiler.h +++ b/source/programcompiler.h @@ -29,12 +29,12 @@ private: struct BlockModifier: Visitor { bool remove_node; - std::vector > insert_nodes; + std::vector > insert_nodes; BlockModifier(); void flatten_block(ProgramSyntax::Block &); - void apply_and_increment(ProgramSyntax::Block &, std::list >::iterator &); + void apply_and_increment(ProgramSyntax::Block &, ProgramSyntax::NodeList::iterator &); using Visitor::visit; virtual void visit(ProgramSyntax::Block &); }; @@ -44,9 +44,10 @@ private: typedef std::string ResultType; std::string formatted; + unsigned source_index; + unsigned source_line; unsigned indent; bool parameter_list; - unsigned else_if; std::string block_interface; Formatter(); @@ -54,6 +55,9 @@ private: virtual void apply(ProgramSyntax::Stage &); const std::string &get_result() const { return formatted; } 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 &); @@ -377,7 +381,7 @@ private: Resources *resources; ProgramSyntax::Module *module; - std::set imported_names; + std::vector imported_names; public: ProgramCompiler();