diff options
Diffstat (limited to 'grammar/go')
-rw-r--r-- | grammar/go/.gitignore | 3 | ||||
-rw-r--r-- | grammar/go/Makefile | 2 | ||||
-rw-r--r-- | grammar/go/go.lm | 1 | ||||
-rw-r--r-- | grammar/go/input.til | 13 | ||||
-rw-r--r-- | grammar/go/test/input.go | 41 | ||||
-rw-r--r-- | grammar/go/test/invalid.go | 10 | ||||
-rw-r--r-- | grammar/go/utf8.lm | 1604 |
7 files changed, 1656 insertions, 18 deletions
diff --git a/grammar/go/.gitignore b/grammar/go/.gitignore index 80d228d8..7f1dc001 100644 --- a/grammar/go/.gitignore +++ b/grammar/go/.gitignore @@ -1,5 +1,2 @@ -/utf8.lm /go.c /go -/insert-semi.c -/insert-semi diff --git a/grammar/go/Makefile b/grammar/go/Makefile index 8f5d8447..faed933e 100644 --- a/grammar/go/Makefile +++ b/grammar/go/Makefile @@ -6,7 +6,7 @@ all: go go: go.lm parsego.lm utf8.lm $(COLM) $(COLM) -o go parsego.lm -utf8.lm: Makefile utf8pat.rb UnicodeData.txt +utf8: UnicodeData.txt echo 'rl unicode_letter /' >utf8.lm ruby utf8pat.rb 'L[ultmo]' 1 UnicodeData.txt >> utf8.lm echo '/' >>utf8.lm diff --git a/grammar/go/go.lm b/grammar/go/go.lm index 0ab8f7fd..a1523a26 100644 --- a/grammar/go/go.lm +++ b/grammar/go/go.lm @@ -101,7 +101,6 @@ lex # Rune literals # - rl escaped_char / '\\' ( 'a' | 'b' | 'f' | 'n' | 'r' | 't' | 'v' | '\\' | "'" | '"' ) / diff --git a/grammar/go/input.til b/grammar/go/input.til deleted file mode 100644 index 008182b8..00000000 --- a/grammar/go/input.til +++ /dev/null @@ -1,13 +0,0 @@ -var a -a := 1; - -head: - -a := ( a + 1 ) -c := d; - -if a = 10 then - goto head -end - -hi := there; friend := yes diff --git a/grammar/go/test/input.go b/grammar/go/test/input.go new file mode 100644 index 00000000..e9e89a51 --- /dev/null +++ b/grammar/go/test/input.go @@ -0,0 +1,41 @@ +a b c +d e f +treeß + foo then /**/ + bar //ladkf + baz /* +*/end +42 +4_2 +0600 +0_600 +0o600 +0O600 // second character is capital letter 'O' +0xBadFace +0xBad_Face +0x_67_7a_2f_cc_40_c6 +170141183460469231731687303715884105727 +170_141183_460469_231731_687303_715884_105727 +_42 // an identifier, not an integer literal +'a' +'ä' +'本' +'\t' +'\000' +'\007' +'\377' +'\x07' +'\xff' +'\u12e4' +'\U00101234' +'\'' // rune literal containing single quote character +`abc` // same as "abc" +`\n +\n` // same as "\\n\n\\n" +"\n" +"\"" // same as `"` +"Hello, world!\n" +"日本語" +"\u65e5本\U00008a9e" +"\xff\u00FF" + diff --git a/grammar/go/test/invalid.go b/grammar/go/test/invalid.go new file mode 100644 index 00000000..5de15057 --- /dev/null +++ b/grammar/go/test/invalid.go @@ -0,0 +1,10 @@ +42_ // invalid: _ must separate successive digits +4__2 // invalid: only one _ at a time +0_xBadFace // invalid: _ must separate successive digits +'aa' // illegal: too many characters +'\xa' // illegal: too few hexadecimal digits +'\0' // illegal: too few octal digits +'\uDFFF' // illegal: surrogate half +'\U00110000' // illegal: invalid Unicode code point +"\uD800" // illegal: surrogate half +"\U00110000" // illegal: invalid Unicode code point diff --git a/grammar/go/utf8.lm b/grammar/go/utf8.lm new file mode 100644 index 00000000..667572f2 --- /dev/null +++ b/grammar/go/utf8.lm @@ -0,0 +1,1604 @@ +rl unicode_letter / + 0x41 .. 0x5A | + 0x61 .. 0x7A | + 0xC2 ( + 0xAA | + 0xB5 | + 0xBA + ) | + 0xC3 ( + 0x80 .. 0x96 | + 0x98 .. 0xB6 | + 0xB8 .. 0xBF + ) | + 0xC4 .. 0xCA ( + 0x80 .. 0xBF + ) | + 0xCB ( + 0x80 .. 0x81 | + 0x86 .. 0x91 | + 0xA0 .. 0xA4 | + 0xAC | + 0xAE + ) | + 0xCD ( + 0xB0 .. 0xB4 | + 0xB6 .. 0xB7 | + 0xBA .. 0xBD | + 0xBF + ) | + 0xCE ( + 0x86 | + 0x88 .. 0x8A | + 0x8C | + 0x8E .. 0xA1 | + 0xA3 .. 0xBF + ) | + 0xCF ( + 0x80 .. 0xB5 | + 0xB7 .. 0xBF + ) | + 0xD0 .. 0xD1 ( + 0x80 .. 0xBF + ) | + 0xD2 ( + 0x80 .. 0x81 | + 0x8A .. 0xBF + ) | + 0xD3 ( + 0x80 .. 0xBF + ) | + 0xD4 ( + 0x80 .. 0xAF | + 0xB1 .. 0xBF + ) | + 0xD5 ( + 0x80 .. 0x96 | + 0x99 | + 0xA0 .. 0xBF + ) | + 0xD6 ( + 0x80 .. 0x88 + ) | + 0xD7 ( + 0x90 .. 0xAA | + 0xAF .. 0xB2 + ) | + 0xD8 ( + 0xA0 .. 0xBF + ) | + 0xD9 ( + 0x80 .. 0x8A | + 0xAE .. 0xAF | + 0xB1 .. 0xBF + ) | + 0xDA ( + 0x80 .. 0xBF + ) | + 0xDB ( + 0x80 .. 0x93 | + 0x95 | + 0xA5 .. 0xA6 | + 0xAE .. 0xAF | + 0xBA .. 0xBC | + 0xBF + ) | + 0xDC ( + 0x90 | + 0x92 .. 0xAF + ) | + 0xDD ( + 0x8D .. 0xBF + ) | + 0xDE ( + 0x80 .. 0xA5 | + 0xB1 + ) | + 0xDF ( + 0x8A .. 0xAA | + 0xB4 .. 0xB5 | + 0xBA + ) | + 0xE0 ( + 0xA0 ( + 0x80 .. 0x95 | + 0x9A | + 0xA4 | + 0xA8 + ) | + 0xA1 ( + 0x80 .. 0x98 | + 0xA0 .. 0xAA + ) | + 0xA2 ( + 0xA0 .. 0xB4 | + 0xB6 .. 0xBD + ) | + 0xA4 ( + 0x84 .. 0xB9 | + 0xBD + ) | + 0xA5 ( + 0x90 | + 0x98 .. 0xA1 | + 0xB1 .. 0xBF + ) | + 0xA6 ( + 0x80 | + 0x85 .. 0x8C | + 0x8F .. 0x90 | + 0x93 .. 0xA8 | + 0xAA .. 0xB0 | + 0xB2 | + 0xB6 .. 0xB9 | + 0xBD + ) | + 0xA7 ( + 0x8E | + 0x9C .. 0x9D | + 0x9F .. 0xA1 | + 0xB0 .. 0xB1 | + 0xBC + ) | + 0xA8 ( + 0x85 .. 0x8A | + 0x8F .. 0x90 | + 0x93 .. 0xA8 | + 0xAA .. 0xB0 | + 0xB2 .. 0xB3 | + 0xB5 .. 0xB6 | + 0xB8 .. 0xB9 + ) | + 0xA9 ( + 0x99 .. 0x9C | + 0x9E | + 0xB2 .. 0xB4 + ) | + 0xAA ( + 0x85 .. 0x8D | + 0x8F .. 0x91 | + 0x93 .. 0xA8 | + 0xAA .. 0xB0 | + 0xB2 .. 0xB3 | + 0xB5 .. 0xB9 | + 0xBD + ) | + 0xAB ( + 0x90 | + 0xA0 .. 0xA1 | + 0xB9 + ) | + 0xAC ( + 0x85 .. 0x8C | + 0x8F .. 0x90 | + 0x93 .. 0xA8 | + 0xAA .. 0xB0 | + 0xB2 .. 0xB3 | + 0xB5 .. 0xB9 | + 0xBD + ) | + 0xAD ( + 0x9C .. 0x9D | + 0x9F .. 0xA1 | + 0xB1 + ) | + 0xAE ( + 0x83 | + 0x85 .. 0x8A | + 0x8E .. 0x90 | + 0x92 .. 0x95 | + 0x99 .. 0x9A | + 0x9C | + 0x9E .. 0x9F | + 0xA3 .. 0xA4 | + 0xA8 .. 0xAA | + 0xAE .. 0xB9 + ) | + 0xAF ( + 0x90 + ) | + 0xB0 ( + 0x85 .. 0x8C | + 0x8E .. 0x90 | + 0x92 .. 0xA8 | + 0xAA .. 0xB9 | + 0xBD + ) | + 0xB1 ( + 0x98 .. 0x9A | + 0xA0 .. 0xA1 + ) | + 0xB2 ( + 0x80 | + 0x85 .. 0x8C | + 0x8E .. 0x90 | + 0x92 .. 0xA8 | + 0xAA .. 0xB3 | + 0xB5 .. 0xB9 | + 0xBD + ) | + 0xB3 ( + 0x9E | + 0xA0 .. 0xA1 | + 0xB1 .. 0xB2 + ) | + 0xB4 ( + 0x85 .. 0x8C | + 0x8E .. 0x90 | + 0x92 .. 0xBA | + 0xBD + ) | + 0xB5 ( + 0x8E | + 0x94 .. 0x96 | + 0x9F .. 0xA1 | + 0xBA .. 0xBF + ) | + 0xB6 ( + 0x85 .. 0x96 | + 0x9A .. 0xB1 | + 0xB3 .. 0xBB | + 0xBD + ) | + 0xB7 ( + 0x80 .. 0x86 + ) | + 0xB8 ( + 0x81 .. 0xB0 | + 0xB2 .. 0xB3 + ) | + 0xB9 ( + 0x80 .. 0x86 + ) | + 0xBA ( + 0x81 .. 0x82 | + 0x84 | + 0x86 .. 0x8A | + 0x8C .. 0xA3 | + 0xA5 | + 0xA7 .. 0xB0 | + 0xB2 .. 0xB3 | + 0xBD + ) | + 0xBB ( + 0x80 .. 0x84 | + 0x86 | + 0x9C .. 0x9F + ) | + 0xBC ( + 0x80 + ) | + 0xBD ( + 0x80 .. 0x87 | + 0x89 .. 0xAC + ) | + 0xBE ( + 0x88 .. 0x8C + ) + ) | + 0xE1 ( + 0x80 ( + 0x80 .. 0xAA | + 0xBF + ) | + 0x81 ( + 0x90 .. 0x95 | + 0x9A .. 0x9D | + 0xA1 | + 0xA5 .. 0xA6 | + 0xAE .. 0xB0 | + 0xB5 .. 0xBF + ) | + 0x82 ( + 0x80 .. 0x81 | + 0x8E | + 0xA0 .. 0xBF + ) | + 0x83 ( + 0x80 .. 0x85 | + 0x87 | + 0x8D | + 0x90 .. 0xBA | + 0xBC .. 0xBF + ) | + 0x84 .. 0x88 ( + 0x80 .. 0xBF + ) | + 0x89 ( + 0x80 .. 0x88 | + 0x8A .. 0x8D | + 0x90 .. 0x96 | + 0x98 | + 0x9A .. 0x9D | + 0xA0 .. 0xBF + ) | + 0x8A ( + 0x80 .. 0x88 | + 0x8A .. 0x8D | + 0x90 .. 0xB0 | + 0xB2 .. 0xB5 | + 0xB8 .. 0xBE + ) | + 0x8B ( + 0x80 | + 0x82 .. 0x85 | + 0x88 .. 0x96 | + 0x98 .. 0xBF + ) | + 0x8C ( + 0x80 .. 0x90 | + 0x92 .. 0x95 | + 0x98 .. 0xBF + ) | + 0x8D ( + 0x80 .. 0x9A + ) | + 0x8E ( + 0x80 .. 0x8F | + 0xA0 .. 0xBF + ) | + 0x8F ( + 0x80 .. 0xB5 | + 0xB8 .. 0xBD + ) | + 0x90 ( + 0x81 .. 0xBF + ) | + 0x91 .. 0x98 ( + 0x80 .. 0xBF + ) | + 0x99 ( + 0x80 .. 0xAC | + 0xAF .. 0xBF + ) | + 0x9A ( + 0x81 .. 0x9A | + 0xA0 .. 0xBF + ) | + 0x9B ( + 0x80 .. 0xAA | + 0xB1 .. 0xB8 + ) | + 0x9C ( + 0x80 .. 0x8C | + 0x8E .. 0x91 | + 0xA0 .. 0xB1 + ) | + 0x9D ( + 0x80 .. 0x91 | + 0xA0 .. 0xAC | + 0xAE .. 0xB0 + ) | + 0x9E ( + 0x80 .. 0xB3 + ) | + 0x9F ( + 0x97 | + 0x9C + ) | + 0xA0 ( + 0xA0 .. 0xBF + ) | + 0xA1 ( + 0x80 .. 0xB8 + ) | + 0xA2 ( + 0x80 .. 0x84 | + 0x87 .. 0xA8 | + 0xAA | + 0xB0 .. 0xBF + ) | + 0xA3 ( + 0x80 .. 0xB5 + ) | + 0xA4 ( + 0x80 .. 0x9E + ) | + 0xA5 ( + 0x90 .. 0xAD | + 0xB0 .. 0xB4 + ) | + 0xA6 ( + 0x80 .. 0xAB | + 0xB0 .. 0xBF + ) | + 0xA7 ( + 0x80 .. 0x89 + ) | + 0xA8 ( + 0x80 .. 0x96 | + 0xA0 .. 0xBF + ) | + 0xA9 ( + 0x80 .. 0x94 + ) | + 0xAA ( + 0xA7 + ) | + 0xAC ( + 0x85 .. 0xB3 + ) | + 0xAD ( + 0x85 .. 0x8B + ) | + 0xAE ( + 0x83 .. 0xA0 | + 0xAE .. 0xAF | + 0xBA .. 0xBF + ) | + 0xAF ( + 0x80 .. 0xA5 + ) | + 0xB0 ( + 0x80 .. 0xA3 + ) | + 0xB1 ( + 0x8D .. 0x8F | + 0x9A .. 0xBD + ) | + 0xB2 ( + 0x80 .. 0x88 | + 0x90 .. 0xBA | + 0xBD .. 0xBF + ) | + 0xB3 ( + 0xA9 .. 0xAC | + 0xAE .. 0xB3 | + 0xB5 .. 0xB6 | + 0xBA + ) | + 0xB4 .. 0xB6 ( + 0x80 .. 0xBF + ) | + 0xB8 .. 0xBB ( + 0x80 .. 0xBF + ) | + 0xBC ( + 0x80 .. 0x95 | + 0x98 .. 0x9D | + 0xA0 .. 0xBF + ) | + 0xBD ( + 0x80 .. 0x85 | + 0x88 .. 0x8D | + 0x90 .. 0x97 | + 0x99 | + 0x9B | + 0x9D | + 0x9F .. 0xBD + ) | + 0xBE ( + 0x80 .. 0xB4 | + 0xB6 .. 0xBC | + 0xBE + ) | + 0xBF ( + 0x82 .. 0x84 | + 0x86 .. 0x8C | + 0x90 .. 0x93 | + 0x96 .. 0x9B | + 0xA0 .. 0xAC | + 0xB2 .. 0xB4 | + 0xB6 .. 0xBC + ) + ) | + 0xE2 ( + 0x81 ( + 0xB1 | + 0xBF + ) | + 0x82 ( + 0x90 .. 0x9C + ) | + 0x84 ( + 0x82 | + 0x87 | + 0x8A .. 0x93 | + 0x95 | + 0x99 .. 0x9D | + 0xA4 | + 0xA6 | + 0xA8 | + 0xAA .. 0xAD | + 0xAF .. 0xB9 | + 0xBC .. 0xBF + ) | + 0x85 ( + 0x85 .. 0x89 | + 0x8E + ) | + 0x86 ( + 0x83 .. 0x84 + ) | + 0xB0 ( + 0x80 .. 0xAE | + 0xB0 .. 0xBF + ) | + 0xB1 ( + 0x80 .. 0x9E | + 0xA0 .. 0xBF + ) | + 0xB2 ( + 0x80 .. 0xBF + ) | + 0xB3 ( + 0x80 .. 0xA4 | + 0xAB .. 0xAE | + 0xB2 .. 0xB3 + ) | + 0xB4 ( + 0x80 .. 0xA5 | + 0xA7 | + 0xAD | + 0xB0 .. 0xBF + ) | + 0xB5 ( + 0x80 .. 0xA7 | + 0xAF + ) | + 0xB6 ( + 0x80 .. 0x96 | + 0xA0 .. 0xA6 | + 0xA8 .. 0xAE | + 0xB0 .. 0xB6 | + 0xB8 .. 0xBE + ) | + 0xB7 ( + 0x80 .. 0x86 | + 0x88 .. 0x8E | + 0x90 .. 0x96 | + 0x98 .. 0x9E + ) | + 0xB8 ( + 0xAF + ) + ) | + 0xE3 ( + 0x80 ( + 0x85 .. 0x86 | + 0xB1 .. 0xB5 | + 0xBB .. 0xBC + ) | + 0x81 ( + 0x81 .. 0xBF + ) | + 0x82 ( + 0x80 .. 0x96 | + 0x9D .. 0x9F | + 0xA1 .. 0xBF + ) | + 0x83 ( + 0x80 .. 0xBA | + 0xBC .. 0xBF + ) | + 0x84 ( + 0x85 .. 0xAF | + 0xB1 .. 0xBF + ) | + 0x85 ( + 0x80 .. 0xBF + ) | + 0x86 ( + 0x80 .. 0x8E | + 0xA0 .. 0xBA + ) | + 0x87 ( + 0xB0 .. 0xBF + ) | + 0x90 ( + 0x80 + ) + ) | + 0xE4 ( + 0xB6 ( + 0xB5 + ) | + 0xB8 ( + 0x80 + ) + ) | + 0xE9 ( + 0xBF ( + 0xAF + ) + ) | + 0xEA ( + 0x80 .. 0x91 ( + 0x80 .. 0xBF + ) | + 0x92 ( + 0x80 .. 0x8C + ) | + 0x93 ( + 0x90 .. 0xBD + ) | + 0x94 .. 0x97 ( + 0x80 .. 0xBF + ) | + 0x98 ( + 0x80 .. 0x8C | + 0x90 .. 0x9F | + 0xAA .. 0xAB + ) | + 0x99 ( + 0x80 .. 0xAE | + 0xBF + ) | + 0x9A ( + 0x80 .. 0x9D | + 0xA0 .. 0xBF + ) | + 0x9B ( + 0x80 .. 0xA5 + ) | + 0x9C ( + 0x97 .. 0x9F | + 0xA2 .. 0xBF + ) | + 0x9D ( + 0x80 .. 0xBF + ) | + 0x9E ( + 0x80 .. 0x88 | + 0x8B .. 0xBF + ) | + 0x9F ( + 0x82 .. 0x86 | + 0xB7 .. 0xBF + ) | + 0xA0 ( + 0x80 .. 0x81 | + 0x83 .. 0x85 | + 0x87 .. 0x8A | + 0x8C .. 0xA2 + ) | + 0xA1 ( + 0x80 .. 0xB3 + ) | + 0xA2 ( + 0x82 .. 0xB3 + ) | + 0xA3 ( + 0xB2 .. 0xB7 | + 0xBB | + 0xBD .. 0xBE + ) | + 0xA4 ( + 0x8A .. 0xA5 | + 0xB0 .. 0xBF + ) | + 0xA5 ( + 0x80 .. 0x86 | + 0xA0 .. 0xBC + ) | + 0xA6 ( + 0x84 .. 0xB2 + ) | + 0xA7 ( + 0x8F | + 0xA0 .. 0xA4 | + 0xA6 .. 0xAF | + 0xBA .. 0xBE + ) | + 0xA8 ( + 0x80 .. 0xA8 + ) | + 0xA9 ( + 0x80 .. 0x82 | + 0x84 .. 0x8B | + 0xA0 .. 0xB6 | + 0xBA | + 0xBE .. 0xBF + ) | + 0xAA ( + 0x80 .. 0xAF | + 0xB1 | + 0xB5 .. 0xB6 | + 0xB9 .. 0xBD + ) | + 0xAB ( + 0x80 | + 0x82 | + 0x9B .. 0x9D | + 0xA0 .. 0xAA | + 0xB2 .. 0xB4 + ) | + 0xAC ( + 0x81 .. 0x86 | + 0x89 .. 0x8E | + 0x91 .. 0x96 | + 0xA0 .. 0xA6 | + 0xA8 .. 0xAE | + 0xB0 .. 0xBF + ) | + 0xAD ( + 0x80 .. 0x9A | + 0x9C .. 0xA7 | + 0xB0 .. 0xBF + ) | + 0xAE ( + 0x80 .. 0xBF + ) | + 0xAF ( + 0x80 .. 0xA2 + ) | + 0xB0 ( + 0x80 + ) + ) | + 0xED ( + 0x9E ( + 0xA3 | + 0xB0 .. 0xBF + ) | + 0x9F ( + 0x80 .. 0x86 | + 0x8B .. 0xBB + ) + ) | + 0xEF ( + 0xA4 .. 0xA8 ( + 0x80 .. 0xBF + ) | + 0xA9 ( + 0x80 .. 0xAD | + 0xB0 .. 0xBF + ) | + 0xAA ( + 0x80 .. 0xBF + ) | + 0xAB ( + 0x80 .. 0x99 + ) | + 0xAC ( + 0x80 .. 0x86 | + 0x93 .. 0x97 | + 0x9D | + 0x9F .. 0xA8 | + 0xAA .. 0xB6 | + 0xB8 .. 0xBC | + 0xBE + ) | + 0xAD ( + 0x80 .. 0x81 | + 0x83 .. 0x84 | + 0x86 .. 0xBF + ) | + 0xAE ( + 0x80 .. 0xB1 + ) | + 0xAF ( + 0x93 .. 0xBF + ) | + 0xB0 .. 0xB3 ( + 0x80 .. 0xBF + ) | + 0xB4 ( + 0x80 .. 0xBD + ) | + 0xB5 ( + 0x90 .. 0xBF + ) | + 0xB6 ( + 0x80 .. 0x8F | + 0x92 .. 0xBF + ) | + 0xB7 ( + 0x80 .. 0x87 | + 0xB0 .. 0xBB + ) | + 0xB9 ( + 0xB0 .. 0xB4 | + 0xB6 .. 0xBF + ) | + 0xBA ( + 0x80 .. 0xBF + ) | + 0xBB ( + 0x80 .. 0xBC + ) | + 0xBC ( + 0xA1 .. 0xBA + ) | + 0xBD ( + 0x81 .. 0x9A | + 0xA6 .. 0xBF + ) | + 0xBE ( + 0x80 .. 0xBE + ) | + 0xBF ( + 0x82 .. 0x87 | + 0x8A .. 0x8F | + 0x92 .. 0x97 | + 0x9A .. 0x9C + ) + ) | + 0xF0 ( + 0x90 ( + 0x80 ( + 0x80 .. 0x8B | + 0x8D .. 0xA6 | + 0xA8 .. 0xBA | + 0xBC .. 0xBD | + 0xBF + ) | + 0x81 ( + 0x80 .. 0x8D | + 0x90 .. 0x9D + ) | + 0x82 ( + 0x80 .. 0xBF + ) | + 0x83 ( + 0x80 .. 0xBA + ) | + 0x8A ( + 0x80 .. 0x9C | + 0xA0 .. 0xBF + ) | + 0x8B ( + 0x80 .. 0x90 + ) | + 0x8C ( + 0x80 .. 0x9F | + 0xAD .. 0xBF + ) | + 0x8D ( + 0x80 | + 0x82 .. 0x89 | + 0x90 .. 0xB5 + ) | + 0x8E ( + 0x80 .. 0x9D | + 0xA0 .. 0xBF + ) | + 0x8F ( + 0x80 .. 0x83 | + 0x88 .. 0x8F + ) | + 0x90 .. 0x91 ( + 0x80 .. 0xBF + ) | + 0x92 ( + 0x80 .. 0x9D | + 0xB0 .. 0xBF + ) | + 0x93 ( + 0x80 .. 0x93 | + 0x98 .. 0xBB + ) | + 0x94 ( + 0x80 .. 0xA7 | + 0xB0 .. 0xBF + ) | + 0x95 ( + 0x80 .. 0xA3 + ) | + 0x98 .. 0x9B ( + 0x80 .. 0xBF + ) | + 0x9C ( + 0x80 .. 0xB6 + ) | + 0x9D ( + 0x80 .. 0x95 | + 0xA0 .. 0xA7 + ) | + 0xA0 ( + 0x80 .. 0x85 | + 0x88 | + 0x8A .. 0xB5 | + 0xB7 .. 0xB8 | + 0xBC | + 0xBF + ) | + 0xA1 ( + 0x80 .. 0x95 | + 0xA0 .. 0xB6 + ) | + 0xA2 ( + 0x80 .. 0x9E + ) | + 0xA3 ( + 0xA0 .. 0xB2 | + 0xB4 .. 0xB5 + ) | + 0xA4 ( + 0x80 .. 0x95 | + 0xA0 .. 0xB9 + ) | + 0xA6 ( + 0x80 .. 0xB7 | + 0xBE .. 0xBF + ) | + 0xA8 ( + 0x80 | + 0x90 .. 0x93 | + 0x95 .. 0x97 | + 0x99 .. 0xB5 + ) | + 0xA9 ( + 0xA0 .. 0xBC + ) | + 0xAA ( + 0x80 .. 0x9C + ) | + 0xAB ( + 0x80 .. 0x87 | + 0x89 .. 0xA4 + ) | + 0xAC ( + 0x80 .. 0xB5 + ) | + 0xAD ( + 0x80 .. 0x95 | + 0xA0 .. 0xB2 + ) | + 0xAE ( + 0x80 .. 0x91 + ) | + 0xB0 ( + 0x80 .. 0xBF + ) | + 0xB1 ( + 0x80 .. 0x88 + ) | + 0xB2 .. 0xB3 ( + 0x80 .. 0xB2 + ) | + 0xB4 ( + 0x80 .. 0xA3 + ) | + 0xBC ( + 0x80 .. 0x9C | + 0xA7 | + 0xB0 .. 0xBF + ) | + 0xBD ( + 0x80 .. 0x85 + ) | + 0xBF ( + 0xA0 .. 0xB6 + ) + ) | + 0x91 ( + 0x80 ( + 0x83 .. 0xB7 + ) | + 0x82 ( + 0x83 .. 0xAF + ) | + 0x83 ( + 0x90 .. 0xA8 + ) | + 0x84 ( + 0x83 .. 0xA6 + ) | + 0x85 ( + 0x84 | + 0x90 .. 0xB2 | + 0xB6 + ) | + 0x86 ( + 0x83 .. 0xB2 + ) | + 0x87 ( + 0x81 .. 0x84 | + 0x9A | + 0x9C + ) | + 0x88 ( + 0x80 .. 0x91 | + 0x93 .. 0xAB + ) | + 0x8A ( + 0x80 .. 0x86 | + 0x88 | + 0x8A .. 0x8D | + 0x8F .. 0x9D | + 0x9F .. 0xA8 | + 0xB0 .. 0xBF + ) | + 0x8B ( + 0x80 .. 0x9E + ) | + 0x8C ( + 0x85 .. 0x8C | + 0x8F .. 0x90 | + 0x93 .. 0xA8 | + 0xAA .. 0xB0 | + 0xB2 .. 0xB3 | + 0xB5 .. 0xB9 | + 0xBD + ) | + 0x8D ( + 0x90 | + 0x9D .. 0xA1 + ) | + 0x90 ( + 0x80 .. 0xB4 + ) | + 0x91 ( + 0x87 .. 0x8A | + 0x9F + ) | + 0x92 ( + 0x80 .. 0xAF + ) | + 0x93 ( + 0x84 .. 0x85 | + 0x87 + ) | + 0x96 ( + 0x80 .. 0xAE + ) | + 0x97 ( + 0x98 .. 0x9B + ) | + 0x98 ( + 0x80 .. 0xAF + ) | + 0x99 ( + 0x84 + ) | + 0x9A ( + 0x80 .. 0xAA | + 0xB8 + ) | + 0x9C ( + 0x80 .. 0x9A + ) | + 0xA0 ( + 0x80 .. 0xAB + ) | + 0xA2 ( + 0xA0 .. 0xBF + ) | + 0xA3 ( + 0x80 .. 0x9F | + 0xBF + ) | + 0xA6 ( + 0xA0 .. 0xA7 | + 0xAA .. 0xBF + ) | + 0xA7 ( + 0x80 .. 0x90 | + 0xA1 | + 0xA3 + ) | + 0xA8 ( + 0x80 | + 0x8B .. 0xB2 | + 0xBA + ) | + 0xA9 ( + 0x90 | + 0x9C .. 0xBF + ) | + 0xAA ( + 0x80 .. 0x89 | + 0x9D + ) | + 0xAB ( + 0x80 .. 0xB8 + ) | + 0xB0 ( + 0x80 .. 0x88 | + 0x8A .. 0xAE + ) | + 0xB1 ( + 0x80 | + 0xB2 .. 0xBF + ) | + 0xB2 ( + 0x80 .. 0x8F + ) | + 0xB4 ( + 0x80 .. 0x86 | + 0x88 .. 0x89 | + 0x8B .. 0xB0 + ) | + 0xB5 ( + 0x86 | + 0xA0 .. 0xA5 | + 0xA7 .. 0xA8 | + 0xAA .. 0xBF + ) | + 0xB6 ( + 0x80 .. 0x89 | + 0x98 + ) | + 0xBB ( + 0xA0 .. 0xB2 + ) + ) | + 0x92 ( + 0x80 .. 0x8D ( + 0x80 .. 0xBF + ) | + 0x8E ( + 0x80 .. 0x99 + ) | + 0x92 .. 0x94 ( + 0x80 .. 0xBF + ) | + 0x95 ( + 0x80 .. 0x83 + ) + ) | + 0x93 ( + 0x80 .. 0x8F ( + 0x80 .. 0xBF + ) | + 0x90 ( + 0x80 .. 0xAE + ) + ) | + 0x94 ( + 0x90 .. 0x98 ( + 0x80 .. 0xBF + ) | + 0x99 ( + 0x80 .. 0x86 + ) + ) | + 0x96 ( + 0xA0 .. 0xA7 ( + 0x80 .. 0xBF + ) | + 0xA8 ( + 0x80 .. 0xB8 + ) | + 0xA9 ( + 0x80 .. 0x9E + ) | + 0xAB ( + 0x90 .. 0xAD + ) | + 0xAC ( + 0x80 .. 0xAF + ) | + 0xAD ( + 0x80 .. 0x83 | + 0xA3 .. 0xB7 | + 0xBD .. 0xBF + ) | + 0xAE ( + 0x80 .. 0x8F + ) | + 0xB9 ( + 0x80 .. 0xBF + ) | + 0xBC ( + 0x80 .. 0xBF + ) | + 0xBD ( + 0x80 .. 0x8A | + 0x90 + ) | + 0xBE ( + 0x93 .. 0x9F + ) | + 0xBF ( + 0xA0 .. 0xA1 | + 0xA3 + ) + ) | + 0x97 ( + 0x80 ( + 0x80 + ) + ) | + 0x98 ( + 0x9F ( + 0xB7 + ) | + 0xA0 .. 0xAA ( + 0x80 .. 0xBF + ) | + 0xAB ( + 0x80 .. 0xB2 + ) + ) | + 0x9B ( + 0x80 .. 0x83 ( + 0x80 .. 0xBF + ) | + 0x84 ( + 0x80 .. 0x9E + ) | + 0x85 ( + 0x90 .. 0x92 | + 0xA4 .. 0xA7 | + 0xB0 .. 0xBF + ) | + 0x86 .. 0x8A ( + 0x80 .. 0xBF + ) | + 0x8B ( + 0x80 .. 0xBB + ) | + 0xB0 ( + 0x80 .. 0xBF + ) | + 0xB1 ( + 0x80 .. 0xAA | + 0xB0 .. 0xBC + ) | + 0xB2 ( + 0x80 .. 0x88 | + 0x90 .. 0x99 + ) + ) | + 0x9D ( + 0x90 ( + 0x80 .. 0xBF + ) | + 0x91 ( + 0x80 .. 0x94 | + 0x96 .. 0xBF + ) | + 0x92 ( + 0x80 .. 0x9C | + 0x9E .. 0x9F | + 0xA2 | + 0xA5 .. 0xA6 | + 0xA9 .. 0xAC | + 0xAE .. 0xB9 | + 0xBB | + 0xBD .. 0xBF + ) | + 0x93 ( + 0x80 .. 0x83 | + 0x85 .. 0xBF + ) | + 0x94 ( + 0x80 .. 0x85 | + 0x87 .. 0x8A | + 0x8D .. 0x94 | + 0x96 .. 0x9C | + 0x9E .. 0xB9 | + 0xBB .. 0xBE + ) | + 0x95 ( + 0x80 .. 0x84 | + 0x86 | + 0x8A .. 0x90 | + 0x92 .. 0xBF + ) | + 0x96 .. 0x99 ( + 0x80 .. 0xBF + ) | + 0x9A ( + 0x80 .. 0xA5 | + 0xA8 .. 0xBF + ) | + 0x9B ( + 0x80 | + 0x82 .. 0x9A | + 0x9C .. 0xBA | + 0xBC .. 0xBF + ) | + 0x9C ( + 0x80 .. 0x94 | + 0x96 .. 0xB4 | + 0xB6 .. 0xBF + ) | + 0x9D ( + 0x80 .. 0x8E | + 0x90 .. 0xAE | + 0xB0 .. 0xBF + ) | + 0x9E ( + 0x80 .. 0x88 | + 0x8A .. 0xA8 | + 0xAA .. 0xBF + ) | + 0x9F ( + 0x80 .. 0x82 | + 0x84 .. 0x8B + ) + ) | + 0x9E ( + 0x84 ( + 0x80 .. 0xAC | + 0xB7 .. 0xBD + ) | + 0x85 ( + 0x8E + ) | + 0x8B ( + 0x80 .. 0xAB + ) | + 0xA0 .. 0xA2 ( + 0x80 .. 0xBF + ) | + 0xA3 ( + 0x80 .. 0x84 + ) | + 0xA4 ( + 0x80 .. 0xBF + ) | + 0xA5 ( + 0x80 .. 0x83 | + 0x8B + ) | + 0xB8 ( + 0x80 .. 0x83 | + 0x85 .. 0x9F | + 0xA1 .. 0xA2 | + 0xA4 | + 0xA7 | + 0xA9 .. 0xB2 | + 0xB4 .. 0xB7 | + 0xB9 | + 0xBB + ) | + 0xB9 ( + 0x82 | + 0x87 | + 0x89 | + 0x8B | + 0x8D .. 0x8F | + 0x91 .. 0x92 | + 0x94 | + 0x97 | + 0x99 | + 0x9B | + 0x9D | + 0x9F | + 0xA1 .. 0xA2 | + 0xA4 | + 0xA7 .. 0xAA | + 0xAC .. 0xB2 | + 0xB4 .. 0xB7 | + 0xB9 .. 0xBC | + 0xBE + ) | + 0xBA ( + 0x80 .. 0x89 | + 0x8B .. 0x9B | + 0xA1 .. 0xA3 | + 0xA5 .. 0xA9 | + 0xAB .. 0xBB + ) + ) | + 0xA0 ( + 0x80 ( + 0x80 + ) + ) | + 0xAA ( + 0x9B ( + 0x96 + ) | + 0x9C ( + 0x80 + ) + ) | + 0xAB ( + 0x9C ( + 0xB4 + ) | + 0x9D ( + 0x80 + ) | + 0xA0 ( + 0x9D | + 0xA0 + ) + ) | + 0xAC ( + 0xBA ( + 0xA1 | + 0xB0 + ) + ) | + 0xAE ( + 0xAF ( + 0xA0 + ) + ) | + 0xAF ( + 0xA0 .. 0xA7 ( + 0x80 .. 0xBF + ) | + 0xA8 ( + 0x80 .. 0x9D + ) + ) + ) +/ +rl unicode_digit / + 0x30 .. 0x39 | + 0xD9 ( + 0xA0 .. 0xA9 + ) | + 0xDB ( + 0xB0 .. 0xB9 + ) | + 0xDF ( + 0x80 .. 0x89 + ) | + 0xE0 ( + 0xA5 ( + 0xA6 .. 0xAF + ) | + 0xA7 ( + 0xA6 .. 0xAF + ) | + 0xA9 ( + 0xA6 .. 0xAF + ) | + 0xAB ( + 0xA6 .. 0xAF + ) | + 0xAD ( + 0xA6 .. 0xAF + ) | + 0xAF ( + 0xA6 .. 0xAF + ) | + 0xB1 ( + 0xA6 .. 0xAF + ) | + 0xB3 ( + 0xA6 .. 0xAF + ) | + 0xB5 ( + 0xA6 .. 0xAF + ) | + 0xB7 ( + 0xA6 .. 0xAF + ) | + 0xB9 ( + 0x90 .. 0x99 + ) | + 0xBB ( + 0x90 .. 0x99 + ) | + 0xBC ( + 0xA0 .. 0xA9 + ) + ) | + 0xE1 ( + 0x81 ( + 0x80 .. 0x89 + ) | + 0x82 ( + 0x90 .. 0x99 + ) | + 0x9F ( + 0xA0 .. 0xA9 + ) | + 0xA0 ( + 0x90 .. 0x99 + ) | + 0xA5 ( + 0x86 .. 0x8F + ) | + 0xA7 ( + 0x90 .. 0x99 + ) | + 0xAA ( + 0x80 .. 0x89 | + 0x90 .. 0x99 + ) | + 0xAD ( + 0x90 .. 0x99 + ) | + 0xAE ( + 0xB0 .. 0xB9 + ) | + 0xB1 ( + 0x80 .. 0x89 | + 0x90 .. 0x99 + ) + ) | + 0xEA ( + 0x98 ( + 0xA0 .. 0xA9 + ) | + 0xA3 ( + 0x90 .. 0x99 + ) | + 0xA4 ( + 0x80 .. 0x89 + ) | + 0xA7 ( + 0x90 .. 0x99 | + 0xB0 .. 0xB9 + ) | + 0xA9 ( + 0x90 .. 0x99 + ) | + 0xAF ( + 0xB0 .. 0xB9 + ) + ) | + 0xEF ( + 0xBC ( + 0x90 .. 0x99 + ) + ) | + 0xF0 ( + 0x90 ( + 0x92 ( + 0xA0 .. 0xA9 + ) | + 0xB4 ( + 0xB0 .. 0xB9 + ) + ) | + 0x91 ( + 0x81 ( + 0xA6 .. 0xAF + ) | + 0x83 ( + 0xB0 .. 0xB9 + ) | + 0x84 ( + 0xB6 .. 0xBF + ) | + 0x87 ( + 0x90 .. 0x99 + ) | + 0x8B ( + 0xB0 .. 0xB9 + ) | + 0x91 ( + 0x90 .. 0x99 + ) | + 0x93 ( + 0x90 .. 0x99 + ) | + 0x99 ( + 0x90 .. 0x99 + ) | + 0x9B ( + 0x80 .. 0x89 + ) | + 0x9C ( + 0xB0 .. 0xB9 + ) | + 0xA3 ( + 0xA0 .. 0xA9 + ) | + 0xB1 ( + 0x90 .. 0x99 + ) | + 0xB5 ( + 0x90 .. 0x99 + ) | + 0xB6 ( + 0xA0 .. 0xA9 + ) + ) | + 0x96 ( + 0xA9 ( + 0xA0 .. 0xA9 + ) | + 0xAD ( + 0x90 .. 0x99 + ) + ) | + 0x9D ( + 0x9F ( + 0x8E .. 0xBF + ) + ) | + 0x9E ( + 0x85 ( + 0x80 .. 0x89 + ) | + 0x8B ( + 0xB0 .. 0xB9 + ) | + 0xA5 ( + 0x90 .. 0x99 + ) + ) + ) +/ |