aboutsummaryrefslogtreecommitdiff
path: root/libbuild2/build/script
diff options
context:
space:
mode:
Diffstat (limited to 'libbuild2/build/script')
-rw-r--r--libbuild2/build/script/parser+command-re-parse.test.testscript14
-rw-r--r--libbuild2/build/script/parser+expansion.test.testscript23
-rw-r--r--libbuild2/build/script/parser.hxx2
3 files changed, 36 insertions, 3 deletions
diff --git a/libbuild2/build/script/parser+command-re-parse.test.testscript b/libbuild2/build/script/parser+command-re-parse.test.testscript
index a59b49c..56e05b5 100644
--- a/libbuild2/build/script/parser+command-re-parse.test.testscript
+++ b/libbuild2/build/script/parser+command-re-parse.test.testscript
@@ -1,11 +1,23 @@
# file : libbuild2/build/script/parser+command-re-parse.test.testscript
# license : MIT; see accompanying LICENSE file
+# @@ TMP
+#
+#\
: double-quote
:
$* <<EOI >>EOO
-x = cmd \">-\" "'<-'"
+x = [cmd_line] cmd \">-\" "'<-'"
$x
EOI
cmd '>-' '<-'
EOO
+#\
+
+: literal-re-parse
+:
+$* <<EOI >>EOO
+cmd >foo
+EOI
+cmd >foo
+EOO
diff --git a/libbuild2/build/script/parser+expansion.test.testscript b/libbuild2/build/script/parser+expansion.test.testscript
index 9f1e774..086ec8f 100644
--- a/libbuild2/build/script/parser+expansion.test.testscript
+++ b/libbuild2/build/script/parser+expansion.test.testscript
@@ -24,12 +24,33 @@ EOI
buildfile:12:5: info: while parsing string 'xy'a bc'
EOE
+# @@ TMP
+#
+#\
: invalid-redirect
:
$* <<EOI 2>>EOE != 0
-x = "1>&a"
+x = [cmd_line] "1>&a"
cmd $x
EOI
<string>:1:4: error: stdout merge redirect file descriptor must be 2
buildfile:12:5: info: while parsing string '1>&a'
EOE
+#\
+
+: expansion-re-parse
+:
+$* <<EOI >>EOO
+x = <foo> <bar>
+cmd $x
+
+x = foo
+cmd >$x
+
+x = [string] foo
+cmd >$x
+EOI
+cmd '<foo>' '<bar>'
+cmd >foo
+cmd >foo
+EOO
diff --git a/libbuild2/build/script/parser.hxx b/libbuild2/build/script/parser.hxx
index 09a349f..b737a13 100644
--- a/libbuild2/build/script/parser.hxx
+++ b/libbuild2/build/script/parser.hxx
@@ -29,7 +29,7 @@ namespace build2
// Pre-parse. Issue diagnostics and throw failed in case of an error.
//
public:
- parser (context& c): build2::script::parser (c) {}
+ parser (context& c): build2::script::parser (c, false /* relex */) {}
// Note that the returned script object references the passed path
// name.