X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fprogramparser.h;h=dc94bd0044443bd01ca862584e6784a58da4fb9f;hp=903e58346f7a425a365cccfcf162f56caa75fa6e;hb=71972b08fd031e177a005eb1924a5c7a15459291;hpb=11520b2b95f4242b3ca4d2d3d14a0f2b5c1623f1 diff --git a/source/programparser.h b/source/programparser.h index 903e5834..dc94bd00 100644 --- a/source/programparser.h +++ b/source/programparser.h @@ -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 parse_global_declaration(); - RefPtr parse_statement(); + RefPtr parse_global_declaration(); + RefPtr parse_statement(); RefPtr parse_import(); RefPtr parse_precision(); RefPtr parse_layout(); @@ -104,7 +105,8 @@ private: RefPtr parse_function_declaration(); RefPtr parse_interface_block(); RefPtr parse_conditional(); - RefPtr parse_iteration(); + RefPtr parse_for(); + RefPtr parse_while(); RefPtr parse_passthrough(); RefPtr parse_return(); };