// 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" "bytes" "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 HEREDOC_END NOWDOC HEREDOC BACKQUOTE ) type lexer struct { *lex.Lexer } var stateStack = []int{PHP} var heredocLabel []byte func pushState(state int) { sc = state stateStack = append(stateStack, state) } func popState() { len := len(stateStack) if len <= 1 { return } sc = stateStack[len-2] stateStack = stateStack[:len-1] } func begin(state int) { len := len(stateStack) stateStack = stateStack[:len-1] stateStack = append(stateStack, state) 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 yystart473 case 3: // start condition: STRING_VAR goto yystart480 case 4: // start condition: STRING_VAR_INDEX goto yystart490 case 5: // start condition: STRING_VAR_NAME goto yystart502 case 6: // start condition: PROPERTY goto yystart507 case 7: // start condition: HEREDOC_END goto yystart515 case 8: // start condition: NOWDOC goto yystart520 case 9: // start condition: HEREDOC goto yystart522 case 10: // start condition: BACKQUOTE goto yystart526 } 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 case 140: goto yyrule140 case 141: goto yyrule141 case 142: goto yyrule142 case 143: goto yyrule143 case 144: goto yyrule144 case 145: goto yyrule145 case 146: goto yyrule146 case 147: goto yyrule147 } 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 yystate22 case c == '%': goto yystate24 case c == '&': goto yystate26 case c == '(': goto yystate45 case c == ')' || c == ',' || c == ';' || c == '@' || c == '[' || c == ']' || c == '~': goto yystate103 case c == '*': goto yystate104 case c == '+': goto yystate108 case c == '-': goto yystate111 case c == '.': goto yystate115 case c == '/': goto yystate119 case c == ':': goto yystate122 case c == '<': goto yystate124 case c == '=': goto yystate139 case c == '>': goto yystate143 case c == '?': goto yystate147 case c == '\'': goto yystate29 case c == '\\': goto yystate149 case c == '\n': goto yystate14 case c == '\t' || c == '\r' || c == ' ': goto yystate13 case c == '^': goto yystate150 case c == '_': goto yystate152 case c == '`': goto yystate213 case c == 'a': goto yystate214 case c == 'b': goto yystate229 case c == 'c': goto yystate237 case c == 'd': goto yystate274 case c == 'e': goto yystate289 case c == 'f': goto yystate331 case c == 'g': goto yystate344 case c == 'i': goto yystate353 case c == 'n': goto yystate385 case c == 'o': goto yystate396 case c == 'p': goto yystate398 case c == 'r': goto yystate417 case c == 's': goto yystate423 case c == 't': goto yystate434 case c == 'u': goto yystate444 case c == 'v': goto yystate447 case c == 'w': goto yystate450 case c == 'x': goto yystate455 case c == 'y': goto yystate458 case c == '|': goto yystate469 case c == '}': goto yystate472 case c >= '\x01' && c <= '\b' || c == '\v' || c == '\f' || c >= '\x0e' && c <= '\x1f' || c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == 'h' || c >= 'j' && c <= 'm' || c == 'q' || c == 'z' || c == '{' || c >= '\u007f' && c <= 'ÿ': goto yystate12 } yystate12: c = l.Next() yyrule = 147 l.Mark() goto yyrule147 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 = 125 l.Mark() goto yyrule125 yystate19: c = l.Next() yyrule = 147 l.Mark() switch { default: goto yyrule147 case c == '\n': goto yystate20 case c == '\r': goto yystate21 } yystate20: c = l.Next() yyrule = 108 l.Mark() goto yyrule108 yystate21: c = l.Next() yyrule = 108 l.Mark() switch { default: goto yyrule108 case c == '\n': goto yystate20 } yystate22: 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 yystate23 } yystate23: c = l.Next() yyrule = 112 l.Mark() switch { default: goto yyrule112 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': goto yystate23 } yystate24: c = l.Next() yyrule = 110 l.Mark() switch { default: goto yyrule110 case c == '=': goto yystate25 } yystate25: c = l.Next() yyrule = 92 l.Mark() goto yyrule92 yystate26: c = l.Next() yyrule = 110 l.Mark() switch { default: goto yyrule110 case c == '&': goto yystate27 case c == '=': goto yystate28 } yystate27: c = l.Next() yyrule = 81 l.Mark() goto yyrule81 yystate28: c = l.Next() yyrule = 83 l.Mark() goto yyrule83 yystate29: c = l.Next() yyrule = 147 l.Mark() switch { default: goto yyrule147 case c == '\'': goto yystate31 case c == '\\': goto yystate32 case c >= '\x01' && c <= '&' || c >= '(' && c <= '[' || c >= ']' && c <= 'ÿ': goto yystate30 } yystate30: c = l.Next() switch { default: goto yyabort case c == '\'': goto yystate31 case c == '\\': goto yystate32 case c >= '\x01' && c <= '&' || c >= '(' && c <= '[' || c >= ']' && c <= 'ÿ': goto yystate30 } yystate31: c = l.Next() yyrule = 109 l.Mark() goto yyrule109 yystate32: c = l.Next() switch { default: goto yyabort case c == '\'': goto yystate39 case c == '\\': goto yystate35 case c >= '\x01' && c <= '&' || c >= '(' && c <= '[' || c >= ']' && c <= 'ÿ': goto yystate33 } yystate33: c = l.Next() switch { default: goto yyabort case c == '\'': goto yystate34 case c == '\\': goto yystate35 case c >= '\x01' && c <= '&' || c >= '(' && c <= '[' || c >= ']' && c <= 'ÿ': goto yystate33 } yystate34: c = l.Next() yyrule = 109 l.Mark() goto yyrule109 yystate35: c = l.Next() switch { default: goto yyabort case c == '\'': goto yystate36 case c == '\\': goto yystate35 case c >= '\x01' && c <= '&' || c >= '(' && c <= '[' || c >= ']' && c <= 'ÿ': goto yystate33 } yystate36: c = l.Next() yyrule = 109 l.Mark() switch { default: goto yyrule109 case c == '\'': goto yystate34 case c == '\\': goto yystate37 } yystate37: c = l.Next() switch { default: goto yyabort case c == '\'': goto yystate38 } yystate38: c = l.Next() switch { default: goto yyabort case c == '\'': goto yystate34 case c == '\\': goto yystate37 } yystate39: c = l.Next() yyrule = 109 l.Mark() switch { default: goto yyrule109 case c == '\'': goto yystate31 case c == '\\': goto yystate43 case c >= '\x01' && c <= '&' || c >= '(' && c <= '[' || c >= ']' && c <= 'ÿ': goto yystate40 } yystate40: c = l.Next() switch { default: goto yyabort case c == '\'': goto yystate41 case c == '\\': goto yystate42 case c >= '\x01' && c <= '&' || c >= '(' && c <= '[' || c >= ']' && c <= 'ÿ': goto yystate40 } yystate41: c = l.Next() yyrule = 118 l.Mark() goto yyrule118 yystate42: c = l.Next() switch { default: goto yyabort case c == '\'': goto yystate40 } yystate43: c = l.Next() switch { default: goto yyabort case c == '\'': goto yystate44 } yystate44: c = l.Next() switch { default: goto yyabort case c == '\'': goto yystate31 case c == '\\': goto yystate43 case c >= '\x01' && c <= '&' || c >= '(' && c <= '[' || c >= ']' && c <= 'ÿ': goto yystate40 } yystate45: c = l.Next() yyrule = 110 l.Mark() switch { default: goto yyrule110 case c == '\t' || c == ' ': goto yystate46 case c == 'a': goto yystate47 case c == 'b': goto yystate53 case c == 'd': goto yystate61 case c == 'f': goto yystate68 case c == 'i': goto yystate72 case c == 'o': goto yystate80 case c == 'r': goto yystate87 case c == 's': goto yystate90 case c == 'u': goto yystate97 } yystate46: c = l.Next() switch { default: goto yyabort case c == '\t' || c == ' ': goto yystate46 case c == 'a': goto yystate47 case c == 'b': goto yystate53 case c == 'd': goto yystate61 case c == 'f': goto yystate68 case c == 'i': goto yystate72 case c == 'o': goto yystate80 case c == 'r': goto yystate87 case c == 's': goto yystate90 case c == 'u': goto yystate97 } yystate47: c = l.Next() switch { default: goto yyabort case c == 'r': goto yystate48 } yystate48: c = l.Next() switch { default: goto yyabort case c == 'r': goto yystate49 } yystate49: c = l.Next() switch { default: goto yyabort case c == 'a': goto yystate50 } yystate50: c = l.Next() switch { default: goto yyabort case c == 'y': goto yystate51 } yystate51: c = l.Next() switch { default: goto yyabort case c == ')': goto yystate52 case c == '\t' || c == ' ': goto yystate51 } yystate52: c = l.Next() yyrule = 67 l.Mark() goto yyrule67 yystate53: c = l.Next() switch { default: goto yyabort case c == 'o': goto yystate54 } yystate54: c = l.Next() switch { default: goto yyabort case c == 'o': goto yystate55 } yystate55: c = l.Next() switch { default: goto yyabort case c == 'l': goto yystate56 } yystate56: c = l.Next() switch { default: goto yyabort case c == ')': goto yystate58 case c == '\t' || c == ' ': goto yystate57 case c == 'e': goto yystate59 } yystate57: c = l.Next() switch { default: goto yyabort case c == ')': goto yystate58 case c == '\t' || c == ' ': goto yystate57 } yystate58: c = l.Next() yyrule = 68 l.Mark() goto yyrule68 yystate59: c = l.Next() switch { default: goto yyabort case c == 'a': goto yystate60 } yystate60: c = l.Next() switch { default: goto yyabort case c == 'n': goto yystate57 } yystate61: c = l.Next() switch { default: goto yyabort case c == 'o': goto yystate62 } yystate62: c = l.Next() switch { default: goto yyabort case c == 'u': goto yystate63 } yystate63: c = l.Next() switch { default: goto yyabort case c == 'b': goto yystate64 } yystate64: c = l.Next() switch { default: goto yyabort case c == 'l': goto yystate65 } yystate65: c = l.Next() switch { default: goto yyabort case c == 'e': goto yystate66 } yystate66: c = l.Next() switch { default: goto yyabort case c == ')': goto yystate67 case c == '\t' || c == ' ': goto yystate66 } yystate67: c = l.Next() yyrule = 69 l.Mark() goto yyrule69 yystate68: c = l.Next() switch { default: goto yyabort case c == 'l': goto yystate69 } yystate69: c = l.Next() switch { default: goto yyabort case c == 'o': goto yystate70 } yystate70: c = l.Next() switch { default: goto yyabort case c == 'a': goto yystate71 } yystate71: c = l.Next() switch { default: goto yyabort case c == 't': goto yystate66 } yystate72: c = l.Next() switch { default: goto yyabort case c == 'n': goto yystate73 } yystate73: c = l.Next() switch { default: goto yyabort case c == 't': goto yystate74 } yystate74: c = l.Next() switch { default: goto yyabort case c == ')': goto yystate76 case c == '\t' || c == ' ': goto yystate75 case c == 'e': goto yystate77 } yystate75: c = l.Next() switch { default: goto yyabort case c == ')': goto yystate76 case c == '\t' || c == ' ': goto yystate75 } yystate76: c = l.Next() yyrule = 70 l.Mark() goto yyrule70 yystate77: c = l.Next() switch { default: goto yyabort case c == 'g': goto yystate78 } yystate78: c = l.Next() switch { default: goto yyabort case c == 'e': goto yystate79 } yystate79: c = l.Next() switch { default: goto yyabort case c == 'r': goto yystate75 } yystate80: c = l.Next() switch { default: goto yyabort case c == 'b': goto yystate81 } yystate81: c = l.Next() switch { default: goto yyabort case c == 'j': goto yystate82 } yystate82: c = l.Next() switch { default: goto yyabort case c == 'e': goto yystate83 } yystate83: c = l.Next() switch { default: goto yyabort case c == 'c': goto yystate84 } yystate84: c = l.Next() switch { default: goto yyabort case c == 't': goto yystate85 } yystate85: c = l.Next() switch { default: goto yyabort case c == ')': goto yystate86 case c == '\t' || c == ' ': goto yystate85 } yystate86: c = l.Next() yyrule = 71 l.Mark() goto yyrule71 yystate87: c = l.Next() switch { default: goto yyabort case c == 'e': goto yystate88 } yystate88: c = l.Next() switch { default: goto yyabort case c == 'a': goto yystate89 } yystate89: c = l.Next() switch { default: goto yyabort case c == 'l': goto yystate66 } yystate90: c = l.Next() switch { default: goto yyabort case c == 't': goto yystate91 } yystate91: c = l.Next() switch { default: goto yyabort case c == 'r': goto yystate92 } yystate92: c = l.Next() switch { default: goto yyabort case c == 'i': goto yystate93 } yystate93: c = l.Next() switch { default: goto yyabort case c == 'n': goto yystate94 } yystate94: c = l.Next() switch { default: goto yyabort case c == 'g': goto yystate95 } yystate95: c = l.Next() switch { default: goto yyabort case c == ')': goto yystate96 case c == '\t' || c == ' ': goto yystate95 } yystate96: c = l.Next() yyrule = 72 l.Mark() goto yyrule72 yystate97: c = l.Next() switch { default: goto yyabort case c == 'n': goto yystate98 } yystate98: c = l.Next() switch { default: goto yyabort case c == 's': goto yystate99 } yystate99: c = l.Next() switch { default: goto yyabort case c == 'e': goto yystate100 } yystate100: c = l.Next() switch { default: goto yyabort case c == 't': goto yystate101 } yystate101: c = l.Next() switch { default: goto yyabort case c == ')': goto yystate102 case c == '\t' || c == ' ': goto yystate101 } yystate102: c = l.Next() yyrule = 73 l.Mark() goto yyrule73 yystate103: c = l.Next() yyrule = 110 l.Mark() goto yyrule110 yystate104: c = l.Next() yyrule = 110 l.Mark() switch { default: goto yyrule110 case c == '*': goto yystate105 case c == '=': goto yystate107 } yystate105: c = l.Next() yyrule = 105 l.Mark() switch { default: goto yyrule105 case c == '=': goto yystate106 } yystate106: c = l.Next() yyrule = 87 l.Mark() goto yyrule87 yystate107: c = l.Next() yyrule = 86 l.Mark() goto yyrule86 yystate108: c = l.Next() yyrule = 110 l.Mark() switch { default: goto yyrule110 case c == '+': goto yystate109 case c == '=': goto yystate110 } yystate109: c = l.Next() yyrule = 94 l.Mark() goto yyrule94 yystate110: c = l.Next() yyrule = 89 l.Mark() goto yyrule89 yystate111: c = l.Next() yyrule = 110 l.Mark() switch { default: goto yyrule110 case c == '-': goto yystate112 case c == '=': goto yystate113 case c == '>': goto yystate114 } yystate112: c = l.Next() yyrule = 93 l.Mark() goto yyrule93 yystate113: c = l.Next() yyrule = 90 l.Mark() goto yyrule90 yystate114: c = l.Next() yyrule = 113 l.Mark() goto yyrule113 yystate115: c = l.Next() yyrule = 110 l.Mark() switch { default: goto yyrule110 case c == '.': goto yystate116 case c == '=': goto yystate118 } yystate116: c = l.Next() switch { default: goto yyabort case c == '.': goto yystate117 } yystate117: c = l.Next() yyrule = 79 l.Mark() goto yyrule79 yystate118: c = l.Next() yyrule = 85 l.Mark() goto yyrule85 yystate119: c = l.Next() yyrule = 110 l.Mark() switch { default: goto yyrule110 case c == '/': goto yystate120 case c == '=': goto yystate121 } yystate120: c = l.Next() switch { default: goto yyabort case c == '\n': goto yystate20 case c == '\r': goto yystate21 } yystate121: c = l.Next() yyrule = 88 l.Mark() goto yyrule88 yystate122: c = l.Next() yyrule = 110 l.Mark() switch { default: goto yyrule110 case c == ':': goto yystate123 } yystate123: c = l.Next() yyrule = 80 l.Mark() goto yyrule80 yystate124: c = l.Next() yyrule = 110 l.Mark() switch { default: goto yyrule110 case c == '<': goto yystate125 case c == '=': goto yystate136 case c == '>': goto yystate138 } yystate125: c = l.Next() yyrule = 106 l.Mark() switch { default: goto yyrule106 case c == '<': goto yystate126 case c == '=': goto yystate135 } yystate126: c = l.Next() switch { default: goto yyabort case c == '"': goto yystate127 case c == '\'': goto yystate132 case c == '\t' || c == ' ': goto yystate126 case c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': goto yystate134 } yystate127: c = l.Next() switch { default: goto yyabort case c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': goto yystate128 } yystate128: c = l.Next() switch { default: goto yyabort case c == '"': goto yystate129 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': goto yystate128 } yystate129: c = l.Next() switch { default: goto yyabort case c == '\n': goto yystate130 case c == '\r': goto yystate131 } yystate130: c = l.Next() yyrule = 121 l.Mark() goto yyrule121 yystate131: c = l.Next() yyrule = 121 l.Mark() switch { default: goto yyrule121 case c == '\n': goto yystate130 } yystate132: c = l.Next() switch { default: goto yyabort case c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': goto yystate133 } yystate133: c = l.Next() switch { default: goto yyabort case c == '\'': goto yystate129 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': goto yystate133 } yystate134: c = l.Next() switch { default: goto yyabort case c == '\n': goto yystate130 case c == '\r': goto yystate131 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': goto yystate134 } yystate135: c = l.Next() yyrule = 101 l.Mark() goto yyrule101 yystate136: c = l.Next() yyrule = 104 l.Mark() switch { default: goto yyrule104 case c == '>': goto yystate137 } yystate137: c = l.Next() yyrule = 96 l.Mark() goto yyrule96 yystate138: c = l.Next() yyrule = 97 l.Mark() goto yyrule97 yystate139: c = l.Next() yyrule = 110 l.Mark() switch { default: goto yyrule110 case c == '=': goto yystate140 case c == '>': goto yystate142 } yystate140: c = l.Next() yyrule = 99 l.Mark() switch { default: goto yyrule99 case c == '=': goto yystate141 } yystate141: c = l.Next() yyrule = 100 l.Mark() goto yyrule100 yystate142: c = l.Next() yyrule = 95 l.Mark() goto yyrule95 yystate143: c = l.Next() yyrule = 110 l.Mark() switch { default: goto yyrule110 case c == '=': goto yystate144 case c == '>': goto yystate145 } yystate144: c = l.Next() yyrule = 103 l.Mark() goto yyrule103 yystate145: c = l.Next() yyrule = 107 l.Mark() switch { default: goto yyrule107 case c == '=': goto yystate146 } yystate146: c = l.Next() yyrule = 102 l.Mark() goto yyrule102 yystate147: c = l.Next() yyrule = 110 l.Mark() switch { default: goto yyrule110 case c == '>': goto yystate148 } yystate148: c = l.Next() yyrule = 6 l.Mark() goto yyrule6 yystate149: c = l.Next() yyrule = 78 l.Mark() goto yyrule78 yystate150: c = l.Next() yyrule = 110 l.Mark() switch { default: goto yyrule110 case c == '=': goto yystate151 } yystate151: c = l.Next() yyrule = 91 l.Mark() goto yyrule91 yystate152: c = l.Next() yyrule = 147 l.Mark() switch { default: goto yyrule147 case c == '_': goto yystate153 } yystate153: c = l.Next() switch { default: goto yyabort case c == 'C': goto yystate154 case c == 'D': goto yystate161 case c == 'F': goto yystate166 case c == 'L': goto yystate181 case c == 'M': goto yystate187 case c == 'N': goto yystate195 case c == 'T': goto yystate206 } yystate154: c = l.Next() switch { default: goto yyabort case c == 'L': goto yystate155 } yystate155: c = l.Next() switch { default: goto yyabort case c == 'A': goto yystate156 } yystate156: c = l.Next() switch { default: goto yyabort case c == 'S': goto yystate157 } yystate157: c = l.Next() switch { default: goto yyabort case c == 'S': goto yystate158 } yystate158: c = l.Next() switch { default: goto yyabort case c == '_': goto yystate159 } yystate159: c = l.Next() switch { default: goto yyabort case c == '_': goto yystate160 } yystate160: c = l.Next() yyrule = 59 l.Mark() goto yyrule59 yystate161: c = l.Next() switch { default: goto yyabort case c == 'I': goto yystate162 } yystate162: c = l.Next() switch { default: goto yyabort case c == 'R': goto yystate163 } yystate163: c = l.Next() switch { default: goto yyabort case c == '_': goto yystate164 } yystate164: c = l.Next() switch { default: goto yyabort case c == '_': goto yystate165 } yystate165: c = l.Next() yyrule = 60 l.Mark() goto yyrule60 yystate166: c = l.Next() switch { default: goto yyabort case c == 'I': goto yystate167 case c == 'U': goto yystate172 } yystate167: c = l.Next() switch { default: goto yyabort case c == 'L': goto yystate168 } yystate168: c = l.Next() switch { default: goto yyabort case c == 'E': goto yystate169 } yystate169: c = l.Next() switch { default: goto yyabort case c == '_': goto yystate170 } yystate170: c = l.Next() switch { default: goto yyabort case c == '_': goto yystate171 } yystate171: c = l.Next() yyrule = 61 l.Mark() goto yyrule61 yystate172: c = l.Next() switch { default: goto yyabort case c == 'N': goto yystate173 } yystate173: c = l.Next() switch { default: goto yyabort case c == 'C': goto yystate174 } yystate174: c = l.Next() switch { default: goto yyabort case c == 'T': goto yystate175 } yystate175: c = l.Next() switch { default: goto yyabort case c == 'I': goto yystate176 } yystate176: c = l.Next() switch { default: goto yyabort case c == 'O': goto yystate177 } yystate177: c = l.Next() switch { default: goto yyabort case c == 'N': goto yystate178 } yystate178: c = l.Next() switch { default: goto yyabort case c == '_': goto yystate179 } yystate179: c = l.Next() switch { default: goto yyabort case c == '_': goto yystate180 } yystate180: c = l.Next() yyrule = 62 l.Mark() goto yyrule62 yystate181: c = l.Next() switch { default: goto yyabort case c == 'I': goto yystate182 } yystate182: c = l.Next() switch { default: goto yyabort case c == 'N': goto yystate183 } yystate183: c = l.Next() switch { default: goto yyabort case c == 'E': goto yystate184 } yystate184: c = l.Next() switch { default: goto yyabort case c == '_': goto yystate185 } yystate185: c = l.Next() switch { default: goto yyabort case c == '_': goto yystate186 } yystate186: c = l.Next() yyrule = 63 l.Mark() goto yyrule63 yystate187: c = l.Next() switch { default: goto yyabort case c == 'E': goto yystate188 } yystate188: c = l.Next() switch { default: goto yyabort case c == 'T': goto yystate189 } yystate189: c = l.Next() switch { default: goto yyabort case c == 'H': goto yystate190 } yystate190: c = l.Next() switch { default: goto yyabort case c == 'O': goto yystate191 } yystate191: c = l.Next() switch { default: goto yyabort case c == 'D': goto yystate192 } yystate192: c = l.Next() switch { default: goto yyabort case c == '_': goto yystate193 } yystate193: c = l.Next() switch { default: goto yyabort case c == '_': goto yystate194 } yystate194: c = l.Next() yyrule = 65 l.Mark() goto yyrule65 yystate195: c = l.Next() switch { default: goto yyabort case c == 'A': goto yystate196 } yystate196: c = l.Next() switch { default: goto yyabort case c == 'M': goto yystate197 } yystate197: c = l.Next() switch { default: goto yyabort case c == 'E': goto yystate198 } yystate198: c = l.Next() switch { default: goto yyabort case c == 'S': goto yystate199 } yystate199: c = l.Next() switch { default: goto yyabort case c == 'P': goto yystate200 } yystate200: c = l.Next() switch { default: goto yyabort case c == 'A': goto yystate201 } yystate201: c = l.Next() switch { default: goto yyabort case c == 'C': goto yystate202 } yystate202: c = l.Next() switch { default: goto yyabort case c == 'E': goto yystate203 } yystate203: c = l.Next() switch { default: goto yyabort case c == '_': goto yystate204 } yystate204: c = l.Next() switch { default: goto yyabort case c == '_': goto yystate205 } yystate205: c = l.Next() yyrule = 64 l.Mark() goto yyrule64 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 == 'I': goto yystate209 } yystate209: c = l.Next() switch { default: goto yyabort case c == 'T': goto yystate210 } yystate210: c = l.Next() switch { default: goto yyabort case c == '_': goto yystate211 } yystate211: c = l.Next() switch { default: goto yyabort case c == '_': goto yystate212 } yystate212: c = l.Next() yyrule = 66 l.Mark() goto yyrule66 yystate213: c = l.Next() yyrule = 119 l.Mark() goto yyrule119 yystate214: c = l.Next() yyrule = 147 l.Mark() switch { default: goto yyrule147 case c == 'b': goto yystate215 case c == 'n': goto yystate222 case c == 'r': goto yystate224 case c == 's': goto yystate228 } yystate215: c = l.Next() switch { default: goto yyabort case c == 's': goto yystate216 } yystate216: c = l.Next() switch { default: goto yyabort case c == 't': goto yystate217 } yystate217: c = l.Next() switch { default: goto yyabort case c == 'r': goto yystate218 } yystate218: c = l.Next() switch { default: goto yyabort case c == 'a': goto yystate219 } yystate219: c = l.Next() switch { default: goto yyabort case c == 'c': goto yystate220 } yystate220: c = l.Next() switch { default: goto yyabort case c == 't': goto yystate221 } yystate221: c = l.Next() yyrule = 7 l.Mark() goto yyrule7 yystate222: c = l.Next() switch { default: goto yyabort case c == 'd': goto yystate223 } yystate223: c = l.Next() yyrule = 75 l.Mark() goto yyrule75 yystate224: c = l.Next() switch { default: goto yyabort case c == 'r': goto yystate225 } yystate225: c = l.Next() switch { default: goto yyabort case c == 'a': goto yystate226 } yystate226: c = l.Next() switch { default: goto yyabort case c == 'y': goto yystate227 } yystate227: c = l.Next() yyrule = 8 l.Mark() goto yyrule8 yystate228: c = l.Next() yyrule = 9 l.Mark() goto yyrule9 yystate229: c = l.Next() yyrule = 147 l.Mark() switch { default: goto yyrule147 case c == '"': goto yystate230 case c == '<': goto yystate231 case c == 'r': goto yystate233 } yystate230: c = l.Next() yyrule = 125 l.Mark() goto yyrule125 yystate231: c = l.Next() switch { default: goto yyabort case c == '<': goto yystate232 } yystate232: c = l.Next() switch { default: goto yyabort case c == '<': goto yystate126 } yystate233: c = l.Next() switch { default: goto yyabort case c == 'e': goto yystate234 } yystate234: c = l.Next() switch { default: goto yyabort case c == 'a': goto yystate235 } yystate235: c = l.Next() switch { default: goto yyabort case c == 'k': goto yystate236 } yystate236: c = l.Next() yyrule = 10 l.Mark() goto yyrule10 yystate237: c = l.Next() yyrule = 147 l.Mark() switch { default: goto yyrule147 case c == 'a': goto yystate238 case c == 'f': goto yystate250 case c == 'l': goto yystate258 case c == 'o': goto yystate265 } yystate238: c = l.Next() switch { default: goto yyabort case c == 'l': goto yystate239 case c == 's': goto yystate245 case c == 't': goto yystate247 } yystate239: c = l.Next() switch { default: goto yyabort case c == 'l': goto yystate240 } yystate240: c = l.Next() switch { default: goto yyabort case c == 'a': goto yystate241 } yystate241: c = l.Next() switch { default: goto yyabort case c == 'b': goto yystate242 } yystate242: c = l.Next() switch { default: goto yyabort case c == 'l': goto yystate243 } yystate243: c = l.Next() switch { default: goto yyabort case c == 'e': goto yystate244 } yystate244: c = l.Next() yyrule = 11 l.Mark() goto yyrule11 yystate245: c = l.Next() switch { default: goto yyabort case c == 'e': goto yystate246 } yystate246: c = l.Next() yyrule = 12 l.Mark() goto yyrule12 yystate247: c = l.Next() switch { default: goto yyabort case c == 'c': goto yystate248 } yystate248: c = l.Next() switch { default: goto yyabort case c == 'h': goto yystate249 } yystate249: c = l.Next() yyrule = 13 l.Mark() goto yyrule13 yystate250: c = l.Next() switch { default: goto yyabort case c == 'u': goto yystate251 } yystate251: c = l.Next() switch { default: goto yyabort case c == 'n': goto yystate252 } yystate252: c = l.Next() switch { default: goto yyabort case c == 'c': goto yystate253 } yystate253: c = l.Next() switch { default: goto yyabort case c == 't': goto yystate254 } yystate254: c = l.Next() switch { default: goto yyabort case c == 'i': goto yystate255 } yystate255: c = l.Next() switch { default: goto yyabort case c == 'o': goto yystate256 } yystate256: c = l.Next() switch { default: goto yyabort case c == 'n': goto yystate257 } yystate257: c = l.Next() yyrule = 36 l.Mark() goto yyrule36 yystate258: c = l.Next() switch { default: goto yyabort case c == 'a': goto yystate259 case c == 'o': goto yystate262 } yystate259: c = l.Next() switch { default: goto yyabort case c == 's': goto yystate260 } yystate260: c = l.Next() switch { default: goto yyabort case c == 's': goto yystate261 } yystate261: c = l.Next() yyrule = 14 l.Mark() goto yyrule14 yystate262: c = l.Next() switch { default: goto yyabort case c == 'n': goto yystate263 } yystate263: c = l.Next() switch { default: goto yyabort case c == 'e': goto yystate264 } yystate264: c = l.Next() yyrule = 15 l.Mark() goto yyrule15 yystate265: c = l.Next() switch { default: goto yyabort case c == 'n': goto yystate266 } yystate266: c = l.Next() switch { default: goto yyabort case c == 's': goto yystate267 case c == 't': goto yystate269 } yystate267: c = l.Next() switch { default: goto yyabort case c == 't': goto yystate268 } yystate268: c = l.Next() yyrule = 16 l.Mark() goto yyrule16 yystate269: c = l.Next() switch { default: goto yyabort case c == 'i': goto yystate270 } yystate270: c = l.Next() switch { default: goto yyabort case c == 'n': goto yystate271 } yystate271: c = l.Next() switch { default: goto yyabort case c == 'u': goto yystate272 } yystate272: c = l.Next() switch { default: goto yyabort case c == 'e': goto yystate273 } yystate273: c = l.Next() yyrule = 17 l.Mark() goto yyrule17 yystate274: c = l.Next() yyrule = 147 l.Mark() switch { default: goto yyrule147 case c == 'e': goto yystate275 case c == 'i': goto yystate286 case c == 'o': goto yystate288 } yystate275: c = l.Next() switch { default: goto yyabort case c == 'c': goto yystate276 case c == 'f': goto yystate281 } yystate276: c = l.Next() switch { default: goto yyabort case c == 'l': goto yystate277 } yystate277: c = l.Next() switch { default: goto yyabort case c == 'a': goto yystate278 } yystate278: c = l.Next() switch { default: goto yyabort case c == 'r': goto yystate279 } yystate279: c = l.Next() switch { default: goto yyabort case c == 'e': goto yystate280 } yystate280: c = l.Next() yyrule = 18 l.Mark() goto yyrule18 yystate281: c = l.Next() switch { default: goto yyabort case c == 'a': goto yystate282 } yystate282: c = l.Next() switch { default: goto yyabort case c == 'u': goto yystate283 } yystate283: c = l.Next() switch { default: goto yyabort case c == 'l': goto yystate284 } yystate284: c = l.Next() switch { default: goto yyabort case c == 't': goto yystate285 } yystate285: c = l.Next() yyrule = 19 l.Mark() goto yyrule19 yystate286: c = l.Next() switch { default: goto yyabort case c == 'e': goto yystate287 } yystate287: c = l.Next() yyrule = 30 l.Mark() goto yyrule30 yystate288: c = l.Next() yyrule = 20 l.Mark() goto yyrule20 yystate289: c = l.Next() yyrule = 147 l.Mark() switch { default: goto yyrule147 case c == 'c': goto yystate290 case c == 'l': goto yystate293 case c == 'm': goto yystate298 case c == 'n': goto yystate302 case c == 'x': goto yystate324 } yystate290: c = l.Next() switch { default: goto yyabort case c == 'h': goto yystate291 } yystate291: c = l.Next() switch { default: goto yyabort case c == 'o': goto yystate292 } yystate292: c = l.Next() yyrule = 21 l.Mark() goto yyrule21 yystate293: c = l.Next() switch { default: goto yyabort case c == 's': goto yystate294 } yystate294: c = l.Next() switch { default: goto yyabort case c == 'e': goto yystate295 } yystate295: c = l.Next() yyrule = 22 l.Mark() switch { default: goto yyrule22 case c == 'i': goto yystate296 } yystate296: c = l.Next() switch { default: goto yyabort case c == 'f': goto yystate297 } yystate297: c = l.Next() yyrule = 23 l.Mark() goto yyrule23 yystate298: c = l.Next() switch { default: goto yyabort case c == 'p': goto yystate299 } yystate299: c = l.Next() switch { default: goto yyabort case c == 't': goto yystate300 } yystate300: c = l.Next() switch { default: goto yyabort case c == 'y': goto yystate301 } yystate301: c = l.Next() yyrule = 24 l.Mark() goto yyrule24 yystate302: c = l.Next() switch { default: goto yyabort case c == 'd': goto yystate303 } yystate303: c = l.Next() switch { default: goto yyabort case c == 'f': goto yystate304 case c == 'i': goto yystate311 case c == 's': goto yystate313 case c == 'w': goto yystate319 } yystate304: c = l.Next() switch { default: goto yyabort case c == 'o': goto yystate305 } yystate305: c = l.Next() switch { default: goto yyabort case c == 'r': goto yystate306 } yystate306: c = l.Next() yyrule = 25 l.Mark() switch { default: goto yyrule25 case c == 'e': goto yystate307 } yystate307: c = l.Next() switch { default: goto yyabort case c == 'a': goto yystate308 } yystate308: c = l.Next() switch { default: goto yyabort case c == 'c': goto yystate309 } yystate309: c = l.Next() switch { default: goto yyabort case c == 'h': goto yystate310 } yystate310: c = l.Next() yyrule = 26 l.Mark() goto yyrule26 yystate311: c = l.Next() switch { default: goto yyabort case c == 'f': goto yystate312 } yystate312: c = l.Next() yyrule = 27 l.Mark() goto yyrule27 yystate313: c = l.Next() switch { default: goto yyabort case c == 'w': goto yystate314 } yystate314: c = l.Next() switch { default: goto yyabort case c == 'i': goto yystate315 } yystate315: c = l.Next() switch { default: goto yyabort case c == 't': goto yystate316 } yystate316: c = l.Next() switch { default: goto yyabort case c == 'c': goto yystate317 } yystate317: c = l.Next() switch { default: goto yyabort case c == 'h': goto yystate318 } yystate318: c = l.Next() yyrule = 28 l.Mark() goto yyrule28 yystate319: c = l.Next() switch { default: goto yyabort case c == 'h': goto yystate320 } yystate320: c = l.Next() switch { default: goto yyabort case c == 'i': goto yystate321 } yystate321: c = l.Next() switch { default: goto yyabort case c == 'l': goto yystate322 } yystate322: c = l.Next() switch { default: goto yyabort case c == 'e': goto yystate323 } yystate323: c = l.Next() yyrule = 29 l.Mark() goto yyrule29 yystate324: c = l.Next() switch { default: goto yyabort case c == 'i': goto yystate325 case c == 't': goto yystate326 } yystate325: c = l.Next() switch { default: goto yyabort case c == 't': goto yystate287 } yystate326: c = l.Next() switch { default: goto yyabort case c == 'e': goto yystate327 } yystate327: c = l.Next() switch { default: goto yyabort case c == 'n': goto yystate328 } yystate328: c = l.Next() switch { default: goto yyabort case c == 'd': goto yystate329 } yystate329: c = l.Next() switch { default: goto yyabort case c == 's': goto yystate330 } yystate330: c = l.Next() yyrule = 31 l.Mark() goto yyrule31 yystate331: c = l.Next() yyrule = 147 l.Mark() switch { default: goto yyrule147 case c == 'i': goto yystate332 case c == 'o': goto yystate338 case c == 'u': goto yystate251 } yystate332: c = l.Next() switch { default: goto yyabort case c == 'n': goto yystate333 } yystate333: c = l.Next() switch { default: goto yyabort case c == 'a': goto yystate334 } yystate334: c = l.Next() switch { default: goto yyabort case c == 'l': goto yystate335 } yystate335: c = l.Next() yyrule = 32 l.Mark() switch { default: goto yyrule32 case c == 'l': goto yystate336 } yystate336: c = l.Next() switch { default: goto yyabort case c == 'y': goto yystate337 } yystate337: c = l.Next() yyrule = 33 l.Mark() goto yyrule33 yystate338: c = l.Next() switch { default: goto yyabort case c == 'r': goto yystate339 } yystate339: c = l.Next() yyrule = 34 l.Mark() switch { default: goto yyrule34 case c == 'e': goto yystate340 } yystate340: c = l.Next() switch { default: goto yyabort case c == 'a': goto yystate341 } yystate341: c = l.Next() switch { default: goto yyabort case c == 'c': goto yystate342 } yystate342: c = l.Next() switch { default: goto yyabort case c == 'h': goto yystate343 } yystate343: c = l.Next() yyrule = 35 l.Mark() goto yyrule35 yystate344: c = l.Next() yyrule = 147 l.Mark() switch { default: goto yyrule147 case c == 'l': goto yystate345 case c == 'o': goto yystate350 } yystate345: c = l.Next() switch { default: goto yyabort case c == 'o': goto yystate346 } yystate346: c = l.Next() switch { default: goto yyabort case c == 'b': goto yystate347 } yystate347: c = l.Next() switch { default: goto yyabort case c == 'a': goto yystate348 } yystate348: c = l.Next() switch { default: goto yyabort case c == 'l': goto yystate349 } yystate349: c = l.Next() yyrule = 37 l.Mark() goto yyrule37 yystate350: c = l.Next() switch { default: goto yyabort case c == 't': goto yystate351 } yystate351: c = l.Next() switch { default: goto yyabort case c == 'o': goto yystate352 } yystate352: c = l.Next() yyrule = 38 l.Mark() goto yyrule38 yystate353: c = l.Next() yyrule = 147 l.Mark() switch { default: goto yyrule147 case c == 'f': goto yystate354 case c == 'm': goto yystate355 case c == 'n': goto yystate364 } yystate354: c = l.Next() yyrule = 39 l.Mark() goto yyrule39 yystate355: c = l.Next() switch { default: goto yyabort case c == 'p': goto yystate356 } yystate356: c = l.Next() switch { default: goto yyabort case c == 'l': goto yystate357 } yystate357: c = l.Next() switch { default: goto yyabort case c == 'e': goto yystate358 } yystate358: c = l.Next() switch { default: goto yyabort case c == 'm': goto yystate359 } yystate359: c = l.Next() switch { default: goto yyabort case c == 'e': goto yystate360 } yystate360: c = l.Next() switch { default: goto yyabort case c == 'n': goto yystate361 } yystate361: c = l.Next() switch { default: goto yyabort case c == 't': goto yystate362 } yystate362: c = l.Next() switch { default: goto yyabort case c == 's': goto yystate363 } yystate363: c = l.Next() yyrule = 40 l.Mark() goto yyrule40 yystate364: c = l.Next() switch { default: goto yyabort case c == 's': goto yystate365 case c == 't': goto yystate378 } yystate365: c = l.Next() switch { default: goto yyabort case c == 't': goto yystate366 } yystate366: c = l.Next() switch { default: goto yyabort case c == 'a': goto yystate367 case c == 'e': goto yystate373 } yystate367: c = l.Next() switch { default: goto yyabort case c == 'n': goto yystate368 } yystate368: c = l.Next() switch { default: goto yyabort case c == 'c': goto yystate369 } yystate369: c = l.Next() switch { default: goto yyabort case c == 'e': goto yystate370 } yystate370: c = l.Next() switch { default: goto yyabort case c == 'o': goto yystate371 } yystate371: c = l.Next() switch { default: goto yyabort case c == 'f': goto yystate372 } yystate372: c = l.Next() yyrule = 41 l.Mark() goto yyrule41 yystate373: c = l.Next() switch { default: goto yyabort case c == 'a': goto yystate374 } yystate374: c = l.Next() switch { default: goto yyabort case c == 'd': goto yystate375 } yystate375: c = l.Next() switch { default: goto yyabort case c == 'o': goto yystate376 } yystate376: c = l.Next() switch { default: goto yyabort case c == 'f': goto yystate377 } yystate377: c = l.Next() yyrule = 42 l.Mark() goto yyrule42 yystate378: c = l.Next() switch { default: goto yyabort case c == 'e': goto yystate379 } yystate379: c = l.Next() switch { default: goto yyabort case c == 'r': goto yystate380 } yystate380: c = l.Next() switch { default: goto yyabort case c == 'f': goto yystate381 } yystate381: c = l.Next() switch { default: goto yyabort case c == 'a': goto yystate382 } yystate382: c = l.Next() switch { default: goto yyabort case c == 'c': goto yystate383 } yystate383: c = l.Next() switch { default: goto yyabort case c == 'e': goto yystate384 } yystate384: c = l.Next() yyrule = 43 l.Mark() goto yyrule43 yystate385: c = l.Next() yyrule = 147 l.Mark() switch { default: goto yyrule147 case c == 'a': goto yystate386 case c == 'e': goto yystate394 } yystate386: c = l.Next() switch { default: goto yyabort case c == 'm': goto yystate387 } yystate387: c = l.Next() switch { default: goto yyabort case c == 'e': goto yystate388 } yystate388: c = l.Next() switch { default: goto yyabort case c == 's': goto yystate389 } yystate389: c = l.Next() switch { default: goto yyabort case c == 'p': goto yystate390 } yystate390: c = l.Next() switch { default: goto yyabort case c == 'a': goto yystate391 } yystate391: c = l.Next() switch { default: goto yyabort case c == 'c': goto yystate392 } yystate392: c = l.Next() switch { default: goto yyabort case c == 'e': goto yystate393 } yystate393: c = l.Next() yyrule = 44 l.Mark() goto yyrule44 yystate394: c = l.Next() switch { default: goto yyabort case c == 'w': goto yystate395 } yystate395: c = l.Next() yyrule = 74 l.Mark() goto yyrule74 yystate396: c = l.Next() yyrule = 147 l.Mark() switch { default: goto yyrule147 case c == 'r': goto yystate397 } yystate397: c = l.Next() yyrule = 76 l.Mark() goto yyrule76 yystate398: c = l.Next() yyrule = 147 l.Mark() switch { default: goto yyrule147 case c == 'r': goto yystate399 case c == 'u': goto yystate412 } yystate399: c = l.Next() switch { default: goto yyabort case c == 'i': goto yystate400 case c == 'o': goto yystate405 } yystate400: c = l.Next() switch { default: goto yyabort case c == 'v': goto yystate401 } yystate401: c = l.Next() switch { default: goto yyabort case c == 'a': goto yystate402 } yystate402: c = l.Next() switch { default: goto yyabort case c == 't': goto yystate403 } yystate403: c = l.Next() switch { default: goto yyabort case c == 'e': goto yystate404 } yystate404: c = l.Next() yyrule = 45 l.Mark() goto yyrule45 yystate405: c = l.Next() switch { default: goto yyabort case c == 't': goto yystate406 } yystate406: c = l.Next() switch { default: goto yyabort case c == 'e': goto yystate407 } yystate407: c = l.Next() switch { default: goto yyabort case c == 'c': goto yystate408 } yystate408: c = l.Next() switch { default: goto yyabort case c == 't': goto yystate409 } yystate409: c = l.Next() switch { default: goto yyabort case c == 'e': goto yystate410 } yystate410: c = l.Next() switch { default: goto yyabort case c == 'd': goto yystate411 } yystate411: c = l.Next() yyrule = 47 l.Mark() goto yyrule47 yystate412: c = l.Next() switch { default: goto yyabort case c == 'b': goto yystate413 } yystate413: c = l.Next() switch { default: goto yyabort case c == 'l': goto yystate414 } yystate414: c = l.Next() switch { default: goto yyabort case c == 'i': goto yystate415 } yystate415: c = l.Next() switch { default: goto yyabort case c == 'c': goto yystate416 } yystate416: c = l.Next() yyrule = 46 l.Mark() goto yyrule46 yystate417: c = l.Next() yyrule = 147 l.Mark() switch { default: goto yyrule147 case c == 'e': goto yystate418 } yystate418: c = l.Next() switch { default: goto yyabort case c == 't': goto yystate419 } yystate419: c = l.Next() switch { default: goto yyabort case c == 'u': goto yystate420 } yystate420: c = l.Next() switch { default: goto yyabort case c == 'r': goto yystate421 } yystate421: c = l.Next() switch { default: goto yyabort case c == 'n': goto yystate422 } yystate422: c = l.Next() yyrule = 48 l.Mark() goto yyrule48 yystate423: c = l.Next() yyrule = 147 l.Mark() switch { default: goto yyrule147 case c == 't': goto yystate424 case c == 'w': goto yystate429 } yystate424: c = l.Next() switch { default: goto yyabort case c == 'a': goto yystate425 } yystate425: c = l.Next() switch { default: goto yyabort case c == 't': goto yystate426 } yystate426: c = l.Next() switch { default: goto yyabort case c == 'i': goto yystate427 } yystate427: c = l.Next() switch { default: goto yyabort case c == 'c': goto yystate428 } yystate428: c = l.Next() yyrule = 49 l.Mark() goto yyrule49 yystate429: c = l.Next() switch { default: goto yyabort case c == 'i': goto yystate430 } yystate430: c = l.Next() switch { default: goto yyabort case c == 't': goto yystate431 } yystate431: c = l.Next() switch { default: goto yyabort case c == 'c': goto yystate432 } yystate432: c = l.Next() switch { default: goto yyabort case c == 'h': goto yystate433 } yystate433: c = l.Next() yyrule = 50 l.Mark() goto yyrule50 yystate434: c = l.Next() yyrule = 147 l.Mark() switch { default: goto yyrule147 case c == 'h': goto yystate435 case c == 'r': goto yystate439 } yystate435: c = l.Next() switch { default: goto yyabort case c == 'r': goto yystate436 } yystate436: c = l.Next() switch { default: goto yyabort case c == 'o': goto yystate437 } yystate437: c = l.Next() switch { default: goto yyabort case c == 'w': goto yystate438 } yystate438: c = l.Next() yyrule = 51 l.Mark() goto yyrule51 yystate439: c = l.Next() switch { default: goto yyabort case c == 'a': goto yystate440 case c == 'y': goto yystate443 } yystate440: c = l.Next() switch { default: goto yyabort case c == 'i': goto yystate441 } yystate441: c = l.Next() switch { default: goto yyabort case c == 't': goto yystate442 } yystate442: c = l.Next() yyrule = 52 l.Mark() goto yyrule52 yystate443: c = l.Next() yyrule = 53 l.Mark() goto yyrule53 yystate444: c = l.Next() yyrule = 147 l.Mark() switch { default: goto yyrule147 case c == 's': goto yystate445 } yystate445: c = l.Next() switch { default: goto yyabort case c == 'e': goto yystate446 } yystate446: c = l.Next() yyrule = 54 l.Mark() goto yyrule54 yystate447: c = l.Next() yyrule = 147 l.Mark() switch { default: goto yyrule147 case c == 'a': goto yystate448 } yystate448: c = l.Next() switch { default: goto yyabort case c == 'r': goto yystate449 } yystate449: c = l.Next() yyrule = 55 l.Mark() goto yyrule55 yystate450: c = l.Next() yyrule = 147 l.Mark() switch { default: goto yyrule147 case c == 'h': goto yystate451 } yystate451: c = l.Next() switch { default: goto yyabort case c == 'i': goto yystate452 } yystate452: c = l.Next() switch { default: goto yyabort case c == 'l': goto yystate453 } yystate453: c = l.Next() switch { default: goto yyabort case c == 'e': goto yystate454 } yystate454: c = l.Next() yyrule = 56 l.Mark() goto yyrule56 yystate455: c = l.Next() yyrule = 147 l.Mark() switch { default: goto yyrule147 case c == 'o': goto yystate456 } yystate456: c = l.Next() switch { default: goto yyabort case c == 'r': goto yystate457 } yystate457: c = l.Next() yyrule = 77 l.Mark() goto yyrule77 yystate458: c = l.Next() yyrule = 147 l.Mark() switch { default: goto yyrule147 case c == 'i': goto yystate459 } yystate459: c = l.Next() switch { default: goto yyabort case c == 'e': goto yystate460 } yystate460: c = l.Next() switch { default: goto yyabort case c == 'l': goto yystate461 } yystate461: c = l.Next() switch { default: goto yyabort case c == 'd': goto yystate462 } yystate462: c = l.Next() yyrule = 58 l.Mark() switch { default: goto yyrule58 case c == '\t' || c == '\n' || c == '\r' || c == ' ': goto yystate463 } yystate463: c = l.Next() switch { default: goto yyabort case c == '\t' || c == '\n' || c == '\r' || c == ' ': goto yystate463 case c == 'f': goto yystate464 } yystate464: c = l.Next() switch { default: goto yyabort case c == 'r': goto yystate465 } yystate465: c = l.Next() switch { default: goto yyabort case c == 'o': goto yystate466 } yystate466: c = l.Next() switch { default: goto yyabort case c == 'm': goto yystate467 } yystate467: c = l.Next() switch { default: goto yyabort case c >= '\x01' && c <= '/' || c >= ':' && c <= '@' || c >= '[' && c <= '^' || c == '`' || c >= '{' && c <= '\u007f': goto yystate468 } yystate468: c = l.Next() yyrule = 57 l.Mark() goto yyrule57 yystate469: c = l.Next() yyrule = 110 l.Mark() switch { default: goto yyrule110 case c == '=': goto yystate470 case c == '|': goto yystate471 } yystate470: c = l.Next() yyrule = 84 l.Mark() goto yyrule84 yystate471: c = l.Next() yyrule = 82 l.Mark() goto yyrule82 yystate472: c = l.Next() yyrule = 111 l.Mark() goto yyrule111 goto yystate473 // silence unused label error yystate473: c = l.Next() yystart473: switch { default: goto yyabort case c == '"': goto yystate475 case c == '$': goto yystate476 case c == '{': goto yystate478 case c >= '\x01' && c <= '\t' || c >= '\v' && c <= '!' || c == '#' || c >= '%' && c <= 'z' || c >= '|' && c <= 'ÿ': goto yystate474 } yystate474: c = l.Next() yyrule = 130 l.Mark() goto yyrule130 yystate475: c = l.Next() yyrule = 126 l.Mark() goto yyrule126 yystate476: c = l.Next() yyrule = 129 l.Mark() switch { default: goto yyrule129 case c == '{': goto yystate477 } yystate477: c = l.Next() yyrule = 128 l.Mark() goto yyrule128 yystate478: c = l.Next() yyrule = 130 l.Mark() switch { default: goto yyrule130 case c == '$': goto yystate479 } yystate479: c = l.Next() yyrule = 127 l.Mark() goto yyrule127 goto yystate480 // silence unused label error yystate480: c = l.Next() yystart480: switch { default: goto yyabort case c == '$': goto yystate482 case c == '-': goto yystate484 case c == '[': goto yystate489 case c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': goto yystate487 case c >= '\x01' && c <= '#' || c >= '%' && c <= ',' || c >= '.' && c <= '@' || c >= '\\' && c <= '^' || c == '`' || c >= '{' && c <= '~': goto yystate481 } yystate481: c = l.Next() yyrule = 137 l.Mark() goto yyrule137 yystate482: c = l.Next() yyrule = 137 l.Mark() switch { default: goto yyrule137 case c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': goto yystate483 } yystate483: c = l.Next() yyrule = 133 l.Mark() switch { default: goto yyrule133 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': goto yystate483 } yystate484: c = l.Next() yyrule = 137 l.Mark() switch { default: goto yyrule137 case c == '>': goto yystate485 } yystate485: c = l.Next() switch { default: goto yyabort case c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': goto yystate486 } yystate486: c = l.Next() yyrule = 134 l.Mark() switch { default: goto yyrule134 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': goto yystate486 } yystate487: c = l.Next() yyrule = 135 l.Mark() switch { default: goto yyrule135 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': goto yystate488 } yystate488: c = l.Next() yyrule = 135 l.Mark() switch { default: goto yyrule135 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': goto yystate488 } yystate489: c = l.Next() yyrule = 136 l.Mark() goto yyrule136 goto yystate490 // silence unused label error yystate490: c = l.Next() yystart490: switch { default: goto yyabort case c == '!' || c == '%' || c == '&' || c >= '(' && c <= '/' || c >= ':' && c <= '@' || c == '[' || c == '^' || c == '|' || c == '~': goto yystate494 case c == '$': goto yystate495 case c == '\n': goto yystate493 case c == '\t' || c == '\r' || c == ' ' || c == '#' || c == '\'' || c == '\\': goto yystate492 case c == ']': goto yystate501 case c >= '0' && c <= '9': goto yystate497 case c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': goto yystate499 case c >= '\x01' && c <= '\b' || c == '\v' || c == '\f' || c >= '\x0e' && c <= '\x1f' || c == '"' || c == '`' || c == '{' || c == '}': goto yystate491 } yystate491: c = l.Next() yyrule = 144 l.Mark() goto yyrule144 yystate492: c = l.Next() yyrule = 142 l.Mark() goto yyrule142 yystate493: c = l.Next() yyrule = 142 l.Mark() goto yyrule142 yystate494: c = l.Next() yyrule = 143 l.Mark() goto yyrule143 yystate495: c = l.Next() yyrule = 143 l.Mark() switch { default: goto yyrule143 case c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': goto yystate496 } yystate496: c = l.Next() yyrule = 139 l.Mark() switch { default: goto yyrule139 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': goto yystate496 } yystate497: c = l.Next() yyrule = 138 l.Mark() switch { default: goto yyrule138 case c >= '0' && c <= '9': goto yystate498 } yystate498: c = l.Next() yyrule = 138 l.Mark() switch { default: goto yyrule138 case c >= '0' && c <= '9': goto yystate498 } yystate499: c = l.Next() yyrule = 140 l.Mark() switch { default: goto yyrule140 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': goto yystate500 } yystate500: c = l.Next() yyrule = 140 l.Mark() switch { default: goto yyrule140 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': goto yystate500 } yystate501: c = l.Next() yyrule = 141 l.Mark() goto yyrule141 goto yystate502 // silence unused label error yystate502: c = l.Next() yystart502: switch { default: goto yyabort case c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': goto yystate504 case c >= '\x01' && c <= '\t' || c >= '\v' && c <= '@' || c >= '[' && c <= '^' || c == '`' || c >= '{' && c <= '~': goto yystate503 } yystate503: c = l.Next() yyrule = 146 l.Mark() goto yyrule146 yystate504: c = l.Next() yyrule = 146 l.Mark() switch { default: goto yyrule146 case c == '[' || c == '}': goto yystate506 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': goto yystate505 } yystate505: c = l.Next() switch { default: goto yyabort case c == '[' || c == '}': goto yystate506 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': goto yystate505 } yystate506: c = l.Next() yyrule = 145 l.Mark() goto yyrule145 goto yystate507 // silence unused label error yystate507: c = l.Next() yystart507: switch { default: goto yyabort case c == '-': goto yystate511 case c == '\n': goto yystate510 case c == '\t' || c == '\r' || c == ' ': goto yystate509 case c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': goto yystate513 case c >= '\x01' && c <= '\b' || c == '\v' || c == '\f' || c >= '\x0e' && c <= '\x1f' || c >= '!' && c <= ',' || c >= '.' && c <= '@' || c >= '[' && c <= '^' || c == '`' || c >= '{' && c <= '~': goto yystate508 } yystate508: c = l.Next() yyrule = 117 l.Mark() goto yyrule117 yystate509: c = l.Next() yyrule = 114 l.Mark() switch { default: goto yyrule114 case c == '\t' || c == '\n' || c == '\r' || c == ' ': goto yystate510 } yystate510: c = l.Next() yyrule = 114 l.Mark() switch { default: goto yyrule114 case c == '\t' || c == '\n' || c == '\r' || c == ' ': goto yystate510 } yystate511: c = l.Next() yyrule = 117 l.Mark() switch { default: goto yyrule117 case c == '>': goto yystate512 } yystate512: c = l.Next() yyrule = 115 l.Mark() goto yyrule115 yystate513: c = l.Next() yyrule = 116 l.Mark() switch { default: goto yyrule116 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': goto yystate514 } yystate514: c = l.Next() yyrule = 116 l.Mark() switch { default: goto yyrule116 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': goto yystate514 } goto yystate515 // silence unused label error yystate515: c = l.Next() yystart515: switch { default: goto yyabort case c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': goto yystate517 case c >= '\x01' && c <= '\t' || c >= '\v' && c <= '@' || c >= '[' && c <= '^' || c == '`' || c >= '{' && c <= '~': goto yystate516 } yystate516: c = l.Next() yyrule = 124 l.Mark() goto yyrule124 yystate517: c = l.Next() yyrule = 124 l.Mark() switch { default: goto yyrule124 case c == ';': goto yystate519 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': goto yystate518 } yystate518: c = l.Next() switch { default: goto yyabort case c == ';': goto yystate519 case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': goto yystate518 } yystate519: c = l.Next() yyrule = 123 l.Mark() goto yyrule123 goto yystate520 // silence unused label error yystate520: c = l.Next() yystart520: switch { default: goto yyabort case c >= '\x01' && c <= '\t' || c >= '\v' && c <= 'ÿ': goto yystate521 } yystate521: c = l.Next() yyrule = 122 l.Mark() goto yyrule122 goto yystate522 // silence unused label error yystate522: c = l.Next() yystart522: switch { default: goto yyabort case c == '$': goto yystate524 case c == '{': goto yystate525 case c >= '\x01' && c <= '#' || c >= '%' && c <= 'z' || c >= '|' && c <= 'ÿ': goto yystate523 } yystate523: c = l.Next() yyrule = 132 l.Mark() goto yyrule132 yystate524: c = l.Next() yyrule = 129 l.Mark() switch { default: goto yyrule129 case c == '{': goto yystate477 } yystate525: c = l.Next() yyrule = 132 l.Mark() switch { default: goto yyrule132 case c == '$': goto yystate479 } goto yystate526 // silence unused label error yystate526: c = l.Next() yystart526: switch { default: goto yyabort case c == '$': goto yystate528 case c == '`': goto yystate529 case c == '{': goto yystate530 case c >= '\x01' && c <= '\t' || c >= '\v' && c <= '#' || c >= '%' && c <= '_' || c >= 'a' && c <= 'z' || c >= '|' && c <= 'ÿ': goto yystate527 } yystate527: c = l.Next() yyrule = 131 l.Mark() goto yyrule131 yystate528: c = l.Next() yyrule = 129 l.Mark() switch { default: goto yyrule129 case c == '{': goto yystate477 } yystate529: c = l.Next() yyrule = 120 l.Mark() goto yyrule120 yystate530: c = l.Next() yyrule = 131 l.Mark() switch { default: goto yyrule131 case c == '$': goto yystate479 } 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: // (#|[/][/]){NEW_LINE} { 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("}") popState() goto yystate0 } yyrule112: // \${VAR_NAME} { fmt.Printf("T_VARIABLE: %q\n", l.TokenBytes(nil)) goto yystate0 } yyrule113: // -> { fmt.Println("T_OBJECT_OPERATOR") begin(PROPERTY) goto yystate0 } yyrule114: // [ \t\n\r]+ { fmt.Println("T_WHITESPACE") goto yystate0 } yyrule115: // -> { fmt.Println("T_OBJECT_OPERATOR") goto yystate0 } yyrule116: // {VAR_NAME} { fmt.Println("T_STRING") begin(PHP) goto yystate0 } yyrule117: // . { l.ungetN(1) begin(PHP) goto yystate0 } yyrule118: // [\']([^\\\']*([\\][\'])*)*[\'] { fmt.Printf("T_CONSTANT_ENCAPSED_STRING: %s\n", l.TokenBytes(nil)) goto yystate0 } yyrule119: // ` { fmt.Println("`") begin(BACKQUOTE) goto yystate0 } yyrule120: // ` { fmt.Println("`") begin(PHP) goto yystate0 } yyrule121: // [b]?\<\<\<[ \t]*({VAR_NAME}|([']{VAR_NAME}['])|(["]{VAR_NAME}["])){NEW_LINE} { tb := l.TokenBytes(nil) binPrefix := 0 if tb[0] == 'b' { binPrefix = 1 } lblFirst := 3 + binPrefix lblLast := len(tb) - 2 if tb[lblLast] == '\r' { lblLast-- } for { if tb[lblFirst] == ' ' || tb[lblFirst] == '\t' { lblFirst++ continue } break } switch tb[lblFirst] { case '\'': lblFirst++ lblLast-- begin(NOWDOC) case '"': lblFirst++ lblLast-- begin(HEREDOC) default: begin(HEREDOC) } heredocLabel = make([]byte, lblLast-lblFirst+1) copy(heredocLabel, tb[lblFirst:lblLast+1]) ungetCnt := len(heredocLabel) searchLabelAhead := []byte{} for i := 0; i < len(heredocLabel); i++ { if c == -1 { break } searchLabelAhead = append(searchLabelAhead, byte(rune(c))) c = l.Next() } if bytes.Equal(heredocLabel, searchLabelAhead) && ';' == rune(c) { ungetCnt++ c = l.Next() if '\n' == rune(c) || '\r' == rune(c) { begin(HEREDOC_END) } } l.ungetN(ungetCnt) fmt.Printf("T_START_HEREDOC: %q\n", tb) goto yystate0 } yyrule122: // . { searchLabel := []byte{} tb := []byte{} for { if c == -1 { break } if '\n' == rune(c) || '\r' == rune(c) { if bytes.Equal(append(heredocLabel, ';'), searchLabel) { begin(HEREDOC_END) tb = l.ungetN(len(heredocLabel) + 1) break } searchLabel = []byte{} } else { searchLabel = append(searchLabel, byte(rune(c))) } c = l.Next() } fmt.Printf("T_ENCAPSED_AND_WHITESPACE: %q\n", tb) goto yystate0 } yyrule123: // {VAR_NAME}\; { fmt.Printf("T_END_HEREDOC: %q\n", l.ungetN(1)) begin(PHP) goto yystate0 } yyrule124: // . { fmt.Printf("ERROR HEREDOC: %q\n", l.ungetN(1)) goto yystate0 } yyrule125: // [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 } yyrule126: // \" { fmt.Println("\"") popState() goto yystate0 } yyrule127: // \{\$ { fmt.Printf("T_CURLY_OPEN: %q\n", l.ungetN(1)) pushState(PHP) goto yystate0 } yyrule128: // \$\{ { fmt.Printf("T_DOLLAR_OPEN_CURLY_BRACES: %q\n", l.TokenBytes(nil)) pushState(STRING_VAR_NAME) goto yystate0 } yyrule129: // \$ { l.ungetN(1) pushState(STRING_VAR) goto yystate0 } yyrule130: // . { 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 } yyrule131: // . { F2: for { if c == -1 { break } switch c { case '`': fmt.Printf("T_ENCAPSED_AND_WHITESPACE: %s\n", l.TokenBytes(nil)) break F2 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 F2 } 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 F2 } l.ungetN(0) case '\\': c = l.Next() } c = l.Next() } goto yystate0 } yyrule132: // .|[ \t\n\r] { searchLabel := []byte{} tb := []byte{} HEREDOCFOR: for { if c == -1 { break } switch c { case '\n': fallthrough case '\r': if bytes.Equal(append(heredocLabel, ';'), searchLabel) { begin(HEREDOC_END) tb = l.ungetN(len(heredocLabel) + 1) break HEREDOCFOR } searchLabel = []byte{} case '$': c = l.Next() if rune(c) == '{' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ' { tb = l.ungetN(1) break HEREDOCFOR } l.ungetN(0) searchLabel = []byte{} case '{': c = l.Next() if rune(c) == '$' { tb = l.ungetN(1) break HEREDOCFOR } l.ungetN(0) searchLabel = []byte{} case '\\': c = l.Next() searchLabel = []byte{} default: searchLabel = append(searchLabel, byte(rune(c))) } c = l.Next() } fmt.Printf("T_ENCAPSED_AND_WHITESPACE(HEREDOC): %q\n", tb) goto yystate0 } yyrule133: // \${VAR_NAME} { fmt.Printf("T_VARIABLE: %q\n", l.TokenBytes(nil)) goto yystate0 } yyrule134: // ->{VAR_NAME} { fmt.Printf("T_OBJECT_OPERATOR: %q\n", l.ungetN(len(l.TokenBytes(nil))-2)) goto yystate0 } yyrule135: // {VAR_NAME} { fmt.Printf("T_STRING: %q\n", l.TokenBytes(nil)) popState() goto yystate0 } yyrule136: // \[ { fmt.Println("[") pushState(STRING_VAR_INDEX) goto yystate0 } yyrule137: // .|[ \t\n\r] { l.ungetN(1) popState() goto yystate0 } yyrule138: // {LNUM} { fmt.Printf("T_NUM_STRING: %q\n", l.TokenBytes(nil)) goto yystate0 } yyrule139: // \${VAR_NAME} { fmt.Printf("T_VARIABLE: %q\n", l.TokenBytes(nil)) goto yystate0 } yyrule140: // {VAR_NAME} { fmt.Printf("T_STRING: %q\n", l.TokenBytes(nil)) goto yystate0 } yyrule141: // \] { fmt.Println("\"]\"") popState() popState() goto yystate0 } yyrule142: // [ \n\r\t\\'#] { fmt.Printf("T_ENCAPSED_AND_WHITESPACE: %q\n", l.ungetN(1)) popState() popState() goto yystate0 } yyrule143: // {OPERATORS} { fmt.Printf("%q\n", l.TokenBytes(nil)) goto yystate0 } yyrule144: // . { fmt.Printf("%q\n", l.TokenBytes(nil)) goto yystate0 } yyrule145: // {VAR_NAME}[\[\}] { fmt.Printf("T_STRING_VARNAME: %q\n", l.ungetN(1)) popState() pushState(PHP) goto yystate0 } yyrule146: // . { l.ungetN(1) popState() pushState(PHP) goto yystate0 } yyrule147: // . { 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() }