changeset 34466:315c0d987fd2

runtime(java): Improve the recognition of literals (#14120) Commit: https://github.com/vim/vim/commit/100a665634a0a2edbc755daf453c4915800684dd Author: Aliaksei Budavei <32549825+zzzyxwvut@users.noreply.github.com> Date: Sat Mar 2 01:11:14 2024 +0300 runtime(java): Improve the recognition of literals (https://github.com/vim/vim/issues/14120) * Emend the Unicode and octal escape sequence patterns; * Accept the (repeated) underscore separators in all numerical literals; * Recognise hexadecimal floating-point literals. (The space escape sequence '\s' will be introduced along with text blocks in another PR.) References: https://docs.oracle.com/javase/specs/jls/se17/html/jls-3.html#jls-3.3 https://docs.oracle.com/javase/specs/jls/se17/html/jls-3.html#jls-3.10.1 https://docs.oracle.com/javase/specs/jls/se17/html/jls-3.html#jls-3.10.2 https://docs.oracle.com/javase/specs/jls/se17/html/jls-3.html#jls-3.10.7 Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
author Christian Brabandt <cb@256bit.org>
date Fri, 01 Mar 2024 23:15:09 +0100
parents 0b78387f225b
children 95da9260ac66
files runtime/syntax/java.vim runtime/syntax/testdir/dumps/java_escapes_00.dump runtime/syntax/testdir/dumps/java_escapes_01.dump runtime/syntax/testdir/dumps/java_escapes_02.dump runtime/syntax/testdir/dumps/java_escapes_03.dump runtime/syntax/testdir/dumps/java_escapes_04.dump runtime/syntax/testdir/dumps/java_escapes_05.dump runtime/syntax/testdir/dumps/java_escapes_06.dump runtime/syntax/testdir/dumps/java_escapes_99.dump runtime/syntax/testdir/dumps/java_numbers_00.dump runtime/syntax/testdir/dumps/java_numbers_01.dump runtime/syntax/testdir/dumps/java_numbers_02.dump runtime/syntax/testdir/dumps/java_numbers_03.dump runtime/syntax/testdir/dumps/java_numbers_04.dump runtime/syntax/testdir/dumps/java_numbers_99.dump runtime/syntax/testdir/input/java_escapes.java runtime/syntax/testdir/input/java_numbers.java
diffstat 17 files changed, 517 insertions(+), 15 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/syntax/java.vim
+++ b/runtime/syntax/java.vim
@@ -2,7 +2,7 @@
 " Language:	Java
 " Maintainer:	Claudio Fleiner <claudio@fleiner.com>
 " URL:          https://github.com/fleiner/vim/blob/master/runtime/syntax/java.vim
-" Last Change:	2024 Feb 27
+" Last Change:	2024 Mar 01
 
 " Please check :help java.vim for comments on some of the options available.
 
@@ -226,20 +226,28 @@ syn match   javaComment		 "/\*\*/"
 " Strings and constants
 syn match   javaSpecialError	 contained "\\."
 syn match   javaSpecialCharError contained "[^']"
-syn match   javaSpecialChar	 contained "\\\([4-9]\d\|[0-3]\d\d\|[\"\\'ntbrf]\|u\x\{4\}\)"
+" Escape Sequences (JLS-17, §3.10.7):
+syn match   javaSpecialChar	 contained "\\\%(u\x\x\x\x\|[0-3]\o\o\|\o\o\=\|[btnfr"'\\]\)"
 syn region  javaString		start=+"+ end=+"+ end=+$+ contains=javaSpecialChar,javaSpecialError,@Spell
-" next line disabled, it can cause a crash for a long line
+" The next line is commented out, it can cause a crash for a long line
 "syn match   javaStringError	  +"\([^"\\]\|\\.\)*$+
 syn match   javaCharacter	 "'[^']*'" contains=javaSpecialChar,javaSpecialCharError
 syn match   javaCharacter	 "'\\''" contains=javaSpecialChar
 syn match   javaCharacter	 "'[^\\]'"
-syn match   javaNumber		 "\<\(0[bB][0-1]\+\|0[0-7]*\|0[xX]\x\+\|\d\(\d\|_\d\)*\)[lL]\=\>"
-syn match   javaNumber		 "\(\<\d\(\d\|_\d\)*\.\(\d\(\d\|_\d\)*\)\=\|\.\d\(\d\|_\d\)*\)\([eE][-+]\=\d\(\d\|_\d\)*\)\=[fFdD]\="
-syn match   javaNumber		 "\<\d\(\d\|_\d\)*[eE][-+]\=\d\(\d\|_\d\)*[fFdD]\=\>"
-syn match   javaNumber		 "\<\d\(\d\|_\d\)*\([eE][-+]\=\d\(\d\|_\d\)*\)\=[fFdD]\>"
+" Integer literals (JLS-17, §3.10.1):
+syn keyword javaNumber		 0 0l 0L
+syn match   javaNumber		 "\<\%(0\%([xX]\x\%(_*\x\)*\|_*\o\%(_*\o\)*\|[bB][01]\%(_*[01]\)*\)\|[1-9]\%(_*\d\)*\)[lL]\=\>"
+" Decimal floating-point literals (JLS-17, §3.10.2):
+" Against "\<\d\+\>\.":
+syn match   javaNumber		 "\<\d\%(_*\d\)*\."
+syn match   javaNumber		 "\%(\<\d\%(_*\d\)*\.\%(\d\%(_*\d\)*\)\=\|\.\d\%(_*\d\)*\)\%([eE][-+]\=\d\%(_*\d\)*\)\=[fFdD]\=\>"
+syn match   javaNumber		 "\<\d\%(_*\d\)*[eE][-+]\=\d\%(_*\d\)*[fFdD]\=\>"
+syn match   javaNumber		 "\<\d\%(_*\d\)*\%([eE][-+]\=\d\%(_*\d\)*\)\=[fFdD]\>"
+" Hexadecimal floating-point literals (JLS-17, §3.10.2):
+syn match   javaNumber		 "\<0[xX]\%(\x\%(_*\x\)*\.\=\|\%(\x\%(_*\x\)*\)\=\.\x\%(_*\x\)*\)[pP][-+]\=\d\%(_*\d\)*[fFdD]\=\>"
 
-" unicode characters
-syn match   javaSpecial "\\u\d\{4\}"
+" Unicode characters
+syn match   javaSpecial "\\u\x\x\x\x"
 
 syn cluster javaTop add=javaString,javaCharacter,javaNumber,javaSpecial,javaStringError
 
@@ -265,16 +273,19 @@ endif
 if exists("java_highlight_debug")
 
   " Strings and constants
-  syn match   javaDebugSpecial		contained "\\\d\d\d\|\\."
+  syn match   javaDebugSpecial		contained "\\\%(u\x\x\x\x\|[0-3]\o\o\|\o\o\=\|[btnfr"'\\]\)"
   syn region  javaDebugString		contained start=+"+  end=+"+  contains=javaDebugSpecial
-  syn match   javaDebugStringError	+"\([^"\\]\|\\.\)*$+
+  syn match   javaDebugStringError	contained +"\%([^"\\]\|\\.\)*$+
   syn match   javaDebugCharacter	contained "'[^\\]'"
   syn match   javaDebugSpecialCharacter contained "'\\.'"
   syn match   javaDebugSpecialCharacter contained "'\\''"
