]> git.tdb.fi Git - libs/gl.git/blobdiff - source/programparser.h
Record statement source lines and emit #line directives to output
[libs/gl.git] / source / programparser.h
index 707815405684252f1fc06c33341ea19b5ba5199c..dc94bd0044443bd01ca862584e6784a58da4fb9f 100644 (file)
@@ -38,6 +38,7 @@ private:
 
        std::string source;
        std::string source_name;
+       unsigned source_index;
        unsigned current_line;
        std::string::const_iterator iter;
        std::string::const_iterator source_end;
@@ -55,8 +56,8 @@ public:
        ProgramParser();
        ~ProgramParser();
 
-       ProgramSyntax::Module &parse(const std::string &, const std::string &);
-       ProgramSyntax::Module &parse(IO::Base &, const std::string &);
+       ProgramSyntax::Module &parse(const std::string &, const std::string &, unsigned = 0);
+       ProgramSyntax::Module &parse(IO::Base &, const std::string &, unsigned = 0);
 
 private:
        void parse_source();
@@ -90,8 +91,8 @@ private:
        void preprocess_pragma_msp();
        void preprocess_stage();
 
-       RefPtr<ProgramSyntax::Node> parse_global_declaration();
-       RefPtr<ProgramSyntax::Node> parse_statement();
+       RefPtr<ProgramSyntax::Statement> parse_global_declaration();
+       RefPtr<ProgramSyntax::Statement> parse_statement();
        RefPtr<ProgramSyntax::Import> parse_import();
        RefPtr<ProgramSyntax::Precision> parse_precision();
        RefPtr<ProgramSyntax::Layout> parse_layout();