// Code generated by golex. DO NOT EDIT. // Copyright (c) 2011 CZ.NIC z.s.p.o. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // blame: jnml, labs.nic.cz package main import ( "bufio" "fmt" "go/token" "io" "os" "unicode" "github.com/cznic/golex/lex" ) // Allocate Character classes anywhere in [0x80, 0xFF]. const ( classUnicodeLeter = iota + 0x80 classUnicodeDigit classOther ) var sc int const ( INITIAL = iota PHP STRING STRING_VAR STRING_VAR_INDEX STRING_VAR_NAME PROPERTY ) type lexer struct { *lex.Lexer } var stateStack = []int{PHP} func pushState(state int) { sc = state stateStack = append(stateStack, state) fmt.Printf("PUSH STATE; CURRENT STATE: %d\n", state) } func popState() { len := len(stateStack) if len <= 1 { return } sc = stateStack[len-2] stateStack = stateStack[:len-1] fmt.Printf("POP STATE; CURRENT STATE: %d\n", sc) } func begin(state int) { sc = state } func rune2Class(r rune) int { if r >= 0 && r < 0x80 { // Keep ASCII as it is. return int(r) } if unicode.IsLetter(r) { return classUnicodeLeter } if unicode.IsDigit(r) { return classUnicodeDigit } return classOther } func newLexer(src io.Reader, dst io.Writer, fName string) *lexer { file := token.NewFileSet().AddFile(fName, -1, 1<<31-1) lx, err := lex.New(file, bufio.NewReader(src), lex.RuneClass(rune2Class)) if err != nil { panic(err) } return &lexer{lx} } type yySymType struct{} func (l *lexer) unget(r rune) []byte { l.Unget(l.Lookahead()) chars := l.Token() lastChar := chars[len(chars)-1] if lastChar.Rune != r { return l.TokenBytes(nil) } l.Unget(lastChar) buf := l.TokenBytes(nil) buf = buf[:len(buf)-1] return buf } func (l *lexer) ungetN(n int) []byte { l.Unget(l.Lookahead()) chars := l.Token() for i := 1; i <= n; i++ { char := chars[len(chars)-i] l.Unget(char) } buf := l.TokenBytes(nil) buf = buf[:len(buf)-n] return buf } func (l *lexer) Lex() int { // Lex(lval *yySymType) c := l.Enter() yystate0: yyrule := -1 _ = yyrule c = l.Rule0() // ([\$]{NCH})* switch yyt := sc; yyt { default: panic(fmt.Errorf(`invalid start condition %d`, yyt)) case 0: // start condition: INITIAL goto yystart1 case 1: // start condition: PHP goto yystart11 case 2: // start condition: STRING goto yystart460 case 3: // start condition: STRING_VAR goto yystart467 case 4: // start condition: STRING_VAR_INDEX goto yystart477 case 5: // start condition: STRING_VAR_NAME goto yystart489 case 6: // start condition: PROPERTY goto yystart494 } goto yystate0 // silence unused label error goto yyAction // silence unused label error yyAction: switch yyrule { case 1: goto yyrule1 case 2: goto yyrule2 case 3: goto yyrule3 case 4: goto yyrule4 case 5: goto yyrule5 case 6: goto yyrule6 case 7: goto yyrule7 case 8: goto yyrule8 case 9: goto yyrule9 case 10: goto yyrule10 case 11: goto yyrule11 case 12: goto yyrule12 case 13: goto yyrule13 case 14: goto yyrule14 case 15: goto yyrule15 case 16: goto yyrule16 case 17: goto yyrule17 case 18: goto yyrule18 case 19: goto yyrule19 case 20: goto yyrule20 case 21: goto yyrule21 case 22: goto yyrule22 case 23: goto yyrule23 case 24: goto yyrule24 case 25: goto yyrule25 case 26: goto yyrule26 case 27: goto yyrule27 case 28: goto yyrule28 case 29: goto yyrule29 case 30: goto yyrule30 case 31: goto yyrule31 case 32: goto yyrule32 case 33: goto yyrule33 case 34: goto yyrule34 case 35: goto yyrule35 case 36: goto yyrule36 case 37: goto yyrule37 case 38: goto yyrule38 case 39: goto yyrule39 case 40: goto yyrule40 case 41: goto yyrule41 case 42: goto yyrule42 case 43: goto yyrule43 case 44: goto yyrule44 case 45: goto yyrule45 case 46: goto yyrule46 case 47: goto yyrule47 case 48: goto yyrule48 case 49: goto yyrule49 case 50: goto yyrule50 case 51: goto yyrule51 case 52: goto yyrule52 case 53: goto yyrule53 case 54: goto yyrule54 case 55: goto yyrule55 case 56: goto yyrule56 case 57: goto yyrule57 case 58: goto yyrule58 case 59: goto yyrule59 case 60: goto yyrule60 case 61: goto yyrule61 case 62: goto yyrule62 case 63: goto yyrule63 case 64: goto yyrule64 case 65: goto yyrule65 case 66: goto yyrule66 case 67: goto yyrule67 case 68: goto yyrule68 case 69: goto yyrule69 case 70: goto yyrule70 case 71: goto yyrule71 case 72: goto yyrule72 case 73: goto yyrule73 case 74: goto yyrule74 case 75: goto yyrule75 case 76: goto yyrule76 case 77: goto yyrule77 case 78: goto yyrule78 case 79: goto yyrule79 case 80: goto yyrule80 case 81: goto yyrule81 case 82: goto yyrule82 case 83: goto yyrule83 case 84: goto yyrule84 case 85: goto yyrule85 case 86: goto yyrule86 case 87: goto yyrule87 case 88: goto yyrule88 case 89: goto yyrule89 case 90: goto yyrule90 case 91: goto yyrule91 case 92: goto yyrule92 case 93: goto yyrule93 case 94: goto yyrule94 case 95: goto yyrule95 case 96: goto yyrule96 case 97: goto yyrule97 case 98: goto yyrule98 case 99: goto yyrule99 case 100: goto yyrule100 case 101: goto yyrule101 case 102: goto yyrule102 case 103: goto yyrule103 case 104: goto yyrule104 case 105: goto yyrule105 case 106: goto yyrule106 case 107: goto yyrule107 case 108: goto yyrule108 case 109: goto yyrule109 case 110: goto yyrule110 case 111: goto yyrule111 case 112: goto yyrule112 case 113: goto yyrule113 case 114: goto yyrule114 case 115: goto yyrule115 case 116: goto yyrule116 case 117: goto yyrule117 case 118: goto yyrule118 case 119: goto yyrule119 case 120: goto yyrule120 case 121: goto yyrule121 case 122: goto yyrule122 case 123: goto yyrule123 case 124: goto yyrule124 case 125: goto yyrule125 case 126: goto yyrule126 case 127: goto yyrule127 case 128: goto yyrule128 case 129: goto yyrule129 case 130: goto yyrule130 case 131: goto yyrule131 case 132: goto yyrule132 case 133: goto yyrule133 case 134: goto yyrule134 case 135: goto yyrule135 case 136: goto yyrule136 case 137: goto yyrule137 case 138: goto yyrule138 case 139: goto yyrule139 } goto yystate1 // silence unused label error yystate1: c = l.Next() yystart1: switch { default: goto yyabort case c == '<': goto yystate5 case c == '\n': goto yystate4 case c == '\t' || c == '\r' || c == ' ': goto yystate3 case c >= '\x01' && c <= '\b' || c == '\v' || c == '\f' || c >= '\x0e' && c <= '\x1f' || c >= '!' && c <= ';' || c >= '=' && c <= 'ÿ': goto yystate2 } yystate2: c = l.Next() yyrule = 2 l.Mark() goto yyrule2 yystate3: c = l.Next() yyrule = 1 l.Mark() switch { default: goto yyrule1 case c == '\t' || c == '\n' || c == '\r' || c == ' ': goto yystate4 } yystate4: c = l.Next() yyrule = 1 l.Mark() switch { default: goto yyrule1 case c == '\t' || c == '\n' || c == '\r' || c == ' ': goto yystate4 } yystate5: c = l.Next() yyrule = 2 l.Mark() switch { default: goto yyrule2 case c == '?': goto yystate6 } yystate6: c = l.Next() yyrule = 3 l.Mark() switch { default: goto yyrule3 case c == '=': goto yystate7 case c == 'p': goto yystate8 } yystate7: c = l.Next() yyrule = 4 l.Mark() goto yyrule4 yystate8: c = l.Next() switch { default: goto yyabort case c == 'h': goto yystate9 } yystate9: c = l.Next() switch { default: goto yyabort case c == 'p': goto yystate10 } yystate10: c = l.Next() yyrule = 3 l.Mark() goto yyrule3 goto yystate11 // silence unused label error yystate11: c = l.Next() yystart11: switch { default: goto yyabort case c == '!': goto yystate15 case c == '"': goto yystate18 case c == '#': goto yystate19 case c == '$': goto yystate21 case c == '%': goto yystate23 case c == '&': goto yystate25 case c == '(': goto yystate44 case c == ')' || c == ',' || c == ';' || c == '@' || c == '[' || c == ']' || c == '~': goto yystate102 case c == '*': goto yystate103 case c == '+': goto yystate107 case c == '-': goto yystate110 case c == '.': goto yystate114 case c == '/': goto yystate118 case c == ':': goto yystate121 case c == '<': goto yystate123 case c == '=': goto yystate129 case c == '>': goto yystate133 case c == '?': goto yystate137 case c == '\'': goto yystate28 case c == '\\': goto yystate139 case c == '\n': goto yystate14 case c == '\t' || c == '\r' || c == ' ': goto yystate13 case c == '^': goto yystate140 case c == '_': goto yystate142 case c == 'a': goto yystate203 case c == 'b': goto yystate218 case c == 'c': goto yystate224 case c == 'd': goto yystate261 case c == 'e': goto yystate276 case c == 'f': goto yystate318 case c == 'g': goto yystate331 case c == 'i': goto yystate340 case c == 'n': goto yystate372 case c == 'o': goto yystate383 case c == 'p': goto yystate385 case c == 'r': goto yystate404 case c == 's': goto yystate410 case c == 't': goto yystate421 case c == 'u': goto yystate431 case c == 'v': goto yystate434 case c == 'w': goto yystate437 case c == 'x': goto yystate442 case c == 'y': goto yystate445 case c == '|': goto yystate456 case c == '}': goto yystate459 case c >= '\x01' && c <= '\b' || c == '\v' || c == '\f' || c >= '\x0e' && c <= '\x1f' || c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '`' || c == 'h' || c >= 'j' && c <= 'm' || c == 'q' || c == 'z' || c == '{' || c >= '\u007f' && c <= 'ÿ': goto yystate12 } yystate12: c = l.Next() yyrule = 139 l.Mark() goto yyrule139 yystate13: c = l.Next() yyrule = 5 l.Mark() switch { default: goto yyrule5 case c == '\t' || c == '\n' || c == '\r' || c == ' ': goto yystate14 } yystate14: c = l.Next() yyrule = 5 l.Mark() switch { default: goto yyrule5 case c == '\t' || c == '\n' || c == '\r' || c == ' ': goto yystate14 } yystate15: c = l.Next() yyrule = 110 l.Mark() switch { default: goto yyrule110 case c == '=': goto yystate16 } yystate16: c = l.Next() yyrule = 97 l.Mark() switch { default: goto yyrule97 case c == '=': goto yystate17 } yystate17: c = l.Next() yyrule = 98 l.Mark() goto yyrule98 yystate18: c = l.Next() yyrule = 117 l.Mark() goto yyrule117 yystate19: c = l.Next() yyrule = 139 l.Mark() switch { default: goto yyrule139 case c >= '\x01' && c <= '\t' || c >= '\v' && c <= 'ÿ': goto yystate20 } yystate20: c = l.Next() yyrule = 108 l.Mark() switch { default: goto yyrule108 case c >= '\x01' && c <= '\t' || c >= '\v' && c <= 'ÿ': goto yystate20 } yystate21: c = l.Next() yyrule = 110 l.Mark() switch { default: goto yyrule110 case c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': goto yystate22 } yystate22: c = l.Next() yyrule = 138 l.Mark() switch { default: goto yyrule138 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': goto yystate22 } yystate23: c = l.Next() yyrule = 110 l.Mark() switch { default: goto yyrule110 case c == '=': goto yystate24 } yystate24: c = l.Next() yyrule = 92 l.Mark() goto yyrule92 yystate25: c = l.Next() yyrule = 110 l.Mark() switch { default: goto yyrule110 case c == '&': goto yystate26 case c == '=': goto yystate27 } yystate26: c = l.Next() yyrule = 81 l.Mark() goto yyrule81 yystate27: c = l.Next() yyrule = 83 l.Mark() goto yyrule83 yystate28: c = l.Next() yyrule = 139 l.Mark() switch { default: goto yyrule139 case c == '\'': goto yystate30 case c == '\\': goto yystate31 case c >= '\x01' && c <= '&' || c >= '(' && c <= '[' || c >= ']' && c <= 'ÿ': goto yystate29 } yystate29: c = l.Next() switch { default: goto yyabort case c == '\'': goto yystate30 case c == '\\': goto yystate31 case c >= '\x01' && c <= '&' || c >= '(' && c <= '[' || c >= ']' && c <= 'ÿ': goto yystate29 } yystate30: c = l.Next() yyrule = 109 l.Mark() goto yyrule109 yystate31: c = l.Next() switch { default: goto yyabort case c == '\'': goto yystate38 case c == '\\': goto yystate34 case c >= '\x01' && c <= '&' || c >= '(' && c <= '[' || c >= ']' && c <= 'ÿ': goto yystate32 } yystate32: c = l.Next() switch { default: goto yyabort case c == '\'': goto yystate33 case c == '\\': goto yystate34 case c >= '\x01' && c <= '&' || c >= '(' && c <= '[' || c >= ']' && c <= 'ÿ': goto yystate32 } yystate33: c = l.Next() yyrule = 109 l.Mark() goto yyrule109 yystate34: c = l.Next() switch { default: goto yyabort case c == '\'': goto yystate35 case c == '\\': goto yystate34 case c >= '\x01' && c <= '&' || c >= '(' && c <= '[' || c >= ']' && c <= 'ÿ': goto yystate32 } yystate35: c = l.Next() yyrule = 109 l.Mark() switch { default: goto yyrule109 case c == '\'': goto yystate33 case c == '\\': goto yystate36 } yystate36: c = l.Next() switch { default: goto yyabort case c == '\'': goto yystate37 } yystate37: c = l.Next() switch { default: goto yyabort case c == '\'': goto yystate33 case c == '\\': goto yystate36 } yystate38: c = l.Next() yyrule = 109 l.Mark() switch { default: goto yyrule109 case c == '\'': goto yystate30 case c == '\\': goto yystate42 case c >= '\x01' && c <= '&' || c >= '(' && c <= '[' || c >= ']' && c <= 'ÿ': goto yystate39 } yystate39: c = l.Next() switch { default: goto yyabort case c == '\'': goto yystate40 case c == '\\': goto yystate41 case c >= '\x01' && c <= '&' || c >= '(' && c <= '[' || c >= ']' && c <= 'ÿ': goto yystate39 } yystate40: c = l.Next() yyrule = 116 l.Mark() goto yyrule116 yystate41: c = l.Next() switch { default: goto yyabort case c == '\'': goto yystate39 } yystate42: c = l.Next() switch { default: goto yyabort case c == '\'': goto yystate43 } yystate43: c = l.Next() switch { default: goto yyabort case c == '\'': goto yystate30 case c == '\\': goto yystate42 case c >= '\x01' && c <= '&' || c >= '(' && c <= '[' || c >= ']' && c <= 'ÿ': goto yystate39 } yystate44: c = l.Next() yyrule = 110 l.Mark() switch { default: goto yyrule110 case c == '\t' || c == ' ': goto yystate45 case c == 'a': goto yystate46 case c == 'b': goto yystate52 case c == 'd': goto yystate60 case c == 'f': goto yystate67 case c == 'i': goto yystate71 case c == 'o': goto yystate79 case c == 'r': goto yystate86 case c == 's': goto yystate89 case c == 'u': goto yystate96 } yystate45: c = l.Next() switch { default: goto yyabort case c == '\t' || c == ' ': goto yystate45 case c == 'a': goto yystate46 case c == 'b': goto yystate52 case c == 'd': goto yystate60 case c == 'f': goto yystate67 case c == 'i': goto yystate71 case c == 'o': goto yystate79 case c == 'r': goto yystate86 case c == 's': goto yystate89 case c == 'u': goto yystate96 } yystate46: c = l.Next() switch { default: goto yyabort case c == 'r': goto yystate47 } yystate47: c = l.Next() switch { default: goto yyabort case c == 'r': goto yystate48 } yystate48: c = l.Next() switch { default: goto yyabort case c == 'a': goto yystate49 } yystate49: c = l.Next() switch { default: goto yyabort case c == 'y': goto yystate50 } yystate50: c = l.Next() switch { default: goto yyabort case c == ')': goto yystate51 case c == '\t' || c == ' ': goto yystate50 } yystate51: c = l.Next() yyrule = 67 l.Mark() goto yyrule67 yystate52: c = l.Next() switch { default: goto yyabort case c == 'o': goto yystate53 } yystate53: c = l.Next() switch { default: goto yyabort case c == 'o': goto yystate54 } yystate54: c = l.Next() switch { default: goto yyabort case c == 'l': goto yystate55 } yystate55: c = l.Next() switch { default: goto yyabort case c == ')': goto yystate57 case c == '\t' || c == ' ': goto yystate56 case c == 'e': goto yystate58 } yystate56: c = l.Next() switch { default: goto yyabort case c == ')': goto yystate57 case c == '\t' || c == ' ': goto yystate56 } yystate57: c = l.Next() yyrule = 68 l.Mark() goto yyrule68 yystate58: c = l.Next() switch { default: goto yyabort case c == 'a': goto yystate59 } yystate59: c = l.Next() switch { default: goto yyabort case c == 'n': goto yystate56 } yystate60: c = l.Next() switch { default: goto yyabort case c == 'o': goto yystate61 } yystate61: c = l.Next() switch { default: goto yyabort case c == 'u': goto yystate62 } yystate62: c = l.Next() switch { default: goto yyabort case c == 'b': goto yystate63 } yystate63: c = l.Next() switch { default: goto yyabort case c == 'l': goto yystate64 } yystate64: c = l.Next() switch { default: goto yyabort case c == 'e': goto yystate65 } yystate65: c = l.Next() switch { default: goto yyabort case c == ')': goto yystate66 case c == '\t' || c == ' ': goto yystate65 } yystate66: c = l.Next() yyrule = 69 l.Mark() goto yyrule69 yystate67: c = l.Next() switch { default: goto yyabort case c == 'l': goto yystate68 } yystate68: c = l.Next() switch { default: goto yyabort case c == 'o': goto yystate69 } yystate69: c = l.Next() switch { default: goto yyabort case c == 'a': goto yystate70 } yystate70: c = l.Next() switch { default: goto yyabort case c == 't': goto yystate65 } yystate71: c = l.Next() switch { default: goto yyabort case c == 'n': goto yystate72 } yystate72: c = l.Next() switch { default: goto yyabort case c == 't': goto yystate73 } yystate73: c = l.Next() switch { default: goto yyabort case c == ')': goto yystate75 case c == '\t' || c == ' ': goto yystate74 case c == 'e': goto yystate76 } yystate74: c = l.Next() switch { default: goto yyabort case c == ')': goto yystate75 case c == '\t' || c == ' ': goto yystate74 } yystate75: c = l.Next() yyrule = 70 l.Mark() goto yyrule70 yystate76: c = l.Next() switch { default: goto yyabort case c == 'g': goto yystate77 } yystate77: c = l.Next() switch { default: goto yyabort case c == 'e': goto yystate78 } yystate78: c = l.Next() switch { default: goto yyabort case c == 'r': goto yystate74 } yystate79: c = l.Next() switch { default: goto yyabort case c == 'b': goto yystate80 } yystate80: c = l.Next() switch { default: goto yyabort case c == 'j': goto yystate81 } yystate81: c = l.Next() switch { default: goto yyabort case c == 'e': goto yystate82 } yystate82: c = l.Next() switch { default: goto yyabort case c == 'c': goto yystate83 } yystate83: c = l.Next() switch { default: goto yyabort case c == 't': goto yystate84 } yystate84: c = l.Next() switch { default: goto yyabort case c == ')': goto yystate85 case c == '\t' || c == ' ': goto yystate84 } yystate85: c = l.Next() yyrule = 71 l.Mark() goto yyrule71 yystate86: c = l.Next() switch { default: goto yyabort case c == 'e': goto yystate87 } yystate87: c = l.Next() switch { default: goto yyabort case c == 'a': goto yystate88 } yystate88: c = l.Next() switch { default: goto yyabort case c == 'l': goto yystate65 } yystate89: c = l.Next() switch { default: goto yyabort case c == 't': goto yystate90 } yystate90: c = l.Next() switch { default: goto yyabort case c == 'r': goto yystate91 } yystate91: c = l.Next() switch { default: goto yyabort case c == 'i': goto yystate92 } yystate92: c = l.Next() switch { default: goto yyabort case c == 'n': goto yystate93 } yystate93: c = l.Next() switch { default: goto yyabort case c == 'g': goto yystate94 } yystate94: c = l.Next() switch { default: goto yyabort case c == ')': goto yystate95 case c == '\t' || c == ' ': goto yystate94 } yystate95: c = l.Next() yyrule = 72 l.Mark() goto yyrule72 yystate96: c = l.Next() switch { default: goto yyabort case c == 'n': goto yystate97 } yystate97: c = l.Next() switch { default: goto yyabort case c == 's': goto yystate98 } yystate98: c = l.Next() switch { default: goto yyabort case c == 'e': goto yystate99 } yystate99: c = l.Next() switch { default: goto yyabort case c == 't': goto yystate100 } yystate100: c = l.Next() switch { default: goto yyabort case c == ')': goto yystate101 case c == '\t' || c == ' ': goto yystate100 } yystate101: c = l.Next() yyrule = 73 l.Mark() goto yyrule73 yystate102: c = l.Next() yyrule = 110 l.Mark() goto yyrule110 yystate103: c = l.Next() yyrule = 110 l.Mark() switch { default: goto yyrule110 case c == '*': goto yystate104 case c == '=': goto yystate106 } yystate104: c = l.Next() yyrule = 105 l.Mark() switch { default: goto yyrule105 case c == '=': goto yystate105 } yystate105: c = l.Next() yyrule = 87 l.Mark() goto yyrule87 yystate106: c = l.Next() yyrule = 86 l.Mark() goto yyrule86 yystate107: c = l.Next() yyrule = 110 l.Mark() switch { default: goto yyrule110 case c == '+': goto yystate108 case c == '=': goto yystate109 } yystate108: c = l.Next() yyrule = 94 l.Mark() goto yyrule94 yystate109: c = l.Next() yyrule = 89 l.Mark() goto yyrule89 yystate110: c = l.Next() yyrule = 110 l.Mark() switch { default: goto yyrule110 case c == '-': goto yystate111 case c == '=': goto yystate112 case c == '>': goto yystate113 } yystate111: c = l.Next() yyrule = 93 l.Mark() goto yyrule93 yystate112: c = l.Next() yyrule = 90 l.Mark() goto yyrule90 yystate113: c = l.Next() yyrule = 111 l.Mark() goto yyrule111 yystate114: c = l.Next() yyrule = 110 l.Mark() switch { default: goto yyrule110 case c == '.': goto yystate115 case c == '=': goto yystate117 } yystate115: c = l.Next() switch { default: goto yyabort case c == '.': goto yystate116 } yystate116: c = l.Next() yyrule = 79 l.Mark() goto yyrule79 yystate117: c = l.Next() yyrule = 85 l.Mark() goto yyrule85 yystate118: c = l.Next() yyrule = 110 l.Mark() switch { default: goto yyrule110 case c == '/': goto yystate119 case c == '=': goto yystate120 } yystate119: c = l.Next() switch { default: goto yyabort case c >= '\x01' && c <= '\t' || c >= '\v' && c <= 'ÿ': goto yystate20 } yystate120: c = l.Next() yyrule = 88 l.Mark() goto yyrule88 yystate121: c = l.Next() yyrule = 110 l.Mark() switch { default: goto yyrule110 case c == ':': goto yystate122 } yystate122: c = l.Next() yyrule = 80 l.Mark() goto yyrule80 yystate123: c = l.Next() yyrule = 110 l.Mark() switch { default: goto yyrule110 case c == '<': goto yystate124 case c == '=': goto yystate126 case c == '>': goto yystate128 } yystate124: c = l.Next() yyrule = 106 l.Mark() switch { default: goto yyrule106 case c == '=': goto yystate125 } yystate125: c = l.Next() yyrule = 101 l.Mark() goto yyrule101 yystate126: c = l.Next() yyrule = 104 l.Mark() switch { default: goto yyrule104 case c == '>': goto yystate127 } yystate127: c = l.Next() yyrule = 96 l.Mark() goto yyrule96 yystate128: c = l.Next() yyrule = 97 l.Mark() goto yyrule97 yystate129: c = l.Next() yyrule = 110 l.Mark() switch { default: goto yyrule110 case c == '=': goto yystate130 case c == '>': goto yystate132 } yystate130: c = l.Next() yyrule = 99 l.Mark() switch { default: goto yyrule99 case c == '=': goto yystate131 } yystate131: c = l.Next() yyrule = 100 l.Mark() goto yyrule100 yystate132: c = l.Next() yyrule = 95 l.Mark() goto yyrule95 yystate133: c = l.Next() yyrule = 110 l.Mark() switch { default: goto yyrule110 case c == '=': goto yystate134 case c == '>': goto yystate135 } yystate134: c = l.Next() yyrule = 103 l.Mark() goto yyrule103 yystate135: c = l.Next() yyrule = 107 l.Mark() switch { default: goto yyrule107 case c == '=': goto yystate136 } yystate136: c = l.Next() yyrule = 102 l.Mark() goto yyrule102 yystate137: c = l.Next() yyrule = 110 l.Mark() switch { default: goto yyrule110 case c == '>': goto yystate138 } yystate138: c = l.Next() yyrule = 6 l.Mark() goto yyrule6 yystate139: c = l.Next() yyrule = 78 l.Mark() goto yyrule78 yystate140: c = l.Next() yyrule = 110 l.Mark() switch { default: goto yyrule110 case c == '=': goto yystate141 } yystate141: c = l.Next() yyrule = 91 l.Mark() goto yyrule91 yystate142: c = l.Next() yyrule = 139 l.Mark() switch { default: goto yyrule139 case c == '_': goto yystate143 } yystate143: c = l.Next() switch { default: goto yyabort case c == 'C': goto yystate144 case c == 'D': goto yystate151 case c == 'F': goto yystate156 case c == 'L': goto yystate171 case c == 'M': goto yystate177 case c == 'N': goto yystate185 case c == 'T': goto yystate196 } yystate144: c = l.Next() switch { default: goto yyabort case c == 'L': goto yystate145 } yystate145: c = l.Next() switch { default: goto yyabort case c == 'A': goto yystate146 } yystate146: c = l.Next() switch { default: goto yyabort case c == 'S': goto yystate147 } yystate147: c = l.Next() switch { default: goto yyabort case c == 'S': goto yystate148 } yystate148: c = l.Next() switch { default: goto yyabort case c == '_': goto yystate149 } yystate149: c = l.Next() switch { default: goto yyabort case c == '_': goto yystate150 } yystate150: c = l.Next() yyrule = 59 l.Mark() goto yyrule59 yystate151: c = l.Next() switch { default: goto yyabort case c == 'I': goto yystate152 } yystate152: c = l.Next() switch { default: goto yyabort case c == 'R': goto yystate153 } yystate153: c = l.Next() switch { default: goto yyabort case c == '_': goto yystate154 } yystate154: c = l.Next() switch { default: goto yyabort case c == '_': goto yystate155 } yystate155: c = l.Next() yyrule = 60 l.Mark() goto yyrule60 yystate156: c = l.Next() switch { default: goto yyabort case c == 'I': goto yystate157 case c == 'U': goto yystate162 } yystate157: c = l.Next() switch { default: goto yyabort case c == 'L': goto yystate158 } yystate158: c = l.Next() switch { default: goto yyabort case c == 'E': goto yystate159 } yystate159: c = l.Next() switch { default: goto yyabort case c == '_': goto yystate160 } yystate160: c = l.Next() switch { default: goto yyabort case c == '_': goto yystate161 } yystate161: c = l.Next() yyrule = 61 l.Mark() goto yyrule61 yystate162: c = l.Next() switch { default: goto yyabort case c == 'N': goto yystate163 } yystate163: c = l.Next() switch { default: goto yyabort case c == 'C': goto yystate164 } yystate164: c = l.Next() switch { default: goto yyabort case c == 'T': goto yystate165 } yystate165: c = l.Next() switch { default: goto yyabort case c == 'I': goto yystate166 } yystate166: c = l.Next() switch { default: goto yyabort case c == 'O': goto yystate167 } yystate167: c = l.Next() switch { default: goto yyabort case c == 'N': goto yystate168 } yystate168: c = l.Next() switch { default: goto yyabort case c == '_': goto yystate169 } yystate169: c = l.Next() switch { default: goto yyabort case c == '_': goto yystate170 } yystate170: c = l.Next() yyrule = 62 l.Mark() goto yyrule62 yystate171: c = l.Next() switch { default: goto yyabort case c == 'I': goto yystate172 } yystate172: c = l.Next() switch { default: goto yyabort case c == 'N': goto yystate173 } yystate173: c = l.Next() switch { default: goto yyabort case c == 'E': goto yystate174 } yystate174: c = l.Next() switch { default: goto yyabort case c == '_': goto yystate175 } yystate175: c = l.Next() switch { default: goto yyabort case c == '_': goto yystate176 } yystate176: c = l.Next() yyrule = 63 l.Mark() goto yyrule63 yystate177: c = l.Next() switch { default: goto yyabort case c == 'E': goto yystate178 } yystate178: c = l.Next() switch { default: goto yyabort case c == 'T': goto yystate179 } yystate179: c = l.Next() switch { default: goto yyabort case c == 'H': goto yystate180 } yystate180: c = l.Next() switch { default: goto yyabort case c == 'O': goto yystate181 } yystate181: c = l.Next() switch { default: goto yyabort case c == 'D': goto yystate182 } yystate182: c = l.Next() switch { default: goto yyabort case c == '_': goto yystate183 } yystate183: c = l.Next() switch { default: goto yyabort case c == '_': goto yystate184 } yystate184: c = l.Next() yyrule = 65 l.Mark() goto yyrule65 yystate185: c = l.Next() switch { default: goto yyabort case c == 'A': goto yystate186 } yystate186: c = l.Next() switch { default: goto yyabort case c == 'M': goto yystate187 } yystate187: c = l.Next() switch { default: goto yyabort case c == 'E': goto yystate188 } yystate188: c = l.Next() switch { default: goto yyabort case c == 'S': goto yystate189 } yystate189: c = l.Next() switch { default: goto yyabort case c == 'P': goto yystate190 } yystate190: c = l.Next() switch { default: goto yyabort case c == 'A': goto yystate191 } yystate191: c = l.Next() switch { default: goto yyabort case c == 'C': goto yystate192 } yystate192: c = l.Next() switch { default: goto yyabort case c == 'E': goto yystate193 } yystate193: c = l.Next() switch { default: goto yyabort case c == '_': goto yystate194 } yystate194: c = l.Next() switch { default: goto yyabort case c == '_': goto yystate195 } yystate195: c = l.Next() yyrule = 64 l.Mark() goto yyrule64 yystate196: c = l.Next() switch { default: goto yyabort case c == 'R': goto yystate197 } yystate197: c = l.Next() switch { default: goto yyabort case c == 'A': goto yystate198 } yystate198: c = l.Next() switch { default: goto yyabort case c == 'I': goto yystate199 } yystate199: c = l.Next() switch { default: goto yyabort case c == 'T': goto yystate200 } yystate200: c = l.Next() switch { default: goto yyabort case c == '_': goto yystate201 } yystate201: c = l.Next() switch { default: goto yyabort case c == '_': goto yystate202 } yystate202: c = l.Next() yyrule = 66 l.Mark() goto yyrule66 yystate203: c = l.Next() yyrule = 139 l.Mark() switch { default: goto yyrule139 case c == 'b': goto yystate204 case c == 'n': goto yystate211 case c == 'r': goto yystate213 case c == 's': goto yystate217 } yystate204: c = l.Next() switch { default: goto yyabort case c == 's': goto yystate205 } yystate205: c = l.Next() switch { default: goto yyabort case c == 't': goto yystate206 } yystate206: c = l.Next() switch { default: goto yyabort case c == 'r': goto yystate207 } yystate207: c = l.Next() switch { default: goto yyabort case c == 'a': goto yystate208 } yystate208: c = l.Next() switch { default: goto yyabort case c == 'c': goto yystate209 } yystate209: c = l.Next() switch { default: goto yyabort case c == 't': goto yystate210 } yystate210: c = l.Next() yyrule = 7 l.Mark() goto yyrule7 yystate211: c = l.Next() switch { default: goto yyabort case c == 'd': goto yystate212 } yystate212: c = l.Next() yyrule = 75 l.Mark() goto yyrule75 yystate213: c = l.Next() switch { default: goto yyabort case c == 'r': goto yystate214 } yystate214: c = l.Next() switch { default: goto yyabort case c == 'a': goto yystate215 } yystate215: c = l.Next() switch { default: goto yyabort case c == 'y': goto yystate216 } yystate216: c = l.Next() yyrule = 8 l.Mark() goto yyrule8 yystate217: c = l.Next() yyrule = 9 l.Mark() goto yyrule9 yystate218: c = l.Next() yyrule = 139 l.Mark() switch { default: goto yyrule139 case c == '"': goto yystate219 case c == 'r': goto yystate220 } yystate219: c = l.Next() yyrule = 117 l.Mark() goto yyrule117 yystate220: c = l.Next() switch { default: goto yyabort case c == 'e': goto yystate221 } yystate221: c = l.Next() switch { default: goto yyabort case c == 'a': goto yystate222 } yystate222: c = l.Next() switch { default: goto yyabort case c == 'k': goto yystate223 } yystate223: c = l.Next() yyrule = 10 l.Mark() goto yyrule10 yystate224: c = l.Next() yyrule = 139 l.Mark() switch { default: goto yyrule139 case c == 'a': goto yystate225 case c == 'f': goto yystate237 case c == 'l': goto yystate245 case c == 'o': goto yystate252 } yystate225: c = l.Next() switch { default: goto yyabort case c == 'l': goto yystate226 case c == 's': goto yystate232 case c == 't': goto yystate234 } yystate226: c = l.Next() switch { default: goto yyabort case c == 'l': goto yystate227 } yystate227: c = l.Next() switch { default: goto yyabort case c == 'a': goto yystate228 } yystate228: c = l.Next() switch { default: goto yyabort case c == 'b': goto yystate229 } yystate229: c = l.Next() switch { default: goto yyabort case c == 'l': goto yystate230 } yystate230: c = l.Next() switch { default: goto yyabort case c == 'e': goto yystate231 } yystate231: c = l.Next() yyrule = 11 l.Mark() goto yyrule11 yystate232: c = l.Next() switch { default: goto yyabort case c == 'e': goto yystate233 } yystate233: c = l.Next() yyrule = 12 l.Mark() goto yyrule12 yystate234: c = l.Next() switch { default: goto yyabort case c == 'c': goto yystate235 } yystate235: c = l.Next() switch { default: goto yyabort case c == 'h': goto yystate236 } yystate236: c = l.Next() yyrule = 13 l.Mark() goto yyrule13 yystate237: c = l.Next() switch { default: goto yyabort case c == 'u': goto yystate238 } yystate238: c = l.Next() switch { default: goto yyabort case c == 'n': goto yystate239 } yystate239: c = l.Next() switch { default: goto yyabort case c == 'c': goto yystate240 } yystate240: c = l.Next() switch { default: goto yyabort case c == 't': goto yystate241 } yystate241: c = l.Next() switch { default: goto yyabort case c == 'i': goto yystate242 } yystate242: c = l.Next() switch { default: goto yyabort case c == 'o': goto yystate243 } yystate243: c = l.Next() switch { default: goto yyabort case c == 'n': goto yystate244 } yystate244: c = l.Next() yyrule = 36 l.Mark() goto yyrule36 yystate245: c = l.Next() switch { default: goto yyabort case c == 'a': goto yystate246 case c == 'o': goto yystate249 } yystate246: c = l.Next() switch { default: goto yyabort case c == 's': goto yystate247 } yystate247: c = l.Next() switch { default: goto yyabort case c == 's': goto yystate248 } yystate248: c = l.Next() yyrule = 14 l.Mark() goto yyrule14 yystate249: c = l.Next() switch { default: goto yyabort case c == 'n': goto yystate250 } yystate250: c = l.Next() switch { default: goto yyabort case c == 'e': goto yystate251 } yystate251: c = l.Next() yyrule = 15 l.Mark() goto yyrule15 yystate252: c = l.Next() switch { default: goto yyabort case c == 'n': goto yystate253 } yystate253: c = l.Next() switch { default: goto yyabort case c == 's': goto yystate254 case c == 't': goto yystate256 } yystate254: c = l.Next() switch { default: goto yyabort case c == 't': goto yystate255 } yystate255: c = l.Next() yyrule = 16 l.Mark() goto yyrule16 yystate256: c = l.Next() switch { default: goto yyabort case c == 'i': goto yystate257 } yystate257: c = l.Next() switch { default: goto yyabort case c == 'n': goto yystate258 } yystate258: c = l.Next() switch { default: goto yyabort case c == 'u': goto yystate259 } yystate259: c = l.Next() switch { default: goto yyabort case c == 'e': goto yystate260 } yystate260: c = l.Next() yyrule = 17 l.Mark() goto yyrule17 yystate261: c = l.Next() yyrule = 139 l.Mark() switch { default: goto yyrule139 case c == 'e': goto yystate262 case c == 'i': goto yystate273 case c == 'o': goto yystate275 } yystate262: c = l.Next() switch { default: goto yyabort case c == 'c': goto yystate263 case c == 'f': goto yystate268 } yystate263: c = l.Next() switch { default: goto yyabort case c == 'l': goto yystate264 } yystate264: c = l.Next() switch { default: goto yyabort case c == 'a': goto yystate265 } yystate265: c = l.Next() switch { default: goto yyabort case c == 'r': goto yystate266 } yystate266: c = l.Next() switch { default: goto yyabort case c == 'e': goto yystate267 } yystate267: c = l.Next() yyrule = 18 l.Mark() goto yyrule18 yystate268: c = l.Next() switch { default: goto yyabort case c == 'a': goto yystate269 } yystate269: c = l.Next() switch { default: goto yyabort case c == 'u': goto yystate270 } yystate270: c = l.Next() switch { default: goto yyabort case c == 'l': goto yystate271 } yystate271: c = l.Next() switch { default: goto yyabort case c == 't': goto yystate272 } yystate272: c = l.Next() yyrule = 19 l.Mark() goto yyrule19 yystate273: c = l.Next() switch { default: goto yyabort case c == 'e': goto yystate274 } yystate274: c = l.Next() yyrule = 30 l.Mark() goto yyrule30 yystate275: c = l.Next() yyrule = 20 l.Mark() goto yyrule20 yystate276: c = l.Next() yyrule = 139 l.Mark() switch { default: goto yyrule139 case c == 'c': goto yystate277 case c == 'l': goto yystate280 case c == 'm': goto yystate285 case c == 'n': goto yystate289 case c == 'x': goto yystate311 } yystate277: c = l.Next() switch { default: goto yyabort case c == 'h': goto yystate278 } yystate278: c = l.Next() switch { default: goto yyabort case c == 'o': goto yystate279 } yystate279: c = l.Next() yyrule = 21 l.Mark() goto yyrule21 yystate280: c = l.Next() switch { default: goto yyabort case c == 's': goto yystate281 } yystate281: c = l.Next() switch { default: goto yyabort case c == 'e': goto yystate282 } yystate282: c = l.Next() yyrule = 22 l.Mark() switch { default: goto yyrule22 case c == 'i': goto yystate283 } yystate283: c = l.Next() switch { default: goto yyabort case c == 'f': goto yystate284 } yystate284: c = l.Next() yyrule = 23 l.Mark() goto yyrule23 yystate285: c = l.Next() switch { default: goto yyabort case c == 'p': goto yystate286 } yystate286: c = l.Next() switch { default: goto yyabort case c == 't': goto yystate287 } yystate287: c = l.Next() switch { default: goto yyabort case c == 'y': goto yystate288 } yystate288: c = l.Next() yyrule = 24 l.Mark() goto yyrule24 yystate289: c = l.Next() switch { default: goto yyabort case c == 'd': goto yystate290 } yystate290: c = l.Next() switch { default: goto yyabort case c == 'f': goto yystate291 case c == 'i': goto yystate298 case c == 's': goto yystate300 case c == 'w': goto yystate306 } yystate291: c = l.Next() switch { default: goto yyabort case c == 'o': goto yystate292 } yystate292: c = l.Next() switch { default: goto yyabort case c == 'r': goto yystate293 } yystate293: c = l.Next() yyrule = 25 l.Mark() switch { default: goto yyrule25 case c == 'e': goto yystate294 } yystate294: c = l.Next() switch { default: goto yyabort case c == 'a': goto yystate295 } yystate295: c = l.Next() switch { default: goto yyabort case c == 'c': goto yystate296 } yystate296: c = l.Next() switch { default: goto yyabort case c == 'h': goto yystate297 } yystate297: c = l.Next() yyrule = 26 l.Mark() goto yyrule26 yystate298: c = l.Next() switch { default: goto yyabort case c == 'f': goto yystate299 } yystate299: c = l.Next() yyrule = 27 l.Mark() goto yyrule27 yystate300: c = l.Next() switch { default: goto yyabort case c == 'w': goto yystate301 } yystate301: c = l.Next() switch { default: goto yyabort case c == 'i': goto yystate302 } yystate302: c = l.Next() switch { default: goto yyabort case c == 't': goto yystate303 } yystate303: c = l.Next() switch { default: goto yyabort case c == 'c': goto yystate304 } yystate304: c = l.Next() switch { default: goto yyabort case c == 'h': goto yystate305 } yystate305: c = l.Next() yyrule = 28 l.Mark() goto yyrule28 yystate306: c = l.Next() switch { default: goto yyabort case c == 'h': goto yystate307 } yystate307: c = l.Next() switch { default: goto yyabort case c == 'i': goto yystate308 } yystate308: c = l.Next() switch { default: goto yyabort case c == 'l': goto yystate309 } yystate309: c = l.Next() switch { default: goto yyabort case c == 'e': goto yystate310 } yystate310: c = l.Next() yyrule = 29 l.Mark() goto yyrule29 yystate311: c = l.Next() switch { default: goto yyabort case c == 'i': goto yystate312 case c == 't': goto yystate313 } yystate312: c = l.Next() switch { default: goto yyabort case c == 't': goto yystate274 } yystate313: c = l.Next() switch { default: goto yyabort case c == 'e': goto yystate314 } yystate314: c = l.Next() switch { default: goto yyabort case c == 'n': goto yystate315 } yystate315: c = l.Next() switch { default: goto yyabort case c == 'd': goto yystate316 } yystate316: c = l.Next() switch { default: goto yyabort case c == 's': goto yystate317 } yystate317: c = l.Next() yyrule = 31 l.Mark() goto yyrule31 yystate318: c = l.Next() yyrule = 139 l.Mark() switch { default: goto yyrule139 case c == 'i': goto yystate319 case c == 'o': goto yystate325 case c == 'u': goto yystate238 } yystate319: c = l.Next() switch { default: goto yyabort case c == 'n': goto yystate320 } yystate320: c = l.Next() switch { default: goto yyabort case c == 'a': goto yystate321 } yystate321: c = l.Next() switch { default: goto yyabort case c == 'l': goto yystate322 } yystate322: c = l.Next() yyrule = 32 l.Mark() switch { default: goto yyrule32 case c == 'l': goto yystate323 } yystate323: c = l.Next() switch { default: goto yyabort case c == 'y': goto yystate324 } yystate324: c = l.Next() yyrule = 33 l.Mark() goto yyrule33 yystate325: c = l.Next() switch { default: goto yyabort case c == 'r': goto yystate326 } yystate326: c = l.Next() yyrule = 34 l.Mark() switch { default: goto yyrule34 case c == 'e': goto yystate327 } yystate327: c = l.Next() switch { default: goto yyabort case c == 'a': goto yystate328 } yystate328: c = l.Next() switch { default: goto yyabort case c == 'c': goto yystate329 } yystate329: c = l.Next() switch { default: goto yyabort case c == 'h': goto yystate330 } yystate330: c = l.Next() yyrule = 35 l.Mark() goto yyrule35 yystate331: c = l.Next() yyrule = 139 l.Mark() switch { default: goto yyrule139 case c == 'l': goto yystate332 case c == 'o': goto yystate337 } yystate332: c = l.Next() switch { default: goto yyabort case c == 'o': goto yystate333 } yystate333: c = l.Next() switch { default: goto yyabort case c == 'b': goto yystate334 } yystate334: c = l.Next() switch { default: goto yyabort case c == 'a': goto yystate335 } yystate335: c = l.Next() switch { default: goto yyabort case c == 'l': goto yystate336 } yystate336: c = l.Next() yyrule = 37 l.Mark() goto yyrule37 yystate337: c = l.Next() switch { default: goto yyabort case c == 't': goto yystate338 } yystate338: c = l.Next() switch { default: goto yyabort case c == 'o': goto yystate339 } yystate339: c = l.Next() yyrule = 38 l.Mark() goto yyrule38 yystate340: c = l.Next() yyrule = 139 l.Mark() switch { default: goto yyrule139 case c == 'f': goto yystate341 case c == 'm': goto yystate342 case c == 'n': goto yystate351 } yystate341: c = l.Next() yyrule = 39 l.Mark() goto yyrule39 yystate342: c = l.Next() switch { default: goto yyabort case c == 'p': goto yystate343 } yystate343: c = l.Next() switch { default: goto yyabort case c == 'l': goto yystate344 } yystate344: c = l.Next() switch { default: goto yyabort case c == 'e': goto yystate345 } yystate345: c = l.Next() switch { default: goto yyabort case c == 'm': goto yystate346 } yystate346: c = l.Next() switch { default: goto yyabort case c == 'e': goto yystate347 } yystate347: c = l.Next() switch { default: goto yyabort case c == 'n': goto yystate348 } yystate348: c = l.Next() switch { default: goto yyabort case c == 't': goto yystate349 } yystate349: c = l.Next() switch { default: goto yyabort case c == 's': goto yystate350 } yystate350: c = l.Next() yyrule = 40 l.Mark() goto yyrule40 yystate351: c = l.Next() switch { default: goto yyabort case c == 's': goto yystate352 case c == 't': goto yystate365 } yystate352: c = l.Next() switch { default: goto yyabort case c == 't': goto yystate353 } yystate353: c = l.Next() switch { default: goto yyabort case c == 'a': goto yystate354 case c == 'e': goto yystate360 } yystate354: c = l.Next() switch { default: goto yyabort case c == 'n': goto yystate355 } yystate355: c = l.Next() switch { default: goto yyabort case c == 'c': goto yystate356 } yystate356: c = l.Next() switch { default: goto yyabort case c == 'e': goto yystate357 } yystate357: c = l.Next() switch { default: goto yyabort case c == 'o': goto yystate358 } yystate358: c = l.Next() switch { default: goto yyabort case c == 'f': goto yystate359 } yystate359: c = l.Next() yyrule = 41 l.Mark() goto yyrule41 yystate360: c = l.Next() switch { default: goto yyabort case c == 'a': goto yystate361 } yystate361: c = l.Next() switch { default: goto yyabort case c == 'd': goto yystate362 } yystate362: c = l.Next() switch { default: goto yyabort case c == 'o': goto yystate363 } yystate363: c = l.Next() switch { default: goto yyabort case c == 'f': goto yystate364 } yystate364: c = l.Next() yyrule = 42 l.Mark() goto yyrule42 yystate365: c = l.Next() switch { default: goto yyabort case c == 'e': goto yystate366 } yystate366: c = l.Next() switch { default: goto yyabort case c == 'r': goto yystate367 } yystate367: c = l.Next() switch { default: goto yyabort case c == 'f': goto yystate368 } yystate368: c = l.Next() switch { default: goto yyabort case c == 'a': goto yystate369 } yystate369: c = l.Next() switch { default: goto yyabort case c == 'c': goto yystate370 } yystate370: c = l.Next() switch { default: goto yyabort case c == 'e': goto yystate371 } yystate371: c = l.Next() yyrule = 43 l.Mark() goto yyrule43 yystate372: c = l.Next() yyrule = 139 l.Mark() switch { default: goto yyrule139 case c == 'a': goto yystate373 case c == 'e': goto yystate381 } yystate373: c = l.Next() switch { default: goto yyabort case c == 'm': goto yystate374 } yystate374: c = l.Next() switch { default: goto yyabort case c == 'e': goto yystate375 } yystate375: c = l.Next() switch { default: goto yyabort case c == 's': goto yystate376 } yystate376: c = l.Next() switch { default: goto yyabort case c == 'p': goto yystate377 } yystate377: c = l.Next() switch { default: goto yyabort case c == 'a': goto yystate378 } yystate378: c = l.Next() switch { default: goto yyabort case c == 'c': goto yystate379 } yystate379: c = l.Next() switch { default: goto yyabort case c == 'e': goto yystate380 } yystate380: c = l.Next() yyrule = 44 l.Mark() goto yyrule44 yystate381: c = l.Next() switch { default: goto yyabort case c == 'w': goto yystate382 } yystate382: c = l.Next() yyrule = 74 l.Mark() goto yyrule74 yystate383: c = l.Next() yyrule = 139 l.Mark() switch { default: goto yyrule139 case c == 'r': goto yystate384 } yystate384: c = l.Next() yyrule = 76 l.Mark() goto yyrule76 yystate385: c = l.Next() yyrule = 139 l.Mark() switch { default: goto yyrule139 case c == 'r': goto yystate386 case c == 'u': goto yystate399 } yystate386: c = l.Next() switch { default: goto yyabort case c == 'i': goto yystate387 case c == 'o': goto yystate392 } yystate387: c = l.Next() switch { default: goto yyabort case c == 'v': goto yystate388 } yystate388: c = l.Next() switch { default: goto yyabort case c == 'a': goto yystate389 } yystate389: c = l.Next() switch { default: goto yyabort case c == 't': goto yystate390 } yystate390: c = l.Next() switch { default: goto yyabort case c == 'e': goto yystate391 } yystate391: c = l.Next() yyrule = 45 l.Mark() goto yyrule45 yystate392: c = l.Next() switch { default: goto yyabort case c == 't': goto yystate393 } yystate393: c = l.Next() switch { default: goto yyabort case c == 'e': goto yystate394 } yystate394: c = l.Next() switch { default: goto yyabort case c == 'c': goto yystate395 } yystate395: c = l.Next() switch { default: goto yyabort case c == 't': goto yystate396 } yystate396: c = l.Next() switch { default: goto yyabort case c == 'e': goto yystate397 } yystate397: c = l.Next() switch { default: goto yyabort case c == 'd': goto yystate398 } yystate398: c = l.Next() yyrule = 47 l.Mark() goto yyrule47 yystate399: c = l.Next() switch { default: goto yyabort case c == 'b': goto yystate400 } yystate400: c = l.Next() switch { default: goto yyabort case c == 'l': goto yystate401 } yystate401: c = l.Next() switch { default: goto yyabort case c == 'i': goto yystate402 } yystate402: c = l.Next() switch { default: goto yyabort case c == 'c': goto yystate403 } yystate403: c = l.Next() yyrule = 46 l.Mark() goto yyrule46 yystate404: c = l.Next() yyrule = 139 l.Mark() switch { default: goto yyrule139 case c == 'e': goto yystate405 } yystate405: c = l.Next() switch { default: goto yyabort case c == 't': goto yystate406 } yystate406: c = l.Next() switch { default: goto yyabort case c == 'u': goto yystate407 } yystate407: c = l.Next() switch { default: goto yyabort case c == 'r': goto yystate408 } yystate408: c = l.Next() switch { default: goto yyabort case c == 'n': goto yystate409 } yystate409: c = l.Next() yyrule = 48 l.Mark() goto yyrule48 yystate410: c = l.Next() yyrule = 139 l.Mark() switch { default: goto yyrule139 case c == 't': goto yystate411 case c == 'w': goto yystate416 } yystate411: c = l.Next() switch { default: goto yyabort case c == 'a': goto yystate412 } yystate412: c = l.Next() switch { default: goto yyabort case c == 't': goto yystate413 } yystate413: c = l.Next() switch { default: goto yyabort case c == 'i': goto yystate414 } yystate414: c = l.Next() switch { default: goto yyabort case c == 'c': goto yystate415 } yystate415: c = l.Next() yyrule = 49 l.Mark() goto yyrule49 yystate416: c = l.Next() switch { default: goto yyabort case c == 'i': goto yystate417 } yystate417: c = l.Next() switch { default: goto yyabort case c == 't': goto yystate418 } yystate418: c = l.Next() switch { default: goto yyabort case c == 'c': goto yystate419 } yystate419: c = l.Next() switch { default: goto yyabort case c == 'h': goto yystate420 } yystate420: c = l.Next() yyrule = 50 l.Mark() goto yyrule50 yystate421: c = l.Next() yyrule = 139 l.Mark() switch { default: goto yyrule139 case c == 'h': goto yystate422 case c == 'r': goto yystate426 } yystate422: c = l.Next() switch { default: goto yyabort case c == 'r': goto yystate423 } yystate423: c = l.Next() switch { default: goto yyabort case c == 'o': goto yystate424 } yystate424: c = l.Next() switch { default: goto yyabort case c == 'w': goto yystate425 } yystate425: c = l.Next() yyrule = 51 l.Mark() goto yyrule51 yystate426: c = l.Next() switch { default: goto yyabort case c == 'a': goto yystate427 case c == 'y': goto yystate430 } yystate427: c = l.Next() switch { default: goto yyabort case c == 'i': goto yystate428 } yystate428: c = l.Next() switch { default: goto yyabort case c == 't': goto yystate429 } yystate429: c = l.Next() yyrule = 52 l.Mark() goto yyrule52 yystate430: c = l.Next() yyrule = 53 l.Mark() goto yyrule53 yystate431: c = l.Next() yyrule = 139 l.Mark() switch { default: goto yyrule139 case c == 's': goto yystate432 } yystate432: c = l.Next() switch { default: goto yyabort case c == 'e': goto yystate433 } yystate433: c = l.Next() yyrule = 54 l.Mark() goto yyrule54 yystate434: c = l.Next() yyrule = 139 l.Mark() switch { default: goto yyrule139 case c == 'a': goto yystate435 } yystate435: c = l.Next() switch { default: goto yyabort case c == 'r': goto yystate436 } yystate436: c = l.Next() yyrule = 55 l.Mark() goto yyrule55 yystate437: c = l.Next() yyrule = 139 l.Mark() switch { default: goto yyrule139 case c == 'h': goto yystate438 } yystate438: c = l.Next() switch { default: goto yyabort case c == 'i': goto yystate439 } yystate439: c = l.Next() switch { default: goto yyabort case c == 'l': goto yystate440 } yystate440: c = l.Next() switch { default: goto yyabort case c == 'e': goto yystate441 } yystate441: c = l.Next() yyrule = 56 l.Mark() goto yyrule56 yystate442: c = l.Next() yyrule = 139 l.Mark() switch { default: goto yyrule139 case c == 'o': goto yystate443 } yystate443: c = l.Next() switch { default: goto yyabort case c == 'r': goto yystate444 } yystate444: c = l.Next() yyrule = 77 l.Mark() goto yyrule77 yystate445: c = l.Next() yyrule = 139 l.Mark() switch { default: goto yyrule139 case c == 'i': goto yystate446 } yystate446: c = l.Next() switch { default: goto yyabort case c == 'e': goto yystate447 } yystate447: c = l.Next() switch { default: goto yyabort case c == 'l': goto yystate448 } yystate448: c = l.Next() switch { default: goto yyabort case c == 'd': goto yystate449 } yystate449: c = l.Next() yyrule = 58 l.Mark() switch { default: goto yyrule58 case c == '\t' || c == '\n' || c == '\r' || c == ' ': goto yystate450 } yystate450: c = l.Next() switch { default: goto yyabort case c == '\t' || c == '\n' || c == '\r' || c == ' ': goto yystate450 case c == 'f': goto yystate451 } yystate451: c = l.Next() switch { default: goto yyabort case c == 'r': goto yystate452 } yystate452: c = l.Next() switch { default: goto yyabort case c == 'o': goto yystate453 } yystate453: c = l.Next() switch { default: goto yyabort case c == 'm': goto yystate454 } yystate454: c = l.Next() switch { default: goto yyabort case c >= '\x01' && c <= '/' || c >= ':' && c <= '@' || c >= '[' && c <= '^' || c == '`' || c >= '{' && c <= '\u007f': goto yystate455 } yystate455: c = l.Next() yyrule = 57 l.Mark() goto yyrule57 yystate456: c = l.Next() yyrule = 110 l.Mark() switch { default: goto yyrule110 case c == '=': goto yystate457 case c == '|': goto yystate458 } yystate457: c = l.Next() yyrule = 84 l.Mark() goto yyrule84 yystate458: c = l.Next() yyrule = 82 l.Mark() goto yyrule82 yystate459: c = l.Next() yyrule = 137 l.Mark() goto yyrule137 goto yystate460 // silence unused label error yystate460: c = l.Next() yystart460: switch { default: goto yyabort case c == '"': goto yystate462 case c == '$': goto yystate463 case c == '{': goto yystate465 case c >= '\x01' && c <= '\t' || c >= '\v' && c <= '!' || c == '#' || c >= '%' && c <= 'z' || c >= '|' && c <= 'ÿ': goto yystate461 } yystate461: c = l.Next() yyrule = 122 l.Mark() goto yyrule122 yystate462: c = l.Next() yyrule = 118 l.Mark() goto yyrule118 yystate463: c = l.Next() yyrule = 121 l.Mark() switch { default: goto yyrule121 case c == '{': goto yystate464 } yystate464: c = l.Next() yyrule = 120 l.Mark() goto yyrule120 yystate465: c = l.Next() yyrule = 122 l.Mark() switch { default: goto yyrule122 case c == '$': goto yystate466 } yystate466: c = l.Next() yyrule = 119 l.Mark() goto yyrule119 goto yystate467 // silence unused label error yystate467: c = l.Next() yystart467: switch { default: goto yyabort case c == '$': goto yystate469 case c == '-': goto yystate471 case c == '[': goto yystate476 case c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': goto yystate474 case c >= '\x01' && c <= '\t' || c >= '\v' && c <= '#' || c >= '%' && c <= ',' || c >= '.' && c <= '@' || c >= '\\' && c <= '^' || c == '`' || c >= '{' && c <= '~': goto yystate468 } yystate468: c = l.Next() yyrule = 127 l.Mark() goto yyrule127 yystate469: c = l.Next() yyrule = 127 l.Mark() switch { default: goto yyrule127 case c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': goto yystate470 } yystate470: c = l.Next() yyrule = 123 l.Mark() switch { default: goto yyrule123 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': goto yystate470 } yystate471: c = l.Next() yyrule = 127 l.Mark() switch { default: goto yyrule127 case c == '>': goto yystate472 } yystate472: c = l.Next() switch { default: goto yyabort case c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': goto yystate473 } yystate473: c = l.Next() yyrule = 124 l.Mark() switch { default: goto yyrule124 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': goto yystate473 } yystate474: c = l.Next() yyrule = 125 l.Mark() switch { default: goto yyrule125 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': goto yystate475 } yystate475: c = l.Next() yyrule = 125 l.Mark() switch { default: goto yyrule125 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': goto yystate475 } yystate476: c = l.Next() yyrule = 126 l.Mark() goto yyrule126 goto yystate477 // silence unused label error yystate477: c = l.Next() yystart477: switch { default: goto yyabort case c == '!' || c == '%' || c == '&' || c >= '(' && c <= '/' || c >= ':' && c <= '@' || c == '[' || c == '^' || c == '|' || c == '~': goto yystate481 case c == '$': goto yystate482 case c == '\n': goto yystate480 case c == '\t' || c == '\r' || c == ' ' || c == '#' || c == '\'' || c == '\\': goto yystate479 case c == ']': goto yystate488 case c >= '0' && c <= '9': goto yystate484 case c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': goto yystate486 case c >= '\x01' && c <= '\b' || c == '\v' || c == '\f' || c >= '\x0e' && c <= '\x1f' || c == '"' || c == '`' || c == '{' || c == '}': goto yystate478 } yystate478: c = l.Next() yyrule = 134 l.Mark() goto yyrule134 yystate479: c = l.Next() yyrule = 132 l.Mark() goto yyrule132 yystate480: c = l.Next() yyrule = 132 l.Mark() goto yyrule132 yystate481: c = l.Next() yyrule = 133 l.Mark() goto yyrule133 yystate482: c = l.Next() yyrule = 133 l.Mark() switch { default: goto yyrule133 case c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': goto yystate483 } yystate483: c = l.Next() yyrule = 129 l.Mark() switch { default: goto yyrule129 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': goto yystate483 } yystate484: c = l.Next() yyrule = 128 l.Mark() switch { default: goto yyrule128 case c >= '0' && c <= '9': goto yystate485 } yystate485: c = l.Next() yyrule = 128 l.Mark() switch { default: goto yyrule128 case c >= '0' && c <= '9': goto yystate485 } yystate486: c = l.Next() yyrule = 130 l.Mark() switch { default: goto yyrule130 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': goto yystate487 } yystate487: c = l.Next() yyrule = 130 l.Mark() switch { default: goto yyrule130 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': goto yystate487 } yystate488: c = l.Next() yyrule = 131 l.Mark() goto yyrule131 goto yystate489 // silence unused label error yystate489: c = l.Next() yystart489: switch { default: goto yyabort case c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': goto yystate491 case c >= '\x01' && c <= '\t' || c >= '\v' && c <= '@' || c >= '[' && c <= '^' || c == '`' || c >= '{' && c <= '~': goto yystate490 } yystate490: c = l.Next() yyrule = 136 l.Mark() goto yyrule136 yystate491: c = l.Next() yyrule = 136 l.Mark() switch { default: goto yyrule136 case c == '[' || c == '}': goto yystate493 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': goto yystate492 } yystate492: c = l.Next() switch { default: goto yyabort case c == '[' || c == '}': goto yystate493 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': goto yystate492 } yystate493: c = l.Next() yyrule = 135 l.Mark() goto yyrule135 goto yystate494 // silence unused label error yystate494: c = l.Next() yystart494: switch { default: goto yyabort case c == '-': goto yystate498 case c == '\n': goto yystate497 case c == '\t' || c == '\r' || c == ' ': goto yystate496 case c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': goto yystate500 case c >= '\x01' && c <= '\b' || c == '\v' || c == '\f' || c >= '\x0e' && c <= '\x1f' || c >= '!' && c <= ',' || c >= '.' && c <= '@' || c >= '[' && c <= '^' || c == '`' || c >= '{' && c <= '~': goto yystate495 } yystate495: c = l.Next() yyrule = 115 l.Mark() goto yyrule115 yystate496: c = l.Next() yyrule = 112 l.Mark() switch { default: goto yyrule112 case c == '\t' || c == '\n' || c == '\r' || c == ' ': goto yystate497 } yystate497: c = l.Next() yyrule = 112 l.Mark() switch { default: goto yyrule112 case c == '\t' || c == '\n' || c == '\r' || c == ' ': goto yystate497 } yystate498: c = l.Next() yyrule = 115 l.Mark() switch { default: goto yyrule115 case c == '>': goto yystate499 } yystate499: c = l.Next() yyrule = 113 l.Mark() goto yyrule113 yystate500: c = l.Next() yyrule = 114 l.Mark() switch { default: goto yyrule114 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': goto yystate501 } yystate501: c = l.Next() yyrule = 114 l.Mark() switch { default: goto yyrule114 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': goto yystate501 } yyrule1: // [ \t\n\r]+ goto yystate0 yyrule2: // . goto yystate0 yyrule3: // \<\?|\<\?php { fmt.Println("T_OPEN_TAG") begin(PHP) goto yystate0 } yyrule4: // \<\?= { fmt.Println("T_OPEN_TAG_WITH_ECHO") begin(PHP) goto yystate0 } yyrule5: // [ \t\n\r]+ { fmt.Println("T_WHITESPACE") goto yystate0 } yyrule6: // \?\> { fmt.Println("T_CLOSE_TAG") begin(INITIAL) goto yystate0 } yyrule7: // abstract { fmt.Println("T_ABSTRACT") goto yystate0 } yyrule8: // array { fmt.Println("T_ARRAY") goto yystate0 } yyrule9: // as { fmt.Println("T_AS") goto yystate0 } yyrule10: // break { fmt.Println("T_BREAK") goto yystate0 } yyrule11: // callable { fmt.Println("T_CALLABLE") goto yystate0 } yyrule12: // case { fmt.Println("T_CASE") goto yystate0 } yyrule13: // catch { fmt.Println("T_CATCH") goto yystate0 } yyrule14: // class { fmt.Println("T_CLASS") goto yystate0 } yyrule15: // clone { fmt.Println("T_CLONE") goto yystate0 } yyrule16: // const { fmt.Println("T_CONST") goto yystate0 } yyrule17: // continue { fmt.Println("T_CONTINUE") goto yystate0 } yyrule18: // declare { fmt.Println("T_DECLARE") goto yystate0 } yyrule19: // default { fmt.Println("T_DEFAULT") goto yystate0 } yyrule20: // do { fmt.Println("T_DO") goto yystate0 } yyrule21: // echo { fmt.Println("T_ECHO") goto yystate0 } yyrule22: // else { fmt.Println("T_ELSE") goto yystate0 } yyrule23: // elseif { fmt.Println("T_ELSEIF") goto yystate0 } yyrule24: // empty { fmt.Println("T_EMPTY") goto yystate0 } yyrule25: // endfor { fmt.Println("T_ENDFOR") goto yystate0 } yyrule26: // endforeach { fmt.Println("T_ENDFOREACH") goto yystate0 } yyrule27: // endif { fmt.Println("T_ENDIF") goto yystate0 } yyrule28: // endswitch { fmt.Println("T_ENDSWITCH") goto yystate0 } yyrule29: // endwhile { fmt.Println("T_ENDWHILE") goto yystate0 } yyrule30: // exit|die { fmt.Println("T_EXIT") goto yystate0 } yyrule31: // extends { fmt.Println("T_EXTENDS") goto yystate0 } yyrule32: // final { fmt.Println("T_FINAL") goto yystate0 } yyrule33: // finally { fmt.Println("T_FINALLY") goto yystate0 } yyrule34: // for { fmt.Println("T_FOR") goto yystate0 } yyrule35: // foreach { fmt.Println("T_FOREACH") goto yystate0 } yyrule36: // function|cfunction { fmt.Println("T_FUNCTION") goto yystate0 } yyrule37: // global { fmt.Println("T_GLOBAL") goto yystate0 } yyrule38: // goto { fmt.Println("T_GOTO") goto yystate0 } yyrule39: // if { fmt.Println("T_IF") goto yystate0 } yyrule40: // implements { fmt.Println("T_IMPLEMENTS") goto yystate0 } yyrule41: // instanceof { fmt.Println("T_INSTANCEOF") goto yystate0 } yyrule42: // insteadof { fmt.Println("T_INSTEADOF") goto yystate0 } yyrule43: // interface { fmt.Println("T_INTERFACE") goto yystate0 } yyrule44: // namespace { fmt.Println("T_NAMESPACE") goto yystate0 } yyrule45: // private { fmt.Println("T_PRIVATE") goto yystate0 } yyrule46: // public { fmt.Println("T_PUBLIC") goto yystate0 } yyrule47: // protected { fmt.Println("T_PROTECTED") goto yystate0 } yyrule48: // return { fmt.Println("T_RETURN") goto yystate0 } yyrule49: // static { fmt.Println("T_STATIC") goto yystate0 } yyrule50: // switch { fmt.Println("T_SWITCH") goto yystate0 } yyrule51: // throw { fmt.Println("T_THROW") goto yystate0 } yyrule52: // trait { fmt.Println("T_TRAIT") goto yystate0 } yyrule53: // try { fmt.Println("T_TRY") goto yystate0 } yyrule54: // use { fmt.Println("T_USE") goto yystate0 } yyrule55: // var { fmt.Println("T_VAR") goto yystate0 } yyrule56: // while { fmt.Println("T_WHILE") goto yystate0 } yyrule57: // yield[ \t\n\r]+from[^a-zA-Z0-9_\x80-\xff] { fmt.Println("T_YIELD_FROM") goto yystate0 } yyrule58: // yield { fmt.Println("T_YIELD") goto yystate0 } yyrule59: // __CLASS__ { fmt.Println("T_CLASS_C") goto yystate0 } yyrule60: // __DIR__ { fmt.Println("T_DIR") goto yystate0 } yyrule61: // __FILE__ { fmt.Println("T_FILE") goto yystate0 } yyrule62: // __FUNCTION__ { fmt.Println("T_FUNC_C") goto yystate0 } yyrule63: // __LINE__ { fmt.Println("T_LINE") goto yystate0 } yyrule64: // __NAMESPACE__ { fmt.Println("T_NS_C") goto yystate0 } yyrule65: // __METHOD__ { fmt.Println("T_METHOD_C") goto yystate0 } yyrule66: // __TRAIT__ { fmt.Println("T_TRAIT_C") goto yystate0 } yyrule67: // \([ \t]*array[ \t]*\) { fmt.Println("T_ARRAY_CAST") goto yystate0 } yyrule68: // \([ \t]*(bool|boolean)[ \t]*\) { fmt.Println("T_BOOL_CAST") goto yystate0 } yyrule69: // \([ \t]*(real|double|float)[ \t]*\) { fmt.Println("T_DOUBLE_CAST") goto yystate0 } yyrule70: // \([ \t]*(int|integer)[ \t]*\) { fmt.Println("T_INT_CAST") goto yystate0 } yyrule71: // \([ \t]*object[ \t]*\) { fmt.Println("T_OBJECT_CAST") goto yystate0 } yyrule72: // \([ \t]*string[ \t]*\) { fmt.Println("T_STRING_CAST") goto yystate0 } yyrule73: // \([ \t]*unset[ \t]*\) { fmt.Println("T_UNSET_CAST") goto yystate0 } yyrule74: // new { fmt.Println("T_NEW") goto yystate0 } yyrule75: // and { fmt.Println("T_LOGICAL_AND") goto yystate0 } yyrule76: // or { fmt.Println("T_LOGICAL_OR") goto yystate0 } yyrule77: // xor { fmt.Println("T_LOGICAL_XOR") goto yystate0 } yyrule78: // \\ { fmt.Println("T_NS_SEPARATOR") goto yystate0 } yyrule79: // \.\.\. { fmt.Println("T_ELLIPSIS") goto yystate0 } yyrule80: // :: { fmt.Println("T_PAAMAYIM_NEKUDOTAYIM") // T_DOUBLE_COLON goto yystate0 } yyrule81: // && { fmt.Println("T_BOOLEAN_AND") goto yystate0 } yyrule82: // \|\| { fmt.Println("T_BOOLEAN_OR") goto yystate0 } yyrule83: // &= { fmt.Println("T_AND_EQUAL") goto yystate0 } yyrule84: // \|= { fmt.Println("T_OR_EQUAL") goto yystate0 } yyrule85: // \.= { fmt.Println("T_CONCAT_EQUAL") goto yystate0 } yyrule86: // \*= { fmt.Println("T_MUL_EQUAL") goto yystate0 } yyrule87: // \*\*= { fmt.Println("T_POW_EQUAL") goto yystate0 } yyrule88: // [/]= { fmt.Println("T_DIV_EQUAL") goto yystate0 } yyrule89: // \+= { fmt.Println("T_PLUS_EQUAL") goto yystate0 } yyrule90: // -= { fmt.Println("T_MINUS_EQUAL") goto yystate0 } yyrule91: // \^= { fmt.Println("T_XOR_EQUAL") goto yystate0 } yyrule92: // %= { fmt.Println("T_MOD_EQUAL") goto yystate0 } yyrule93: // -- { fmt.Println("T_DEC") goto yystate0 } yyrule94: // \+\+ { fmt.Println("T_INC") goto yystate0 } yyrule95: // => { fmt.Println("T_DOUBLE_ARROW") goto yystate0 } yyrule96: // \<=\> { fmt.Println("T_SPACESHIP") goto yystate0 } yyrule97: // \!=|\<\> { fmt.Println("T_IS_NOT_EQUAL") goto yystate0 } yyrule98: // \!== { fmt.Println("T_IS_NOT_IDENTICAL") goto yystate0 } yyrule99: // == { fmt.Println("T_IS_EQUAL") goto yystate0 } yyrule100: // === { fmt.Println("T_IS_IDENTICAL") goto yystate0 } yyrule101: // \<\<= { fmt.Println("T_SL_EQUAL") goto yystate0 } yyrule102: // \>\>= { fmt.Println("T_SR_EQUAL") goto yystate0 } yyrule103: // \>= { fmt.Println("T_IS_GREATER_OR_EQUAL") goto yystate0 } yyrule104: // \<= { fmt.Println("T_IS_SMALLER_OR_EQUAL") goto yystate0 } yyrule105: // \*\* { fmt.Println("T_POW") goto yystate0 } yyrule106: // \<\< { fmt.Println("T_SL") goto yystate0 } yyrule107: // \>\> { fmt.Println("T_SR") goto yystate0 } yyrule108: // (#|[/][/])[^\n]+ { fmt.Println("T_COMMENT") // TODO: handle \r\n and allow ?> goto yystate0 } yyrule109: // '[^']*(\\')*' { fmt.Println("T_CONSTANT_ENCAPSED_STRING") goto yystate0 } yyrule110: // {OPERATORS} { fmt.Printf("%s\n", l.TokenBytes(nil)) goto yystate0 } yyrule111: // -> { fmt.Println("T_OBJECT_OPERATOR") begin(PROPERTY) goto yystate0 } yyrule112: // [ \t\n\r]+ { fmt.Println("T_WHITESPACE") goto yystate0 } yyrule113: // -> { fmt.Println("T_OBJECT_OPERATOR") goto yystate0 } yyrule114: // {VAR_NAME} { fmt.Println("T_STRING") begin(PHP) goto yystate0 } yyrule115: // . { l.ungetN(1) begin(PHP) goto yystate0 } yyrule116: // [\']([^\\\']*([\\][\'])*)*[\'] { fmt.Printf("T_CONSTANT_ENCAPSED_STRING: %s\n", l.TokenBytes(nil)) goto yystate0 } yyrule117: // [b]?[\"] { binPrefix := l.TokenBytes(nil)[0] == 'b' beginString := func() { cnt := 1 if binPrefix { cnt = 2 } l.ungetN(len(l.TokenBytes(nil)) - cnt) tokenBytes := l.TokenBytes(nil)[:cnt] fmt.Println(string(tokenBytes)) // TODO: RETURN TOKEN pushState(STRING) } F: for { if c == -1 { break } switch c { case '"': c = l.Next() fmt.Printf("T_CONSTANT_ENCAPSED_STRING: %s\n", l.TokenBytes(nil)) break F case '$': c = l.Next() if rune(c) == '{' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ' { beginString() break F } l.ungetN(0) case '{': c = l.Next() if rune(c) == '$' { beginString() break F } l.ungetN(0) case '\\': c = l.Next() } c = l.Next() } goto yystate0 } yyrule118: // \" { fmt.Println("\"") popState() goto yystate0 } yyrule119: // \{\$ { fmt.Printf("T_CURLY_OPEN: %q\n", l.ungetN(1)) pushState(PHP) goto yystate0 } yyrule120: // \$\{ { fmt.Printf("T_DOLLAR_OPEN_CURLY_BRACES: %q\n", l.TokenBytes(nil)) pushState(STRING_VAR_NAME) goto yystate0 } yyrule121: // \$ { l.ungetN(1) begin(STRING_VAR) goto yystate0 } yyrule122: // . { F1: for { if c == -1 { break } switch c { case '"': fmt.Printf("T_ENCAPSED_AND_WHITESPACE: %s\n", l.TokenBytes(nil)) break F1 case '$': c = l.Next() if rune(c) == '{' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ' { l.ungetN(1) tb := l.TokenBytes(nil) fmt.Printf("T_ENCAPSED_AND_WHITESPACE: %s\n", tb[:len(tb)-1]) break F1 } l.ungetN(0) case '{': c = l.Next() if rune(c) == '$' { l.ungetN(1) tb := l.TokenBytes(nil) fmt.Printf("T_ENCAPSED_AND_WHITESPACE: %s\n", tb[:len(tb)-1]) break F1 } l.ungetN(0) case '\\': c = l.Next() } c = l.Next() } goto yystate0 } yyrule123: // \${VAR_NAME} { fmt.Printf("T_VARIABLE: %q\n", l.TokenBytes(nil)) goto yystate0 } yyrule124: // ->{VAR_NAME} { fmt.Printf("T_OBJECT_OPERATOR: %q\n", l.ungetN(len(l.TokenBytes(nil))-2)) goto yystate0 } yyrule125: // {VAR_NAME} { fmt.Printf("T_STRING: %q\n", l.TokenBytes(nil)) begin(STRING) goto yystate0 } yyrule126: // \[ { fmt.Println("[") begin(STRING_VAR_INDEX) goto yystate0 } yyrule127: // . { l.ungetN(1) begin(STRING) goto yystate0 } yyrule128: // {LNUM} { fmt.Printf("T_NUM_STRING: %q\n", l.TokenBytes(nil)) goto yystate0 } yyrule129: // \${VAR_NAME} { fmt.Printf("T_VARIABLE: %q\n", l.TokenBytes(nil)) goto yystate0 } yyrule130: // {VAR_NAME} { fmt.Printf("T_STRING: %q\n", l.TokenBytes(nil)) goto yystate0 } yyrule131: // \] { fmt.Println("\"]\"") begin(STRING) goto yystate0 } yyrule132: // [ \n\r\t\\'#] { fmt.Printf("T_ENCAPSED_AND_WHITESPACE: %q\n", l.ungetN(1)) begin(STRING) goto yystate0 } yyrule133: // {OPERATORS} { fmt.Printf("%q\n", l.TokenBytes(nil)) goto yystate0 } yyrule134: // . { fmt.Printf("%q\n", l.TokenBytes(nil)) goto yystate0 } yyrule135: // {VAR_NAME}[\[\}] { fmt.Printf("T_STRING_VARNAME: %q\n", l.ungetN(1)) popState() pushState(PHP) goto yystate0 } yyrule136: // . { l.ungetN(1) popState() pushState(PHP) goto yystate0 } yyrule137: // \} { fmt.Println("}") popState() goto yystate0 } yyrule138: // \${VAR_NAME} { fmt.Printf("T_VARIABLE: %q\n", l.TokenBytes(nil)) goto yystate0 } yyrule139: // . { fmt.Printf("other: %q\n", l.TokenBytes(nil)) goto yystate0 } panic("unreachable") goto yyabort // silence unused label error yyabort: // no lexem recognized if c, ok := l.Abort(); ok { return int(c) } goto yyAction } func main() { l := newLexer(os.Stdin, os.Stdout, "file.name") l.Lex() }