featurebase/pql/pql.peg.go
Jacob Brinlee df7e813f01
SUP-302 (#2243)
* add ability to use Θ in all field names & with PQL
2023-02-22 11:30:14 -06:00

4888 lines
106 KiB
Go

package pql
// Code generated by peg -inline pql.peg DO NOT EDIT.
// run go install github.com/pointlander/peg@latest
import (
"fmt"
"io"
"os"
"sort"
"strconv"
"strings"
)
const endSymbol rune = 1114112
/* The rule types inferred from the grammar are below. */
type pegRule uint8
const (
ruleUnknown pegRule = iota
ruleCalls
ruleCall
ruleivyExpr
ruleivyprogram
ruleivyprogram2
ruleallargs
ruleargs
rulearg
ruleCOND
ruleconditional
rulecondintOrTime
ruletimefmtS
rulecondint
rulecondLT
rulecondfield
rulevalue
ruleitems
ruleitem
ruledoublequotedstring
rulesinglequotedstring
rulevariable
rulefieldExpr
rulefield
rulereserved
ruleposfield
rulecol
ruleopen
ruleclose
rulesp
ruleeq
rulecomma
rulelbrack
rulerbrack
ruleIDENT
ruledigits
rulesignedDigits
ruledecimal
ruletz
ruleiso8601
ruleiso8601nano
ruletimestampbasicfmt
ruletimestampfmt
ruletimebasicfmt
ruletimefmt
ruletime
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
ruleAction26
ruleAction27
ruleAction28
ruleAction29
rulePegText
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
ruleAction61
ruleAction62
ruleAction63
ruleAction64
ruleAction65
ruleAction66
)
var rul3s = [...]string{
"Unknown",
"Calls",
"Call",
"ivyExpr",
"ivyprogram",
"ivyprogram2",
"allargs",
"args",
"arg",
"COND",
"conditional",
"condintOrTime",
"timefmtS",
"condint",
"condLT",
"condfield",
"value",
"items",
"item",
"doublequotedstring",
"singlequotedstring",
"variable",
"fieldExpr",
"field",
"reserved",
"posfield",
"col",
"open",
"close",
"sp",
"eq",
"comma",
"lbrack",
"rbrack",
"IDENT",
"digits",
"signedDigits",
"decimal",
"tz",
"iso8601",
"iso8601nano",
"timestampbasicfmt",
"timestampfmt",
"timebasicfmt",
"timefmt",
"time",
"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",
"Action26",
"Action27",
"Action28",
"Action29",
"PegText",
"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",
"Action61",
"Action62",
"Action63",
"Action64",
"Action65",
"Action66",
}
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[36m%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 [114]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) SprintSyntaxTree() string {
var bldr strings.Builder
p.WriteSyntaxTree(&bldr)
return bldr.String()
}
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("Clear")
case ruleAction3:
p.endCall()
case ruleAction4:
p.startCall("Apply")
case ruleAction5:
p.endCall()
case ruleAction6:
p.startCall("ClearRow")
case ruleAction7:
p.endCall()
case ruleAction8:
p.startCall("Store")
case ruleAction9:
p.endCall()
case ruleAction10:
p.startCall("TopN")
case ruleAction11:
p.endCall()
case ruleAction12:
p.startCall("TopK")
case ruleAction13:
p.endCall()
case ruleAction14:
p.startCall("Percentile")
case ruleAction15:
p.endCall()
case ruleAction16:
p.startCall("Rows")
case ruleAction17:
p.endCall()
case ruleAction18:
p.startCall("Min")
case ruleAction19:
p.endCall()
case ruleAction20:
p.startCall("Max")
case ruleAction21:
p.endCall()
case ruleAction22:
p.startCall("Sum")
case ruleAction23:
p.endCall()
case ruleAction24:
p.startCall("Range")
case ruleAction25:
p.addField("from")
case ruleAction26:
p.addVal(text)
case ruleAction27:
p.addField("to")
case ruleAction28:
p.addVal(text)
case ruleAction29:
p.endCall()
case ruleAction30:
p.startCall(text)
case ruleAction31:
p.endCall()
case ruleAction32:
p.addPosStr("_ivy", text)
case ruleAction33:
p.addPosStr("_ivyReduce", text)
case ruleAction34:
p.addBTWN()
case ruleAction35:
p.addLTE()
case ruleAction36:
p.addGTE()
case ruleAction37:
p.addEQ()
case ruleAction38:
p.addNEQ()
case ruleAction39:
p.addLT()
case ruleAction40:
p.addGT()
case ruleAction41:
p.startConditional()
case ruleAction42:
p.endConditional()
case ruleAction43:
p.condAddTimestamp(text)
case ruleAction44:
p.condAdd(text)
case ruleAction45:
p.condAdd(text)
case ruleAction46:
p.condAdd(text)
case ruleAction47:
p.startList()
case ruleAction48:
p.endList()
case ruleAction49:
p.addVal(nil)
case ruleAction50:
p.addVal(true)
case ruleAction51:
p.addVal(false)
case ruleAction52:
p.addVal(NewVariable(text))
case ruleAction53:
p.addVal(text)
case ruleAction54:
p.addTimestampVal(text)
case ruleAction55:
p.addNumVal(text)
case ruleAction56:
p.startCall(text)
case ruleAction57:
p.addVal(p.endCall())
case ruleAction58:
p.addVal(text)
case ruleAction59:
p.addVal(text)
case ruleAction60:
p.addVal(text)
case ruleAction61:
p.addField(text)
case ruleAction62:
p.addPosStr("_field", text)
case ruleAction63:
p.addPosNum("_col", text)
case ruleAction64:
p.addPosStr("_col", text)
case ruleAction65:
p.addPosStr("_col", text)
case ruleAction66:
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 time)? close Action1) / (('c' / 'C') ('l' / 'L') ('e' / 'E') ('a' / 'A') ('r' / 'R') Action2 open col comma args close Action3) / (('a' / 'A') ('p' / 'P') ('p' / 'P') ('l' / 'L') ('y' / 'Y') Action4 open (Call comma)? ivyprogram (comma ivyprogram2)? close Action5) / (('c' / 'C') ('l' / 'L') ('e' / 'E') ('a' / 'A') ('r' / 'R') ('r' / 'R') ('o' / 'O') ('w' / 'W') Action6 open arg close Action7) / (('s' / 'S') ('t' / 'T') ('o' / 'O') ('r' / 'R') ('e' / 'E') Action8 open Call comma arg close Action9) / (('t' / 'T') ('o' / 'O') ('p' / 'P') ('n' / 'N') Action10 open posfield (comma allargs)? close Action11) / (('t' / 'T') ('o' / 'O') ('p' / 'P') ('k' / 'K') Action12 open posfield (comma allargs)? close Action13) / (('p' / 'P') ('e' / 'E') ('r' / 'R') ('c' / 'C') ('e' / 'E') ('n' / 'N') ('t' / 'T') ('i' / 'I') ('l' / 'L') ('e' / 'E') Action14 open posfield (comma allargs)? close Action15) / (('r' / 'R') ('o' / 'O') ('w' / 'W') ('s' / 'S') Action16 open posfield (comma allargs)? close Action17) / (('m' / 'M') ('i' / 'I') ('n' / 'N') Action18 open posfield (comma allargs)? close Action19) / (('m' / 'M') ('a' / 'A') ('x' / 'X') Action20 open posfield (comma allargs)? close Action21) / (('s' / 'S') ('u' / 'U') ('m' / 'M') Action22 open posfield (comma allargs)? close Action23) / (('r' / 'R') ('a' / 'A') ('n' / 'N') ('g' / 'G') ('e' / 'E') Action24 open field eq value comma ('f' 'r' 'o' 'm' '=')? Action25 timefmt Action26 comma ('t' 'o' '=')? sp Action27 timefmt Action28 close Action29) / (<IDENT> Action30 open allargs comma? close Action31))> */
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[ruletimefmt]() {
goto l16
}
add(rulePegText, position19)
}
{
add(ruleAction66, position)
}
add(ruletime, 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('c') {
goto l24
}
position++
goto l23
l24:
position, tokenIndex = position23, tokenIndex23
if buffer[position] != rune('C') {
goto l22
}
position++
}
l23:
{
position25, tokenIndex25 := position, tokenIndex
if buffer[position] != rune('l') {
goto l26
}
position++
goto l25
l26:
position, tokenIndex = position25, tokenIndex25
if buffer[position] != rune('L') {
goto l22
}
position++
}
l25:
{
position27, tokenIndex27 := position, tokenIndex
if buffer[position] != rune('e') {
goto l28
}
position++
goto l27
l28:
position, tokenIndex = position27, tokenIndex27
if buffer[position] != rune('E') {
goto l22
}
position++
}
l27:
{
position29, tokenIndex29 := position, tokenIndex
if buffer[position] != rune('a') {
goto l30
}
position++
goto l29
l30:
position, tokenIndex = position29, tokenIndex29
if buffer[position] != rune('A') {
goto l22
}
position++
}
l29:
{
position31, tokenIndex31 := position, tokenIndex
if buffer[position] != rune('r') {
goto l32
}
position++
goto l31
l32:
position, tokenIndex = position31, tokenIndex31
if buffer[position] != rune('R') {
goto l22
}
position++
}
l31:
{
add(ruleAction2, position)
}
if !_rules[ruleopen]() {
goto l22
}
if !_rules[rulecol]() {
goto l22
}
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
{
position36, tokenIndex36 := position, tokenIndex
if buffer[position] != rune('a') {
goto l37
}
position++
goto l36
l37:
position, tokenIndex = position36, tokenIndex36
if buffer[position] != rune('A') {
goto l35
}
position++
}
l36:
{
position38, tokenIndex38 := position, tokenIndex
if buffer[position] != rune('p') {
goto l39
}
position++
goto l38
l39:
position, tokenIndex = position38, tokenIndex38
if buffer[position] != rune('P') {
goto l35
}
position++
}
l38:
{
position40, tokenIndex40 := position, tokenIndex
if buffer[position] != rune('p') {
goto l41
}
position++
goto l40
l41:
position, tokenIndex = position40, tokenIndex40
if buffer[position] != rune('P') {
goto l35
}
position++
}
l40:
{
position42, tokenIndex42 := position, tokenIndex
if buffer[position] != rune('l') {
goto l43
}
position++
goto l42
l43:
position, tokenIndex = position42, tokenIndex42
if buffer[position] != rune('L') {
goto l35
}
position++
}
l42:
{
position44, tokenIndex44 := position, tokenIndex
if buffer[position] != rune('y') {
goto l45
}
position++
goto l44
l45:
position, tokenIndex = position44, tokenIndex44
if buffer[position] != rune('Y') {
goto l35
}
position++
}
l44:
{
add(ruleAction4, position)
}
if !_rules[ruleopen]() {
goto l35
}
{
position47, tokenIndex47 := position, tokenIndex
if !_rules[ruleCall]() {
goto l47
}
if !_rules[rulecomma]() {
goto l47
}
goto l48
l47:
position, tokenIndex = position47, tokenIndex47
}
l48:
{
position49 := position
{
position50, tokenIndex50 := position, tokenIndex
if buffer[position] != rune('"') {
goto l50
}
position++
goto l51
l50:
position, tokenIndex = position50, tokenIndex50
}
l51:
{
position52 := position
if !_rules[ruleivyExpr]() {
goto l35
}
add(rulePegText, position52)
}
if buffer[position] != rune('"') {
goto l35
}
position++
{
add(ruleAction32, position)
}
add(ruleivyprogram, position49)
}
{
position54, tokenIndex54 := position, tokenIndex
if !_rules[rulecomma]() {
goto l54
}
{
position56 := position
{
position57, tokenIndex57 := position, tokenIndex
if buffer[position] != rune('"') {
goto l57
}
position++
goto l58
l57:
position, tokenIndex = position57, tokenIndex57
}
l58:
{
position59 := position
if !_rules[ruleivyExpr]() {
goto l54
}
add(rulePegText, position59)
}
if buffer[position] != rune('"') {
goto l54
}
position++
{
add(ruleAction33, position)
}
add(ruleivyprogram2, position56)
}
goto l55
l54:
position, tokenIndex = position54, tokenIndex54
}
l55:
if !_rules[ruleclose]() {
goto l35
}
{
add(ruleAction5, position)
}
goto l7
l35:
position, tokenIndex = position7, tokenIndex7
{
position63, tokenIndex63 := position, tokenIndex
if buffer[position] != rune('c') {
goto l64
}
position++
goto l63
l64:
position, tokenIndex = position63, tokenIndex63
if buffer[position] != rune('C') {
goto l62
}
position++
}
l63:
{
position65, tokenIndex65 := position, tokenIndex
if buffer[position] != rune('l') {
goto l66
}
position++
goto l65
l66:
position, tokenIndex = position65, tokenIndex65
if buffer[position] != rune('L') {
goto l62
}
position++
}
l65:
{
position67, tokenIndex67 := position, tokenIndex
if buffer[position] != rune('e') {
goto l68
}
position++
goto l67
l68:
position, tokenIndex = position67, tokenIndex67
if buffer[position] != rune('E') {
goto l62
}
position++
}
l67:
{
position69, tokenIndex69 := position, tokenIndex
if buffer[position] != rune('a') {
goto l70
}
position++
goto l69
l70:
position, tokenIndex = position69, tokenIndex69
if buffer[position] != rune('A') {
goto l62
}
position++
}
l69:
{
position71, tokenIndex71 := position, tokenIndex
if buffer[position] != rune('r') {
goto l72
}
position++
goto l71
l72:
position, tokenIndex = position71, tokenIndex71
if buffer[position] != rune('R') {
goto l62
}
position++
}
l71:
{
position73, tokenIndex73 := position, tokenIndex
if buffer[position] != rune('r') {
goto l74
}
position++
goto l73
l74:
position, tokenIndex = position73, tokenIndex73
if buffer[position] != rune('R') {
goto l62
}
position++
}
l73:
{
position75, tokenIndex75 := position, tokenIndex
if buffer[position] != rune('o') {
goto l76
}
position++
goto l75
l76:
position, tokenIndex = position75, tokenIndex75
if buffer[position] != rune('O') {
goto l62
}
position++
}
l75:
{
position77, tokenIndex77 := position, tokenIndex
if buffer[position] != rune('w') {
goto l78
}
position++
goto l77
l78:
position, tokenIndex = position77, tokenIndex77
if buffer[position] != rune('W') {
goto l62
}
position++
}
l77:
{
add(ruleAction6, position)
}
if !_rules[ruleopen]() {
goto l62
}
if !_rules[rulearg]() {
goto l62
}
if !_rules[ruleclose]() {
goto l62
}
{
add(ruleAction7, position)
}
goto l7
l62:
position, tokenIndex = position7, tokenIndex7
{
position82, tokenIndex82 := position, tokenIndex
if buffer[position] != rune('s') {
goto l83
}
position++
goto l82
l83:
position, tokenIndex = position82, tokenIndex82
if buffer[position] != rune('S') {
goto l81
}
position++
}
l82:
{
position84, tokenIndex84 := position, tokenIndex
if buffer[position] != rune('t') {
goto l85
}
position++
goto l84
l85:
position, tokenIndex = position84, tokenIndex84
if buffer[position] != rune('T') {
goto l81
}
position++
}
l84:
{
position86, tokenIndex86 := position, tokenIndex
if buffer[position] != rune('o') {
goto l87
}
position++
goto l86
l87:
position, tokenIndex = position86, tokenIndex86
if buffer[position] != rune('O') {
goto l81
}
position++
}
l86:
{
position88, tokenIndex88 := position, tokenIndex
if buffer[position] != rune('r') {
goto l89
}
position++
goto l88
l89:
position, tokenIndex = position88, tokenIndex88
if buffer[position] != rune('R') {
goto l81
}
position++
}
l88:
{
position90, tokenIndex90 := position, tokenIndex
if buffer[position] != rune('e') {
goto l91
}
position++
goto l90
l91:
position, tokenIndex = position90, tokenIndex90
if buffer[position] != rune('E') {
goto l81
}
position++
}
l90:
{
add(ruleAction8, position)
}
if !_rules[ruleopen]() {
goto l81
}
if !_rules[ruleCall]() {
goto l81
}
if !_rules[rulecomma]() {
goto l81
}
if !_rules[rulearg]() {
goto l81
}
if !_rules[ruleclose]() {
goto l81
}
{
add(ruleAction9, position)
}
goto l7
l81:
position, tokenIndex = position7, tokenIndex7
{
position95, tokenIndex95 := position, tokenIndex
if buffer[position] != rune('t') {
goto l96
}
position++
goto l95
l96:
position, tokenIndex = position95, tokenIndex95
if buffer[position] != rune('T') {
goto l94
}
position++
}
l95:
{
position97, tokenIndex97 := position, tokenIndex
if buffer[position] != rune('o') {
goto l98
}
position++
goto l97
l98:
position, tokenIndex = position97, tokenIndex97
if buffer[position] != rune('O') {
goto l94
}
position++
}
l97:
{
position99, tokenIndex99 := position, tokenIndex
if buffer[position] != rune('p') {
goto l100
}
position++
goto l99
l100:
position, tokenIndex = position99, tokenIndex99
if buffer[position] != rune('P') {
goto l94
}
position++
}
l99:
{
position101, tokenIndex101 := position, tokenIndex
if buffer[position] != rune('n') {
goto l102
}
position++
goto l101
l102:
position, tokenIndex = position101, tokenIndex101
if buffer[position] != rune('N') {
goto l94
}
position++
}
l101:
{
add(ruleAction10, position)
}
if !_rules[ruleopen]() {
goto l94
}
if !_rules[ruleposfield]() {
goto l94
}
{
position104, tokenIndex104 := position, tokenIndex
if !_rules[rulecomma]() {
goto l104
}
if !_rules[ruleallargs]() {
goto l104
}
goto l105
l104:
position, tokenIndex = position104, tokenIndex104
}
l105:
if !_rules[ruleclose]() {
goto l94
}
{
add(ruleAction11, position)
}
goto l7
l94:
position, tokenIndex = position7, tokenIndex7
{
position108, tokenIndex108 := position, tokenIndex
if buffer[position] != rune('t') {
goto l109
}
position++
goto l108
l109:
position, tokenIndex = position108, tokenIndex108
if buffer[position] != rune('T') {
goto l107
}
position++
}
l108:
{
position110, tokenIndex110 := position, tokenIndex
if buffer[position] != rune('o') {
goto l111
}
position++
goto l110
l111:
position, tokenIndex = position110, tokenIndex110
if buffer[position] != rune('O') {
goto l107
}
position++
}
l110:
{
position112, tokenIndex112 := position, tokenIndex
if buffer[position] != rune('p') {
goto l113
}
position++
goto l112
l113:
position, tokenIndex = position112, tokenIndex112
if buffer[position] != rune('P') {
goto l107
}
position++
}
l112:
{
position114, tokenIndex114 := position, tokenIndex
if buffer[position] != rune('k') {
goto l115
}
position++
goto l114
l115:
position, tokenIndex = position114, tokenIndex114
if buffer[position] != rune('K') {
goto l107
}
position++
}
l114:
{
add(ruleAction12, position)
}
if !_rules[ruleopen]() {
goto l107
}
if !_rules[ruleposfield]() {
goto l107
}
{
position117, tokenIndex117 := position, tokenIndex
if !_rules[rulecomma]() {
goto l117
}
if !_rules[ruleallargs]() {
goto l117
}
goto l118
l117:
position, tokenIndex = position117, tokenIndex117
}
l118:
if !_rules[ruleclose]() {
goto l107
}
{
add(ruleAction13, position)
}
goto l7
l107:
position, tokenIndex = position7, tokenIndex7
{
position121, tokenIndex121 := position, tokenIndex
if buffer[position] != rune('p') {
goto l122
}
position++
goto l121
l122:
position, tokenIndex = position121, tokenIndex121
if buffer[position] != rune('P') {
goto l120
}
position++
}
l121:
{
position123, tokenIndex123 := position, tokenIndex
if buffer[position] != rune('e') {
goto l124
}
position++
goto l123
l124:
position, tokenIndex = position123, tokenIndex123
if buffer[position] != rune('E') {
goto l120
}
position++
}
l123:
{
position125, tokenIndex125 := position, tokenIndex
if buffer[position] != rune('r') {
goto l126
}
position++
goto l125
l126:
position, tokenIndex = position125, tokenIndex125
if buffer[position] != rune('R') {
goto l120
}
position++
}
l125:
{
position127, tokenIndex127 := position, tokenIndex
if buffer[position] != rune('c') {
goto l128
}
position++
goto l127
l128:
position, tokenIndex = position127, tokenIndex127
if buffer[position] != rune('C') {
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:
{
position131, tokenIndex131 := position, tokenIndex
if buffer[position] != rune('n') {
goto l132
}
position++
goto l131
l132:
position, tokenIndex = position131, tokenIndex131
if buffer[position] != rune('N') {
goto l120
}
position++
}
l131:
{
position133, tokenIndex133 := position, tokenIndex
if buffer[position] != rune('t') {
goto l134
}
position++
goto l133
l134:
position, tokenIndex = position133, tokenIndex133
if buffer[position] != rune('T') {
goto l120
}
position++
}
l133:
{
position135, tokenIndex135 := position, tokenIndex
if buffer[position] != rune('i') {
goto l136
}
position++
goto l135
l136:
position, tokenIndex = position135, tokenIndex135
if buffer[position] != rune('I') {
goto l120
}
position++
}
l135:
{
position137, tokenIndex137 := position, tokenIndex
if buffer[position] != rune('l') {
goto l138
}
position++
goto l137
l138:
position, tokenIndex = position137, tokenIndex137
if buffer[position] != rune('L') {
goto l120
}
position++
}
l137:
{
position139, tokenIndex139 := position, tokenIndex
if buffer[position] != rune('e') {
goto l140
}
position++
goto l139
l140:
position, tokenIndex = position139, tokenIndex139
if buffer[position] != rune('E') {
goto l120
}
position++
}
l139:
{
add(ruleAction14, position)
}
if !_rules[ruleopen]() {
goto l120
}
if !_rules[ruleposfield]() {
goto l120
}
{
position142, tokenIndex142 := position, tokenIndex
if !_rules[rulecomma]() {
goto l142
}
if !_rules[ruleallargs]() {
goto l142
}
goto l143
l142:
position, tokenIndex = position142, tokenIndex142
}
l143:
if !_rules[ruleclose]() {
goto l120
}
{
add(ruleAction15, position)
}
goto l7
l120:
position, tokenIndex = position7, tokenIndex7
{
position146, tokenIndex146 := position, tokenIndex
if buffer[position] != rune('r') {
goto l147
}
position++
goto l146
l147:
position, tokenIndex = position146, tokenIndex146
if buffer[position] != rune('R') {
goto l145
}
position++
}
l146:
{
position148, tokenIndex148 := position, tokenIndex
if buffer[position] != rune('o') {
goto l149
}
position++
goto l148
l149:
position, tokenIndex = position148, tokenIndex148
if buffer[position] != rune('O') {
goto l145
}
position++
}
l148:
{
position150, tokenIndex150 := position, tokenIndex
if buffer[position] != rune('w') {
goto l151
}
position++
goto l150
l151:
position, tokenIndex = position150, tokenIndex150
if buffer[position] != rune('W') {
goto l145
}
position++
}
l150:
{
position152, tokenIndex152 := position, tokenIndex
if buffer[position] != rune('s') {
goto l153
}
position++
goto l152
l153:
position, tokenIndex = position152, tokenIndex152
if buffer[position] != rune('S') {
goto l145
}
position++
}
l152:
{
add(ruleAction16, position)
}
if !_rules[ruleopen]() {
goto l145
}
if !_rules[ruleposfield]() {
goto l145
}
{
position155, tokenIndex155 := position, tokenIndex
if !_rules[rulecomma]() {
goto l155
}
if !_rules[ruleallargs]() {
goto l155
}
goto l156
l155:
position, tokenIndex = position155, tokenIndex155
}
l156:
if !_rules[ruleclose]() {
goto l145
}
{
add(ruleAction17, position)
}
goto l7
l145:
position, tokenIndex = position7, tokenIndex7
{
position159, tokenIndex159 := position, tokenIndex
if buffer[position] != rune('m') {
goto l160
}
position++
goto l159
l160:
position, tokenIndex = position159, tokenIndex159
if buffer[position] != rune('M') {
goto l158
}
position++
}
l159:
{
position161, tokenIndex161 := position, tokenIndex
if buffer[position] != rune('i') {
goto l162
}
position++
goto l161
l162:
position, tokenIndex = position161, tokenIndex161
if buffer[position] != rune('I') {
goto l158
}
position++
}
l161:
{
position163, tokenIndex163 := position, tokenIndex
if buffer[position] != rune('n') {
goto l164
}
position++
goto l163
l164:
position, tokenIndex = position163, tokenIndex163
if buffer[position] != rune('N') {
goto l158
}
position++
}
l163:
{
add(ruleAction18, position)
}
if !_rules[ruleopen]() {
goto l158
}
if !_rules[ruleposfield]() {
goto l158
}
{
position166, tokenIndex166 := position, tokenIndex
if !_rules[rulecomma]() {
goto l166
}
if !_rules[ruleallargs]() {
goto l166
}
goto l167
l166:
position, tokenIndex = position166, tokenIndex166
}
l167:
if !_rules[ruleclose]() {
goto l158
}
{
add(ruleAction19, position)
}
goto l7
l158:
position, tokenIndex = position7, tokenIndex7
{
position170, tokenIndex170 := position, tokenIndex
if buffer[position] != rune('m') {
goto l171
}
position++
goto l170
l171:
position, tokenIndex = position170, tokenIndex170
if buffer[position] != rune('M') {
goto l169
}
position++
}
l170:
{
position172, tokenIndex172 := position, tokenIndex
if buffer[position] != rune('a') {
goto l173
}
position++
goto l172
l173:
position, tokenIndex = position172, tokenIndex172
if buffer[position] != rune('A') {
goto l169
}
position++
}
l172:
{
position174, tokenIndex174 := position, tokenIndex
if buffer[position] != rune('x') {
goto l175
}
position++
goto l174
l175:
position, tokenIndex = position174, tokenIndex174
if buffer[position] != rune('X') {
goto l169
}
position++
}
l174:
{
add(ruleAction20, position)
}
if !_rules[ruleopen]() {
goto l169
}
if !_rules[ruleposfield]() {
goto l169
}
{
position177, tokenIndex177 := position, tokenIndex
if !_rules[rulecomma]() {
goto l177
}
if !_rules[ruleallargs]() {
goto l177
}
goto l178
l177:
position, tokenIndex = position177, tokenIndex177
}
l178:
if !_rules[ruleclose]() {
goto l169
}
{
add(ruleAction21, position)
}
goto l7
l169:
position, tokenIndex = position7, tokenIndex7
{
position181, tokenIndex181 := position, tokenIndex
if buffer[position] != rune('s') {
goto l182
}
position++
goto l181
l182:
position, tokenIndex = position181, tokenIndex181
if buffer[position] != rune('S') {
goto l180
}
position++
}
l181:
{
position183, tokenIndex183 := position, tokenIndex
if buffer[position] != rune('u') {
goto l184
}
position++
goto l183
l184:
position, tokenIndex = position183, tokenIndex183
if buffer[position] != rune('U') {
goto l180
}
position++
}
l183:
{
position185, tokenIndex185 := position, tokenIndex
if buffer[position] != rune('m') {
goto l186
}
position++
goto l185
l186:
position, tokenIndex = position185, tokenIndex185
if buffer[position] != rune('M') {
goto l180
}
position++
}
l185:
{
add(ruleAction22, position)
}
if !_rules[ruleopen]() {
goto l180
}
if !_rules[ruleposfield]() {
goto l180
}
{
position188, tokenIndex188 := position, tokenIndex
if !_rules[rulecomma]() {
goto l188
}
if !_rules[ruleallargs]() {
goto l188
}
goto l189
l188:
position, tokenIndex = position188, tokenIndex188
}
l189:
if !_rules[ruleclose]() {
goto l180
}
{
add(ruleAction23, position)
}
goto l7
l180:
position, tokenIndex = position7, tokenIndex7
{
position192, tokenIndex192 := position, tokenIndex
if buffer[position] != rune('r') {
goto l193
}
position++
goto l192
l193:
position, tokenIndex = position192, tokenIndex192
if buffer[position] != rune('R') {
goto l191
}
position++
}
l192:
{
position194, tokenIndex194 := position, tokenIndex
if buffer[position] != rune('a') {
goto l195
}
position++
goto l194
l195:
position, tokenIndex = position194, tokenIndex194
if buffer[position] != rune('A') {
goto l191
}
position++
}
l194:
{
position196, tokenIndex196 := position, tokenIndex
if buffer[position] != rune('n') {
goto l197
}
position++
goto l196
l197:
position, tokenIndex = position196, tokenIndex196
if buffer[position] != rune('N') {
goto l191
}
position++
}
l196:
{
position198, tokenIndex198 := position, tokenIndex
if buffer[position] != rune('g') {
goto l199
}
position++
goto l198
l199:
position, tokenIndex = position198, tokenIndex198
if buffer[position] != rune('G') {
goto l191
}
position++
}
l198:
{
position200, tokenIndex200 := position, tokenIndex
if buffer[position] != rune('e') {
goto l201
}
position++
goto l200
l201:
position, tokenIndex = position200, tokenIndex200
if buffer[position] != rune('E') {
goto l191
}
position++
}
l200:
{
add(ruleAction24, position)
}
if !_rules[ruleopen]() {
goto l191
}
if !_rules[rulefield]() {
goto l191
}
if !_rules[ruleeq]() {
goto l191
}
if !_rules[rulevalue]() {
goto l191
}
if !_rules[rulecomma]() {
goto l191
}
{
position203, tokenIndex203 := position, tokenIndex
if buffer[position] != rune('f') {
goto l203
}
position++
if buffer[position] != rune('r') {
goto l203
}
position++
if buffer[position] != rune('o') {
goto l203
}
position++
if buffer[position] != rune('m') {
goto l203
}
position++
if buffer[position] != rune('=') {
goto l203
}
position++
goto l204
l203:
position, tokenIndex = position203, tokenIndex203
}
l204:
{
add(ruleAction25, position)
}
if !_rules[ruletimefmt]() {
goto l191
}
{
add(ruleAction26, position)
}
if !_rules[rulecomma]() {
goto l191
}
{
position207, tokenIndex207 := position, tokenIndex
if buffer[position] != rune('t') {
goto l207
}
position++
if buffer[position] != rune('o') {
goto l207
}
position++
if buffer[position] != rune('=') {
goto l207
}
position++
goto l208
l207:
position, tokenIndex = position207, tokenIndex207
}
l208:
if !_rules[rulesp]() {
goto l191
}
{
add(ruleAction27, position)
}
if !_rules[ruletimefmt]() {
goto l191
}
{
add(ruleAction28, position)
}
if !_rules[ruleclose]() {
goto l191
}
{
add(ruleAction29, position)
}
goto l7
l191:
position, tokenIndex = position7, tokenIndex7
{
position212 := position
if !_rules[ruleIDENT]() {
goto l5
}
add(rulePegText, position212)
}
{
add(ruleAction30, position)
}
if !_rules[ruleopen]() {
goto l5
}
if !_rules[ruleallargs]() {
goto l5
}
{
position214, tokenIndex214 := position, tokenIndex
if !_rules[rulecomma]() {
goto l214
}
goto l215
l214:
position, tokenIndex = position214, tokenIndex214
}
l215:
if !_rules[ruleclose]() {
goto l5
}
{
add(ruleAction31, position)
}
}
l7:
add(ruleCall, position6)
}
return true
l5:
position, tokenIndex = position5, tokenIndex5
return false
},
/* 2 ivyExpr <- <('(' / '_' / '/' / '[' / ']' / '.' / '=' / '&' / '<' / '>' / ',' / ')' / '^' / '!' / '|' / ('*' / '+') / '-' / '?' / ([a-z] / [A-Z]) / [0-9] / '#' / (' ' / '\t' / '\n') / 'Θ')*> */
func() bool {
{
position218 := position
l219:
{
position220, tokenIndex220 := position, tokenIndex
{
position221, tokenIndex221 := position, tokenIndex
if buffer[position] != rune('(') {
goto l222
}
position++
goto l221
l222:
position, tokenIndex = position221, tokenIndex221
if buffer[position] != rune('_') {
goto l223
}
position++
goto l221
l223:
position, tokenIndex = position221, tokenIndex221
if buffer[position] != rune('/') {
goto l224
}
position++
goto l221
l224:
position, tokenIndex = position221, tokenIndex221
if buffer[position] != rune('[') {
goto l225
}
position++
goto l221
l225:
position, tokenIndex = position221, tokenIndex221
if buffer[position] != rune(']') {
goto l226
}
position++
goto l221
l226:
position, tokenIndex = position221, tokenIndex221
if buffer[position] != rune('.') {
goto l227
}
position++
goto l221
l227:
position, tokenIndex = position221, tokenIndex221
if buffer[position] != rune('=') {
goto l228
}
position++
goto l221
l228:
position, tokenIndex = position221, tokenIndex221
if buffer[position] != rune('&') {
goto l229
}
position++
goto l221
l229:
position, tokenIndex = position221, tokenIndex221
if buffer[position] != rune('<') {
goto l230
}
position++
goto l221
l230:
position, tokenIndex = position221, tokenIndex221
if buffer[position] != rune('>') {
goto l231
}
position++
goto l221
l231:
position, tokenIndex = position221, tokenIndex221
if buffer[position] != rune(',') {
goto l232
}
position++
goto l221
l232:
position, tokenIndex = position221, tokenIndex221
if buffer[position] != rune(')') {
goto l233
}
position++
goto l221
l233:
position, tokenIndex = position221, tokenIndex221
if buffer[position] != rune('^') {
goto l234
}
position++
goto l221
l234:
position, tokenIndex = position221, tokenIndex221
if buffer[position] != rune('!') {
goto l235
}
position++
goto l221
l235:
position, tokenIndex = position221, tokenIndex221
if buffer[position] != rune('|') {
goto l236
}
position++
goto l221
l236:
position, tokenIndex = position221, tokenIndex221
{
position238, tokenIndex238 := position, tokenIndex
if buffer[position] != rune('*') {
goto l239
}
position++
goto l238
l239:
position, tokenIndex = position238, tokenIndex238
if buffer[position] != rune('+') {
goto l237
}
position++
}
l238:
goto l221
l237:
position, tokenIndex = position221, tokenIndex221
if buffer[position] != rune('-') {
goto l240
}
position++
goto l221
l240:
position, tokenIndex = position221, tokenIndex221
if buffer[position] != rune('?') {
goto l241
}
position++
goto l221
l241:
position, tokenIndex = position221, tokenIndex221
{
position243, tokenIndex243 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
goto l244
}
position++
goto l243
l244:
position, tokenIndex = position243, tokenIndex243
if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l242
}
position++
}
l243:
goto l221
l242:
position, tokenIndex = position221, tokenIndex221
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l245
}
position++
goto l221
l245:
position, tokenIndex = position221, tokenIndex221
if buffer[position] != rune('#') {
goto l246
}
position++
goto l221
l246:
position, tokenIndex = position221, tokenIndex221
{
position248, tokenIndex248 := position, tokenIndex
if buffer[position] != rune(' ') {
goto l249
}
position++
goto l248
l249:
position, tokenIndex = position248, tokenIndex248
if buffer[position] != rune('\t') {
goto l250
}
position++
goto l248
l250:
position, tokenIndex = position248, tokenIndex248
if buffer[position] != rune('\n') {
goto l247
}
position++
}
l248:
goto l221
l247:
position, tokenIndex = position221, tokenIndex221
if buffer[position] != rune('Θ') {
goto l220
}
position++
}
l221:
goto l219
l220:
position, tokenIndex = position220, tokenIndex220
}
add(ruleivyExpr, position218)
}
return true
},
/* 3 ivyprogram <- <('"'? <ivyExpr> '"' Action32)> */
nil,
/* 4 ivyprogram2 <- <('"'? <ivyExpr> '"' Action33)> */
nil,
/* 5 allargs <- <((Call (comma Call)* (comma args)?) / args / sp)> */
func() bool {
position253, tokenIndex253 := position, tokenIndex
{
position254 := position
{
position255, tokenIndex255 := position, tokenIndex
if !_rules[ruleCall]() {
goto l256
}
l257:
{
position258, tokenIndex258 := position, tokenIndex
if !_rules[rulecomma]() {
goto l258
}
if !_rules[ruleCall]() {
goto l258
}
goto l257
l258:
position, tokenIndex = position258, tokenIndex258
}
{
position259, tokenIndex259 := position, tokenIndex
if !_rules[rulecomma]() {
goto l259
}
if !_rules[ruleargs]() {
goto l259
}
goto l260
l259:
position, tokenIndex = position259, tokenIndex259
}
l260:
goto l255
l256:
position, tokenIndex = position255, tokenIndex255
if !_rules[ruleargs]() {
goto l261
}
goto l255
l261:
position, tokenIndex = position255, tokenIndex255
if !_rules[rulesp]() {
goto l253
}
}
l255:
add(ruleallargs, position254)
}
return true
l253:
position, tokenIndex = position253, tokenIndex253
return false
},
/* 6 args <- <(arg (comma args)? sp)> */
func() bool {
position262, tokenIndex262 := position, tokenIndex
{
position263 := position
if !_rules[rulearg]() {
goto l262
}
{
position264, tokenIndex264 := position, tokenIndex
if !_rules[rulecomma]() {
goto l264
}
if !_rules[ruleargs]() {
goto l264
}
goto l265
l264:
position, tokenIndex = position264, tokenIndex264
}
l265:
if !_rules[rulesp]() {
goto l262
}
add(ruleargs, position263)
}
return true
l262:
position, tokenIndex = position262, tokenIndex262
return false
},
/* 7 arg <- <((field eq value) / (field sp COND sp value) / conditional)> */
func() bool {
position266, tokenIndex266 := position, tokenIndex
{
position267 := position
{
position268, tokenIndex268 := position, tokenIndex
if !_rules[rulefield]() {
goto l269
}
if !_rules[ruleeq]() {
goto l269
}
if !_rules[rulevalue]() {
goto l269
}
goto l268
l269:
position, tokenIndex = position268, tokenIndex268
if !_rules[rulefield]() {
goto l270
}
if !_rules[rulesp]() {
goto l270
}
{
position271 := position
{
position272, tokenIndex272 := position, tokenIndex
if buffer[position] != rune('>') {
goto l273
}
position++
if buffer[position] != rune('<') {
goto l273
}
position++
{
add(ruleAction34, position)
}
goto l272
l273:
position, tokenIndex = position272, tokenIndex272
if buffer[position] != rune('<') {
goto l275
}
position++
if buffer[position] != rune('=') {
goto l275
}
position++
{
add(ruleAction35, position)
}
goto l272
l275:
position, tokenIndex = position272, tokenIndex272
if buffer[position] != rune('>') {
goto l277
}
position++
if buffer[position] != rune('=') {
goto l277
}
position++
{
add(ruleAction36, position)
}
goto l272
l277:
position, tokenIndex = position272, tokenIndex272
if buffer[position] != rune('=') {
goto l279
}
position++
if buffer[position] != rune('=') {
goto l279
}
position++
{
add(ruleAction37, position)
}
goto l272
l279:
position, tokenIndex = position272, tokenIndex272
if buffer[position] != rune('!') {
goto l281
}
position++
if buffer[position] != rune('=') {
goto l281
}
position++
{
add(ruleAction38, position)
}
goto l272
l281:
position, tokenIndex = position272, tokenIndex272
if buffer[position] != rune('<') {
goto l283
}
position++
{
add(ruleAction39, position)
}
goto l272
l283:
position, tokenIndex = position272, tokenIndex272
if buffer[position] != rune('>') {
goto l270
}
position++
{
add(ruleAction40, position)
}
}
l272:
add(ruleCOND, position271)
}
if !_rules[rulesp]() {
goto l270
}
if !_rules[rulevalue]() {
goto l270
}
goto l268
l270:
position, tokenIndex = position268, tokenIndex268
{
position286 := position
{
add(ruleAction41, position)
}
if !_rules[rulecondintOrTime]() {
goto l266
}
if !_rules[rulecondLT]() {
goto l266
}
{
position288 := position
{
position289 := position
if !_rules[rulefieldExpr]() {
goto l266
}
add(rulePegText, position289)
}
if !_rules[rulesp]() {
goto l266
}
{
add(ruleAction46, position)
}
add(rulecondfield, position288)
}
if !_rules[rulecondLT]() {
goto l266
}
if !_rules[rulecondintOrTime]() {
goto l266
}
{
add(ruleAction42, position)
}
add(ruleconditional, position286)
}
}
l268:
add(rulearg, position267)
}
return true
l266:
position, tokenIndex = position266, tokenIndex266
return false
},
/* 8 COND <- <(('>' '<' Action34) / ('<' '=' Action35) / ('>' '=' Action36) / ('=' '=' Action37) / ('!' '=' Action38) / ('<' Action39) / ('>' Action40))> */
nil,
/* 9 conditional <- <(Action41 condintOrTime condLT condfield condLT condintOrTime Action42)> */
nil,
/* 10 condintOrTime <- <(condint / timefmtS)> */
func() bool {
position294, tokenIndex294 := position, tokenIndex
{
position295 := position
{
position296, tokenIndex296 := position, tokenIndex
{
position298 := position
{
position299 := position
if !_rules[ruledecimal]() {
goto l297
}
add(rulePegText, position299)
}
if !_rules[rulesp]() {
goto l297
}
{
add(ruleAction44, position)
}
add(rulecondint, position298)
}
goto l296
l297:
position, tokenIndex = position296, tokenIndex296
{
position301 := position
{
position302 := position
if !_rules[ruletimestampfmt]() {
goto l294
}
add(rulePegText, position302)
}
if !_rules[rulesp]() {
goto l294
}
{
add(ruleAction43, position)
}
add(ruletimefmtS, position301)
}
}
l296:
add(rulecondintOrTime, position295)
}
return true
l294:
position, tokenIndex = position294, tokenIndex294
return false
},
/* 11 timefmtS <- <(<timestampfmt> sp Action43)> */
nil,
/* 12 condint <- <(<decimal> sp Action44)> */
nil,
/* 13 condLT <- <(<(('<' '=') / '<')> sp Action45)> */
func() bool {
position306, tokenIndex306 := position, tokenIndex
{
position307 := position
{
position308 := position
{
position309, tokenIndex309 := position, tokenIndex
if buffer[position] != rune('<') {
goto l310
}
position++
if buffer[position] != rune('=') {
goto l310
}
position++
goto l309
l310:
position, tokenIndex = position309, tokenIndex309
if buffer[position] != rune('<') {
goto l306
}
position++
}
l309:
add(rulePegText, position308)
}
if !_rules[rulesp]() {
goto l306
}
{
add(ruleAction45, position)
}
add(rulecondLT, position307)
}
return true
l306:
position, tokenIndex = position306, tokenIndex306
return false
},
/* 14 condfield <- <(<fieldExpr> sp Action46)> */
nil,
/* 15 value <- <(item / (lbrack Action47 items rbrack Action48))> */
func() bool {
position313, tokenIndex313 := position, tokenIndex
{
position314 := position
{
position315, tokenIndex315 := position, tokenIndex
if !_rules[ruleitem]() {
goto l316
}
goto l315
l316:
position, tokenIndex = position315, tokenIndex315
{
position317 := position
if buffer[position] != rune('[') {
goto l313
}
position++
if !_rules[rulesp]() {
goto l313
}
add(rulelbrack, position317)
}
{
add(ruleAction47, position)
}
if !_rules[ruleitems]() {
goto l313
}
{
position319 := position
if !_rules[rulesp]() {
goto l313
}
if buffer[position] != rune(']') {
goto l313
}
position++
if !_rules[rulesp]() {
goto l313
}
add(rulerbrack, position319)
}
{
add(ruleAction48, position)
}
}
l315:
add(rulevalue, position314)
}
return true
l313:
position, tokenIndex = position313, tokenIndex313
return false
},
/* 16 items <- <(item (comma items)?)> */
func() bool {
position321, tokenIndex321 := position, tokenIndex
{
position322 := position
if !_rules[ruleitem]() {
goto l321
}
{
position323, tokenIndex323 := position, tokenIndex
if !_rules[rulecomma]() {
goto l323
}
if !_rules[ruleitems]() {
goto l323
}
goto l324
l323:
position, tokenIndex = position323, tokenIndex323
}
l324:
add(ruleitems, position322)
}
return true
l321:
position, tokenIndex = position321, tokenIndex321
return false
},
/* 17 item <- <(('n' 'u' 'l' 'l' &(comma / close) Action49) / ('t' 'r' 'u' 'e' &(comma / close) Action50) / ('f' 'a' 'l' 's' 'e' &(comma / close) Action51) / ('$' <variable> Action52) / (timefmt Action53) / (timestampfmt Action54) / (<decimal> Action55) / (<IDENT> Action56 open allargs comma? close Action57) / (<([a-z] / [A-Z] / [0-9] / '-' / '_' / ':' / 'Θ')+> Action58) / (<('"' doublequotedstring '"')> Action59) / (<('\'' singlequotedstring '\'')> Action60))> */
func() bool {
position325, tokenIndex325 := position, tokenIndex
{
position326 := position
{
position327, tokenIndex327 := position, tokenIndex
if buffer[position] != rune('n') {
goto l328
}
position++
if buffer[position] != rune('u') {
goto l328
}
position++
if buffer[position] != rune('l') {
goto l328
}
position++
if buffer[position] != rune('l') {
goto l328
}
position++
{
position329, tokenIndex329 := position, tokenIndex
{
position330, tokenIndex330 := position, tokenIndex
if !_rules[rulecomma]() {
goto l331
}
goto l330
l331:
position, tokenIndex = position330, tokenIndex330
if !_rules[ruleclose]() {
goto l328
}
}
l330:
position, tokenIndex = position329, tokenIndex329
}
{
add(ruleAction49, position)
}
goto l327
l328:
position, tokenIndex = position327, tokenIndex327
if buffer[position] != rune('t') {
goto l333
}
position++
if buffer[position] != rune('r') {
goto l333
}
position++
if buffer[position] != rune('u') {
goto l333
}
position++
if buffer[position] != rune('e') {
goto l333
}
position++
{
position334, tokenIndex334 := position, tokenIndex
{
position335, tokenIndex335 := position, tokenIndex
if !_rules[rulecomma]() {
goto l336
}
goto l335
l336:
position, tokenIndex = position335, tokenIndex335
if !_rules[ruleclose]() {
goto l333
}
}
l335:
position, tokenIndex = position334, tokenIndex334
}
{
add(ruleAction50, position)
}
goto l327
l333:
position, tokenIndex = position327, tokenIndex327
if buffer[position] != rune('f') {
goto l338
}
position++
if buffer[position] != rune('a') {
goto l338
}
position++
if buffer[position] != rune('l') {
goto l338
}
position++
if buffer[position] != rune('s') {
goto l338
}
position++
if buffer[position] != rune('e') {
goto l338
}
position++
{
position339, tokenIndex339 := position, tokenIndex
{
position340, tokenIndex340 := position, tokenIndex
if !_rules[rulecomma]() {
goto l341
}
goto l340
l341:
position, tokenIndex = position340, tokenIndex340
if !_rules[ruleclose]() {
goto l338
}
}
l340:
position, tokenIndex = position339, tokenIndex339
}
{
add(ruleAction51, position)
}
goto l327
l338:
position, tokenIndex = position327, tokenIndex327
if buffer[position] != rune('$') {
goto l343
}
position++
{
position344 := position
{
position345 := position
{
position346, tokenIndex346 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
goto l347
}
position++
goto l346
l347:
position, tokenIndex = position346, tokenIndex346
if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l348
}
position++
goto l346
l348:
position, tokenIndex = position346, tokenIndex346
if buffer[position] != rune('_') {
goto l343
}
position++
}
l346:
l349:
{
position350, tokenIndex350 := position, tokenIndex
{
position351, tokenIndex351 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
goto l352
}
position++
goto l351
l352:
position, tokenIndex = position351, tokenIndex351
if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l353
}
position++
goto l351
l353:
position, tokenIndex = position351, tokenIndex351
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l354
}
position++
goto l351
l354:
position, tokenIndex = position351, tokenIndex351
if buffer[position] != rune('_') {
goto l355
}
position++
goto l351
l355:
position, tokenIndex = position351, tokenIndex351
if buffer[position] != rune('-') {
goto l356
}
position++
goto l351
l356:
position, tokenIndex = position351, tokenIndex351
if buffer[position] != rune('Θ') {
goto l350
}
position++
}
l351:
goto l349
l350:
position, tokenIndex = position350, tokenIndex350
}
add(rulevariable, position345)
}
add(rulePegText, position344)
}
{
add(ruleAction52, position)
}
goto l327
l343:
position, tokenIndex = position327, tokenIndex327
if !_rules[ruletimefmt]() {
goto l358
}
{
add(ruleAction53, position)
}
goto l327
l358:
position, tokenIndex = position327, tokenIndex327
if !_rules[ruletimestampfmt]() {
goto l360
}
{
add(ruleAction54, position)
}
goto l327
l360:
position, tokenIndex = position327, tokenIndex327
{
position363 := position
if !_rules[ruledecimal]() {
goto l362
}
add(rulePegText, position363)
}
{
add(ruleAction55, position)
}
goto l327
l362:
position, tokenIndex = position327, tokenIndex327
{
position366 := position
if !_rules[ruleIDENT]() {
goto l365
}
add(rulePegText, position366)
}
{
add(ruleAction56, position)
}
if !_rules[ruleopen]() {
goto l365
}
if !_rules[ruleallargs]() {
goto l365
}
{
position368, tokenIndex368 := position, tokenIndex
if !_rules[rulecomma]() {
goto l368
}
goto l369
l368:
position, tokenIndex = position368, tokenIndex368
}
l369:
if !_rules[ruleclose]() {
goto l365
}
{
add(ruleAction57, position)
}
goto l327
l365:
position, tokenIndex = position327, tokenIndex327
{
position372 := position
{
position375, tokenIndex375 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
goto l376
}
position++
goto l375
l376:
position, tokenIndex = position375, tokenIndex375
if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l377
}
position++
goto l375
l377:
position, tokenIndex = position375, tokenIndex375
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l378
}
position++
goto l375
l378:
position, tokenIndex = position375, tokenIndex375
if buffer[position] != rune('-') {
goto l379
}
position++
goto l375
l379:
position, tokenIndex = position375, tokenIndex375
if buffer[position] != rune('_') {
goto l380
}
position++
goto l375
l380:
position, tokenIndex = position375, tokenIndex375
if buffer[position] != rune(':') {
goto l381
}
position++
goto l375
l381:
position, tokenIndex = position375, tokenIndex375
if buffer[position] != rune('Θ') {
goto l371
}
position++
}
l375:
l373:
{
position374, tokenIndex374 := position, tokenIndex
{
position382, tokenIndex382 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
goto l383
}
position++
goto l382
l383:
position, tokenIndex = position382, tokenIndex382
if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l384
}
position++
goto l382
l384:
position, tokenIndex = position382, tokenIndex382
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l385
}
position++
goto l382
l385:
position, tokenIndex = position382, tokenIndex382
if buffer[position] != rune('-') {
goto l386
}
position++
goto l382
l386:
position, tokenIndex = position382, tokenIndex382
if buffer[position] != rune('_') {
goto l387
}
position++
goto l382
l387:
position, tokenIndex = position382, tokenIndex382
if buffer[position] != rune(':') {
goto l388
}
position++
goto l382
l388:
position, tokenIndex = position382, tokenIndex382
if buffer[position] != rune('Θ') {
goto l374
}
position++
}
l382:
goto l373
l374:
position, tokenIndex = position374, tokenIndex374
}
add(rulePegText, position372)
}
{
add(ruleAction58, position)
}
goto l327
l371:
position, tokenIndex = position327, tokenIndex327
{
position391 := position
if buffer[position] != rune('"') {
goto l390
}
position++
if !_rules[ruledoublequotedstring]() {
goto l390
}
if buffer[position] != rune('"') {
goto l390
}
position++
add(rulePegText, position391)
}
{
add(ruleAction59, position)
}
goto l327
l390:
position, tokenIndex = position327, tokenIndex327
{
position393 := position
if buffer[position] != rune('\'') {
goto l325
}
position++
if !_rules[rulesinglequotedstring]() {
goto l325
}
if buffer[position] != rune('\'') {
goto l325
}
position++
add(rulePegText, position393)
}
{
add(ruleAction60, position)
}
}
l327:
add(ruleitem, position326)
}
return true
l325:
position, tokenIndex = position325, tokenIndex325
return false
},
/* 18 doublequotedstring <- <(('\\' '"') / ('\\' '\\') / ('\\' 'n') / ('\\' 't') / (!('"' / '\\') .))*> */
func() bool {
{
position396 := position
l397:
{
position398, tokenIndex398 := position, tokenIndex
{
position399, tokenIndex399 := position, tokenIndex
if buffer[position] != rune('\\') {
goto l400
}
position++
if buffer[position] != rune('"') {
goto l400
}
position++
goto l399
l400:
position, tokenIndex = position399, tokenIndex399
if buffer[position] != rune('\\') {
goto l401
}
position++
if buffer[position] != rune('\\') {
goto l401
}
position++
goto l399
l401:
position, tokenIndex = position399, tokenIndex399
if buffer[position] != rune('\\') {
goto l402
}
position++
if buffer[position] != rune('n') {
goto l402
}
position++
goto l399
l402:
position, tokenIndex = position399, tokenIndex399
if buffer[position] != rune('\\') {
goto l403
}
position++
if buffer[position] != rune('t') {
goto l403
}
position++
goto l399
l403:
position, tokenIndex = position399, tokenIndex399
{
position404, tokenIndex404 := position, tokenIndex
{
position405, tokenIndex405 := position, tokenIndex
if buffer[position] != rune('"') {
goto l406
}
position++
goto l405
l406:
position, tokenIndex = position405, tokenIndex405
if buffer[position] != rune('\\') {
goto l404
}
position++
}
l405:
goto l398
l404:
position, tokenIndex = position404, tokenIndex404
}
if !matchDot() {
goto l398
}
}
l399:
goto l397
l398:
position, tokenIndex = position398, tokenIndex398
}
add(ruledoublequotedstring, position396)
}
return true
},
/* 19 singlequotedstring <- <(('\\' '\'') / ('\\' '\\') / ('\\' 'n') / ('\\' 't') / (!('\'' / '\\') .))*> */
func() bool {
{
position408 := position
l409:
{
position410, tokenIndex410 := position, tokenIndex
{
position411, tokenIndex411 := position, tokenIndex
if buffer[position] != rune('\\') {
goto l412
}
position++
if buffer[position] != rune('\'') {
goto l412
}
position++
goto l411
l412:
position, tokenIndex = position411, tokenIndex411
if buffer[position] != rune('\\') {
goto l413
}
position++
if buffer[position] != rune('\\') {
goto l413
}
position++
goto l411
l413:
position, tokenIndex = position411, tokenIndex411
if buffer[position] != rune('\\') {
goto l414
}
position++
if buffer[position] != rune('n') {
goto l414
}
position++
goto l411
l414:
position, tokenIndex = position411, tokenIndex411
if buffer[position] != rune('\\') {
goto l415
}
position++
if buffer[position] != rune('t') {
goto l415
}
position++
goto l411
l415:
position, tokenIndex = position411, tokenIndex411
{
position416, tokenIndex416 := position, tokenIndex
{
position417, tokenIndex417 := position, tokenIndex
if buffer[position] != rune('\'') {
goto l418
}
position++
goto l417
l418:
position, tokenIndex = position417, tokenIndex417
if buffer[position] != rune('\\') {
goto l416
}
position++
}
l417:
goto l410
l416:
position, tokenIndex = position416, tokenIndex416
}
if !matchDot() {
goto l410
}
}
l411:
goto l409
l410:
position, tokenIndex = position410, tokenIndex410
}
add(rulesinglequotedstring, position408)
}
return true
},
/* 20 variable <- <(([a-z] / [A-Z] / '_') ([a-z] / [A-Z] / [0-9] / '_' / '-' / 'Θ')*)> */
nil,
/* 21 fieldExpr <- <(([a-z] / [A-Z] / '_' / '$') ([a-z] / [A-Z] / [0-9] / '_' / '-' / 'Θ')*)> */
func() bool {
position420, tokenIndex420 := position, tokenIndex
{
position421 := position
{
position422, tokenIndex422 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
goto l423
}
position++
goto l422
l423:
position, tokenIndex = position422, tokenIndex422
if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l424
}
position++
goto l422
l424:
position, tokenIndex = position422, tokenIndex422
if buffer[position] != rune('_') {
goto l425
}
position++
goto l422
l425:
position, tokenIndex = position422, tokenIndex422
if buffer[position] != rune('$') {
goto l420
}
position++
}
l422:
l426:
{
position427, tokenIndex427 := position, tokenIndex
{
position428, tokenIndex428 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
goto l429
}
position++
goto l428
l429:
position, tokenIndex = position428, tokenIndex428
if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l430
}
position++
goto l428
l430:
position, tokenIndex = position428, tokenIndex428
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l431
}
position++
goto l428
l431:
position, tokenIndex = position428, tokenIndex428
if buffer[position] != rune('_') {
goto l432
}
position++
goto l428
l432:
position, tokenIndex = position428, tokenIndex428
if buffer[position] != rune('-') {
goto l433
}
position++
goto l428
l433:
position, tokenIndex = position428, tokenIndex428
if buffer[position] != rune('Θ') {
goto l427
}
position++
}
l428:
goto l426
l427:
position, tokenIndex = position427, tokenIndex427
}
add(rulefieldExpr, position421)
}
return true
l420:
position, tokenIndex = position420, tokenIndex420
return false
},
/* 22 field <- <(<(fieldExpr / reserved)> Action61)> */
func() bool {
position434, tokenIndex434 := position, tokenIndex
{
position435 := position
{
position436 := position
{
position437, tokenIndex437 := position, tokenIndex
if !_rules[rulefieldExpr]() {
goto l438
}
goto l437
l438:
position, tokenIndex = position437, tokenIndex437
{
position439 := position
{
position440, tokenIndex440 := position, tokenIndex
if buffer[position] != rune('_') {
goto l441
}
position++
if buffer[position] != rune('r') {
goto l441
}
position++
if buffer[position] != rune('o') {
goto l441
}
position++
if buffer[position] != rune('w') {
goto l441
}
position++
goto l440
l441:
position, tokenIndex = position440, tokenIndex440
if buffer[position] != rune('_') {
goto l442
}
position++
if buffer[position] != rune('c') {
goto l442
}
position++
if buffer[position] != rune('o') {
goto l442
}
position++
if buffer[position] != rune('l') {
goto l442
}
position++
goto l440
l442:
position, tokenIndex = position440, tokenIndex440
if buffer[position] != rune('_') {
goto l443
}
position++
if buffer[position] != rune('s') {
goto l443
}
position++
if buffer[position] != rune('t') {
goto l443
}
position++
if buffer[position] != rune('a') {
goto l443
}
position++
if buffer[position] != rune('r') {
goto l443
}
position++
if buffer[position] != rune('t') {
goto l443
}
position++
goto l440
l443:
position, tokenIndex = position440, tokenIndex440
if buffer[position] != rune('_') {
goto l444
}
position++
if buffer[position] != rune('e') {
goto l444
}
position++
if buffer[position] != rune('n') {
goto l444
}
position++
if buffer[position] != rune('d') {
goto l444
}
position++
goto l440
l444:
position, tokenIndex = position440, tokenIndex440
if buffer[position] != rune('_') {
goto l445
}
position++
if buffer[position] != rune('t') {
goto l445
}
position++
if buffer[position] != rune('i') {
goto l445
}
position++
if buffer[position] != rune('m') {
goto l445
}
position++
if buffer[position] != rune('e') {
goto l445
}
position++
if buffer[position] != rune('s') {
goto l445
}
position++
if buffer[position] != rune('t') {
goto l445
}
position++
if buffer[position] != rune('a') {
goto l445
}
position++
if buffer[position] != rune('m') {
goto l445
}
position++
if buffer[position] != rune('p') {
goto l445
}
position++
goto l440
l445:
position, tokenIndex = position440, tokenIndex440
if buffer[position] != rune('_') {
goto l434
}
position++
if buffer[position] != rune('f') {
goto l434
}
position++
if buffer[position] != rune('i') {
goto l434
}
position++
if buffer[position] != rune('e') {
goto l434
}
position++
if buffer[position] != rune('l') {
goto l434
}
position++
if buffer[position] != rune('d') {
goto l434
}
position++
}
l440:
add(rulereserved, position439)
}
}
l437:
add(rulePegText, position436)
}
{
add(ruleAction61, position)
}
add(rulefield, position435)
}
return true
l434:
position, tokenIndex = position434, tokenIndex434
return false
},
/* 23 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,
/* 24 posfield <- <(('f' 'i' 'e' 'l' 'd' '=')? <fieldExpr> Action62)> */
func() bool {
position448, tokenIndex448 := position, tokenIndex
{
position449 := position
{
position450, tokenIndex450 := position, tokenIndex
if buffer[position] != rune('f') {
goto l450
}
position++
if buffer[position] != rune('i') {
goto l450
}
position++
if buffer[position] != rune('e') {
goto l450
}
position++
if buffer[position] != rune('l') {
goto l450
}
position++
if buffer[position] != rune('d') {
goto l450
}
position++
if buffer[position] != rune('=') {
goto l450
}
position++
goto l451
l450:
position, tokenIndex = position450, tokenIndex450
}
l451:
{
position452 := position
if !_rules[rulefieldExpr]() {
goto l448
}
add(rulePegText, position452)
}
{
add(ruleAction62, position)
}
add(ruleposfield, position449)
}
return true
l448:
position, tokenIndex = position448, tokenIndex448
return false
},
/* 25 col <- <((<digits> Action63) / (<('\'' singlequotedstring '\'')> Action64) / (<('"' doublequotedstring '"')> Action65))> */
func() bool {
position454, tokenIndex454 := position, tokenIndex
{
position455 := position
{
position456, tokenIndex456 := position, tokenIndex
{
position458 := position
if !_rules[ruledigits]() {
goto l457
}
add(rulePegText, position458)
}
{
add(ruleAction63, position)
}
goto l456
l457:
position, tokenIndex = position456, tokenIndex456
{
position461 := position
if buffer[position] != rune('\'') {
goto l460
}
position++
if !_rules[rulesinglequotedstring]() {
goto l460
}
if buffer[position] != rune('\'') {
goto l460
}
position++
add(rulePegText, position461)
}
{
add(ruleAction64, position)
}
goto l456
l460:
position, tokenIndex = position456, tokenIndex456
{
position463 := position
if buffer[position] != rune('"') {
goto l454
}
position++
if !_rules[ruledoublequotedstring]() {
goto l454
}
if buffer[position] != rune('"') {
goto l454
}
position++
add(rulePegText, position463)
}
{
add(ruleAction65, position)
}
}
l456:
add(rulecol, position455)
}
return true
l454:
position, tokenIndex = position454, tokenIndex454
return false
},
/* 26 open <- <('(' sp)> */
func() bool {
position465, tokenIndex465 := position, tokenIndex
{
position466 := position
if buffer[position] != rune('(') {
goto l465
}
position++
if !_rules[rulesp]() {
goto l465
}
add(ruleopen, position466)
}
return true
l465:
position, tokenIndex = position465, tokenIndex465
return false
},
/* 27 close <- <(sp ')' sp)> */
func() bool {
position467, tokenIndex467 := position, tokenIndex
{
position468 := position
if !_rules[rulesp]() {
goto l467
}
if buffer[position] != rune(')') {
goto l467
}
position++
if !_rules[rulesp]() {
goto l467
}
add(ruleclose, position468)
}
return true
l467:
position, tokenIndex = position467, tokenIndex467
return false
},
/* 28 sp <- <(' ' / '\t' / '\n')*> */
func() bool {
{
position470 := position
l471:
{
position472, tokenIndex472 := position, tokenIndex
{
position473, tokenIndex473 := position, tokenIndex
if buffer[position] != rune(' ') {
goto l474
}
position++
goto l473
l474:
position, tokenIndex = position473, tokenIndex473
if buffer[position] != rune('\t') {
goto l475
}
position++
goto l473
l475:
position, tokenIndex = position473, tokenIndex473
if buffer[position] != rune('\n') {
goto l472
}
position++
}
l473:
goto l471
l472:
position, tokenIndex = position472, tokenIndex472
}
add(rulesp, position470)
}
return true
},
/* 29 eq <- <(sp '=' sp)> */
func() bool {
position476, tokenIndex476 := position, tokenIndex
{
position477 := position
if !_rules[rulesp]() {
goto l476
}
if buffer[position] != rune('=') {
goto l476
}
position++
if !_rules[rulesp]() {
goto l476
}
add(ruleeq, position477)
}
return true
l476:
position, tokenIndex = position476, tokenIndex476
return false
},
/* 30 comma <- <(sp ',' sp)> */
func() bool {
position478, tokenIndex478 := position, tokenIndex
{
position479 := position
if !_rules[rulesp]() {
goto l478
}
if buffer[position] != rune(',') {
goto l478
}
position++
if !_rules[rulesp]() {
goto l478
}
add(rulecomma, position479)
}
return true
l478:
position, tokenIndex = position478, tokenIndex478
return false
},
/* 31 lbrack <- <('[' sp)> */
nil,
/* 32 rbrack <- <(sp ']' sp)> */
nil,
/* 33 IDENT <- <(([a-z] / [A-Z]) ([a-z] / [A-Z] / [0-9] / 'Θ')*)> */
func() bool {
position482, tokenIndex482 := position, tokenIndex
{
position483 := position
{
position484, tokenIndex484 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
goto l485
}
position++
goto l484
l485:
position, tokenIndex = position484, tokenIndex484
if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l482
}
position++
}
l484:
l486:
{
position487, tokenIndex487 := position, tokenIndex
{
position488, tokenIndex488 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
goto l489
}
position++
goto l488
l489:
position, tokenIndex = position488, tokenIndex488
if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l490
}
position++
goto l488
l490:
position, tokenIndex = position488, tokenIndex488
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l491
}
position++
goto l488
l491:
position, tokenIndex = position488, tokenIndex488
if buffer[position] != rune('Θ') {
goto l487
}
position++
}
l488:
goto l486
l487:
position, tokenIndex = position487, tokenIndex487
}
add(ruleIDENT, position483)
}
return true
l482:
position, tokenIndex = position482, tokenIndex482
return false
},
/* 34 digits <- <[0-9]+> */
func() bool {
position492, tokenIndex492 := position, tokenIndex
{
position493 := position
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l492
}
position++
l494:
{
position495, tokenIndex495 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l495
}
position++
goto l494
l495:
position, tokenIndex = position495, tokenIndex495
}
add(ruledigits, position493)
}
return true
l492:
position, tokenIndex = position492, tokenIndex492
return false
},
/* 35 signedDigits <- <('-'? digits)> */
nil,
/* 36 decimal <- <((signedDigits ('.' digits?)?) / ('-'? '.' digits))> */
func() bool {
position497, tokenIndex497 := position, tokenIndex
{
position498 := position
{
position499, tokenIndex499 := position, tokenIndex
{
position501 := position
{
position502, tokenIndex502 := position, tokenIndex
if buffer[position] != rune('-') {
goto l502
}
position++
goto l503
l502:
position, tokenIndex = position502, tokenIndex502
}
l503:
if !_rules[ruledigits]() {
goto l500
}
add(rulesignedDigits, position501)
}
{
position504, tokenIndex504 := position, tokenIndex
if buffer[position] != rune('.') {
goto l504
}
position++
{
position506, tokenIndex506 := position, tokenIndex
if !_rules[ruledigits]() {
goto l506
}
goto l507
l506:
position, tokenIndex = position506, tokenIndex506
}
l507:
goto l505
l504:
position, tokenIndex = position504, tokenIndex504
}
l505:
goto l499
l500:
position, tokenIndex = position499, tokenIndex499
{
position508, tokenIndex508 := position, tokenIndex
if buffer[position] != rune('-') {
goto l508
}
position++
goto l509
l508:
position, tokenIndex = position508, tokenIndex508
}
l509:
if buffer[position] != rune('.') {
goto l497
}
position++
if !_rules[ruledigits]() {
goto l497
}
}
l499:
add(ruledecimal, position498)
}
return true
l497:
position, tokenIndex = position497, tokenIndex497
return false
},
/* 37 tz <- <('Z' / ('-' [0-9] [0-9] ':' [0-9] [0-9]) / ('+' [0-9] [0-9] ':' [0-9] [0-9]))> */
func() bool {
position510, tokenIndex510 := position, tokenIndex
{
position511 := position
{
position512, tokenIndex512 := position, tokenIndex
if buffer[position] != rune('Z') {
goto l513
}
position++
goto l512
l513:
position, tokenIndex = position512, tokenIndex512
if buffer[position] != rune('-') {
goto l514
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l514
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l514
}
position++
if buffer[position] != rune(':') {
goto l514
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l514
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l514
}
position++
goto l512
l514:
position, tokenIndex = position512, tokenIndex512
if buffer[position] != rune('+') {
goto l510
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l510
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l510
}
position++
if buffer[position] != rune(':') {
goto l510
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l510
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l510
}
position++
}
l512:
add(ruletz, position511)
}
return true
l510:
position, tokenIndex = position510, tokenIndex510
return false
},
/* 38 iso8601 <- <([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] ':' [0-9] [0-9] <tz>)> */
nil,
/* 39 iso8601nano <- <([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] ':' [0-9] [0-9] '.' [0-9]+ <tz>)> */
nil,
/* 40 timestampbasicfmt <- <(iso8601nano / iso8601)> */
func() bool {
position517, tokenIndex517 := position, tokenIndex
{
position518 := position
{
position519, tokenIndex519 := position, tokenIndex
{
position521 := position
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l520
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l520
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l520
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l520
}
position++
if buffer[position] != rune('-') {
goto l520
}
position++
{
position522, tokenIndex522 := position, tokenIndex
if buffer[position] != rune('0') {
goto l523
}
position++
goto l522
l523:
position, tokenIndex = position522, tokenIndex522
if buffer[position] != rune('1') {
goto l520
}
position++
}
l522:
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l520
}
position++
if buffer[position] != rune('-') {
goto l520
}
position++
if c := buffer[position]; c < rune('0') || c > rune('3') {
goto l520
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l520
}
position++
if buffer[position] != rune('T') {
goto l520
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l520
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l520
}
position++
if buffer[position] != rune(':') {
goto l520
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l520
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l520
}
position++
if buffer[position] != rune(':') {
goto l520
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l520
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l520
}
position++
if buffer[position] != rune('.') {
goto l520
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l520
}
position++
l524:
{
position525, tokenIndex525 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l525
}
position++
goto l524
l525:
position, tokenIndex = position525, tokenIndex525
}
{
position526 := position
if !_rules[ruletz]() {
goto l520
}
add(rulePegText, position526)
}
add(ruleiso8601nano, position521)
}
goto l519
l520:
position, tokenIndex = position519, tokenIndex519
{
position527 := position
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l517
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l517
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l517
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l517
}
position++
if buffer[position] != rune('-') {
goto l517
}
position++
{
position528, tokenIndex528 := position, tokenIndex
if buffer[position] != rune('0') {
goto l529
}
position++
goto l528
l529:
position, tokenIndex = position528, tokenIndex528
if buffer[position] != rune('1') {
goto l517
}
position++
}
l528:
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l517
}
position++
if buffer[position] != rune('-') {
goto l517
}
position++
if c := buffer[position]; c < rune('0') || c > rune('3') {
goto l517
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l517
}
position++
if buffer[position] != rune('T') {
goto l517
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l517
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l517
}
position++
if buffer[position] != rune(':') {
goto l517
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l517
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l517
}
position++
if buffer[position] != rune(':') {
goto l517
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l517
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l517
}
position++
{
position530 := position
if !_rules[ruletz]() {
goto l517
}
add(rulePegText, position530)
}
add(ruleiso8601, position527)
}
}
l519:
add(ruletimestampbasicfmt, position518)
}
return true
l517:
position, tokenIndex = position517, tokenIndex517
return false
},
/* 41 timestampfmt <- <(('"' <timestampbasicfmt> '"') / ('\'' <timestampbasicfmt> '\'') / <timestampbasicfmt>)> */
func() bool {
position531, tokenIndex531 := position, tokenIndex
{
position532 := position
{
position533, tokenIndex533 := position, tokenIndex
if buffer[position] != rune('"') {
goto l534
}
position++
{
position535 := position
if !_rules[ruletimestampbasicfmt]() {
goto l534
}
add(rulePegText, position535)
}
if buffer[position] != rune('"') {
goto l534
}
position++
goto l533
l534:
position, tokenIndex = position533, tokenIndex533
if buffer[position] != rune('\'') {
goto l536
}
position++
{
position537 := position
if !_rules[ruletimestampbasicfmt]() {
goto l536
}
add(rulePegText, position537)
}
if buffer[position] != rune('\'') {
goto l536
}
position++
goto l533
l536:
position, tokenIndex = position533, tokenIndex533
{
position538 := position
if !_rules[ruletimestampbasicfmt]() {
goto l531
}
add(rulePegText, position538)
}
}
l533:
add(ruletimestampfmt, position532)
}
return true
l531:
position, tokenIndex = position531, tokenIndex531
return false
},
/* 42 timebasicfmt <- <([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 {
position539, tokenIndex539 := position, tokenIndex
{
position540 := position
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l539
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l539
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l539
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l539
}
position++
if buffer[position] != rune('-') {
goto l539
}
position++
{
position541, tokenIndex541 := position, tokenIndex
if buffer[position] != rune('0') {
goto l542
}
position++
goto l541
l542:
position, tokenIndex = position541, tokenIndex541
if buffer[position] != rune('1') {
goto l539
}
position++
}
l541:
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l539
}
position++
if buffer[position] != rune('-') {
goto l539
}
position++
if c := buffer[position]; c < rune('0') || c > rune('3') {
goto l539
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l539
}
position++
if buffer[position] != rune('T') {
goto l539
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l539
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l539
}
position++
if buffer[position] != rune(':') {
goto l539
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l539
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l539
}
position++
add(ruletimebasicfmt, position540)
}
return true
l539:
position, tokenIndex = position539, tokenIndex539
return false
},
/* 43 timefmt <- <(('"' <timebasicfmt> '"') / ('\'' <timebasicfmt> '\'') / <timebasicfmt>)> */
func() bool {
position543, tokenIndex543 := position, tokenIndex
{
position544 := position
{
position545, tokenIndex545 := position, tokenIndex
if buffer[position] != rune('"') {
goto l546
}
position++
{
position547 := position
if !_rules[ruletimebasicfmt]() {
goto l546
}
add(rulePegText, position547)
}
if buffer[position] != rune('"') {
goto l546
}
position++
goto l545
l546:
position, tokenIndex = position545, tokenIndex545
if buffer[position] != rune('\'') {
goto l548
}
position++
{
position549 := position
if !_rules[ruletimebasicfmt]() {
goto l548
}
add(rulePegText, position549)
}
if buffer[position] != rune('\'') {
goto l548
}
position++
goto l545
l548:
position, tokenIndex = position545, tokenIndex545
{
position550 := position
if !_rules[ruletimebasicfmt]() {
goto l543
}
add(rulePegText, position550)
}
}
l545:
add(ruletimefmt, position544)
}
return true
l543:
position, tokenIndex = position543, tokenIndex543
return false
},
/* 44 time <- <(<timefmt> Action66)> */
nil,
/* 46 Action0 <- <{p.startCall("Set")}> */
nil,
/* 47 Action1 <- <{p.endCall()}> */
nil,
/* 48 Action2 <- <{p.startCall("Clear")}> */
nil,
/* 49 Action3 <- <{p.endCall()}> */
nil,
/* 50 Action4 <- <{p.startCall("Apply")}> */
nil,
/* 51 Action5 <- <{p.endCall()}> */
nil,
/* 52 Action6 <- <{p.startCall("ClearRow")}> */
nil,
/* 53 Action7 <- <{p.endCall()}> */
nil,
/* 54 Action8 <- <{p.startCall("Store")}> */
nil,
/* 55 Action9 <- <{p.endCall()}> */
nil,
/* 56 Action10 <- <{p.startCall("TopN")}> */
nil,
/* 57 Action11 <- <{p.endCall()}> */
nil,
/* 58 Action12 <- <{p.startCall("TopK")}> */
nil,
/* 59 Action13 <- <{p.endCall()}> */
nil,
/* 60 Action14 <- <{p.startCall("Percentile")}> */
nil,
/* 61 Action15 <- <{p.endCall()}> */
nil,
/* 62 Action16 <- <{p.startCall("Rows")}> */
nil,
/* 63 Action17 <- <{p.endCall()}> */
nil,
/* 64 Action18 <- <{p.startCall("Min")}> */
nil,
/* 65 Action19 <- <{p.endCall()}> */
nil,
/* 66 Action20 <- <{p.startCall("Max")}> */
nil,
/* 67 Action21 <- <{p.endCall()}> */
nil,
/* 68 Action22 <- <{p.startCall("Sum")}> */
nil,
/* 69 Action23 <- <{p.endCall()}> */
nil,
/* 70 Action24 <- <{p.startCall("Range")}> */
nil,
/* 71 Action25 <- <{p.addField("from")}> */
nil,
/* 72 Action26 <- <{p.addVal(text)}> */
nil,
/* 73 Action27 <- <{p.addField("to")}> */
nil,
/* 74 Action28 <- <{p.addVal(text)}> */
nil,
/* 75 Action29 <- <{p.endCall()}> */
nil,
nil,
/* 77 Action30 <- <{ p.startCall(text) }> */
nil,
/* 78 Action31 <- <{ p.endCall() }> */
nil,
/* 79 Action32 <- <{ p.addPosStr("_ivy", text) }> */
nil,
/* 80 Action33 <- <{ p.addPosStr("_ivyReduce", text) }> */
nil,
/* 81 Action34 <- <{ p.addBTWN() }> */
nil,
/* 82 Action35 <- <{ p.addLTE() }> */
nil,
/* 83 Action36 <- <{ p.addGTE() }> */
nil,
/* 84 Action37 <- <{ p.addEQ() }> */
nil,
/* 85 Action38 <- <{ p.addNEQ() }> */
nil,
/* 86 Action39 <- <{ p.addLT() }> */
nil,
/* 87 Action40 <- <{ p.addGT() }> */
nil,
/* 88 Action41 <- <{p.startConditional()}> */
nil,
/* 89 Action42 <- <{p.endConditional()}> */
nil,
/* 90 Action43 <- <{ p.condAddTimestamp(text) }> */
nil,
/* 91 Action44 <- <{p.condAdd(text)}> */
nil,
/* 92 Action45 <- <{p.condAdd(text)}> */
nil,
/* 93 Action46 <- <{p.condAdd(text)}> */
nil,
/* 94 Action47 <- <{ p.startList() }> */
nil,
/* 95 Action48 <- <{ p.endList() }> */
nil,
/* 96 Action49 <- <{ p.addVal(nil) }> */
nil,
/* 97 Action50 <- <{ p.addVal(true) }> */
nil,
/* 98 Action51 <- <{ p.addVal(false) }> */
nil,
/* 99 Action52 <- <{ p.addVal(NewVariable(text)) }> */
nil,
/* 100 Action53 <- <{ p.addVal(text) }> */
nil,
/* 101 Action54 <- <{ p.addTimestampVal(text) }> */
nil,
/* 102 Action55 <- <{ p.addNumVal(text) }> */
nil,
/* 103 Action56 <- <{ p.startCall(text) }> */
nil,
/* 104 Action57 <- <{ p.addVal(p.endCall()) }> */
nil,
/* 105 Action58 <- <{ p.addVal(text) }> */
nil,
/* 106 Action59 <- <{ p.addVal(text) }> */
nil,
/* 107 Action60 <- <{ p.addVal(text) }> */
nil,
/* 108 Action61 <- <{ p.addField(text) }> */
nil,
/* 109 Action62 <- <{ p.addPosStr("_field", text) }> */
nil,
/* 110 Action63 <- <{p.addPosNum("_col", text)}> */
nil,
/* 111 Action64 <- <{p.addPosStr("_col", text)}> */
nil,
/* 112 Action65 <- <{p.addPosStr("_col", text)}> */
nil,
/* 113 Action66 <- <{p.addPosStr("_timestamp", text)}> */
nil,
}
p.rules = _rules
return nil
}