| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369 |
- // Code generated by [/home/jnml/.cache/go-build/8c/8caee5a3e40c8f95ce279e06648579171345a0e2087ad04b75718db6cfa4a945-d/generator -lexstring mlToken -pkg tk9_0 <...>], DO NOT EDIT.
- package tk9_0
- // mlToken recognizes longest ASCII lexemes. Lower IDs take precedence on same length.
- //
- // id 0: ([^$]|\\\$)*
- // id 1: \$([^$]|\\\$)*[^\\]\$
- // id 2: \$\$([^$]|\\\$)*[^\\]\$\$
- //
- // ID == -1 is returned when no lexeme was recognized.
- func mlToken(s string) (id, length int) {
- const endOfText = 0x110000
- var pos, pos0, width, width1 int
- id = -1
- var r, r1 rune
- _ = pos0
- _ = r
- _ = r1
- _ = width1
- step := func(pos int) (r rune, n int) {
- if pos < len(s) {
- return rune(s[pos]), 1
- }
- return endOfText, 0
- }
- move := func() {
- pos += width
- if r, width = r1, width1; r != endOfText {
- r1, width1 = step(pos + width)
- }
- }
- accept := func(x rune) bool {
- if r == x {
- move()
- return true
- }
- return false
- }
- _ = accept
- accept2 := func(x rune) bool {
- if r <= x {
- move()
- return true
- }
- return false
- }
- _ = accept2
- r, r1 = endOfText, endOfText
- width, width1 = 0, 0
- r, width = step(pos)
- if r != endOfText {
- r1, width1 = step(pos + width)
- }
- id, length = 0, pos
- if accept('$') {
- goto l8
- }
- if accept('\\') {
- goto l86
- }
- if accept2('#') {
- goto l100
- }
- if r < '%' {
- goto l5out
- }
- if accept2('\U0010ffff') {
- goto l100
- }
- l5out:
- return id, length
- l8:
- if accept('$') {
- goto l15
- }
- if accept('\\') {
- goto l59
- }
- if accept2('#') {
- goto l79
- }
- if r < '%' {
- goto l12out
- }
- if accept2('[') {
- goto l79
- }
- if r < ']' {
- goto l12out
- }
- if accept2('\U0010ffff') {
- goto l79
- }
- l12out:
- return id, length
- l15:
- if accept('$') {
- goto l22
- }
- if accept('\\') {
- goto l31
- }
- if accept2('#') {
- goto l52
- }
- if r < '%' {
- goto l19out
- }
- if accept2('[') {
- goto l52
- }
- if r < ']' {
- goto l19out
- }
- if accept2('\U0010ffff') {
- goto l52
- }
- l19out:
- return id, length
- l22:
- id, length = 1, pos
- if accept('$') {
- goto l26
- }
- return id, length
- l26:
- if accept('$') {
- goto l29
- }
- return id, length
- l29:
- id, length = 2, pos
- return id, length
- l31:
- if accept('$') {
- goto l38
- }
- if accept('\\') {
- goto l31
- }
- if accept2('#') {
- goto l52
- }
- if r < '%' {
- goto l35out
- }
- if accept2('[') {
- goto l52
- }
- if r < ']' {
- goto l35out
- }
- if accept2('\U0010ffff') {
- goto l52
- }
- l35out:
- return id, length
- l38:
- if accept('$') {
- goto l45
- }
- if accept('\\') {
- goto l31
- }
- if accept2('#') {
- goto l52
- }
- if r < '%' {
- goto l42out
- }
- if accept2('[') {
- goto l52
- }
- if r < ']' {
- goto l42out
- }
- if accept2('\U0010ffff') {
- goto l52
- }
- l42out:
- return id, length
- l45:
- if accept('$') {
- goto l48
- }
- return id, length
- l48:
- id, length = 2, pos
- if accept('$') {
- goto l29
- }
- return id, length
- l52:
- if accept('$') {
- goto l45
- }
- if accept('\\') {
- goto l31
- }
- if accept2('#') {
- goto l52
- }
- if r < '%' {
- goto l56out
- }
- if accept2('[') {
- goto l52
- }
- if r < ']' {
- goto l56out
- }
- if accept2('\U0010ffff') {
- goto l52
- }
- l56out:
- return id, length
- l59:
- if accept('$') {
- goto l66
- }
- if accept('\\') {
- goto l59
- }
- if accept2('#') {
- goto l79
- }
- if r < '%' {
- goto l63out
- }
- if accept2('[') {
- goto l79
- }
- if r < ']' {
- goto l63out
- }
- if accept2('\U0010ffff') {
- goto l79
- }
- l63out:
- return id, length
- l66:
- if accept('$') {
- goto l73
- }
- if accept('\\') {
- goto l59
- }
- if accept2('#') {
- goto l79
- }
- if r < '%' {
- goto l70out
- }
- if accept2('[') {
- goto l79
- }
- if r < ']' {
- goto l70out
- }
- if accept2('\U0010ffff') {
- goto l79
- }
- l70out:
- return id, length
- l73:
- id, length = 1, pos
- if accept('$') {
- goto l77
- }
- return id, length
- l77:
- id, length = 1, pos
- return id, length
- l79:
- if accept('$') {
- goto l73
- }
- if accept('\\') {
- goto l59
- }
- if accept2('#') {
- goto l79
- }
- if r < '%' {
- goto l83out
- }
- if accept2('[') {
- goto l79
- }
- if r < ']' {
- goto l83out
- }
- if accept2('\U0010ffff') {
- goto l79
- }
- l83out:
- return id, length
- l86:
- id, length = 0, pos
- if accept('$') {
- goto l94
- }
- if accept('\\') {
- goto l86
- }
- if accept2('#') {
- goto l100
- }
- if r < '%' {
- goto l91out
- }
- if accept2('\U0010ffff') {
- goto l100
- }
- l91out:
- return id, length
- l94:
- id, length = 0, pos
- if accept('\\') {
- goto l86
- }
- if accept2('#') {
- goto l100
- }
- if r < '%' {
- goto l97out
- }
- if accept2('\U0010ffff') {
- goto l100
- }
- l97out:
- return id, length
- l100:
- id, length = 0, pos
- if accept('\\') {
- goto l86
- }
- if accept2('#') {
- goto l100
- }
- if r < '%' {
- goto l103out
- }
- if accept2('\U0010ffff') {
- goto l100
- }
- l103out:
- return id, length
- id, length = 0, pos
- if accept('$') {
- goto l8
- }
- if accept('\\') {
- goto l86
- }
- if accept2('#') {
- goto l100
- }
- if r < '%' {
- goto l111out
- }
- if accept2('\U0010ffff') {
- goto l100
- }
- l111out:
- return id, length
- }
|