diff options
author | 2011-07-07 10:35:48 +0800 | |
---|---|---|
committer | 2011-07-20 23:08:30 +0800 | |
commit | c61ce956e4ffae69c34cf4e9448420d54d750047 (patch) | |
tree | bed8db7e18c1e4674566fd94d11718483c7b4e4a /bashast/gunit/fname.gunit | |
parent | Build: add antlr flags (diff) | |
download | libbash-c61ce956e4ffae69c34cf4e9448420d54d750047.tar.gz libbash-c61ce956e4ffae69c34cf4e9448420d54d750047.tar.bz2 libbash-c61ce956e4ffae69c34cf4e9448420d54d750047.zip |
Parser: remove global backtracking
Now several tests are not working: var_expansion.bash,
isolated_functions.bash, compound_command.bash, test_expr.bash,
test/ast_printer_test.sh, and test/verify_bashs_test.sh. We will fix
them in later commits.
Diffstat (limited to 'bashast/gunit/fname.gunit')
-rw-r--r-- | bashast/gunit/fname.gunit | 55 |
1 files changed, 30 insertions, 25 deletions
diff --git a/bashast/gunit/fname.gunit b/bashast/gunit/fname.gunit index 882afd1..b77ff50 100644 --- a/bashast/gunit/fname.gunit +++ b/bashast/gunit/fname.gunit @@ -18,7 +18,7 @@ */ gunit java_libbash; -fname: +string_expr: "+%Y%m%d" -> (STRING + % Y % m % d) "\"http://www.gnu.org/software/autoconf/autoconf.html\"" -> (STRING (DOUBLE_QUOTED_STRING http : / / www . gnu . org / software / autoconf / autoconf . html)) "\"http://dev.gentoo.org/~mpagano/genpatches\"" -> (STRING (DOUBLE_QUOTED_STRING http : / / dev . gentoo . org / ~ mpagano / genpatches)) @@ -36,40 +36,45 @@ fname: "'asdf\"asdf'" -> (STRING (SINGLE_QUOTED_STRING 'asdf"asdf')) "\"asdf'asdf\"" -> (STRING (DOUBLE_QUOTED_STRING asdf ' asdf)) "!/bin/bash" -> (STRING ! / bin / bash) -"ab?(g|h)"-> (STRING ab (EXTENDED_MATCH_AT_MOST_ONE (STRING g) (STRING h))) -"ab*(gh|i)" -> (STRING ab (EXTENDED_MATCH_ANY (STRING gh) (STRING i))) -"ab+(gh|i)" -> (STRING ab (EXTENDED_MATCH_AT_LEAST_ONE (STRING gh) (STRING i))) -"ab@(gh|i)" -> (STRING ab (EXTENDED_MATCH_EXACTLY_ONE (STRING gh) (STRING i))) -"ab!(gh|i)" -> (STRING ab (EXTENDED_MATCH_NONE (STRING gh) (STRING i))) "\"abc\"\'\"\'\"def\"" -> (STRING (DOUBLE_QUOTED_STRING abc) (SINGLE_QUOTED_STRING '"') (DOUBLE_QUOTED_STRING def)) "my\ name\ is" -> (STRING my \ name \ is) "octal\007" -> (STRING octal \ 007) "hex\xaF" -> (STRING hex \ xaF) "ctrlx\cx" -> (STRING ctrlx \ cx) "tab\\ttab" -> "(STRING tab \\ \t tab)" -"abc[def]" -> (STRING abc (MATCH_ANY def)) -"abc[d${more}]" -> (STRING abc (MATCH_ANY d (VAR_REF more))) -"abc[#d]" -> (STRING abc (MATCH_ANY # d)) -"abc[d#]" -> (STRING abc (MATCH_ANY d #)) "a[]" -> (STRING a [ ]) -"ab[d-h]" -> (STRING ab (MATCH_ANY d - h)) -"ab[!d-h]" -> (STRING ab (MATCH_ANY_EXCEPT d - h)) -"ab[^d-h]" -> (STRING ab (MATCH_ANY_EXCEPT d - h)) -"ab[]c]" -> (STRING ab (MATCH_ANY ] c)) -"ab[]!]" -> (STRING ab (MATCH_ANY ] !)) -"ab[:alpha:]" -> (STRING ab (MATCH_ANY : alpha :)) -"ab[=c=]" -> (STRING ab (MATCH_ANY = c =)) -"ab[.c.]" -> (STRING ab (MATCH_ANY . c .)) -"ab[[:alpha:]]" -> (STRING ab (MATCH_ANY (CHARACTER_CLASS alpha))) -"ab[[:alpha:][:digit:]]" -> (STRING ab (MATCH_ANY (CHARACTER_CLASS alpha) (CHARACTER_CLASS digit))) -"ab[^[:alpha:]]" -> (STRING ab (MATCH_ANY_EXCEPT (CHARACTER_CLASS alpha))) -"ab[[=c=]]" -> (STRING ab (MATCH_ANY (EQUIVALENCE_CLASS c))) -"ab[[.backslash.]]" -> (STRING ab (MATCH_ANY (COLLATING_SYMBOL backslash))) -"ab[12[:alpha:]]" -> (STRING ab (MATCH_ANY 12 (CHARACTER_CLASS alpha))) "\"'foo'\"" -> (STRING (DOUBLE_QUOTED_STRING ' foo ')) "--preserve=timestamps,mode" -> (STRING - - preserve = timestamps , mode) "$'asdf'" -> (STRING (ANSI_C_QUOTING 'asdf')) "\"abc#$/\"" -> (STRING (DOUBLE_QUOTED_STRING abc # $ /)) -dqstr: +condition_expr: +// bracket patterns +"[[ x == abc[def] ]]" -> (KEYWORD_TEST (MATCH_PATTERN (STRING x) abc (MATCH_ANY def))) +"[[ x == abc[d${more}] ]]" -> (KEYWORD_TEST (MATCH_PATTERN (STRING x) abc (MATCH_ANY d (VAR_REF more)))) +"[[ x==abc[#d] ]]" -> (KEYWORD_TEST (MATCH_PATTERN (STRING x) abc (MATCH_ANY # d))) +"[[ x==abc[d#] ]]" -> (KEYWORD_TEST (MATCH_PATTERN (STRING x) abc (MATCH_ANY d #))) +"[[ x==ab[d-h] ]]" -> (KEYWORD_TEST (MATCH_PATTERN (STRING x) ab (MATCH_ANY d - h))) +"[[ x==ab[!d-h] ]]" -> (KEYWORD_TEST (MATCH_PATTERN (STRING x) ab (MATCH_ANY_EXCEPT d - h))) +"[[ x==ab[^d-h] ]]" -> (KEYWORD_TEST (MATCH_PATTERN (STRING x) ab (MATCH_ANY_EXCEPT d - h))) +//"ab[]c]" -> (STRING ab (MATCH_ANY ] c)) +//"ab[]!]" -> (STRING ab (MATCH_ANY ] !)) +"[[ x==ab[:alpha:] ]]" -> (KEYWORD_TEST (MATCH_PATTERN (STRING x) ab (MATCH_ANY : alpha :))) +"[[ x==ab[=c=] ]]" -> (KEYWORD_TEST (MATCH_PATTERN (STRING x) ab (MATCH_ANY = c =))) +"[[ x==ab[.c.] ]]" -> (KEYWORD_TEST (MATCH_PATTERN (STRING x) ab (MATCH_ANY . c .))) +"[[ x==ab[[:alpha:]] ]]" -> (KEYWORD_TEST (MATCH_PATTERN (STRING x) ab (MATCH_ANY (CHARACTER_CLASS alpha)))) +"[[ x==ab[[:alpha:][:digit:]] ]]" -> (KEYWORD_TEST (MATCH_PATTERN (STRING x) ab (MATCH_ANY (CHARACTER_CLASS alpha) (CHARACTER_CLASS digit)))) +"[[ x==ab[^[:alpha:]] ]]" -> (KEYWORD_TEST (MATCH_PATTERN (STRING x) ab (MATCH_ANY_EXCEPT (CHARACTER_CLASS alpha)))) +"[[ x==ab[[=c=]] ]]" -> (KEYWORD_TEST (MATCH_PATTERN (STRING x) ab (MATCH_ANY (EQUIVALENCE_CLASS c)))) +"[[ x==ab[[.backslash.]] ]]" -> (KEYWORD_TEST (MATCH_PATTERN (STRING x) ab (MATCH_ANY (COLLATING_SYMBOL backslash)))) +"[[ x==ab[12[:alpha:]] ]]" -> (KEYWORD_TEST (MATCH_PATTERN (STRING x) ab (MATCH_ANY 12 (CHARACTER_CLASS alpha)))) + +// extended patterns +"[[ x==ab?(g|h) ]]" -> (KEYWORD_TEST (MATCH_PATTERN (STRING x) ab (EXTENDED_MATCH_AT_MOST_ONE (BRANCH g) (BRANCH h)))) +"[[ x==ab*(gh|i) ]]" -> (KEYWORD_TEST (MATCH_PATTERN (STRING x) ab (EXTENDED_MATCH_ANY (BRANCH gh) (BRANCH i)))) +"[[ x==ab+(gh|i) ]]" -> (KEYWORD_TEST (MATCH_PATTERN (STRING x) ab (EXTENDED_MATCH_AT_LEAST_ONE (BRANCH gh) (BRANCH i)))) +"[[ x==ab@(gh|i) ]]" -> (KEYWORD_TEST (MATCH_PATTERN (STRING x) ab (EXTENDED_MATCH_EXACTLY_ONE (BRANCH gh) (BRANCH i)))) +"[[ x==ab!(gh|i) ]]" -> (KEYWORD_TEST (MATCH_PATTERN (STRING x) ab (EXTENDED_MATCH_NONE (BRANCH gh) (BRANCH i)))) + +double_quoted_string: "\"\\\\\"\$\`\"" -> (DOUBLE_QUOTED_STRING \ " \$ \`) |