runtime(vim): Update base-syntax, match continued strings and tail comments
Continued strings are currently only matched after operators, in
parenthesised expressions and in function call argument lists.
closes: #14975
Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
diff --git a/runtime/syntax/testdir/dumps/vim9_comment_00.dump b/runtime/syntax/testdir/dumps/vim9_comment_00.dump
index de9798d..46d283f 100644
--- a/runtime/syntax/testdir/dumps/vim9_comment_00.dump
+++ b/runtime/syntax/testdir/dumps/vim9_comment_00.dump
@@ -13,7 +13,7 @@
|e+0#af5f00255&|n|d|f|u|n|c|t|i|o|n| +0#0000000&@63
@75
|d+0#af5f00255&|e|f|!| +0#0000000&|B|a|r|(+0#e000e06&|)| +0#0000000&@64
-| +0#0000e05&@1|#| |V|i|m|9|-|s|c|r|i|p|t| |c|o|m@1|e|n|t| +0#0000000&@51
+@2|#+0#0000e05&| |V|i|m|9|-|s|c|r|i|p|t| |c|o|m@1|e|n|t| +0#0000000&@51
@2|"+0#e000002&|u|s|e|l|e|s@1| |s|t|r|i|n|g|"| +0#0000000&|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@46
|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@68
@75
diff --git a/runtime/syntax/testdir/dumps/vim9_comment_01.dump b/runtime/syntax/testdir/dumps/vim9_comment_01.dump
index 30d3ccf..3eee3e9 100644
--- a/runtime/syntax/testdir/dumps/vim9_comment_01.dump
+++ b/runtime/syntax/testdir/dumps/vim9_comment_01.dump
@@ -1,20 +1,20 @@
| +0&#ffffff0@74
|d+0#af5f00255&|e|f|!| +0#0000000&|B|a|r|(+0#e000e06&|)| +0#0000000&@64
-| +0#0000e05&@1|#| |V|i|m|9|-|s|c|r|i|p|t| |c|o|m@1|e|n|t| +0#0000000&@51
+@2|#+0#0000e05&| |V|i|m|9|-|s|c|r|i|p|t| |c|o|m@1|e|n|t| +0#0000000&@51
@2|"+0#e000002&|u|s|e|l|e|s@1| |s|t|r|i|n|g|"| +0#0000000&|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@46
|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@68
> @74
|c+0#af5f00255&|o|m@1|a|n|d| +0#0000000&|-+0#e000e06&|c|o|u|n|t| +0#0000000&|F|o@1|C|o|m@1|a|n|d| |{+0#e000e06&| +0#0000000&@47
-| +0#0000e05&@1|#| |V|i|m|9|-|s|c|r|i|p|t| |c|o|m@1|e|n|t| +0#0000000&@51
+@2|#+0#0000e05&| |V|i|m|9|-|s|c|r|i|p|t| |c|o|m@1|e|n|t| +0#0000000&@51
@2|"+0#e000002&|u|s|e|l|e|s@1| |s|t|r|i|n|g|"| +0#0000000&|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@46
|}+0#e000e06&| +0#0000000&@73
@75
|a+0#af5f00255&|u|t|o|c|m|d| +0#0000000&|B+0#00e0003&|u|f|N|e|w|F|i|l|e| +0#0000000&|*+0#e000e06&| +0#0000000&|{+0#e000e06&| +0#0000000&@52
-| +0#0000e05&@1|#| |V|i|m|9|-|s|c|r|i|p|t| |c|o|m@1|e|n|t| +0#0000000&@51
+@2|#+0#0000e05&| |V|i|m|9|-|s|c|r|i|p|t| |c|o|m@1|e|n|t| +0#0000000&@51
@2|"+0#e000002&|u|s|e|l|e|s@1| |s|t|r|i|n|g|"| +0#0000000&|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@46
|}+0#e000e06&| +0#0000000&@73
@75
@75
|#+0#0000e05&| |M|u|l|t|i|l|i|n|e| |c|o|m@1|e|n|t|s| +0#0000000&@54
@75
-@57|1|9|,|0|-|1| @7|2|8|%|
+@57|1|9|,|0|-|1| @7|2|6|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_comment_02.dump b/runtime/syntax/testdir/dumps/vim9_comment_02.dump
index e6a4de5..7a63091 100644
--- a/runtime/syntax/testdir/dumps/vim9_comment_02.dump
+++ b/runtime/syntax/testdir/dumps/vim9_comment_02.dump
@@ -3,7 +3,11 @@
| +0#0000e05&@1|\| |c|o|n|t|i|n|u|i|n|g| |c|o|m@1|e|n|t| +0#0000000&@52
| +0#0000e05&@1|\| |c|o|n|t|i|n|u|i|n|g| |c|o|m@1|e|n|t| +0#0000000&@52
@75
->#+0#0000e05&| |:|F|o@1| +0#0000000&@68
+>v+0#af5f00255&|a|r| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|4+0#e000002&|2| +0#0000000&|#+0#0000e05&| |c|o|m@2|e|n|t| +0#0000000&@51
+| +0#0000e05&@1|\| |c|o|n|t|i|n|u|i|n|g| |c|o|m@1|e|n|t| +0#0000000&@52
+| +0#0000e05&@1|\| |c|o|n|t|i|n|u|i|n|g| |c|o|m@1|e|n|t| +0#0000000&@52
+@75
+|#+0#0000e05&| |:|F|o@1| +0#0000000&@68
| +0#0000e05&@5|\| |a|r|g|1| +0#0000000&@62
| +0#0000e05&@5|#|\| |c|o|m@1|e|n|t| +0#0000000&@58
| +0#0000e05&@5|\| |a|r|g|2| +0#0000000&@62
@@ -13,8 +17,4 @@
@75
|#+0#0000e05&| |L|i|n|e|-|c|o|n|t|i|n|u|a|t|i|o|n| |c|o|m@1|e|n|t|s| +0#0000000&@46
@75
-|:|F|o@1| @70
-@6|#+0#0000e05&|\| |l|i|n|e| |c|o|n|t|i|n|u|a|t|i|o|n| |c|o|m@1|e|n|t| +0#0000000&@40
-@6|\+0#e000e06&| +0#0000000&|a|r|g|1| @62
-@6|#+0#0000e05&|\| |l|i|n|e| |c|o|n|t|i|n|u|a|t|i|o|n| |c|o|m@1|e|n|t| +0#0000000&@40
-@57|3|7|,|1| @9|6|8|%|
+@57|3|7|,|1| @9|6|3|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_comment_03.dump b/runtime/syntax/testdir/dumps/vim9_comment_03.dump
index d026a44..daede60 100644
--- a/runtime/syntax/testdir/dumps/vim9_comment_03.dump
+++ b/runtime/syntax/testdir/dumps/vim9_comment_03.dump
@@ -1,9 +1,13 @@
-| +0&#ffffff0@5|#+0#0000e05&|\| |l|i|n|e| |c|o|n|t|i|n|u|a|t|i|o|n| |c|o|m@1|e|n|t| +0#0000000&@40
-@6|\+0#e000e06&| +0#0000000&|a|r|g|2| @62
+| +0&#ffffff0@74
+|:|F|o@1| @70
+@6|#+0#0000e05&|\| |l|i|n|e| |c|o|n|t|i|n|u|a|t|i|o|n| |c|o|m@1|e|n|t| +0#0000000&@40
+@6|\+0#e000e06&| +0#0000000&|a|r|g|1| @62
+@6|#+0#0000e05&|\| |l|i|n|e| |c|o|n|t|i|n|u|a|t|i|o|n| |c|o|m@1|e|n|t| +0#0000000&@40
+@6>\+0#e000e06&| +0#0000000&|a|r|g|2| @62
@75
@75
|#+0#0000e05&| +0#0000000&|I+0#e000e06&|s@1|u|e|:| +0#0000e05&|#|1|3|0|4|7| +0#0000000&@59
-> @74
+@75
|i+0#af5f00255&|f| +0#0000000&|!+0#af5f00255&|e+0#00e0e07&|x|i|s|t|s|(+0#e000e06&|"+0#e000002&|:|D|i|f@1|O|r|i|g|"|)+0#e000e06&| +0#0000000&@51
@2|c+0#af5f00255&|o|m@1|a|n|d| +0#0000000&|D|i|f@1|O|r|i|g| |v+0#af5f00255&|e|r|t| +0#0000000&|n+0#af5f00255&|e|w| +0#0000000&||| |s+0#af5f00255&|e|t| +0#0000000&|b+0#e000e06&|t|=+0#af5f00255&|n+0#0000000&|o|f|i|l|e| ||| |r+0#af5f00255&| +0#0000000&|++0#af5f00255&@1|e+0#00e0e07&|d|i|t| +0#0000000&|%+0#af5f00255&@1| +0#0000000&||| |0+0#e000002&|d+0#0000000&|_| ||| |d+0#af5f00255&|i|f@1|t|h|i|s| +0#0000000&
@18|\+0#e000e06&| +0#0000000&||| |w+0#af5f00255&|i|n|c|m|d| +0#0000000&|p+0#af5f00255&| +0#0000000&||| |d+0#af5f00255&|i|f@1|t|h|i|s| +0#0000000&@33
@@ -13,8 +17,4 @@
|#+0#0000e05&| +0#0000000&|I+0#e000e06&|s@1|u|e|:| +0#0000e05&|#|1@1|3|0|7| |a|n|d| |#|1@1|5|6|0| +0#0000000&@48
@75
|#+0#0000e05&| |T|h|i|s| |i|s| |w|h|a|t| |w|e| |c|a|l@1| |"| |b|l|a|h| +0#0000000&@45
-|~+0#4040ff13&| @73
-|~| @73
-|~| @73
-|~| @73
-| +0#0000000&@56|5@1|,|0|-|1| @7|B|o|t|
+@57|5@1|,|7| @9|B|o|t|
diff --git a/runtime/syntax/testdir/dumps/vim9_def_variables_00.dump b/runtime/syntax/testdir/dumps/vim9_def_variables_00.dump
index 6f7cd59..82b9764 100644
--- a/runtime/syntax/testdir/dumps/vim9_def_variables_00.dump
+++ b/runtime/syntax/testdir/dumps/vim9_def_variables_00.dump
@@ -3,7 +3,7 @@
|#+0#0000e05&| |V|i|m|9| |f|u|n|c|t|i|o|n| |v|a|r|i|a|b|l|e| |h|i|g|h|l|i|g|h|t|i|n|g| +0#0000000&@37
@75
|d+0#af5f00255&|e|f| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&@65
-| +0#0000e05&@1|#| |D|e|c|l|a|r|a|t|i|o|n|s| +0#0000000&@58
+@2|#+0#0000e05&| |D|e|c|l|a|r|a|t|i|o|n|s| +0#0000000&@58
@75
@2|v+0#af5f00255&|a|r| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@58
@75
diff --git a/runtime/syntax/testdir/dumps/vim9_def_variables_03.dump b/runtime/syntax/testdir/dumps/vim9_def_variables_03.dump
index dd75ae8..938b20e 100644
--- a/runtime/syntax/testdir/dumps/vim9_def_variables_03.dump
+++ b/runtime/syntax/testdir/dumps/vim9_def_variables_03.dump
@@ -1,5 +1,5 @@
| +0&#ffffff0@74
-| +0#0000e05&@1|#| |A|s@1|i|g|n|m|e|n|t|s| +0#0000000&@59
+@2|#+0#0000e05&| |A|s@1|i|g|n|m|e|n|t|s| +0#0000000&@59
@75
@1| +0#00e0e07&|f|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@62
@75
diff --git a/runtime/syntax/testdir/dumps/vim9_def_variables_10.dump b/runtime/syntax/testdir/dumps/vim9_def_variables_10.dump
index a0d6b80..c802c88 100644
--- a/runtime/syntax/testdir/dumps/vim9_def_variables_10.dump
+++ b/runtime/syntax/testdir/dumps/vim9_def_variables_10.dump
@@ -16,5 +16,5 @@
| +0#e000002&@3|.@2| +0#0000000&@67
| +0#e000e06&@1|E|N|D| +0#0000000&@69
@75
-| +0#0000e05&@1|#| |:|f|o|r| +0#0000000&@66
+@2|#+0#0000e05&| |:|f|o|r| +0#0000000&@66
@57|1|8|1|,|3| @8|8|4|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_def_variables_11.dump b/runtime/syntax/testdir/dumps/vim9_def_variables_11.dump
index abe24e7..496b3ed 100644
--- a/runtime/syntax/testdir/dumps/vim9_def_variables_11.dump
+++ b/runtime/syntax/testdir/dumps/vim9_def_variables_11.dump
@@ -1,4 +1,4 @@
-| +0#0000e05#ffffff0@1|#| |:|f|o|r| +0#0000000&@66
+| +0&#ffffff0@1|#+0#0000e05&| |:|f|o|r| +0#0000000&@66
@75
@2|f+0#af5f00255&|o|r| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|i+0#af5f00255&|n| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@57
@2|e+0#af5f00255&|n|d|f|o|r| +0#0000000&@66
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_comment_strings_00.dump b/runtime/syntax/testdir/dumps/vim9_ex_comment_strings_00.dump
index b36eb62..ef9f580 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_comment_strings_00.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_comment_strings_00.dump
@@ -10,11 +10,11 @@
|e+0#af5f00255&|n|d|f|u|n|c|t|i|o|n| +0#0000000&@63
@75
|d+0#af5f00255&|e|f| +0#0000000&|B|a|r|(+0#e000e06&|)| +0#0000000&@65
-| +0#0000e05&@1|#| |p|r|e| |"+0#e000002&|s|t|r|i|n|g|"| +0#0000e05&|p|o|s|t| +0#0000000&@53
+@2|#+0#0000e05&| |p|r|e| |"+0#e000002&|s|t|r|i|n|g|"| +0#0000e05&|p|o|s|t| +0#0000000&@53
|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@68
@75
|c+0#af5f00255&|o|m@1|a|n|d| +0#0000000&|F|o@1| |{+0#e000e06&| +0#0000000&@61
-| +0#0000e05&@1|#| |p|r|e| |"+0#e000002&|s|t|r|i|n|g|"| +0#0000e05&|p|o|s|t| +0#0000000&@53
+@2|#+0#0000e05&| |p|r|e| |"+0#e000002&|s|t|r|i|n|g|"| +0#0000e05&|p|o|s|t| +0#0000000&@53
|}+0#e000e06&| +0#0000000&@73
@75
@57|1|,|1| @10|T|o|p|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_comment_strings_01.dump b/runtime/syntax/testdir/dumps/vim9_ex_comment_strings_01.dump
index 18f7648..6e03991 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_comment_strings_01.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_comment_strings_01.dump
@@ -1,11 +1,11 @@
|e+0#af5f00255#ffffff0|n|d@1|e|f| +0#0000000&@68
@75
|c+0#af5f00255&|o|m@1|a|n|d| +0#0000000&|F|o@1| |{+0#e000e06&| +0#0000000&@61
-| +0#0000e05&@1|#| |p|r|e| |"+0#e000002&|s|t|r|i|n|g|"| +0#0000e05&|p|o|s|t| +0#0000000&@53
+@2|#+0#0000e05&| |p|r|e| |"+0#e000002&|s|t|r|i|n|g|"| +0#0000e05&|p|o|s|t| +0#0000000&@53
|}+0#e000e06&| +0#0000000&@73
> @74
|a+0#af5f00255&|u|t|o|c|m|d| +0#0000000&|B+0#00e0003&|u|f|N|e|w|F|i|l|e| +0#0000000&|*+0#e000e06&| +0#0000000&|{+0#e000e06&| +0#0000000&@52
-| +0#0000e05&@1|#| |p|r|e| |"+0#e000002&|s|t|r|i|n|g|"| +0#0000e05&|p|o|s|t| +0#0000000&@53
+@2|#+0#0000e05&| |p|r|e| |"+0#e000002&|s|t|r|i|n|g|"| +0#0000e05&|p|o|s|t| +0#0000000&@53
|}+0#e000e06&| +0#0000000&@73
|~+0#4040ff13&| @73
|~| @73
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_interface_fold_01.dump b/runtime/syntax/testdir/dumps/vim9_ex_interface_fold_01.dump
index 12394b8..543ad01 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_interface_fold_01.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_interface_fold_01.dump
@@ -9,7 +9,7 @@
|-+0#0000e05#a8a8a8255| |i+0#af5f00255#ffffff0|n|t|e|r|f|a|c|e| +0#0000000&|I|n|t|e|r|f|a|c|e|4| @52
||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@61
||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|v+0#af5f00255&|a|r| +0#0000000&|v+0#00e0e07&|a|r|1|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&@54
-||+0#0000e05#a8a8a8255| | +0&#ffffff0@1|#| |c|o|m@1|e|n|t| +0#0000000&@61
+||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@61
||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|d+0#af5f00255&|e|f| +0#0000000&|M|e|t|h|1|(+0#e000e06&|)|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&@51
||+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|d|i|n|t|e|r|f|a|c|e| +0#0000000&@60
| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_interface_fold_02.dump b/runtime/syntax/testdir/dumps/vim9_ex_interface_fold_02.dump
index 0cd6495..06b0359 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_interface_fold_02.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_interface_fold_02.dump
@@ -1,5 +1,5 @@
||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|v+0#af5f00255&|a|r| +0#0000000&|v+0#00e0e07&|a|r|2|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&@54
-||+0#0000e05#a8a8a8255| | +0&#ffffff0@1|#| |c|o|m@1|e|n|t| +0#0000000&@61
+||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@61
||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|d+0#af5f00255&|e|f| +0#0000000&|M|e|t|h|1|(+0#e000e06&|)|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&@51
||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|d+0#af5f00255&|e|f| +0#0000000&|M|e|t|h|2|(+0#e000e06&|)|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&@51
||+0#0000e05#a8a8a8255| >e+0#af5f00255#ffffff0|n|d|i|n|t|e|r|f|a|c|e| +0#0000000&@60
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_no_comment_strings_00.dump b/runtime/syntax/testdir/dumps/vim9_ex_no_comment_strings_00.dump
index 9708525..191b9f2 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_no_comment_strings_00.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_no_comment_strings_00.dump
@@ -10,11 +10,11 @@
|e+0#af5f00255&|n|d|f|u|n|c|t|i|o|n| +0#0000000&@63
@75
|d+0#af5f00255&|e|f| +0#0000000&|B|a|r|(+0#e000e06&|)| +0#0000000&@65
-| +0#0000e05&@1|#| |p|r|e| |"|s|t|r|i|n|g|"| |p|o|s|t| +0#0000000&@53
+@2|#+0#0000e05&| |p|r|e| |"|s|t|r|i|n|g|"| |p|o|s|t| +0#0000000&@53
|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@68
@75
|c+0#af5f00255&|o|m@1|a|n|d| +0#0000000&|F|o@1| |{+0#e000e06&| +0#0000000&@61
-| +0#0000e05&@1|#| |p|r|e| |"|s|t|r|i|n|g|"| |p|o|s|t| +0#0000000&@53
+@2|#+0#0000e05&| |p|r|e| |"|s|t|r|i|n|g|"| |p|o|s|t| +0#0000000&@53
|}+0#e000e06&| +0#0000000&@73
@75
@57|1|,|1| @10|T|o|p|
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_no_comment_strings_01.dump b/runtime/syntax/testdir/dumps/vim9_ex_no_comment_strings_01.dump
index 118fcaf..2613567 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_no_comment_strings_01.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_no_comment_strings_01.dump
@@ -1,11 +1,11 @@
|e+0#af5f00255#ffffff0|n|d@1|e|f| +0#0000000&@68
@75
|c+0#af5f00255&|o|m@1|a|n|d| +0#0000000&|F|o@1| |{+0#e000e06&| +0#0000000&@61
-| +0#0000e05&@1|#| |p|r|e| |"|s|t|r|i|n|g|"| |p|o|s|t| +0#0000000&@53
+@2|#+0#0000e05&| |p|r|e| |"|s|t|r|i|n|g|"| |p|o|s|t| +0#0000000&@53
|}+0#e000e06&| +0#0000000&@73
> @74
|a+0#af5f00255&|u|t|o|c|m|d| +0#0000000&|B+0#00e0003&|u|f|N|e|w|F|i|l|e| +0#0000000&|*+0#e000e06&| +0#0000000&|{+0#e000e06&| +0#0000000&@52
-| +0#0000e05&@1|#| |p|r|e| |"|s|t|r|i|n|g|"| |p|o|s|t| +0#0000000&@53
+@2|#+0#0000e05&| |p|r|e| |"|s|t|r|i|n|g|"| |p|o|s|t| +0#0000000&@53
|}+0#e000e06&| +0#0000000&@73
|~+0#4040ff13&| @73
|~| @73
diff --git a/runtime/syntax/testdir/dumps/vim9_expr_02.dump b/runtime/syntax/testdir/dumps/vim9_expr_02.dump
index f8b6d90..484ff4d 100644
--- a/runtime/syntax/testdir/dumps/vim9_expr_02.dump
+++ b/runtime/syntax/testdir/dumps/vim9_expr_02.dump
@@ -11,7 +11,7 @@
|e+0#af5f00255&|c|h|o| +0#0000000&|{+0#e000e06&| +0#0000000&|"+0#e000002&|f|o@1|"|:+0#0000000&| |{+0#e000e06&| +0#0000000&|"+0#e000002&|b|a|r|"|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@41
@75
|e+0#af5f00255&|c|h|o| +0#0000000&|{+0#e000e06&| +0#0000000&@68
-| +0#0000e05&@1|#| |c|o|m@1|e|n|t| +0#0000000&@63
+@2|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@63
@2|f+0#00e0e07&|o@1|:+0#0000000&| |{+0#e000e06&| +0#0000000&@66
@4|b+0#00e0e07&|a|r|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&@59
@2|}+0#e000e06&| +0#0000000&@71
diff --git a/runtime/syntax/testdir/dumps/vim9_super_this_keywords2_02.dump b/runtime/syntax/testdir/dumps/vim9_super_this_keywords2_02.dump
index f9449f5..9f99852 100644
--- a/runtime/syntax/testdir/dumps/vim9_super_this_keywords2_02.dump
+++ b/runtime/syntax/testdir/dumps/vim9_super_this_keywords2_02.dump
@@ -3,18 +3,18 @@
@75
|c+0#af5f00255&|l|a|s@1| +0#0000000&|C| |e+0#af5f00255&|x|t|e|n|d|s| +0#0000000&|A| @57
@2|#+0#0000e05&@3| |E|1@1|7| +0#0000000&@63
-| +0#0000e05&@1>#| @2|d|e|f| |n|e|w|(|v|a|l|u|e|:| |s|t|r|i|n|g|)| +0#0000000&@46
-| +0#0000e05&@1|#| @6|s|u|p|e|r|(|v|a|l|u|e|)| +0#0000000&@52
-| +0#0000e05&@1|#| @2|e|n|d@1|e|f| +0#0000000&@62
+@2>#+0#0000e05&| @2|d|e|f| |n|e|w|(|v|a|l|u|e|:| |s|t|r|i|n|g|)| +0#0000000&@46
+@2|#+0#0000e05&| @6|s|u|p|e|r|(|v|a|l|u|e|)| +0#0000000&@52
+@2|#+0#0000e05&| @2|e|n|d@1|e|f| +0#0000000&@62
@75
-| +0#0000e05&@1|#@3| |E|1|0|3|4| +0#0000000&@62
-| +0#0000e05&@1|#| @2|d|e|f| |n|e|w|(|s|u|p|e|r|.|_|v|a|l|u|e|)| +0#0000000&@47
-| +0#0000e05&@1|#| @2|e|n|d@1|e|f| +0#0000000&@62
+@2|#+0#0000e05&@3| |E|1|0|3|4| +0#0000000&@62
+@2|#+0#0000e05&| @2|d|e|f| |n|e|w|(|s|u|p|e|r|.|_|v|a|l|u|e|)| +0#0000000&@47
+@2|#+0#0000e05&| @2|e|n|d@1|e|f| +0#0000000&@62
@75
-| +0#0000e05&@1|#@3| |E|1|0|3|4| +0#0000000&@62
-| +0#0000e05&@1|#| @2|d|e|f| |n|e|w|(|v|a|l|u|e|:| |s|t|r|i|n|g|)| +0#0000000&@46
-| +0#0000e05&@1|#| @6|s|u|p|e|r|.|_|v|a|l|u|e| |=| |v|a|l|u|e| +0#0000000&@44
-| +0#0000e05&@1|#| @2|e|n|d@1|e|f| +0#0000000&@62
+@2|#+0#0000e05&@3| |E|1|0|3|4| +0#0000000&@62
+@2|#+0#0000e05&| @2|d|e|f| |n|e|w|(|v|a|l|u|e|:| |s|t|r|i|n|g|)| +0#0000000&@46
+@2|#+0#0000e05&| @6|s|u|p|e|r|.|_|v|a|l|u|e| |=| |v|a|l|u|e| +0#0000000&@44
+@2|#+0#0000e05&| @2|e|n|d@1|e|f| +0#0000000&@62
@75
-| +0#0000e05&@1|#@3| |E|1|3|5|6| +0#0000000&@62
+@2|#+0#0000e05&@3| |E|1|3|5|6| +0#0000000&@62
@57|3|7|,|3| @9|7|0|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_super_this_keywords2_03.dump b/runtime/syntax/testdir/dumps/vim9_super_this_keywords2_03.dump
index 95ff495..17439c3 100644
--- a/runtime/syntax/testdir/dumps/vim9_super_this_keywords2_03.dump
+++ b/runtime/syntax/testdir/dumps/vim9_super_this_keywords2_03.dump
@@ -1,7 +1,7 @@
-| +0#0000e05#ffffff0@1|#@3| |E|1|3|5|6| +0#0000000&@62
-| +0#0000e05&@1|#| @2|d|e|f| |S|u|p|e|r|(|)|:| |A| +0#0000000&@54
-| +0#0000e05&@1|#| @6|r|e|t|u|r|n| |s|u|p|e|r| +0#0000000&@52
-| +0#0000e05&@1|#| @2|e|n|d@1|e|f| +0#0000000&@62
+| +0&#ffffff0@1|#+0#0000e05&@3| |E|1|3|5|6| +0#0000000&@62
+@2|#+0#0000e05&| @2|d|e|f| |S|u|p|e|r|(|)|:| |A| +0#0000000&@54
+@2|#+0#0000e05&| @6|r|e|t|u|r|n| |s|u|p|e|r| +0#0000000&@52
+@2|#+0#0000e05&| @2|e|n|d@1|e|f| +0#0000000&@62
@75
@2>d+0#af5f00255&|e|f| +0#0000000&|T|h|i|s|(+0#e000e06&|)|:+0#0000000&| |C| @59
@4|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|t+0#0000001#ffff4012|h|i|s| +0#0000000#ffffff0@59
diff --git a/runtime/syntax/testdir/dumps/vim_comment_00.dump b/runtime/syntax/testdir/dumps/vim_comment_00.dump
index 1e99be9..da4f490 100644
--- a/runtime/syntax/testdir/dumps/vim_comment_00.dump
+++ b/runtime/syntax/testdir/dumps/vim_comment_00.dump
@@ -10,11 +10,11 @@
|e+0#af5f00255&|n|d|f|u|n|c|t|i|o|n| +0#0000000&@63
@75
|d+0#af5f00255&|e|f|!| +0#0000000&|B|a|r|(+0#e000e06&|)| +0#0000000&@64
-| +0#0000e05&@1|#| |V|i|m|9|-|s|c|r|i|p|t| |c|o|m@1|e|n|t| +0#0000000&@51
+@2|#+0#0000e05&| |V|i|m|9|-|s|c|r|i|p|t| |c|o|m@1|e|n|t| +0#0000000&@51
@2|"+0#e000002&|u|s|e|l|e|s@1| |s|t|r|i|n|g|"| +0#0000000&|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@46
|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@68
@75
|c+0#af5f00255&|o|m@1|a|n|d| +0#0000000&|-+0#e000e06&|n|a|r|g|s|=|1+0#00e0003&| +0#0000000&|F|o@1|C|o|m@1|a|n|d| |{+0#e000e06&| +0#0000000&@45
-| +0#0000e05&@1|#| |V|i|m|9|-|s|c|r|i|p|t| |c|o|m@1|e|n|t| +0#0000000&@51
+@2|#+0#0000e05&| |V|i|m|9|-|s|c|r|i|p|t| |c|o|m@1|e|n|t| +0#0000000&@51
@2|"+0#e000002&|u|s|e|l|e|s@1| |s|t|r|i|n|g|"| +0#0000000&|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@46
@57|1|,|1| @10|T|o|p|
diff --git a/runtime/syntax/testdir/dumps/vim_comment_01.dump b/runtime/syntax/testdir/dumps/vim_comment_01.dump
index 1bb6e7b..4b8a47f 100644
--- a/runtime/syntax/testdir/dumps/vim_comment_01.dump
+++ b/runtime/syntax/testdir/dumps/vim_comment_01.dump
@@ -2,12 +2,12 @@
|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@68
@75
|c+0#af5f00255&|o|m@1|a|n|d| +0#0000000&|-+0#e000e06&|n|a|r|g|s|=|1+0#00e0003&| +0#0000000&|F|o@1|C|o|m@1|a|n|d| |{+0#e000e06&| +0#0000000&@45
-| +0#0000e05&@1|#| |V|i|m|9|-|s|c|r|i|p|t| |c|o|m@1|e|n|t| +0#0000000&@51
+@2|#+0#0000e05&| |V|i|m|9|-|s|c|r|i|p|t| |c|o|m@1|e|n|t| +0#0000000&@51
@2>"+0#e000002&|u|s|e|l|e|s@1| |s|t|r|i|n|g|"| +0#0000000&|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@46
|}+0#e000e06&| +0#0000000&@73
@75
|a+0#af5f00255&|u|t|o|c|m|d| +0#0000000&|B+0#00e0003&|u|f|N|e|w|F|i|l|e| +0#0000000&|*+0#e000e06&| +0#0000000&|{+0#e000e06&| +0#0000000&@52
-| +0#0000e05&@1|#| |V|i|m|9|-|s|c|r|i|p|t| |c|o|m@1|e|n|t| +0#0000000&@51
+@2|#+0#0000e05&| |V|i|m|9|-|s|c|r|i|p|t| |c|o|m@1|e|n|t| +0#0000000&@51
@2|"+0#e000002&|u|s|e|l|e|s@1| |s|t|r|i|n|g|"| +0#0000000&|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@46
|}+0#e000e06&| +0#0000000&@73
@75
@@ -17,4 +17,4 @@
|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@65
| +0#0000e05&@1|\| |c|o|n|t|i|n|u|i|n|g| |c|o|m@1|e|n|t| +0#0000000&@52
| +0#0000e05&@1|\| |c|o|n|t|i|n|u|i|n|g| |c|o|m@1|e|n|t| +0#0000000&@52
-@57|1|9|,|3| @9|2|6|%|
+@57|1|9|,|3| @9|2|4|%|
diff --git a/runtime/syntax/testdir/dumps/vim_comment_02.dump b/runtime/syntax/testdir/dumps/vim_comment_02.dump
index 8e31fb6..e1411eb 100644
--- a/runtime/syntax/testdir/dumps/vim_comment_02.dump
+++ b/runtime/syntax/testdir/dumps/vim_comment_02.dump
@@ -1,9 +1,13 @@
| +0#0000e05#ffffff0@1|\| |c|o|n|t|i|n|u|i|n|g| |c|o|m@1|e|n|t| +0#0000000&@52
@75
+|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|4+0#e000002&|2| +0#0000000&|"+0#0000e05&| |c|o|m@2|e|n|t| +0#0000000&@51
+| +0#0000e05&@1|\| |c|o|n|t|i|n|u|i|n|g| |c|o|m@1|e|n|t| +0#0000000&@52
+| +0#0000e05&@1|\| |c|o|n|t|i|n|u|i|n|g| |c|o|m@1|e|n|t| +0#0000000&@52
+> @74
|"+0#0000e05&| |:|F|o@1| +0#0000000&@68
| +0#0000e05&@5|\| |a|r|g|1| +0#0000000&@62
| +0#0000e05&@5|"|\| |c|o|m@1|e|n|t| +0#0000000&@58
-| +0#0000e05&@5>\| |a|r|g|2| +0#0000000&@62
+| +0#0000e05&@5|\| |a|r|g|2| +0#0000000&@62
@75
|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|T|O|P|"| +0#0000000&@64
@75
@@ -13,8 +17,4 @@
|:|F|o@1| @70
@6|"+0#0000e05&|\| |l|i|n|e| |c|o|n|t|i|n|u|a|t|i|o|n| |c|o|m@1|e|n|t| +0#0000000&@40
@6|\+0#e000e06&| +0#0000000&|a|r|g|1| @62
-@6|"+0#0000e05&|\| |l|i|n|e| |c|o|n|t|i|n|u|a|t|i|o|n| |c|o|m@1|e|n|t| +0#0000000&@40
-@6|\+0#e000e06&| +0#0000000&|a|r|g|2| @62
-@75
-@75
-@57|3|7|,|7| @9|6|3|%|
+@57|3|7|,|0|-|1| @7|5|8|%|
diff --git a/runtime/syntax/testdir/dumps/vim_comment_03.dump b/runtime/syntax/testdir/dumps/vim_comment_03.dump
index 107afd1..a588686 100644
--- a/runtime/syntax/testdir/dumps/vim_comment_03.dump
+++ b/runtime/syntax/testdir/dumps/vim_comment_03.dump
@@ -1,9 +1,13 @@
-| +0&#ffffff0@74
-|"+0#0000e05&| +0#0000000&|I+0#e000e06&|s@1|u|e|:| +0#0000e05&|#|1|3|0|4|7| +0#0000000&@59
+| +0&#ffffff0@5|\+0#e000e06&| +0#0000000&|a|r|g|1| @62
+@6|"+0#0000e05&|\| |l|i|n|e| |c|o|n|t|i|n|u|a|t|i|o|n| |c|o|m@1|e|n|t| +0#0000000&@40
+@6|\+0#e000e06&| +0#0000000&|a|r|g|2| @62
+@75
+@75
+>"+0#0000e05&| +0#0000000&|I+0#e000e06&|s@1|u|e|:| +0#0000e05&|#|1|3|0|4|7| +0#0000000&@59
@75
|i+0#af5f00255&|f| +0#0000000&|!+0#af5f00255&|e+0#00e0e07&|x|i|s|t|s|(+0#e000e06&|"+0#e000002&|:|D|i|f@1|O|r|i|g|"|)+0#e000e06&| +0#0000000&@51
@2|c+0#af5f00255&|o|m@1|a|n|d| +0#0000000&|D|i|f@1|O|r|i|g| |v+0#af5f00255&|e|r|t| +0#0000000&|n+0#af5f00255&|e|w| +0#0000000&||| |s+0#af5f00255&|e|t| +0#0000000&|b+0#e000e06&|t|=+0#af5f00255&|n+0#0000000&|o|f|i|l|e| ||| |r+0#af5f00255&| +0#0000000&|++0#af5f00255&@1|e+0#00e0e07&|d|i|t| +0#0000000&|#| ||| |0+0#e000002&|d+0#0000000&|_| ||| |d+0#af5f00255&|i|f@1|t|h|i|s| +0#0000000&@1
-@18>\+0#e000e06&| +0#0000000&||| |w+0#af5f00255&|i|n|c|m|d| +0#0000000&|p+0#af5f00255&| +0#0000000&||| |d+0#af5f00255&|i|f@1|t|h|i|s| +0#0000000&@33
+@18|\+0#e000e06&| +0#0000000&||| |w+0#af5f00255&|i|n|c|m|d| +0#0000000&|p+0#af5f00255&| +0#0000000&||| |d+0#af5f00255&|i|f@1|t|h|i|s| +0#0000000&@33
|e+0#af5f00255&|n|d|i|f| +0#0000000&@69
@75
@75
@@ -13,8 +17,4 @@
@75
@75
|"+0#0000e05&| |I|s@1|u|e| |#| |#|9|5|8|7| +0#0000000&@59
-@75
-|d+0#af5f00255&|e|f| +0#0000000&|C|o|m@1|e|n|t|T|i|t|l|e|(+0#e000e06&|)| +0#0000000&@56
-| +0#0000e05&@1|#| |T|i|t|l|e|:| |.@2| +0#0000000&@60
-|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@68
-@57|5@1|,|5|-|1|9| @6|B|o|t|
+@57|5@1|,|1| @9|9|2|%|
diff --git a/runtime/syntax/testdir/dumps/vim_comment_04.dump b/runtime/syntax/testdir/dumps/vim_comment_04.dump
new file mode 100644
index 0000000..4e144d4
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/vim_comment_04.dump
@@ -0,0 +1,20 @@
+|"+0#0000e05#ffffff0| |I|s@1|u|e| |#| |#|9|5|8|7| +0#0000000&@59
+@75
+|d+0#af5f00255&|e|f| +0#0000000&|C|o|m@1|e|n|t|T|i|t|l|e|(+0#e000e06&|)| +0#0000000&@56
+@2|#+0#0000e05&| +0#0000000&|T+0#e000e06&|i|t|l|e|:| +0#0000e05&|.@2| +0#0000000&@60
+>e+0#af5f00255&|n|d@1|e|f| +0#0000000&@68
+|~+0#4040ff13&| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+| +0#0000000&@56|7|2|,|1| @9|B|o|t|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_augroup_01.dump b/runtime/syntax/testdir/dumps/vim_ex_augroup_01.dump
index c5b2c37..a653897 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_augroup_01.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_augroup_01.dump
@@ -17,4 +17,4 @@
| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
| +0#0000e05#a8a8a8255@1|a+0#af5f00255#ffffff0|u|g|r|o|u|p| +0#0000000&@1|\+0#0000001#ffff4012|||e|c|h|o|\||| +0#0000000#ffffff0||| |a+0#af5f00255&|u|t|o|c|m|d|!| +0#0000000&||| |a+0#af5f00255&|u|g|r|o|u|p| +0#0000000&|E|N|D| @30
| +0#0000e05#a8a8a8255@1|a+0#af5f00255#ffffff0|u|g|r|o|u|p|!| +0#0000000&|\+0#0000001#ffff4012|||e|c|h|o|\||| +0#0000000#ffffff0@55
-@57|1|9|,|1| @9|3|6|%|
+@57|1|9|,|1| @9|3|0|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_augroup_02.dump b/runtime/syntax/testdir/dumps/vim_ex_augroup_02.dump
index b85e79d..aac0399 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_augroup_02.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_augroup_02.dump
@@ -9,12 +9,12 @@
| +0#0000e05#a8a8a8255@1|a+0#af5f00255#ffffff0|u|g|r|o|u|p| +0#0000000&@1|\+0#0000001#ffff4012|"|\||| +0#0000000#ffffff0||| |a+0#af5f00255&|u|t|o|c|m|d|!| +0#0000000&||| |a+0#af5f00255&|u|g|r|o|u|p| +0#0000000&|E|N|D| @34
| +0#0000e05#a8a8a8255@1|a+0#af5f00255#ffffff0|u|g|r|o|u|p|!| +0#0000000&|\+0#0000001#ffff4012|"|\||| +0#0000000#ffffff0@59
| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-| +0#0000e05#a8a8a8255@1|"+0&#ffffff0| +0#0000000&|F+0#0000001#ffff4012|I|X|M|E|:+0#e000e06#ffffff0| +0#0000e05&|r|e|q|u|i|r|e|d| |c|o|m@1|e|n|t| |p|r|e|f|i|x| +0#0000000&@40
-|-+0#0000e05#a8a8a8255| |a+0#af5f00255#ffffff0|u|g|r|o|u|p| +0#0000000&@1|f+0#0000001#ffff4012|o@1|"+0#0000000#ffffff0|c|o|m@1|e|n|t| @3|"+0#0000e05&| |s|t|a|r|t| |b|a|d| |f|o|l|d| +0#0000000&@32
-||+0#0000e05#a8a8a8255| |a+0#af5f00255#ffffff0|u|g|r|o|u|p| +0#0000000&@1|f+0#0000001#ffff4012|o@1||+0#0000000#ffffff0|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@49
-||+0#0000e05#a8a8a8255| |a+0#af5f00255#ffffff0|u|g|r|o|u|p| +0#0000000&|E|N|D| @12|"+0#0000e05&| |t|e|r|m|i|n|a|t|e| |b|a|d| |f|o|l|d| +0#0000000&@28
-| +0#0000e05#a8a8a8255@1|a+0#af5f00255#ffffff0|u|g|r|o|u|p|!| +0#0000000&|f+0#0000001#ffff4012|o@1|"+0#0000000#ffffff0|c|o|m@1|e|n|t| @52
-| +0#0000e05#a8a8a8255@1|a+0#af5f00255#ffffff0|u|g|r|o|u|p|!| +0#0000000&|f+0#0000001#ffff4012|o@1||+0#0000000#ffffff0|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@49
| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
+|-+0#0000e05#a8a8a8255| |a+0#af5f00255#ffffff0|u|g|r|o|u|p| +0#0000000&@1|f+0#0000001#ffff4012|o@1|"+0#0000e05#ffffff0|c|o|m@1|e|n|t| +0#0000000&@52
+||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|a+0#af5f00255&|u|!| +0#0000000&@67
+||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|a+0#af5f00255&|u| +0#0000000&|B+0#00e0003&|u|f|R|e|a|d| +0#0000000&|*+0#e000e06&| +0#0000000&|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@47
+||+0#0000e05#a8a8a8255| |a+0#af5f00255#ffffff0|u|g|r|o|u|p| +0#0000000&|E|N|D|"+0#0000e05&|c|o|m@1|e|n|t| +0#0000000&@53
| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
-@57|3|7|,|1| @9|8|6|%|
+|-+0#0000e05#a8a8a8255| |a+0#af5f00255#ffffff0|u|g|r|o|u|p| +0#0000000&@1|f+0#0000001#ffff4012|o@1||+0#0000000#ffffff0|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@49
+||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|a+0#af5f00255&|u|!| +0#0000000&@67
+@57|3|7|,|1| @9|7|2|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_augroup_03.dump b/runtime/syntax/testdir/dumps/vim_ex_augroup_03.dump
index 8f296fa..2b9bb8b 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_augroup_03.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_augroup_03.dump
@@ -1,20 +1,20 @@
+||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|a+0#af5f00255&|u|!| +0#0000000&@67
+||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|a+0#af5f00255&|u| +0#0000000&|B+0#00e0003&|u|f|R|e|a|d| +0#0000000&|*+0#e000e06&| +0#0000000&|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@47
+||+0#0000e05#a8a8a8255| |a+0#af5f00255#ffffff0|u|g|r|o|u|p| +0#0000000&|E|N|D|||e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@50
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
+| +0#0000e05#a8a8a8255@1|a+0#af5f00255#ffffff0|u|g|r|o|u|p|!| +0#0000000&|f+0#0000001#ffff4012|o@1|"+0#0000e05#ffffff0|c|o|m@1|e|n|t| +0#0000000&@52
+| +0#0000e05#a8a8a8255@1>a+0#af5f00255#ffffff0|u|g|r|o|u|p|!| +0#0000000&|f+0#0000001#ffff4012|o@1||+0#0000000#ffffff0|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@49
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
| +0#0000e05#a8a8a8255@1|"+0&#ffffff0| |l|i|s|t| |g|r|o|u|p|s| +0#0000000&@59
| +0#0000e05#a8a8a8255@1|a+0#af5f00255#ffffff0|u|g|r|o|u|p| +0#0000000&@65
| +0#0000e05#a8a8a8255@1|a+0#af5f00255#ffffff0|u|g|r|o|u|p| +0#0000000&||| |e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@52
| +0#0000e05#a8a8a8255@1|a+0#af5f00255#ffffff0|u|g|r|o|u|p| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@55
-| +0#0000e05#a8a8a8255@1> +0#0000000#ffffff0@72
+| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
|~+0#4040ff13&| @73
|~| @73
|~| @73
|~| @73
|~| @73
|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-| +0#0000000&@56|5@1|,|0|-|1| @7|B|o|t|
+| +0#0000000&@56|5@1|,|1| @9|B|o|t|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_comment_strings_00.dump b/runtime/syntax/testdir/dumps/vim_ex_comment_strings_00.dump
index 2cdc33c..df6e06c 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_comment_strings_00.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_comment_strings_00.dump
@@ -8,13 +8,13 @@
|e+0#af5f00255&|n|d|f|u|n|c|t|i|o|n| +0#0000000&@63
@75
|d+0#af5f00255&|e|f| +0#0000000&|B|a|r|(+0#e000e06&|)| +0#0000000&@65
-| +0#0000e05&@1|#| |p|r|e| |"+0#e000002&|s|t|r|i|n|g|"| +0#0000e05&|p|o|s|t| +0#0000000&@53
+@2|#+0#0000e05&| |p|r|e| |"+0#e000002&|s|t|r|i|n|g|"| +0#0000e05&|p|o|s|t| +0#0000000&@53
|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@68
@75
|c+0#af5f00255&|o|m@1|a|n|d| +0#0000000&|F|o@1| |{+0#e000e06&| +0#0000000&@61
-| +0#0000e05&@1|#| |p|r|e| |"+0#e000002&|s|t|r|i|n|g|"| +0#0000e05&|p|o|s|t| +0#0000000&@53
+@2|#+0#0000e05&| |p|r|e| |"+0#e000002&|s|t|r|i|n|g|"| +0#0000e05&|p|o|s|t| +0#0000000&@53
|}+0#e000e06&| +0#0000000&@73
@75
|a+0#af5f00255&|u|t|o|c|m|d| +0#0000000&|B+0#00e0003&|u|f|N|e|w|F|i|l|e| +0#0000000&|*+0#e000e06&| +0#0000000&|{+0#e000e06&| +0#0000000&@52
-| +0#0000e05&@1|#| |p|r|e| |"+0#e000002&|s|t|r|i|n|g|"| +0#0000e05&|p|o|s|t| +0#0000000&@53
+@2|#+0#0000e05&| |p|r|e| |"+0#e000002&|s|t|r|i|n|g|"| +0#0000e05&|p|o|s|t| +0#0000000&@53
@57|1|,|1| @10|T|o|p|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_comment_strings_01.dump b/runtime/syntax/testdir/dumps/vim_ex_comment_strings_01.dump
index 6f6d7cf..deebf69 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_comment_strings_01.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_comment_strings_01.dump
@@ -1,9 +1,9 @@
|c+0#af5f00255#ffffff0|o|m@1|a|n|d| +0#0000000&|F|o@1| |{+0#e000e06&| +0#0000000&@61
-| +0#0000e05&@1|#| |p|r|e| |"+0#e000002&|s|t|r|i|n|g|"| +0#0000e05&|p|o|s|t| +0#0000000&@53
+@2|#+0#0000e05&| |p|r|e| |"+0#e000002&|s|t|r|i|n|g|"| +0#0000e05&|p|o|s|t| +0#0000000&@53
|}+0#e000e06&| +0#0000000&@73
@75
|a+0#af5f00255&|u|t|o|c|m|d| +0#0000000&|B+0#00e0003&|u|f|N|e|w|F|i|l|e| +0#0000000&|*+0#e000e06&| +0#0000000&|{+0#e000e06&| +0#0000000&@52
-| +0#0000e05&@1>#| |p|r|e| |"+0#e000002&|s|t|r|i|n|g|"| +0#0000e05&|p|o|s|t| +0#0000000&@53
+@2>#+0#0000e05&| |p|r|e| |"+0#e000002&|s|t|r|i|n|g|"| +0#0000e05&|p|o|s|t| +0#0000000&@53
|}+0#e000e06&| +0#0000000&@73
|~+0#4040ff13&| @73
|~| @73
diff --git a/runtime/syntax/testdir/dumps/vim_ex_def_04.dump b/runtime/syntax/testdir/dumps/vim_ex_def_04.dump
index c26f666..6b5e93d 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_def_04.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_def_04.dump
@@ -12,7 +12,7 @@
|"+0#0000e05&| |:|e|n|d@1|e|f| |t|r|a|i|l|i|n|g| +0#0000000&@56
@75
|d+0#af5f00255&|e|f| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&@65
-| +0#0000e05&@1|#| |t|r|a|i|l|i|n|g| |w|h|i|t|e|s|p|a|c|e| +0#0000000&@51
+@2|#+0#0000e05&| |t|r|a|i|l|i|n|g| |w|h|i|t|e|s|p|a|c|e| +0#0000000&@51
|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@68
@75
|d+0#af5f00255&|e|f| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&@65
diff --git a/runtime/syntax/testdir/dumps/vim_ex_def_06.dump b/runtime/syntax/testdir/dumps/vim_ex_def_06.dump
index 35882b3..265237c 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_def_06.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_def_06.dump
@@ -6,7 +6,7 @@
>"+0#0000e05&| |c|o|m@1|e|n|t|s| +0#0000000&@64
@75
|d+0#af5f00255&|e|f| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&@65
-| +0#0000e05&@1|#| |V|i|m|9|-|s|c|r|i|p|t| |c|o|m@1|e|n|t| +0#0000000&@51
+@2|#+0#0000e05&| |V|i|m|9|-|s|c|r|i|p|t| |c|o|m@1|e|n|t| +0#0000000&@51
@2|"+0#e000002&|u|s|e|l|e|s@1| |s|t|r|i|n|g|"| +0#0000000&@56
|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@68
@75
diff --git a/runtime/syntax/testdir/dumps/vim_ex_def_fold_04.dump b/runtime/syntax/testdir/dumps/vim_ex_def_fold_04.dump
index 849d95a..00d7f43 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_def_fold_04.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_def_fold_04.dump
@@ -14,7 +14,7 @@
| +0#0000e05#a8a8a8255@1|"+0&#ffffff0| |:|e|n|d@1|e|f| |t|r|a|i|l|i|n|g| +0#0000000&@54
| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
|-+0#0000e05#a8a8a8255| |d+0#af5f00255#ffffff0|e|f| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&@63
-||+0#0000e05#a8a8a8255| | +0&#ffffff0@1|#| |t|r|a|i|l|i|n|g| |w|h|i|t|e|s|p|a|c|e| +0#0000000&@49
+||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|#+0#0000e05&| |t|r|a|i|l|i|n|g| |w|h|i|t|e|s|p|a|c|e| +0#0000000&@49
||+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|d@1|e|f| +0#0000000&@66
| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
@57|7|3|,|1| @9|4|0|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_def_fold_06.dump b/runtime/syntax/testdir/dumps/vim_ex_def_fold_06.dump
index 9c68232..4be9979 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_def_fold_06.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_def_fold_06.dump
@@ -3,7 +3,7 @@
| +0#0000e05#a8a8a8255@1|"+0&#ffffff0| |c|o|m@1|e|n|t|s| +0#0000000&@62
| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
|-+0#0000e05#a8a8a8255| |d+0#af5f00255#ffffff0|e|f| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&@63
-||+0#0000e05#a8a8a8255| | +0&#ffffff0@1>#| |V|i|m|9|-|s|c|r|i|p|t| |c|o|m@1|e|n|t| +0#0000000&@49
+||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1>#+0#0000e05&| |V|i|m|9|-|s|c|r|i|p|t| |c|o|m@1|e|n|t| +0#0000000&@49
||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|"+0#e000002&|u|s|e|l|e|s@1| |s|t|r|i|n|g|"| +0#0000000&@54
||+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|d@1|e|f| +0#0000000&@66
| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
diff --git a/runtime/syntax/testdir/dumps/vim_ex_def_fold_07.dump b/runtime/syntax/testdir/dumps/vim_ex_def_fold_07.dump
index e66afbe..0a2fc33 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_def_fold_07.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_def_fold_07.dump
@@ -5,7 +5,7 @@
| +0#0000e05#a8a8a8255@1|"+0&#ffffff0| |f|o|l|d|-|r|e|g|i|o|n| |e|n|d|i|n|g| +0#0000000&@52
| +0#0000e05#a8a8a8255@1> +0#0000000#ffffff0@72
|-+0#0000e05#a8a8a8255| |d+0#af5f00255#ffffff0|e|f| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&@63
-||+0#0000e05#a8a8a8255| | +0&#ffffff0@1|#| |e|n|d@1|e|f| +0#0000000&@62
+||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|#+0#0000e05&| |e|n|d@1|e|f| +0#0000000&@62
||+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|d@1|e|f| +0#0000000&@66
| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
|-+0#0000e05#a8a8a8255| |d+0#af5f00255#ffffff0|e|f| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&@63
diff --git a/runtime/syntax/testdir/dumps/vim_ex_map_05.dump b/runtime/syntax/testdir/dumps/vim_ex_map_05.dump
index 9f2285e..b772795 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_map_05.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_map_05.dump
@@ -11,7 +11,7 @@
|d+0#af5f00255&|e|f| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&@65
@2|m+0#af5f00255&|a|p| +0#0000000&|(| |:|e|c|h|o| |"|o|p|e|n|-|p|a|r|e|n|"|<+0#e000e06&|C|R|>| +0#0000000&@44
@2|m+0#00e0e07&|a|p|(+0#e000e06&|l+0#00e0e07&|i|s|t|,+0#0000000&| |'+0#e000002&|v|:|v|a|l|'|)+0#e000e06&| +0#0000000&@54
-| +0#0000e05&@1|#| |:|m|a|p| |L|H|S|=|(|l|i|s|t|,| |R|H|S|=|'|v|:|v|a|l|'|)| +0#0000000&@42
+@2|#+0#0000e05&| |:|m|a|p| |L|H|S|=|(|l|i|s|t|,| |R|H|S|=|'|v|:|v|a|l|'|)| +0#0000000&@42
@2|m+0#af5f00255&|a|p| +0#0000000&|(|l|i|s|t|,| |'|v|:|v|a|l|'|)| @53
|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@68
@75
diff --git a/runtime/syntax/testdir/dumps/vim_ex_match_01.dump b/runtime/syntax/testdir/dumps/vim_ex_match_01.dump
index 815ed68..69ca065 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_match_01.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_match_01.dump
@@ -14,7 +14,7 @@
|d+0#af5f00255&|e|f| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&@65
@2|m+0#af5f00255&|a|t|c|h| +0#0000000&|F+0#00e0003&|o@1|G|r|o|u|p| +0#0000000&|/+0#e000e06&|F+0#0000000&|o@1|/+0#e000e06&| +0#0000000&@52
@2|m+0#af5f00255&|a|t|c|h|(+0#e000e06&|h+0#00e0e07&|a|y|s|t|a|c|k|,+0#0000000&| |'+0#e000002&|n|e@1|d|l|e|'|)+0#e000e06&| +0#0000000&@47
-| +0#0000e05&@1|#| |E|r@1|o|r|:| |b|a|d| |:|m|a|t|c|h| |c|o|m@1|a|n|d| |-| |t|r|a|i|l|i|n|g| |c|h|a|r|a|c|t|e|r|s| +0#0000000&@23
+@2|#+0#0000e05&| +0#0000000&|E+0#e000e06&|r@1|o|r|:| +0#0000e05&|b|a|d| |:|m|a|t|c|h| |c|o|m@1|a|n|d| |-| |t|r|a|i|l|i|n|g| |c|h|a|r|a|c|t|e|r|s| +0#0000000&@23
@2|m+0#af5f00255&|a|t|c|h| +0#0000000&|(+0#e000e06&|h+0#00e0e07&|a|y|s|t|a|c|k|,+0#0000000&| |'+0#e000002&|n|e@1|d|l|e|'|)+0#e000e06&| +0#0000000&@46
|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@68
@57|1|9|,|1| @9|B|o|t|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_no_comment_strings_00.dump b/runtime/syntax/testdir/dumps/vim_ex_no_comment_strings_00.dump
index 1a679d8..52c115f 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_no_comment_strings_00.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_no_comment_strings_00.dump
@@ -8,13 +8,13 @@
|e+0#af5f00255&|n|d|f|u|n|c|t|i|o|n| +0#0000000&@63
@75
|d+0#af5f00255&|e|f| +0#0000000&|B|a|r|(+0#e000e06&|)| +0#0000000&@65
-| +0#0000e05&@1|#| |p|r|e| |"|s|t|r|i|n|g|"| |p|o|s|t| +0#0000000&@53
+@2|#+0#0000e05&| |p|r|e| |"|s|t|r|i|n|g|"| |p|o|s|t| +0#0000000&@53
|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@68
@75
|c+0#af5f00255&|o|m@1|a|n|d| +0#0000000&|F|o@1| |{+0#e000e06&| +0#0000000&@61
-| +0#0000e05&@1|#| |p|r|e| |"|s|t|r|i|n|g|"| |p|o|s|t| +0#0000000&@53
+@2|#+0#0000e05&| |p|r|e| |"|s|t|r|i|n|g|"| |p|o|s|t| +0#0000000&@53
|}+0#e000e06&| +0#0000000&@73
@75
|a+0#af5f00255&|u|t|o|c|m|d| +0#0000000&|B+0#00e0003&|u|f|N|e|w|F|i|l|e| +0#0000000&|*+0#e000e06&| +0#0000000&|{+0#e000e06&| +0#0000000&@52
-| +0#0000e05&@1|#| |p|r|e| |"|s|t|r|i|n|g|"| |p|o|s|t| +0#0000000&@53
+@2|#+0#0000e05&| |p|r|e| |"|s|t|r|i|n|g|"| |p|o|s|t| +0#0000000&@53
@57|1|,|1| @10|T|o|p|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_no_comment_strings_01.dump b/runtime/syntax/testdir/dumps/vim_ex_no_comment_strings_01.dump
index 5b21c0e..856c330 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_no_comment_strings_01.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_no_comment_strings_01.dump
@@ -1,9 +1,9 @@
|c+0#af5f00255#ffffff0|o|m@1|a|n|d| +0#0000000&|F|o@1| |{+0#e000e06&| +0#0000000&@61
-| +0#0000e05&@1|#| |p|r|e| |"|s|t|r|i|n|g|"| |p|o|s|t| +0#0000000&@53
+@2|#+0#0000e05&| |p|r|e| |"|s|t|r|i|n|g|"| |p|o|s|t| +0#0000000&@53
|}+0#e000e06&| +0#0000000&@73
@75
|a+0#af5f00255&|u|t|o|c|m|d| +0#0000000&|B+0#00e0003&|u|f|N|e|w|F|i|l|e| +0#0000000&|*+0#e000e06&| +0#0000000&|{+0#e000e06&| +0#0000000&@52
-| +0#0000e05&@1>#| |p|r|e| |"|s|t|r|i|n|g|"| |p|o|s|t| +0#0000000&@53
+@2>#+0#0000e05&| |p|r|e| |"|s|t|r|i|n|g|"| |p|o|s|t| +0#0000000&@53
|}+0#e000e06&| +0#0000000&@73
|~+0#4040ff13&| @73
|~| @73
diff --git a/runtime/syntax/testdir/dumps/vim_ex_substitute_02.dump b/runtime/syntax/testdir/dumps/vim_ex_substitute_02.dump
index b133d65..81ab62f 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_substitute_02.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_substitute_02.dump
@@ -17,4 +17,4 @@
|s+0#af5f00255&|'+0#e000e06&|/+0#0000000&|'+0#e000e06&|/+0#0000000&@1|'+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@57
|"+0#0000e05&| |F+0#0000001#ffff4012|I|X|M|E| +0#0000e05#ffffff0|-| |m|a|t|c|h|e|s| |v|i|m|U|s|e|r|F|u|n|c| +0#0000000&@45
|"+0#0000e05&| |s|(|/|(|/@1|(| |"| |c|o|m@1|e|n|t| +0#0000000&@55
-@57|3|7|,|3| @9|2|4|%|
+@57|3|7|,|3| @9|2|5|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_substitute_04.dump b/runtime/syntax/testdir/dumps/vim_ex_substitute_04.dump
index 8d95e9b..917b482 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_substitute_04.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_substitute_04.dump
@@ -17,4 +17,4 @@
|"+0#0000e05&| |s| |(|/|(|/@1|(| |"| |c|o|m@1|e|n|t| +0#0000000&@54
|s+0#af5f00255&| +0#0000000&|)+0#e000e06&|/+0#0000000&|)+0#e000e06&|/+0#0000000&@1|)+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@56
|s+0#af5f00255&| +0#0000000&|*+0#e000e06&|/+0#0000000&|*+0#e000e06&|/+0#0000000&@1|*+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@56
-@57|7|3|,|1| @9|5|3|%|
+@57|7|3|,|1| @9|5|4|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_substitute_06.dump b/runtime/syntax/testdir/dumps/vim_ex_substitute_06.dump
index e4f5474..bc2f4c6 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_substitute_06.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_substitute_06.dump
@@ -17,4 +17,4 @@
|s+0#af5f00255&| +0#0000000&|\+0#e000e06&|/|{+0#0000000&|s|t|r|i|n|g|}|/+0#e000e06&| +0#0000000&@61
|s+0#af5f00255&| +0#0000000&|\+0#e000e06&|?|{+0#0000000&|s|t|r|i|n|g|}|?+0#e000e06&| +0#0000000&@61
|s+0#af5f00255&| +0#0000000&|\+0#e000e06&|&|{+0#0000000&|s|t|r|i|n|g|}|&+0#e000e06&| +0#0000000&@61
-@57|1|0|9|,|0|-|1| @6|8|2|%|
+@57|1|0|9|,|0|-|1| @6|8|3|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_substitute_07.dump b/runtime/syntax/testdir/dumps/vim_ex_substitute_07.dump
index 29caf89..eae48b7 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_substitute_07.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_substitute_07.dump
@@ -3,8 +3,7 @@
@75
|"+0#0000e05&| |T|r|a|i|l|i|n|g| |c|o|m@1|e|n|t| |a|n|d| |b|a|r| +0#0000000&@48
@75
->"+0#0000e05&| +0#0000000&|F+0#0000001#ffff4012|I|X|M|E|:+0#e000e06#ffffff0| +0#0000e05&|t|r|a|i|l|i|n|g| |c|o|m@1|e|n|t|,| |n|o| |w|h|i|t|e|s|p|a|c|e| +0#0000000&@34
-|s+0#af5f00255&|"+0#0000000&| |c|o|m@1|e|n|t| @64
+>s+0#af5f00255&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@64
|s+0#af5f00255&||+0#0000000&| |e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@61
@75
|s+0#af5f00255&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@63
@@ -17,4 +16,5 @@
|s|t|r|(+0#e000e06&|s+0#00e0e07&|)+0#e000e06&| +0#0000000&@68
@75
|d+0#af5f00255&|e|f| +0#0000000&|T|e|s|t|(+0#e000e06&|)| +0#0000000&@64
-@57|1|2|7|,|1| @8|9|6|%|
+@1| +0#00e0e07&|s|t|r|[+0#0000000&|s+0#00e0e07&|]+0#0000000&| @66
+@57|1|2|7|,|1| @8|9|7|%|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_substitute_08.dump b/runtime/syntax/testdir/dumps/vim_ex_substitute_08.dump
index 28691c9..ca53574 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_substitute_08.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_substitute_08.dump
@@ -1,5 +1,4 @@
-|d+0#af5f00255#ffffff0|e|f| +0#0000000&|T|e|s|t|(+0#e000e06&|)| +0#0000000&@64
-@1| +0#00e0e07&|s|t|r|[+0#0000000&|s+0#00e0e07&|]+0#0000000&| @66
+| +0&#ffffff0| +0#00e0e07&|s|t|r|[+0#0000000&|s+0#00e0e07&|]+0#0000000&| @66
@2|s|t|r|(+0#e000e06&|s+0#00e0e07&|)+0#e000e06&| +0#0000000&@66
|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@68
> @74
@@ -17,4 +16,5 @@
|~| @73
|~| @73
|~| @73
-| +0#0000000&@56|1|4@1|,|0|-|1| @6|B|o|t|
+|~| @73
+| +0#0000000&@56|1|4|3|,|0|-|1| @6|B|o|t|
diff --git a/runtime/syntax/testdir/dumps/vim_expr_00.dump b/runtime/syntax/testdir/dumps/vim_expr_00.dump
index b8ea410..dd2f98c 100644
--- a/runtime/syntax/testdir/dumps/vim_expr_00.dump
+++ b/runtime/syntax/testdir/dumps/vim_expr_00.dump
@@ -4,17 +4,17 @@
|e+0#af5f00255&|c|h|o| +0#0000000&|'+0#e000002&|t|a|b|:| |\|t|,| |n|e|w| |l|i|n|e|:| |\|n|,| |b|a|c|k|s|l|a|s|h|:| |\@1|'| +0#0000000&@31
|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|t|a|b|:| |\+0#e000e06&|t|,+0#e000002&| |n|e|w| |l|i|n|e|:| |\+0#e000e06&|n|,+0#e000002&| |b|a|c|k|s|l|a|s|h|:| |\+0#e000e06&@1|"+0#e000002&| +0#0000000&@31
@75
+|"+0#0000e05&| |s|t|r|i|n|g| |s|t|a|r|t|s| |i|m@1|e|d|i|a|t|e|l|y| |a|f|t|e|r| |l|i|n|e| |c|o|n|t|i|n|u|a|t|i|o|n| |c|h|a|r|a|c|t|e|r| |-| |t|e|s|t|s| |a| +0#0000000&@3
+|"+0#0000e05&| |c|o|m@1|e|n|t|/|s|t|r|i|n|g| |d|i|s|t|i|n|g|u|i|s|h|i|n|g| |i|m|p|l|e|m|e|n|t|a|t|i|o|n| |q|u|i|r|k| +0#0000000&@22
+|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|f|o@1|"| +0#0000000&@64
+| +0#e000002&@5|\+0#e000e06&|"+0#e000002&|b|a|r|"| +0#0000000&@62
+@6|\+0#e000e06&| +0#0000000&|"+0#e000002&|b|a|z|"| +0#0000000&@61
+|e+0#af5f00255&|c|h|o| +0#0000000&|'+0#e000002&|f|o@1|'| +0#0000000&@64
+| +0#e000002&@5|\+0#e000e06&|'+0#e000002&|b|a|r|'| +0#0000000&@62
+@6|\+0#e000e06&| +0#0000000&|'+0#e000002&|b|a|z|'| +0#0000000&@61
+@75
|"+0#0000e05&| |S|t|r|i|n|g| |e|s|c|a|p|e| |s|e|q|u|e|n|c|e|s| +0#0000000&@49
@75
|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|\+0#e000e06&|3|1|6| +0#e000002&|-| |\+0#e000e06&|3|1| +0#e000002&|-| |\+0#e000e06&|3| +0#e000002&|-| |\+0#e000e06&|x|1|f| +0#e000002&|-| |\+0#e000e06&|x|f| +0#e000002&|-| |\+0#e000e06&|X|1|F| +0#e000002&|-| |\+0#e000e06&|X|F| +0#e000002&|-| |\+0#e000e06&|u|0|2|a|4| +0#e000002&|-| |\+0#e000e06&|U|0@4|2|a|4| +0#e000002&|-| |\+0#e000e06&|b| +0#e000002&
|-| |\+0#e000e06&|e| +0#e000002&|-| |\+0#e000e06&|f| +0#e000002&|-| |\+0#e000e06&|n| +0#e000002&|-| |\+0#e000e06&|r| +0#e000002&|-| |\+0#e000e06&|t| +0#e000002&|-| |\+0#e000e06&@1| +0#e000002&|-| |\+0#e000e06&|"| +0#e000002&|-| |\+0#e000e06&|<|C|-|W|>|"+0#e000002&| +0#0000000&@30
-|e+0#af5f00255&|c|h|o| +0#0000000&|'+0#e000002&|\|3|1|6| |\|3|1| |\|3| |\|x|1|f| |\|x|f| |\|X|1|F| |\|X|F| |\|u|0|2|a|4| |\|U|0@4|2|a|4| |\|b| |\|e| |\|f| |\|n| |\|r| |\|t| |\@1|
-|\|"| |\|<|C|-|W|>|'| +0#0000000&@64
-|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|\+0#e000e06&|3|1|6|0+0#e000002&| |-| |\+0#e000e06&|x|1|f|0+0#e000002&| |-| |\+0#e000e06&|X|1|F|0+0#e000002&| |-| |\+0#e000e06&|u|0|2|a|4|0+0#e000002&| |-| |\+0#e000e06&|U|0@4|2|a|4|0+0#e000002&|"| +0#0000000&@22
-@75
-|e+0#af5f00255&|c|h|o| +0#0000000&|$+0#e000002&|"|\+0#e000e06&|3|1|6| +0#e000002&|-| |\+0#e000e06&|3|1| +0#e000002&|-| |\+0#e000e06&|3| +0#e000002&|-| |\+0#e000e06&|x|1|f| +0#e000002&|-| |\+0#e000e06&|x|f| +0#e000002&|-| |\+0#e000e06&|X|1|F| +0#e000002&|-| |\+0#e000e06&|X|F| +0#e000002&|-| |\+0#e000e06&|u|0|2|a|4| +0#e000002&|-| |\+0#e000e06&|U|0@4|2|a|4| +0#e000002&|-| |\+0#e000e06&|b
-| +0#e000002&|-| |\+0#e000e06&|e| +0#e000002&|-| |\+0#e000e06&|f| +0#e000002&|-| |\+0#e000e06&|n| +0#e000002&|-| |\+0#e000e06&|r| +0#e000002&|-| |\+0#e000e06&|t| +0#e000002&|-| |\+0#e000e06&@1| +0#e000002&|-| |\+0#e000e06&|"| +0#e000002&|-| |\+0#e000e06&|<|C|-|W|>|"+0#e000002&| +0#0000000&@29
-|e+0#af5f00255&|c|h|o| +0#0000000&|$+0#e000002&|'|\|3|1|6| |\|3|1| |\|3| |\|x|1|f| |\|x|f| |\|X|1|F| |\|X|F| |\|u|0|2|a|4| |\|U|0@4|2|a|4| |\|b| |\|e| |\|f| |\|n| |\|r| |\|t| |\@1
-| |\|"| |\|<|C|-|W|>|'| +0#0000000&@63
-|e+0#af5f00255&|c|h|o| +0#0000000&|$+0#e000002&|"|\+0#e000e06&|3|1|6|0+0#e000002&| |-| |\+0#e000e06&|x|1|f|0+0#e000002&| |-| |\+0#e000e06&|X|1|F|0+0#e000002&| |-| |\+0#e000e06&|u|0|2|a|4|0+0#e000002&| |-| |\+0#e000e06&|U|0@4|2|a|4|0+0#e000002&|"| +0#0000000&@21
@57|1|,|1| @10|T|o|p|
diff --git a/runtime/syntax/testdir/dumps/vim_expr_01.dump b/runtime/syntax/testdir/dumps/vim_expr_01.dump
index a41994c..51f7a9e 100644
--- a/runtime/syntax/testdir/dumps/vim_expr_01.dump
+++ b/runtime/syntax/testdir/dumps/vim_expr_01.dump
@@ -1,20 +1,20 @@
-| +0&#ffffff0@74
+| +0#e000002#ffffff0@5|\+0#e000e06&|'+0#e000002&|b|a|r|'| +0#0000000&@62
+@6|\+0#e000e06&| +0#0000000&|'+0#e000002&|b|a|z|'| +0#0000000&@61
+@75
+|"+0#0000e05&| |S|t|r|i|n|g| |e|s|c|a|p|e| |s|e|q|u|e|n|c|e|s| +0#0000000&@49
+@75
+>e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|\+0#e000e06&|3|1|6| +0#e000002&|-| |\+0#e000e06&|3|1| +0#e000002&|-| |\+0#e000e06&|3| +0#e000002&|-| |\+0#e000e06&|x|1|f| +0#e000002&|-| |\+0#e000e06&|x|f| +0#e000002&|-| |\+0#e000e06&|X|1|F| +0#e000002&|-| |\+0#e000e06&|X|F| +0#e000002&|-| |\+0#e000e06&|u|0|2|a|4| +0#e000002&|-| |\+0#e000e06&|U|0@4|2|a|4| +0#e000002&|-| |\+0#e000e06&|b| +0#e000002&
+|-| |\+0#e000e06&|e| +0#e000002&|-| |\+0#e000e06&|f| +0#e000002&|-| |\+0#e000e06&|n| +0#e000002&|-| |\+0#e000e06&|r| +0#e000002&|-| |\+0#e000e06&|t| +0#e000002&|-| |\+0#e000e06&@1| +0#e000002&|-| |\+0#e000e06&|"| +0#e000002&|-| |\+0#e000e06&|<|C|-|W|>|"+0#e000002&| +0#0000000&@30
+|e+0#af5f00255&|c|h|o| +0#0000000&|'+0#e000002&|\|3|1|6| |\|3|1| |\|3| |\|x|1|f| |\|x|f| |\|X|1|F| |\|X|F| |\|u|0|2|a|4| |\|U|0@4|2|a|4| |\|b| |\|e| |\|f| |\|n| |\|r| |\|t| |\@1|
+|\|"| |\|<|C|-|W|>|'| +0#0000000&@64
+|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|\+0#e000e06&|3|1|6|0+0#e000002&| |-| |\+0#e000e06&|x|1|f|0+0#e000002&| |-| |\+0#e000e06&|X|1|F|0+0#e000002&| |-| |\+0#e000e06&|u|0|2|a|4|0+0#e000002&| |-| |\+0#e000e06&|U|0@4|2|a|4|0+0#e000002&|"| +0#0000000&@22
+@75
|e+0#af5f00255&|c|h|o| +0#0000000&|$+0#e000002&|"|\+0#e000e06&|3|1|6| +0#e000002&|-| |\+0#e000e06&|3|1| +0#e000002&|-| |\+0#e000e06&|3| +0#e000002&|-| |\+0#e000e06&|x|1|f| +0#e000002&|-| |\+0#e000e06&|x|f| +0#e000002&|-| |\+0#e000e06&|X|1|F| +0#e000002&|-| |\+0#e000e06&|X|F| +0#e000002&|-| |\+0#e000e06&|u|0|2|a|4| +0#e000002&|-| |\+0#e000e06&|U|0@4|2|a|4| +0#e000002&|-| |\+0#e000e06&|b
| +0#e000002&|-| |\+0#e000e06&|e| +0#e000002&|-| |\+0#e000e06&|f| +0#e000002&|-| |\+0#e000e06&|n| +0#e000002&|-| |\+0#e000e06&|r| +0#e000002&|-| |\+0#e000e06&|t| +0#e000002&|-| |\+0#e000e06&@1| +0#e000002&|-| |\+0#e000e06&|"| +0#e000002&|-| |\+0#e000e06&|<|C|-|W|>|"+0#e000002&| +0#0000000&@29
|e+0#af5f00255&|c|h|o| +0#0000000&|$+0#e000002&|'|\|3|1|6| |\|3|1| |\|3| |\|x|1|f| |\|x|f| |\|X|1|F| |\|X|F| |\|u|0|2|a|4| |\|U|0@4|2|a|4| |\|b| |\|e| |\|f| |\|n| |\|r| |\|t| |\@1
| |\|"| |\|<|C|-|W|>|'| +0#0000000&@63
->e+0#af5f00255&|c|h|o| +0#0000000&|$+0#e000002&|"|\+0#e000e06&|3|1|6|0+0#e000002&| |-| |\+0#e000e06&|x|1|f|0+0#e000002&| |-| |\+0#e000e06&|X|1|F|0+0#e000002&| |-| |\+0#e000e06&|u|0|2|a|4|0+0#e000002&| |-| |\+0#e000e06&|U|0@4|2|a|4|0+0#e000002&|"| +0#0000000&@21
+|e+0#af5f00255&|c|h|o| +0#0000000&|$+0#e000002&|"|\+0#e000e06&|3|1|6|0+0#e000002&| |-| |\+0#e000e06&|x|1|f|0+0#e000002&| |-| |\+0#e000e06&|X|1|F|0+0#e000002&| |-| |\+0#e000e06&|u|0|2|a|4|0+0#e000002&| |-| |\+0#e000e06&|U|0@4|2|a|4|0+0#e000002&|"| +0#0000000&@21
@75
|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|\+0#e000e06&|<|C|-|a|>|"+0#e000002&| +0#0000000&@61
|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|\+0#e000e06&|<|*|C|-|a|>|"+0#e000002&| +0#0000000&@60
-|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|\+0#e000e06&|<|C|-|>@1|"+0#e000002&| +0#0000000&@61
-|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|\+0#e000e06&|<|*|C|-|>@1|"+0#e000002&| +0#0000000&@60
-|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|\+0#e000e06&|<|C|-|>@1|>+0#e000002&|"| +0#0000000&@60
-|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|\+0#e000e06&|<|*|C|-|>@1|>+0#e000002&|"| +0#0000000&@59
-@75
-|e+0#af5f00255&|c|h|o| +0#0000000&|'+0#e000002&|'+0#e000e06&@1|'+0#e000002&| +0#0000000&@65
-|e+0#af5f00255&|c|h|o| +0#0000000&|'+0#e000002&|'+0#e000e06&@1|f+0#e000002&|o@1|'| +0#0000000&@62
-|e+0#af5f00255&|c|h|o| +0#0000000&|'+0#e000002&|f|o@1|'+0#e000e06&@1|'+0#e000002&| +0#0000000&@62
-|e+0#af5f00255&|c|h|o| +0#0000000&|'+0#e000002&|f|o@1|'+0#e000e06&@1|b+0#e000002&|a|r|'| +0#0000000&@59
-@75
-@57|1|5|,|1| @10|3|%|
+@57|1|8|,|1| @10|3|%|
diff --git a/runtime/syntax/testdir/dumps/vim_expr_02.dump b/runtime/syntax/testdir/dumps/vim_expr_02.dump
index 44a9e0c..563d02a 100644
--- a/runtime/syntax/testdir/dumps/vim_expr_02.dump
+++ b/runtime/syntax/testdir/dumps/vim_expr_02.dump
@@ -1,20 +1,20 @@
-| +0&#ffffff0@74
-|"+0#0000e05&| |U|n|r|e|p|o|r|t|e|d| |i|s@1|u|e| |(|i|n|c|o|r@1|e|c|t|l|y| |m|a|t|c|h|e|s| |a|s| |v|i|m|S|t|r|i|n|g| |v|i|m|M|a|r|k| |v|i|m|O|p|e|r| |N|O|N|E|)| +0#0000000&
-|"+0#0000e05&| |h|t@1|p|s|:|/@1|g|i|t|h|u|b|.|c|o|m|/|t|p|o|p|e|/|v|i|m|-|u|n|i|m|p|a|i|r|e|d|/|b|l|o|b|/|6|d|4@1|a|6|d|c|2|e|c|3|4|6|0|7|c|4|1|e|c|7|8|a|c|f|8|1
-|6|5|7|2|4|8|5|8|0|b|f|1|/|p|l|u|g|i|n|/|u|n|i|m|p|a|i|r|e|d|.|v|i|m|#|L|2|3|2| +0#0000000&@35
-|l+0#af5f00255&|e|t| +0#0000000&|c+0#00e0e07&|m|d| +0#0000000&|=+0#af5f00255&| +0#0000000&|'+0#e000002&|p|u|t|!|=|r|e|p|e|a|t|(|n|r|2|c|h|a|r|(|1|0|)|,| |v|:|c|o|u|n|t|1|)|||s|i|l|e|n|t| |'+0#e000e06&@1|]+0#e000002&|+|'| +0#0000000&@16
+|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|"+0#e000002&|\+0#e000e06&|<|*|C|-|a|>|"+0#e000002&| +0#0000000&@60
+|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|\+0#e000e06&|<|C|-|>@1|"+0#e000002&| +0#0000000&@61
+|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|\+0#e000e06&|<|*|C|-|>@1|"+0#e000002&| +0#0000000&@60
+|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|\+0#e000e06&|<|C|-|>@1|>+0#e000002&|"| +0#0000000&@60
+|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|\+0#e000e06&|<|*|C|-|>@1|>+0#e000002&|"| +0#0000000&@59
> @74
-|"+0#0000e05&| |S|t|r|i|n|g| |i|n|t|e|r|p|o|l|a|t|i|o|n| +0#0000000&@52
+|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&@1| +0#0000000&@67
+|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|\+0#e000e06&|"|"+0#e000002&| +0#0000000&@65
+|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|f|o@1|\+0#e000e06&|"|"+0#e000002&| +0#0000000&@62
+|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|\+0#e000e06&|"|f+0#e000002&|o@1|"| +0#0000000&@62
+|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|f|o@1|\+0#e000e06&|"|b+0#e000002&|a|r|"| +0#0000000&@59
@75
-|e+0#af5f00255&|c|h|o| +0#0000000&|'+0#e000002&|D|o|n|'+0#e000e06&@1|t+0#e000002&| |h|i|g|h|l|i|g|h|t| |i|n|t|e|r|p|o|l|a|t|i|o|n|:| |{@1| |{|1| |+| |2|}| |}@1|'| +0#0000000&@22
-|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|D|o|n|'|t| |h|i|g|h|l|i|g|h|t| |i|n|t|e|r|p|o|l|a|t|i|o|n|:| |{@1| |{|1| |+| |2|}| |}@1|"| +0#0000000&@23
-|e+0#af5f00255&|c|h|o| +0#0000000&|$+0#e000002&|'|H|i|g|h|l|i|g|h|t| |i|n|t|e|r|p|o|l|a|t|i|o|n|:|\|t|{+0#e000e06&@1| +0#e000002&|{+0#e000e06&| +0#0000000&|s+0#00e0e07&|t|r|i|n|g|(+0#e000e06&|{|'+0#e000002&|f|o@1|'|:+0#0000000&| |'+0#e000002&|b|a|r|'|}+0#e000e06&|)| +0#0000000&|}+0#e000e06&| +0#e000002&|}+0#e000e06&@1|'+0#e000002&| +0#0000000&@8
-|e+0#af5f00255&|c|h|o| +0#0000000&|$+0#e000002&|'|H|i|g|h|l|i|g|h|t| |i|n|t|e|r|p|o|l|a|t|i|o|n|:|\|t|{+0#e000e06&@1| +0#e000002&|{+0#e000e06&| +0#0000000&|$+0#e000002&|'|n|e|s|t|e|d|:| |{+0#e000e06&@1| +0#e000002&|{+0#e000e06&|1+0#e000002&| +0#0000000&|++0#af5f00255&| +0#0000000&|2+0#e000002&|}+0#e000e06&| +0#e000002&|}+0#e000e06&@1|'+0#e000002&| +0#0000000&|}+0#e000e06&| +0#e000002&|}+0#e000e06&@1|'+0#e000002&| +0#0000000&@6
-|e+0#af5f00255&|c|h|o| +0#0000000&|$+0#e000002&|"|H|i|g|h|l|i|g|h|t| |i|n|t|e|r|p|o|l|a|t|i|o|n|:|\+0#e000e06&|t|{@1| +0#e000002&|{+0#e000e06&| +0#0000000&|s+0#00e0e07&|t|r|i|n|g|(+0#e000e06&|{|"+0#e000002&|f|o@1|"|:+0#0000000&| |"+0#e000002&|b|a|r|"|}+0#e000e06&|)| +0#0000000&|}+0#e000e06&| +0#e000002&|}+0#e000e06&@1|"+0#e000002&| +0#0000000&@8
-|e+0#af5f00255&|c|h|o| +0#0000000&|$+0#e000002&|"|H|i|g|h|l|i|g|h|t| |i|n|t|e|r|p|o|l|a|t|i|o|n|:|\+0#e000e06&|t|{@1| +0#e000002&|{+0#e000e06&| +0#0000000&|$+0#e000002&|"|n|e|s|t|e|d|:| |{+0#e000e06&@1| +0#e000002&|{+0#e000e06&|1+0#e000002&| +0#0000000&|++0#af5f00255&| +0#0000000&|2+0#e000002&|}+0#e000e06&| +0#e000002&|}+0#e000e06&@1|"+0#e000002&| +0#0000000&|}+0#e000e06&| +0#e000002&|}+0#e000e06&@1|"+0#e000002&| +0#0000000&@6
+|e+0#af5f00255&|c|h|o| +0#0000000&|'+0#e000002&@1| +0#0000000&@67
+|e+0#af5f00255&|c|h|o| +0#0000000&|'+0#e000002&|'+0#e000e06&@1|'+0#e000002&| +0#0000000&@65
+|e+0#af5f00255&|c|h|o| +0#0000000&|'+0#e000002&|'+0#e000e06&@1|f+0#e000002&|o@1|'| +0#0000000&@62
+|e+0#af5f00255&|c|h|o| +0#0000000&|'+0#e000002&|f|o@1|'+0#e000e06&@1|'+0#e000002&| +0#0000000&@62
+|e+0#af5f00255&|c|h|o| +0#0000000&|'+0#e000002&|f|o@1|'+0#e000e06&@1|b+0#e000002&|a|r|'| +0#0000000&@59
@75
-|e+0#af5f00255&|c|h|o| +0#0000000&|$+0#e000002&|'|'+0#e000e06&@1|'+0#e000002&| +0#0000000&@64
-|e+0#af5f00255&|c|h|o| +0#0000000&|$+0#e000002&|'|'+0#e000e06&@1|f+0#e000002&|o@1|'| +0#0000000&@61
-|e+0#af5f00255&|c|h|o| +0#0000000&|$+0#e000002&|'|f|o@1|'+0#e000e06&@1|'+0#e000002&| +0#0000000&@61
-|e+0#af5f00255&|c|h|o| +0#0000000&|$+0#e000002&|'|f|o@1|'+0#e000e06&@1|b+0#e000002&|a|r|'| +0#0000000&@58
-@57|3|2|,|0|-|1| @8|8|%|
+|"+0#0000e05&| |U|n|r|e|p|o|r|t|e|d| |i|s@1|u|e| |(|i|n|c|o|r@1|e|c|t|l|y| |m|a|t|c|h|e|s| |a|s| |v|i|m|S|t|r|i|n|g| |v|i|m|M|a|r|k| |v|i|m|O|p|e|r| |N|O|N|E|)| +0#0000000&
+@57|3|2|,|0|-|1| @8|6|%|
diff --git a/runtime/syntax/testdir/dumps/vim_expr_03.dump b/runtime/syntax/testdir/dumps/vim_expr_03.dump
index f1de1ca..edd39a9 100644
--- a/runtime/syntax/testdir/dumps/vim_expr_03.dump
+++ b/runtime/syntax/testdir/dumps/vim_expr_03.dump
@@ -1,20 +1,20 @@
-|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|$+0#e000002&|'|f|o@1|'+0#e000e06&@1|b+0#e000002&|a|r|'| +0#0000000&@58
+|"+0#0000e05#ffffff0| |U|n|r|e|p|o|r|t|e|d| |i|s@1|u|e| |(|i|n|c|o|r@1|e|c|t|l|y| |m|a|t|c|h|e|s| |a|s| |v|i|m|S|t|r|i|n|g| |v|i|m|M|a|r|k| |v|i|m|O|p|e|r| |N|O|N|E|)| +0#0000000&
+|"+0#0000e05&| |h|t@1|p|s|:|/@1|g|i|t|h|u|b|.|c|o|m|/|t|p|o|p|e|/|v|i|m|-|u|n|i|m|p|a|i|r|e|d|/|b|l|o|b|/|6|d|4@1|a|6|d|c|2|e|c|3|4|6|0|7|c|4|1|e|c|7|8|a|c|f|8|1
+|6|5|7|2|4|8|5|8|0|b|f|1|/|p|l|u|g|i|n|/|u|n|i|m|p|a|i|r|e|d|.|v|i|m|#|L|2|3|2| +0#0000000&@35
+|l+0#af5f00255&|e|t| +0#0000000&|c+0#00e0e07&|m|d| +0#0000000&|=+0#af5f00255&| +0#0000000&|'+0#e000002&|p|u|t|!|=|r|e|p|e|a|t|(|n|r|2|c|h|a|r|(|1|0|)|,| |v|:|c|o|u|n|t|1|)|||s|i|l|e|n|t| |'+0#e000e06&@1|]+0#e000002&|+|'| +0#0000000&@16
@75
-|"+0#0000e05&| |N|u|m|b|e|r| +0#0000000&@66
+> @74
+|"+0#0000e05&| |S|t|r|i|n|g| |i|n|t|e|r|p|o|l|a|t|i|o|n| +0#0000000&@52
@75
-|"+0#0000e05&| |H|e|x|a|d|e|c|i|m|a|l| +0#0000000&@61
->e+0#af5f00255&|c|h|o| +0#0000000&@1|0+0#e000002&|x|F@1| +0#0000000&@64
-|e+0#af5f00255&|c|h|o| +0#0000000&@1|0+0#e000002&|X|F@1| +0#0000000&@64
-|e+0#af5f00255&|c|h|o| +0#0000000&|-+0#af5f00255&|0+0#e000002&|x|F@1| +0#0000000&@64
-|e+0#af5f00255&|c|h|o| +0#0000000&|-+0#af5f00255&|0+0#e000002&|X|F@1| +0#0000000&@64
+|e+0#af5f00255&|c|h|o| +0#0000000&|'+0#e000002&|D|o|n|'+0#e000e06&@1|t+0#e000002&| |h|i|g|h|l|i|g|h|t| |i|n|t|e|r|p|o|l|a|t|i|o|n|:| |{@1| |{|1| |+| |2|}| |}@1|'| +0#0000000&@22
+|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|D|o|n|'|t| |h|i|g|h|l|i|g|h|t| |i|n|t|e|r|p|o|l|a|t|i|o|n|:| |{@1| |{|1| |+| |2|}| |}@1|"| +0#0000000&@23
+|e+0#af5f00255&|c|h|o| +0#0000000&|$+0#e000002&|'|H|i|g|h|l|i|g|h|t| |i|n|t|e|r|p|o|l|a|t|i|o|n|:|\|t|{+0#e000e06&@1| +0#e000002&|{+0#e000e06&| +0#0000000&|s+0#00e0e07&|t|r|i|n|g|(+0#e000e06&|{|'+0#e000002&|f|o@1|'|:+0#0000000&| |'+0#e000002&|b|a|r|'|}+0#e000e06&|)| +0#0000000&|}+0#e000e06&| +0#e000002&|}+0#e000e06&@1|'+0#e000002&| +0#0000000&@8
+|e+0#af5f00255&|c|h|o| +0#0000000&|$+0#e000002&|'|H|i|g|h|l|i|g|h|t| |i|n|t|e|r|p|o|l|a|t|i|o|n|:|\|t|{+0#e000e06&@1| +0#e000002&|{+0#e000e06&| +0#0000000&|$+0#e000002&|'|n|e|s|t|e|d|:| |{+0#e000e06&@1| +0#e000002&|{+0#e000e06&|1+0#e000002&| +0#0000000&|++0#af5f00255&| +0#0000000&|2+0#e000002&|}+0#e000e06&| +0#e000002&|}+0#e000e06&@1|'+0#e000002&| +0#0000000&|}+0#e000e06&| +0#e000002&|}+0#e000e06&@1|'+0#e000002&| +0#0000000&@6
+|e+0#af5f00255&|c|h|o| +0#0000000&|$+0#e000002&|"|H|i|g|h|l|i|g|h|t| |i|n|t|e|r|p|o|l|a|t|i|o|n|:|\+0#e000e06&|t|{@1| +0#e000002&|{+0#e000e06&| +0#0000000&|s+0#00e0e07&|t|r|i|n|g|(+0#e000e06&|{|"+0#e000002&|f|o@1|"|:+0#0000000&| |"+0#e000002&|b|a|r|"|}+0#e000e06&|)| +0#0000000&|}+0#e000e06&| +0#e000002&|}+0#e000e06&@1|"+0#e000002&| +0#0000000&@8
+|e+0#af5f00255&|c|h|o| +0#0000000&|$+0#e000002&|"|H|i|g|h|l|i|g|h|t| |i|n|t|e|r|p|o|l|a|t|i|o|n|:|\+0#e000e06&|t|{@1| +0#e000002&|{+0#e000e06&| +0#0000000&|$+0#e000002&|"|n|e|s|t|e|d|:| |{+0#e000e06&@1| +0#e000002&|{+0#e000e06&|1+0#e000002&| +0#0000000&|++0#af5f00255&| +0#0000000&|2+0#e000002&|}+0#e000e06&| +0#e000002&|}+0#e000e06&@1|"+0#e000002&| +0#0000000&|}+0#e000e06&| +0#e000002&|}+0#e000e06&@1|"+0#e000002&| +0#0000000&@6
@75
-|"+0#0000e05&| |D|e|c|i|m|a|l| +0#0000000&@65
-|e+0#af5f00255&|c|h|o| +0#0000000&@1|2+0#e000002&|5@1| +0#0000000&@65
-|e+0#af5f00255&|c|h|o| +0#0000000&|-+0#af5f00255&|2+0#e000002&|5@1| +0#0000000&@65
@75
-|"+0#0000e05&| |O|c|t|a|l| +0#0000000&@67
-|e+0#af5f00255&|c|h|o| +0#0000000&@1|0+0#e000002&|3|7@1| +0#0000000&@64
-|e+0#af5f00255&|c|h|o| +0#0000000&@1|0+0#e000002&|o|3|7@1| +0#0000000&@63
-|e+0#af5f00255&|c|h|o| +0#0000000&@1|0+0#e000002&|O|3|7@1| +0#0000000&@63
-|e+0#af5f00255&|c|h|o| +0#0000000&|-+0#af5f00255&|0+0#e000002&|3|7@1| +0#0000000&@64
-@57|5|0|,|1| @9|1|4|%|
+|"+0#0000e05&| |C|o|n|t|i|n|u|e|d| |s|t|r|i|n|g| +0#0000000&@56
+@75
+|l+0#af5f00255&|e|t| +0#0000000&|s+0#00e0e07&| +0#0000000&|=+0#af5f00255&| +0#0000000&|"+0#e000002&| +0#0000000&@65
+@57|4|9|,|0|-|1| @7|1@1|%|
diff --git a/runtime/syntax/testdir/dumps/vim_expr_04.dump b/runtime/syntax/testdir/dumps/vim_expr_04.dump
index 9aaf413..09f3a69 100644
--- a/runtime/syntax/testdir/dumps/vim_expr_04.dump
+++ b/runtime/syntax/testdir/dumps/vim_expr_04.dump
@@ -1,20 +1,20 @@
-|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|-+0#af5f00255&|0+0#e000002&|3|7@1| +0#0000000&@64
-|e+0#af5f00255&|c|h|o| +0#0000000&|-+0#af5f00255&|0+0#e000002&|o|3|7@1| +0#0000000&@63
-|e+0#af5f00255&|c|h|o| +0#0000000&|-+0#af5f00255&|0+0#e000002&|O|3|7@1| +0#0000000&@63
+|l+0#af5f00255#ffffff0|e|t| +0#0000000&|s+0#00e0e07&| +0#0000000&|=+0#af5f00255&| +0#0000000&|"+0#e000002&| +0#0000000&@65
+| +0#e000002&@5|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@58
+| +0#e000002&@5|\+0#e000e06&| +0#e000002&|p|a|r|t| |1| +0#0000000&@60
+| +0#e000002&@5|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@58
+| +0#e000002&@5|\+0#e000e06&| +0#e000002&|p|a|r|t| |2| +0#0000000&@60
+| +0#e000002&@5>"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@58
+| +0#e000002&@5|\+0#e000e06&|"+0#e000002&| +0#0000000&|"+0#0000e05&| |t|a|i|l| |c|o|m@1|e|n|t| +0#0000000&@51
@75
-|"+0#0000e05&| |B|i|n|a|r|y| +0#0000000&@66
->e+0#af5f00255&|c|h|o| +0#0000000&@1|0+0#e000002&|b|1@7| +0#0000000&@58
-|e+0#af5f00255&|c|h|o| +0#0000000&@1|0+0#e000002&|B|1@7| +0#0000000&@58
-|e+0#af5f00255&|c|h|o| +0#0000000&|-+0#af5f00255&|0+0#e000002&|b|1@7| +0#0000000&@58
-|e+0#af5f00255&|c|h|o| +0#0000000&|-+0#af5f00255&|0+0#e000002&|B|1@7| +0#0000000&@58
+|l+0#af5f00255&|e|t| +0#0000000&|s+0#00e0e07&| +0#0000000&|=+0#af5f00255&| +0#0000000&|"+0#e000002&|\+0#e000e06&|"| +0#0000000&@63
+| +0#e000002&@5|\+0#e000e06&@1|"| +0#e000002&|p|a|r|t| |1| |\+0#e000e06&|"| +0#0000000&@55
+| +0#e000002&@5|"+0#0000e05&|\| |e|s|c|a|p|e| |s|e|q|u|e|n|c|e| +0#0000000&@50
+| +0#e000002&@5|\+0#e000e06&| +0#e000002&|\+0#e000e06&|"|p+0#e000002&|a|r|t| |2|\+0#e000e06&|"| +0#0000000&@56
+| +0#e000002&@5|\+0#e000e06&@1|"|"+0#e000002&| +0#0000000&|"+0#0000e05&| |t|a|i|l| |c|o|m@1|e|n|t| +0#0000000&@49
@75
-|"+0#0000e05&| |F|l|o|a|t| +0#0000000&@67
-|e+0#af5f00255&|c|h|o| +0#0000000&|1+0#e000002&|2|3|.|4|5|6| +0#0000000&@62
-|e+0#af5f00255&|c|h|o| +0#0000000&|++0#af5f00255&|0+0#e000002&|.|0@2|1| +0#0000000&@62
-|e+0#af5f00255&|c|h|o| +0#0000000&|5+0#e000002&@1|.|0| +0#0000000&@65
-|e+0#af5f00255&|c|h|o| +0#0000000&|-+0#af5f00255&|0+0#e000002&|.|1|2|3| +0#0000000&@63
-|e+0#af5f00255&|c|h|o| +0#0000000&|1+0#e000002&|.|2|3|4|e|0|3| +0#0000000&@61
-|e+0#af5f00255&|c|h|o| +0#0000000&|1+0#e000002&|.|0|E|-|6| +0#0000000&@63
-|e+0#af5f00255&|c|h|o| +0#0000000&|-+0#af5f00255&|3+0#e000002&|.|1|4|1|6|e|+|8@1| +0#0000000&@58
-@75
-@57|6|8|,|1| @9|1|9|%|
+|l+0#af5f00255&|e|t| +0#0000000&|s+0#00e0e07&| +0#0000000&|=+0#af5f00255&| +0#0000000&|'+0#e000002&| +0#0000000&@65
+| +0#e000002&@5|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@58
+| +0#e000002&@5|\+0#e000e06&| +0#e000002&|p|a|r|t| |1| +0#0000000&@60
+| +0#e000002&@5|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@58
+| +0#e000002&@5|\+0#e000e06&| +0#e000002&|p|a|r|t| |2| +0#0000000&@60
+@57|6|7|,|7| @9|1|5|%|
diff --git a/runtime/syntax/testdir/dumps/vim_expr_05.dump b/runtime/syntax/testdir/dumps/vim_expr_05.dump
index 8244ecc..67ca1ae 100644
--- a/runtime/syntax/testdir/dumps/vim_expr_05.dump
+++ b/runtime/syntax/testdir/dumps/vim_expr_05.dump
@@ -1,20 +1,20 @@
-| +0&#ffffff0@74
-|"+0#0000e05&| |B|l|o|b| +0#0000000&@68
-|e+0#af5f00255&|c|h|o| +0#0000000&|0+0#e000002&|z| +0#0000000&@67
-|e+0#af5f00255&|c|h|o| +0#0000000&|0+0#e000002&|z|F@1|0@1|E|D|0|1|5|D|A|F| +0#0000000&@55
-|e+0#af5f00255&|c|h|o| +0#0000000&|0+0#e000002&|z|F@1|0@1|.|E|D|0|1|.|5|D|A|F| +0#0000000&@53
->e+0#af5f00255&|c|h|o| +0#0000000&|0+0#e000002&|z|F@1|.|0@1|.|E|D|.|0|1|.|5|D|.|A|F| +0#0000000&@50
+| +0#e000002#ffffff0@5|\+0#e000e06&| +0#e000002&|p|a|r|t| |2| +0#0000000&@60
+| +0#e000002&@5|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@58
+| +0#e000002&@5|\+0#e000e06&|'+0#e000002&| +0#0000000&|"+0#0000e05&| |t|a|i|l| |c|o|m@1|e|n|t| +0#0000000&@51
@75
-|"+0#0000e05&| |L|i|s|t| +0#0000000&@68
+|l+0#af5f00255&|e|t| +0#0000000&|s+0#00e0e07&| +0#0000000&|=+0#af5f00255&| +0#0000000&|'+0#e000002&|'+0#e000e06&@1| +0#0000000&@63
+| +0#e000002&@5>\+0#e000e06&|'@1| +0#e000002&|p|a|r|t| |1| |'+0#e000e06&@1| +0#0000000&@55
+| +0#e000002&@5|"+0#0000e05&|\| |e|s|c|a|p|e| |s|e|q|u|e|n|c|e| +0#0000000&@50
+| +0#e000002&@5|\+0#e000e06&| +0#e000002&|'+0#e000e06&@1|p+0#e000002&|a|r|t| |2|'+0#e000e06&@1| +0#0000000&@56
+| +0#e000002&@5|\+0#e000e06&|'@1|'+0#e000002&| +0#0000000&|"+0#0000e05&| |t|a|i|l| |c|o|m@1|e|n|t| +0#0000000&@49
@75
-|e+0#af5f00255&|c|h|o| +0#0000000&|[+0#e000e06&|]| +0#0000000&@67
-|e+0#af5f00255&|c|h|o| +0#0000000&|[+0#e000e06&|4+0#e000002&|2|]+0#e000e06&| +0#0000000&@65
-|e+0#af5f00255&|c|h|o| +0#0000000&|[+0#e000e06&@1|1+0#e000002&@1|,+0#0000000&| |1+0#e000002&|2|]+0#e000e06&|,+0#0000000&| |[+0#e000e06&|2+0#e000002&|1|,+0#0000000&| |2+0#e000002&@1|]+0#e000e06&|,+0#0000000&| |[+0#e000e06&|3+0#e000002&|1|,+0#0000000&| |3+0#e000002&|2|]+0#e000e06&@1| +0#0000000&@39
-|e+0#af5f00255&|c|h|o| +0#0000000&|[+0#e000e06&|1+0#e000002&|,+0#0000000&| @66
-@6|\+0#e000e06&| +0#0000000&|2+0#e000002&|,+0#0000000&| @64
-@6|\+0#e000e06&| +0#0000000&|3+0#e000002&|,+0#0000000&| @64
-@6|\+0#e000e06&| +0#0000000&|4+0#e000002&| +0#0000000&@65
-@6|\+0#e000e06&|]| +0#0000000&@66
-|e+0#af5f00255&|c|h|o| +0#0000000&|[+0#e000e06&|1+0#e000002&|,+0#0000000&| |'+0#e000002&|t|w|o|'|,+0#0000000&| |1+0#e000002&| +0#0000000&|++0#af5f00255&| +0#0000000&|2+0#e000002&|,+0#0000000&| |"+0#e000002&|f|o|"| +0#0000000&|.+0#af5f00255&@1| +0#0000000&|"+0#e000002&|u|r|"|]+0#e000e06&| +0#0000000&@38
+|l+0#af5f00255&|e|t| +0#0000000&|s+0#00e0e07&| +0#0000000&|=+0#af5f00255&| +0#0000000&|$+0#e000002&|"| +0#0000000&@64
+| +0#e000002&@5|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@58
+| +0#e000002&@5|\+0#e000e06&| +0#e000002&|p|a|r|t| |1| +0#0000000&@60
+| +0#e000002&@5|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@58
+| +0#e000002&@5|\+0#e000e06&| +0#e000002&|p|a|r|t| |2| +0#0000000&@60
+| +0#e000002&@5|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@58
+| +0#e000002&@5|\+0#e000e06&|"+0#e000002&| +0#0000000&|"+0#0000e05&| |t|a|i|l| |c|o|m@1|e|n|t| +0#0000000&@51
@75
-@57|8|6|,|1| @9|2|5|%|
+|l+0#af5f00255&|e|t| +0#0000000&|s+0#00e0e07&| +0#0000000&|=+0#af5f00255&| +0#0000000&|$+0#e000002&|'| +0#0000000&@64
+@57|8|5|,|7| @9|2|0|%|
diff --git a/runtime/syntax/testdir/dumps/vim_expr_06.dump b/runtime/syntax/testdir/dumps/vim_expr_06.dump
index 94dff09..3c624a7 100644
--- a/runtime/syntax/testdir/dumps/vim_expr_06.dump
+++ b/runtime/syntax/testdir/dumps/vim_expr_06.dump
@@ -1,20 +1,20 @@
-| +0&#ffffff0@74
-|"+0#0000e05&| |I|s@1|u|e| |#|5|8|3|0| |(|I|n|c|o|r@1|e|c|t| |s|y|n|t|a|x| |h|i|g|h|l|i|g|h|t|i|n|g| |i|n| |V|i|m| |s|c|r|i|p|t| |w|h|e|n| |o|m|i|t@1|i|n|g| |s|p
-|a|c|e| |i|n| |l|i|s|t| |o|f| |s|t|r|i|n|g|)| +0#0000000&@52
-|l+0#af5f00255&|e|t| +0#0000000&|l+0#00e0e07&| +0#0000000&|=+0#af5f00255&| +0#0000000&|[+0#e000e06&|'+0#e000002&|a|'|,+0#0000000&|'+0#e000002&|b|'|,+0#0000000&|'+0#e000002&|c|'|]+0#e000e06&| +0#0000000&@53
+|l+0#af5f00255#ffffff0|e|t| +0#0000000&|s+0#00e0e07&| +0#0000000&|=+0#af5f00255&| +0#0000000&|$+0#e000002&|'| +0#0000000&@64
+| +0#e000002&@5|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@58
+| +0#e000002&@5|\+0#e000e06&| +0#e000002&|p|a|r|t| |1| +0#0000000&@60
+| +0#e000002&@5|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@58
+| +0#e000002&@5|\+0#e000e06&| +0#e000002&|p|a|r|t| |2| +0#0000000&@60
+| +0#e000002&@5>"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@58
+| +0#e000002&@5|\+0#e000e06&|'+0#e000002&| +0#0000000&|"+0#0000e05&| |t|a|i|l| |c|o|m@1|e|n|t| +0#0000000&@51
@75
->"+0#0000e05&| |D|i|c|t|i|o|n|a|r|y| +0#0000000&@62
+|c+0#af5f00255&|a|l@1| +0#0000000&|s+0#00e0e07&|t|r|l|e|n|(+0#e000e06&|"+0#e000002&|p|a|r|t| |1| +0#0000000&@55
+| +0#e000002&@5|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@58
+| +0#e000002&@5|\+0#e000e06&| +0#e000002&|p|a|r|t| |2|"|)+0#e000e06&| +0#0000000&@58
@75
-|e+0#af5f00255&|c|h|o| +0#0000000&|{+0#e000e06&|}| +0#0000000&@67
-|e+0#af5f00255&|c|h|o| +0#0000000&|{+0#e000e06&| +0#0000000&|'+0#e000002&|f|o@1|'|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&@52
-|e+0#af5f00255&|c|h|o| +0#0000000&|{+0#e000e06&| +0#0000000&|"+0#e000002&|f|o@1|"|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&@52
-|e+0#af5f00255&|c|h|o| +0#0000000&|{+0#e000e06&| +0#0000000&@3|4+0#e000002&|2|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&@52
+|c+0#af5f00255&|a|l@1| +0#0000000&|a+0#00e0e07&|p@1|e|n|d|(+0#e000e06&|0+0#e000002&|,+0#0000000&| |"+0#e000002&|p|a|r|t| |1| +0#0000000&@52
+| +0#e000002&@5|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@58
+| +0#e000002&@5|\+0#e000e06&| +0#e000002&|p|a|r|t| |2|"|)+0#e000e06&| +0#0000000&@58
@75
-|e+0#af5f00255&|c|h|o| +0#0000000&|{+0#e000e06&| +0#0000000&|"+0#e000002&|f|o@1|"|:+0#0000000&| @1|{+0#e000e06&| +0#0000000&|'+0#e000002&|b|a|r|'|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@40
-|e+0#af5f00255&|c|h|o| +0#0000000&|{+0#e000e06&| +0#0000000&|"+0#e000002&|f|o@1|"|:+0#0000000&| @1|{+0#e000e06&| +0#0000000&|"+0#e000002&|b|a|r|"|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@40
-|e+0#af5f00255&|c|h|o| +0#0000000&|{+0#e000e06&| +0#0000000&|"+0#e000002&|f|o@1|"|:+0#0000000&| @1|{+0#e000e06&| +0#0000000&@3|4+0#e000002&|2|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@40
-|e+0#af5f00255&|c|h|o| +0#0000000&|{+0#e000e06&| +0#0000000&|"+0#e000002&|f|o@1|"|:+0#0000000&| |#+0#e000e06&|{| +0#0000000&@2|b+0#00e0e07&|a|r|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@40
-|e+0#af5f00255&|c|h|o| +0#0000000&|{+0#e000e06&| +0#0000000&|"+0#e000002&|f|o@1|"|:+0#0000000&| |#+0#e000e06&|{| +0#0000000&|-+0#af5f00255&|b+0#00e0e07&|a|r|-+0#af5f00255&|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@40
-|e+0#af5f00255&|c|h|o| +0#0000000&|{+0#e000e06&| +0#0000000&|"+0#e000002&|f|o@1|"|:+0#0000000&| |#+0#e000e06&|{| +0#0000000&@3|4+0#e000002&|2|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@40
@75
-@57|1|0|3|,|1| @8|3|1|%|
+|"+0#0000e05&| |N|u|m|b|e|r| +0#0000000&@66
+@75
+@57|1|0|3|,|7| @8|2|5|%|
diff --git a/runtime/syntax/testdir/dumps/vim_expr_07.dump b/runtime/syntax/testdir/dumps/vim_expr_07.dump
index bec79d8..e33c328 100644
--- a/runtime/syntax/testdir/dumps/vim_expr_07.dump
+++ b/runtime/syntax/testdir/dumps/vim_expr_07.dump
@@ -1,20 +1,20 @@
| +0&#ffffff0@74
-|e+0#af5f00255&|c|h|o| +0#0000000&|{+0#e000e06&| +0#0000000&|'+0#e000002&|f|o@1|'|:+0#0000000&| @1|{+0#e000e06&| +0#0000000&|'+0#e000002&|b|a|r|'|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@40
-|e+0#af5f00255&|c|h|o| +0#0000000&|{+0#e000e06&| +0#0000000&|'+0#e000002&|f|o@1|'|:+0#0000000&| @1|{+0#e000e06&| +0#0000000&|"+0#e000002&|b|a|r|"|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@40
-|e+0#af5f00255&|c|h|o| +0#0000000&|{+0#e000e06&| +0#0000000&|'+0#e000002&|f|o@1|'|:+0#0000000&| @1|{+0#e000e06&| +0#0000000&@3|4+0#e000002&|2|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@40
-|e+0#af5f00255&|c|h|o| +0#0000000&|{+0#e000e06&| +0#0000000&|'+0#e000002&|f|o@1|'|:+0#0000000&| |#+0#e000e06&|{| +0#0000000&@2|b+0#00e0e07&|a|r|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@40
->e+0#af5f00255&|c|h|o| +0#0000000&|{+0#e000e06&| +0#0000000&|'+0#e000002&|f|o@1|'|:+0#0000000&| |#+0#e000e06&|{| +0#0000000&|-+0#af5f00255&|b+0#00e0e07&|a|r|-+0#af5f00255&|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@40
-|e+0#af5f00255&|c|h|o| +0#0000000&|{+0#e000e06&| +0#0000000&|'+0#e000002&|f|o@1|'|:+0#0000000&| |#+0#e000e06&|{| +0#0000000&@3|4+0#e000002&|2|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@40
+|"+0#0000e05&| |H|e|x|a|d|e|c|i|m|a|l| +0#0000000&@61
+|e+0#af5f00255&|c|h|o| +0#0000000&@1|0+0#e000002&|x|F@1| +0#0000000&@64
+|e+0#af5f00255&|c|h|o| +0#0000000&@1|0+0#e000002&|X|F@1| +0#0000000&@64
+|e+0#af5f00255&|c|h|o| +0#0000000&|-+0#af5f00255&|0+0#e000002&|x|F@1| +0#0000000&@64
+>e+0#af5f00255&|c|h|o| +0#0000000&|-+0#af5f00255&|0+0#e000002&|X|F@1| +0#0000000&@64
@75
-|e+0#af5f00255&|c|h|o| +0#0000000&|{+0#e000e06&| +0#0000000&@3|4+0#e000002&|2|:+0#0000000&| @1|{+0#e000e06&| +0#0000000&|'+0#e000002&|b|a|r|'|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@40
-|e+0#af5f00255&|c|h|o| +0#0000000&|{+0#e000e06&| +0#0000000&@3|4+0#e000002&|2|:+0#0000000&| @1|{+0#e000e06&| +0#0000000&|"+0#e000002&|b|a|r|"|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@40
-|e+0#af5f00255&|c|h|o| +0#0000000&|{+0#e000e06&| +0#0000000&@3|4+0#e000002&|2|:+0#0000000&| @1|{+0#e000e06&| +0#0000000&@3|4+0#e000002&|2|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@40
-|e+0#af5f00255&|c|h|o| +0#0000000&|{+0#e000e06&| +0#0000000&@3|4+0#e000002&|2|:+0#0000000&| |#+0#e000e06&|{| +0#0000000&@2|b+0#00e0e07&|a|r|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@40
-|e+0#af5f00255&|c|h|o| +0#0000000&|{+0#e000e06&| +0#0000000&@3|4+0#e000002&|2|:+0#0000000&| |#+0#e000e06&|{| +0#0000000&|-+0#af5f00255&|b+0#00e0e07&|a|r|-+0#af5f00255&|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@40
-|e+0#af5f00255&|c|h|o| +0#0000000&|{+0#e000e06&| +0#0000000&@3|4+0#e000002&|2|:+0#0000000&| |#+0#e000e06&|{| +0#0000000&@3|4+0#e000002&|2|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@40
+|"+0#0000e05&| |D|e|c|i|m|a|l| +0#0000000&@65
+|e+0#af5f00255&|c|h|o| +0#0000000&@1|2+0#e000002&|5@1| +0#0000000&@65
+|e+0#af5f00255&|c|h|o| +0#0000000&|-+0#af5f00255&|2+0#e000002&|5@1| +0#0000000&@65
@75
-|e+0#af5f00255&|c|h|o| +0#0000000&|{+0#e000e06&| +0#0000000&@68
-@6|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@58
-@6|\+0#e000e06&| +0#0000000&|"+0#e000002&|f|o@1|"|:+0#0000000&| |{+0#e000e06&| +0#0000000&|"+0#e000002&|b|a|r|"|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&@42
-@6|\+0#e000e06&|}| +0#0000000&@66
-@57|1|2|1|,|1| @8|3|6|%|
+|"+0#0000e05&| |O|c|t|a|l| +0#0000000&@67
+|e+0#af5f00255&|c|h|o| +0#0000000&@1|0+0#e000002&|3|7@1| +0#0000000&@64
+|e+0#af5f00255&|c|h|o| +0#0000000&@1|0+0#e000002&|o|3|7@1| +0#0000000&@63
+|e+0#af5f00255&|c|h|o| +0#0000000&@1|0+0#e000002&|O|3|7@1| +0#0000000&@63
+|e+0#af5f00255&|c|h|o| +0#0000000&|-+0#af5f00255&|0+0#e000002&|3|7@1| +0#0000000&@64
+|e+0#af5f00255&|c|h|o| +0#0000000&|-+0#af5f00255&|0+0#e000002&|o|3|7@1| +0#0000000&@63
+|e+0#af5f00255&|c|h|o| +0#0000000&|-+0#af5f00255&|0+0#e000002&|O|3|7@1| +0#0000000&@63
+@75
+@57|1|2|1|,|1| @8|2|9|%|
diff --git a/runtime/syntax/testdir/dumps/vim_expr_08.dump b/runtime/syntax/testdir/dumps/vim_expr_08.dump
index 958a539..ca88d9f 100644
--- a/runtime/syntax/testdir/dumps/vim_expr_08.dump
+++ b/runtime/syntax/testdir/dumps/vim_expr_08.dump
@@ -1,20 +1,20 @@
-| +0&#ffffff0@5|\+0#e000e06&|}| +0#0000000&@66
+| +0&#ffffff0@74
+|"+0#0000e05&| |B|i|n|a|r|y| +0#0000000&@66
+|e+0#af5f00255&|c|h|o| +0#0000000&@1|0+0#e000002&|b|1@7| +0#0000000&@58
+|e+0#af5f00255&|c|h|o| +0#0000000&@1|0+0#e000002&|B|1@7| +0#0000000&@58
+|e+0#af5f00255&|c|h|o| +0#0000000&|-+0#af5f00255&|0+0#e000002&|b|1@7| +0#0000000&@58
+>e+0#af5f00255&|c|h|o| +0#0000000&|-+0#af5f00255&|0+0#e000002&|B|1@7| +0#0000000&@58
@75
-|"+0#0000e05&| +0#0000000&|T+0#0000001#ffff4012|O|D|O|:+0#e000e06#ffffff0| +0#0000e05&|a|r|b|i|t|r|a|r|y| |e|x|p|r|e|s@1|i|o|n| |k|e|y|s| +0#0000000&@41
+|"+0#0000e05&| |F|l|o|a|t| +0#0000000&@67
+|e+0#af5f00255&|c|h|o| +0#0000000&|1+0#e000002&|2|3|.|4|5|6| +0#0000000&@62
+|e+0#af5f00255&|c|h|o| +0#0000000&|++0#af5f00255&|0+0#e000002&|.|0@2|1| +0#0000000&@62
+|e+0#af5f00255&|c|h|o| +0#0000000&|5+0#e000002&@1|.|0| +0#0000000&@65
+|e+0#af5f00255&|c|h|o| +0#0000000&|-+0#af5f00255&|0+0#e000002&|.|1|2|3| +0#0000000&@63
+|e+0#af5f00255&|c|h|o| +0#0000000&|1+0#e000002&|.|2|3|4|e|0|3| +0#0000000&@61
+|e+0#af5f00255&|c|h|o| +0#0000000&|1+0#e000002&|.|0|E|-|6| +0#0000000&@63
+|e+0#af5f00255&|c|h|o| +0#0000000&|-+0#af5f00255&|3+0#e000002&|.|1|4|1|6|e|+|8@1| +0#0000000&@58
@75
-|"+0#0000e05&| |L|i|t|e|r|a|l| |D|i|c|t|i|o|n|a|r|y| +0#0000000&@54
-> @74
-|e+0#af5f00255&|c|h|o| +0#0000000&|#+0#e000e06&|{|}| +0#0000000&@66
-|e+0#af5f00255&|c|h|o| +0#0000000&|#+0#e000e06&|{| +0#0000000&@2|f+0#00e0e07&|o@1|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&@51
-|e+0#af5f00255&|c|h|o| +0#0000000&|#+0#e000e06&|{| +0#0000000&|-+0#af5f00255&|f+0#00e0e07&|o@1|-+0#af5f00255&|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&@51
-|e+0#af5f00255&|c|h|o| +0#0000000&|#+0#e000e06&|{| +0#0000000&@3|4+0#e000002&|2|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&@51
-@75
-|e+0#af5f00255&|c|h|o| +0#0000000&|#+0#e000e06&|{| +0#0000000&|f+0#00e0e07&|o@1|:+0#0000000&| |#+0#e000e06&|{| +0#0000000&@2|b+0#00e0e07&|a|r|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@41
-|e+0#af5f00255&|c|h|o| +0#0000000&|#+0#e000e06&|{| +0#0000000&|f+0#00e0e07&|o@1|:+0#0000000&| |#+0#e000e06&|{| +0#0000000&|-+0#af5f00255&|b+0#00e0e07&|a|r|-+0#af5f00255&|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@41
-|e+0#af5f00255&|c|h|o| +0#0000000&|#+0#e000e06&|{| +0#0000000&|f+0#00e0e07&|o@1|:+0#0000000&| |#+0#e000e06&|{| +0#0000000&@3|4+0#e000002&|2|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@41
-|e+0#af5f00255&|c|h|o| +0#0000000&|#+0#e000e06&|{| +0#0000000&|f+0#00e0e07&|o@1|:+0#0000000&| @1|{+0#e000e06&| +0#0000000&|"+0#e000002&|b|a|r|"|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@41
-|e+0#af5f00255&|c|h|o| +0#0000000&|#+0#e000e06&|{| +0#0000000&|f+0#00e0e07&|o@1|:+0#0000000&| @1|{+0#e000e06&| +0#0000000&|'+0#e000002&|b|a|r|'|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@41
-|e+0#af5f00255&|c|h|o| +0#0000000&|#+0#e000e06&|{| +0#0000000&|f+0#00e0e07&|o@1|:+0#0000000&| @1|{+0#e000e06&| +0#0000000&@3|4+0#e000002&|2|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@41
-@75
-|e+0#af5f00255&|c|h|o| +0#0000000&|#+0#e000e06&|{| +0#0000000&|-+0#af5f00255&|f+0#00e0e07&|o@1|-+0#af5f00255&|:+0#0000000&| |#+0#e000e06&|{| +0#0000000&@2|b+0#00e0e07&|a|r|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@39
-@57|1|3|9|,|0|-|1| @6|4|2|%|
+|"+0#0000e05&| |B|l|o|b| +0#0000000&@68
+|e+0#af5f00255&|c|h|o| +0#0000000&|0+0#e000002&|z| +0#0000000&@67
+|e+0#af5f00255&|c|h|o| +0#0000000&|0+0#e000002&|z|F@1|0@1|E|D|0|1|5|D|A|F| +0#0000000&@55
+@57|1|3|9|,|1| @8|3|4|%|
diff --git a/runtime/syntax/testdir/dumps/vim_expr_09.dump b/runtime/syntax/testdir/dumps/vim_expr_09.dump
index bddb521..5e3dfbb 100644
--- a/runtime/syntax/testdir/dumps/vim_expr_09.dump
+++ b/runtime/syntax/testdir/dumps/vim_expr_09.dump
@@ -1,20 +1,20 @@
-|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|#+0#e000e06&|{| +0#0000000&|-+0#af5f00255&|f+0#00e0e07&|o@1|-+0#af5f00255&|:+0#0000000&| |#+0#e000e06&|{| +0#0000000&@2|b+0#00e0e07&|a|r|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@39
-|e+0#af5f00255&|c|h|o| +0#0000000&|#+0#e000e06&|{| +0#0000000&|-+0#af5f00255&|f+0#00e0e07&|o@1|-+0#af5f00255&|:+0#0000000&| |#+0#e000e06&|{| +0#0000000&|-+0#af5f00255&|b+0#00e0e07&|a|r|-+0#af5f00255&|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@39
-|e+0#af5f00255&|c|h|o| +0#0000000&|#+0#e000e06&|{| +0#0000000&|-+0#af5f00255&|f+0#00e0e07&|o@1|-+0#af5f00255&|:+0#0000000&| |#+0#e000e06&|{| +0#0000000&@3|4+0#e000002&|2|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@39
-|e+0#af5f00255&|c|h|o| +0#0000000&|#+0#e000e06&|{| +0#0000000&|-+0#af5f00255&|f+0#00e0e07&|o@1|-+0#af5f00255&|:+0#0000000&| @1|{+0#e000e06&| +0#0000000&|"+0#e000002&|b|a|r|"|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@39
-|e+0#af5f00255&|c|h|o| +0#0000000&|#+0#e000e06&|{| +0#0000000&|-+0#af5f00255&|f+0#00e0e07&|o@1|-+0#af5f00255&|:+0#0000000&| @1|{+0#e000e06&| +0#0000000&|'+0#e000002&|b|a|r|'|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@39
->e+0#af5f00255&|c|h|o| +0#0000000&|#+0#e000e06&|{| +0#0000000&|-+0#af5f00255&|f+0#00e0e07&|o@1|-+0#af5f00255&|:+0#0000000&| @1|{+0#e000e06&| +0#0000000&@3|4+0#e000002&|2|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@39
+|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|0+0#e000002&|z|F@1|0@1|E|D|0|1|5|D|A|F| +0#0000000&@55
+|e+0#af5f00255&|c|h|o| +0#0000000&|0+0#e000002&|z|F@1|0@1|.|E|D|0|1|.|5|D|A|F| +0#0000000&@53
+|e+0#af5f00255&|c|h|o| +0#0000000&|0+0#e000002&|z|F@1|.|0@1|.|E|D|.|0|1|.|5|D|.|A|F| +0#0000000&@50
@75
-|e+0#af5f00255&|c|h|o| +0#0000000&|#+0#e000e06&|{| +0#0000000&|4+0#e000002&|2|:+0#0000000&| |#+0#e000e06&|{| +0#0000000&@2|b+0#00e0e07&|a|r|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@42
-|e+0#af5f00255&|c|h|o| +0#0000000&|#+0#e000e06&|{| +0#0000000&|4+0#e000002&|2|:+0#0000000&| |#+0#e000e06&|{| +0#0000000&|-+0#af5f00255&|b+0#00e0e07&|a|r|-+0#af5f00255&|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@42
-|e+0#af5f00255&|c|h|o| +0#0000000&|#+0#e000e06&|{| +0#0000000&|4+0#e000002&|2|:+0#0000000&| |#+0#e000e06&|{| +0#0000000&@3|4+0#e000002&|2|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@42
-|e+0#af5f00255&|c|h|o| +0#0000000&|#+0#e000e06&|{| +0#0000000&|4+0#e000002&|2|:+0#0000000&| @1|{+0#e000e06&| +0#0000000&|"+0#e000002&|b|a|r|"|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@42
-|e+0#af5f00255&|c|h|o| +0#0000000&|#+0#e000e06&|{| +0#0000000&|4+0#e000002&|2|:+0#0000000&| @1|{+0#e000e06&| +0#0000000&|'+0#e000002&|b|a|r|'|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@42
-|e+0#af5f00255&|c|h|o| +0#0000000&|#+0#e000e06&|{| +0#0000000&|4+0#e000002&|2|:+0#0000000&| @1|{+0#e000e06&| +0#0000000&@3|4+0#e000002&|2|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@42
+|"+0#0000e05&| |L|i|s|t| +0#0000000&@68
+> @74
+|e+0#af5f00255&|c|h|o| +0#0000000&|[+0#e000e06&|]| +0#0000000&@67
+|e+0#af5f00255&|c|h|o| +0#0000000&|[+0#e000e06&|4+0#e000002&|2|]+0#e000e06&| +0#0000000&@65
+|e+0#af5f00255&|c|h|o| +0#0000000&|[+0#e000e06&@1|1+0#e000002&@1|,+0#0000000&| |1+0#e000002&|2|]+0#e000e06&|,+0#0000000&| |[+0#e000e06&|2+0#e000002&|1|,+0#0000000&| |2+0#e000002&@1|]+0#e000e06&|,+0#0000000&| |[+0#e000e06&|3+0#e000002&|1|,+0#0000000&| |3+0#e000002&|2|]+0#e000e06&@1| +0#0000000&@39
+|e+0#af5f00255&|c|h|o| +0#0000000&|[+0#e000e06&|1+0#e000002&|,+0#0000000&| @66
+@6|\+0#e000e06&| +0#0000000&|2+0#e000002&|,+0#0000000&| @64
+@6|\+0#e000e06&| +0#0000000&|3+0#e000002&|,+0#0000000&| @64
+@6|\+0#e000e06&| +0#0000000&|4+0#e000002&| +0#0000000&@65
+@6|\+0#e000e06&|]| +0#0000000&@66
+|e+0#af5f00255&|c|h|o| +0#0000000&|[+0#e000e06&|1+0#e000002&|,+0#0000000&| |'+0#e000002&|t|w|o|'|,+0#0000000&| |1+0#e000002&| +0#0000000&|++0#af5f00255&| +0#0000000&|2+0#e000002&|,+0#0000000&| |"+0#e000002&|f|o|"| +0#0000000&|.+0#af5f00255&@1| +0#0000000&|"+0#e000002&|u|r|"|]+0#e000e06&| +0#0000000&@38
@75
-|e+0#af5f00255&|c|h|o| +0#0000000&|#+0#e000e06&|{| +0#0000000&@67
-@6|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@58
-@6|\+0#e000e06&| +0#0000000&@1|f+0#00e0e07&|o@1|:+0#0000000&| |#+0#e000e06&|{| +0#0000000&@58
-@6|\+0#e000e06&| +0#0000000&@3|b+0#00e0e07&|a|r|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&@52
-@6|\+0#e000e06&| +0#0000000&@1|}+0#e000e06&| +0#0000000&@64
-@57|1|5|7|,|1| @8|4|8|%|
+|"+0#0000e05&| |I|s@1|u|e| |#|5|8|3|0| |(|I|n|c|o|r@1|e|c|t| |s|y|n|t|a|x| |h|i|g|h|l|i|g|h|t|i|n|g| |i|n| |V|i|m| |s|c|r|i|p|t| |w|h|e|n| |o|m|i|t@1|i|n|g| |s|p
+|a|c|e| |i|n| |l|i|s|t| |o|f| |s|t|r|i|n|g|)| +0#0000000&@52
+|l+0#af5f00255&|e|t| +0#0000000&|l+0#00e0e07&| +0#0000000&|=+0#af5f00255&| +0#0000000&|[+0#e000e06&|'+0#e000002&|a|'|,+0#0000000&|'+0#e000002&|b|'|,+0#0000000&|'+0#e000002&|c|'|]+0#e000e06&| +0#0000000&@53
+@57|1|5|7|,|0|-|1| @6|3|9|%|
diff --git a/runtime/syntax/testdir/dumps/vim_expr_10.dump b/runtime/syntax/testdir/dumps/vim_expr_10.dump
index 33eca31..2584a31 100644
--- a/runtime/syntax/testdir/dumps/vim_expr_10.dump
+++ b/runtime/syntax/testdir/dumps/vim_expr_10.dump
@@ -1,20 +1,20 @@
-| +0&#ffffff0@5|\+0#e000e06&| +0#0000000&@1|}+0#e000e06&| +0#0000000&@64
-@6|\+0#e000e06&|}| +0#0000000&@66
+|l+0#af5f00255#ffffff0|e|t| +0#0000000&|l+0#00e0e07&| +0#0000000&|=+0#af5f00255&| +0#0000000&|[+0#e000e06&|'+0#e000002&|a|'|,+0#0000000&|'+0#e000002&|b|'|,+0#0000000&|'+0#e000002&|c|'|]+0#e000e06&| +0#0000000&@53
@75
-|"+0#0000e05&| |m|a|t|c|h| |a|s| |k|e|y|s| |n|o|t| |s|c|o|p|e| |d|i|c|t|i|o|n|a|r|i|e|s| +0#0000000&@36
-|e+0#af5f00255&|c|h|o| +0#0000000&|#+0#e000e06&|{| +0#0000000&|b+0#00e0e07&|:| +0#0000000&|4+0#e000002&|2|,+0#0000000&| |w+0#00e0e07&|:| +0#0000000&|4+0#e000002&|2|,+0#0000000&| |t+0#00e0e07&|:| +0#0000000&|4+0#e000002&|2|,+0#0000000&| |g+0#00e0e07&|:| +0#0000000&|4+0#e000002&|2|,+0#0000000&| |l+0#00e0e07&|:| +0#0000000&|4+0#e000002&|2|,+0#0000000&| |s+0#00e0e07&|:| +0#0000000&|4+0#e000002&|2|,+0#0000000&| |a+0#00e0e07&|:| +0#0000000&|4+0#e000002&|2|,+0#0000000&| |v+0#00e0e07&|:| +0#0000000&|4+0#e000002&|2| +0#0000000&@1|}+0#e000e06&| +0#0000000&@9
-> @74
-|"+0#0000e05&| |T|u|p|l|e| +0#0000000&@67
+|"+0#0000e05&| |D|i|c|t|i|o|n|a|r|y| +0#0000000&@62
@75
-|e+0#af5f00255&|c|h|o| +0#0000000&|(+0#e000e06&|)| +0#0000000&@67
-|e+0#af5f00255&|c|h|o| +0#0000000&|(+0#e000e06&|4+0#e000002&|2|,+0#0000000&|)+0#e000e06&| +0#0000000&@64
-|e+0#af5f00255&|c|h|o| +0#0000000&|(+0#e000e06&@1|1+0#e000002&@1|,+0#0000000&| |1+0#e000002&|2|)+0#e000e06&|,+0#0000000&| |(+0#e000e06&|2+0#e000002&|1|,+0#0000000&| |2+0#e000002&@1|)+0#e000e06&|,+0#0000000&| |(+0#e000e06&|3+0#e000002&|1|,+0#0000000&| |3+0#e000002&|2|)+0#e000e06&@1| +0#0000000&@39
-|e+0#af5f00255&|c|h|o| +0#0000000&|(+0#e000e06&|1+0#e000002&|,+0#0000000&| @66
-@6|\+0#e000e06&| +0#0000000&|2+0#e000002&|,+0#0000000&| @64
-@6|\+0#e000e06&| +0#0000000&|3+0#e000002&|,+0#0000000&| @64
-@6|\+0#e000e06&| +0#0000000&|4+0#e000002&| +0#0000000&@65
-@6|\+0#e000e06&|)| +0#0000000&@66
-|e+0#af5f00255&|c|h|o| +0#0000000&|(+0#e000e06&|1+0#e000002&|,+0#0000000&| |'+0#e000002&|t|w|o|'|,+0#0000000&| |1+0#e000002&| +0#0000000&|++0#af5f00255&| +0#0000000&|2+0#e000002&|,+0#0000000&| |"+0#e000002&|f|o|"| +0#0000000&|.+0#af5f00255&@1| +0#0000000&|"+0#e000002&|u|r|"|)+0#e000e06&| +0#0000000&@38
+|e+0#af5f00255&|c|h|o| +0#0000000&|{+0#e000e06&|}| +0#0000000&@67
+>e+0#af5f00255&|c|h|o| +0#0000000&|{+0#e000e06&| +0#0000000&|'+0#e000002&|f|o@1|'|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&@52
+|e+0#af5f00255&|c|h|o| +0#0000000&|{+0#e000e06&| +0#0000000&|"+0#e000002&|f|o@1|"|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&@52
+|e+0#af5f00255&|c|h|o| +0#0000000&|{+0#e000e06&| +0#0000000&@3|4+0#e000002&|2|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&@52
@75
-|e+0#af5f00255&|c|h|o| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|++0#af5f00255&| +0#0000000&|(+0#e000e06&|4+0#e000002&|2|,+0#0000000&| |8+0#e000002&|7|)+0#e000e06&| +0#0000000&@55
-@57|1|7|5|,|0|-|1| @6|5|3|%|
+|e+0#af5f00255&|c|h|o| +0#0000000&|{+0#e000e06&| +0#0000000&|"+0#e000002&|f|o@1|"|:+0#0000000&| @1|{+0#e000e06&| +0#0000000&|'+0#e000002&|b|a|r|'|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@40
+|e+0#af5f00255&|c|h|o| +0#0000000&|{+0#e000e06&| +0#0000000&|"+0#e000002&|f|o@1|"|:+0#0000000&| @1|{+0#e000e06&| +0#0000000&|"+0#e000002&|b|a|r|"|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@40
+|e+0#af5f00255&|c|h|o| +0#0000000&|{+0#e000e06&| +0#0000000&|"+0#e000002&|f|o@1|"|:+0#0000000&| @1|{+0#e000e06&| +0#0000000&@3|4+0#e000002&|2|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@40
+|e+0#af5f00255&|c|h|o| +0#0000000&|{+0#e000e06&| +0#0000000&|"+0#e000002&|f|o@1|"|:+0#0000000&| |#+0#e000e06&|{| +0#0000000&@2|b+0#00e0e07&|a|r|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@40
+|e+0#af5f00255&|c|h|o| +0#0000000&|{+0#e000e06&| +0#0000000&|"+0#e000002&|f|o@1|"|:+0#0000000&| |#+0#e000e06&|{| +0#0000000&|-+0#af5f00255&|b+0#00e0e07&|a|r|-+0#af5f00255&|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@40
+|e+0#af5f00255&|c|h|o| +0#0000000&|{+0#e000e06&| +0#0000000&|"+0#e000002&|f|o@1|"|:+0#0000000&| |#+0#e000e06&|{| +0#0000000&@3|4+0#e000002&|2|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@40
+@75
+|e+0#af5f00255&|c|h|o| +0#0000000&|{+0#e000e06&| +0#0000000&|'+0#e000002&|f|o@1|'|:+0#0000000&| @1|{+0#e000e06&| +0#0000000&|'+0#e000002&|b|a|r|'|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@40
+|e+0#af5f00255&|c|h|o| +0#0000000&|{+0#e000e06&| +0#0000000&|'+0#e000002&|f|o@1|'|:+0#0000000&| @1|{+0#e000e06&| +0#0000000&|"+0#e000002&|b|a|r|"|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@40
+|e+0#af5f00255&|c|h|o| +0#0000000&|{+0#e000e06&| +0#0000000&|'+0#e000002&|f|o@1|'|:+0#0000000&| @1|{+0#e000e06&| +0#0000000&@3|4+0#e000002&|2|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@40
+@57|1|7|4|,|1| @8|4|3|%|
diff --git a/runtime/syntax/testdir/dumps/vim_expr_11.dump b/runtime/syntax/testdir/dumps/vim_expr_11.dump
index d8e8b4b..f230059 100644
--- a/runtime/syntax/testdir/dumps/vim_expr_11.dump
+++ b/runtime/syntax/testdir/dumps/vim_expr_11.dump
@@ -1,20 +1,20 @@
-|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|++0#af5f00255&| +0#0000000&|(+0#e000e06&|4+0#e000002&|2|,+0#0000000&| |8+0#e000002&|7|)+0#e000e06&| +0#0000000&@55
-|e+0#af5f00255&|c|h|o| +0#0000000&|(+0#e000e06&|4+0#e000002&|2|,+0#0000000&| |8+0#e000002&|7|)+0#e000e06&| +0#0000000&|++0#af5f00255&| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&@55
+|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|{+0#e000e06&| +0#0000000&|'+0#e000002&|f|o@1|'|:+0#0000000&| @1|{+0#e000e06&| +0#0000000&@3|4+0#e000002&|2|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@40
+|e+0#af5f00255&|c|h|o| +0#0000000&|{+0#e000e06&| +0#0000000&|'+0#e000002&|f|o@1|'|:+0#0000000&| |#+0#e000e06&|{| +0#0000000&@2|b+0#00e0e07&|a|r|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@40
+|e+0#af5f00255&|c|h|o| +0#0000000&|{+0#e000e06&| +0#0000000&|'+0#e000002&|f|o@1|'|:+0#0000000&| |#+0#e000e06&|{| +0#0000000&|-+0#af5f00255&|b+0#00e0e07&|a|r|-+0#af5f00255&|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@40
+|e+0#af5f00255&|c|h|o| +0#0000000&|{+0#e000e06&| +0#0000000&|'+0#e000002&|f|o@1|'|:+0#0000000&| |#+0#e000e06&|{| +0#0000000&@3|4+0#e000002&|2|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@40
@75
-|"+0#0000e05&| |R|e|g|i|s|t|e|r| +0#0000000&@64
+>e+0#af5f00255&|c|h|o| +0#0000000&|{+0#e000e06&| +0#0000000&@3|4+0#e000002&|2|:+0#0000000&| @1|{+0#e000e06&| +0#0000000&|'+0#e000002&|b|a|r|'|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@40
+|e+0#af5f00255&|c|h|o| +0#0000000&|{+0#e000e06&| +0#0000000&@3|4+0#e000002&|2|:+0#0000000&| @1|{+0#e000e06&| +0#0000000&|"+0#e000002&|b|a|r|"|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@40
+|e+0#af5f00255&|c|h|o| +0#0000000&|{+0#e000e06&| +0#0000000&@3|4+0#e000002&|2|:+0#0000000&| @1|{+0#e000e06&| +0#0000000&@3|4+0#e000002&|2|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@40
+|e+0#af5f00255&|c|h|o| +0#0000000&|{+0#e000e06&| +0#0000000&@3|4+0#e000002&|2|:+0#0000000&| |#+0#e000e06&|{| +0#0000000&@2|b+0#00e0e07&|a|r|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@40
+|e+0#af5f00255&|c|h|o| +0#0000000&|{+0#e000e06&| +0#0000000&@3|4+0#e000002&|2|:+0#0000000&| |#+0#e000e06&|{| +0#0000000&|-+0#af5f00255&|b+0#00e0e07&|a|r|-+0#af5f00255&|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@40
+|e+0#af5f00255&|c|h|o| +0#0000000&|{+0#e000e06&| +0#0000000&@3|4+0#e000002&|2|:+0#0000000&| |#+0#e000e06&|{| +0#0000000&@3|4+0#e000002&|2|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@40
@75
->e+0#af5f00255&|c|h|o| +0#0000000&|@+0#e000e06&|"| +0#0000000&@67
-|e+0#af5f00255&|c|h|o| +0#0000000&|@+0#e000e06&|0| +0#0000000&|@+0#e000e06&|1| +0#0000000&|@+0#e000e06&|2| +0#0000000&|@+0#e000e06&|3| +0#0000000&|@+0#e000e06&|4| +0#0000000&|@+0#e000e06&|5| +0#0000000&|@+0#e000e06&|6| +0#0000000&|@+0#e000e06&|7| +0#0000000&|@+0#e000e06&|8| +0#0000000&|@+0#e000e06&|9| +0#0000000&@40
-|e+0#af5f00255&|c|h|o| +0#0000000&|@+0#e000e06&|-| +0#0000000&@67
-|e+0#af5f00255&|c|h|o| +0#0000000&|@+0#e000e06&|a| +0#0000000&|@+0#e000e06&|b| +0#0000000&|@+0#e000e06&|c| +0#0000000&|@+0#e000e06&|d| +0#0000000&|@+0#e000e06&|e| +0#0000000&|@+0#e000e06&|f| +0#0000000&|@+0#e000e06&|g| +0#0000000&|@+0#e000e06&|h| +0#0000000&|@+0#e000e06&|i| +0#0000000&|@+0#e000e06&|j| +0#0000000&|@+0#e000e06&|k| +0#0000000&|@+0#e000e06&|l| +0#0000000&|@+0#e000e06&|m| +0#0000000&|@+0#e000e06&|n| +0#0000000&|@+0#e000e06&|o| +0#0000000&|@+0#e000e06&|p| +0#0000000&|@+0#e000e06&|q| +0#0000000&|@+0#e000e06&|r| +0#0000000&|@+0#e000e06&|s| +0#0000000&|@+0#e000e06&|t| +0#0000000&|@+0#e000e06&|u| +0#0000000&|@+0#e000e06&|v| +0#0000000&|@+0#e000e06&|w| +0#0000000&|@+0#e000e06&
-|x| +0#0000000&|@+0#e000e06&|y| +0#0000000&|@+0#e000e06&|z| +0#0000000&@67
-|e+0#af5f00255&|c|h|o| +0#0000000&|@+0#e000e06&|A| +0#0000000&|@+0#e000e06&|B| +0#0000000&|@+0#e000e06&|C| +0#0000000&|@+0#e000e06&|D| +0#0000000&|@+0#e000e06&|E| +0#0000000&|@+0#e000e06&|F| +0#0000000&|@+0#e000e06&|G| +0#0000000&|@+0#e000e06&|H| +0#0000000&|@+0#e000e06&|I| +0#0000000&|@+0#e000e06&|J| +0#0000000&|@+0#e000e06&|K| +0#0000000&|@+0#e000e06&|L| +0#0000000&|@+0#e000e06&|M| +0#0000000&|@+0#e000e06&|N| +0#0000000&|@+0#e000e06&|O| +0#0000000&|@+0#e000e06&|P| +0#0000000&|@+0#e000e06&|Q| +0#0000000&|@+0#e000e06&|R| +0#0000000&|@+0#e000e06&|S| +0#0000000&|@+0#e000e06&|T| +0#0000000&|@+0#e000e06&|U| +0#0000000&|@+0#e000e06&|V| +0#0000000&|@+0#e000e06&|W| +0#0000000&|@+0#e000e06&
-|X| +0#0000000&|@+0#e000e06&|Y| +0#0000000&|@+0#e000e06&|Z| +0#0000000&@67
-|e+0#af5f00255&|c|h|o| +0#0000000&|@+0#e000e06&|:| +0#0000000&|@+0#e000e06&|.| +0#0000000&|@+0#e000e06&|%| +0#0000000&|@+0#e000e06&|#| +0#0000000&|@+0#e000e06&|=| +0#0000000&|@+0#e000e06&|*| +0#0000000&|@+0#e000e06&|+| +0#0000000&|@+0#e000e06&|~| +0#0000000&|@+0#e000e06&|_| +0#0000000&|@+0#e000e06&|/| +0#0000000&@40
+|e+0#af5f00255&|c|h|o| +0#0000000&|{+0#e000e06&| +0#0000000&@68
+@6|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@58
+@6|\+0#e000e06&| +0#0000000&|"+0#e000002&|f|o@1|"|:+0#0000000&| |{+0#e000e06&| +0#0000000&|"+0#e000002&|b|a|r|"|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&@42
+@6|\+0#e000e06&|}| +0#0000000&@66
@75
-|"+0#0000e05&| |O|p|e|r|a|t|o|r|s| +0#0000000&@63
+|"+0#0000e05&| +0#0000000&|T+0#0000001#ffff4012|O|D|O|:+0#e000e06#ffffff0| +0#0000e05&|a|r|b|i|t|r|a|r|y| |e|x|p|r|e|s@1|i|o|n| |k|e|y|s| +0#0000000&@41
@75
-|"+0#0000e05&| |T|e|r|n|a|r|y| +0#0000000&@65
-|e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|?+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|:+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@51
-@75
-@57|1|9|3|,|1| @8|5|9|%|
+@57|1|9|2|,|1| @8|4|8|%|
diff --git a/runtime/syntax/testdir/dumps/vim_expr_12.dump b/runtime/syntax/testdir/dumps/vim_expr_12.dump
index 61ee72f..8a5f504 100644
--- a/runtime/syntax/testdir/dumps/vim_expr_12.dump
+++ b/runtime/syntax/testdir/dumps/vim_expr_12.dump
@@ -1,20 +1,20 @@
| +0&#ffffff0@74
-|e+0#af5f00255&|c|h|o| +0#0000000&|l+0#00e0e07&|n|u|m| +0#0000000&|=+0#af5f00255&@1| +0#0000000&|1+0#e000002&| +0#0000000&|?+0#af5f00255&| +0#0000000&|"+0#e000002&|t|o|p|"| +0#0000000&|:+0#af5f00255&| +0#0000000&|l+0#00e0e07&|n|u|m| +0#0000000&@45
-|e+0#af5f00255&|c|h|o| +0#0000000&|l+0#00e0e07&|n|u|m| +0#0000000&|=+0#af5f00255&@1| +0#0000000&|1+0#e000002&| +0#0000000&|?+0#af5f00255&| +0#0000000&|"+0#e000002&|t|o|p|"| +0#0000000&|:+0#af5f00255&| +0#0000000&|l+0#00e0e07&|n|u|m| +0#0000000&|=+0#af5f00255&@1| +0#0000000&|1+0#e000002&|0@2| +0#0000000&|?+0#af5f00255&| +0#0000000&|"+0#e000002&|l|a|s|t|"| +0#0000000&|:+0#af5f00255&| +0#0000000&|l+0#00e0e07&|n|u|m| +0#0000000&@21
+|"+0#0000e05&| |L|i|t|e|r|a|l| |D|i|c|t|i|o|n|a|r|y| +0#0000000&@54
@75
-|e+0#af5f00255&|c|h|o| +0#0000000&|l+0#00e0e07&|n|u|m| +0#0000000&|=+0#af5f00255&@1| +0#0000000&|1+0#e000002&| +0#0000000&@60
-@6>\+0#e000e06&| +0#0000000&|?+0#af5f00255&| +0#0000000&|"+0#e000002&|t|o|p|"| +0#0000000&@59
-@6|\+0#e000e06&| +0#0000000&|:+0#af5f00255&| +0#0000000&|l+0#00e0e07&|n|u|m| +0#0000000&|=+0#af5f00255&@1| +0#0000000&|1+0#e000002&|0@2| +0#0000000&@52
-@6|\+0#e000e06&| +0#0000000&@8|?+0#af5f00255&| +0#0000000&|"+0#e000002&|l|a|s|t|"| +0#0000000&@50
-@6|\+0#e000e06&| +0#0000000&@8|:+0#af5f00255&| +0#0000000&|l+0#00e0e07&|n|u|m| +0#0000000&@52
-|e+0#af5f00255&|c|h|o| +0#0000000&|l+0#00e0e07&|n|u|m| +0#0000000&|=+0#af5f00255&@1| +0#0000000&|1+0#e000002&| +0#0000000&|?+0#af5f00255&| +0#0000000&@58
-@6|\+0#e000e06&| +0#0000000&|"+0#e000002&|t|o|p|"| +0#0000000&|:+0#af5f00255&| +0#0000000&@59
-@6|\+0#e000e06&| +0#0000000&|l+0#00e0e07&|n|u|m| +0#0000000&|=+0#af5f00255&@1| +0#0000000&|1+0#e000002&|0@2| +0#0000000&|?+0#af5f00255&| +0#0000000&@52
-@6|\+0#e000e06&| +0#0000000&@8|"+0#e000002&|l|a|s|t|"| +0#0000000&|:+0#af5f00255&| +0#0000000&@50
-@6|\+0#e000e06&| +0#0000000&@8|l+0#00e0e07&|n|u|m| +0#0000000&@54
+|e+0#af5f00255&|c|h|o| +0#0000000&|#+0#e000e06&|{|}| +0#0000000&@66
+|e+0#af5f00255&|c|h|o| +0#0000000&|#+0#e000e06&|{| +0#0000000&@2|f+0#00e0e07&|o@1|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&@51
+>e+0#af5f00255&|c|h|o| +0#0000000&|#+0#e000e06&|{| +0#0000000&|-+0#af5f00255&|f+0#00e0e07&|o@1|-+0#af5f00255&|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&@51
+|e+0#af5f00255&|c|h|o| +0#0000000&|#+0#e000e06&|{| +0#0000000&@3|4+0#e000002&|2|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&@51
@75
-|e+0#af5f00255&|c|h|o| +0#0000000&|1+0#e000002&| +0#0000000&|?+0#af5f00255&| +0#0000000&|1+0#e000002&| +0#0000000&|:+0#af5f00255&| +0#0000000&|0+0#e000002&| +0#0000000&@60
-|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|f|o@1|"| +0#0000000&|?+0#af5f00255&| +0#0000000&|"+0#e000002&|f|o@1|"| +0#0000000&|:+0#af5f00255&| +0#0000000&|"+0#e000002&|b|a|r|"| +0#0000000&@48
-|e+0#af5f00255&|c|h|o| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|?+0#af5f00255&| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|:+0#af5f00255&| +0#0000000&|b+0#00e0e07&|a|r| +0#0000000&@54
-|e+0#af5f00255&|c|h|o| +0#0000000&|g+0#00e0e07&|:|f|o@1| +0#0000000&|?+0#af5f00255&| +0#0000000&|g+0#00e0e07&|:|f|o@1| +0#0000000&|:+0#af5f00255&| +0#0000000&|g+0#00e0e07&|:|b|a|r| +0#0000000&@48
-@57|2|0|9|,|7| @8|6|4|%|
+|e+0#af5f00255&|c|h|o| +0#0000000&|#+0#e000e06&|{| +0#0000000&|f+0#00e0e07&|o@1|:+0#0000000&| |#+0#e000e06&|{| +0#0000000&@2|b+0#00e0e07&|a|r|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@41
+|e+0#af5f00255&|c|h|o| +0#0000000&|#+0#e000e06&|{| +0#0000000&|f+0#00e0e07&|o@1|:+0#0000000&| |#+0#e000e06&|{| +0#0000000&|-+0#af5f00255&|b+0#00e0e07&|a|r|-+0#af5f00255&|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@41
+|e+0#af5f00255&|c|h|o| +0#0000000&|#+0#e000e06&|{| +0#0000000&|f+0#00e0e07&|o@1|:+0#0000000&| |#+0#e000e06&|{| +0#0000000&@3|4+0#e000002&|2|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@41
+|e+0#af5f00255&|c|h|o| +0#0000000&|#+0#e000e06&|{| +0#0000000&|f+0#00e0e07&|o@1|:+0#0000000&| @1|{+0#e000e06&| +0#0000000&|"+0#e000002&|b|a|r|"|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@41
+|e+0#af5f00255&|c|h|o| +0#0000000&|#+0#e000e06&|{| +0#0000000&|f+0#00e0e07&|o@1|:+0#0000000&| @1|{+0#e000e06&| +0#0000000&|'+0#e000002&|b|a|r|'|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@41
+|e+0#af5f00255&|c|h|o| +0#0000000&|#+0#e000e06&|{| +0#0000000&|f+0#00e0e07&|o@1|:+0#0000000&| @1|{+0#e000e06&| +0#0000000&@3|4+0#e000002&|2|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@41
+@75
+|e+0#af5f00255&|c|h|o| +0#0000000&|#+0#e000e06&|{| +0#0000000&|-+0#af5f00255&|f+0#00e0e07&|o@1|-+0#af5f00255&|:+0#0000000&| |#+0#e000e06&|{| +0#0000000&@2|b+0#00e0e07&|a|r|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@39
+|e+0#af5f00255&|c|h|o| +0#0000000&|#+0#e000e06&|{| +0#0000000&|-+0#af5f00255&|f+0#00e0e07&|o@1|-+0#af5f00255&|:+0#0000000&| |#+0#e000e06&|{| +0#0000000&|-+0#af5f00255&|b+0#00e0e07&|a|r|-+0#af5f00255&|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@39
+|e+0#af5f00255&|c|h|o| +0#0000000&|#+0#e000e06&|{| +0#0000000&|-+0#af5f00255&|f+0#00e0e07&|o@1|-+0#af5f00255&|:+0#0000000&| |#+0#e000e06&|{| +0#0000000&@3|4+0#e000002&|2|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@39
+|e+0#af5f00255&|c|h|o| +0#0000000&|#+0#e000e06&|{| +0#0000000&|-+0#af5f00255&|f+0#00e0e07&|o@1|-+0#af5f00255&|:+0#0000000&| @1|{+0#e000e06&| +0#0000000&|"+0#e000002&|b|a|r|"|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@39
+@57|2|1|0|,|1| @8|5|2|%|
diff --git a/runtime/syntax/testdir/dumps/vim_expr_13.dump b/runtime/syntax/testdir/dumps/vim_expr_13.dump
index 675c89d..a48bf7c 100644
--- a/runtime/syntax/testdir/dumps/vim_expr_13.dump
+++ b/runtime/syntax/testdir/dumps/vim_expr_13.dump
@@ -1,20 +1,20 @@
-|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|g+0#00e0e07&|:|f|o@1| +0#0000000&|?+0#af5f00255&| +0#0000000&|g+0#00e0e07&|:|f|o@1| +0#0000000&|:+0#af5f00255&| +0#0000000&|g+0#00e0e07&|:|b|a|r| +0#0000000&@48
-|e+0#af5f00255&|c|h|o| +0#0000000&|$+0#e000e06&|F|O@1| +0#0000000&|?+0#af5f00255&| +0#0000000&|$+0#e000e06&|F|O@1| +0#0000000&|:+0#af5f00255&| +0#0000000&|$+0#e000e06&|B|A|R| +0#0000000&@51
-|e+0#af5f00255&|c|h|o| +0#0000000&|T|r|u|e|(+0#e000e06&|)| +0#0000000&|?+0#af5f00255&| +0#0000000&|T|r|u|e|(+0#e000e06&|)| +0#0000000&|:+0#af5f00255&| +0#0000000&|F|a|l|s|e|(+0#e000e06&|)| +0#0000000&@44
-|e+0#af5f00255&|c|h|o| +0#0000000&|@+0#e000e06&|a| +0#0000000&|?+0#af5f00255&| +0#0000000&|@+0#e000e06&|a| +0#0000000&|:+0#af5f00255&| +0#0000000&|@+0#e000e06&|b| +0#0000000&@57
-|e+0#af5f00255&|c|h|o| +0#0000000&|(+0#e000e06&|1+0#e000002&|)+0#e000e06&| +0#0000000&|?+0#af5f00255&| +0#0000000&|(+0#e000e06&|1+0#e000002&|)+0#e000e06&| +0#0000000&|:+0#af5f00255&| +0#0000000&|(+0#e000e06&|0+0#e000002&|)+0#e000e06&| +0#0000000&@54
-> @74
-|"+0#0000e05&| |F|a|l|s|y| +0#0000000&@67
-|e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|?+0#af5f00255&@1| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@57
+|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|#+0#e000e06&|{| +0#0000000&|-+0#af5f00255&|f+0#00e0e07&|o@1|-+0#af5f00255&|:+0#0000000&| @1|{+0#e000e06&| +0#0000000&|"+0#e000002&|b|a|r|"|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@39
+|e+0#af5f00255&|c|h|o| +0#0000000&|#+0#e000e06&|{| +0#0000000&|-+0#af5f00255&|f+0#00e0e07&|o@1|-+0#af5f00255&|:+0#0000000&| @1|{+0#e000e06&| +0#0000000&|'+0#e000002&|b|a|r|'|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@39
+|e+0#af5f00255&|c|h|o| +0#0000000&|#+0#e000e06&|{| +0#0000000&|-+0#af5f00255&|f+0#00e0e07&|o@1|-+0#af5f00255&|:+0#0000000&| @1|{+0#e000e06&| +0#0000000&@3|4+0#e000002&|2|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@39
@75
-|e+0#af5f00255&|c|h|o| +0#0000000&|t+0#00e0e07&|h|e|L|i|s|t| +0#0000000&|?+0#af5f00255&@1| +0#0000000&|'+0#e000002&|l|i|s|t| |i|s| |e|m|p|t|y|'| +0#0000000&@43
-|e+0#af5f00255&|c|h|o| +0#0000000&|G|e|t|N|a|m|e|(+0#e000e06&|)| +0#0000000&|?+0#af5f00255&@1| +0#0000000&|'+0#e000002&|u|n|k|n|o|w|n|'| +0#0000000&@47
+|e+0#af5f00255&|c|h|o| +0#0000000&|#+0#e000e06&|{| +0#0000000&|4+0#e000002&|2|:+0#0000000&| |#+0#e000e06&|{| +0#0000000&@2|b+0#00e0e07&|a|r|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@42
+>e+0#af5f00255&|c|h|o| +0#0000000&|#+0#e000e06&|{| +0#0000000&|4+0#e000002&|2|:+0#0000000&| |#+0#e000e06&|{| +0#0000000&|-+0#af5f00255&|b+0#00e0e07&|a|r|-+0#af5f00255&|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@42
+|e+0#af5f00255&|c|h|o| +0#0000000&|#+0#e000e06&|{| +0#0000000&|4+0#e000002&|2|:+0#0000000&| |#+0#e000e06&|{| +0#0000000&@3|4+0#e000002&|2|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@42
+|e+0#af5f00255&|c|h|o| +0#0000000&|#+0#e000e06&|{| +0#0000000&|4+0#e000002&|2|:+0#0000000&| @1|{+0#e000e06&| +0#0000000&|"+0#e000002&|b|a|r|"|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@42
+|e+0#af5f00255&|c|h|o| +0#0000000&|#+0#e000e06&|{| +0#0000000&|4+0#e000002&|2|:+0#0000000&| @1|{+0#e000e06&| +0#0000000&|'+0#e000002&|b|a|r|'|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@42
+|e+0#af5f00255&|c|h|o| +0#0000000&|#+0#e000e06&|{| +0#0000000&|4+0#e000002&|2|:+0#0000000&| @1|{+0#e000e06&| +0#0000000&@3|4+0#e000002&|2|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|}+0#e000e06&| +0#0000000&|}+0#e000e06&| +0#0000000&@42
@75
-|e+0#af5f00255&|c|h|o| +0#0000000&|t+0#00e0e07&|h|e|L|i|s|t| +0#0000000&@62
-@6|\+0#e000e06&| +0#0000000&|?+0#af5f00255&@1| +0#0000000&|'+0#e000002&|l|i|s|t| |i|s| |e|m|p|t|y|'| +0#0000000&@48
-|e+0#af5f00255&|c|h|o| +0#0000000&|t+0#00e0e07&|h|e|L|i|s|t| +0#0000000&|?+0#af5f00255&@1| +0#0000000&@59
-@6|\+0#e000e06&| +0#0000000&|'+0#e000002&|l|i|s|t| |i|s| |e|m|p|t|y|'| +0#0000000&@51
+|e+0#af5f00255&|c|h|o| +0#0000000&|#+0#e000e06&|{| +0#0000000&@67
+@6|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@58
+@6|\+0#e000e06&| +0#0000000&@1|f+0#00e0e07&|o@1|:+0#0000000&| |#+0#e000e06&|{| +0#0000000&@58
+@6|\+0#e000e06&| +0#0000000&@3|b+0#00e0e07&|a|r|:+0#0000000&| |2+0#e000002&|1| +0#0000000&|*+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&@52
+@6|\+0#e000e06&| +0#0000000&@1|}+0#e000e06&| +0#0000000&@64
+@6|\+0#e000e06&|}| +0#0000000&@66
@75
-|e+0#af5f00255&|c|h|o| +0#0000000&|1+0#e000002&| +0#0000000&|?+0#af5f00255&@1| +0#0000000&|1+0#e000002&| +0#0000000&@63
-|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|f|o@1|"| +0#0000000&|?+0#af5f00255&@1| +0#0000000&|"+0#e000002&|f|o@1|"| +0#0000000&@55
-@57|2@1|7|,|0|-|1| @6|7|0|%|
+|"+0#0000e05&| |m|a|t|c|h| |a|s| |k|e|y|s| |n|o|t| |s|c|o|p|e| |d|i|c|t|i|o|n|a|r|i|e|s| +0#0000000&@36
+@57|2@1|8|,|1| @8|5|7|%|
diff --git a/runtime/syntax/testdir/dumps/vim_expr_14.dump b/runtime/syntax/testdir/dumps/vim_expr_14.dump
index 507927d..a878727 100644
--- a/runtime/syntax/testdir/dumps/vim_expr_14.dump
+++ b/runtime/syntax/testdir/dumps/vim_expr_14.dump
@@ -1,20 +1,20 @@
-|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|"+0#e000002&|f|o@1|"| +0#0000000&|?+0#af5f00255&@1| +0#0000000&|"+0#e000002&|f|o@1|"| +0#0000000&@55
-|e+0#af5f00255&|c|h|o| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|?+0#af5f00255&@1| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&@59
-|e+0#af5f00255&|c|h|o| +0#0000000&|g+0#00e0e07&|:|f|o@1| +0#0000000&|?+0#af5f00255&@1| +0#0000000&|g+0#00e0e07&|:|f|o@1| +0#0000000&@55
-|e+0#af5f00255&|c|h|o| +0#0000000&|$+0#e000e06&|F|O@1| +0#0000000&|?+0#af5f00255&@1| +0#0000000&|$+0#e000e06&|F|O@1| +0#0000000&@57
-|e+0#af5f00255&|c|h|o| +0#0000000&|T|r|u|e|(+0#e000e06&|)| +0#0000000&|?+0#af5f00255&@1| +0#0000000&|T|r|u|e|(+0#e000e06&|)| +0#0000000&@53
->e+0#af5f00255&|c|h|o| +0#0000000&|@+0#e000e06&|a| +0#0000000&|?+0#af5f00255&@1| +0#0000000&|@+0#e000e06&|a| +0#0000000&@61
-|e+0#af5f00255&|c|h|o| +0#0000000&|(+0#e000e06&|1+0#e000002&|)+0#e000e06&| +0#0000000&|?+0#af5f00255&@1| +0#0000000&|(+0#e000e06&|1+0#e000002&|)+0#e000e06&| +0#0000000&@59
+|"+0#0000e05#ffffff0| |m|a|t|c|h| |a|s| |k|e|y|s| |n|o|t| |s|c|o|p|e| |d|i|c|t|i|o|n|a|r|i|e|s| +0#0000000&@36
+|e+0#af5f00255&|c|h|o| +0#0000000&|#+0#e000e06&|{| +0#0000000&|b+0#00e0e07&|:| +0#0000000&|4+0#e000002&|2|,+0#0000000&| |w+0#00e0e07&|:| +0#0000000&|4+0#e000002&|2|,+0#0000000&| |t+0#00e0e07&|:| +0#0000000&|4+0#e000002&|2|,+0#0000000&| |g+0#00e0e07&|:| +0#0000000&|4+0#e000002&|2|,+0#0000000&| |l+0#00e0e07&|:| +0#0000000&|4+0#e000002&|2|,+0#0000000&| |s+0#00e0e07&|:| +0#0000000&|4+0#e000002&|2|,+0#0000000&| |a+0#00e0e07&|:| +0#0000000&|4+0#e000002&|2|,+0#0000000&| |v+0#00e0e07&|:| +0#0000000&|4+0#e000002&|2| +0#0000000&@1|}+0#e000e06&| +0#0000000&@9
@75
-|"+0#0000e05&| |C|o|m|p|a|r|i|s|o|n| |-| |u|s|i|n|g| |'|i|g|n|o|r|c|a|s|e|'| +0#0000000&@42
-|e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|=+0#af5f00255&@1| +0#0000000&@4|e+0#00e0e07&|x|p|r| +0#0000000&@53
-|e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|!+0#af5f00255&|=| +0#0000000&@4|e+0#00e0e07&|x|p|r| +0#0000000&@53
-|e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|>+0#af5f00255&| +0#0000000&@5|e+0#00e0e07&|x|p|r| +0#0000000&@53
-|e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|>+0#af5f00255&|=| +0#0000000&@4|e+0#00e0e07&|x|p|r| +0#0000000&@53
-|e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|<+0#af5f00255&| +0#0000000&@5|e+0#00e0e07&|x|p|r| +0#0000000&@53
-|e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|<+0#af5f00255&|=| +0#0000000&@4|e+0#00e0e07&|x|p|r| +0#0000000&@53
-|e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|=+0#af5f00255&|~| +0#0000000&@4|e+0#00e0e07&|x|p|r| +0#0000000&@53
-|e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|!+0#af5f00255&|~| +0#0000000&@4|e+0#00e0e07&|x|p|r| +0#0000000&@53
-|e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|i+0#af5f00255&|s| +0#0000000&@4|e+0#00e0e07&|x|p|r| +0#0000000&@53
-|e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|i+0#af5f00255&|s|n|o|t| +0#0000000&@1|e+0#00e0e07&|x|p|r| +0#0000000&@53
-@57|2|4|5|,|1| @8|7|6|%|
+|"+0#0000e05&| |T|u|p|l|e| +0#0000000&@67
+@75
+>e+0#af5f00255&|c|h|o| +0#0000000&|(+0#e000e06&|)| +0#0000000&@67
+|e+0#af5f00255&|c|h|o| +0#0000000&|(+0#e000e06&|4+0#e000002&|2|,+0#0000000&|)+0#e000e06&| +0#0000000&@64
+|e+0#af5f00255&|c|h|o| +0#0000000&|(+0#e000e06&@1|1+0#e000002&@1|,+0#0000000&| |1+0#e000002&|2|)+0#e000e06&|,+0#0000000&| |(+0#e000e06&|2+0#e000002&|1|,+0#0000000&| |2+0#e000002&@1|)+0#e000e06&|,+0#0000000&| |(+0#e000e06&|3+0#e000002&|1|,+0#0000000&| |3+0#e000002&|2|)+0#e000e06&@1| +0#0000000&@39
+|e+0#af5f00255&|c|h|o| +0#0000000&|(+0#e000e06&|1+0#e000002&|,+0#0000000&| @66
+@6|\+0#e000e06&| +0#0000000&|2+0#e000002&|,+0#0000000&| @64
+@6|\+0#e000e06&| +0#0000000&|3+0#e000002&|,+0#0000000&| @64
+@6|\+0#e000e06&| +0#0000000&|4+0#e000002&| +0#0000000&@65
+@6|\+0#e000e06&|)| +0#0000000&@66
+|e+0#af5f00255&|c|h|o| +0#0000000&|(+0#e000e06&|1+0#e000002&|,+0#0000000&| |'+0#e000002&|t|w|o|'|,+0#0000000&| |1+0#e000002&| +0#0000000&|++0#af5f00255&| +0#0000000&|2+0#e000002&|,+0#0000000&| |"+0#e000002&|f|o|"| +0#0000000&|.+0#af5f00255&@1| +0#0000000&|"+0#e000002&|u|r|"|)+0#e000e06&| +0#0000000&@38
+@75
+|e+0#af5f00255&|c|h|o| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|++0#af5f00255&| +0#0000000&|(+0#e000e06&|4+0#e000002&|2|,+0#0000000&| |8+0#e000002&|7|)+0#e000e06&| +0#0000000&@55
+|e+0#af5f00255&|c|h|o| +0#0000000&|(+0#e000e06&|4+0#e000002&|2|,+0#0000000&| |8+0#e000002&|7|)+0#e000e06&| +0#0000000&|++0#af5f00255&| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&@55
+@75
+|"+0#0000e05&| |R|e|g|i|s|t|e|r| +0#0000000&@64
+@57|2|4|6|,|1| @8|6|2|%|
diff --git a/runtime/syntax/testdir/dumps/vim_expr_15.dump b/runtime/syntax/testdir/dumps/vim_expr_15.dump
index d80112d..1e7023d 100644
--- a/runtime/syntax/testdir/dumps/vim_expr_15.dump
+++ b/runtime/syntax/testdir/dumps/vim_expr_15.dump
@@ -1,20 +1,20 @@
-|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|i+0#af5f00255&|s|n|o|t| +0#0000000&@1|e+0#00e0e07&|x|p|r| +0#0000000&@53
+|"+0#0000e05#ffffff0| |R|e|g|i|s|t|e|r| +0#0000000&@64
@75
-|"+0#0000e05&| |C|o|m|p|a|r|i|s|o|n| |-| |m|a|t|c|h| |c|a|s|e| +0#0000000&@49
-|e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|=+0#af5f00255&@1|#| +0#0000000&@3|e+0#00e0e07&|x|p|r| +0#0000000&@53
-|e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|!+0#af5f00255&|=|#| +0#0000000&@3|e+0#00e0e07&|x|p|r| +0#0000000&@53
->e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|>+0#af5f00255&|#| +0#0000000&@4|e+0#00e0e07&|x|p|r| +0#0000000&@53
-|e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|>+0#af5f00255&|=|#| +0#0000000&@3|e+0#00e0e07&|x|p|r| +0#0000000&@53
-|e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|<+0#af5f00255&|#| +0#0000000&@4|e+0#00e0e07&|x|p|r| +0#0000000&@53
-|e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|<+0#af5f00255&|=|#| +0#0000000&@3|e+0#00e0e07&|x|p|r| +0#0000000&@53
-|e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|=+0#af5f00255&|~|#| +0#0000000&@3|e+0#00e0e07&|x|p|r| +0#0000000&@53
-|e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|!+0#af5f00255&|~|#| +0#0000000&@3|e+0#00e0e07&|x|p|r| +0#0000000&@53
-|e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|i+0#af5f00255&|s|#| +0#0000000&@3|e+0#00e0e07&|x|p|r| +0#0000000&@53
-|e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|i+0#af5f00255&|s|n|o|t|#| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@53
+|e+0#af5f00255&|c|h|o| +0#0000000&|@+0#e000e06&|"| +0#0000000&@67
+|e+0#af5f00255&|c|h|o| +0#0000000&|@+0#e000e06&|0| +0#0000000&|@+0#e000e06&|1| +0#0000000&|@+0#e000e06&|2| +0#0000000&|@+0#e000e06&|3| +0#0000000&|@+0#e000e06&|4| +0#0000000&|@+0#e000e06&|5| +0#0000000&|@+0#e000e06&|6| +0#0000000&|@+0#e000e06&|7| +0#0000000&|@+0#e000e06&|8| +0#0000000&|@+0#e000e06&|9| +0#0000000&@40
+|e+0#af5f00255&|c|h|o| +0#0000000&|@+0#e000e06&|-| +0#0000000&@67
+>e+0#af5f00255&|c|h|o| +0#0000000&|@+0#e000e06&|a| +0#0000000&|@+0#e000e06&|b| +0#0000000&|@+0#e000e06&|c| +0#0000000&|@+0#e000e06&|d| +0#0000000&|@+0#e000e06&|e| +0#0000000&|@+0#e000e06&|f| +0#0000000&|@+0#e000e06&|g| +0#0000000&|@+0#e000e06&|h| +0#0000000&|@+0#e000e06&|i| +0#0000000&|@+0#e000e06&|j| +0#0000000&|@+0#e000e06&|k| +0#0000000&|@+0#e000e06&|l| +0#0000000&|@+0#e000e06&|m| +0#0000000&|@+0#e000e06&|n| +0#0000000&|@+0#e000e06&|o| +0#0000000&|@+0#e000e06&|p| +0#0000000&|@+0#e000e06&|q| +0#0000000&|@+0#e000e06&|r| +0#0000000&|@+0#e000e06&|s| +0#0000000&|@+0#e000e06&|t| +0#0000000&|@+0#e000e06&|u| +0#0000000&|@+0#e000e06&|v| +0#0000000&|@+0#e000e06&|w| +0#0000000&|@+0#e000e06&
+|x| +0#0000000&|@+0#e000e06&|y| +0#0000000&|@+0#e000e06&|z| +0#0000000&@67
+|e+0#af5f00255&|c|h|o| +0#0000000&|@+0#e000e06&|A| +0#0000000&|@+0#e000e06&|B| +0#0000000&|@+0#e000e06&|C| +0#0000000&|@+0#e000e06&|D| +0#0000000&|@+0#e000e06&|E| +0#0000000&|@+0#e000e06&|F| +0#0000000&|@+0#e000e06&|G| +0#0000000&|@+0#e000e06&|H| +0#0000000&|@+0#e000e06&|I| +0#0000000&|@+0#e000e06&|J| +0#0000000&|@+0#e000e06&|K| +0#0000000&|@+0#e000e06&|L| +0#0000000&|@+0#e000e06&|M| +0#0000000&|@+0#e000e06&|N| +0#0000000&|@+0#e000e06&|O| +0#0000000&|@+0#e000e06&|P| +0#0000000&|@+0#e000e06&|Q| +0#0000000&|@+0#e000e06&|R| +0#0000000&|@+0#e000e06&|S| +0#0000000&|@+0#e000e06&|T| +0#0000000&|@+0#e000e06&|U| +0#0000000&|@+0#e000e06&|V| +0#0000000&|@+0#e000e06&|W| +0#0000000&|@+0#e000e06&
+|X| +0#0000000&|@+0#e000e06&|Y| +0#0000000&|@+0#e000e06&|Z| +0#0000000&@67
+|e+0#af5f00255&|c|h|o| +0#0000000&|@+0#e000e06&|:| +0#0000000&|@+0#e000e06&|.| +0#0000000&|@+0#e000e06&|%| +0#0000000&|@+0#e000e06&|#| +0#0000000&|@+0#e000e06&|=| +0#0000000&|@+0#e000e06&|*| +0#0000000&|@+0#e000e06&|+| +0#0000000&|@+0#e000e06&|~| +0#0000000&|@+0#e000e06&|_| +0#0000000&|@+0#e000e06&|/| +0#0000000&@40
@75
-|"+0#0000e05&| |C|o|m|p|a|r|i|s|o|n| |-| |i|g|n|o|r|e| |c|a|s|e| +0#0000000&@48
-|e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|=+0#af5f00255&@1|?| +0#0000000&@3|e+0#00e0e07&|x|p|r| +0#0000000&@53
-|e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|!+0#af5f00255&|=|?| +0#0000000&@3|e+0#00e0e07&|x|p|r| +0#0000000&@53
-|e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|>+0#af5f00255&|?| +0#0000000&@4|e+0#00e0e07&|x|p|r| +0#0000000&@53
-|e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|>+0#af5f00255&|=|?| +0#0000000&@3|e+0#00e0e07&|x|p|r| +0#0000000&@53
-@57|2|6|3|,|1| @8|8|2|%|
+|"+0#0000e05&| |O|p|e|r|a|t|o|r|s| +0#0000000&@63
+@75
+|"+0#0000e05&| |T|e|r|n|a|r|y| +0#0000000&@65
+|e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|?+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|:+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@51
+@75
+|e+0#af5f00255&|c|h|o| +0#0000000&|l+0#00e0e07&|n|u|m| +0#0000000&|=+0#af5f00255&@1| +0#0000000&|1+0#e000002&| +0#0000000&|?+0#af5f00255&| +0#0000000&|"+0#e000002&|t|o|p|"| +0#0000000&|:+0#af5f00255&| +0#0000000&|l+0#00e0e07&|n|u|m| +0#0000000&@45
+|e+0#af5f00255&|c|h|o| +0#0000000&|l+0#00e0e07&|n|u|m| +0#0000000&|=+0#af5f00255&@1| +0#0000000&|1+0#e000002&| +0#0000000&|?+0#af5f00255&| +0#0000000&|"+0#e000002&|t|o|p|"| +0#0000000&|:+0#af5f00255&| +0#0000000&|l+0#00e0e07&|n|u|m| +0#0000000&|=+0#af5f00255&@1| +0#0000000&|1+0#e000002&|0@2| +0#0000000&|?+0#af5f00255&| +0#0000000&|"+0#e000002&|l|a|s|t|"| +0#0000000&|:+0#af5f00255&| +0#0000000&|l+0#00e0e07&|n|u|m| +0#0000000&@21
+@75
+@57|2|6|4|,|1| @8|6@1|%|
diff --git a/runtime/syntax/testdir/dumps/vim_expr_16.dump b/runtime/syntax/testdir/dumps/vim_expr_16.dump
index 70d932b..faec65e 100644
--- a/runtime/syntax/testdir/dumps/vim_expr_16.dump
+++ b/runtime/syntax/testdir/dumps/vim_expr_16.dump
@@ -1,20 +1,20 @@
-|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|>+0#af5f00255&|=|?| +0#0000000&@3|e+0#00e0e07&|x|p|r| +0#0000000&@53
-|e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|<+0#af5f00255&|?| +0#0000000&@4|e+0#00e0e07&|x|p|r| +0#0000000&@53
-|e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|<+0#af5f00255&|=|?| +0#0000000&@3|e+0#00e0e07&|x|p|r| +0#0000000&@53
-|e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|=+0#af5f00255&|~|?| +0#0000000&@3|e+0#00e0e07&|x|p|r| +0#0000000&@53
-|e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|!+0#af5f00255&|~|?| +0#0000000&@3|e+0#00e0e07&|x|p|r| +0#0000000&@53
->e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|i+0#af5f00255&|s|?| +0#0000000&@3|e+0#00e0e07&|x|p|r| +0#0000000&@53
-|e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|i+0#af5f00255&|s|n|o|t|?| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@53
+| +0&#ffffff0@74
+|e+0#af5f00255&|c|h|o| +0#0000000&|l+0#00e0e07&|n|u|m| +0#0000000&|=+0#af5f00255&@1| +0#0000000&|1+0#e000002&| +0#0000000&@60
+@6|\+0#e000e06&| +0#0000000&|?+0#af5f00255&| +0#0000000&|"+0#e000002&|t|o|p|"| +0#0000000&@59
+@6|\+0#e000e06&| +0#0000000&|:+0#af5f00255&| +0#0000000&|l+0#00e0e07&|n|u|m| +0#0000000&|=+0#af5f00255&@1| +0#0000000&|1+0#e000002&|0@2| +0#0000000&@52
+@6|\+0#e000e06&| +0#0000000&@8|?+0#af5f00255&| +0#0000000&|"+0#e000002&|l|a|s|t|"| +0#0000000&@50
+@6>\+0#e000e06&| +0#0000000&@8|:+0#af5f00255&| +0#0000000&|l+0#00e0e07&|n|u|m| +0#0000000&@52
+|e+0#af5f00255&|c|h|o| +0#0000000&|l+0#00e0e07&|n|u|m| +0#0000000&|=+0#af5f00255&@1| +0#0000000&|1+0#e000002&| +0#0000000&|?+0#af5f00255&| +0#0000000&@58
+@6|\+0#e000e06&| +0#0000000&|"+0#e000002&|t|o|p|"| +0#0000000&|:+0#af5f00255&| +0#0000000&@59
+@6|\+0#e000e06&| +0#0000000&|l+0#00e0e07&|n|u|m| +0#0000000&|=+0#af5f00255&@1| +0#0000000&|1+0#e000002&|0@2| +0#0000000&|?+0#af5f00255&| +0#0000000&@52
+@6|\+0#e000e06&| +0#0000000&@8|"+0#e000002&|l|a|s|t|"| +0#0000000&|:+0#af5f00255&| +0#0000000&@50
+@6|\+0#e000e06&| +0#0000000&@8|l+0#00e0e07&|n|u|m| +0#0000000&@54
@75
-|"+0#0000e05&| |U|n|r|e|p|o|r|t|e|d| |i|s@1|u|e| |(|"|i|s|"| |i|n|c|o|r@1|e|c|t|l|y| |m|a|t|c|h|e|s| |a|s| |"+0#e000002&|e|c|h|o| |v|i|m|N|u|m|b|e|r| |*|v|i|m|C|o|m@1|a|n|d
-|*| |v|i|m|N|u|m|b|e|r|"|)+0#0000e05&| +0#0000000&@61
-|e+0#af5f00255&|c|h|o| +0#0000000&|4+0#e000002&|2| +0#0000000&|i+0#af5f00255&|s| +0#0000000&|4+0#e000002&|2| +0#0000000&@61
-@75
-|"+0#0000e05&| |L|i|n|e| |c|o|n|t|i|n|u|a|t|i|o|n| +0#0000000&@55
-|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|++0#af5f00255&| +0#0000000&@59
-@6|\+0#e000e06&| +0#0000000&@67
-@6|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@58
-@6|\+0#e000e06&| +0#0000000&@67
-@6|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@58
-@6|\+0#e000e06&| +0#0000000&|b+0#00e0e07&|a|r| +0#0000000&|++0#af5f00255&| +0#0000000&@61
-@57|2|8|1|,|1| @8|8|7|%|
+|e+0#af5f00255&|c|h|o| +0#0000000&|1+0#e000002&| +0#0000000&|?+0#af5f00255&| +0#0000000&|1+0#e000002&| +0#0000000&|:+0#af5f00255&| +0#0000000&|0+0#e000002&| +0#0000000&@60
+|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|f|o@1|"| +0#0000000&|?+0#af5f00255&| +0#0000000&|"+0#e000002&|f|o@1|"| +0#0000000&|:+0#af5f00255&| +0#0000000&|"+0#e000002&|b|a|r|"| +0#0000000&@48
+|e+0#af5f00255&|c|h|o| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|?+0#af5f00255&| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|:+0#af5f00255&| +0#0000000&|b+0#00e0e07&|a|r| +0#0000000&@54
+|e+0#af5f00255&|c|h|o| +0#0000000&|g+0#00e0e07&|:|f|o@1| +0#0000000&|?+0#af5f00255&| +0#0000000&|g+0#00e0e07&|:|f|o@1| +0#0000000&|:+0#af5f00255&| +0#0000000&|g+0#00e0e07&|:|b|a|r| +0#0000000&@48
+|e+0#af5f00255&|c|h|o| +0#0000000&|$+0#e000e06&|F|O@1| +0#0000000&|?+0#af5f00255&| +0#0000000&|$+0#e000e06&|F|O@1| +0#0000000&|:+0#af5f00255&| +0#0000000&|$+0#e000e06&|B|A|R| +0#0000000&@51
+|e+0#af5f00255&|c|h|o| +0#0000000&|T|r|u|e|(+0#e000e06&|)| +0#0000000&|?+0#af5f00255&| +0#0000000&|T|r|u|e|(+0#e000e06&|)| +0#0000000&|:+0#af5f00255&| +0#0000000&|F|a|l|s|e|(+0#e000e06&|)| +0#0000000&@44
+|e+0#af5f00255&|c|h|o| +0#0000000&|@+0#e000e06&|a| +0#0000000&|?+0#af5f00255&| +0#0000000&|@+0#e000e06&|a| +0#0000000&|:+0#af5f00255&| +0#0000000&|@+0#e000e06&|b| +0#0000000&@57
+@57|2|8|0|,|7| @8|7|0|%|
diff --git a/runtime/syntax/testdir/dumps/vim_expr_17.dump b/runtime/syntax/testdir/dumps/vim_expr_17.dump
index d70e2a1..4ece865 100644
--- a/runtime/syntax/testdir/dumps/vim_expr_17.dump
+++ b/runtime/syntax/testdir/dumps/vim_expr_17.dump
@@ -1,20 +1,20 @@
-| +0&#ffffff0@5|\+0#e000e06&| +0#0000000&|b+0#00e0e07&|a|r| +0#0000000&|++0#af5f00255&| +0#0000000&@61
-@6|\+0#e000e06&| +0#0000000&|"+0#e000002&|b|a|z|"| +0#0000000&@61
+|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|@+0#e000e06&|a| +0#0000000&|?+0#af5f00255&| +0#0000000&|@+0#e000e06&|a| +0#0000000&|:+0#af5f00255&| +0#0000000&|@+0#e000e06&|b| +0#0000000&@57
+|e+0#af5f00255&|c|h|o| +0#0000000&|(+0#e000e06&|1+0#e000002&|)+0#e000e06&| +0#0000000&|?+0#af5f00255&| +0#0000000&|(+0#e000e06&|1+0#e000002&|)+0#e000e06&| +0#0000000&|:+0#af5f00255&| +0#0000000&|(+0#e000e06&|0+0#e000002&|)+0#e000e06&| +0#0000000&@54
@75
-|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|++0#af5f00255&| +0#0000000&@59
-@6|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@58
-@6>\+0#e000e06&| +0#0000000&@67
-@6|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@58
-@6|\+0#e000e06&| +0#0000000&@67
-@6|\+0#e000e06&| +0#0000000&|b+0#00e0e07&|a|r| +0#0000000&|++0#af5f00255&| +0#0000000&@61
-@6|\+0#e000e06&| +0#0000000&|"+0#e000002&|b|a|z|"| +0#0000000&@61
+|"+0#0000e05&| |F|a|l|s|y| +0#0000000&@67
+|e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|?+0#af5f00255&@1| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@57
+> @74
+|e+0#af5f00255&|c|h|o| +0#0000000&|t+0#00e0e07&|h|e|L|i|s|t| +0#0000000&|?+0#af5f00255&@1| +0#0000000&|'+0#e000002&|l|i|s|t| |i|s| |e|m|p|t|y|'| +0#0000000&@43
+|e+0#af5f00255&|c|h|o| +0#0000000&|G|e|t|N|a|m|e|(+0#e000e06&|)| +0#0000000&|?+0#af5f00255&@1| +0#0000000&|'+0#e000002&|u|n|k|n|o|w|n|'| +0#0000000&@47
@75
-|"+0#0000e05&| |F|u|n|c|t|i|o|n| |c|a|l@1|s| +0#0000000&@58
+|e+0#af5f00255&|c|h|o| +0#0000000&|t+0#00e0e07&|h|e|L|i|s|t| +0#0000000&@62
+@6|\+0#e000e06&| +0#0000000&|?+0#af5f00255&@1| +0#0000000&|'+0#e000002&|l|i|s|t| |i|s| |e|m|p|t|y|'| +0#0000000&@48
+|e+0#af5f00255&|c|h|o| +0#0000000&|t+0#00e0e07&|h|e|L|i|s|t| +0#0000000&|?+0#af5f00255&@1| +0#0000000&@59
+@6|\+0#e000e06&| +0#0000000&|'+0#e000002&|l|i|s|t| |i|s| |e|m|p|t|y|'| +0#0000000&@51
@75
-|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|v+0#00e0e07&|:|t|r|u|e|,+0#0000000&| |v+0#00e0e07&|:|f|a|l|s|e|,+0#0000000&| |v+0#00e0e07&|:|n|u|l@1|)+0#e000e06&| +0#0000000&@41
-@75
-@75
-|"+0#0000e05&| |I|s@1|u|e| |#|1|6|2@1|1| |(|v|i|m|S|t|r|i|n|g| |b|e|c|o|m|e|s| |v|i|m|V|a|r| |w|h|e|n| |p|r|e|c|e|d|e|d| |b|y| |!|)| +0#0000000&@14
-|l+0#af5f00255&|e|t| +0#0000000&|b+0#00e0e07&|a|r| +0#0000000&|=+0#af5f00255&| +0#0000000&|!+0#af5f00255&|'+0#e000002&|g|:|b|a|r|'|-+0#af5f00255&|>|e+0#00e0e07&|x|i|s|t|s|(+0#e000e06&|)| +0#0000000&@46
-@75
-@57|2|9|8|,|7| @8|9|3|%|
+|e+0#af5f00255&|c|h|o| +0#0000000&|1+0#e000002&| +0#0000000&|?+0#af5f00255&@1| +0#0000000&|1+0#e000002&| +0#0000000&@63
+|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|f|o@1|"| +0#0000000&|?+0#af5f00255&@1| +0#0000000&|"+0#e000002&|f|o@1|"| +0#0000000&@55
+|e+0#af5f00255&|c|h|o| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|?+0#af5f00255&@1| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&@59
+|e+0#af5f00255&|c|h|o| +0#0000000&|g+0#00e0e07&|:|f|o@1| +0#0000000&|?+0#af5f00255&@1| +0#0000000&|g+0#00e0e07&|:|f|o@1| +0#0000000&@55
+|e+0#af5f00255&|c|h|o| +0#0000000&|$+0#e000e06&|F|O@1| +0#0000000&|?+0#af5f00255&@1| +0#0000000&|$+0#e000e06&|F|O@1| +0#0000000&@57
+@57|2|9|8|,|0|-|1| @6|7|5|%|
diff --git a/runtime/syntax/testdir/dumps/vim_expr_18.dump b/runtime/syntax/testdir/dumps/vim_expr_18.dump
index 07abc6b..4452cd9 100644
--- a/runtime/syntax/testdir/dumps/vim_expr_18.dump
+++ b/runtime/syntax/testdir/dumps/vim_expr_18.dump
@@ -1,20 +1,20 @@
-| +0&#ffffff0@74
+|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|$+0#e000e06&|F|O@1| +0#0000000&|?+0#af5f00255&@1| +0#0000000&|$+0#e000e06&|F|O@1| +0#0000000&@57
+|e+0#af5f00255&|c|h|o| +0#0000000&|T|r|u|e|(+0#e000e06&|)| +0#0000000&|?+0#af5f00255&@1| +0#0000000&|T|r|u|e|(+0#e000e06&|)| +0#0000000&@53
+|e+0#af5f00255&|c|h|o| +0#0000000&|@+0#e000e06&|a| +0#0000000&|?+0#af5f00255&@1| +0#0000000&|@+0#e000e06&|a| +0#0000000&@61
+|e+0#af5f00255&|c|h|o| +0#0000000&|(+0#e000e06&|1+0#e000002&|)+0#e000e06&| +0#0000000&|?+0#af5f00255&@1| +0#0000000&|(+0#e000e06&|1+0#e000002&|)+0#e000e06&| +0#0000000&@59
@75
-|"+0#0000e05&| |I|s@1|u|e| |#|1|4@1|2|3| |(|v|i|m|.|v|i|m|:| |O|p|t| |o|u|t| |o|f| |v|i|m|S|e|a|r|c|h|*|)| +0#0000000&@27
+>"+0#0000e05&| |C|o|m|p|a|r|i|s|o|n| |-| |u|s|i|n|g| |'|i|g|n|o|r|c|a|s|e|'| +0#0000000&@42
+|e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|=+0#af5f00255&@1| +0#0000000&@4|e+0#00e0e07&|x|p|r| +0#0000000&@53
+|e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|!+0#af5f00255&|=| +0#0000000&@4|e+0#00e0e07&|x|p|r| +0#0000000&@53
+|e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|>+0#af5f00255&| +0#0000000&@5|e+0#00e0e07&|x|p|r| +0#0000000&@53
+|e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|>+0#af5f00255&|=| +0#0000000&@4|e+0#00e0e07&|x|p|r| +0#0000000&@53
+|e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|<+0#af5f00255&| +0#0000000&@5|e+0#00e0e07&|x|p|r| +0#0000000&@53
+|e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|<+0#af5f00255&|=| +0#0000000&@4|e+0#00e0e07&|x|p|r| +0#0000000&@53
+|e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|=+0#af5f00255&|~| +0#0000000&@4|e+0#00e0e07&|x|p|r| +0#0000000&@53
+|e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|!+0#af5f00255&|~| +0#0000000&@4|e+0#00e0e07&|x|p|r| +0#0000000&@53
+|e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|i+0#af5f00255&|s| +0#0000000&@4|e+0#00e0e07&|x|p|r| +0#0000000&@53
+|e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|i+0#af5f00255&|s|n|o|t| +0#0000000&@1|e+0#00e0e07&|x|p|r| +0#0000000&@53
@75
-|?+0#e000e06&|t+0#e000002&|r|u|t|h|y| +0#0000000&@67
->l+0#af5f00255&|e|t| +0#0000000&|t+0#00e0e07&|r|u|t|h|y| +0#0000000&|=+0#af5f00255&| +0#0000000&|0+0#e000002&| +0#0000000&@60
-|\+0#e000e06&| +0#0000000&@2|?+0#af5f00255&| +0#0000000&|(+0#e000e06&|0+0#e000002&| +0#0000000&@66
-|\+0#e000e06&| +0#0000000&@2|)+0#e000e06&| +0#0000000&@69
-|\+0#e000e06&| +0#0000000&@2|:+0#af5f00255&| +0#0000000&|(+0#e000e06&|1+0#e000002&| +0#0000000&@66
-|\+0#e000e06&| +0#0000000&@2|)+0#e000e06&| +0#0000000&@69
-|e+0#af5f00255&|c|h|o| +0#0000000&|t+0#00e0e07&|r|u|t|h|y| +0#0000000&@63
-@75
-|f+0#af5f00255&|u|n|c|t|i|o|n| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&@60
-| +0#e000002&@1|?+0#e000e06&|t+0#e000002&|r|u|t|h|y| +0#0000000&@65
-@2|l+0#af5f00255&|e|t| +0#0000000&|t+0#00e0e07&|r|u|t|h|y| +0#0000000&|=+0#af5f00255&| +0#0000000&|0+0#e000002&| +0#0000000&@58
-@2|\+0#e000e06&| +0#0000000&@2|?+0#af5f00255&| +0#0000000&|(+0#e000e06&|0+0#e000002&| +0#0000000&@64
-@2|\+0#e000e06&| +0#0000000&@2|)+0#e000e06&| +0#0000000&@67
-@2|\+0#e000e06&| +0#0000000&@2|:+0#af5f00255&| +0#0000000&|(+0#e000e06&|1+0#e000002&| +0#0000000&@64
-@2|\+0#e000e06&| +0#0000000&@2|)+0#e000e06&| +0#0000000&@67
-@57|3|1|6|,|1| @8|9@1|%|
+|"+0#0000e05&| |C|o|m|p|a|r|i|s|o|n| |-| |m|a|t|c|h| |c|a|s|e| +0#0000000&@49
+|e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|=+0#af5f00255&@1|#| +0#0000000&@3|e+0#00e0e07&|x|p|r| +0#0000000&@53
+@57|3|1|6|,|1| @8|8|0|%|
diff --git a/runtime/syntax/testdir/dumps/vim_expr_19.dump b/runtime/syntax/testdir/dumps/vim_expr_19.dump
index bd6bc5b..395bd71 100644
--- a/runtime/syntax/testdir/dumps/vim_expr_19.dump
+++ b/runtime/syntax/testdir/dumps/vim_expr_19.dump
@@ -1,20 +1,20 @@
-| +0&#ffffff0@1|\+0#e000e06&| +0#0000000&@2|)+0#e000e06&| +0#0000000&@67
-@2|e+0#af5f00255&|c|h|o| +0#0000000&|t+0#00e0e07&|r|u|t|h|y| +0#0000000&@61
-|e+0#af5f00255&|n|d|f|u|n|c|t|i|o|n| +0#0000000&@63
-> @74
-|~+0#4040ff13&| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-| +0#0000000&@56|3@1|2|,|0|-|1| @6|B|o|t|
+|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|=+0#af5f00255&@1|#| +0#0000000&@3|e+0#00e0e07&|x|p|r| +0#0000000&@53
+|e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|!+0#af5f00255&|=|#| +0#0000000&@3|e+0#00e0e07&|x|p|r| +0#0000000&@53
+|e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|>+0#af5f00255&|#| +0#0000000&@4|e+0#00e0e07&|x|p|r| +0#0000000&@53
+|e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|>+0#af5f00255&|=|#| +0#0000000&@3|e+0#00e0e07&|x|p|r| +0#0000000&@53
+|e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|<+0#af5f00255&|#| +0#0000000&@4|e+0#00e0e07&|x|p|r| +0#0000000&@53
+>e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|<+0#af5f00255&|=|#| +0#0000000&@3|e+0#00e0e07&|x|p|r| +0#0000000&@53
+|e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|=+0#af5f00255&|~|#| +0#0000000&@3|e+0#00e0e07&|x|p|r| +0#0000000&@53
+|e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|!+0#af5f00255&|~|#| +0#0000000&@3|e+0#00e0e07&|x|p|r| +0#0000000&@53
+|e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|i+0#af5f00255&|s|#| +0#0000000&@3|e+0#00e0e07&|x|p|r| +0#0000000&@53
+|e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|i+0#af5f00255&|s|n|o|t|#| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@53
+@75
+|"+0#0000e05&| |C|o|m|p|a|r|i|s|o|n| |-| |i|g|n|o|r|e| |c|a|s|e| +0#0000000&@48
+|e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|=+0#af5f00255&@1|?| +0#0000000&@3|e+0#00e0e07&|x|p|r| +0#0000000&@53
+|e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|!+0#af5f00255&|=|?| +0#0000000&@3|e+0#00e0e07&|x|p|r| +0#0000000&@53
+|e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|>+0#af5f00255&|?| +0#0000000&@4|e+0#00e0e07&|x|p|r| +0#0000000&@53
+|e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|>+0#af5f00255&|=|?| +0#0000000&@3|e+0#00e0e07&|x|p|r| +0#0000000&@53
+|e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|<+0#af5f00255&|?| +0#0000000&@4|e+0#00e0e07&|x|p|r| +0#0000000&@53
+|e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|<+0#af5f00255&|=|?| +0#0000000&@3|e+0#00e0e07&|x|p|r| +0#0000000&@53
+|e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|=+0#af5f00255&|~|?| +0#0000000&@3|e+0#00e0e07&|x|p|r| +0#0000000&@53
+@57|3@1|4|,|1| @8|8|4|%|
diff --git a/runtime/syntax/testdir/dumps/vim_expr_20.dump b/runtime/syntax/testdir/dumps/vim_expr_20.dump
new file mode 100644
index 0000000..bf8b1e4
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/vim_expr_20.dump
@@ -0,0 +1,20 @@
+|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|=+0#af5f00255&|~|?| +0#0000000&@3|e+0#00e0e07&|x|p|r| +0#0000000&@53
+|e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|!+0#af5f00255&|~|?| +0#0000000&@3|e+0#00e0e07&|x|p|r| +0#0000000&@53
+|e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|i+0#af5f00255&|s|?| +0#0000000&@3|e+0#00e0e07&|x|p|r| +0#0000000&@53
+|e+0#af5f00255&|c|h|o| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&|i+0#af5f00255&|s|n|o|t|?| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@53
+@75
+>"+0#0000e05&| |U|n|r|e|p|o|r|t|e|d| |i|s@1|u|e| |(|"|i|s|"| |i|n|c|o|r@1|e|c|t|l|y| |m|a|t|c|h|e|s| |a|s| |"+0#e000002&|e|c|h|o| |v|i|m|N|u|m|b|e|r| |*|v|i|m|C|o|m@1|a|n|d
+|*| |v|i|m|N|u|m|b|e|r|"|)+0#0000e05&| +0#0000000&@61
+|e+0#af5f00255&|c|h|o| +0#0000000&|4+0#e000002&|2| +0#0000000&|i+0#af5f00255&|s| +0#0000000&|4+0#e000002&|2| +0#0000000&@61
+@75
+|"+0#0000e05&| |L|i|n|e| |c|o|n|t|i|n|u|a|t|i|o|n| +0#0000000&@55
+|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|++0#af5f00255&| +0#0000000&@59
+@6|\+0#e000e06&| +0#0000000&@67
+@6|"+0#0000e05&|\| +0#0000000&|c+0#0000e05&|o|m@1|e|n|t| +0#0000000&@58
+@6|\+0#e000e06&| +0#0000000&@67
+@6|"+0#0000e05&|\| +0#0000000&|c+0#0000e05&|o|m@1|e|n|t| +0#0000000&@58
+@6|\+0#e000e06&| +0#0000000&|b+0#00e0e07&|a|r| +0#0000000&|++0#af5f00255&| +0#0000000&@61
+@6|\+0#e000e06&| +0#0000000&|"+0#e000002&|b|a|z|"| +0#0000000&@61
+@75
+|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|++0#af5f00255&| +0#0000000&@59
+@57|3|5|2|,|1| @8|8|9|%|
diff --git a/runtime/syntax/testdir/dumps/vim_expr_21.dump b/runtime/syntax/testdir/dumps/vim_expr_21.dump
new file mode 100644
index 0000000..a3c01f0
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/vim_expr_21.dump
@@ -0,0 +1,20 @@
+|l+0#af5f00255#ffffff0|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|++0#af5f00255&| +0#0000000&@59
+@6|"+0#0000e05&|\| +0#0000000&|c+0#0000e05&|o|m@1|e|n|t| +0#0000000&@58
+@6|\+0#e000e06&| +0#0000000&@67
+@6|"+0#0000e05&|\| +0#0000000&|c+0#0000e05&|o|m@1|e|n|t| +0#0000000&@58
+@6|\+0#e000e06&| +0#0000000&@67
+@6>\+0#e000e06&| +0#0000000&|b+0#00e0e07&|a|r| +0#0000000&|++0#af5f00255&| +0#0000000&@61
+@6|\+0#e000e06&| +0#0000000&|"+0#e000002&|b|a|z|"| +0#0000000&@61
+@75
+|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|++0#af5f00255&| +0#0000000&@59
+@6|"+0#0000e05&|\| +0#0000000&|"+0#0000e05&|c|o|m@1|e|n|t| +0#0000000&|s+0#0000e05&|t|r|i|n|g|"| +0#0000000&@49
+@6|\+0#e000e06&| +0#0000000&|b+0#00e0e07&|a|r| +0#0000000&@63
+@75
+|"+0#0000e05&| |F|u|n|c|t|i|o|n| |c|a|l@1|s| +0#0000000&@58
+@75
+|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|v+0#00e0e07&|:|t|r|u|e|,+0#0000000&| |v+0#00e0e07&|:|f|a|l|s|e|,+0#0000000&| |v+0#00e0e07&|:|n|u|l@1|)+0#e000e06&| +0#0000000&@41
+@75
+@75
+|"+0#0000e05&| |I|s@1|u|e| |#|1|6|2@1|1| |(|v|i|m|S|t|r|i|n|g| |b|e|c|o|m|e|s| |v|i|m|V|a|r| |w|h|e|n| |p|r|e|c|e|d|e|d| |b|y| |!|)| +0#0000000&@14
+@75
+@57|3|6|9|,|7| @8|9|4|%|
diff --git a/runtime/syntax/testdir/dumps/vim_expr_22.dump b/runtime/syntax/testdir/dumps/vim_expr_22.dump
new file mode 100644
index 0000000..dad1738
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/vim_expr_22.dump
@@ -0,0 +1,20 @@
+| +0&#ffffff0@74
+|l+0#af5f00255&|e|t| +0#0000000&|b+0#00e0e07&|a|r| +0#0000000&|=+0#af5f00255&| +0#0000000&|!+0#af5f00255&|'+0#e000002&|g|:|b|a|r|'|-+0#af5f00255&|>|e+0#00e0e07&|x|i|s|t|s|(+0#e000e06&|)| +0#0000000&@46
+@75
+@75
+|"+0#0000e05&| |I|s@1|u|e| |#|1|4@1|2|3| |(|v|i|m|.|v|i|m|:| |O|p|t| |o|u|t| |o|f| |v|i|m|S|e|a|r|c|h|*|)| +0#0000000&@27
+> @74
+|?+0#e000e06&|t+0#e000002&|r|u|t|h|y| +0#0000000&@67
+|l+0#af5f00255&|e|t| +0#0000000&|t+0#00e0e07&|r|u|t|h|y| +0#0000000&|=+0#af5f00255&| +0#0000000&|0+0#e000002&| +0#0000000&@60
+|\+0#e000e06&| +0#0000000&@2|?+0#af5f00255&| +0#0000000&|(+0#e000e06&|0+0#e000002&| +0#0000000&@66
+|\+0#e000e06&| +0#0000000&@2|)+0#e000e06&| +0#0000000&@69
+|\+0#e000e06&| +0#0000000&@2|:+0#af5f00255&| +0#0000000&|(+0#e000e06&|1+0#e000002&| +0#0000000&@66
+|\+0#e000e06&| +0#0000000&@2|)+0#e000e06&| +0#0000000&@69
+|e+0#af5f00255&|c|h|o| +0#0000000&|t+0#00e0e07&|r|u|t|h|y| +0#0000000&@63
+@75
+|f+0#af5f00255&|u|n|c|t|i|o|n| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&@60
+| +0#e000002&@1|?+0#e000e06&|t+0#e000002&|r|u|t|h|y| +0#0000000&@65
+@2|l+0#af5f00255&|e|t| +0#0000000&|t+0#00e0e07&|r|u|t|h|y| +0#0000000&|=+0#af5f00255&| +0#0000000&|0+0#e000002&| +0#0000000&@58
+@2|\+0#e000e06&| +0#0000000&@2|?+0#af5f00255&| +0#0000000&|(+0#e000e06&|0+0#e000002&| +0#0000000&@64
+@2|\+0#e000e06&| +0#0000000&@2|)+0#e000e06&| +0#0000000&@67
+@57|3|8|7|,|0|-|1| @6|9|8|%|
diff --git a/runtime/syntax/testdir/dumps/vim_expr_23.dump b/runtime/syntax/testdir/dumps/vim_expr_23.dump
new file mode 100644
index 0000000..b68fc3b
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/vim_expr_23.dump
@@ -0,0 +1,20 @@
+| +0&#ffffff0@1|\+0#e000e06&| +0#0000000&@2|)+0#e000e06&| +0#0000000&@67
+@2|\+0#e000e06&| +0#0000000&@2|:+0#af5f00255&| +0#0000000&|(+0#e000e06&|1+0#e000002&| +0#0000000&@64
+@2|\+0#e000e06&| +0#0000000&@2|)+0#e000e06&| +0#0000000&@67
+@2|e+0#af5f00255&|c|h|o| +0#0000000&|t+0#00e0e07&|r|u|t|h|y| +0#0000000&@61
+|e+0#af5f00255&|n|d|f|u|n|c|t|i|o|n| +0#0000000&@63
+> @74
+|~+0#4040ff13&| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+| +0#0000000&@56|4|0|5|,|0|-|1| @6|B|o|t|
diff --git a/runtime/syntax/testdir/input/vim9_comment.vim b/runtime/syntax/testdir/input/vim9_comment.vim
index fd6a5d2..7d22f46 100644
--- a/runtime/syntax/testdir/input/vim9_comment.vim
+++ b/runtime/syntax/testdir/input/vim9_comment.vim
@@ -34,6 +34,10 @@
\ continuing comment
\ continuing comment
+var foo = 42 # commment
+ \ continuing comment
+ \ continuing comment
+
# :Foo
\ arg1
#\ comment
diff --git a/runtime/syntax/testdir/input/vim_comment.vim b/runtime/syntax/testdir/input/vim_comment.vim
index f382f8d..2ca6787 100644
--- a/runtime/syntax/testdir/input/vim_comment.vim
+++ b/runtime/syntax/testdir/input/vim_comment.vim
@@ -31,6 +31,10 @@
\ continuing comment
\ continuing comment
+let foo = 42 " commment
+ \ continuing comment
+ \ continuing comment
+
" :Foo
\ arg1
"\ comment
diff --git a/runtime/syntax/testdir/input/vim_ex_augroup.vim b/runtime/syntax/testdir/input/vim_ex_augroup.vim
index aa13d97..7f7f346 100644
--- a/runtime/syntax/testdir/input/vim_ex_augroup.vim
+++ b/runtime/syntax/testdir/input/vim_ex_augroup.vim
@@ -40,10 +40,17 @@
augroup \"\| | autocmd! | augroup END
augroup! \"\|
-" FIXME: required comment prefix
-augroup foo"comment " start bad fold
+
+augroup foo"comment
+ au!
+ au BufRead * echo "Foo"
+augroup END"comment
+
augroup foo|echo "Foo"
-augroup END " terminate bad fold
+ au!
+ au BufRead * echo "Foo"
+augroup END|echo "Foo"
+
augroup! foo"comment
augroup! foo|echo "Foo"
diff --git a/runtime/syntax/testdir/input/vim_ex_substitute.vim b/runtime/syntax/testdir/input/vim_ex_substitute.vim
index 021060a..7ffd16d 100644
--- a/runtime/syntax/testdir/input/vim_ex_substitute.vim
+++ b/runtime/syntax/testdir/input/vim_ex_substitute.vim
@@ -124,7 +124,6 @@
" Trailing comment and bar
-" FIXME: trailing comment, no whitespace
s" comment
s| echo "Foo"
diff --git a/runtime/syntax/testdir/input/vim_expr.vim b/runtime/syntax/testdir/input/vim_expr.vim
index bb7366d..e58450e 100644
--- a/runtime/syntax/testdir/input/vim_expr.vim
+++ b/runtime/syntax/testdir/input/vim_expr.vim
@@ -4,6 +4,15 @@
echo 'tab: \t, new line: \n, backslash: \\'
echo "tab: \t, new line: \n, backslash: \\"
+" string starts immediately after line continuation character - tests a
+" comment/string distinguishing implementation quirk
+echo "foo"
+ \"bar"
+ \ "baz"
+echo 'foo'
+ \'bar'
+ \ 'baz'
+
" String escape sequences
echo "\316 - \31 - \3 - \x1f - \xf - \X1F - \XF - \u02a4 - \U000002a4 - \b - \e - \f - \n - \r - \t - \\ - \" - \<C-W>"
@@ -21,6 +30,13 @@
echo "\<C->>>"
echo "\<*C->>>"
+echo ""
+echo "\""
+echo "foo\""
+echo "\"foo"
+echo "foo\"bar"
+
+echo ''
echo ''''
echo '''foo'
echo 'foo'''
@@ -30,6 +46,7 @@
" https://github.com/tpope/vim-unimpaired/blob/6d44a6dc2ec34607c41ec78acf81657248580bf1/plugin/unimpaired.vim#L232
let cmd = 'put!=repeat(nr2char(10), v:count1)|silent '']+'
+
" String interpolation
echo 'Don''t highlight interpolation: {{ {1 + 2} }}'
@@ -39,10 +56,61 @@
echo $"Highlight interpolation:\t{{ { string({"foo": "bar"}) } }}"
echo $"Highlight interpolation:\t{{ { $"nested: {{ {1 + 2} }}" } }}"
-echo $''''
-echo $'''foo'
-echo $'foo'''
-echo $'foo''bar'
+
+" Continued string
+
+let s = "
+ "\ comment
+ \ part 1
+ "\ comment
+ \ part 2
+ "\ comment
+ \" " tail comment
+
+let s = "\"
+ \\" part 1 \"
+ "\ escape sequence
+ \ \"part 2\"
+ \\"" " tail comment
+
+let s = '
+ "\ comment
+ \ part 1
+ "\ comment
+ \ part 2
+ "\ comment
+ \' " tail comment
+
+let s = '''
+ \'' part 1 ''
+ "\ escape sequence
+ \ ''part 2''
+ \''' " tail comment
+
+let s = $"
+ "\ comment
+ \ part 1
+ "\ comment
+ \ part 2
+ "\ comment
+ \" " tail comment
+
+let s = $'
+ "\ comment
+ \ part 1
+ "\ comment
+ \ part 2
+ "\ comment
+ \' " tail comment
+
+call strlen("part 1
+ "\ comment
+ \ part 2")
+
+call append(0, "part 1
+ "\ comment
+ \ part 2")
+
" Number
@@ -301,12 +369,17 @@
\ bar +
\ "baz"
+let foo = foo +
+ "\ "comment string"
+ \ bar
+
" Function calls
call Foo(v:true, v:false, v:null)
" Issue #16221 (vimString becomes vimVar when preceded by !)
+
let bar = !'g:bar'->exists()