aboutsummaryrefslogtreecommitdiff
path: root/build2/test/script/parser
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2016-10-19 15:08:30 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2016-11-04 09:26:30 +0200
commit996136ec9b8d002b7f1cbd2d7eeac850a561143d (patch)
tree87bc68bfdf086191725fe211444f71ca4904f6fb /build2/test/script/parser
parent56eb8c36b5b408e08760fa18cf893e5e8a613b7a (diff)
Implement two-stage testscript parsing
Diffstat (limited to 'build2/test/script/parser')
-rw-r--r--build2/test/script/parser13
1 files changed, 11 insertions, 2 deletions
diff --git a/build2/test/script/parser b/build2/test/script/parser
index adff8a3..6531aba 100644
--- a/build2/test/script/parser
+++ b/build2/test/script/parser
@@ -29,7 +29,10 @@ namespace build2
// Issue diagnostics and throw failed in case of an error.
//
void
- parse (istream&, const path& name, script&, runner&);
+ pre_parse (istream&, const path& name, script&);
+
+ void
+ parse (const path& name, script&, runner&);
// Recursive descent parser.
//
@@ -40,10 +43,16 @@ namespace build2
//
protected:
void
+ pre_parse_script ();
+
+ void
parse_script ();
+ line_type
+ pre_parse_script_line (token&, token_type&);
+
void
- parse_script_line (token&, token_type&);
+ parse_script_line (token&, token_type&, line_type);
void
parse_variable_line (token&, token_type&);