diff options
Diffstat (limited to 'libbuild2/lexer+quoting.test.testscript')
-rw-r--r-- | libbuild2/lexer+quoting.test.testscript | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/libbuild2/lexer+quoting.test.testscript b/libbuild2/lexer+quoting.test.testscript new file mode 100644 index 0000000..043737f --- /dev/null +++ b/libbuild2/lexer+quoting.test.testscript @@ -0,0 +1,108 @@ +# file : libbuild2/lexer+quoting.test.testscript +# copyright : Copyright (c) 2014-2019 Code Synthesis Ltd +# license : MIT; see accompanying LICENSE file + +test.options += -q + +: unquoted +: +$* <'foo' >>EOO +'foo' +<newline> +EOO + +: comp +: +{ + : single + : + $* <":'foo':" >>EOO + : + 'foo' [S/C] + : + <newline> + EOO + + : double + : + $* <':"foo":' >>EOO + : + 'foo' [D/C] + : + <newline> + EOO + + : single-empty + : + $* <"''" >>EOO + '' [S/C] + <newline> + EOO + + : double-empty + : + $* <'""' >>EOO + '' [D/C] + <newline> + EOO +} + +: part +{ + : quoted + { + : start + : Token start already quoted + : + $* <'"$foo"' >>EOO + '' [D/P] + $ [D/C] + 'foo' [D/P] + <newline> + EOO + + : end + : Token end still quoted + : + $* <'"foo$"' >>EOO + 'foo' [D/P] + $ [D/C] + '' [D/P] + <newline> + EOO + } + + : unquoted + { + : start + : Token starts with unquoted character + : + $* <'f"oo"' >>EOO + 'foo' [D/P] + <newline> + EOO + + : end + : Token continous with unquoted character + : + $* <'"fo"o' >>EOO + 'foo' [D/P] + <newline> + EOO + + : escape + : Token continous with unquoted escaped character + : + $* <'"fo"\"' >>EOO + 'fo"' [D/P] + <newline> + EOO + } +} + +: mixed +: +$* <"\"fo\"'o'" >>EOO +'foo' [M/P] +<newline> +EOO |