File: 01_basic.swift

package info (click to toggle)
re2c 4.4-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 51,512 kB
  • sloc: cpp: 34,160; ml: 8,494; sh: 5,311; makefile: 1,014; haskell: 611; python: 431; ansic: 234; javascript: 113
file content (41 lines) | stat: -rw-r--r-- 856 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
/* Generated by re2swift */
// re2swift $INPUT -o $OUTPUT -i

func lex(_ yyinput: UnsafePointer<UInt8>) -> Bool {
  var yycursor = 0
  
  var yych: UInt8 = 0
  var yystate: UInt = 0
  yyl: while true {
    switch yystate {
      case 0:
        yych = yyinput[yycursor]
        yycursor += 1
        switch yych {
          case 0x31...0x39:
            yystate = 2
            continue yyl
          default:
            yystate = 1
            continue yyl
        }
      case 1: return false
      case 2:
        yych = yyinput[yycursor]
        switch yych {
          case 0x30...0x39:
            yycursor += 1
            yystate = 2
            continue yyl
          default:
            yystate = 3
            continue yyl
        }
      case 3: return true
      default: fatalError("internal lexer error")
    }
  }

}

assert(lex("1234"))