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) / ( 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 <- <( 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 <- <( 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) / ( Action46) / ( 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' '=')? 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 <- <(( 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 <- <(( 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 <- <(('"' '"') / ('\'' '\'') / )> */ 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 <- <( 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 }