/* Generated by re2swift */
// re2swift $INPUT -o $OUTPUT -i
// Test that re2c is able to lex Swift code with braces and backticks.

func lex(_ yyinput: UnsafeBufferPointer<UInt8>) -> Int {
  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 0
      case 2:
        yych = yyinput[yycursor]
        switch yych {
          case 0x30...0x39:
            yycursor += 1
            yystate = 2
            continue yyl
          default:
            yystate = 3
            continue yyl
        }
      case 3: 
      let `class` = 1234
      if (`class`) == 1234 {
        return `class`
      }

      default: fatalError("internal lexer error")
    }
  }

}

@main struct Program {
  static func main() {
    let test: StaticString = "1234\0"
    test.withUTF8Buffer {
      assert(lex($0) == 1234)
    }
  }
}
