mirror of
https://github.com/prometheus/prometheus.git
synced 2024-11-10 23:54:05 -08:00
72d7b325a1
This allows changing the time offset for individual instant and range vectors in a query. For example, this returns the value of `foo` 5 minutes in the past relative to the current query evaluation time: foo offset 5m Note that the `offset` modifier always needs to follow the selector immediately. I.e. the following would be correct: sum(foo offset 5m) // GOOD. While the following would be *incorrect*: sum(foo) offset 5m // INVALID. The same works for range vectors. This returns the 5-minutes-rate that `foo` had a week ago: rate(foo[5m] offset 1w) This change touches the following components: * Lexer/parser: additions to correctly parse the new `offset`/`OFFSET` keyword. * AST: vector and matrix nodes now have an additional `offset` field. This is used during their evaluation to adjust query and result times appropriately. * Query analyzer: now works on separate sets of ranges and instants per offset. Isolating different offsets from each other completely in this way keeps the preloading code relatively simple. No storage engine changes were needed by this change. The rules tests have been changed to not probe the internal implementation details of the query analyzer anymore (how many instants and ranges have been preloaded). This would also become too cumbersome to test with the new model, and measuring the result of the query should be sufficient. This fixes https://github.com/prometheus/prometheus/issues/529 This fixed https://github.com/prometheus/promdash/issues/201
2271 lines
44 KiB
Go
2271 lines
44 KiB
Go
/* Copyright 2013 The Prometheus Authors
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License. */
|
|
package rules
|
|
|
|
import (
|
|
"fmt"
|
|
"strconv"
|
|
"strings"
|
|
|
|
clientmodel "github.com/prometheus/client_golang/model"
|
|
)
|
|
|
|
// Lex is called by the parser generated by "go tool yacc" to obtain each
|
|
// token. The method is opened before the matching rules block and closed at
|
|
// the end of the file.
|
|
func (lexer *RulesLexer) Lex(lval *yySymType) int {
|
|
// Internal lexer states.
|
|
const (
|
|
S_INITIAL = iota
|
|
S_COMMENTS
|
|
)
|
|
|
|
// We simulate multiple start symbols for closely-related grammars via dummy tokens. See
|
|
// http://www.gnu.org/software/bison/manual/html_node/Multiple-start_002dsymbols.html
|
|
// Reason: we want to be able to parse lists of named rules as well as single expressions.
|
|
if lexer.startToken != 0 {
|
|
startToken := lexer.startToken
|
|
lexer.startToken = 0
|
|
return startToken
|
|
}
|
|
|
|
c := lexer.current
|
|
currentState := 0
|
|
|
|
if lexer.empty {
|
|
c, lexer.empty = lexer.getChar(), false
|
|
}
|
|
|
|
yystate0:
|
|
|
|
lexer.buf = lexer.buf[:0] // The code before the first rule executed before every scan cycle (rule #0 / state 0 action)
|
|
|
|
switch yyt := currentState; yyt {
|
|
default:
|
|
panic(fmt.Errorf(`invalid start condition %d`, yyt))
|
|
case 0: // start condition: INITIAL
|
|
goto yystart1
|
|
case 1: // start condition: S_COMMENTS
|
|
goto yystart162
|
|
}
|
|
|
|
goto yystate0 // silence unused label error
|
|
goto yystate1 // silence unused label error
|
|
yystate1:
|
|
c = lexer.getChar()
|
|
yystart1:
|
|
switch {
|
|
default:
|
|
goto yyabort
|
|
case c == '!':
|
|
goto yystate3
|
|
case c == '"':
|
|
goto yystate5
|
|
case c == '%' || c == '*':
|
|
goto yystate8
|
|
case c == '(' || c == ')' || c == ',' || c == '[' || c == ']' || c == '{' || c == '}':
|
|
goto yystate12
|
|
case c == '+':
|
|
goto yystate13
|
|
case c == '-':
|
|
goto yystate14
|
|
case c == '/':
|
|
goto yystate17
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == '<' || c == '>':
|
|
goto yystate24
|
|
case c == '=':
|
|
goto yystate25
|
|
case c == 'A':
|
|
goto yystate26
|
|
case c == 'B':
|
|
goto yystate36
|
|
case c == 'C':
|
|
goto yystate38
|
|
case c == 'D':
|
|
goto yystate42
|
|
case c == 'E' || c == 'G' || c == 'H' || c == 'J' || c == 'L' || c == 'N' || c == 'Q' || c == 'R' || c >= 'T' && c <= 'V' || c >= 'X' && c <= 'Z' || c == '_' || c == 'e' || c == 'g' || c == 'h' || c == 'j' || c == 'l' || c == 'n' || c == 'q' || c == 'r' || c >= 't' && c <= 'v' || c >= 'x' && c <= 'z':
|
|
goto yystate27
|
|
case c == 'F':
|
|
goto yystate53
|
|
case c == 'I':
|
|
goto yystate56
|
|
case c == 'K':
|
|
goto yystate58
|
|
case c == 'M':
|
|
goto yystate71
|
|
case c == 'O':
|
|
goto yystate74
|
|
case c == 'P':
|
|
goto yystate80
|
|
case c == 'S':
|
|
goto yystate89
|
|
case c == 'W':
|
|
goto yystate96
|
|
case c == '\'':
|
|
goto yystate9
|
|
case c == '\t' || c == '\n' || c == '\r' || c == ' ':
|
|
goto yystate2
|
|
case c == 'a':
|
|
goto yystate100
|
|
case c == 'b':
|
|
goto yystate107
|
|
case c == 'c':
|
|
goto yystate108
|
|
case c == 'd':
|
|
goto yystate112
|
|
case c == 'f':
|
|
goto yystate122
|
|
case c == 'i':
|
|
goto yystate124
|
|
case c == 'k':
|
|
goto yystate125
|
|
case c == 'm':
|
|
goto yystate137
|
|
case c == 'o':
|
|
goto yystate140
|
|
case c == 'p':
|
|
goto yystate145
|
|
case c == 's':
|
|
goto yystate153
|
|
case c == 'w':
|
|
goto yystate159
|
|
case c >= '0' && c <= '9':
|
|
goto yystate21
|
|
}
|
|
|
|
yystate2:
|
|
c = lexer.getChar()
|
|
goto yyrule28
|
|
|
|
yystate3:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyabort
|
|
case c == '=' || c == '~':
|
|
goto yystate4
|
|
}
|
|
|
|
yystate4:
|
|
c = lexer.getChar()
|
|
goto yyrule18
|
|
|
|
yystate5:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyabort
|
|
case c == '"':
|
|
goto yystate6
|
|
case c == '\\':
|
|
goto yystate7
|
|
case c >= '\x01' && c <= '!' || c >= '#' && c <= '[' || c >= ']' && c <= 'ÿ':
|
|
goto yystate5
|
|
}
|
|
|
|
yystate6:
|
|
c = lexer.getChar()
|
|
goto yyrule25
|
|
|
|
yystate7:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyabort
|
|
case c >= '\x01' && c <= '\t' || c >= '\v' && c <= 'ÿ':
|
|
goto yystate5
|
|
}
|
|
|
|
yystate8:
|
|
c = lexer.getChar()
|
|
goto yyrule20
|
|
|
|
yystate9:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyabort
|
|
case c == '\'':
|
|
goto yystate10
|
|
case c == '\\':
|
|
goto yystate11
|
|
case c >= '\x01' && c <= '&' || c >= '(' && c <= '[' || c >= ']' && c <= 'ÿ':
|
|
goto yystate9
|
|
}
|
|
|
|
yystate10:
|
|
c = lexer.getChar()
|
|
goto yyrule26
|
|
|
|
yystate11:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyabort
|
|
case c >= '\x01' && c <= '\t' || c >= '\v' && c <= 'ÿ':
|
|
goto yystate9
|
|
}
|
|
|
|
yystate12:
|
|
c = lexer.getChar()
|
|
goto yyrule27
|
|
|
|
yystate13:
|
|
c = lexer.getChar()
|
|
goto yyrule19
|
|
|
|
yystate14:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule19
|
|
case c >= '0' && c <= '9':
|
|
goto yystate15
|
|
}
|
|
|
|
yystate15:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule24
|
|
case c == '.':
|
|
goto yystate16
|
|
case c >= '0' && c <= '9':
|
|
goto yystate15
|
|
}
|
|
|
|
yystate16:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule24
|
|
case c >= '0' && c <= '9':
|
|
goto yystate16
|
|
}
|
|
|
|
yystate17:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule20
|
|
case c == '*':
|
|
goto yystate18
|
|
case c == '/':
|
|
goto yystate19
|
|
}
|
|
|
|
yystate18:
|
|
c = lexer.getChar()
|
|
goto yyrule1
|
|
|
|
yystate19:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyabort
|
|
case c == '\n':
|
|
goto yystate20
|
|
case c >= '\x01' && c <= '\t' || c == '\v' || c == '\f' || c >= '\x0e' && c <= 'ÿ':
|
|
goto yystate19
|
|
}
|
|
|
|
yystate20:
|
|
c = lexer.getChar()
|
|
goto yyrule4
|
|
|
|
yystate21:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule24
|
|
case c == '.':
|
|
goto yystate16
|
|
case c == 'd' || c == 'h' || c == 'm' || c == 's' || c == 'w' || c == 'y':
|
|
goto yystate22
|
|
case c >= '0' && c <= '9':
|
|
goto yystate21
|
|
}
|
|
|
|
yystate22:
|
|
c = lexer.getChar()
|
|
goto yyrule21
|
|
|
|
yystate23:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule23
|
|
case c >= '0' && c <= ':' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate23
|
|
}
|
|
|
|
yystate24:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule17
|
|
case c == '=':
|
|
goto yystate4
|
|
}
|
|
|
|
yystate25:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule27
|
|
case c == '=' || c == '~':
|
|
goto yystate4
|
|
}
|
|
|
|
yystate26:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'L':
|
|
goto yystate28
|
|
case c == 'N':
|
|
goto yystate32
|
|
case c == 'V':
|
|
goto yystate34
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'K' || c == 'M' || c >= 'O' && c <= 'U' || c >= 'W' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate27:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate28:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'E':
|
|
goto yystate29
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate29:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'R':
|
|
goto yystate30
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Q' || c >= 'S' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate30:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'T':
|
|
goto yystate31
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate31:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule5
|
|
case c == ':':
|
|
goto yystate23
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate32:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'D':
|
|
goto yystate33
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'C' || c >= 'E' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate33:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule17
|
|
case c == ':':
|
|
goto yystate23
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate34:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'G':
|
|
goto yystate35
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'H' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate35:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule15
|
|
case c == ':':
|
|
goto yystate23
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate36:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'Y':
|
|
goto yystate37
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'X' || c == 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate37:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule12
|
|
case c == ':':
|
|
goto yystate23
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate38:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'O':
|
|
goto yystate39
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'N' || c >= 'P' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate39:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'U':
|
|
goto yystate40
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'T' || c >= 'V' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate40:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'N':
|
|
goto yystate41
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'M' || c >= 'O' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate41:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'T':
|
|
goto yystate35
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate42:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'E':
|
|
goto yystate43
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate43:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'S':
|
|
goto yystate44
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'R' || c >= 'T' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate44:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'C':
|
|
goto yystate45
|
|
case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c >= 'D' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate45:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'R':
|
|
goto yystate46
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Q' || c >= 'S' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate46:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'I':
|
|
goto yystate47
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate47:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'P':
|
|
goto yystate48
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'O' || c >= 'Q' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate48:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'T':
|
|
goto yystate49
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate49:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'I':
|
|
goto yystate50
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate50:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'O':
|
|
goto yystate51
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'N' || c >= 'P' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate51:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'N':
|
|
goto yystate52
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'M' || c >= 'O' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate52:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule10
|
|
case c == ':':
|
|
goto yystate23
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate53:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'O':
|
|
goto yystate54
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'N' || c >= 'P' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate54:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'R':
|
|
goto yystate55
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Q' || c >= 'S' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate55:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule7
|
|
case c == ':':
|
|
goto yystate23
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate56:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'F':
|
|
goto yystate57
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'E' || c >= 'G' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate57:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule6
|
|
case c == ':':
|
|
goto yystate23
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate58:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'E':
|
|
goto yystate59
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate59:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'E':
|
|
goto yystate60
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate60:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'P':
|
|
goto yystate61
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'O' || c >= 'Q' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate61:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'I':
|
|
goto yystate62
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate62:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'N':
|
|
goto yystate63
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'M' || c >= 'O' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate63:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'G':
|
|
goto yystate64
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'H' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate64:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == '_':
|
|
goto yystate65
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate65:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'E':
|
|
goto yystate66
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate66:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'X':
|
|
goto yystate67
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'W' || c == 'Y' || c == 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate67:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'T':
|
|
goto yystate68
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate68:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'R':
|
|
goto yystate69
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Q' || c >= 'S' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate69:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'A':
|
|
goto yystate70
|
|
case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate70:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule13
|
|
case c == ':':
|
|
goto yystate23
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate71:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'A':
|
|
goto yystate72
|
|
case c == 'I':
|
|
goto yystate73
|
|
case c >= '0' && c <= '9' || c >= 'B' && c <= 'H' || c >= 'J' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate72:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'X':
|
|
goto yystate35
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'W' || c == 'Y' || c == 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate73:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'N':
|
|
goto yystate35
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'M' || c >= 'O' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate74:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'F':
|
|
goto yystate75
|
|
case c == 'R':
|
|
goto yystate33
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'E' || c >= 'G' && c <= 'Q' || c >= 'S' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate75:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'F':
|
|
goto yystate76
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'E' || c >= 'G' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate76:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'S':
|
|
goto yystate77
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'R' || c >= 'T' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate77:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'E':
|
|
goto yystate78
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate78:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'T':
|
|
goto yystate79
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate79:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule14
|
|
case c == ':':
|
|
goto yystate23
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate80:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'E':
|
|
goto yystate81
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate81:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'R':
|
|
goto yystate82
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Q' || c >= 'S' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate82:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'M':
|
|
goto yystate83
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'L' || c >= 'N' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate83:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'A':
|
|
goto yystate84
|
|
case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate84:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'N':
|
|
goto yystate85
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'M' || c >= 'O' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate85:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'E':
|
|
goto yystate86
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate86:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'N':
|
|
goto yystate87
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'M' || c >= 'O' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate87:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'T':
|
|
goto yystate88
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate88:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule11
|
|
case c == ':':
|
|
goto yystate23
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate89:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'U':
|
|
goto yystate90
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'T' || c >= 'V' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate90:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'M':
|
|
goto yystate91
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'L' || c >= 'N' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate91:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule15
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'M':
|
|
goto yystate92
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'L' || c >= 'N' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate92:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'A':
|
|
goto yystate93
|
|
case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate93:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'R':
|
|
goto yystate94
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Q' || c >= 'S' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate94:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'Y':
|
|
goto yystate95
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'X' || c == 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate95:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule9
|
|
case c == ':':
|
|
goto yystate23
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate96:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'I':
|
|
goto yystate97
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate97:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'T':
|
|
goto yystate98
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate98:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'H':
|
|
goto yystate99
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'G' || c >= 'I' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate99:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule8
|
|
case c == ':':
|
|
goto yystate23
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate100:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'l':
|
|
goto yystate101
|
|
case c == 'n':
|
|
goto yystate104
|
|
case c == 'v':
|
|
goto yystate105
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'k' || c == 'm' || c >= 'o' && c <= 'u' || c >= 'w' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate101:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'e':
|
|
goto yystate102
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate102:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'r':
|
|
goto yystate103
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'q' || c >= 's' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate103:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 't':
|
|
goto yystate31
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate104:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'd':
|
|
goto yystate33
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'c' || c >= 'e' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate105:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'g':
|
|
goto yystate106
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'f' || c >= 'h' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate106:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule16
|
|
case c == ':':
|
|
goto yystate23
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate107:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'y':
|
|
goto yystate37
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'x' || c == 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate108:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'o':
|
|
goto yystate109
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'n' || c >= 'p' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate109:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'u':
|
|
goto yystate110
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 't' || c >= 'v' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate110:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'n':
|
|
goto yystate111
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'm' || c >= 'o' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate111:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 't':
|
|
goto yystate106
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate112:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'e':
|
|
goto yystate113
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate113:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 's':
|
|
goto yystate114
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'r' || c >= 't' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate114:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'c':
|
|
goto yystate115
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c >= 'd' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate115:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'r':
|
|
goto yystate116
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'q' || c >= 's' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate116:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'i':
|
|
goto yystate117
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate117:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'p':
|
|
goto yystate118
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'o' || c >= 'q' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate118:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 't':
|
|
goto yystate119
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate119:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'i':
|
|
goto yystate120
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate120:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'o':
|
|
goto yystate121
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'n' || c >= 'p' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate121:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'n':
|
|
goto yystate52
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'm' || c >= 'o' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate122:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'o':
|
|
goto yystate123
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'n' || c >= 'p' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate123:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'r':
|
|
goto yystate55
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'q' || c >= 's' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate124:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'f':
|
|
goto yystate57
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'e' || c >= 'g' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate125:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'e':
|
|
goto yystate126
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate126:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'e':
|
|
goto yystate127
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate127:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'p':
|
|
goto yystate128
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'o' || c >= 'q' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate128:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'i':
|
|
goto yystate129
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate129:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'n':
|
|
goto yystate130
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'm' || c >= 'o' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate130:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'g':
|
|
goto yystate131
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'f' || c >= 'h' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate131:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == '_':
|
|
goto yystate132
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate132:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'e':
|
|
goto yystate133
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate133:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'x':
|
|
goto yystate134
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'w' || c == 'y' || c == 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate134:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 't':
|
|
goto yystate135
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate135:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'r':
|
|
goto yystate136
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'q' || c >= 's' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate136:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'a':
|
|
goto yystate70
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate137:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'a':
|
|
goto yystate138
|
|
case c == 'i':
|
|
goto yystate139
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'h' || c >= 'j' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate138:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'x':
|
|
goto yystate106
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'w' || c == 'y' || c == 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate139:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'n':
|
|
goto yystate106
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'm' || c >= 'o' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate140:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'f':
|
|
goto yystate141
|
|
case c == 'r':
|
|
goto yystate33
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'e' || c >= 'g' && c <= 'q' || c >= 's' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate141:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'f':
|
|
goto yystate142
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'e' || c >= 'g' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate142:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 's':
|
|
goto yystate143
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'r' || c >= 't' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate143:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'e':
|
|
goto yystate144
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate144:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 't':
|
|
goto yystate79
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate145:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'e':
|
|
goto yystate146
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate146:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'r':
|
|
goto yystate147
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'q' || c >= 's' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate147:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'm':
|
|
goto yystate148
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'l' || c >= 'n' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate148:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'a':
|
|
goto yystate149
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate149:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'n':
|
|
goto yystate150
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'm' || c >= 'o' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate150:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'e':
|
|
goto yystate151
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate151:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'n':
|
|
goto yystate152
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'm' || c >= 'o' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate152:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 't':
|
|
goto yystate88
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate153:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'u':
|
|
goto yystate154
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 't' || c >= 'v' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate154:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'm':
|
|
goto yystate155
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'l' || c >= 'n' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate155:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule16
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'm':
|
|
goto yystate156
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'l' || c >= 'n' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate156:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'a':
|
|
goto yystate157
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate157:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'r':
|
|
goto yystate158
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'q' || c >= 's' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate158:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'y':
|
|
goto yystate95
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'x' || c == 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate159:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'i':
|
|
goto yystate160
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate160:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 't':
|
|
goto yystate161
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
yystate161:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule22
|
|
case c == ':':
|
|
goto yystate23
|
|
case c == 'h':
|
|
goto yystate99
|
|
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'g' || c >= 'i' && c <= 'z':
|
|
goto yystate27
|
|
}
|
|
|
|
goto yystate162 // silence unused label error
|
|
yystate162:
|
|
c = lexer.getChar()
|
|
yystart162:
|
|
switch {
|
|
default:
|
|
goto yyabort
|
|
case c == '*':
|
|
goto yystate164
|
|
case c >= '\x01' && c <= ')' || c >= '+' && c <= 'ÿ':
|
|
goto yystate163
|
|
}
|
|
|
|
yystate163:
|
|
c = lexer.getChar()
|
|
goto yyrule3
|
|
|
|
yystate164:
|
|
c = lexer.getChar()
|
|
switch {
|
|
default:
|
|
goto yyrule3
|
|
case c == '/':
|
|
goto yystate165
|
|
}
|
|
|
|
yystate165:
|
|
c = lexer.getChar()
|
|
goto yyrule2
|
|
|
|
yyrule1: // "/*"
|
|
{
|
|
currentState = S_COMMENTS
|
|
goto yystate0
|
|
}
|
|
yyrule2: // "*/"
|
|
{
|
|
currentState = S_INITIAL
|
|
goto yystate0
|
|
}
|
|
yyrule3: // .|\n
|
|
{
|
|
/* ignore chars within multi-line comments */
|
|
goto yystate0
|
|
}
|
|
yyrule4: // \/\/[^\r\n]*\n
|
|
{
|
|
/* gobble up one-line comments */
|
|
goto yystate0
|
|
}
|
|
yyrule5: // ALERT|alert
|
|
{
|
|
return ALERT
|
|
}
|
|
yyrule6: // IF|if
|
|
{
|
|
return IF
|
|
}
|
|
yyrule7: // FOR|for
|
|
{
|
|
return FOR
|
|
}
|
|
yyrule8: // WITH|with
|
|
{
|
|
return WITH
|
|
}
|
|
yyrule9: // SUMMARY|summary
|
|
{
|
|
return SUMMARY
|
|
}
|
|
yyrule10: // DESCRIPTION|description
|
|
{
|
|
return DESCRIPTION
|
|
}
|
|
yyrule11: // PERMANENT|permanent
|
|
{
|
|
return PERMANENT
|
|
}
|
|
yyrule12: // BY|by
|
|
{
|
|
return GROUP_OP
|
|
}
|
|
yyrule13: // KEEPING_EXTRA|keeping_extra
|
|
{
|
|
return KEEPING_EXTRA
|
|
}
|
|
yyrule14: // OFFSET|offset
|
|
{
|
|
return OFFSET
|
|
}
|
|
yyrule15: // AVG|SUM|MAX|MIN|COUNT
|
|
{
|
|
lval.str = lexer.token()
|
|
return AGGR_OP
|
|
goto yystate0
|
|
}
|
|
yyrule16: // avg|sum|max|min|count
|
|
{
|
|
lval.str = strings.ToUpper(lexer.token())
|
|
return AGGR_OP
|
|
goto yystate0
|
|
}
|
|
yyrule17: // \<|>|AND|OR|and|or
|
|
{
|
|
lval.str = strings.ToUpper(lexer.token())
|
|
return CMP_OP
|
|
goto yystate0
|
|
}
|
|
yyrule18: // ==|!=|>=|<=|=~|!~
|
|
{
|
|
lval.str = lexer.token()
|
|
return CMP_OP
|
|
goto yystate0
|
|
}
|
|
yyrule19: // [+\-]
|
|
{
|
|
lval.str = lexer.token()
|
|
return ADDITIVE_OP
|
|
goto yystate0
|
|
}
|
|
yyrule20: // [*/%]
|
|
{
|
|
lval.str = lexer.token()
|
|
return MULT_OP
|
|
goto yystate0
|
|
}
|
|
yyrule21: // {D}+{U}
|
|
{
|
|
lval.str = lexer.token()
|
|
return DURATION
|
|
goto yystate0
|
|
}
|
|
yyrule22: // {L}({L}|{D})*
|
|
{
|
|
lval.str = lexer.token()
|
|
return IDENTIFIER
|
|
goto yystate0
|
|
}
|
|
yyrule23: // {M}({M}|{D})*
|
|
{
|
|
lval.str = lexer.token()
|
|
return METRICNAME
|
|
goto yystate0
|
|
}
|
|
yyrule24: // \-?{D}+(\.{D}*)?
|
|
{
|
|
num, err := strconv.ParseFloat(lexer.token(), 64)
|
|
if err != nil && err.(*strconv.NumError).Err == strconv.ErrSyntax {
|
|
panic("Invalid float")
|
|
}
|
|
lval.num = clientmodel.SampleValue(num)
|
|
return NUMBER
|
|
}
|
|
yyrule25: // \"(\\.|[^\\"])*\"
|
|
{
|
|
lval.str = lexer.token()[1 : len(lexer.token())-1]
|
|
return STRING
|
|
goto yystate0
|
|
}
|
|
yyrule26: // \'(\\.|[^\\'])*\'
|
|
{
|
|
lval.str = lexer.token()[1 : len(lexer.token())-1]
|
|
return STRING
|
|
goto yystate0
|
|
}
|
|
yyrule27: // [{}\[\]()=,]
|
|
{
|
|
return int(lexer.buf[0])
|
|
}
|
|
yyrule28: // [\t\n\r ]
|
|
{
|
|
/* gobble up any whitespace */
|
|
goto yystate0
|
|
}
|
|
panic("unreachable")
|
|
|
|
goto yyabort // silence unused label error
|
|
|
|
yyabort: // no lexem recognized
|
|
|
|
lexer.empty = true
|
|
return int(c)
|
|
}
|