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) / ( 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 <- <('"'? '"' Action32)> */ nil, /* 4 ivyprogram2 <- <('"'? '"' 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 <- <( sp Action43)> */ nil, /* 12 condint <- <( 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 <- <( 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) / ('$' Action52) / (timefmt Action53) / (timestampfmt Action54) / ( Action55) / ( 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' '=')? 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 <- <(( 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] )> */ 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]+ )> */ 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 <- <(('"' '"') / ('\'' '\'') / )> */ 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 <- <(('"' '"') / ('\'' '\'') / )> */ 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 <- <( 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 }