featurebase/pql/pql.peg.go
2021-03-02 22:11:04 -06:00

4153 lines
89 KiB
Go

package pql
// Code generated by peg -inline pql.peg DO NOT EDIT.
import (
"fmt"
"io"
"os"
"sort"
"strconv"
)
const endSymbol rune = 1114112
/* The rule types inferred from the grammar are below. */
type pegRule uint8
const (
ruleUnknown pegRule = iota
ruleCalls
ruleCall
ruleallargs
ruleargs
rulearg
ruleCOND
ruleconditional
rulecondint
rulecondLT
rulecondfield
rulevalue
ruleitems
ruleitem
ruledoublequotedstring
rulesinglequotedstring
rulefieldExpr
rulefield
rulereserved
ruleposfield
rulecol
rulerow
ruleopen
ruleclose
rulesp
ruleeq
rulecomma
rulelbrack
rulerbrack
ruleIDENT
ruledigits
rulesignedDigits
ruledecimal
ruletimestampbasicfmt
ruletimestampfmt
ruletimestamp
ruleAction0
ruleAction1
ruleAction2
ruleAction3
ruleAction4
ruleAction5
ruleAction6
ruleAction7
ruleAction8
ruleAction9
ruleAction10
ruleAction11
ruleAction12
ruleAction13
ruleAction14
ruleAction15
ruleAction16
ruleAction17
ruleAction18
ruleAction19
ruleAction20
ruleAction21
ruleAction22
ruleAction23
ruleAction24
ruleAction25
rulePegText
ruleAction26
ruleAction27
ruleAction28
ruleAction29
ruleAction30
ruleAction31
ruleAction32
ruleAction33
ruleAction34
ruleAction35
ruleAction36
ruleAction37
ruleAction38
ruleAction39
ruleAction40
ruleAction41
ruleAction42
ruleAction43
ruleAction44
ruleAction45
ruleAction46
ruleAction47
ruleAction48
ruleAction49
ruleAction50
ruleAction51
ruleAction52
ruleAction53
ruleAction54
ruleAction55
ruleAction56
ruleAction57
ruleAction58
ruleAction59
ruleAction60
)
var rul3s = [...]string{
"Unknown",
"Calls",
"Call",
"allargs",
"args",
"arg",
"COND",
"conditional",
"condint",
"condLT",
"condfield",
"value",
"items",
"item",
"doublequotedstring",
"singlequotedstring",
"fieldExpr",
"field",
"reserved",
"posfield",
"col",
"row",
"open",
"close",
"sp",
"eq",
"comma",
"lbrack",
"rbrack",
"IDENT",
"digits",
"signedDigits",
"decimal",
"timestampbasicfmt",
"timestampfmt",
"timestamp",
"Action0",
"Action1",
"Action2",
"Action3",
"Action4",
"Action5",
"Action6",
"Action7",
"Action8",
"Action9",
"Action10",
"Action11",
"Action12",
"Action13",
"Action14",
"Action15",
"Action16",
"Action17",
"Action18",
"Action19",
"Action20",
"Action21",
"Action22",
"Action23",
"Action24",
"Action25",
"PegText",
"Action26",
"Action27",
"Action28",
"Action29",
"Action30",
"Action31",
"Action32",
"Action33",
"Action34",
"Action35",
"Action36",
"Action37",
"Action38",
"Action39",
"Action40",
"Action41",
"Action42",
"Action43",
"Action44",
"Action45",
"Action46",
"Action47",
"Action48",
"Action49",
"Action50",
"Action51",
"Action52",
"Action53",
"Action54",
"Action55",
"Action56",
"Action57",
"Action58",
"Action59",
"Action60",
}
type token32 struct {
pegRule
begin, end uint32
}
func (t *token32) String() string {
return fmt.Sprintf("\x1B[34m%v\x1B[m %v %v", rul3s[t.pegRule], t.begin, t.end)
}
type node32 struct {
token32
up, next *node32
}
func (node *node32) print(w io.Writer, pretty bool, buffer string) {
var print func(node *node32, depth int)
print = func(node *node32, depth int) {
for node != nil {
for c := 0; c < depth; c++ {
fmt.Fprintf(w, " ")
}
rule := rul3s[node.pegRule]
quote := strconv.Quote(string(([]rune(buffer)[node.begin:node.end])))
if !pretty {
fmt.Fprintf(w, "%v %v\n", rule, quote)
} else {
fmt.Fprintf(w, "\x1B[34m%v\x1B[m %v\n", rule, quote)
}
if node.up != nil {
print(node.up, depth+1)
}
node = node.next
}
}
print(node, 0)
}
func (node *node32) Print(w io.Writer, buffer string) {
node.print(w, false, buffer)
}
func (node *node32) PrettyPrint(w io.Writer, buffer string) {
node.print(w, true, buffer)
}
type tokens32 struct {
tree []token32
}
func (t *tokens32) Trim(length uint32) {
t.tree = t.tree[:length]
}
func (t *tokens32) Print() {
for _, token := range t.tree {
fmt.Println(token.String())
}
}
func (t *tokens32) AST() *node32 {
type element struct {
node *node32
down *element
}
tokens := t.Tokens()
var stack *element
for _, token := range tokens {
if token.begin == token.end {
continue
}
node := &node32{token32: token}
for stack != nil && stack.node.begin >= token.begin && stack.node.end <= token.end {
stack.node.next = node.up
node.up = stack.node
stack = stack.down
}
stack = &element{node: node, down: stack}
}
if stack != nil {
return stack.node
}
return nil
}
func (t *tokens32) PrintSyntaxTree(buffer string) {
t.AST().Print(os.Stdout, buffer)
}
func (t *tokens32) WriteSyntaxTree(w io.Writer, buffer string) {
t.AST().Print(w, buffer)
}
func (t *tokens32) PrettyPrintSyntaxTree(buffer string) {
t.AST().PrettyPrint(os.Stdout, buffer)
}
func (t *tokens32) Add(rule pegRule, begin, end, index uint32) {
tree, i := t.tree, int(index)
if i >= len(tree) {
t.tree = append(tree, token32{pegRule: rule, begin: begin, end: end})
return
}
tree[i] = token32{pegRule: rule, begin: begin, end: end}
}
func (t *tokens32) Tokens() []token32 {
return t.tree
}
type PQL struct {
Query
Buffer string
buffer []rune
rules [98]func() bool
parse func(rule ...int) error
reset func()
Pretty bool
tokens32
}
func (p *PQL) Parse(rule ...int) error {
return p.parse(rule...)
}
func (p *PQL) Reset() {
p.reset()
}
type textPosition struct {
line, symbol int
}
type textPositionMap map[int]textPosition
func translatePositions(buffer []rune, positions []int) textPositionMap {
length, translations, j, line, symbol := len(positions), make(textPositionMap, len(positions)), 0, 1, 0
sort.Ints(positions)
search:
for i, c := range buffer {
if c == '\n' {
line, symbol = line+1, 0
} else {
symbol++
}
if i == positions[j] {
translations[positions[j]] = textPosition{line, symbol}
for j++; j < length; j++ {
if i != positions[j] {
continue search
}
}
break search
}
}
return translations
}
type parseError struct {
p *PQL
max token32
}
func (e *parseError) Error() string {
tokens, err := []token32{e.max}, "\n"
positions, p := make([]int, 2*len(tokens)), 0
for _, token := range tokens {
positions[p], p = int(token.begin), p+1
positions[p], p = int(token.end), p+1
}
translations := translatePositions(e.p.buffer, positions)
format := "parse error near %v (line %v symbol %v - line %v symbol %v):\n%v\n"
if e.p.Pretty {
format = "parse error near \x1B[34m%v\x1B[m (line %v symbol %v - line %v symbol %v):\n%v\n"
}
for _, token := range tokens {
begin, end := int(token.begin), int(token.end)
err += fmt.Sprintf(format,
rul3s[token.pegRule],
translations[begin].line, translations[begin].symbol,
translations[end].line, translations[end].symbol,
strconv.Quote(string(e.p.buffer[begin:end])))
}
return err
}
func (p *PQL) PrintSyntaxTree() {
if p.Pretty {
p.tokens32.PrettyPrintSyntaxTree(p.Buffer)
} else {
p.tokens32.PrintSyntaxTree(p.Buffer)
}
}
func (p *PQL) WriteSyntaxTree(w io.Writer) {
p.tokens32.WriteSyntaxTree(w, p.Buffer)
}
func (p *PQL) Execute() {
buffer, _buffer, text, begin, end := p.Buffer, p.buffer, "", 0, 0
for _, token := range p.Tokens() {
switch token.pegRule {
case rulePegText:
begin, end = int(token.begin), int(token.end)
text = string(_buffer[begin:end])
case ruleAction0:
p.startCall("Set")
case ruleAction1:
p.endCall()
case ruleAction2:
p.startCall("SetRowAttrs")
case ruleAction3:
p.endCall()
case ruleAction4:
p.startCall("SetColumnAttrs")
case ruleAction5:
p.endCall()
case ruleAction6:
p.startCall("Clear")
case ruleAction7:
p.endCall()
case ruleAction8:
p.startCall("ClearRow")
case ruleAction9:
p.endCall()
case ruleAction10:
p.startCall("Store")
case ruleAction11:
p.endCall()
case ruleAction12:
p.startCall("TopN")
case ruleAction13:
p.endCall()
case ruleAction14:
p.startCall("TopK")
case ruleAction15:
p.endCall()
case ruleAction16:
p.startCall("Percentile")
case ruleAction17:
p.endCall()
case ruleAction18:
p.startCall("Rows")
case ruleAction19:
p.endCall()
case ruleAction20:
p.startCall("Range")
case ruleAction21:
p.addField("from")
case ruleAction22:
p.addVal(text)
case ruleAction23:
p.addField("to")
case ruleAction24:
p.addVal(text)
case ruleAction25:
p.endCall()
case ruleAction26:
p.startCall(text)
case ruleAction27:
p.endCall()
case ruleAction28:
p.addBTWN()
case ruleAction29:
p.addLTE()
case ruleAction30:
p.addGTE()
case ruleAction31:
p.addEQ()
case ruleAction32:
p.addNEQ()
case ruleAction33:
p.addLT()
case ruleAction34:
p.addGT()
case ruleAction35:
p.startConditional()
case ruleAction36:
p.endConditional()
case ruleAction37:
p.condAdd(text)
case ruleAction38:
p.condAdd(text)
case ruleAction39:
p.condAdd(text)
case ruleAction40:
p.startList()
case ruleAction41:
p.endList()
case ruleAction42:
p.addVal(nil)
case ruleAction43:
p.addVal(true)
case ruleAction44:
p.addVal(false)
case ruleAction45:
p.addVal(text)
case ruleAction46:
p.addNumVal(text)
case ruleAction47:
p.startCall(text)
case ruleAction48:
p.addVal(p.endCall())
case ruleAction49:
p.addVal(text)
case ruleAction50:
p.addVal(text)
case ruleAction51:
p.addVal(text)
case ruleAction52:
p.addField(text)
case ruleAction53:
p.addPosStr("_field", text)
case ruleAction54:
p.addPosNum("_col", text)
case ruleAction55:
p.addPosStr("_col", text)
case ruleAction56:
p.addPosStr("_col", text)
case ruleAction57:
p.addPosNum("_row", text)
case ruleAction58:
p.addPosStr("_row", text)
case ruleAction59:
p.addPosStr("_row", text)
case ruleAction60:
p.addPosStr("_timestamp", text)
}
}
_, _, _, _, _ = buffer, _buffer, text, begin, end
}
func Pretty(pretty bool) func(*PQL) error {
return func(p *PQL) error {
p.Pretty = pretty
return nil
}
}
func Size(size int) func(*PQL) error {
return func(p *PQL) error {
p.tokens32 = tokens32{tree: make([]token32, 0, size)}
return nil
}
}
func (p *PQL) Init(options ...func(*PQL) error) error {
var (
max token32
position, tokenIndex uint32
buffer []rune
)
for _, option := range options {
err := option(p)
if err != nil {
return err
}
}
p.reset = func() {
max = token32{}
position, tokenIndex = 0, 0
p.buffer = []rune(p.Buffer)
if len(p.buffer) == 0 || p.buffer[len(p.buffer)-1] != endSymbol {
p.buffer = append(p.buffer, endSymbol)
}
buffer = p.buffer
}
p.reset()
_rules := p.rules
tree := p.tokens32
p.parse = func(rule ...int) error {
r := 1
if len(rule) > 0 {
r = rule[0]
}
matches := p.rules[r]()
p.tokens32 = tree
if matches {
p.Trim(tokenIndex)
return nil
}
return &parseError{p, max}
}
add := func(rule pegRule, begin uint32) {
tree.Add(rule, begin, position, tokenIndex)
tokenIndex++
if begin != position && position > max.end {
max = token32{rule, begin, position}
}
}
matchDot := func() bool {
if buffer[position] != endSymbol {
position++
return true
}
return false
}
/*matchChar := func(c byte) bool {
if buffer[position] == c {
position++
return true
}
return false
}*/
/*matchRange := func(lower byte, upper byte) bool {
if c := buffer[position]; c >= lower && c <= upper {
position++
return true
}
return false
}*/
_rules = [...]func() bool{
nil,
/* 0 Calls <- <(sp (Call sp)* !.)> */
func() bool {
position0, tokenIndex0 := position, tokenIndex
{
position1 := position
if !_rules[rulesp]() {
goto l0
}
l2:
{
position3, tokenIndex3 := position, tokenIndex
if !_rules[ruleCall]() {
goto l3
}
if !_rules[rulesp]() {
goto l3
}
goto l2
l3:
position, tokenIndex = position3, tokenIndex3
}
{
position4, tokenIndex4 := position, tokenIndex
if !matchDot() {
goto l4
}
goto l0
l4:
position, tokenIndex = position4, tokenIndex4
}
add(ruleCalls, position1)
}
return true
l0:
position, tokenIndex = position0, tokenIndex0
return false
},
/* 1 Call <- <((('s' / 'S') ('e' / 'E') ('t' / 'T') Action0 open col comma args (comma timestamp)? close Action1) / (('s' / 'S') ('e' / 'E') ('t' / 'T') ('r' / 'R') ('o' / 'O') ('w' / 'W') ('a' / 'A') ('t' / 'T') ('t' / 'T') ('r' / 'R') ('s' / 'S') Action2 open posfield comma row comma args close Action3) / (('s' / 'S') ('e' / 'E') ('t' / 'T') ('c' / 'C') ('o' / 'O') ('l' / 'L') ('u' / 'U') ('m' / 'M') ('n' / 'N') ('a' / 'A') ('t' / 'T') ('t' / 'T') ('r' / 'R') ('s' / 'S') Action4 open col comma args close Action5) / (('c' / 'C') ('l' / 'L') ('e' / 'E') ('a' / 'A') ('r' / 'R') Action6 open col comma args close Action7) / (('c' / 'C') ('l' / 'L') ('e' / 'E') ('a' / 'A') ('r' / 'R') ('r' / 'R') ('o' / 'O') ('w' / 'W') Action8 open arg close Action9) / (('s' / 'S') ('t' / 'T') ('o' / 'O') ('r' / 'R') ('e' / 'E') Action10 open Call comma arg close Action11) / (('t' / 'T') ('o' / 'O') ('p' / 'P') ('n' / 'N') Action12 open posfield (comma allargs)? close Action13) / (('t' / 'T') ('o' / 'O') ('p' / 'P') ('k' / 'K') Action14 open posfield (comma allargs)? close Action15) / (('p' / 'P') ('e' / 'E') ('r' / 'R') ('c' / 'C') ('e' / 'E') ('n' / 'N') ('t' / 'T') ('i' / 'I') ('l' / 'L') ('e' / 'E') Action16 open posfield (comma allargs)? close Action17) / (('r' / 'R') ('o' / 'O') ('w' / 'W') ('s' / 'S') Action18 open posfield (comma allargs)? close Action19) / (('r' / 'R') ('a' / 'A') ('n' / 'N') ('g' / 'G') ('e' / 'E') Action20 open field eq value comma ('f' 'r' 'o' 'm' '=')? Action21 timestampfmt Action22 comma ('t' 'o' '=')? sp Action23 timestampfmt Action24 close Action25) / (<IDENT> Action26 open allargs comma? close Action27))> */
func() bool {
position5, tokenIndex5 := position, tokenIndex
{
position6 := position
{
position7, tokenIndex7 := position, tokenIndex
{
position9, tokenIndex9 := position, tokenIndex
if buffer[position] != rune('s') {
goto l10
}
position++
goto l9
l10:
position, tokenIndex = position9, tokenIndex9
if buffer[position] != rune('S') {
goto l8
}
position++
}
l9:
{
position11, tokenIndex11 := position, tokenIndex
if buffer[position] != rune('e') {
goto l12
}
position++
goto l11
l12:
position, tokenIndex = position11, tokenIndex11
if buffer[position] != rune('E') {
goto l8
}
position++
}
l11:
{
position13, tokenIndex13 := position, tokenIndex
if buffer[position] != rune('t') {
goto l14
}
position++
goto l13
l14:
position, tokenIndex = position13, tokenIndex13
if buffer[position] != rune('T') {
goto l8
}
position++
}
l13:
{
add(ruleAction0, position)
}
if !_rules[ruleopen]() {
goto l8
}
if !_rules[rulecol]() {
goto l8
}
if !_rules[rulecomma]() {
goto l8
}
if !_rules[ruleargs]() {
goto l8
}
{
position16, tokenIndex16 := position, tokenIndex
if !_rules[rulecomma]() {
goto l16
}
{
position18 := position
{
position19 := position
if !_rules[ruletimestampfmt]() {
goto l16
}
add(rulePegText, position19)
}
{
add(ruleAction60, position)
}
add(ruletimestamp, position18)
}
goto l17
l16:
position, tokenIndex = position16, tokenIndex16
}
l17:
if !_rules[ruleclose]() {
goto l8
}
{
add(ruleAction1, position)
}
goto l7
l8:
position, tokenIndex = position7, tokenIndex7
{
position23, tokenIndex23 := position, tokenIndex
if buffer[position] != rune('s') {
goto l24
}
position++
goto l23
l24:
position, tokenIndex = position23, tokenIndex23
if buffer[position] != rune('S') {
goto l22
}
position++
}
l23:
{
position25, tokenIndex25 := position, tokenIndex
if buffer[position] != rune('e') {
goto l26
}
position++
goto l25
l26:
position, tokenIndex = position25, tokenIndex25
if buffer[position] != rune('E') {
goto l22
}
position++
}
l25:
{
position27, tokenIndex27 := position, tokenIndex
if buffer[position] != rune('t') {
goto l28
}
position++
goto l27
l28:
position, tokenIndex = position27, tokenIndex27
if buffer[position] != rune('T') {
goto l22
}
position++
}
l27:
{
position29, tokenIndex29 := position, tokenIndex
if buffer[position] != rune('r') {
goto l30
}
position++
goto l29
l30:
position, tokenIndex = position29, tokenIndex29
if buffer[position] != rune('R') {
goto l22
}
position++
}
l29:
{
position31, tokenIndex31 := position, tokenIndex
if buffer[position] != rune('o') {
goto l32
}
position++
goto l31
l32:
position, tokenIndex = position31, tokenIndex31
if buffer[position] != rune('O') {
goto l22
}
position++
}
l31:
{
position33, tokenIndex33 := position, tokenIndex
if buffer[position] != rune('w') {
goto l34
}
position++
goto l33
l34:
position, tokenIndex = position33, tokenIndex33
if buffer[position] != rune('W') {
goto l22
}
position++
}
l33:
{
position35, tokenIndex35 := position, tokenIndex
if buffer[position] != rune('a') {
goto l36
}
position++
goto l35
l36:
position, tokenIndex = position35, tokenIndex35
if buffer[position] != rune('A') {
goto l22
}
position++
}
l35:
{
position37, tokenIndex37 := position, tokenIndex
if buffer[position] != rune('t') {
goto l38
}
position++
goto l37
l38:
position, tokenIndex = position37, tokenIndex37
if buffer[position] != rune('T') {
goto l22
}
position++
}
l37:
{
position39, tokenIndex39 := position, tokenIndex
if buffer[position] != rune('t') {
goto l40
}
position++
goto l39
l40:
position, tokenIndex = position39, tokenIndex39
if buffer[position] != rune('T') {
goto l22
}
position++
}
l39:
{
position41, tokenIndex41 := position, tokenIndex
if buffer[position] != rune('r') {
goto l42
}
position++
goto l41
l42:
position, tokenIndex = position41, tokenIndex41
if buffer[position] != rune('R') {
goto l22
}
position++
}
l41:
{
position43, tokenIndex43 := position, tokenIndex
if buffer[position] != rune('s') {
goto l44
}
position++
goto l43
l44:
position, tokenIndex = position43, tokenIndex43
if buffer[position] != rune('S') {
goto l22
}
position++
}
l43:
{
add(ruleAction2, position)
}
if !_rules[ruleopen]() {
goto l22
}
if !_rules[ruleposfield]() {
goto l22
}
if !_rules[rulecomma]() {
goto l22
}
{
position46 := position
{
position47, tokenIndex47 := position, tokenIndex
{
position49 := position
if !_rules[ruledigits]() {
goto l48
}
add(rulePegText, position49)
}
{
add(ruleAction57, position)
}
goto l47
l48:
position, tokenIndex = position47, tokenIndex47
{
position52 := position
if buffer[position] != rune('\'') {
goto l51
}
position++
if !_rules[rulesinglequotedstring]() {
goto l51
}
if buffer[position] != rune('\'') {
goto l51
}
position++
add(rulePegText, position52)
}
{
add(ruleAction58, position)
}
goto l47
l51:
position, tokenIndex = position47, tokenIndex47
{
position54 := position
if buffer[position] != rune('"') {
goto l22
}
position++
if !_rules[ruledoublequotedstring]() {
goto l22
}
if buffer[position] != rune('"') {
goto l22
}
position++
add(rulePegText, position54)
}
{
add(ruleAction59, position)
}
}
l47:
add(rulerow, position46)
}
if !_rules[rulecomma]() {
goto l22
}
if !_rules[ruleargs]() {
goto l22
}
if !_rules[ruleclose]() {
goto l22
}
{
add(ruleAction3, position)
}
goto l7
l22:
position, tokenIndex = position7, tokenIndex7
{
position58, tokenIndex58 := position, tokenIndex
if buffer[position] != rune('s') {
goto l59
}
position++
goto l58
l59:
position, tokenIndex = position58, tokenIndex58
if buffer[position] != rune('S') {
goto l57
}
position++
}
l58:
{
position60, tokenIndex60 := position, tokenIndex
if buffer[position] != rune('e') {
goto l61
}
position++
goto l60
l61:
position, tokenIndex = position60, tokenIndex60
if buffer[position] != rune('E') {
goto l57
}
position++
}
l60:
{
position62, tokenIndex62 := position, tokenIndex
if buffer[position] != rune('t') {
goto l63
}
position++
goto l62
l63:
position, tokenIndex = position62, tokenIndex62
if buffer[position] != rune('T') {
goto l57
}
position++
}
l62:
{
position64, tokenIndex64 := position, tokenIndex
if buffer[position] != rune('c') {
goto l65
}
position++
goto l64
l65:
position, tokenIndex = position64, tokenIndex64
if buffer[position] != rune('C') {
goto l57
}
position++
}
l64:
{
position66, tokenIndex66 := position, tokenIndex
if buffer[position] != rune('o') {
goto l67
}
position++
goto l66
l67:
position, tokenIndex = position66, tokenIndex66
if buffer[position] != rune('O') {
goto l57
}
position++
}
l66:
{
position68, tokenIndex68 := position, tokenIndex
if buffer[position] != rune('l') {
goto l69
}
position++
goto l68
l69:
position, tokenIndex = position68, tokenIndex68
if buffer[position] != rune('L') {
goto l57
}
position++
}
l68:
{
position70, tokenIndex70 := position, tokenIndex
if buffer[position] != rune('u') {
goto l71
}
position++
goto l70
l71:
position, tokenIndex = position70, tokenIndex70
if buffer[position] != rune('U') {
goto l57
}
position++
}
l70:
{
position72, tokenIndex72 := position, tokenIndex
if buffer[position] != rune('m') {
goto l73
}
position++
goto l72
l73:
position, tokenIndex = position72, tokenIndex72
if buffer[position] != rune('M') {
goto l57
}
position++
}
l72:
{
position74, tokenIndex74 := position, tokenIndex
if buffer[position] != rune('n') {
goto l75
}
position++
goto l74
l75:
position, tokenIndex = position74, tokenIndex74
if buffer[position] != rune('N') {
goto l57
}
position++
}
l74:
{
position76, tokenIndex76 := position, tokenIndex
if buffer[position] != rune('a') {
goto l77
}
position++
goto l76
l77:
position, tokenIndex = position76, tokenIndex76
if buffer[position] != rune('A') {
goto l57
}
position++
}
l76:
{
position78, tokenIndex78 := position, tokenIndex
if buffer[position] != rune('t') {
goto l79
}
position++
goto l78
l79:
position, tokenIndex = position78, tokenIndex78
if buffer[position] != rune('T') {
goto l57
}
position++
}
l78:
{
position80, tokenIndex80 := position, tokenIndex
if buffer[position] != rune('t') {
goto l81
}
position++
goto l80
l81:
position, tokenIndex = position80, tokenIndex80
if buffer[position] != rune('T') {
goto l57
}
position++
}
l80:
{
position82, tokenIndex82 := position, tokenIndex
if buffer[position] != rune('r') {
goto l83
}
position++
goto l82
l83:
position, tokenIndex = position82, tokenIndex82
if buffer[position] != rune('R') {
goto l57
}
position++
}
l82:
{
position84, tokenIndex84 := position, tokenIndex
if buffer[position] != rune('s') {
goto l85
}
position++
goto l84
l85:
position, tokenIndex = position84, tokenIndex84
if buffer[position] != rune('S') {
goto l57
}
position++
}
l84:
{
add(ruleAction4, position)
}
if !_rules[ruleopen]() {
goto l57
}
if !_rules[rulecol]() {
goto l57
}
if !_rules[rulecomma]() {
goto l57
}
if !_rules[ruleargs]() {
goto l57
}
if !_rules[ruleclose]() {
goto l57
}
{
add(ruleAction5, position)
}
goto l7
l57:
position, tokenIndex = position7, tokenIndex7
{
position89, tokenIndex89 := position, tokenIndex
if buffer[position] != rune('c') {
goto l90
}
position++
goto l89
l90:
position, tokenIndex = position89, tokenIndex89
if buffer[position] != rune('C') {
goto l88
}
position++
}
l89:
{
position91, tokenIndex91 := position, tokenIndex
if buffer[position] != rune('l') {
goto l92
}
position++
goto l91
l92:
position, tokenIndex = position91, tokenIndex91
if buffer[position] != rune('L') {
goto l88
}
position++
}
l91:
{
position93, tokenIndex93 := position, tokenIndex
if buffer[position] != rune('e') {
goto l94
}
position++
goto l93
l94:
position, tokenIndex = position93, tokenIndex93
if buffer[position] != rune('E') {
goto l88
}
position++
}
l93:
{
position95, tokenIndex95 := position, tokenIndex
if buffer[position] != rune('a') {
goto l96
}
position++
goto l95
l96:
position, tokenIndex = position95, tokenIndex95
if buffer[position] != rune('A') {
goto l88
}
position++
}
l95:
{
position97, tokenIndex97 := position, tokenIndex
if buffer[position] != rune('r') {
goto l98
}
position++
goto l97
l98:
position, tokenIndex = position97, tokenIndex97
if buffer[position] != rune('R') {
goto l88
}
position++
}
l97:
{
add(ruleAction6, position)
}
if !_rules[ruleopen]() {
goto l88
}
if !_rules[rulecol]() {
goto l88
}
if !_rules[rulecomma]() {
goto l88
}
if !_rules[ruleargs]() {
goto l88
}
if !_rules[ruleclose]() {
goto l88
}
{
add(ruleAction7, position)
}
goto l7
l88:
position, tokenIndex = position7, tokenIndex7
{
position102, tokenIndex102 := position, tokenIndex
if buffer[position] != rune('c') {
goto l103
}
position++
goto l102
l103:
position, tokenIndex = position102, tokenIndex102
if buffer[position] != rune('C') {
goto l101
}
position++
}
l102:
{
position104, tokenIndex104 := position, tokenIndex
if buffer[position] != rune('l') {
goto l105
}
position++
goto l104
l105:
position, tokenIndex = position104, tokenIndex104
if buffer[position] != rune('L') {
goto l101
}
position++
}
l104:
{
position106, tokenIndex106 := position, tokenIndex
if buffer[position] != rune('e') {
goto l107
}
position++
goto l106
l107:
position, tokenIndex = position106, tokenIndex106
if buffer[position] != rune('E') {
goto l101
}
position++
}
l106:
{
position108, tokenIndex108 := position, tokenIndex
if buffer[position] != rune('a') {
goto l109
}
position++
goto l108
l109:
position, tokenIndex = position108, tokenIndex108
if buffer[position] != rune('A') {
goto l101
}
position++
}
l108:
{
position110, tokenIndex110 := position, tokenIndex
if buffer[position] != rune('r') {
goto l111
}
position++
goto l110
l111:
position, tokenIndex = position110, tokenIndex110
if buffer[position] != rune('R') {
goto l101
}
position++
}
l110:
{
position112, tokenIndex112 := position, tokenIndex
if buffer[position] != rune('r') {
goto l113
}
position++
goto l112
l113:
position, tokenIndex = position112, tokenIndex112
if buffer[position] != rune('R') {
goto l101
}
position++
}
l112:
{
position114, tokenIndex114 := position, tokenIndex
if buffer[position] != rune('o') {
goto l115
}
position++
goto l114
l115:
position, tokenIndex = position114, tokenIndex114
if buffer[position] != rune('O') {
goto l101
}
position++
}
l114:
{
position116, tokenIndex116 := position, tokenIndex
if buffer[position] != rune('w') {
goto l117
}
position++
goto l116
l117:
position, tokenIndex = position116, tokenIndex116
if buffer[position] != rune('W') {
goto l101
}
position++
}
l116:
{
add(ruleAction8, position)
}
if !_rules[ruleopen]() {
goto l101
}
if !_rules[rulearg]() {
goto l101
}
if !_rules[ruleclose]() {
goto l101
}
{
add(ruleAction9, position)
}
goto l7
l101:
position, tokenIndex = position7, tokenIndex7
{
position121, tokenIndex121 := position, tokenIndex
if buffer[position] != rune('s') {
goto l122
}
position++
goto l121
l122:
position, tokenIndex = position121, tokenIndex121
if buffer[position] != rune('S') {
goto l120
}
position++
}
l121:
{
position123, tokenIndex123 := position, tokenIndex
if buffer[position] != rune('t') {
goto l124
}
position++
goto l123
l124:
position, tokenIndex = position123, tokenIndex123
if buffer[position] != rune('T') {
goto l120
}
position++
}
l123:
{
position125, tokenIndex125 := position, tokenIndex
if buffer[position] != rune('o') {
goto l126
}
position++
goto l125
l126:
position, tokenIndex = position125, tokenIndex125
if buffer[position] != rune('O') {
goto l120
}
position++
}
l125:
{
position127, tokenIndex127 := position, tokenIndex
if buffer[position] != rune('r') {
goto l128
}
position++
goto l127
l128:
position, tokenIndex = position127, tokenIndex127
if buffer[position] != rune('R') {
goto l120
}
position++
}
l127:
{
position129, tokenIndex129 := position, tokenIndex
if buffer[position] != rune('e') {
goto l130
}
position++
goto l129
l130:
position, tokenIndex = position129, tokenIndex129
if buffer[position] != rune('E') {
goto l120
}
position++
}
l129:
{
add(ruleAction10, position)
}
if !_rules[ruleopen]() {
goto l120
}
if !_rules[ruleCall]() {
goto l120
}
if !_rules[rulecomma]() {
goto l120
}
if !_rules[rulearg]() {
goto l120
}
if !_rules[ruleclose]() {
goto l120
}
{
add(ruleAction11, position)
}
goto l7
l120:
position, tokenIndex = position7, tokenIndex7
{
position134, tokenIndex134 := position, tokenIndex
if buffer[position] != rune('t') {
goto l135
}
position++
goto l134
l135:
position, tokenIndex = position134, tokenIndex134
if buffer[position] != rune('T') {
goto l133
}
position++
}
l134:
{
position136, tokenIndex136 := position, tokenIndex
if buffer[position] != rune('o') {
goto l137
}
position++
goto l136
l137:
position, tokenIndex = position136, tokenIndex136
if buffer[position] != rune('O') {
goto l133
}
position++
}
l136:
{
position138, tokenIndex138 := position, tokenIndex
if buffer[position] != rune('p') {
goto l139
}
position++
goto l138
l139:
position, tokenIndex = position138, tokenIndex138
if buffer[position] != rune('P') {
goto l133
}
position++
}
l138:
{
position140, tokenIndex140 := position, tokenIndex
if buffer[position] != rune('n') {
goto l141
}
position++
goto l140
l141:
position, tokenIndex = position140, tokenIndex140
if buffer[position] != rune('N') {
goto l133
}
position++
}
l140:
{
add(ruleAction12, position)
}
if !_rules[ruleopen]() {
goto l133
}
if !_rules[ruleposfield]() {
goto l133
}
{
position143, tokenIndex143 := position, tokenIndex
if !_rules[rulecomma]() {
goto l143
}
if !_rules[ruleallargs]() {
goto l143
}
goto l144
l143:
position, tokenIndex = position143, tokenIndex143
}
l144:
if !_rules[ruleclose]() {
goto l133
}
{
add(ruleAction13, position)
}
goto l7
l133:
position, tokenIndex = position7, tokenIndex7
{
position147, tokenIndex147 := position, tokenIndex
if buffer[position] != rune('t') {
goto l148
}
position++
goto l147
l148:
position, tokenIndex = position147, tokenIndex147
if buffer[position] != rune('T') {
goto l146
}
position++
}
l147:
{
position149, tokenIndex149 := position, tokenIndex
if buffer[position] != rune('o') {
goto l150
}
position++
goto l149
l150:
position, tokenIndex = position149, tokenIndex149
if buffer[position] != rune('O') {
goto l146
}
position++
}
l149:
{
position151, tokenIndex151 := position, tokenIndex
if buffer[position] != rune('p') {
goto l152
}
position++
goto l151
l152:
position, tokenIndex = position151, tokenIndex151
if buffer[position] != rune('P') {
goto l146
}
position++
}
l151:
{
position153, tokenIndex153 := position, tokenIndex
if buffer[position] != rune('k') {
goto l154
}
position++
goto l153
l154:
position, tokenIndex = position153, tokenIndex153
if buffer[position] != rune('K') {
goto l146
}
position++
}
l153:
{
add(ruleAction14, position)
}
if !_rules[ruleopen]() {
goto l146
}
if !_rules[ruleposfield]() {
goto l146
}
{
position156, tokenIndex156 := position, tokenIndex
if !_rules[rulecomma]() {
goto l156
}
if !_rules[ruleallargs]() {
goto l156
}
goto l157
l156:
position, tokenIndex = position156, tokenIndex156
}
l157:
if !_rules[ruleclose]() {
goto l146
}
{
add(ruleAction15, position)
}
goto l7
l146:
position, tokenIndex = position7, tokenIndex7
{
position160, tokenIndex160 := position, tokenIndex
if buffer[position] != rune('p') {
goto l161
}
position++
goto l160
l161:
position, tokenIndex = position160, tokenIndex160
if buffer[position] != rune('P') {
goto l159
}
position++
}
l160:
{
position162, tokenIndex162 := position, tokenIndex
if buffer[position] != rune('e') {
goto l163
}
position++
goto l162
l163:
position, tokenIndex = position162, tokenIndex162
if buffer[position] != rune('E') {
goto l159
}
position++
}
l162:
{
position164, tokenIndex164 := position, tokenIndex
if buffer[position] != rune('r') {
goto l165
}
position++
goto l164
l165:
position, tokenIndex = position164, tokenIndex164
if buffer[position] != rune('R') {
goto l159
}
position++
}
l164:
{
position166, tokenIndex166 := position, tokenIndex
if buffer[position] != rune('c') {
goto l167
}
position++
goto l166
l167:
position, tokenIndex = position166, tokenIndex166
if buffer[position] != rune('C') {
goto l159
}
position++
}
l166:
{
position168, tokenIndex168 := position, tokenIndex
if buffer[position] != rune('e') {
goto l169
}
position++
goto l168
l169:
position, tokenIndex = position168, tokenIndex168
if buffer[position] != rune('E') {
goto l159
}
position++
}
l168:
{
position170, tokenIndex170 := position, tokenIndex
if buffer[position] != rune('n') {
goto l171
}
position++
goto l170
l171:
position, tokenIndex = position170, tokenIndex170
if buffer[position] != rune('N') {
goto l159
}
position++
}
l170:
{
position172, tokenIndex172 := position, tokenIndex
if buffer[position] != rune('t') {
goto l173
}
position++
goto l172
l173:
position, tokenIndex = position172, tokenIndex172
if buffer[position] != rune('T') {
goto l159
}
position++
}
l172:
{
position174, tokenIndex174 := position, tokenIndex
if buffer[position] != rune('i') {
goto l175
}
position++
goto l174
l175:
position, tokenIndex = position174, tokenIndex174
if buffer[position] != rune('I') {
goto l159
}
position++
}
l174:
{
position176, tokenIndex176 := position, tokenIndex
if buffer[position] != rune('l') {
goto l177
}
position++
goto l176
l177:
position, tokenIndex = position176, tokenIndex176
if buffer[position] != rune('L') {
goto l159
}
position++
}
l176:
{
position178, tokenIndex178 := position, tokenIndex
if buffer[position] != rune('e') {
goto l179
}
position++
goto l178
l179:
position, tokenIndex = position178, tokenIndex178
if buffer[position] != rune('E') {
goto l159
}
position++
}
l178:
{
add(ruleAction16, position)
}
if !_rules[ruleopen]() {
goto l159
}
if !_rules[ruleposfield]() {
goto l159
}
{
position181, tokenIndex181 := position, tokenIndex
if !_rules[rulecomma]() {
goto l181
}
if !_rules[ruleallargs]() {
goto l181
}
goto l182
l181:
position, tokenIndex = position181, tokenIndex181
}
l182:
if !_rules[ruleclose]() {
goto l159
}
{
add(ruleAction17, position)
}
goto l7
l159:
position, tokenIndex = position7, tokenIndex7
{
position185, tokenIndex185 := position, tokenIndex
if buffer[position] != rune('r') {
goto l186
}
position++
goto l185
l186:
position, tokenIndex = position185, tokenIndex185
if buffer[position] != rune('R') {
goto l184
}
position++
}
l185:
{
position187, tokenIndex187 := position, tokenIndex
if buffer[position] != rune('o') {
goto l188
}
position++
goto l187
l188:
position, tokenIndex = position187, tokenIndex187
if buffer[position] != rune('O') {
goto l184
}
position++
}
l187:
{
position189, tokenIndex189 := position, tokenIndex
if buffer[position] != rune('w') {
goto l190
}
position++
goto l189
l190:
position, tokenIndex = position189, tokenIndex189
if buffer[position] != rune('W') {
goto l184
}
position++
}
l189:
{
position191, tokenIndex191 := position, tokenIndex
if buffer[position] != rune('s') {
goto l192
}
position++
goto l191
l192:
position, tokenIndex = position191, tokenIndex191
if buffer[position] != rune('S') {
goto l184
}
position++
}
l191:
{
add(ruleAction18, position)
}
if !_rules[ruleopen]() {
goto l184
}
if !_rules[ruleposfield]() {
goto l184
}
{
position194, tokenIndex194 := position, tokenIndex
if !_rules[rulecomma]() {
goto l194
}
if !_rules[ruleallargs]() {
goto l194
}
goto l195
l194:
position, tokenIndex = position194, tokenIndex194
}
l195:
if !_rules[ruleclose]() {
goto l184
}
{
add(ruleAction19, position)
}
goto l7
l184:
position, tokenIndex = position7, tokenIndex7
{
position198, tokenIndex198 := position, tokenIndex
if buffer[position] != rune('r') {
goto l199
}
position++
goto l198
l199:
position, tokenIndex = position198, tokenIndex198
if buffer[position] != rune('R') {
goto l197
}
position++
}
l198:
{
position200, tokenIndex200 := position, tokenIndex
if buffer[position] != rune('a') {
goto l201
}
position++
goto l200
l201:
position, tokenIndex = position200, tokenIndex200
if buffer[position] != rune('A') {
goto l197
}
position++
}
l200:
{
position202, tokenIndex202 := position, tokenIndex
if buffer[position] != rune('n') {
goto l203
}
position++
goto l202
l203:
position, tokenIndex = position202, tokenIndex202
if buffer[position] != rune('N') {
goto l197
}
position++
}
l202:
{
position204, tokenIndex204 := position, tokenIndex
if buffer[position] != rune('g') {
goto l205
}
position++
goto l204
l205:
position, tokenIndex = position204, tokenIndex204
if buffer[position] != rune('G') {
goto l197
}
position++
}
l204:
{
position206, tokenIndex206 := position, tokenIndex
if buffer[position] != rune('e') {
goto l207
}
position++
goto l206
l207:
position, tokenIndex = position206, tokenIndex206
if buffer[position] != rune('E') {
goto l197
}
position++
}
l206:
{
add(ruleAction20, position)
}
if !_rules[ruleopen]() {
goto l197
}
if !_rules[rulefield]() {
goto l197
}
if !_rules[ruleeq]() {
goto l197
}
if !_rules[rulevalue]() {
goto l197
}
if !_rules[rulecomma]() {
goto l197
}
{
position209, tokenIndex209 := position, tokenIndex
if buffer[position] != rune('f') {
goto l209
}
position++
if buffer[position] != rune('r') {
goto l209
}
position++
if buffer[position] != rune('o') {
goto l209
}
position++
if buffer[position] != rune('m') {
goto l209
}
position++
if buffer[position] != rune('=') {
goto l209
}
position++
goto l210
l209:
position, tokenIndex = position209, tokenIndex209
}
l210:
{
add(ruleAction21, position)
}
if !_rules[ruletimestampfmt]() {
goto l197
}
{
add(ruleAction22, position)
}
if !_rules[rulecomma]() {
goto l197
}
{
position213, tokenIndex213 := position, tokenIndex
if buffer[position] != rune('t') {
goto l213
}
position++
if buffer[position] != rune('o') {
goto l213
}
position++
if buffer[position] != rune('=') {
goto l213
}
position++
goto l214
l213:
position, tokenIndex = position213, tokenIndex213
}
l214:
if !_rules[rulesp]() {
goto l197
}
{
add(ruleAction23, position)
}
if !_rules[ruletimestampfmt]() {
goto l197
}
{
add(ruleAction24, position)
}
if !_rules[ruleclose]() {
goto l197
}
{
add(ruleAction25, position)
}
goto l7
l197:
position, tokenIndex = position7, tokenIndex7
{
position218 := position
if !_rules[ruleIDENT]() {
goto l5
}
add(rulePegText, position218)
}
{
add(ruleAction26, position)
}
if !_rules[ruleopen]() {
goto l5
}
if !_rules[ruleallargs]() {
goto l5
}
{
position220, tokenIndex220 := position, tokenIndex
if !_rules[rulecomma]() {
goto l220
}
goto l221
l220:
position, tokenIndex = position220, tokenIndex220
}
l221:
if !_rules[ruleclose]() {
goto l5
}
{
add(ruleAction27, position)
}
}
l7:
add(ruleCall, position6)
}
return true
l5:
position, tokenIndex = position5, tokenIndex5
return false
},
/* 2 allargs <- <((Call (comma Call)* (comma args)?) / args / sp)> */
func() bool {
position223, tokenIndex223 := position, tokenIndex
{
position224 := position
{
position225, tokenIndex225 := position, tokenIndex
if !_rules[ruleCall]() {
goto l226
}
l227:
{
position228, tokenIndex228 := position, tokenIndex
if !_rules[rulecomma]() {
goto l228
}
if !_rules[ruleCall]() {
goto l228
}
goto l227
l228:
position, tokenIndex = position228, tokenIndex228
}
{
position229, tokenIndex229 := position, tokenIndex
if !_rules[rulecomma]() {
goto l229
}
if !_rules[ruleargs]() {
goto l229
}
goto l230
l229:
position, tokenIndex = position229, tokenIndex229
}
l230:
goto l225
l226:
position, tokenIndex = position225, tokenIndex225
if !_rules[ruleargs]() {
goto l231
}
goto l225
l231:
position, tokenIndex = position225, tokenIndex225
if !_rules[rulesp]() {
goto l223
}
}
l225:
add(ruleallargs, position224)
}
return true
l223:
position, tokenIndex = position223, tokenIndex223
return false
},
/* 3 args <- <(arg (comma args)? sp)> */
func() bool {
position232, tokenIndex232 := position, tokenIndex
{
position233 := position
if !_rules[rulearg]() {
goto l232
}
{
position234, tokenIndex234 := position, tokenIndex
if !_rules[rulecomma]() {
goto l234
}
if !_rules[ruleargs]() {
goto l234
}
goto l235
l234:
position, tokenIndex = position234, tokenIndex234
}
l235:
if !_rules[rulesp]() {
goto l232
}
add(ruleargs, position233)
}
return true
l232:
position, tokenIndex = position232, tokenIndex232
return false
},
/* 4 arg <- <((field eq value) / (field sp COND sp value) / conditional)> */
func() bool {
position236, tokenIndex236 := position, tokenIndex
{
position237 := position
{
position238, tokenIndex238 := position, tokenIndex
if !_rules[rulefield]() {
goto l239
}
if !_rules[ruleeq]() {
goto l239
}
if !_rules[rulevalue]() {
goto l239
}
goto l238
l239:
position, tokenIndex = position238, tokenIndex238
if !_rules[rulefield]() {
goto l240
}
if !_rules[rulesp]() {
goto l240
}
{
position241 := position
{
position242, tokenIndex242 := position, tokenIndex
if buffer[position] != rune('>') {
goto l243
}
position++
if buffer[position] != rune('<') {
goto l243
}
position++
{
add(ruleAction28, position)
}
goto l242
l243:
position, tokenIndex = position242, tokenIndex242
if buffer[position] != rune('<') {
goto l245
}
position++
if buffer[position] != rune('=') {
goto l245
}
position++
{
add(ruleAction29, position)
}
goto l242
l245:
position, tokenIndex = position242, tokenIndex242
if buffer[position] != rune('>') {
goto l247
}
position++
if buffer[position] != rune('=') {
goto l247
}
position++
{
add(ruleAction30, position)
}
goto l242
l247:
position, tokenIndex = position242, tokenIndex242
if buffer[position] != rune('=') {
goto l249
}
position++
if buffer[position] != rune('=') {
goto l249
}
position++
{
add(ruleAction31, position)
}
goto l242
l249:
position, tokenIndex = position242, tokenIndex242
if buffer[position] != rune('!') {
goto l251
}
position++
if buffer[position] != rune('=') {
goto l251
}
position++
{
add(ruleAction32, position)
}
goto l242
l251:
position, tokenIndex = position242, tokenIndex242
if buffer[position] != rune('<') {
goto l253
}
position++
{
add(ruleAction33, position)
}
goto l242
l253:
position, tokenIndex = position242, tokenIndex242
if buffer[position] != rune('>') {
goto l240
}
position++
{
add(ruleAction34, position)
}
}
l242:
add(ruleCOND, position241)
}
if !_rules[rulesp]() {
goto l240
}
if !_rules[rulevalue]() {
goto l240
}
goto l238
l240:
position, tokenIndex = position238, tokenIndex238
{
position256 := position
{
add(ruleAction35, position)
}
if !_rules[rulecondint]() {
goto l236
}
if !_rules[rulecondLT]() {
goto l236
}
{
position258 := position
{
position259 := position
if !_rules[rulefieldExpr]() {
goto l236
}
add(rulePegText, position259)
}
if !_rules[rulesp]() {
goto l236
}
{
add(ruleAction39, position)
}
add(rulecondfield, position258)
}
if !_rules[rulecondLT]() {
goto l236
}
if !_rules[rulecondint]() {
goto l236
}
{
add(ruleAction36, position)
}
add(ruleconditional, position256)
}
}
l238:
add(rulearg, position237)
}
return true
l236:
position, tokenIndex = position236, tokenIndex236
return false
},
/* 5 COND <- <(('>' '<' Action28) / ('<' '=' Action29) / ('>' '=' Action30) / ('=' '=' Action31) / ('!' '=' Action32) / ('<' Action33) / ('>' Action34))> */
nil,
/* 6 conditional <- <(Action35 condint condLT condfield condLT condint Action36)> */
nil,
/* 7 condint <- <(<decimal> sp Action37)> */
func() bool {
position264, tokenIndex264 := position, tokenIndex
{
position265 := position
{
position266 := position
if !_rules[ruledecimal]() {
goto l264
}
add(rulePegText, position266)
}
if !_rules[rulesp]() {
goto l264
}
{
add(ruleAction37, position)
}
add(rulecondint, position265)
}
return true
l264:
position, tokenIndex = position264, tokenIndex264
return false
},
/* 8 condLT <- <(<(('<' '=') / '<')> sp Action38)> */
func() bool {
position268, tokenIndex268 := position, tokenIndex
{
position269 := position
{
position270 := position
{
position271, tokenIndex271 := position, tokenIndex
if buffer[position] != rune('<') {
goto l272
}
position++
if buffer[position] != rune('=') {
goto l272
}
position++
goto l271
l272:
position, tokenIndex = position271, tokenIndex271
if buffer[position] != rune('<') {
goto l268
}
position++
}
l271:
add(rulePegText, position270)
}
if !_rules[rulesp]() {
goto l268
}
{
add(ruleAction38, position)
}
add(rulecondLT, position269)
}
return true
l268:
position, tokenIndex = position268, tokenIndex268
return false
},
/* 9 condfield <- <(<fieldExpr> sp Action39)> */
nil,
/* 10 value <- <(item / (lbrack Action40 items rbrack Action41))> */
func() bool {
position275, tokenIndex275 := position, tokenIndex
{
position276 := position
{
position277, tokenIndex277 := position, tokenIndex
if !_rules[ruleitem]() {
goto l278
}
goto l277
l278:
position, tokenIndex = position277, tokenIndex277
{
position279 := position
if buffer[position] != rune('[') {
goto l275
}
position++
if !_rules[rulesp]() {
goto l275
}
add(rulelbrack, position279)
}
{
add(ruleAction40, position)
}
if !_rules[ruleitems]() {
goto l275
}
{
position281 := position
if !_rules[rulesp]() {
goto l275
}
if buffer[position] != rune(']') {
goto l275
}
position++
if !_rules[rulesp]() {
goto l275
}
add(rulerbrack, position281)
}
{
add(ruleAction41, position)
}
}
l277:
add(rulevalue, position276)
}
return true
l275:
position, tokenIndex = position275, tokenIndex275
return false
},
/* 11 items <- <(item (comma items)?)> */
func() bool {
position283, tokenIndex283 := position, tokenIndex
{
position284 := position
if !_rules[ruleitem]() {
goto l283
}
{
position285, tokenIndex285 := position, tokenIndex
if !_rules[rulecomma]() {
goto l285
}
if !_rules[ruleitems]() {
goto l285
}
goto l286
l285:
position, tokenIndex = position285, tokenIndex285
}
l286:
add(ruleitems, position284)
}
return true
l283:
position, tokenIndex = position283, tokenIndex283
return false
},
/* 12 item <- <(('n' 'u' 'l' 'l' &(comma / close) Action42) / ('t' 'r' 'u' 'e' &(comma / close) Action43) / ('f' 'a' 'l' 's' 'e' &(comma / close) Action44) / (timestampfmt Action45) / (<decimal> Action46) / (<IDENT> Action47 open allargs comma? close Action48) / (<([a-z] / [A-Z] / [0-9] / '-' / '_' / ':')+> Action49) / (<('"' doublequotedstring '"')> Action50) / (<('\'' singlequotedstring '\'')> Action51))> */
func() bool {
position287, tokenIndex287 := position, tokenIndex
{
position288 := position
{
position289, tokenIndex289 := position, tokenIndex
if buffer[position] != rune('n') {
goto l290
}
position++
if buffer[position] != rune('u') {
goto l290
}
position++
if buffer[position] != rune('l') {
goto l290
}
position++
if buffer[position] != rune('l') {
goto l290
}
position++
{
position291, tokenIndex291 := position, tokenIndex
{
position292, tokenIndex292 := position, tokenIndex
if !_rules[rulecomma]() {
goto l293
}
goto l292
l293:
position, tokenIndex = position292, tokenIndex292
if !_rules[ruleclose]() {
goto l290
}
}
l292:
position, tokenIndex = position291, tokenIndex291
}
{
add(ruleAction42, position)
}
goto l289
l290:
position, tokenIndex = position289, tokenIndex289
if buffer[position] != rune('t') {
goto l295
}
position++
if buffer[position] != rune('r') {
goto l295
}
position++
if buffer[position] != rune('u') {
goto l295
}
position++
if buffer[position] != rune('e') {
goto l295
}
position++
{
position296, tokenIndex296 := position, tokenIndex
{
position297, tokenIndex297 := position, tokenIndex
if !_rules[rulecomma]() {
goto l298
}
goto l297
l298:
position, tokenIndex = position297, tokenIndex297
if !_rules[ruleclose]() {
goto l295
}
}
l297:
position, tokenIndex = position296, tokenIndex296
}
{
add(ruleAction43, position)
}
goto l289
l295:
position, tokenIndex = position289, tokenIndex289
if buffer[position] != rune('f') {
goto l300
}
position++
if buffer[position] != rune('a') {
goto l300
}
position++
if buffer[position] != rune('l') {
goto l300
}
position++
if buffer[position] != rune('s') {
goto l300
}
position++
if buffer[position] != rune('e') {
goto l300
}
position++
{
position301, tokenIndex301 := position, tokenIndex
{
position302, tokenIndex302 := position, tokenIndex
if !_rules[rulecomma]() {
goto l303
}
goto l302
l303:
position, tokenIndex = position302, tokenIndex302
if !_rules[ruleclose]() {
goto l300
}
}
l302:
position, tokenIndex = position301, tokenIndex301
}
{
add(ruleAction44, position)
}
goto l289
l300:
position, tokenIndex = position289, tokenIndex289
if !_rules[ruletimestampfmt]() {
goto l305
}
{
add(ruleAction45, position)
}
goto l289
l305:
position, tokenIndex = position289, tokenIndex289
{
position308 := position
if !_rules[ruledecimal]() {
goto l307
}
add(rulePegText, position308)
}
{
add(ruleAction46, position)
}
goto l289
l307:
position, tokenIndex = position289, tokenIndex289
{
position311 := position
if !_rules[ruleIDENT]() {
goto l310
}
add(rulePegText, position311)
}
{
add(ruleAction47, position)
}
if !_rules[ruleopen]() {
goto l310
}
if !_rules[ruleallargs]() {
goto l310
}
{
position313, tokenIndex313 := position, tokenIndex
if !_rules[rulecomma]() {
goto l313
}
goto l314
l313:
position, tokenIndex = position313, tokenIndex313
}
l314:
if !_rules[ruleclose]() {
goto l310
}
{
add(ruleAction48, position)
}
goto l289
l310:
position, tokenIndex = position289, tokenIndex289
{
position317 := position
{
position320, tokenIndex320 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
goto l321
}
position++
goto l320
l321:
position, tokenIndex = position320, tokenIndex320
if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l322
}
position++
goto l320
l322:
position, tokenIndex = position320, tokenIndex320
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l323
}
position++
goto l320
l323:
position, tokenIndex = position320, tokenIndex320
if buffer[position] != rune('-') {
goto l324
}
position++
goto l320
l324:
position, tokenIndex = position320, tokenIndex320
if buffer[position] != rune('_') {
goto l325
}
position++
goto l320
l325:
position, tokenIndex = position320, tokenIndex320
if buffer[position] != rune(':') {
goto l316
}
position++
}
l320:
l318:
{
position319, tokenIndex319 := position, tokenIndex
{
position326, tokenIndex326 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
goto l327
}
position++
goto l326
l327:
position, tokenIndex = position326, tokenIndex326
if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l328
}
position++
goto l326
l328:
position, tokenIndex = position326, tokenIndex326
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l329
}
position++
goto l326
l329:
position, tokenIndex = position326, tokenIndex326
if buffer[position] != rune('-') {
goto l330
}
position++
goto l326
l330:
position, tokenIndex = position326, tokenIndex326
if buffer[position] != rune('_') {
goto l331
}
position++
goto l326
l331:
position, tokenIndex = position326, tokenIndex326
if buffer[position] != rune(':') {
goto l319
}
position++
}
l326:
goto l318
l319:
position, tokenIndex = position319, tokenIndex319
}
add(rulePegText, position317)
}
{
add(ruleAction49, position)
}
goto l289
l316:
position, tokenIndex = position289, tokenIndex289
{
position334 := position
if buffer[position] != rune('"') {
goto l333
}
position++
if !_rules[ruledoublequotedstring]() {
goto l333
}
if buffer[position] != rune('"') {
goto l333
}
position++
add(rulePegText, position334)
}
{
add(ruleAction50, position)
}
goto l289
l333:
position, tokenIndex = position289, tokenIndex289
{
position336 := position
if buffer[position] != rune('\'') {
goto l287
}
position++
if !_rules[rulesinglequotedstring]() {
goto l287
}
if buffer[position] != rune('\'') {
goto l287
}
position++
add(rulePegText, position336)
}
{
add(ruleAction51, position)
}
}
l289:
add(ruleitem, position288)
}
return true
l287:
position, tokenIndex = position287, tokenIndex287
return false
},
/* 13 doublequotedstring <- <(('\\' '"') / ('\\' '\\') / ('\\' 'n') / ('\\' 't') / (!('"' / '\\') .))*> */
func() bool {
{
position339 := position
l340:
{
position341, tokenIndex341 := position, tokenIndex
{
position342, tokenIndex342 := position, tokenIndex
if buffer[position] != rune('\\') {
goto l343
}
position++
if buffer[position] != rune('"') {
goto l343
}
position++
goto l342
l343:
position, tokenIndex = position342, tokenIndex342
if buffer[position] != rune('\\') {
goto l344
}
position++
if buffer[position] != rune('\\') {
goto l344
}
position++
goto l342
l344:
position, tokenIndex = position342, tokenIndex342
if buffer[position] != rune('\\') {
goto l345
}
position++
if buffer[position] != rune('n') {
goto l345
}
position++
goto l342
l345:
position, tokenIndex = position342, tokenIndex342
if buffer[position] != rune('\\') {
goto l346
}
position++
if buffer[position] != rune('t') {
goto l346
}
position++
goto l342
l346:
position, tokenIndex = position342, tokenIndex342
{
position347, tokenIndex347 := position, tokenIndex
{
position348, tokenIndex348 := position, tokenIndex
if buffer[position] != rune('"') {
goto l349
}
position++
goto l348
l349:
position, tokenIndex = position348, tokenIndex348
if buffer[position] != rune('\\') {
goto l347
}
position++
}
l348:
goto l341
l347:
position, tokenIndex = position347, tokenIndex347
}
if !matchDot() {
goto l341
}
}
l342:
goto l340
l341:
position, tokenIndex = position341, tokenIndex341
}
add(ruledoublequotedstring, position339)
}
return true
},
/* 14 singlequotedstring <- <(('\\' '\'') / ('\\' '\\') / ('\\' 'n') / ('\\' 't') / (!('\'' / '\\') .))*> */
func() bool {
{
position351 := position
l352:
{
position353, tokenIndex353 := position, tokenIndex
{
position354, tokenIndex354 := position, tokenIndex
if buffer[position] != rune('\\') {
goto l355
}
position++
if buffer[position] != rune('\'') {
goto l355
}
position++
goto l354
l355:
position, tokenIndex = position354, tokenIndex354
if buffer[position] != rune('\\') {
goto l356
}
position++
if buffer[position] != rune('\\') {
goto l356
}
position++
goto l354
l356:
position, tokenIndex = position354, tokenIndex354
if buffer[position] != rune('\\') {
goto l357
}
position++
if buffer[position] != rune('n') {
goto l357
}
position++
goto l354
l357:
position, tokenIndex = position354, tokenIndex354
if buffer[position] != rune('\\') {
goto l358
}
position++
if buffer[position] != rune('t') {
goto l358
}
position++
goto l354
l358:
position, tokenIndex = position354, tokenIndex354
{
position359, tokenIndex359 := position, tokenIndex
{
position360, tokenIndex360 := position, tokenIndex
if buffer[position] != rune('\'') {
goto l361
}
position++
goto l360
l361:
position, tokenIndex = position360, tokenIndex360
if buffer[position] != rune('\\') {
goto l359
}
position++
}
l360:
goto l353
l359:
position, tokenIndex = position359, tokenIndex359
}
if !matchDot() {
goto l353
}
}
l354:
goto l352
l353:
position, tokenIndex = position353, tokenIndex353
}
add(rulesinglequotedstring, position351)
}
return true
},
/* 15 fieldExpr <- <(([a-z] / [A-Z] / '_') ([a-z] / [A-Z] / [0-9] / '_' / '-')*)> */
func() bool {
position362, tokenIndex362 := position, tokenIndex
{
position363 := position
{
position364, tokenIndex364 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
goto l365
}
position++
goto l364
l365:
position, tokenIndex = position364, tokenIndex364
if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l366
}
position++
goto l364
l366:
position, tokenIndex = position364, tokenIndex364
if buffer[position] != rune('_') {
goto l362
}
position++
}
l364:
l367:
{
position368, tokenIndex368 := position, tokenIndex
{
position369, tokenIndex369 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
goto l370
}
position++
goto l369
l370:
position, tokenIndex = position369, tokenIndex369
if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l371
}
position++
goto l369
l371:
position, tokenIndex = position369, tokenIndex369
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l372
}
position++
goto l369
l372:
position, tokenIndex = position369, tokenIndex369
if buffer[position] != rune('_') {
goto l373
}
position++
goto l369
l373:
position, tokenIndex = position369, tokenIndex369
if buffer[position] != rune('-') {
goto l368
}
position++
}
l369:
goto l367
l368:
position, tokenIndex = position368, tokenIndex368
}
add(rulefieldExpr, position363)
}
return true
l362:
position, tokenIndex = position362, tokenIndex362
return false
},
/* 16 field <- <(<(fieldExpr / reserved)> Action52)> */
func() bool {
position374, tokenIndex374 := position, tokenIndex
{
position375 := position
{
position376 := position
{
position377, tokenIndex377 := position, tokenIndex
if !_rules[rulefieldExpr]() {
goto l378
}
goto l377
l378:
position, tokenIndex = position377, tokenIndex377
{
position379 := position
{
position380, tokenIndex380 := position, tokenIndex
if buffer[position] != rune('_') {
goto l381
}
position++
if buffer[position] != rune('r') {
goto l381
}
position++
if buffer[position] != rune('o') {
goto l381
}
position++
if buffer[position] != rune('w') {
goto l381
}
position++
goto l380
l381:
position, tokenIndex = position380, tokenIndex380
if buffer[position] != rune('_') {
goto l382
}
position++
if buffer[position] != rune('c') {
goto l382
}
position++
if buffer[position] != rune('o') {
goto l382
}
position++
if buffer[position] != rune('l') {
goto l382
}
position++
goto l380
l382:
position, tokenIndex = position380, tokenIndex380
if buffer[position] != rune('_') {
goto l383
}
position++
if buffer[position] != rune('s') {
goto l383
}
position++
if buffer[position] != rune('t') {
goto l383
}
position++
if buffer[position] != rune('a') {
goto l383
}
position++
if buffer[position] != rune('r') {
goto l383
}
position++
if buffer[position] != rune('t') {
goto l383
}
position++
goto l380
l383:
position, tokenIndex = position380, tokenIndex380
if buffer[position] != rune('_') {
goto l384
}
position++
if buffer[position] != rune('e') {
goto l384
}
position++
if buffer[position] != rune('n') {
goto l384
}
position++
if buffer[position] != rune('d') {
goto l384
}
position++
goto l380
l384:
position, tokenIndex = position380, tokenIndex380
if buffer[position] != rune('_') {
goto l385
}
position++
if buffer[position] != rune('t') {
goto l385
}
position++
if buffer[position] != rune('i') {
goto l385
}
position++
if buffer[position] != rune('m') {
goto l385
}
position++
if buffer[position] != rune('e') {
goto l385
}
position++
if buffer[position] != rune('s') {
goto l385
}
position++
if buffer[position] != rune('t') {
goto l385
}
position++
if buffer[position] != rune('a') {
goto l385
}
position++
if buffer[position] != rune('m') {
goto l385
}
position++
if buffer[position] != rune('p') {
goto l385
}
position++
goto l380
l385:
position, tokenIndex = position380, tokenIndex380
if buffer[position] != rune('_') {
goto l374
}
position++
if buffer[position] != rune('f') {
goto l374
}
position++
if buffer[position] != rune('i') {
goto l374
}
position++
if buffer[position] != rune('e') {
goto l374
}
position++
if buffer[position] != rune('l') {
goto l374
}
position++
if buffer[position] != rune('d') {
goto l374
}
position++
}
l380:
add(rulereserved, position379)
}
}
l377:
add(rulePegText, position376)
}
{
add(ruleAction52, position)
}
add(rulefield, position375)
}
return true
l374:
position, tokenIndex = position374, tokenIndex374
return false
},
/* 17 reserved <- <(('_' 'r' 'o' 'w') / ('_' 'c' 'o' 'l') / ('_' 's' 't' 'a' 'r' 't') / ('_' 'e' 'n' 'd') / ('_' 't' 'i' 'm' 'e' 's' 't' 'a' 'm' 'p') / ('_' 'f' 'i' 'e' 'l' 'd'))> */
nil,
/* 18 posfield <- <(('f' 'i' 'e' 'l' 'd' '=')? <fieldExpr> Action53)> */
func() bool {
position388, tokenIndex388 := position, tokenIndex
{
position389 := position
{
position390, tokenIndex390 := position, tokenIndex
if buffer[position] != rune('f') {
goto l390
}
position++
if buffer[position] != rune('i') {
goto l390
}
position++
if buffer[position] != rune('e') {
goto l390
}
position++
if buffer[position] != rune('l') {
goto l390
}
position++
if buffer[position] != rune('d') {
goto l390
}
position++
if buffer[position] != rune('=') {
goto l390
}
position++
goto l391
l390:
position, tokenIndex = position390, tokenIndex390
}
l391:
{
position392 := position
if !_rules[rulefieldExpr]() {
goto l388
}
add(rulePegText, position392)
}
{
add(ruleAction53, position)
}
add(ruleposfield, position389)
}
return true
l388:
position, tokenIndex = position388, tokenIndex388
return false
},
/* 19 col <- <((<digits> Action54) / (<('\'' singlequotedstring '\'')> Action55) / (<('"' doublequotedstring '"')> Action56))> */
func() bool {
position394, tokenIndex394 := position, tokenIndex
{
position395 := position
{
position396, tokenIndex396 := position, tokenIndex
{
position398 := position
if !_rules[ruledigits]() {
goto l397
}
add(rulePegText, position398)
}
{
add(ruleAction54, position)
}
goto l396
l397:
position, tokenIndex = position396, tokenIndex396
{
position401 := position
if buffer[position] != rune('\'') {
goto l400
}
position++
if !_rules[rulesinglequotedstring]() {
goto l400
}
if buffer[position] != rune('\'') {
goto l400
}
position++
add(rulePegText, position401)
}
{
add(ruleAction55, position)
}
goto l396
l400:
position, tokenIndex = position396, tokenIndex396
{
position403 := position
if buffer[position] != rune('"') {
goto l394
}
position++
if !_rules[ruledoublequotedstring]() {
goto l394
}
if buffer[position] != rune('"') {
goto l394
}
position++
add(rulePegText, position403)
}
{
add(ruleAction56, position)
}
}
l396:
add(rulecol, position395)
}
return true
l394:
position, tokenIndex = position394, tokenIndex394
return false
},
/* 20 row <- <((<digits> Action57) / (<('\'' singlequotedstring '\'')> Action58) / (<('"' doublequotedstring '"')> Action59))> */
nil,
/* 21 open <- <('(' sp)> */
func() bool {
position406, tokenIndex406 := position, tokenIndex
{
position407 := position
if buffer[position] != rune('(') {
goto l406
}
position++
if !_rules[rulesp]() {
goto l406
}
add(ruleopen, position407)
}
return true
l406:
position, tokenIndex = position406, tokenIndex406
return false
},
/* 22 close <- <(sp ')' sp)> */
func() bool {
position408, tokenIndex408 := position, tokenIndex
{
position409 := position
if !_rules[rulesp]() {
goto l408
}
if buffer[position] != rune(')') {
goto l408
}
position++
if !_rules[rulesp]() {
goto l408
}
add(ruleclose, position409)
}
return true
l408:
position, tokenIndex = position408, tokenIndex408
return false
},
/* 23 sp <- <(' ' / '\t' / '\n')*> */
func() bool {
{
position411 := position
l412:
{
position413, tokenIndex413 := position, tokenIndex
{
position414, tokenIndex414 := position, tokenIndex
if buffer[position] != rune(' ') {
goto l415
}
position++
goto l414
l415:
position, tokenIndex = position414, tokenIndex414
if buffer[position] != rune('\t') {
goto l416
}
position++
goto l414
l416:
position, tokenIndex = position414, tokenIndex414
if buffer[position] != rune('\n') {
goto l413
}
position++
}
l414:
goto l412
l413:
position, tokenIndex = position413, tokenIndex413
}
add(rulesp, position411)
}
return true
},
/* 24 eq <- <(sp '=' sp)> */
func() bool {
position417, tokenIndex417 := position, tokenIndex
{
position418 := position
if !_rules[rulesp]() {
goto l417
}
if buffer[position] != rune('=') {
goto l417
}
position++
if !_rules[rulesp]() {
goto l417
}
add(ruleeq, position418)
}
return true
l417:
position, tokenIndex = position417, tokenIndex417
return false
},
/* 25 comma <- <(sp ',' sp)> */
func() bool {
position419, tokenIndex419 := position, tokenIndex
{
position420 := position
if !_rules[rulesp]() {
goto l419
}
if buffer[position] != rune(',') {
goto l419
}
position++
if !_rules[rulesp]() {
goto l419
}
add(rulecomma, position420)
}
return true
l419:
position, tokenIndex = position419, tokenIndex419
return false
},
/* 26 lbrack <- <('[' sp)> */
nil,
/* 27 rbrack <- <(sp ']' sp)> */
nil,
/* 28 IDENT <- <(([a-z] / [A-Z]) ([a-z] / [A-Z] / [0-9])*)> */
func() bool {
position423, tokenIndex423 := position, tokenIndex
{
position424 := position
{
position425, tokenIndex425 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
goto l426
}
position++
goto l425
l426:
position, tokenIndex = position425, tokenIndex425
if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l423
}
position++
}
l425:
l427:
{
position428, tokenIndex428 := position, tokenIndex
{
position429, tokenIndex429 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
goto l430
}
position++
goto l429
l430:
position, tokenIndex = position429, tokenIndex429
if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l431
}
position++
goto l429
l431:
position, tokenIndex = position429, tokenIndex429
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l428
}
position++
}
l429:
goto l427
l428:
position, tokenIndex = position428, tokenIndex428
}
add(ruleIDENT, position424)
}
return true
l423:
position, tokenIndex = position423, tokenIndex423
return false
},
/* 29 digits <- <[0-9]+> */
func() bool {
position432, tokenIndex432 := position, tokenIndex
{
position433 := position
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l432
}
position++
l434:
{
position435, tokenIndex435 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l435
}
position++
goto l434
l435:
position, tokenIndex = position435, tokenIndex435
}
add(ruledigits, position433)
}
return true
l432:
position, tokenIndex = position432, tokenIndex432
return false
},
/* 30 signedDigits <- <('-'? digits)> */
nil,
/* 31 decimal <- <((signedDigits ('.' digits?)?) / ('-'? '.' digits))> */
func() bool {
position437, tokenIndex437 := position, tokenIndex
{
position438 := position
{
position439, tokenIndex439 := position, tokenIndex
{
position441 := position
{
position442, tokenIndex442 := position, tokenIndex
if buffer[position] != rune('-') {
goto l442
}
position++
goto l443
l442:
position, tokenIndex = position442, tokenIndex442
}
l443:
if !_rules[ruledigits]() {
goto l440
}
add(rulesignedDigits, position441)
}
{
position444, tokenIndex444 := position, tokenIndex
if buffer[position] != rune('.') {
goto l444
}
position++
{
position446, tokenIndex446 := position, tokenIndex
if !_rules[ruledigits]() {
goto l446
}
goto l447
l446:
position, tokenIndex = position446, tokenIndex446
}
l447:
goto l445
l444:
position, tokenIndex = position444, tokenIndex444
}
l445:
goto l439
l440:
position, tokenIndex = position439, tokenIndex439
{
position448, tokenIndex448 := position, tokenIndex
if buffer[position] != rune('-') {
goto l448
}
position++
goto l449
l448:
position, tokenIndex = position448, tokenIndex448
}
l449:
if buffer[position] != rune('.') {
goto l437
}
position++
if !_rules[ruledigits]() {
goto l437
}
}
l439:
add(ruledecimal, position438)
}
return true
l437:
position, tokenIndex = position437, tokenIndex437
return false
},
/* 32 timestampbasicfmt <- <([0-9] [0-9] [0-9] [0-9] '-' ('0' / '1') [0-9] '-' [0-3] [0-9] 'T' [0-9] [0-9] ':' [0-9] [0-9])> */
func() bool {
position450, tokenIndex450 := position, tokenIndex
{
position451 := position
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l450
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l450
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l450
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l450
}
position++
if buffer[position] != rune('-') {
goto l450
}
position++
{
position452, tokenIndex452 := position, tokenIndex
if buffer[position] != rune('0') {
goto l453
}
position++
goto l452
l453:
position, tokenIndex = position452, tokenIndex452
if buffer[position] != rune('1') {
goto l450
}
position++
}
l452:
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l450
}
position++
if buffer[position] != rune('-') {
goto l450
}
position++
if c := buffer[position]; c < rune('0') || c > rune('3') {
goto l450
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l450
}
position++
if buffer[position] != rune('T') {
goto l450
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l450
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l450
}
position++
if buffer[position] != rune(':') {
goto l450
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l450
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l450
}
position++
add(ruletimestampbasicfmt, position451)
}
return true
l450:
position, tokenIndex = position450, tokenIndex450
return false
},
/* 33 timestampfmt <- <(('"' <timestampbasicfmt> '"') / ('\'' <timestampbasicfmt> '\'') / <timestampbasicfmt>)> */
func() bool {
position454, tokenIndex454 := position, tokenIndex
{
position455 := position
{
position456, tokenIndex456 := position, tokenIndex
if buffer[position] != rune('"') {
goto l457
}
position++
{
position458 := position
if !_rules[ruletimestampbasicfmt]() {
goto l457
}
add(rulePegText, position458)
}
if buffer[position] != rune('"') {
goto l457
}
position++
goto l456
l457:
position, tokenIndex = position456, tokenIndex456
if buffer[position] != rune('\'') {
goto l459
}
position++
{
position460 := position
if !_rules[ruletimestampbasicfmt]() {
goto l459
}
add(rulePegText, position460)
}
if buffer[position] != rune('\'') {
goto l459
}
position++
goto l456
l459:
position, tokenIndex = position456, tokenIndex456
{
position461 := position
if !_rules[ruletimestampbasicfmt]() {
goto l454
}
add(rulePegText, position461)
}
}
l456:
add(ruletimestampfmt, position455)
}
return true
l454:
position, tokenIndex = position454, tokenIndex454
return false
},
/* 34 timestamp <- <(<timestampfmt> Action60)> */
nil,
/* 36 Action0 <- <{p.startCall("Set")}> */
nil,
/* 37 Action1 <- <{p.endCall()}> */
nil,
/* 38 Action2 <- <{p.startCall("SetRowAttrs")}> */
nil,
/* 39 Action3 <- <{p.endCall()}> */
nil,
/* 40 Action4 <- <{p.startCall("SetColumnAttrs")}> */
nil,
/* 41 Action5 <- <{p.endCall()}> */
nil,
/* 42 Action6 <- <{p.startCall("Clear")}> */
nil,
/* 43 Action7 <- <{p.endCall()}> */
nil,
/* 44 Action8 <- <{p.startCall("ClearRow")}> */
nil,
/* 45 Action9 <- <{p.endCall()}> */
nil,
/* 46 Action10 <- <{p.startCall("Store")}> */
nil,
/* 47 Action11 <- <{p.endCall()}> */
nil,
/* 48 Action12 <- <{p.startCall("TopN")}> */
nil,
/* 49 Action13 <- <{p.endCall()}> */
nil,
/* 50 Action14 <- <{p.startCall("TopK")}> */
nil,
/* 51 Action15 <- <{p.endCall()}> */
nil,
/* 52 Action16 <- <{p.startCall("Percentile")}> */
nil,
/* 53 Action17 <- <{p.endCall()}> */
nil,
/* 54 Action18 <- <{p.startCall("Rows")}> */
nil,
/* 55 Action19 <- <{p.endCall()}> */
nil,
/* 56 Action20 <- <{p.startCall("Range")}> */
nil,
/* 57 Action21 <- <{p.addField("from")}> */
nil,
/* 58 Action22 <- <{p.addVal(text)}> */
nil,
/* 59 Action23 <- <{p.addField("to")}> */
nil,
/* 60 Action24 <- <{p.addVal(text)}> */
nil,
/* 61 Action25 <- <{p.endCall()}> */
nil,
nil,
/* 63 Action26 <- <{ p.startCall(text) }> */
nil,
/* 64 Action27 <- <{ p.endCall() }> */
nil,
/* 65 Action28 <- <{ p.addBTWN() }> */
nil,
/* 66 Action29 <- <{ p.addLTE() }> */
nil,
/* 67 Action30 <- <{ p.addGTE() }> */
nil,
/* 68 Action31 <- <{ p.addEQ() }> */
nil,
/* 69 Action32 <- <{ p.addNEQ() }> */
nil,
/* 70 Action33 <- <{ p.addLT() }> */
nil,
/* 71 Action34 <- <{ p.addGT() }> */
nil,
/* 72 Action35 <- <{p.startConditional()}> */
nil,
/* 73 Action36 <- <{p.endConditional()}> */
nil,
/* 74 Action37 <- <{p.condAdd(text)}> */
nil,
/* 75 Action38 <- <{p.condAdd(text)}> */
nil,
/* 76 Action39 <- <{p.condAdd(text)}> */
nil,
/* 77 Action40 <- <{ p.startList() }> */
nil,
/* 78 Action41 <- <{ p.endList() }> */
nil,
/* 79 Action42 <- <{ p.addVal(nil) }> */
nil,
/* 80 Action43 <- <{ p.addVal(true) }> */
nil,
/* 81 Action44 <- <{ p.addVal(false) }> */
nil,
/* 82 Action45 <- <{ p.addVal(text) }> */
nil,
/* 83 Action46 <- <{ p.addNumVal(text) }> */
nil,
/* 84 Action47 <- <{ p.startCall(text) }> */
nil,
/* 85 Action48 <- <{ p.addVal(p.endCall()) }> */
nil,
/* 86 Action49 <- <{ p.addVal(text) }> */
nil,
/* 87 Action50 <- <{ p.addVal(text) }> */
nil,
/* 88 Action51 <- <{ p.addVal(text) }> */
nil,
/* 89 Action52 <- <{ p.addField(text) }> */
nil,
/* 90 Action53 <- <{ p.addPosStr("_field", text) }> */
nil,
/* 91 Action54 <- <{p.addPosNum("_col", text)}> */
nil,
/* 92 Action55 <- <{p.addPosStr("_col", text)}> */
nil,
/* 93 Action56 <- <{p.addPosStr("_col", text)}> */
nil,
/* 94 Action57 <- <{p.addPosNum("_row", text)}> */
nil,
/* 95 Action58 <- <{p.addPosStr("_row", text)}> */
nil,
/* 96 Action59 <- <{p.addPosStr("_row", text)}> */
nil,
/* 97 Action60 <- <{p.addPosStr("_timestamp", text)}> */
nil,
}
p.rules = _rules
return nil
}