-  syn match   javaDebugNumber		contained "\<\(0[0-7]*\|0[xX]\x\+\|\d\+\)[lL]\=\>"
-  syn match   javaDebugNumber		contained "\(\<\d\+\.\d*\|\.\d\+\)\([eE][-+]\=\d\+\)\=[fFdD]\="
-  syn match   javaDebugNumber		contained "\<\d\+[eE][-+]\=\d\+[fFdD]\=\>"
-  syn match   javaDebugNumber		contained "\<\d\+\([eE][-+]\=\d\+\)\=[fFdD]\>"
+  syn keyword javaDebugNumber		contained 0 0l 0L
+  syn match   javaNumber		contained "\<\d\%(_*\d\)*\."
+  syn match   javaDebugNumber		contained "\<\%(0\%([xX]\x\%(_*\x\)*\|_*\o\%(_*\o\)*\|[bB][01]\%(_*[01]\)*\)\|[1-9]\%(_*\d\)*\)[lL]\=\>"
+  syn match   javaDebugNumber		contained "\%(\<\d\%(_*\d\)*\.\%(\d\%(_*\d\)*\)\=\|\.\d\%(_*\d\)*\)\%([eE][-+]\=\d\%(_*\d\)*\)\=[fFdD]\=\>"
+  syn match   javaDebugNumber		contained "\<\d\%(_*\d\)*[eE][-+]\=\d\%(_*\d\)*[fFdD]\=\>"
+  syn match   javaDebugNumber		contained "\<\d\%(_*\d\)*\%([eE][-+]\=\d\%(_*\d\)*\)\=[fFdD]\>"
+  syn match   javaDebugNumber		contained "\<0[xX]\%(\x\%(_*\x\)*\.\=\|\%(\x\%(_*\x\)*\)\=\.\x\%(_*\x\)*\)[pP][-+]\=\d\%(_*\d\)*[fFdD]\=\>"
   syn keyword javaDebugBoolean		contained true false
   syn keyword javaDebugType		contained null this super
   syn region javaDebugParen  start=+(+ end=+)+ contained contains=javaDebug.*,javaDebugParen
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/java_escapes_00.dump
@@ -0,0 +1,20 @@
+>c+0#00e0003#ffffff0|l|a|s@1| +0#0000000&|E|s|c|a|p|e|s|T|e|s|t|s| @56
+|{| @2|/+0#0000e05&@1| |j|a|v|a|p| |-|c|o|n|s|t|a|n|t|s| |E|s|c|a|p|e|s|T|e|s|t|s|.|c|l|a|s@1| +0#0000000&@32
+@4|/+0#0000e05&@1| |s|t|a|t|i|c| |f|i|n|a|l| |S|t|r|i|n|g| |h|e|l@1|o| |=| |"|h|e|l@1|o|"|;| +0#0000000&@31
+@4|\+0#e000e06&|u|0@1|7|3|\|u|0@1|7|4|\|u|0@1|6|1|\|u|0@1|7|4|\|u|0@1|6|9|\|u|0@1|6|3| +0#0000000&@34
+@4|\+0#e000e06&|u|0@1|6@1|\|u|0@1|6|9|\|u|0@1|6|e|\|u|0@1|6|1|\|u|0@1|6|c| +0#0000000&@40
+@4|\+0#e000e06&|u|0@1|5|3|\|u|0@1|7|4|\|u|0@1|7|2|\|u|0@1|6|9|\|u|0@1|6|e|\|u|0@1|6|7| +0#0000000&@34
+@4|\+0#e000e06&|u|0@1|6|8|\|u|0@1|6|5|\|u|0@1|6|c|\|u|0@1|6|c|\|u|0@1|6|f| +0#0000000&@40
+@4|\+0#e000e06&|u|0@1|3|d| +0#0000000&@64
+@4|\+0#e000e06&|u|0@1|2@1|\|u|0@1|6|8|\|u|0@1|6|5|\|u|0@1|6|c|\|u|0@1|6|c|\|u|0@1|6|f|\|u|0@1|2@1| +0#0000000&@28
+@4|\+0#e000e06&|u|0@1|3|b| +0#0000000&@64
+@75
+@4|s+0#00e0003&|t|a|t|i|c| +0#0000000&|{| @62
+@8|c+0#00e0003&|h|a|r| +0#0000000&|e@1|[|]| |=| |{| @53
+@12|'+0#e000002&|\+0#e000e06&|b|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|t|'+0#e000002&|,+0#0000000&| @51
+@12|'+0#e000002&|\+0#e000e06&|n|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|f|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|r|'+0#e000002&|,+0#0000000&| @45
+@12|'+0#e000002&|\+0#e000e06&|"|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|'|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&@1|'+0#e000002&|,+0#0000000&| @45
+@8|}|;| @64
+@75
+@8|S|y|s|t|e|m|.|o|u|t|.|p|r|i|n|t|l|n|(|n+0#af5f00255&|e|w| +0#0000000&|S|t|r|i|n|g|[|]| |{| @33
+@57|1|,|1| @10|T|o|p| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/java_escapes_01.dump
@@ -0,0 +1,20 @@
+| +0&#ffffff0@11|'+0#e000002&|\+0#e000e06&|b|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|t|'+0#e000002&|,+0#0000000&| @51
+@12|'+0#e000002&|\+0#e000e06&|n|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|f|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|r|'+0#e000002&|,+0#0000000&| @45
+@12|'+0#e000002&|\+0#e000e06&|"|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|'|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&@1|'+0#e000002&|,+0#0000000&| @45
+@8|}|;| @64
+@75
+@8>S|y|s|t|e|m|.|o|u|t|.|p|r|i|n|t|l|n|(|n+0#af5f00255&|e|w| +0#0000000&|S|t|r|i|n|g|[|]| |{| @33
+@12|"+0#e000002&|\+0#e000e06&|b|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|t|"+0#e000002&|,+0#0000000&| @51
+@12|"+0#e000002&|\+0#e000e06&|n|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|f|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|r|"+0#e000002&|,+0#0000000&| @45
+@12|"+0#e000002&|\+0#e000e06&|"|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|'|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&@1|"+0#e000002&|,+0#0000000&| @45
+@8|}|)|;| @63
+@75
+@8|c+0#00e0003&|h|a|r| +0#0000000&|o@1|[|]| |=| |{| @53
+@12|'+0#e000002&|\+0#e000e06&|0|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|2|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|4|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|5|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|6|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|7|'+0#e000002&|,+0#0000000&| @15
+@75
+@8|'+0#e000002&|\+0#e000e06&|0@1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|0|1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|0|2|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|0|3|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|0|4|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|0|5|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|0|6|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|0|7|'+0#e000002&|,+0#0000000&| @11
+@75
+@4|'+0#e000002&|\+0#e000e06&|0@2|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|0@1|1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|0@1|2|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|0@1|3|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|0@1|4|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|0@1|5|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|0@1|6|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|0@1|7|'+0#e000002&|,+0#0000000&| @7
+@75
+@8|'+0#e000002&|\+0#e000e06&|1|0|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1@1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|2|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|3|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|4|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|5|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|6|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|7|'+0#e000002&|,+0#0000000&| @11
+@57|1|9|,|3|-|9| @7|1|2|%| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/java_escapes_02.dump
@@ -0,0 +1,20 @@
+| +0&#ffffff0@7|'+0#e000002&|\+0#e000e06&|1|0|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1@1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|2|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|3|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|4|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|5|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|6|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|7|'+0#e000002&|,+0#0000000&| @11
+@8|'+0#e000002&|\+0#e000e06&|2|0|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|2|1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|2@1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|2|3|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|2|4|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|2|5|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|2|6|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|2|7|'+0#e000002&|,+0#0000000&| @11
+@8|'+0#e000002&|\+0#e000e06&|3|0|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3|1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3|2|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3@1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3|4|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3|5|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3|6|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3|7|'+0#e000002&|,+0#0000000&| @11
+@8|'+0#e000002&|\+0#e000e06&|4|0|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|4|1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|4|2|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|4|3|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|4@1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|4|5|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|4|6|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|4|7|'+0#e000002&|,+0#0000000&| @11
+@8|'+0#e000002&|\+0#e000e06&|5|0|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|5|1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|5|2|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|5|3|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|5|4|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|5@1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|5|6|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|5|7|'+0#e000002&|,+0#0000000&| @11
+@8>'+0#e000002&|\+0#e000e06&|6|0|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|6|1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|6|2|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|6|3|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|6|4|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|6|5|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|6@1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|6|7|'+0#e000002&|,+0#0000000&| @11
+@8|'+0#e000002&|\+0#e000e06&|7|0|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|7|1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|7|2|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|7|3|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|7|4|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|7|5|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|7|6|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|7@1|'+0#e000002&|,+0#0000000&| @11
+@75
+@4|'+0#e000002&|\+0#e000e06&|0|1|0|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|0|1@1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|0|1|2|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|0|1|3|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|0|1|4|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|0|1|5|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|0|1|6|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|0|1|7|'+0#e000002&|,+0#0000000&| @7
+@4|'+0#e000002&|\+0#e000e06&|0|2|0|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|0|2|1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|0|2@1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|0|2|3|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|0|2|4|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|0|2|5|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|0|2|6|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|0|2|7|'+0#e000002&|,+0#0000000&| @7
+@4|'+0#e000002&|\+0#e000e06&|0|3|0|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|0|3|1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|0|3|2|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|0|3@1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|0|3|4|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|0|3|5|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|0|3|6|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|0|3|7|'+0#e000002&|,+0#0000000&| @7
+@4|'+0#e000002&|\+0#e000e06&|0|4|0|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|0|4|1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|0|4|2|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|0|4|3|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|0|4@1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|0|4|5|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|0|4|6|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|0|4|7|'+0#e000002&|,+0#0000000&| @7
+@4|'+0#e000002&|\+0#e000e06&|0|5|0|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|0|5|1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|0|5|2|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|0|5|3|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|0|5|4|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|0|5@1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|0|5|6|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|0|5|7|'+0#e000002&|,+0#0000000&| @7
+@4|'+0#e000002&|\+0#e000e06&|0|6|0|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|0|6|1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|0|6|2|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|0|6|3|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|0|6|4|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|0|6|5|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|0|6@1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|0|6|7|'+0#e000002&|,+0#0000000&| @7
+@4|'+0#e000002&|\+0#e000e06&|0|7|0|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|0|7|1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|0|7|2|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|0|7|3|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|0|7|4|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|0|7|5|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|0|7|6|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|0|7@1|'+0#e000002&|,+0#0000000&| @7
+@75
+@4|'+0#e000002&|\+0#e000e06&|1|0@1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|0|1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|0|2|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|0|3|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|0|4|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|0|5|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|0|6|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|0|7|'+0#e000002&|,+0#0000000&| @7
+@4|'+0#e000002&|\+0#e000e06&|1@1|0|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1@2|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1@1|2|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1@1|3|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1@1|4|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1@1|5|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1@1|6|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1@1|7|'+0#e000002&|,+0#0000000&| @7
+@4|'+0#e000002&|\+0#e000e06&|1|2|0|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|2|1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|2@1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|2|3|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|2|4|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|2|5|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|2|6|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|2|7|'+0#e000002&|,+0#0000000&| @7
+@57|3|7|,|3|-|9| @7|2|9|%| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/java_escapes_03.dump
@@ -0,0 +1,20 @@
+| +0&#ffffff0@3|'+0#e000002&|\+0#e000e06&|1|2|0|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|2|1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|2@1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|2|3|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|2|4|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|2|5|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|2|6|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|2|7|'+0#e000002&|,+0#0000000&| @7
+@4|'+0#e000002&|\+0#e000e06&|1|3|0|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|3|1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|3|2|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|3@1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|3|4|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|3|5|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|3|6|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|3|7|'+0#e000002&|,+0#0000000&| @7
+@4|'+0#e000002&|\+0#e000e06&|1|4|0|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|4|1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|4|2|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|4|3|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|4@1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|4|5|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|4|6|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|4|7|'+0#e000002&|,+0#0000000&| @7
+@4|'+0#e000002&|\+0#e000e06&|1|5|0|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|5|1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|5|2|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|5|3|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|5|4|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|5@1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|5|6|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|5|7|'+0#e000002&|,+0#0000000&| @7
+@4|'+0#e000002&|\+0#e000e06&|1|6|0|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|6|1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|6|2|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|6|3|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|6|4|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|6|5|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|6@1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|6|7|'+0#e000002&|,+0#0000000&| @7
+@4>'+0#e000002&|\+0#e000e06&|1|7|0|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|7|1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|7|2|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|7|3|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|7|4|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|7|5|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|7|6|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|1|7@1|'+0#e000002&|,+0#0000000&| @7
+@4|'+0#e000002&|\+0#e000e06&|2|0@1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|2|0|1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|2|0|2|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|2|0|3|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|2|0|4|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|2|0|5|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|2|0|6|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|2|0|7|'+0#e000002&|,+0#0000000&| @7
+@4|'+0#e000002&|\+0#e000e06&|2|1|0|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|2|1@1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|2|1|2|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|2|1|3|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|2|1|4|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|2|1|5|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|2|1|6|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|2|1|7|'+0#e000002&|,+0#0000000&| @7
+@4|'+0#e000002&|\+0#e000e06&|2@1|0|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|2@1|1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|2@2|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|2@1|3|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|2@1|4|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|2@1|5|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|2@1|6|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|2@1|7|'+0#e000002&|,+0#0000000&| @7
+@4|'+0#e000002&|\+0#e000e06&|2|3|0|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|2|3|1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|2|3|2|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|2|3@1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|2|3|4|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|2|3|5|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|2|3|6|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|2|3|7|'+0#e000002&|,+0#0000000&| @7
+@4|'+0#e000002&|\+0#e000e06&|2|4|0|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|2|4|1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|2|4|2|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|2|4|3|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|2|4@1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|2|4|5|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|2|4|6|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|2|4|7|'+0#e000002&|,+0#0000000&| @7
+@4|'+0#e000002&|\+0#e000e06&|2|5|0|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|2|5|1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|2|5|2|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|2|5|3|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|2|5|4|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|2|5@1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|2|5|6|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|2|5|7|'+0#e000002&|,+0#0000000&| @7
+@4|'+0#e000002&|\+0#e000e06&|2|6|0|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|2|6|1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|2|6|2|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|2|6|3|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|2|6|4|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|2|6|5|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|2|6@1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|2|6|7|'+0#e000002&|,+0#0000000&| @7
+@4|'+0#e000002&|\+0#e000e06&|2|7|0|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|2|7|1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|2|7|2|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|2|7|3|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|2|7|4|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|2|7|5|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|2|7|6|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|2|7@1|'+0#e000002&|,+0#0000000&| @7
+@4|'+0#e000002&|\+0#e000e06&|3|0@1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3|0|1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3|0|2|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3|0|3|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3|0|4|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3|0|5|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3|0|6|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3|0|7|'+0#e000002&|,+0#0000000&| @7
+@4|'+0#e000002&|\+0#e000e06&|3|1|0|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3|1@1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3|1|2|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3|1|3|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3|1|4|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3|1|5|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3|1|6|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3|1|7|'+0#e000002&|,+0#0000000&| @7
+@4|'+0#e000002&|\+0#e000e06&|3|2|0|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3|2|1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3|2@1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3|2|3|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3|2|4|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3|2|5|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3|2|6|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3|2|7|'+0#e000002&|,+0#0000000&| @7
+@4|'+0#e000002&|\+0#e000e06&|3@1|0|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3@1|1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3@1|2|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3@2|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3@1|4|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3@1|5|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3@1|6|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3@1|7|'+0#e000002&|,+0#0000000&| @7
+@4|'+0#e000002&|\+0#e000e06&|3|4|0|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3|4|1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3|4|2|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3|4|3|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3|4@1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3|4|5|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3|4|6|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3|4|7|'+0#e000002&|,+0#0000000&| @7
+@57|5@1|,|2|-|5| @7|4|7|%| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/java_escapes_04.dump
@@ -0,0 +1,20 @@
+| +0&#ffffff0@3|'+0#e000002&|\+0#e000e06&|3|4|0|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3|4|1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3|4|2|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3|4|3|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3|4@1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3|4|5|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3|4|6|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3|4|7|'+0#e000002&|,+0#0000000&| @7
+@4|'+0#e000002&|\+0#e000e06&|3|5|0|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3|5|1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3|5|2|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3|5|3|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3|5|4|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3|5@1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3|5|6|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3|5|7|'+0#e000002&|,+0#0000000&| @7
+@4|'+0#e000002&|\+0#e000e06&|3|6|0|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3|6|1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3|6|2|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3|6|3|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3|6|4|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3|6|5|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3|6@1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3|6|7|'+0#e000002&|,+0#0000000&| @7
+@4|'+0#e000002&|\+0#e000e06&|3|7|0|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3|7|1|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3|7|2|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3|7|3|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3|7|4|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3|7|5|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3|7|6|'+0#e000002&|,+0#0000000&| |'+0#e000002&|\+0#e000e06&|3|7@1|'+0#e000002&|,+0#0000000&| @7
+@8|}|;| @64
+> @74
+@8|S|y|s|t|e|m|.|o|u|t|.|p|r|i|n|t|l|n|(|n+0#af5f00255&|e|w| +0#0000000&|S|t|r|i|n|g|[|]| |{| @33
+@12|"+0#e000002&|\+0#e000e06&|0|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|4|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|5|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|6|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|7|"+0#e000002&|,+0#0000000&| @15
+@75
+@8|"+0#e000002&|\+0#e000e06&|0@1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|0|1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|0|2|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|0|3|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|0|4|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|0|5|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|0|6|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|0|7|"+0#e000002&|,+0#0000000&| @11
+@75
+@4|"+0#e000002&|\+0#e000e06&|0@2|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|0@1|1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|0@1|2|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|0@1|3|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|0@1|4|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|0@1|5|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|0@1|6|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|0@1|7|"+0#e000002&|,+0#0000000&| @7
+@75
+@8|"+0#e000002&|\+0#e000e06&|1|0|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1@1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1|2|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1|3|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1|4|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1|5|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1|6|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1|7|"+0#e000002&|,+0#0000000&| @11
+@8|"+0#e000002&|\+0#e000e06&|2|0|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2@1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|3|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|4|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|5|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|6|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|7|"+0#e000002&|,+0#0000000&| @11
+@8|"+0#e000002&|\+0#e000e06&|3|0|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|2|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3@1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|4|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|5|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|6|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|7|"+0#e000002&|,+0#0000000&| @11
+@8|"+0#e000002&|\+0#e000e06&|4|0|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|4|1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|4|2|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|4|3|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|4@1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|4|5|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|4|6|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|4|7|"+0#e000002&|,+0#0000000&| @11
+@8|"+0#e000002&|\+0#e000e06&|5|0|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|5|1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|5|2|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|5|3|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|5|4|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|5@1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|5|6|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|5|7|"+0#e000002&|,+0#0000000&| @11
+@8|"+0#e000002&|\+0#e000e06&|6|0|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|6|1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|6|2|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|6|3|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|6|4|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|6|5|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|6@1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|6|7|"+0#e000002&|,+0#0000000&| @11
+@57|7|3|,|0|-|1| @7|6|4|%| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/java_escapes_05.dump
@@ -0,0 +1,20 @@
+| +0&#ffffff0@7|"+0#e000002&|\+0#e000e06&|6|0|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|6|1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|6|2|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|6|3|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|6|4|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|6|5|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|6@1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|6|7|"+0#e000002&|,+0#0000000&| @11
+@8|"+0#e000002&|\+0#e000e06&|7|0|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|7|1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|7|2|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|7|3|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|7|4|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|7|5|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|7|6|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|7@1|"+0#e000002&|,+0#0000000&| @11
+@75
+@4|"+0#e000002&|\+0#e000e06&|0|1|0|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|0|1@1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|0|1|2|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|0|1|3|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|0|1|4|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|0|1|5|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|0|1|6|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|0|1|7|"+0#e000002&|,+0#0000000&| @7
+@4|"+0#e000002&|\+0#e000e06&|0|2|0|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|0|2|1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|0|2@1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|0|2|3|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|0|2|4|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|0|2|5|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|0|2|6|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|0|2|7|"+0#e000002&|,+0#0000000&| @7
+@4>"+0#e000002&|\+0#e000e06&|0|3|0|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|0|3|1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|0|3|2|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|0|3@1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|0|3|4|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|0|3|5|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|0|3|6|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|0|3|7|"+0#e000002&|,+0#0000000&| @7
+@4|"+0#e000002&|\+0#e000e06&|0|4|0|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|0|4|1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|0|4|2|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|0|4|3|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|0|4@1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|0|4|5|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|0|4|6|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|0|4|7|"+0#e000002&|,+0#0000000&| @7
+@4|"+0#e000002&|\+0#e000e06&|0|5|0|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|0|5|1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|0|5|2|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|0|5|3|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|0|5|4|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|0|5@1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|0|5|6|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|0|5|7|"+0#e000002&|,+0#0000000&| @7
+@4|"+0#e000002&|\+0#e000e06&|0|6|0|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|0|6|1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|0|6|2|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|0|6|3|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|0|6|4|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|0|6|5|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|0|6@1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|0|6|7|"+0#e000002&|,+0#0000000&| @7
+@4|"+0#e000002&|\+0#e000e06&|0|7|0|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|0|7|1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|0|7|2|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|0|7|3|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|0|7|4|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|0|7|5|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|0|7|6|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|0|7@1|"+0#e000002&|,+0#0000000&| @7
+@75
+@4|"+0#e000002&|\+0#e000e06&|1|0@1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1|0|1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1|0|2|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1|0|3|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1|0|4|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1|0|5|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1|0|6|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1|0|7|"+0#e000002&|,+0#0000000&| @7
+@4|"+0#e000002&|\+0#e000e06&|1@1|0|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1@2|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1@1|2|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1@1|3|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1@1|4|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1@1|5|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1@1|6|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1@1|7|"+0#e000002&|,+0#0000000&| @7
+@4|"+0#e000002&|\+0#e000e06&|1|2|0|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1|2|1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1|2@1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1|2|3|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1|2|4|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1|2|5|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1|2|6|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1|2|7|"+0#e000002&|,+0#0000000&| @7
+@4|"+0#e000002&|\+0#e000e06&|1|3|0|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1|3|1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1|3|2|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1|3@1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1|3|4|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1|3|5|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1|3|6|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1|3|7|"+0#e000002&|,+0#0000000&| @7
+@4|"+0#e000002&|\+0#e000e06&|1|4|0|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1|4|1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1|4|2|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1|4|3|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1|4@1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1|4|5|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1|4|6|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1|4|7|"+0#e000002&|,+0#0000000&| @7
+@4|"+0#e000002&|\+0#e000e06&|1|5|0|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1|5|1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1|5|2|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1|5|3|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1|5|4|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1|5@1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1|5|6|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1|5|7|"+0#e000002&|,+0#0000000&| @7
+@4|"+0#e000002&|\+0#e000e06&|1|6|0|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1|6|1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1|6|2|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1|6|3|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1|6|4|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1|6|5|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1|6@1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1|6|7|"+0#e000002&|,+0#0000000&| @7
+@4|"+0#e000002&|\+0#e000e06&|1|7|0|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1|7|1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1|7|2|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1|7|3|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1|7|4|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1|7|5|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1|7|6|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1|7@1|"+0#e000002&|,+0#0000000&| @7
+@57|9|1|,|2|-|5| @7|8|1|%| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/java_escapes_06.dump
@@ -0,0 +1,20 @@
+| +0&#ffffff0@3|"+0#e000002&|\+0#e000e06&|1|7|0|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1|7|1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1|7|2|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1|7|3|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1|7|4|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1|7|5|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1|7|6|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|1|7@1|"+0#e000002&|,+0#0000000&| @7
+@4|"+0#e000002&|\+0#e000e06&|2|0@1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|0|1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|0|2|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|0|3|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|0|4|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|0|5|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|0|6|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|0|7|"+0#e000002&|,+0#0000000&| @7
+@4|"+0#e000002&|\+0#e000e06&|2|1|0|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|1@1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|1|2|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|1|3|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|1|4|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|1|5|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|1|6|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|1|7|"+0#e000002&|,+0#0000000&| @7
+@4|"+0#e000002&|\+0#e000e06&|2@1|0|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2@1|1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2@2|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2@1|3|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2@1|4|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2@1|5|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2@1|6|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2@1|7|"+0#e000002&|,+0#0000000&| @7
+@4|"+0#e000002&|\+0#e000e06&|2|3|0|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|3|1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|3|2|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|3@1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|3|4|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|3|5|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|3|6|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|3|7|"+0#e000002&|,+0#0000000&| @7
+@4>"+0#e000002&|\+0#e000e06&|2|4|0|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|4|1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|4|2|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|4|3|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|4@1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|4|5|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|4|6|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|4|7|"+0#e000002&|,+0#0000000&| @7
+@4|"+0#e000002&|\+0#e000e06&|2|5|0|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|5|1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|5|2|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|5|3|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|5|4|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|5@1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|5|6|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|5|7|"+0#e000002&|,+0#0000000&| @7
+@4|"+0#e000002&|\+0#e000e06&|2|6|0|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|6|1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|6|2|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|6|3|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|6|4|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|6|5|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|6@1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|6|7|"+0#e000002&|,+0#0000000&| @7
+@4|"+0#e000002&|\+0#e000e06&|2|7|0|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|7|1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|7|2|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|7|3|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|7|4|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|7|5|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|7|6|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|7@1|"+0#e000002&|,+0#0000000&| @7
+@4|"+0#e000002&|\+0#e000e06&|3|0@1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|0|1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|0|2|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|0|3|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|0|4|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|0|5|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|0|6|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|0|7|"+0#e000002&|,+0#0000000&| @7
+@4|"+0#e000002&|\+0#e000e06&|3|1|0|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|1@1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|1|2|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|1|3|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|1|4|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|1|5|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|1|6|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|1|7|"+0#e000002&|,+0#0000000&| @7
+@4|"+0#e000002&|\+0#e000e06&|3|2|0|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|2|1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|2@1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|2|3|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|2|4|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|2|5|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|2|6|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|2|7|"+0#e000002&|,+0#0000000&| @7
+@4|"+0#e000002&|\+0#e000e06&|3@1|0|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3@1|1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3@1|2|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3@2|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3@1|4|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3@1|5|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3@1|6|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3@1|7|"+0#e000002&|,+0#0000000&| @7
+@4|"+0#e000002&|\+0#e000e06&|3|4|0|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|4|1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|4|2|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|4|3|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|4@1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|4|5|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|4|6|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|4|7|"+0#e000002&|,+0#0000000&| @7
+@4|"+0#e000002&|\+0#e000e06&|3|5|0|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|5|1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|5|2|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|5|3|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|5|4|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|5@1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|5|6|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|5|7|"+0#e000002&|,+0#0000000&| @7
+@4|"+0#e000002&|\+0#e000e06&|3|6|0|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|6|1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|6|2|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|6|3|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|6|4|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|6|5|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|6@1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|6|7|"+0#e000002&|,+0#0000000&| @7
+@4|"+0#e000002&|\+0#e000e06&|3|7|0|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|7|1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|7|2|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|7|3|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|7|4|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|7|5|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|7|6|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|7@1|"+0#e000002&|,+0#0000000&| @7
+@8|}|)|;| @63
+@4|}| @69
+@57|1|0|9|,|2|-|5| @6|9@1|%| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/java_escapes_99.dump
@@ -0,0 +1,20 @@
+| +0&#ffffff0@3|"+0#e000002&|\+0#e000e06&|2|0@1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|0|1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|0|2|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|0|3|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|0|4|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|0|5|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|0|6|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|0|7|"+0#e000002&|,+0#0000000&| @7
+@4|"+0#e000002&|\+0#e000e06&|2|1|0|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|1@1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|1|2|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|1|3|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|1|4|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|1|5|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|1|6|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|1|7|"+0#e000002&|,+0#0000000&| @7
+@4|"+0#e000002&|\+0#e000e06&|2@1|0|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2@1|1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2@2|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2@1|3|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2@1|4|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2@1|5|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2@1|6|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2@1|7|"+0#e000002&|,+0#0000000&| @7
+@4|"+0#e000002&|\+0#e000e06&|2|3|0|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|3|1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|3|2|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|3@1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|3|4|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|3|5|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|3|6|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|3|7|"+0#e000002&|,+0#0000000&| @7
+@4|"+0#e000002&|\+0#e000e06&|2|4|0|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|4|1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|4|2|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|4|3|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|4@1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|4|5|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|4|6|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|4|7|"+0#e000002&|,+0#0000000&| @7
+@4|"+0#e000002&|\+0#e000e06&|2|5|0|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|5|1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|5|2|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|5|3|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|5|4|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|5@1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|5|6|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|5|7|"+0#e000002&|,+0#0000000&| @7
+@4|"+0#e000002&|\+0#e000e06&|2|6|0|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|6|1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|6|2|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|6|3|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|6|4|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|6|5|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|6@1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|6|7|"+0#e000002&|,+0#0000000&| @7
+@4|"+0#e000002&|\+0#e000e06&|2|7|0|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|7|1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|7|2|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|7|3|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|7|4|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|7|5|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|7|6|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|2|7@1|"+0#e000002&|,+0#0000000&| @7
+@4|"+0#e000002&|\+0#e000e06&|3|0@1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|0|1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|0|2|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|0|3|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|0|4|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|0|5|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|0|6|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|0|7|"+0#e000002&|,+0#0000000&| @7
+@4|"+0#e000002&|\+0#e000e06&|3|1|0|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|1@1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|1|2|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|1|3|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|1|4|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|1|5|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|1|6|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|1|7|"+0#e000002&|,+0#0000000&| @7
+@4|"+0#e000002&|\+0#e000e06&|3|2|0|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|2|1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|2@1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|2|3|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|2|4|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|2|5|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|2|6|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|2|7|"+0#e000002&|,+0#0000000&| @7
+@4|"+0#e000002&|\+0#e000e06&|3@1|0|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3@1|1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3@1|2|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3@2|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3@1|4|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3@1|5|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3@1|6|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3@1|7|"+0#e000002&|,+0#0000000&| @7
+@4|"+0#e000002&|\+0#e000e06&|3|4|0|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|4|1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|4|2|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|4|3|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|4@1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|4|5|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|4|6|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|4|7|"+0#e000002&|,+0#0000000&| @7
+@4|"+0#e000002&|\+0#e000e06&|3|5|0|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|5|1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|5|2|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|5|3|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|5|4|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|5@1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|5|6|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|5|7|"+0#e000002&|,+0#0000000&| @7
+@4|"+0#e000002&|\+0#e000e06&|3|6|0|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|6|1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|6|2|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|6|3|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|6|4|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|6|5|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|6@1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|6|7|"+0#e000002&|,+0#0000000&| @7
+@4|"+0#e000002&|\+0#e000e06&|3|7|0|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|7|1|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|7|2|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|7|3|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|7|4|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|7|5|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|7|6|"+0#e000002&|,+0#0000000&| |"+0#e000002&|\+0#e000e06&|3|7@1|"+0#e000002&|,+0#0000000&| @7
+@8|}|)|;| @63
+@4|}| @69
+>}| @73
+@57|1|2|3|,|1| @8|B|o|t| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/java_numbers_00.dump
@@ -0,0 +1,20 @@
+>c+0#00e0003#ffffff0|l|a|s@1| +0#0000000&|N|u|m|b|e|r|s|T|e|s|t|s| @56
+|{| @73
+@4|s+0#00e0003&|t|a|t|i|c| +0#0000000&|{| @62
+@8|d+0#00e0003&|o|u|b|l|e|[+0#0000000&|]| |d@1| |=| |{| @51
+@12|0+0#e000002&|x|.|0|p|0|,+0#0000000&| |0+0#e000002&|x|0|.|p|0|,+0#0000000&| |0+0#e000002&|x|0|.|0|p|0|,+0#0000000&| |0+0#e000002&|x|0|P|0|,+0#0000000&| @31
+@12|0+0#e000002&|x|.|0|p|0|d|,+0#0000000&| |0+0#e000002&|x|0|.|p|0|d|,+0#0000000&| |0+0#e000002&|x|0|.|0|p|0|d|,+0#0000000&| |0+0#e000002&|x|0|P|0|D|,+0#0000000&| @27
+@12|0+0#e000002&|x|.|0|p|0|f|,+0#0000000&| |0+0#e000002&|x|0|.|p|0|f|,+0#0000000&| |0+0#e000002&|x|0|.|0|p|0|f|,+0#0000000&| |0+0#e000002&|x|0|P|0|F|,+0#0000000&| @27
+@12|0+0#e000002&|x|.|0|p|0|,+0#0000000&| |0+0#e000002&|x|0|.|p|0|,+0#0000000&| |0+0#e000002&|x|0|.|0|p|0|,+0#0000000&| |0+0#e000002&|x|0|P|0|,+0#0000000&| @31
+@12|0+0#e000002&|x|.|0|p|0|d|,+0#0000000&| |0+0#e000002&|x|0|.|p|0|d|,+0#0000000&| |0+0#e000002&|x|0|.|0|p|0|d|,+0#0000000&| |0+0#e000002&|x|0|P|0|D|,+0#0000000&| @27
+@12|0+0#e000002&|x|.|0|p|0|f|,+0#0000000&| |0+0#e000002&|x|0|.|p|0|f|,+0#0000000&| |0+0#e000002&|x|0|.|0|p|0|f|,+0#0000000&| |0+0#e000002&|x|0|P|0|F|,+0#0000000&| @27
+@12|0+0#e000002&|x|.|0|p|-|0|,+0#0000000&| |0+0#e000002&|x|0|.|p|-|0|,+0#0000000&| |0+0#e000002&|x|0|.|0|p|-|0|,+0#0000000&| |0+0#e000002&|x|0|P|-|0|,+0#0000000&| @27
+@12|0+0#e000002&|x|.|0|p|-|0|d|,+0#0000000&| |0+0#e000002&|x|0|.|p|-|0|d|,+0#0000000&| |0+0#e000002&|x|0|.|0|p|-|0|d|,+0#0000000&| |0+0#e000002&|x|0|P|-|0|D|,+0#0000000&| @23
+@12|0+0#e000002&|x|.|0|p|-|0|f|,+0#0000000&| |0+0#e000002&|x|0|.|p|-|0|f|,+0#0000000&| |0+0#e000002&|x|0|.|0|p|-|0|f|,+0#0000000&| |0+0#e000002&|x|0|P|-|0|F|,+0#0000000&| @23
+@12|0+0#e000002&|x|.|0|p|+|0|,+0#0000000&| |0+0#e000002&|x|0|.|p|+|0|,+0#0000000&| |0+0#e000002&|x|0|.|0|p|+|0|,+0#0000000&| |0+0#e000002&|x|0|P|+|0|,+0#0000000&| @27
+@12|0+0#e000002&|x|.|0|p|+|0|d|,+0#0000000&| |0+0#e000002&|x|0|.|p|+|0|d|,+0#0000000&| |0+0#e000002&|x|0|.|0|p|+|0|d|,+0#0000000&| |0+0#e000002&|x|0|P|+|0|D|,+0#0000000&| @23
+@12|0+0#e000002&|x|.|0|p|+|0|f|,+0#0000000&| |0+0#e000002&|x|0|.|p|+|0|f|,+0#0000000&| |0+0#e000002&|x|0|.|0|p|+|0|f|,+0#0000000&| |0+0#e000002&|x|0|P|+|0|F|,+0#0000000&| @23
+@75
+@12|1+0#e000002&|.|,+0#0000000&| |1+0#e000002&|.|2|,+0#0000000&| |1+0#e000002&|.|2|e|3|,+0#0000000&| |1+0#e000002&|.|2|e|3|d|,+0#0000000&| |1+0#e000002&|.|2|e|3|f|,+0#0000000&| @31
+@16|1+0#e000002&|.|2|e|-|3|,+0#0000000&| |1+0#e000002&|.|2|e|-|3|d|,+0#0000000&| |1+0#e000002&|.|2|E|-|3|F|,+0#0000000&| @33
+@57|1|,|1| @10|T|o|p| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/java_numbers_01.dump
@@ -0,0 +1,20 @@
+| +0&#ffffff0@11|0+0#e000002&|x|.|0|p|+|0|,+0#0000000&| |0+0#e000002&|x|0|.|p|+|0|,+0#0000000&| |0+0#e000002&|x|0|.|0|p|+|0|,+0#0000000&| |0+0#e000002&|x|0|P|+|0|,+0#0000000&| @27
+@12|0+0#e000002&|x|.|0|p|+|0|d|,+0#0000000&| |0+0#e000002&|x|0|.|p|+|0|d|,+0#0000000&| |0+0#e000002&|x|0|.|0|p|+|0|d|,+0#0000000&| |0+0#e000002&|x|0|P|+|0|D|,+0#0000000&| @23
+@12|0+0#e000002&|x|.|0|p|+|0|f|,+0#0000000&| |0+0#e000002&|x|0|.|p|+|0|f|,+0#0000000&| |0+0#e000002&|x|0|.|0|p|+|0|f|,+0#0000000&| |0+0#e000002&|x|0|P|+|0|F|,+0#0000000&| @23
+@75
+@12|1+0#e000002&|.|,+0#0000000&| |1+0#e000002&|.|2|,+0#0000000&| |1+0#e000002&|.|2|e|3|,+0#0000000&| |1+0#e000002&|.|2|e|3|d|,+0#0000000&| |1+0#e000002&|.|2|e|3|f|,+0#0000000&| @31
+@16>1+0#e000002&|.|2|e|-|3|,+0#0000000&| |1+0#e000002&|.|2|e|-|3|d|,+0#0000000&| |1+0#e000002&|.|2|E|-|3|F|,+0#0000000&| @33
+@16|1+0#e000002&|.|2|e|+|3|,+0#0000000&| |1+0#e000002&|.|2|E|+|3|D|,+0#0000000&| |1+0#e000002&|.|2|e|+|3|f|,+0#0000000&| @33
+@12|.+0#e000002&|2|,+0#0000000&| |.+0#e000002&|2|e|3|,+0#0000000&| |.+0#e000002&|2|e|3|d|,+0#0000000&| |.+0#e000002&|2|e|3|f|,+0#0000000&| @39
+@16|.+0#e000002&|2|e|-|3|,+0#0000000&| |.+0#e000002&|2|e|-|3|d|,+0#0000000&| |.+0#e000002&|2|E|-|3|F|,+0#0000000&| @36
+@16|.+0#e000002&|2|e|+|3|,+0#0000000&| |.+0#e000002&|2|E|+|3|D|,+0#0000000&| |.+0#e000002&|2|e|+|3|f|,+0#0000000&| @36
+@12|1+0#e000002&|e|3|,+0#0000000&| |1+0#e000002&|e|3|d|,+0#0000000&| |1+0#e000002&|e|3|f|,+0#0000000&| @46
+@16|1+0#e000002&|e|-|3|,+0#0000000&| |1+0#e000002&|e|-|3|d|,+0#0000000&| |1+0#e000002&|E|-|3|F|,+0#0000000&| @39
+@16|1+0#e000002&|e|+|3|,+0#0000000&| |1+0#e000002&|E|+|3|D|,+0#0000000&| |1+0#e000002&|e|+|3|f|,+0#0000000&| @39
+@12|1+0#e000002&|d|,+0#0000000&| |1+0#e000002&|D|,+0#0000000&| |1+0#e000002&|f|,+0#0000000&| |1+0#e000002&|F|,+0#0000000&| @47
+@75
+|/+0#0000e05&@3| |M|A|L|F|O|R|M|E|D|:| |:|l|e|t| |g|:|j|a|v|a|_|c|o|m@1|e|n|t|_|s|t|r|i|n|g|s| |=| |1| ||| |d|o|a|u|t|o|c|m|d| |S|y|n|t|a|x| +0#0000000&@8
+|/+0#0000e05&@1| @9|0|_|x|.|0|p|0|,| |0|x|.|_|0|p|0|,| |0|x|.|0|_|p|0|,| |0|x|.|0|p|_|0|,| |0|x|.|0|p|0|_|,| +0#0000000&@18
+|/+0#0000e05&@1| @9|0|x|0|_|.|0|p|0|,| |0|x|_|0|.|0|p|0|,| |0|x|p|0|,| +0#0000000&@37
+@8|}|;| @64
+@57|1|9|,|5|-|1|7| @6|1|8|%| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/java_numbers_02.dump
@@ -0,0 +1,20 @@
+| +0&#ffffff0@7|}|;| @64
+@75
+@8|i+0#00e0003&|n|t| +0#0000000&|O| |=| |0+0#e000002&|;+0#0000000&| @56
+@8|i+0#00e0003&|n|t| +0#0000000&|O@1| |=| |0+0#e000002&@1|;+0#0000000&| @54
+@8|i+0#00e0003&|n|t| +0#0000000&|O|x|O| |=| |0+0#e000002&|x|0|;+0#0000000&| @52
+> @74
+@8|i+0#00e0003&|n|t| +0#0000000&|x| |=| |0+0#e000002&|x|1|2|_|3|4|5|_|6|7|8|;+0#0000000&| @45
+@8|i+0#00e0003&|n|t| +0#0000000&|y| |=| |0+0#e000002&|b|0|1|_|0|1|_|0|1|_|0|1|_|0|1|;+0#0000000&| @41
+@8|i+0#00e0003&|n|t| +0#0000000&|z| |=| |0+0#e000002&|_@1|1|_@1|2|_@1|3|_@1|4|_@1|5|_@1|6|_@1|7|;+0#0000000&| @35
+@75
+@8|/+0#0000e05&@1| |S|t|r|i|n|g|.|f|o|r|m|a|t|(|"|%|a|"|,| |-|1|.|0|)| +0#0000000&@38
+@8|d+0#00e0003&|o|u|b|l|e| +0#0000000&|m|i|n|u|s|_|o|n|e|_|d| |=| |-|0+0#e000002&|x|1|.|0|p|0|;+0#0000000&| @36
+@75
+@8|d+0#00e0003&|o|u|b|l|e| +0#0000000&|z|_|d| |=| |-|0+0#e000002&|x|.|0|p|0|;+0#0000000&| @45
+@8|d+0#00e0003&|o|u|b|l|e| +0#0000000&|y|_|d| |=| |0+0#e000002&|x|a|p|1|_@1|0|_@1|0|;+0#0000000&| @41
+@8|d+0#00e0003&|o|u|b|l|e| +0#0000000&|x|_|d| |=| |.+0#e000002&|0|_@1|1|_@1|2|_@1|3|_@1|4|_@1|5|_@1|6|_@1|7|_@1|8|_@1|9|;+0#0000000&| @23
+@8|d+0#00e0003&|o|u|b|l|e| +0#0000000&|d|o|t|_|O| |=| |.+0#e000002&|0|;+0#0000000&| @48
+@75
+@8|/+0#0000e05&@1| |J|L|S|,| |§|3|.|1|0|.|2|:| +0#0000000&@50
+@57|3|7|,|0|-|1| @7|4@1|%| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/java_numbers_03.dump
@@ -0,0 +1,20 @@
+| +0&#ffffff0@7|/+0#0000e05&@1| |J|L|S|,| |§|3|.|1|0|.|2|:| +0#0000000&@50
+@8|f+0#00e0003&|l|o|a|t| +0#0000000&|m|a|x|_|d|e|c|_|f| |=| |3+0#e000002&|.|4|0|2|8|2|3|5|e|3|8|f|;+0#0000000&| @34
+@8|f+0#00e0003&|l|o|a|t| +0#0000000&|m|a|x|_|h|e|x|_|f| |=| |0+0#e000002&|x|1|.|f@4|e|P|+|1|2|7|f|;+0#0000000&| @31
+@8|f+0#00e0003&|l|o|a|t| +0#0000000&|m|i|n|_|d|e|c|_|f| |=| |1+0#e000002&|.|4|e|-|4|5|f|;+0#0000000&| @39
+@8|f+0#00e0003&|l|o|a|t| +0#0000000&|m|i|n|_|h|e|x|_|f|_|a| |=| |0+0#e000002&|x|0|.|0@4|2|P|-|1|2|6|f|;+0#0000000&| @29
+@8>f+0#00e0003&|l|o|a|t| +0#0000000&|m|i|n|_|h|e|x|_|f|_|b| |=| |0+0#e000002&|x|1|.|0|P|-|1|4|9|f|;+0#0000000&| @34
+@75
+@8|d+0#00e0003&|o|u|b|l|e| +0#0000000&|m|a|x|_|d|e|c|_|d| |=| |1+0#e000002&|.|7|9|7|6|9|3|1|3|4|8|6|2|3|1|5|7|e|3|_@1|0|_@1|8|;+0#0000000&| @20
+@8|d+0#00e0003&|o|u|b|l|e| +0#0000000&|m|a|x|_|h|e|x|_|d| |=| |0+0#e000002&|x|1|.|f|_|f@3|_|f@3|_|f@3|P|+|1|0|2|3|;+0#0000000&| @20
+@8|d+0#00e0003&|o|u|b|l|e| +0#0000000&|m|i|n|_|d|e|c|_|d| |=| |4+0#e000002&|.|9|e|-|3|_@1|2|_@1|4|;+0#0000000&| @34
+@8|d+0#00e0003&|o|u|b|l|e| +0#0000000&|m|i|n|_|h|e|x|_|d|_|a| |=| |0+0#e000002&|x|0|.|0|_|0@3|_|0@3|_|0@2|1|P|-|1|0|2@1|;+0#0000000&| @18
+@8|d+0#00e0003&|o|u|b|l|e| +0#0000000&|m|i|n|_|h|e|x|_|d|_|b| |=| |0+0#e000002&|x|1|.|0|P|-|1|0|7|4|;+0#0000000&| @33
+@75
+@8|/+0#0000e05&@1| |J|L|S|,| |§|3|.|1|0|.|1|:| +0#0000000&@50
+@8|i+0#00e0003&|n|t| +0#0000000&|m|a|x|_|h|e|x| |=| |0+0#e000002&|x|7|f@2|_|f@3|;+0#0000000&| @40
+@8|i+0#00e0003&|n|t| +0#0000000&|m|a|x|_|o|c|t| |=| |0+0#e000002&|1|7@1|_|7@3|_|7@3|;+0#0000000&| @37
+@8|i+0#00e0003&|n|t| +0#0000000&|m|a|x|_|b|i|n| |=| |0+0#e000002&|b|0|1@2|_|1@3|_|1@3|_|1@3|_|1@3|_|1@3|_|1@3|_|1@3|;+0#0000000&| @10
+@75
+@8|i+0#00e0003&|n|t| +0#0000000&|m|i|n|_|h|e|x| |=| |0+0#e000002&|x|8|0@2|_|0@3|;+0#0000000&| @40
+@57|5@1|,|3|-|9| @7|7|1|%| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/java_numbers_04.dump
@@ -0,0 +1,20 @@
+| +0&#ffffff0@7|i+0#00e0003&|n|t| +0#0000000&|m|i|n|_|h|e|x| |=| |0+0#e000002&|x|8|0@2|_|0@3|;+0#0000000&| @40
+@8|i+0#00e0003&|n|t| +0#0000000&|m|i|n|_|o|c|t| |=| |0+0#e000002&|2|0@1|_|0@3|_|0@3|;+0#0000000&| @37
+@8|i+0#00e0003&|n|t| +0#0000000&|m|i|n|_|b|i|n| |=| |0+0#e000002&|b|1|0@2|_|0@3|_|0@3|_|0@3|_|0@3|_|0@3|_|0@3|_|0@3|;+0#0000000&| @10
+@75
+@8|i+0#00e0003&|n|t| +0#0000000&|m|i|n|u|s|_|o|n|e|_|h|e|x| |=| |0+0#e000002&|x|f@3|_|f@3|;+0#0000000&| @34
+@8>i+0#00e0003&|n|t| +0#0000000&|m|i|n|u|s|_|o|n|e|_|o|c|t| |=| |0+0#e000002&|3|7@1|_|7@3|_|7@3|;+0#0000000&| @31
+@8|i+0#00e0003&|n|t| +0#0000000&|m|i|n|u|s|_|o|n|e|_|b|i|n| |=| |0+0#e000002&|b|1@3|_|1@3|_|1@3|_|1@3|_|1@3|_|1@3|_|1@3|_|1@3|;+0#0000000&| @4
+@75
+@8|l+0#00e0003&|o|n|g| +0#0000000&|m|a|x|_|h|e|x|_|l| |=| |0+0#e000002&|x|7|f@2|_|f@3|_|f@3|_|f@3|L|;+0#0000000&| @26
+@8|l+0#00e0003&|o|n|g| +0#0000000&|m|a|x|_|o|c|t|_|l| |=| |0+0#e000002&|7|_|7@3|_|7@3|_|7@3|_|7@3|_|7@3|L|;+0#0000000&| @20
+@8|l+0#00e0003&|o|n|g| +0#0000000&|m|a|x|_|b|i|n|_|l| |=| |0+0#e000002&|b|0|1@2|_|1@3|_|1@3|_|1@3|_|1@3|_|1@3|_|1@3|_|1@3|_|1@3|_|1@2
+@1|_|1@3|_|1@3|_|1@3|_|1@3|_|1@3|_|1@3|L|;+0#0000000&| @41
+@75
+@8|l+0#00e0003&|o|n|g| +0#0000000&|m|i|n|_|h|e|x|_|l| |=| |0+0#e000002&|x|8|0@2|_|0@3|_|0@3|_|0@3|L|;+0#0000000&| @26
+@8|l+0#00e0003&|o|n|g| +0#0000000&|m|i|n|_|o|c|t|_|l| |=| |0+0#e000002&|1|0|_|0@3|_|0@3|_|0@3|_|0@3|_|0@3|L|;+0#0000000&| @19
+@8|l+0#00e0003&|o|n|g| +0#0000000&|m|i|n|_|b|i|n|_|l| |=| |0+0#e000002&|b|1|0@2|_|0@3|_|0@3|_|0@3|_|0@3|_|0@3|_|0@3|_|0@3|_|0@3|_|0@2
+@1|_|0@3|_|0@3|_|0@3|_|0@3|_|0@3|_|0@3|L|;+0#0000000&| @41
+@75
+@8|l+0#00e0003&|o|n|g| +0#0000000&|m|i|n|u|s|_|o|n|e|_|h|e|x|_|l| |=| |0+0#e000002&|x|f@3|_|f@3|_|f@3|_|f@3|L|;+0#0000000&| @20
+@57|7|3|,|3|-|9| @7|9|4|%| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/java_numbers_99.dump
@@ -0,0 +1,20 @@
+| +0&#ffffff0@7|i+0#00e0003&|n|t| +0#0000000&|m|i|n|u|s|_|o|n|e|_|o|c|t| |=| |0+0#e000002&|3|7@1|_|7@3|_|7@3|;+0#0000000&| @31
+@8|i+0#00e0003&|n|t| +0#0000000&|m|i|n|u|s|_|o|n|e|_|b|i|n| |=| |0+0#e000002&|b|1@3|_|1@3|_|1@3|_|1@3|_|1@3|_|1@3|_|1@3|_|1@3|;+0#0000000&| @4
+@75
+@8|l+0#00e0003&|o|n|g| +0#0000000&|m|a|x|_|h|e|x|_|l| |=| |0+0#e000002&|x|7|f@2|_|f@3|_|f@3|_|f@3|L|;+0#0000000&| @26
+@8|l+0#00e0003&|o|n|g| +0#0000000&|m|a|x|_|o|c|t|_|l| |=| |0+0#e000002&|7|_|7@3|_|7@3|_|7@3|_|7@3|_|7@3|L|;+0#0000000&| @20
+@8|l+0#00e0003&|o|n|g| +0#0000000&|m|a|x|_|b|i|n|_|l| |=| |0+0#e000002&|b|0|1@2|_|1@3|_|1@3|_|1@3|_|1@3|_|1@3|_|1@3|_|1@3|_|1@3|_|1@2
+@1|_|1@3|_|1@3|_|1@3|_|1@3|_|1@3|_|1@3|L|;+0#0000000&| @41
+@75
+@8|l+0#00e0003&|o|n|g| +0#0000000&|m|i|n|_|h|e|x|_|l| |=| |0+0#e000002&|x|8|0@2|_|0@3|_|0@3|_|0@3|L|;+0#0000000&| @26
+@8|l+0#00e0003&|o|n|g| +0#0000000&|m|i|n|_|o|c|t|_|l| |=| |0+0#e000002&|1|0|_|0@3|_|0@3|_|0@3|_|0@3|_|0@3|L|;+0#0000000&| @19
+@8|l+0#00e0003&|o|n|g| +0#0000000&|m|i|n|_|b|i|n|_|l| |=| |0+0#e000002&|b|1|0@2|_|0@3|_|0@3|_|0@3|_|0@3|_|0@3|_|0@3|_|0@3|_|0@3|_|0@2
+@1|_|0@3|_|0@3|_|0@3|_|0@3|_|0@3|_|0@3|L|;+0#0000000&| @41
+@75
+@8|l+0#00e0003&|o|n|g| +0#0000000&|m|i|n|u|s|_|o|n|e|_|h|e|x|_|l| |=| |0+0#e000002&|x|f@3|_|f@3|_|f@3|_|f@3|L|;+0#0000000&| @20
+@8|l+0#00e0003&|o|n|g| +0#0000000&|m|i|n|u|s|_|o|n|e|_|o|c|t|_|l| |=| |0+0#e000002&|1|7|_|7@3|_|7@3|_|7@3|_|7@3|_|7@3|L|;+0#0000000&| @13
+@8|l+0#00e0003&|o|n|g| +0#0000000&|m|i|n|u|s|_|o|n|e|_|b|i|n|_|l| |=| |0+0#e000002&|b|1@3|_|1@3|_|1@3|_|1@3|_|1@3|_|1@3|_|1@3|_|1@3|_|1@1
+@2|_|1@3|_|1@3|_|1@3|_|1@3|_|1@3|_|1@3|_|1@3|L|;+0#0000000&| @35
+@4|}| @69
+>}| @73
+@57|8@1|,|1| @9|B|o|t| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/input/java_escapes.java
@@ -0,0 +1,123 @@
+class EscapesTests
+{	// javap -constants EscapesTests.class
+	// static final String hello = "hello";
+	\u0073\u0074\u0061\u0074\u0069\u0063
+	\u0066\u0069\u006e\u0061\u006c
+	\u0053\u0074\u0072\u0069\u006e\u0067
+	\u0068\u0065\u006c\u006c\u006f
+	\u003d
+	\u0022\u0068\u0065\u006c\u006c\u006f\u0022
+	\u003b
+
+	static {
+		char ee[] = {
+			'\b', '\t',
+			'\n', '\f', '\r',
+			'\"', '\'', '\\',
+		};
+
+		System.out.println(new String[] {
+			"\b", "\t",
+			"\n", "\f", "\r",
+			"\"", "\'", "\\",
+		});
+
+		char oo[] = {
+			'\0', '\1', '\2', '\3', '\4', '\5', '\6', '\7',
+
+		'\00', '\01', '\02', '\03', '\04', '\05', '\06', '\07',
+
+	'\000', '\001', '\002', '\003', '\004', '\005', '\006', '\007',
+
+		'\10', '\11', '\12', '\13', '\14', '\15', '\16', '\17',
+		'\20', '\21', '\22', '\23', '\24', '\25', '\26', '\27',
+		'\30', '\31', '\32', '\33', '\34', '\35', '\36', '\37',
+		'\40', '\41', '\42', '\43', '\44', '\45', '\46', '\47',
+		'\50', '\51', '\52', '\53', '\54', '\55', '\56', '\57',
+		'\60', '\61', '\62', '\63', '\64', '\65', '\66', '\67',
+		'\70', '\71', '\72', '\73', '\74', '\75', '\76', '\77',
+
+	'\010', '\011', '\012', '\013', '\014', '\015', '\016', '\017',
+	'\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027',
+	'\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037',
+	'\040', '\041', '\042', '\043', '\044', '\045', '\046', '\047',
+	'\050', '\051', '\052', '\053', '\054', '\055', '\056', '\057',
+	'\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067',
+	'\070', '\071', '\072', '\073', '\074', '\075', '\076', '\077',
+
+	'\100', '\101', '\102', '\103', '\104', '\105', '\106', '\107',
+	'\110', '\111', '\112', '\113', '\114', '\115', '\116', '\117',
+	'\120', '\121', '\122', '\123', '\124', '\125', '\126', '\127',
+	'\130', '\131', '\132', '\133', '\134', '\135', '\136', '\137',
+	'\140', '\141', '\142', '\143', '\144', '\145', '\146', '\147',
+	'\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',
+	'\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',
+	'\170', '\171', '\172', '\173', '\174', '\175', '\176', '\177',
+	'\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207',
+	'\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217',
+	'\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227',
+	'\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237',
+	'\240', '\241', '\242', '\243', '\244', '\245', '\246', '\247',
+	'\250', '\251', '\252', '\253', '\254', '\255', '\256', '\257',
+	'\260', '\261', '\262', '\263', '\264', '\265', '\266', '\267',
+	'\270', '\271', '\272', '\273', '\274', '\275', '\276', '\277',
+	'\300', '\301', '\302', '\303', '\304', '\305', '\306', '\307',
+	'\310', '\311', '\312', '\313', '\314', '\315', '\316', '\317',
+	'\320', '\321', '\322', '\323', '\324', '\325', '\326', '\327',
+	'\330', '\331', '\332', '\333', '\334', '\335', '\336', '\337',
+	'\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347',
+	'\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357',
+	'\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367',
+	'\370', '\371', '\372', '\373', '\374', '\375', '\376', '\377',
+		};
+
+		System.out.println(new String[] {
+			"\0", "\1", "\2", "\3", "\4", "\5", "\6", "\7",
+
+		"\00", "\01", "\02", "\03", "\04", "\05", "\06", "\07",
+
+	"\000", "\001", "\002", "\003", "\004", "\005", "\006", "\007",
+
+		"\10", "\11", "\12", "\13", "\14", "\15", "\16", "\17",
+		"\20", "\21", "\22", "\23", "\24", "\25", "\26", "\27",
+		"\30", "\31", "\32", "\33", "\34", "\35", "\36", "\37",
+		"\40", "\41", "\42", "\43", "\44", "\45", "\46", "\47",
+		"\50", "\51", "\52", "\53", "\54", "\55", "\56", "\57",
+		"\60", "\61", "\62", "\63", "\64", "\65", "\66", "\67",
+		"\70", "\71", "\72", "\73", "\74", "\75", "\76", "\77",
+
+	"\010", "\011", "\012", "\013", "\014", "\015", "\016", "\017",
+	"\020", "\021", "\022", "\023", "\024", "\025", "\026", "\027",
+	"\030", "\031", "\032", "\033", "\034", "\035", "\036", "\037",
+	"\040", "\041", "\042", "\043", "\044", "\045", "\046", "\047",
+	"\050", "\051", "\052", "\053", "\054", "\055", "\056", "\057",
+	"\060", "\061", "\062", "\063", "\064", "\065", "\066", "\067",
+	"\070", "\071", "\072", "\073", "\074", "\075", "\076", "\077",
+
+	"\100", "\101", "\102", "\103", "\104", "\105", "\106", "\107",
+	"\110", "\111", "\112", "\113", "\114", "\115", "\116", "\117",
+	"\120", "\121", "\122", "\123", "\124", "\125", "\126", "\127",
+	"\130", "\131", "\132", "\133", "\134", "\135", "\136", "\137",
+	"\140", "\141", "\142", "\143", "\144", "\145", "\146", "\147",
+	"\150", "\151", "\152", "\153", "\154", "\155", "\156", "\157",
+	"\160", "\161", "\162", "\163", "\164", "\165", "\166", "\167",
+	"\170", "\171", "\172", "\173", "\174", "\175", "\176", "\177",
+	"\200", "\201", "\202", "\203", "\204", "\205", "\206", "\207",
+	"\210", "\211", "\212", "\213", "\214", "\215", "\216", "\217",
+	"\220", "\221", "\222", "\223", "\224", "\225", "\226", "\227",
+	"\230", "\231", "\232", "\233", "\234", "\235", "\236", "\237",
+	"\240", "\241", "\242", "\243", "\244", "\245", "\246", "\247",
+	"\250", "\251", "\252", "\253", "\254", "\255", "\256", "\257",
+	"\260", "\261", "\262", "\263", "\264", "\265", "\266", "\267",
+	"\270", "\271", "\272", "\273", "\274", "\275", "\276", "\277",
+	"\300", "\301", "\302", "\303", "\304", "\305", "\306", "\307",
+	"\310", "\311", "\312", "\313", "\314", "\315", "\316", "\317",
+	"\320", "\321", "\322", "\323", "\324", "\325", "\326", "\327",
+	"\330", "\331", "\332", "\333", "\334", "\335", "\336", "\337",
+	"\340", "\341", "\342", "\343", "\344", "\345", "\346", "\347",
+	"\350", "\351", "\352", "\353", "\354", "\355", "\356", "\357",
+	"\360", "\361", "\362", "\363", "\364", "\365", "\366", "\367",
+	"\370", "\371", "\372", "\373", "\374", "\375", "\376", "\377",
+		});
+	}
+}
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/input/java_numbers.java
@@ -0,0 +1,88 @@
+class NumbersTests
+{
+	static {
+		double[] dd = {
+			0x.0p0, 0x0.p0, 0x0.0p0, 0x0P0,
+			0x.0p0d, 0x0.p0d, 0x0.0p0d, 0x0P0D,
+			0x.0p0f, 0x0.p0f, 0x0.0p0f, 0x0P0F,
+			0x.0p0, 0x0.p0, 0x0.0p0, 0x0P0,
+			0x.0p0d, 0x0.p0d, 0x0.0p0d, 0x0P0D,
+			0x.0p0f, 0x0.p0f, 0x0.0p0f, 0x0P0F,
+			0x.0p-0, 0x0.p-0, 0x0.0p-0, 0x0P-0,
+			0x.0p-0d, 0x0.p-0d, 0x0.0p-0d, 0x0P-0D,
+			0x.0p-0f, 0x0.p-0f, 0x0.0p-0f, 0x0P-0F,
+			0x.0p+0, 0x0.p+0, 0x0.0p+0, 0x0P+0,
+			0x.0p+0d, 0x0.p+0d, 0x0.0p+0d, 0x0P+0D,
+			0x.0p+0f, 0x0.p+0f, 0x0.0p+0f, 0x0P+0F,
+
+			1., 1.2, 1.2e3, 1.2e3d, 1.2e3f,
+				1.2e-3, 1.2e-3d, 1.2E-3F,
+				1.2e+3, 1.2E+3D, 1.2e+3f,
+			.2, .2e3, .2e3d, .2e3f,
+				.2e-3, .2e-3d, .2E-3F,
+				.2e+3, .2E+3D, .2e+3f,
+			1e3, 1e3d, 1e3f,
+				1e-3, 1e-3d, 1E-3F,
+				1e+3, 1E+3D, 1e+3f,
+			1d, 1D, 1f, 1F,
+
+//// MALFORMED: :let g:java_comment_strings = 1 | doautocmd Syntax
+//			0_x.0p0, 0x._0p0, 0x.0_p0, 0x.0p_0, 0x.0p0_,
+//			0x0_.0p0, 0x_0.0p0, 0xp0,
+		};
+
+		int O = 0;
+		int OO = 00;
+		int OxO = 0x0;
+
+		int x = 0x12_345_678;
+		int y = 0b01_01_01_01_01;
+		int z = 0__1__2__3__4__5__6__7;
+
+		// String.format("%a", -1.0)
+		double minus_one_d = -0x1.0p0;
+
+		double z_d = -0x.0p0;
+		double y_d = 0xap1__0__0;
+		double x_d = .0__1__2__3__4__5__6__7__8__9;
+		double dot_O = .0;
+
+		// JLS, §3.10.2:
+		float max_dec_f = 3.4028235e38f;
+		float max_hex_f = 0x1.fffffeP+127f;
+		float min_dec_f = 1.4e-45f;
+		float min_hex_f_a = 0x0.000002P-126f;
+		float min_hex_f_b = 0x1.0P-149f;
+
+		double max_dec_d = 1.7976931348623157e3__0__8;
+		double max_hex_d = 0x1.f_ffff_ffff_ffffP+1023;
+		double min_dec_d = 4.9e-3__2__4;
+		double min_hex_d_a = 0x0.0_0000_0000_0001P-1022;
+		double min_hex_d_b = 0x1.0P-1074;
+
+		// JLS, §3.10.1:
+		int max_hex = 0x7fff_ffff;
+		int max_oct = 0177_7777_7777;
+		int max_bin = 0b0111_1111_1111_1111_1111_1111_1111_1111;
+
+		int min_hex = 0x8000_0000;
+		int min_oct = 0200_0000_0000;
+		int min_bin = 0b1000_0000_0000_0000_0000_0000_0000_0000;
+
+		int minus_one_hex = 0xffff_ffff;
+		int minus_one_oct = 0377_7777_7777;
+		int minus_one_bin = 0b1111_1111_1111_1111_1111_1111_1111_1111;
+
+		long max_hex_l = 0x7fff_ffff_ffff_ffffL;
+		long max_oct_l = 07_7777_7777_7777_7777_7777L;
+		long max_bin_l = 0b0111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111L;
+
+		long min_hex_l = 0x8000_0000_0000_0000L;
+		long min_oct_l = 010_0000_0000_0000_0000_0000L;
+		long min_bin_l = 0b1000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000L;
+
+		long minus_one_hex_l = 0xffff_ffff_ffff_ffffL;
+		long minus_one_oct_l = 017_7777_7777_7777_7777_7777L;
+		long minus_one_bin_l = 0b1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111L;
+	}
+}