diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2016-11-03 17:54:02 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2016-11-04 09:26:37 +0200 |
commit | 554475390b6d2912614778fe50788a09f99ac6a4 (patch) | |
tree | 2cc756aa363f0697291b4cbf8e7a9365bf65629b /build2/test/script/parser | |
parent | 7ebe4aa8d07e8845f1669e2d43fbe6071d3ee463 (diff) |
Implement testscript inclusion support
Diffstat (limited to 'build2/test/script/parser')
-rw-r--r-- | build2/test/script/parser | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/build2/test/script/parser b/build2/test/script/parser index 6e29c9a..b711676 100644 --- a/build2/test/script/parser +++ b/build2/test/script/parser @@ -65,6 +65,12 @@ namespace build2 optional<description>&&, lines* = nullptr); + void + parse_directive_line (token&, token_type&); + + void + perform_include (names, location); + bool parse_variable_line (token&, token_type&); @@ -104,19 +110,23 @@ namespace build2 protected: using base_parser = build2::parser; - lexer* lexer_; script* script_; - runner* runner_; // Pre-parse state. // using id_map = std::unordered_map<string, location>; + using include_set = std::set<path>; group* group_; id_map* id_map_; + include_set* include_set_; // Testscripts already included in this + // scope. Must be absolute and normalized. + lexer* lexer_; + string id_prefix_; // Auto-derived id prefix. // Parse state. // + runner* runner_; scope* scope_; }; } |