featurebase/pql/pql.peg.go
2020-11-13 18:31:55 -05:00

3929 lines
84 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
rulePegText
ruleAction24
ruleAction25
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
)
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",
"PegText",
"Action24",
"Action25",
"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",
}
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 [96]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("Rows")
case ruleAction17:
p.endCall()
case ruleAction18:
p.startCall("Range")
case ruleAction19:
p.addField("from")
case ruleAction20:
p.addVal(text)
case ruleAction21:
p.addField("to")
case ruleAction22:
p.addVal(text)
case ruleAction23:
p.endCall()
case ruleAction24:
p.startCall(text)
case ruleAction25:
p.endCall()
case ruleAction26:
p.addBTWN()
case ruleAction27:
p.addLTE()
case ruleAction28:
p.addGTE()
case ruleAction29:
p.addEQ()
case ruleAction30:
p.addNEQ()
case ruleAction31:
p.addLT()
case ruleAction32:
p.addGT()
case ruleAction33:
p.startConditional()
case ruleAction34:
p.endConditional()
case ruleAction35:
p.condAdd(text)
case ruleAction36:
p.condAdd(text)
case ruleAction37:
p.condAdd(text)
case ruleAction38:
p.startList()
case ruleAction39:
p.endList()
case ruleAction40:
p.addVal(nil)
case ruleAction41:
p.addVal(true)
case ruleAction42:
p.addVal(false)
case ruleAction43:
p.addVal(text)
case ruleAction44:
p.addNumVal(text)
case ruleAction45:
p.startCall(text)
case ruleAction46:
p.addVal(p.endCall())
case ruleAction47:
p.addVal(text)
case ruleAction48:
p.addVal(text)
case ruleAction49:
p.addVal(text)
case ruleAction50:
p.addField(text)
case ruleAction51:
p.addPosStr("_field", text)
case ruleAction52:
p.addPosNum("_col", text)
case ruleAction53:
p.addPosStr("_col", text)
case ruleAction54:
p.addPosStr("_col", text)
case ruleAction55:
p.addPosNum("_row", text)
case ruleAction56:
p.addPosStr("_row", text)
case ruleAction57:
p.addPosStr("_row", text)
case ruleAction58:
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) / (('r' / 'R') ('o' / 'O') ('w' / 'W') ('s' / 'S') Action16 open posfield (comma allargs)? close Action17) / (('r' / 'R') ('a' / 'A') ('n' / 'N') ('g' / 'G') ('e' / 'E') Action18 open field eq value comma ('f' 'r' 'o' 'm' '=')? Action19 timestampfmt Action20 comma ('t' 'o' '=')? sp Action21 timestampfmt Action22 close Action23) / (<IDENT> Action24 open allargs comma? close Action25))> */
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(ruleAction58, 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(ruleAction55, 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(ruleAction56, 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(ruleAction57, 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('r') {
goto l161
}
position++
goto l160
l161:
position, tokenIndex = position160, tokenIndex160
if buffer[position] != rune('R') {
goto l159
}
position++
}
l160:
{
position162, tokenIndex162 := position, tokenIndex
if buffer[position] != rune('o') {
goto l163
}
position++
goto l162
l163:
position, tokenIndex = position162, tokenIndex162
if buffer[position] != rune('O') {
goto l159
}
position++
}
l162:
{
position164, tokenIndex164 := position, tokenIndex
if buffer[position] != rune('w') {
goto l165
}
position++
goto l164
l165:
position, tokenIndex = position164, tokenIndex164
if buffer[position] != rune('W') {
goto l159
}
position++
}
l164:
{
position166, tokenIndex166 := position, tokenIndex
if buffer[position] != rune('s') {
goto l167
}
position++
goto l166
l167:
position, tokenIndex = position166, tokenIndex166
if buffer[position] != rune('S') {
goto l159
}
position++
}
l166:
{
add(ruleAction16, position)
}
if !_rules[ruleopen]() {
goto l159
}
if !_rules[ruleposfield]() {
goto l159
}
{
position169, tokenIndex169 := position, tokenIndex
if !_rules[rulecomma]() {
goto l169
}
if !_rules[ruleallargs]() {
goto l169
}
goto l170
l169:
position, tokenIndex = position169, tokenIndex169
}
l170:
if !_rules[ruleclose]() {
goto l159
}
{
add(ruleAction17, position)
}
goto l7
l159:
position, tokenIndex = position7, tokenIndex7
{
position173, tokenIndex173 := position, tokenIndex
if buffer[position] != rune('r') {
goto l174
}
position++
goto l173
l174:
position, tokenIndex = position173, tokenIndex173
if buffer[position] != rune('R') {
goto l172
}
position++
}
l173:
{
position175, tokenIndex175 := position, tokenIndex
if buffer[position] != rune('a') {
goto l176
}
position++
goto l175
l176:
position, tokenIndex = position175, tokenIndex175
if buffer[position] != rune('A') {
goto l172
}
position++
}
l175:
{
position177, tokenIndex177 := position, tokenIndex
if buffer[position] != rune('n') {
goto l178
}
position++
goto l177
l178:
position, tokenIndex = position177, tokenIndex177
if buffer[position] != rune('N') {
goto l172
}
position++
}
l177:
{
position179, tokenIndex179 := position, tokenIndex
if buffer[position] != rune('g') {
goto l180
}
position++
goto l179
l180:
position, tokenIndex = position179, tokenIndex179
if buffer[position] != rune('G') {
goto l172
}
position++
}
l179:
{
position181, tokenIndex181 := position, tokenIndex
if buffer[position] != rune('e') {
goto l182
}
position++
goto l181
l182:
position, tokenIndex = position181, tokenIndex181
if buffer[position] != rune('E') {
goto l172
}
position++
}
l181:
{
add(ruleAction18, position)
}
if !_rules[ruleopen]() {
goto l172
}
if !_rules[rulefield]() {
goto l172
}
if !_rules[ruleeq]() {
goto l172
}
if !_rules[rulevalue]() {
goto l172
}
if !_rules[rulecomma]() {
goto l172
}
{
position184, tokenIndex184 := position, tokenIndex
if buffer[position] != rune('f') {
goto l184
}
position++
if buffer[position] != rune('r') {
goto l184
}
position++
if buffer[position] != rune('o') {
goto l184
}
position++
if buffer[position] != rune('m') {
goto l184
}
position++
if buffer[position] != rune('=') {
goto l184
}
position++
goto l185
l184:
position, tokenIndex = position184, tokenIndex184
}
l185:
{
add(ruleAction19, position)
}
if !_rules[ruletimestampfmt]() {
goto l172
}
{
add(ruleAction20, position)
}
if !_rules[rulecomma]() {
goto l172
}
{
position188, tokenIndex188 := position, tokenIndex
if buffer[position] != rune('t') {
goto l188
}
position++
if buffer[position] != rune('o') {
goto l188
}
position++
if buffer[position] != rune('=') {
goto l188
}
position++
goto l189
l188:
position, tokenIndex = position188, tokenIndex188
}
l189:
if !_rules[rulesp]() {
goto l172
}
{
add(ruleAction21, position)
}
if !_rules[ruletimestampfmt]() {
goto l172
}
{
add(ruleAction22, position)
}
if !_rules[ruleclose]() {
goto l172
}
{
add(ruleAction23, position)
}
goto l7
l172:
position, tokenIndex = position7, tokenIndex7
{
position193 := position
if !_rules[ruleIDENT]() {
goto l5
}
add(rulePegText, position193)
}
{
add(ruleAction24, position)
}
if !_rules[ruleopen]() {
goto l5
}
if !_rules[ruleallargs]() {
goto l5
}
{
position195, tokenIndex195 := position, tokenIndex
if !_rules[rulecomma]() {
goto l195
}
goto l196
l195:
position, tokenIndex = position195, tokenIndex195
}
l196:
if !_rules[ruleclose]() {
goto l5
}
{
add(ruleAction25, 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 {
position198, tokenIndex198 := position, tokenIndex
{
position199 := position
{
position200, tokenIndex200 := position, tokenIndex
if !_rules[ruleCall]() {
goto l201
}
l202:
{
position203, tokenIndex203 := position, tokenIndex
if !_rules[rulecomma]() {
goto l203
}
if !_rules[ruleCall]() {
goto l203
}
goto l202
l203:
position, tokenIndex = position203, tokenIndex203
}
{
position204, tokenIndex204 := position, tokenIndex
if !_rules[rulecomma]() {
goto l204
}
if !_rules[ruleargs]() {
goto l204
}
goto l205
l204:
position, tokenIndex = position204, tokenIndex204
}
l205:
goto l200
l201:
position, tokenIndex = position200, tokenIndex200
if !_rules[ruleargs]() {
goto l206
}
goto l200
l206:
position, tokenIndex = position200, tokenIndex200
if !_rules[rulesp]() {
goto l198
}
}
l200:
add(ruleallargs, position199)
}
return true
l198:
position, tokenIndex = position198, tokenIndex198
return false
},
/* 3 args <- <(arg (comma args)? sp)> */
func() bool {
position207, tokenIndex207 := position, tokenIndex
{
position208 := position
if !_rules[rulearg]() {
goto l207
}
{
position209, tokenIndex209 := position, tokenIndex
if !_rules[rulecomma]() {
goto l209
}
if !_rules[ruleargs]() {
goto l209
}
goto l210
l209:
position, tokenIndex = position209, tokenIndex209
}
l210:
if !_rules[rulesp]() {
goto l207
}
add(ruleargs, position208)
}
return true
l207:
position, tokenIndex = position207, tokenIndex207
return false
},
/* 4 arg <- <((field eq value) / (field sp COND sp value) / conditional)> */
func() bool {
position211, tokenIndex211 := position, tokenIndex
{
position212 := position
{
position213, tokenIndex213 := position, tokenIndex
if !_rules[rulefield]() {
goto l214
}
if !_rules[ruleeq]() {
goto l214
}
if !_rules[rulevalue]() {
goto l214
}
goto l213
l214:
position, tokenIndex = position213, tokenIndex213
if !_rules[rulefield]() {
goto l215
}
if !_rules[rulesp]() {
goto l215
}
{
position216 := position
{
position217, tokenIndex217 := position, tokenIndex
if buffer[position] != rune('>') {
goto l218
}
position++
if buffer[position] != rune('<') {
goto l218
}
position++
{
add(ruleAction26, position)
}
goto l217
l218:
position, tokenIndex = position217, tokenIndex217
if buffer[position] != rune('<') {
goto l220
}
position++
if buffer[position] != rune('=') {
goto l220
}
position++
{
add(ruleAction27, position)
}
goto l217
l220:
position, tokenIndex = position217, tokenIndex217
if buffer[position] != rune('>') {
goto l222
}
position++
if buffer[position] != rune('=') {
goto l222
}
position++
{
add(ruleAction28, position)
}
goto l217
l222:
position, tokenIndex = position217, tokenIndex217
if buffer[position] != rune('=') {
goto l224
}
position++
if buffer[position] != rune('=') {
goto l224
}
position++
{
add(ruleAction29, position)
}
goto l217
l224:
position, tokenIndex = position217, tokenIndex217
if buffer[position] != rune('!') {
goto l226
}
position++
if buffer[position] != rune('=') {
goto l226
}
position++
{
add(ruleAction30, position)
}
goto l217
l226:
position, tokenIndex = position217, tokenIndex217
if buffer[position] != rune('<') {
goto l228
}
position++
{
add(ruleAction31, position)
}
goto l217
l228:
position, tokenIndex = position217, tokenIndex217
if buffer[position] != rune('>') {
goto l215
}
position++
{
add(ruleAction32, position)
}
}
l217:
add(ruleCOND, position216)
}
if !_rules[rulesp]() {
goto l215
}
if !_rules[rulevalue]() {
goto l215
}
goto l213
l215:
position, tokenIndex = position213, tokenIndex213
{
position231 := position
{
add(ruleAction33, position)
}
if !_rules[rulecondint]() {
goto l211
}
if !_rules[rulecondLT]() {
goto l211
}
{
position233 := position
{
position234 := position
if !_rules[rulefieldExpr]() {
goto l211
}
add(rulePegText, position234)
}
if !_rules[rulesp]() {
goto l211
}
{
add(ruleAction37, position)
}
add(rulecondfield, position233)
}
if !_rules[rulecondLT]() {
goto l211
}
if !_rules[rulecondint]() {
goto l211
}
{
add(ruleAction34, position)
}
add(ruleconditional, position231)
}
}
l213:
add(rulearg, position212)
}
return true
l211:
position, tokenIndex = position211, tokenIndex211
return false
},
/* 5 COND <- <(('>' '<' Action26) / ('<' '=' Action27) / ('>' '=' Action28) / ('=' '=' Action29) / ('!' '=' Action30) / ('<' Action31) / ('>' Action32))> */
nil,
/* 6 conditional <- <(Action33 condint condLT condfield condLT condint Action34)> */
nil,
/* 7 condint <- <(<decimal> sp Action35)> */
func() bool {
position239, tokenIndex239 := position, tokenIndex
{
position240 := position
{
position241 := position
if !_rules[ruledecimal]() {
goto l239
}
add(rulePegText, position241)
}
if !_rules[rulesp]() {
goto l239
}
{
add(ruleAction35, position)
}
add(rulecondint, position240)
}
return true
l239:
position, tokenIndex = position239, tokenIndex239
return false
},
/* 8 condLT <- <(<(('<' '=') / '<')> sp Action36)> */
func() bool {
position243, tokenIndex243 := position, tokenIndex
{
position244 := position
{
position245 := position
{
position246, tokenIndex246 := position, tokenIndex
if buffer[position] != rune('<') {
goto l247
}
position++
if buffer[position] != rune('=') {
goto l247
}
position++
goto l246
l247:
position, tokenIndex = position246, tokenIndex246
if buffer[position] != rune('<') {
goto l243
}
position++
}
l246:
add(rulePegText, position245)
}
if !_rules[rulesp]() {
goto l243
}
{
add(ruleAction36, position)
}
add(rulecondLT, position244)
}
return true
l243:
position, tokenIndex = position243, tokenIndex243
return false
},
/* 9 condfield <- <(<fieldExpr> sp Action37)> */
nil,
/* 10 value <- <(item / (lbrack Action38 items rbrack Action39))> */
func() bool {
position250, tokenIndex250 := position, tokenIndex
{
position251 := position
{
position252, tokenIndex252 := position, tokenIndex
if !_rules[ruleitem]() {
goto l253
}
goto l252
l253:
position, tokenIndex = position252, tokenIndex252
{
position254 := position
if buffer[position] != rune('[') {
goto l250
}
position++
if !_rules[rulesp]() {
goto l250
}
add(rulelbrack, position254)
}
{
add(ruleAction38, position)
}
if !_rules[ruleitems]() {
goto l250
}
{
position256 := position
if !_rules[rulesp]() {
goto l250
}
if buffer[position] != rune(']') {
goto l250
}
position++
if !_rules[rulesp]() {
goto l250
}
add(rulerbrack, position256)
}
{
add(ruleAction39, position)
}
}
l252:
add(rulevalue, position251)
}
return true
l250:
position, tokenIndex = position250, tokenIndex250
return false
},
/* 11 items <- <(item (comma items)?)> */
func() bool {
position258, tokenIndex258 := position, tokenIndex
{
position259 := position
if !_rules[ruleitem]() {
goto l258
}
{
position260, tokenIndex260 := position, tokenIndex
if !_rules[rulecomma]() {
goto l260
}
if !_rules[ruleitems]() {
goto l260
}
goto l261
l260:
position, tokenIndex = position260, tokenIndex260
}
l261:
add(ruleitems, position259)
}
return true
l258:
position, tokenIndex = position258, tokenIndex258
return false
},
/* 12 item <- <(('n' 'u' 'l' 'l' &(comma / close) Action40) / ('t' 'r' 'u' 'e' &(comma / close) Action41) / ('f' 'a' 'l' 's' 'e' &(comma / close) Action42) / (timestampfmt Action43) / (<decimal> Action44) / (<IDENT> Action45 open allargs comma? close Action46) / (<([a-z] / [A-Z] / [0-9] / '-' / '_' / ':')+> Action47) / (<('"' doublequotedstring '"')> Action48) / (<('\'' singlequotedstring '\'')> Action49))> */
func() bool {
position262, tokenIndex262 := position, tokenIndex
{
position263 := position
{
position264, tokenIndex264 := position, tokenIndex
if buffer[position] != rune('n') {
goto l265
}
position++
if buffer[position] != rune('u') {
goto l265
}
position++
if buffer[position] != rune('l') {
goto l265
}
position++
if buffer[position] != rune('l') {
goto l265
}
position++
{
position266, tokenIndex266 := position, tokenIndex
{
position267, tokenIndex267 := position, tokenIndex
if !_rules[rulecomma]() {
goto l268
}
goto l267
l268:
position, tokenIndex = position267, tokenIndex267
if !_rules[ruleclose]() {
goto l265
}
}
l267:
position, tokenIndex = position266, tokenIndex266
}
{
add(ruleAction40, position)
}
goto l264
l265:
position, tokenIndex = position264, tokenIndex264
if buffer[position] != rune('t') {
goto l270
}
position++
if buffer[position] != rune('r') {
goto l270
}
position++
if buffer[position] != rune('u') {
goto l270
}
position++
if buffer[position] != rune('e') {
goto l270
}
position++
{
position271, tokenIndex271 := position, tokenIndex
{
position272, tokenIndex272 := position, tokenIndex
if !_rules[rulecomma]() {
goto l273
}
goto l272
l273:
position, tokenIndex = position272, tokenIndex272
if !_rules[ruleclose]() {
goto l270
}
}
l272:
position, tokenIndex = position271, tokenIndex271
}
{
add(ruleAction41, position)
}
goto l264
l270:
position, tokenIndex = position264, tokenIndex264
if buffer[position] != rune('f') {
goto l275
}
position++
if buffer[position] != rune('a') {
goto l275
}
position++
if buffer[position] != rune('l') {
goto l275
}
position++
if buffer[position] != rune('s') {
goto l275
}
position++
if buffer[position] != rune('e') {
goto l275
}
position++
{
position276, tokenIndex276 := position, tokenIndex
{
position277, tokenIndex277 := position, tokenIndex
if !_rules[rulecomma]() {
goto l278
}
goto l277
l278:
position, tokenIndex = position277, tokenIndex277
if !_rules[ruleclose]() {
goto l275
}
}
l277:
position, tokenIndex = position276, tokenIndex276
}
{
add(ruleAction42, position)
}
goto l264
l275:
position, tokenIndex = position264, tokenIndex264
if !_rules[ruletimestampfmt]() {
goto l280
}
{
add(ruleAction43, position)
}
goto l264
l280:
position, tokenIndex = position264, tokenIndex264
{
position283 := position
if !_rules[ruledecimal]() {
goto l282
}
add(rulePegText, position283)
}
{
add(ruleAction44, position)
}
goto l264
l282:
position, tokenIndex = position264, tokenIndex264
{
position286 := position
if !_rules[ruleIDENT]() {
goto l285
}
add(rulePegText, position286)
}
{
add(ruleAction45, position)
}
if !_rules[ruleopen]() {
goto l285
}
if !_rules[ruleallargs]() {
goto l285
}
{
position288, tokenIndex288 := position, tokenIndex
if !_rules[rulecomma]() {
goto l288
}
goto l289
l288:
position, tokenIndex = position288, tokenIndex288
}
l289:
if !_rules[ruleclose]() {
goto l285
}
{
add(ruleAction46, position)
}
goto l264
l285:
position, tokenIndex = position264, tokenIndex264
{
position292 := position
{
position295, tokenIndex295 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
goto l296
}
position++
goto l295
l296:
position, tokenIndex = position295, tokenIndex295
if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l297
}
position++
goto l295
l297:
position, tokenIndex = position295, tokenIndex295
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l298
}
position++
goto l295
l298:
position, tokenIndex = position295, tokenIndex295
if buffer[position] != rune('-') {
goto l299
}
position++
goto l295
l299:
position, tokenIndex = position295, tokenIndex295
if buffer[position] != rune('_') {
goto l300
}
position++
goto l295
l300:
position, tokenIndex = position295, tokenIndex295
if buffer[position] != rune(':') {
goto l291
}
position++
}
l295:
l293:
{
position294, tokenIndex294 := position, tokenIndex
{
position301, tokenIndex301 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
goto l302
}
position++
goto l301
l302:
position, tokenIndex = position301, tokenIndex301
if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l303
}
position++
goto l301
l303:
position, tokenIndex = position301, tokenIndex301
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l304
}
position++
goto l301
l304:
position, tokenIndex = position301, tokenIndex301
if buffer[position] != rune('-') {
goto l305
}
position++
goto l301
l305:
position, tokenIndex = position301, tokenIndex301
if buffer[position] != rune('_') {
goto l306
}
position++
goto l301
l306:
position, tokenIndex = position301, tokenIndex301
if buffer[position] != rune(':') {
goto l294
}
position++
}
l301:
goto l293
l294:
position, tokenIndex = position294, tokenIndex294
}
add(rulePegText, position292)
}
{
add(ruleAction47, position)
}
goto l264
l291:
position, tokenIndex = position264, tokenIndex264
{
position309 := position
if buffer[position] != rune('"') {
goto l308
}
position++
if !_rules[ruledoublequotedstring]() {
goto l308
}
if buffer[position] != rune('"') {
goto l308
}
position++
add(rulePegText, position309)
}
{
add(ruleAction48, position)
}
goto l264
l308:
position, tokenIndex = position264, tokenIndex264
{
position311 := position
if buffer[position] != rune('\'') {
goto l262
}
position++
if !_rules[rulesinglequotedstring]() {
goto l262
}
if buffer[position] != rune('\'') {
goto l262
}
position++
add(rulePegText, position311)
}
{
add(ruleAction49, position)
}
}
l264:
add(ruleitem, position263)
}
return true
l262:
position, tokenIndex = position262, tokenIndex262
return false
},
/* 13 doublequotedstring <- <(('\\' '"') / ('\\' '\\') / ('\\' 'n') / ('\\' 't') / (!('"' / '\\') .))*> */
func() bool {
{
position314 := position
l315:
{
position316, tokenIndex316 := position, tokenIndex
{
position317, tokenIndex317 := position, tokenIndex
if buffer[position] != rune('\\') {
goto l318
}
position++
if buffer[position] != rune('"') {
goto l318
}
position++
goto l317
l318:
position, tokenIndex = position317, tokenIndex317
if buffer[position] != rune('\\') {
goto l319
}
position++
if buffer[position] != rune('\\') {
goto l319
}
position++
goto l317
l319:
position, tokenIndex = position317, tokenIndex317
if buffer[position] != rune('\\') {
goto l320
}
position++
if buffer[position] != rune('n') {
goto l320
}
position++
goto l317
l320:
position, tokenIndex = position317, tokenIndex317
if buffer[position] != rune('\\') {
goto l321
}
position++
if buffer[position] != rune('t') {
goto l321
}
position++
goto l317
l321:
position, tokenIndex = position317, tokenIndex317
{
position322, tokenIndex322 := position, tokenIndex
{
position323, tokenIndex323 := position, tokenIndex
if buffer[position] != rune('"') {
goto l324
}
position++
goto l323
l324:
position, tokenIndex = position323, tokenIndex323
if buffer[position] != rune('\\') {
goto l322
}
position++
}
l323:
goto l316
l322:
position, tokenIndex = position322, tokenIndex322
}
if !matchDot() {
goto l316
}
}
l317:
goto l315
l316:
position, tokenIndex = position316, tokenIndex316
}
add(ruledoublequotedstring, position314)
}
return true
},
/* 14 singlequotedstring <- <(('\\' '\'') / ('\\' '\\') / ('\\' 'n') / ('\\' 't') / (!('\'' / '\\') .))*> */
func() bool {
{
position326 := position
l327:
{
position328, tokenIndex328 := position, tokenIndex
{
position329, tokenIndex329 := position, tokenIndex
if buffer[position] != rune('\\') {
goto l330
}
position++
if buffer[position] != rune('\'') {
goto l330
}
position++
goto l329
l330:
position, tokenIndex = position329, tokenIndex329
if buffer[position] != rune('\\') {
goto l331
}
position++
if buffer[position] != rune('\\') {
goto l331
}
position++
goto l329
l331:
position, tokenIndex = position329, tokenIndex329
if buffer[position] != rune('\\') {
goto l332
}
position++
if buffer[position] != rune('n') {
goto l332
}
position++
goto l329
l332:
position, tokenIndex = position329, tokenIndex329
if buffer[position] != rune('\\') {
goto l333
}
position++
if buffer[position] != rune('t') {
goto l333
}
position++
goto l329
l333:
position, tokenIndex = position329, tokenIndex329
{
position334, tokenIndex334 := position, tokenIndex
{
position335, tokenIndex335 := position, tokenIndex
if buffer[position] != rune('\'') {
goto l336
}
position++
goto l335
l336:
position, tokenIndex = position335, tokenIndex335
if buffer[position] != rune('\\') {
goto l334
}
position++
}
l335:
goto l328
l334:
position, tokenIndex = position334, tokenIndex334
}
if !matchDot() {
goto l328
}
}
l329:
goto l327
l328:
position, tokenIndex = position328, tokenIndex328
}
add(rulesinglequotedstring, position326)
}
return true
},
/* 15 fieldExpr <- <(([a-z] / [A-Z] / '_') ([a-z] / [A-Z] / [0-9] / '_' / '-')*)> */
func() bool {
position337, tokenIndex337 := position, tokenIndex
{
position338 := position
{
position339, tokenIndex339 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
goto l340
}
position++
goto l339
l340:
position, tokenIndex = position339, tokenIndex339
if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l341
}
position++
goto l339
l341:
position, tokenIndex = position339, tokenIndex339
if buffer[position] != rune('_') {
goto l337
}
position++
}
l339:
l342:
{
position343, tokenIndex343 := position, tokenIndex
{
position344, tokenIndex344 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
goto l345
}
position++
goto l344
l345:
position, tokenIndex = position344, tokenIndex344
if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l346
}
position++
goto l344
l346:
position, tokenIndex = position344, tokenIndex344
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l347
}
position++
goto l344
l347:
position, tokenIndex = position344, tokenIndex344
if buffer[position] != rune('_') {
goto l348
}
position++
goto l344
l348:
position, tokenIndex = position344, tokenIndex344
if buffer[position] != rune('-') {
goto l343
}
position++
}
l344:
goto l342
l343:
position, tokenIndex = position343, tokenIndex343
}
add(rulefieldExpr, position338)
}
return true
l337:
position, tokenIndex = position337, tokenIndex337
return false
},
/* 16 field <- <(<(fieldExpr / reserved)> Action50)> */
func() bool {
position349, tokenIndex349 := position, tokenIndex
{
position350 := position
{
position351 := position
{
position352, tokenIndex352 := position, tokenIndex
if !_rules[rulefieldExpr]() {
goto l353
}
goto l352
l353:
position, tokenIndex = position352, tokenIndex352
{
position354 := position
{
position355, tokenIndex355 := position, tokenIndex
if buffer[position] != rune('_') {
goto l356
}
position++
if buffer[position] != rune('r') {
goto l356
}
position++
if buffer[position] != rune('o') {
goto l356
}
position++
if buffer[position] != rune('w') {
goto l356
}
position++
goto l355
l356:
position, tokenIndex = position355, tokenIndex355
if buffer[position] != rune('_') {
goto l357
}
position++
if buffer[position] != rune('c') {
goto l357
}
position++
if buffer[position] != rune('o') {
goto l357
}
position++
if buffer[position] != rune('l') {
goto l357
}
position++
goto l355
l357:
position, tokenIndex = position355, tokenIndex355
if buffer[position] != rune('_') {
goto l358
}
position++
if buffer[position] != rune('s') {
goto l358
}
position++
if buffer[position] != rune('t') {
goto l358
}
position++
if buffer[position] != rune('a') {
goto l358
}
position++
if buffer[position] != rune('r') {
goto l358
}
position++
if buffer[position] != rune('t') {
goto l358
}
position++
goto l355
l358:
position, tokenIndex = position355, tokenIndex355
if buffer[position] != rune('_') {
goto l359
}
position++
if buffer[position] != rune('e') {
goto l359
}
position++
if buffer[position] != rune('n') {
goto l359
}
position++
if buffer[position] != rune('d') {
goto l359
}
position++
goto l355
l359:
position, tokenIndex = position355, tokenIndex355
if buffer[position] != rune('_') {
goto l360
}
position++
if buffer[position] != rune('t') {
goto l360
}
position++
if buffer[position] != rune('i') {
goto l360
}
position++
if buffer[position] != rune('m') {
goto l360
}
position++
if buffer[position] != rune('e') {
goto l360
}
position++
if buffer[position] != rune('s') {
goto l360
}
position++
if buffer[position] != rune('t') {
goto l360
}
position++
if buffer[position] != rune('a') {
goto l360
}
position++
if buffer[position] != rune('m') {
goto l360
}
position++
if buffer[position] != rune('p') {
goto l360
}
position++
goto l355
l360:
position, tokenIndex = position355, tokenIndex355
if buffer[position] != rune('_') {
goto l349
}
position++
if buffer[position] != rune('f') {
goto l349
}
position++
if buffer[position] != rune('i') {
goto l349
}
position++
if buffer[position] != rune('e') {
goto l349
}
position++
if buffer[position] != rune('l') {
goto l349
}
position++
if buffer[position] != rune('d') {
goto l349
}
position++
}
l355:
add(rulereserved, position354)
}
}
l352:
add(rulePegText, position351)
}
{
add(ruleAction50, position)
}
add(rulefield, position350)
}
return true
l349:
position, tokenIndex = position349, tokenIndex349
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 <- <(<fieldExpr> Action51)> */
func() bool {
position363, tokenIndex363 := position, tokenIndex
{
position364 := position
{
position365 := position
if !_rules[rulefieldExpr]() {
goto l363
}
add(rulePegText, position365)
}
{
add(ruleAction51, position)
}
add(ruleposfield, position364)
}
return true
l363:
position, tokenIndex = position363, tokenIndex363
return false
},
/* 19 col <- <((<digits> Action52) / (<('\'' singlequotedstring '\'')> Action53) / (<('"' doublequotedstring '"')> Action54))> */
func() bool {
position367, tokenIndex367 := position, tokenIndex
{
position368 := position
{
position369, tokenIndex369 := position, tokenIndex
{
position371 := position
if !_rules[ruledigits]() {
goto l370
}
add(rulePegText, position371)
}
{
add(ruleAction52, position)
}
goto l369
l370:
position, tokenIndex = position369, tokenIndex369
{
position374 := position
if buffer[position] != rune('\'') {
goto l373
}
position++
if !_rules[rulesinglequotedstring]() {
goto l373
}
if buffer[position] != rune('\'') {
goto l373
}
position++
add(rulePegText, position374)
}
{
add(ruleAction53, position)
}
goto l369
l373:
position, tokenIndex = position369, tokenIndex369
{
position376 := position
if buffer[position] != rune('"') {
goto l367
}
position++
if !_rules[ruledoublequotedstring]() {
goto l367
}
if buffer[position] != rune('"') {
goto l367
}
position++
add(rulePegText, position376)
}
{
add(ruleAction54, position)
}
}
l369:
add(rulecol, position368)
}
return true
l367:
position, tokenIndex = position367, tokenIndex367
return false
},
/* 20 row <- <((<digits> Action55) / (<('\'' singlequotedstring '\'')> Action56) / (<('"' doublequotedstring '"')> Action57))> */
nil,
/* 21 open <- <('(' sp)> */
func() bool {
position379, tokenIndex379 := position, tokenIndex
{
position380 := position
if buffer[position] != rune('(') {
goto l379
}
position++
if !_rules[rulesp]() {
goto l379
}
add(ruleopen, position380)
}
return true
l379:
position, tokenIndex = position379, tokenIndex379
return false
},
/* 22 close <- <(sp ')' sp)> */
func() bool {
position381, tokenIndex381 := position, tokenIndex
{
position382 := position
if !_rules[rulesp]() {
goto l381
}
if buffer[position] != rune(')') {
goto l381
}
position++
if !_rules[rulesp]() {
goto l381
}
add(ruleclose, position382)
}
return true
l381:
position, tokenIndex = position381, tokenIndex381
return false
},
/* 23 sp <- <(' ' / '\t' / '\n')*> */
func() bool {
{
position384 := position
l385:
{
position386, tokenIndex386 := position, tokenIndex
{
position387, tokenIndex387 := position, tokenIndex
if buffer[position] != rune(' ') {
goto l388
}
position++
goto l387
l388:
position, tokenIndex = position387, tokenIndex387
if buffer[position] != rune('\t') {
goto l389
}
position++
goto l387
l389:
position, tokenIndex = position387, tokenIndex387
if buffer[position] != rune('\n') {
goto l386
}
position++
}
l387:
goto l385
l386:
position, tokenIndex = position386, tokenIndex386
}
add(rulesp, position384)
}
return true
},
/* 24 eq <- <(sp '=' sp)> */
func() bool {
position390, tokenIndex390 := position, tokenIndex
{
position391 := position
if !_rules[rulesp]() {
goto l390
}
if buffer[position] != rune('=') {
goto l390
}
position++
if !_rules[rulesp]() {
goto l390
}
add(ruleeq, position391)
}
return true
l390:
position, tokenIndex = position390, tokenIndex390
return false
},
/* 25 comma <- <(sp ',' sp)> */
func() bool {
position392, tokenIndex392 := position, tokenIndex
{
position393 := position
if !_rules[rulesp]() {
goto l392
}
if buffer[position] != rune(',') {
goto l392
}
position++
if !_rules[rulesp]() {
goto l392
}
add(rulecomma, position393)
}
return true
l392:
position, tokenIndex = position392, tokenIndex392
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 {
position396, tokenIndex396 := position, tokenIndex
{
position397 := position
{
position398, tokenIndex398 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
goto l399
}
position++
goto l398
l399:
position, tokenIndex = position398, tokenIndex398
if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l396
}
position++
}
l398:
l400:
{
position401, tokenIndex401 := position, tokenIndex
{
position402, tokenIndex402 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
goto l403
}
position++
goto l402
l403:
position, tokenIndex = position402, tokenIndex402
if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l404
}
position++
goto l402
l404:
position, tokenIndex = position402, tokenIndex402
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l401
}
position++
}
l402:
goto l400
l401:
position, tokenIndex = position401, tokenIndex401
}
add(ruleIDENT, position397)
}
return true
l396:
position, tokenIndex = position396, tokenIndex396
return false
},
/* 29 digits <- <[0-9]+> */
func() bool {
position405, tokenIndex405 := position, tokenIndex
{
position406 := position
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l405
}
position++
l407:
{
position408, tokenIndex408 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l408
}
position++
goto l407
l408:
position, tokenIndex = position408, tokenIndex408
}
add(ruledigits, position406)
}
return true
l405:
position, tokenIndex = position405, tokenIndex405
return false
},
/* 30 signedDigits <- <('-'? digits)> */
nil,
/* 31 decimal <- <((signedDigits ('.' digits?)?) / ('-'? '.' digits))> */
func() bool {
position410, tokenIndex410 := position, tokenIndex
{
position411 := position
{
position412, tokenIndex412 := position, tokenIndex
{
position414 := position
{
position415, tokenIndex415 := position, tokenIndex
if buffer[position] != rune('-') {
goto l415
}
position++
goto l416
l415:
position, tokenIndex = position415, tokenIndex415
}
l416:
if !_rules[ruledigits]() {
goto l413
}
add(rulesignedDigits, position414)
}
{
position417, tokenIndex417 := position, tokenIndex
if buffer[position] != rune('.') {
goto l417
}
position++
{
position419, tokenIndex419 := position, tokenIndex
if !_rules[ruledigits]() {
goto l419
}
goto l420
l419:
position, tokenIndex = position419, tokenIndex419
}
l420:
goto l418
l417:
position, tokenIndex = position417, tokenIndex417
}
l418:
goto l412
l413:
position, tokenIndex = position412, tokenIndex412
{
position421, tokenIndex421 := position, tokenIndex
if buffer[position] != rune('-') {
goto l421
}
position++
goto l422
l421:
position, tokenIndex = position421, tokenIndex421
}
l422:
if buffer[position] != rune('.') {
goto l410
}
position++
if !_rules[ruledigits]() {
goto l410
}
}
l412:
add(ruledecimal, position411)
}
return true
l410:
position, tokenIndex = position410, tokenIndex410
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 {
position423, tokenIndex423 := position, tokenIndex
{
position424 := position
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l423
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l423
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l423
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l423
}
position++
if buffer[position] != rune('-') {
goto l423
}
position++
{
position425, tokenIndex425 := position, tokenIndex
if buffer[position] != rune('0') {
goto l426
}
position++
goto l425
l426:
position, tokenIndex = position425, tokenIndex425
if buffer[position] != rune('1') {
goto l423
}
position++
}
l425:
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l423
}
position++
if buffer[position] != rune('-') {
goto l423
}
position++
if c := buffer[position]; c < rune('0') || c > rune('3') {
goto l423
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l423
}
position++
if buffer[position] != rune('T') {
goto l423
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l423
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l423
}
position++
if buffer[position] != rune(':') {
goto l423
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l423
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l423
}
position++
add(ruletimestampbasicfmt, position424)
}
return true
l423:
position, tokenIndex = position423, tokenIndex423
return false
},
/* 33 timestampfmt <- <(('"' <timestampbasicfmt> '"') / ('\'' <timestampbasicfmt> '\'') / <timestampbasicfmt>)> */
func() bool {
position427, tokenIndex427 := position, tokenIndex
{
position428 := position
{
position429, tokenIndex429 := position, tokenIndex
if buffer[position] != rune('"') {
goto l430
}
position++
{
position431 := position
if !_rules[ruletimestampbasicfmt]() {
goto l430
}
add(rulePegText, position431)
}
if buffer[position] != rune('"') {
goto l430
}
position++
goto l429
l430:
position, tokenIndex = position429, tokenIndex429
if buffer[position] != rune('\'') {
goto l432
}
position++
{
position433 := position
if !_rules[ruletimestampbasicfmt]() {
goto l432
}
add(rulePegText, position433)
}
if buffer[position] != rune('\'') {
goto l432
}
position++
goto l429
l432:
position, tokenIndex = position429, tokenIndex429
{
position434 := position
if !_rules[ruletimestampbasicfmt]() {
goto l427
}
add(rulePegText, position434)
}
}
l429:
add(ruletimestampfmt, position428)
}
return true
l427:
position, tokenIndex = position427, tokenIndex427
return false
},
/* 34 timestamp <- <(<timestampfmt> Action58)> */
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("Rows")}> */
nil,
/* 53 Action17 <- <{p.endCall()}> */
nil,
/* 54 Action18 <- <{p.startCall("Range")}> */
nil,
/* 55 Action19 <- <{p.addField("from")}> */
nil,
/* 56 Action20 <- <{p.addVal(text)}> */
nil,
/* 57 Action21 <- <{p.addField("to")}> */
nil,
/* 58 Action22 <- <{p.addVal(text)}> */
nil,
/* 59 Action23 <- <{p.endCall()}> */
nil,
nil,
/* 61 Action24 <- <{ p.startCall(text) }> */
nil,
/* 62 Action25 <- <{ p.endCall() }> */
nil,
/* 63 Action26 <- <{ p.addBTWN() }> */
nil,
/* 64 Action27 <- <{ p.addLTE() }> */
nil,
/* 65 Action28 <- <{ p.addGTE() }> */
nil,
/* 66 Action29 <- <{ p.addEQ() }> */
nil,
/* 67 Action30 <- <{ p.addNEQ() }> */
nil,
/* 68 Action31 <- <{ p.addLT() }> */
nil,
/* 69 Action32 <- <{ p.addGT() }> */
nil,
/* 70 Action33 <- <{p.startConditional()}> */
nil,
/* 71 Action34 <- <{p.endConditional()}> */
nil,
/* 72 Action35 <- <{p.condAdd(text)}> */
nil,
/* 73 Action36 <- <{p.condAdd(text)}> */
nil,
/* 74 Action37 <- <{p.condAdd(text)}> */
nil,
/* 75 Action38 <- <{ p.startList() }> */
nil,
/* 76 Action39 <- <{ p.endList() }> */
nil,
/* 77 Action40 <- <{ p.addVal(nil) }> */
nil,
/* 78 Action41 <- <{ p.addVal(true) }> */
nil,
/* 79 Action42 <- <{ p.addVal(false) }> */
nil,
/* 80 Action43 <- <{ p.addVal(text) }> */
nil,
/* 81 Action44 <- <{ p.addNumVal(text) }> */
nil,
/* 82 Action45 <- <{ p.startCall(text) }> */
nil,
/* 83 Action46 <- <{ p.addVal(p.endCall()) }> */
nil,
/* 84 Action47 <- <{ p.addVal(text) }> */
nil,
/* 85 Action48 <- <{ p.addVal(text) }> */
nil,
/* 86 Action49 <- <{ p.addVal(text) }> */
nil,
/* 87 Action50 <- <{ p.addField(text) }> */
nil,
/* 88 Action51 <- <{ p.addPosStr("_field", text) }> */
nil,
/* 89 Action52 <- <{p.addPosNum("_col", text)}> */
nil,
/* 90 Action53 <- <{p.addPosStr("_col", text)}> */
nil,
/* 91 Action54 <- <{p.addPosStr("_col", text)}> */
nil,
/* 92 Action55 <- <{p.addPosNum("_row", text)}> */
nil,
/* 93 Action56 <- <{p.addPosStr("_row", text)}> */
nil,
/* 94 Action57 <- <{p.addPosStr("_row", text)}> */
nil,
/* 95 Action58 <- <{p.addPosStr("_timestamp", text)}> */
nil,
}
p.rules = _rules
return nil
}