aboutsummaryrefslogtreecommitdiff
path: root/build2/test/script/parser
diff options
context:
space:
mode:
Diffstat (limited to 'build2/test/script/parser')
-rw-r--r--build2/test/script/parser14
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_;
};
}