php-parser/php-parser.go
2017-11-20 12:33:18 +02:00

6436 lines
84 KiB
Go

// 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()
}