mirror of
https://github.com/featurebasedb/featurebase.git
synced 2026-09-06 00:25:55 +00:00
This modifies the parser to properly "unquote" incoming strings. So if a string comes in double or single quoted, we approximately follow Go rules for removing the quotes and processing escape sequences. The differences from Go are: 1. we only support backslash, quote, tab and newline escape sequenences. 2. Single quoted strings are supported and work just like double quoted strings. 3. The peg parser won't actually accept backquoted strings (I don't think) Fixes: #411
3673 lines
79 KiB
Go
3673 lines
79 KiB
Go
package pql
|
|
|
|
// Code generated by peg -inline pql.peg DO NOT EDIT.
|
|
|
|
import (
|
|
"fmt"
|
|
"io"
|
|
"os"
|
|
"sort"
|
|
"strconv"
|
|
)
|
|
|
|
const endSymbol rune = 1114112
|
|
|
|
/* The rule types inferred from the grammar are below. */
|
|
type pegRule uint8
|
|
|
|
const (
|
|
ruleUnknown pegRule = iota
|
|
ruleCalls
|
|
ruleCall
|
|
ruleallargs
|
|
rulefargs
|
|
rulefarg
|
|
ruledargs
|
|
ruledarg
|
|
ruleCOND
|
|
ruleconditional
|
|
rulecondint
|
|
rulecondLT
|
|
rulecondfield
|
|
ruledvalue
|
|
rulefvalue
|
|
ruledlist
|
|
ruleflist
|
|
ruleditem
|
|
rulefitem
|
|
ruleitema
|
|
ruleitemb
|
|
rulefloat
|
|
ruledecimal
|
|
ruledoublequotedstring
|
|
rulesinglequotedstring
|
|
rulefieldExpr
|
|
rulefield
|
|
rulereserved
|
|
ruleposfield
|
|
ruleuint
|
|
rulecol
|
|
rulerow
|
|
ruleopen
|
|
ruleclose
|
|
rulesp
|
|
rulecomma
|
|
rulelbrack
|
|
rulerbrack
|
|
ruleIDENT
|
|
ruletimestampbasicfmt
|
|
ruletimestampfmt
|
|
ruletimestamp
|
|
ruleAction0
|
|
ruleAction1
|
|
ruleAction2
|
|
ruleAction3
|
|
ruleAction4
|
|
ruleAction5
|
|
ruleAction6
|
|
ruleAction7
|
|
ruleAction8
|
|
ruleAction9
|
|
ruleAction10
|
|
ruleAction11
|
|
ruleAction12
|
|
ruleAction13
|
|
ruleAction14
|
|
ruleAction15
|
|
ruleAction16
|
|
ruleAction17
|
|
ruleAction18
|
|
ruleAction19
|
|
ruleAction20
|
|
ruleAction21
|
|
rulePegText
|
|
ruleAction22
|
|
ruleAction23
|
|
ruleAction24
|
|
ruleAction25
|
|
ruleAction26
|
|
ruleAction27
|
|
ruleAction28
|
|
ruleAction29
|
|
ruleAction30
|
|
ruleAction31
|
|
ruleAction32
|
|
ruleAction33
|
|
ruleAction34
|
|
ruleAction35
|
|
ruleAction36
|
|
ruleAction37
|
|
ruleAction38
|
|
ruleAction39
|
|
ruleAction40
|
|
ruleAction41
|
|
ruleAction42
|
|
ruleAction43
|
|
ruleAction44
|
|
ruleAction45
|
|
ruleAction46
|
|
ruleAction47
|
|
ruleAction48
|
|
ruleAction49
|
|
ruleAction50
|
|
ruleAction51
|
|
ruleAction52
|
|
ruleAction53
|
|
ruleAction54
|
|
ruleAction55
|
|
ruleAction56
|
|
ruleAction57
|
|
ruleAction58
|
|
ruleAction59
|
|
ruleAction60
|
|
ruleAction61
|
|
)
|
|
|
|
var rul3s = [...]string{
|
|
"Unknown",
|
|
"Calls",
|
|
"Call",
|
|
"allargs",
|
|
"fargs",
|
|
"farg",
|
|
"dargs",
|
|
"darg",
|
|
"COND",
|
|
"conditional",
|
|
"condint",
|
|
"condLT",
|
|
"condfield",
|
|
"dvalue",
|
|
"fvalue",
|
|
"dlist",
|
|
"flist",
|
|
"ditem",
|
|
"fitem",
|
|
"itema",
|
|
"itemb",
|
|
"float",
|
|
"decimal",
|
|
"doublequotedstring",
|
|
"singlequotedstring",
|
|
"fieldExpr",
|
|
"field",
|
|
"reserved",
|
|
"posfield",
|
|
"uint",
|
|
"col",
|
|
"row",
|
|
"open",
|
|
"close",
|
|
"sp",
|
|
"comma",
|
|
"lbrack",
|
|
"rbrack",
|
|
"IDENT",
|
|
"timestampbasicfmt",
|
|
"timestampfmt",
|
|
"timestamp",
|
|
"Action0",
|
|
"Action1",
|
|
"Action2",
|
|
"Action3",
|
|
"Action4",
|
|
"Action5",
|
|
"Action6",
|
|
"Action7",
|
|
"Action8",
|
|
"Action9",
|
|
"Action10",
|
|
"Action11",
|
|
"Action12",
|
|
"Action13",
|
|
"Action14",
|
|
"Action15",
|
|
"Action16",
|
|
"Action17",
|
|
"Action18",
|
|
"Action19",
|
|
"Action20",
|
|
"Action21",
|
|
"PegText",
|
|
"Action22",
|
|
"Action23",
|
|
"Action24",
|
|
"Action25",
|
|
"Action26",
|
|
"Action27",
|
|
"Action28",
|
|
"Action29",
|
|
"Action30",
|
|
"Action31",
|
|
"Action32",
|
|
"Action33",
|
|
"Action34",
|
|
"Action35",
|
|
"Action36",
|
|
"Action37",
|
|
"Action38",
|
|
"Action39",
|
|
"Action40",
|
|
"Action41",
|
|
"Action42",
|
|
"Action43",
|
|
"Action44",
|
|
"Action45",
|
|
"Action46",
|
|
"Action47",
|
|
"Action48",
|
|
"Action49",
|
|
"Action50",
|
|
"Action51",
|
|
"Action52",
|
|
"Action53",
|
|
"Action54",
|
|
"Action55",
|
|
"Action56",
|
|
"Action57",
|
|
"Action58",
|
|
"Action59",
|
|
"Action60",
|
|
"Action61",
|
|
}
|
|
|
|
type token32 struct {
|
|
pegRule
|
|
begin, end uint32
|
|
}
|
|
|
|
func (t *token32) String() string {
|
|
return fmt.Sprintf("\x1B[34m%v\x1B[m %v %v", rul3s[t.pegRule], t.begin, t.end)
|
|
}
|
|
|
|
type node32 struct {
|
|
token32
|
|
up, next *node32
|
|
}
|
|
|
|
func (node *node32) print(w io.Writer, pretty bool, buffer string) {
|
|
var print func(node *node32, depth int)
|
|
print = func(node *node32, depth int) {
|
|
for node != nil {
|
|
for c := 0; c < depth; c++ {
|
|
fmt.Fprintf(w, " ")
|
|
}
|
|
rule := rul3s[node.pegRule]
|
|
quote := strconv.Quote(string(([]rune(buffer)[node.begin:node.end])))
|
|
if !pretty {
|
|
fmt.Fprintf(w, "%v %v\n", rule, quote)
|
|
} else {
|
|
fmt.Fprintf(w, "\x1B[34m%v\x1B[m %v\n", rule, quote)
|
|
}
|
|
if node.up != nil {
|
|
print(node.up, depth+1)
|
|
}
|
|
node = node.next
|
|
}
|
|
}
|
|
print(node, 0)
|
|
}
|
|
|
|
func (node *node32) Print(w io.Writer, buffer string) {
|
|
node.print(w, false, buffer)
|
|
}
|
|
|
|
func (node *node32) PrettyPrint(w io.Writer, buffer string) {
|
|
node.print(w, true, buffer)
|
|
}
|
|
|
|
type tokens32 struct {
|
|
tree []token32
|
|
}
|
|
|
|
func (t *tokens32) Trim(length uint32) {
|
|
t.tree = t.tree[:length]
|
|
}
|
|
|
|
func (t *tokens32) Print() {
|
|
for _, token := range t.tree {
|
|
fmt.Println(token.String())
|
|
}
|
|
}
|
|
|
|
func (t *tokens32) AST() *node32 {
|
|
type element struct {
|
|
node *node32
|
|
down *element
|
|
}
|
|
tokens := t.Tokens()
|
|
var stack *element
|
|
for _, token := range tokens {
|
|
if token.begin == token.end {
|
|
continue
|
|
}
|
|
node := &node32{token32: token}
|
|
for stack != nil && stack.node.begin >= token.begin && stack.node.end <= token.end {
|
|
stack.node.next = node.up
|
|
node.up = stack.node
|
|
stack = stack.down
|
|
}
|
|
stack = &element{node: node, down: stack}
|
|
}
|
|
if stack != nil {
|
|
return stack.node
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (t *tokens32) PrintSyntaxTree(buffer string) {
|
|
t.AST().Print(os.Stdout, buffer)
|
|
}
|
|
|
|
func (t *tokens32) WriteSyntaxTree(w io.Writer, buffer string) {
|
|
t.AST().Print(w, buffer)
|
|
}
|
|
|
|
func (t *tokens32) PrettyPrintSyntaxTree(buffer string) {
|
|
t.AST().PrettyPrint(os.Stdout, buffer)
|
|
}
|
|
|
|
func (t *tokens32) Add(rule pegRule, begin, end, index uint32) {
|
|
tree, i := t.tree, int(index)
|
|
if i >= len(tree) {
|
|
t.tree = append(tree, token32{pegRule: rule, begin: begin, end: end})
|
|
return
|
|
}
|
|
tree[i] = token32{pegRule: rule, begin: begin, end: end}
|
|
}
|
|
|
|
func (t *tokens32) Tokens() []token32 {
|
|
return t.tree
|
|
}
|
|
|
|
type PQL struct {
|
|
Query
|
|
|
|
Buffer string
|
|
buffer []rune
|
|
rules [105]func() bool
|
|
parse func(rule ...int) error
|
|
reset func()
|
|
Pretty bool
|
|
tokens32
|
|
}
|
|
|
|
func (p *PQL) Parse(rule ...int) error {
|
|
return p.parse(rule...)
|
|
}
|
|
|
|
func (p *PQL) Reset() {
|
|
p.reset()
|
|
}
|
|
|
|
type textPosition struct {
|
|
line, symbol int
|
|
}
|
|
|
|
type textPositionMap map[int]textPosition
|
|
|
|
func translatePositions(buffer []rune, positions []int) textPositionMap {
|
|
length, translations, j, line, symbol := len(positions), make(textPositionMap, len(positions)), 0, 1, 0
|
|
sort.Ints(positions)
|
|
|
|
search:
|
|
for i, c := range buffer {
|
|
if c == '\n' {
|
|
line, symbol = line+1, 0
|
|
} else {
|
|
symbol++
|
|
}
|
|
if i == positions[j] {
|
|
translations[positions[j]] = textPosition{line, symbol}
|
|
for j++; j < length; j++ {
|
|
if i != positions[j] {
|
|
continue search
|
|
}
|
|
}
|
|
break search
|
|
}
|
|
}
|
|
|
|
return translations
|
|
}
|
|
|
|
type parseError struct {
|
|
p *PQL
|
|
max token32
|
|
}
|
|
|
|
func (e *parseError) Error() string {
|
|
tokens, err := []token32{e.max}, "\n"
|
|
positions, p := make([]int, 2*len(tokens)), 0
|
|
for _, token := range tokens {
|
|
positions[p], p = int(token.begin), p+1
|
|
positions[p], p = int(token.end), p+1
|
|
}
|
|
translations := translatePositions(e.p.buffer, positions)
|
|
format := "parse error near %v (line %v symbol %v - line %v symbol %v):\n%v\n"
|
|
if e.p.Pretty {
|
|
format = "parse error near \x1B[34m%v\x1B[m (line %v symbol %v - line %v symbol %v):\n%v\n"
|
|
}
|
|
for _, token := range tokens {
|
|
begin, end := int(token.begin), int(token.end)
|
|
err += fmt.Sprintf(format,
|
|
rul3s[token.pegRule],
|
|
translations[begin].line, translations[begin].symbol,
|
|
translations[end].line, translations[end].symbol,
|
|
strconv.Quote(string(e.p.buffer[begin:end])))
|
|
}
|
|
|
|
return err
|
|
}
|
|
|
|
func (p *PQL) PrintSyntaxTree() {
|
|
if p.Pretty {
|
|
p.tokens32.PrettyPrintSyntaxTree(p.Buffer)
|
|
} else {
|
|
p.tokens32.PrintSyntaxTree(p.Buffer)
|
|
}
|
|
}
|
|
|
|
func (p *PQL) WriteSyntaxTree(w io.Writer) {
|
|
p.tokens32.WriteSyntaxTree(w, p.Buffer)
|
|
}
|
|
|
|
func (p *PQL) Execute() {
|
|
buffer, _buffer, text, begin, end := p.Buffer, p.buffer, "", 0, 0
|
|
for _, token := range p.Tokens() {
|
|
switch token.pegRule {
|
|
|
|
case rulePegText:
|
|
begin, end = int(token.begin), int(token.end)
|
|
text = string(_buffer[begin:end])
|
|
|
|
case ruleAction0:
|
|
p.startCall("Set")
|
|
case ruleAction1:
|
|
p.endCall()
|
|
case ruleAction2:
|
|
p.startCall("SetRowAttrs")
|
|
case ruleAction3:
|
|
p.endCall()
|
|
case ruleAction4:
|
|
p.startCall("SetColumnAttrs")
|
|
case ruleAction5:
|
|
p.endCall()
|
|
case ruleAction6:
|
|
p.startCall("Clear")
|
|
case ruleAction7:
|
|
p.endCall()
|
|
case ruleAction8:
|
|
p.startCall("ClearRow")
|
|
case ruleAction9:
|
|
p.endCall()
|
|
case ruleAction10:
|
|
p.startCall("Store")
|
|
case ruleAction11:
|
|
p.endCall()
|
|
case ruleAction12:
|
|
p.startCall("TopN")
|
|
case ruleAction13:
|
|
p.endCall()
|
|
case ruleAction14:
|
|
p.startCall("Rows")
|
|
case ruleAction15:
|
|
p.endCall()
|
|
case ruleAction16:
|
|
p.startCall("Range")
|
|
case ruleAction17:
|
|
p.addField("from")
|
|
case ruleAction18:
|
|
p.addVal(buffer[begin:end])
|
|
case ruleAction19:
|
|
p.addField("to")
|
|
case ruleAction20:
|
|
p.addVal(buffer[begin:end])
|
|
case ruleAction21:
|
|
p.endCall()
|
|
case ruleAction22:
|
|
p.startCall(buffer[begin:end])
|
|
case ruleAction23:
|
|
p.endCall()
|
|
case ruleAction24:
|
|
p.addBTWN()
|
|
case ruleAction25:
|
|
p.addLTE()
|
|
case ruleAction26:
|
|
p.addGTE()
|
|
case ruleAction27:
|
|
p.addEQ()
|
|
case ruleAction28:
|
|
p.addNEQ()
|
|
case ruleAction29:
|
|
p.addLT()
|
|
case ruleAction30:
|
|
p.addGT()
|
|
case ruleAction31:
|
|
p.startConditional()
|
|
case ruleAction32:
|
|
p.endConditional()
|
|
case ruleAction33:
|
|
p.condAdd(buffer[begin:end])
|
|
case ruleAction34:
|
|
p.condAdd(buffer[begin:end])
|
|
case ruleAction35:
|
|
p.condAdd(buffer[begin:end])
|
|
case ruleAction36:
|
|
p.startList()
|
|
case ruleAction37:
|
|
p.endList()
|
|
case ruleAction38:
|
|
p.startList()
|
|
case ruleAction39:
|
|
p.endList()
|
|
case ruleAction40:
|
|
p.addVal(nil)
|
|
case ruleAction41:
|
|
p.addVal(true)
|
|
case ruleAction42:
|
|
p.addVal(false)
|
|
case ruleAction43:
|
|
p.addVal(buffer[begin:end])
|
|
case ruleAction44:
|
|
p.startCall(buffer[begin:end])
|
|
case ruleAction45:
|
|
p.addVal(p.endCall())
|
|
case ruleAction46:
|
|
p.addVal(buffer[begin:end])
|
|
case ruleAction47:
|
|
p.addVal(buffer[begin:end])
|
|
case ruleAction48:
|
|
p.addVal(buffer[begin:end])
|
|
case ruleAction49:
|
|
p.addNumVal(buffer[begin:end], true)
|
|
case ruleAction50:
|
|
p.addNumVal(buffer[begin:end], true)
|
|
case ruleAction51:
|
|
p.addNumVal(buffer[begin:end], false)
|
|
case ruleAction52:
|
|
p.addNumVal(buffer[begin:end], false)
|
|
case ruleAction53:
|
|
p.addField(buffer[begin:end])
|
|
case ruleAction54:
|
|
p.addPosStr("_field", buffer[begin:end])
|
|
case ruleAction55:
|
|
p.addPosNum("_col", buffer[begin:end])
|
|
case ruleAction56:
|
|
p.addPosStr("_col", buffer[begin:end])
|
|
case ruleAction57:
|
|
p.addPosStr("_col", buffer[begin:end])
|
|
case ruleAction58:
|
|
p.addPosNum("_row", buffer[begin:end])
|
|
case ruleAction59:
|
|
p.addPosStr("_row", buffer[begin:end])
|
|
case ruleAction60:
|
|
p.addPosStr("_row", buffer[begin:end])
|
|
case ruleAction61:
|
|
p.addPosStr("_timestamp", buffer[begin:end])
|
|
|
|
}
|
|
}
|
|
_, _, _, _, _ = 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' 'e' 't' Action0 open col comma dargs (comma timestamp)? close Action1) / ('S' 'e' 't' 'R' 'o' 'w' 'A' 't' 't' 'r' 's' Action2 open posfield comma row comma fargs close Action3) / ('S' 'e' 't' 'C' 'o' 'l' 'u' 'm' 'n' 'A' 't' 't' 'r' 's' Action4 open col comma fargs close Action5) / ('C' 'l' 'e' 'a' 'r' Action6 open col comma dargs close Action7) / ('C' 'l' 'e' 'a' 'r' 'R' 'o' 'w' Action8 open darg close Action9) / ('S' 't' 'o' 'r' 'e' Action10 open Call comma darg close Action11) / ('T' 'o' 'p' 'N' Action12 open posfield (comma allargs)? close Action13) / ('R' 'o' 'w' 's' Action14 open posfield (comma allargs)? close Action15) / ('R' 'a' 'n' 'g' 'e' Action16 open field sp '=' sp fvalue comma ('f' 'r' 'o' 'm' '=')? Action17 timestampfmt Action18 comma ('t' 'o' '=')? sp Action19 timestampfmt Action20 close Action21) / (<IDENT> Action22 open allargs comma? close Action23))> */
|
|
func() bool {
|
|
position5, tokenIndex5 := position, tokenIndex
|
|
{
|
|
position6 := position
|
|
{
|
|
position7, tokenIndex7 := position, tokenIndex
|
|
if buffer[position] != rune('S') {
|
|
goto l8
|
|
}
|
|
position++
|
|
if buffer[position] != rune('e') {
|
|
goto l8
|
|
}
|
|
position++
|
|
if buffer[position] != rune('t') {
|
|
goto l8
|
|
}
|
|
position++
|
|
{
|
|
add(ruleAction0, position)
|
|
}
|
|
if !_rules[ruleopen]() {
|
|
goto l8
|
|
}
|
|
if !_rules[rulecol]() {
|
|
goto l8
|
|
}
|
|
if !_rules[rulecomma]() {
|
|
goto l8
|
|
}
|
|
if !_rules[ruledargs]() {
|
|
goto l8
|
|
}
|
|
{
|
|
position10, tokenIndex10 := position, tokenIndex
|
|
if !_rules[rulecomma]() {
|
|
goto l10
|
|
}
|
|
{
|
|
position12 := position
|
|
{
|
|
position13 := position
|
|
if !_rules[ruletimestampfmt]() {
|
|
goto l10
|
|
}
|
|
add(rulePegText, position13)
|
|
}
|
|
{
|
|
add(ruleAction61, position)
|
|
}
|
|
add(ruletimestamp, position12)
|
|
}
|
|
goto l11
|
|
l10:
|
|
position, tokenIndex = position10, tokenIndex10
|
|
}
|
|
l11:
|
|
if !_rules[ruleclose]() {
|
|
goto l8
|
|
}
|
|
{
|
|
add(ruleAction1, position)
|
|
}
|
|
goto l7
|
|
l8:
|
|
position, tokenIndex = position7, tokenIndex7
|
|
if buffer[position] != rune('S') {
|
|
goto l16
|
|
}
|
|
position++
|
|
if buffer[position] != rune('e') {
|
|
goto l16
|
|
}
|
|
position++
|
|
if buffer[position] != rune('t') {
|
|
goto l16
|
|
}
|
|
position++
|
|
if buffer[position] != rune('R') {
|
|
goto l16
|
|
}
|
|
position++
|
|
if buffer[position] != rune('o') {
|
|
goto l16
|
|
}
|
|
position++
|
|
if buffer[position] != rune('w') {
|
|
goto l16
|
|
}
|
|
position++
|
|
if buffer[position] != rune('A') {
|
|
goto l16
|
|
}
|
|
position++
|
|
if buffer[position] != rune('t') {
|
|
goto l16
|
|
}
|
|
position++
|
|
if buffer[position] != rune('t') {
|
|
goto l16
|
|
}
|
|
position++
|
|
if buffer[position] != rune('r') {
|
|
goto l16
|
|
}
|
|
position++
|
|
if buffer[position] != rune('s') {
|
|
goto l16
|
|
}
|
|
position++
|
|
{
|
|
add(ruleAction2, position)
|
|
}
|
|
if !_rules[ruleopen]() {
|
|
goto l16
|
|
}
|
|
if !_rules[ruleposfield]() {
|
|
goto l16
|
|
}
|
|
if !_rules[rulecomma]() {
|
|
goto l16
|
|
}
|
|
{
|
|
position18 := position
|
|
{
|
|
position19, tokenIndex19 := position, tokenIndex
|
|
{
|
|
position21 := position
|
|
if !_rules[ruleuint]() {
|
|
goto l20
|
|
}
|
|
add(rulePegText, position21)
|
|
}
|
|
{
|
|
add(ruleAction58, position)
|
|
}
|
|
goto l19
|
|
l20:
|
|
position, tokenIndex = position19, tokenIndex19
|
|
{
|
|
position24 := position
|
|
if buffer[position] != rune('\'') {
|
|
goto l23
|
|
}
|
|
position++
|
|
if !_rules[rulesinglequotedstring]() {
|
|
goto l23
|
|
}
|
|
if buffer[position] != rune('\'') {
|
|
goto l23
|
|
}
|
|
position++
|
|
add(rulePegText, position24)
|
|
}
|
|
{
|
|
add(ruleAction59, position)
|
|
}
|
|
goto l19
|
|
l23:
|
|
position, tokenIndex = position19, tokenIndex19
|
|
{
|
|
position26 := position
|
|
if buffer[position] != rune('"') {
|
|
goto l16
|
|
}
|
|
position++
|
|
if !_rules[ruledoublequotedstring]() {
|
|
goto l16
|
|
}
|
|
if buffer[position] != rune('"') {
|
|
goto l16
|
|
}
|
|
position++
|
|
add(rulePegText, position26)
|
|
}
|
|
{
|
|
add(ruleAction60, position)
|
|
}
|
|
}
|
|
l19:
|
|
add(rulerow, position18)
|
|
}
|
|
if !_rules[rulecomma]() {
|
|
goto l16
|
|
}
|
|
if !_rules[rulefargs]() {
|
|
goto l16
|
|
}
|
|
if !_rules[ruleclose]() {
|
|
goto l16
|
|
}
|
|
{
|
|
add(ruleAction3, position)
|
|
}
|
|
goto l7
|
|
l16:
|
|
position, tokenIndex = position7, tokenIndex7
|
|
if buffer[position] != rune('S') {
|
|
goto l29
|
|
}
|
|
position++
|
|
if buffer[position] != rune('e') {
|
|
goto l29
|
|
}
|
|
position++
|
|
if buffer[position] != rune('t') {
|
|
goto l29
|
|
}
|
|
position++
|
|
if buffer[position] != rune('C') {
|
|
goto l29
|
|
}
|
|
position++
|
|
if buffer[position] != rune('o') {
|
|
goto l29
|
|
}
|
|
position++
|
|
if buffer[position] != rune('l') {
|
|
goto l29
|
|
}
|
|
position++
|
|
if buffer[position] != rune('u') {
|
|
goto l29
|
|
}
|
|
position++
|
|
if buffer[position] != rune('m') {
|
|
goto l29
|
|
}
|
|
position++
|
|
if buffer[position] != rune('n') {
|
|
goto l29
|
|
}
|
|
position++
|
|
if buffer[position] != rune('A') {
|
|
goto l29
|
|
}
|
|
position++
|
|
if buffer[position] != rune('t') {
|
|
goto l29
|
|
}
|
|
position++
|
|
if buffer[position] != rune('t') {
|
|
goto l29
|
|
}
|
|
position++
|
|
if buffer[position] != rune('r') {
|
|
goto l29
|
|
}
|
|
position++
|
|
if buffer[position] != rune('s') {
|
|
goto l29
|
|
}
|
|
position++
|
|
{
|
|
add(ruleAction4, position)
|
|
}
|
|
if !_rules[ruleopen]() {
|
|
goto l29
|
|
}
|
|
if !_rules[rulecol]() {
|
|
goto l29
|
|
}
|
|
if !_rules[rulecomma]() {
|
|
goto l29
|
|
}
|
|
if !_rules[rulefargs]() {
|
|
goto l29
|
|
}
|
|
if !_rules[ruleclose]() {
|
|
goto l29
|
|
}
|
|
{
|
|
add(ruleAction5, position)
|
|
}
|
|
goto l7
|
|
l29:
|
|
position, tokenIndex = position7, tokenIndex7
|
|
if buffer[position] != rune('C') {
|
|
goto l32
|
|
}
|
|
position++
|
|
if buffer[position] != rune('l') {
|
|
goto l32
|
|
}
|
|
position++
|
|
if buffer[position] != rune('e') {
|
|
goto l32
|
|
}
|
|
position++
|
|
if buffer[position] != rune('a') {
|
|
goto l32
|
|
}
|
|
position++
|
|
if buffer[position] != rune('r') {
|
|
goto l32
|
|
}
|
|
position++
|
|
{
|
|
add(ruleAction6, position)
|
|
}
|
|
if !_rules[ruleopen]() {
|
|
goto l32
|
|
}
|
|
if !_rules[rulecol]() {
|
|
goto l32
|
|
}
|
|
if !_rules[rulecomma]() {
|
|
goto l32
|
|
}
|
|
if !_rules[ruledargs]() {
|
|
goto l32
|
|
}
|
|
if !_rules[ruleclose]() {
|
|
goto l32
|
|
}
|
|
{
|
|
add(ruleAction7, position)
|
|
}
|
|
goto l7
|
|
l32:
|
|
position, tokenIndex = position7, tokenIndex7
|
|
if buffer[position] != rune('C') {
|
|
goto l35
|
|
}
|
|
position++
|
|
if buffer[position] != rune('l') {
|
|
goto l35
|
|
}
|
|
position++
|
|
if buffer[position] != rune('e') {
|
|
goto l35
|
|
}
|
|
position++
|
|
if buffer[position] != rune('a') {
|
|
goto l35
|
|
}
|
|
position++
|
|
if buffer[position] != rune('r') {
|
|
goto l35
|
|
}
|
|
position++
|
|
if buffer[position] != rune('R') {
|
|
goto l35
|
|
}
|
|
position++
|
|
if buffer[position] != rune('o') {
|
|
goto l35
|
|
}
|
|
position++
|
|
if buffer[position] != rune('w') {
|
|
goto l35
|
|
}
|
|
position++
|
|
{
|
|
add(ruleAction8, position)
|
|
}
|
|
if !_rules[ruleopen]() {
|
|
goto l35
|
|
}
|
|
if !_rules[ruledarg]() {
|
|
goto l35
|
|
}
|
|
if !_rules[ruleclose]() {
|
|
goto l35
|
|
}
|
|
{
|
|
add(ruleAction9, position)
|
|
}
|
|
goto l7
|
|
l35:
|
|
position, tokenIndex = position7, tokenIndex7
|
|
if buffer[position] != rune('S') {
|
|
goto l38
|
|
}
|
|
position++
|
|
if buffer[position] != rune('t') {
|
|
goto l38
|
|
}
|
|
position++
|
|
if buffer[position] != rune('o') {
|
|
goto l38
|
|
}
|
|
position++
|
|
if buffer[position] != rune('r') {
|
|
goto l38
|
|
}
|
|
position++
|
|
if buffer[position] != rune('e') {
|
|
goto l38
|
|
}
|
|
position++
|
|
{
|
|
add(ruleAction10, position)
|
|
}
|
|
if !_rules[ruleopen]() {
|
|
goto l38
|
|
}
|
|
if !_rules[ruleCall]() {
|
|
goto l38
|
|
}
|
|
if !_rules[rulecomma]() {
|
|
goto l38
|
|
}
|
|
if !_rules[ruledarg]() {
|
|
goto l38
|
|
}
|
|
if !_rules[ruleclose]() {
|
|
goto l38
|
|
}
|
|
{
|
|
add(ruleAction11, position)
|
|
}
|
|
goto l7
|
|
l38:
|
|
position, tokenIndex = position7, tokenIndex7
|
|
if buffer[position] != rune('T') {
|
|
goto l41
|
|
}
|
|
position++
|
|
if buffer[position] != rune('o') {
|
|
goto l41
|
|
}
|
|
position++
|
|
if buffer[position] != rune('p') {
|
|
goto l41
|
|
}
|
|
position++
|
|
if buffer[position] != rune('N') {
|
|
goto l41
|
|
}
|
|
position++
|
|
{
|
|
add(ruleAction12, position)
|
|
}
|
|
if !_rules[ruleopen]() {
|
|
goto l41
|
|
}
|
|
if !_rules[ruleposfield]() {
|
|
goto l41
|
|
}
|
|
{
|
|
position43, tokenIndex43 := position, tokenIndex
|
|
if !_rules[rulecomma]() {
|
|
goto l43
|
|
}
|
|
if !_rules[ruleallargs]() {
|
|
goto l43
|
|
}
|
|
goto l44
|
|
l43:
|
|
position, tokenIndex = position43, tokenIndex43
|
|
}
|
|
l44:
|
|
if !_rules[ruleclose]() {
|
|
goto l41
|
|
}
|
|
{
|
|
add(ruleAction13, position)
|
|
}
|
|
goto l7
|
|
l41:
|
|
position, tokenIndex = position7, tokenIndex7
|
|
if buffer[position] != rune('R') {
|
|
goto l46
|
|
}
|
|
position++
|
|
if buffer[position] != rune('o') {
|
|
goto l46
|
|
}
|
|
position++
|
|
if buffer[position] != rune('w') {
|
|
goto l46
|
|
}
|
|
position++
|
|
if buffer[position] != rune('s') {
|
|
goto l46
|
|
}
|
|
position++
|
|
{
|
|
add(ruleAction14, position)
|
|
}
|
|
if !_rules[ruleopen]() {
|
|
goto l46
|
|
}
|
|
if !_rules[ruleposfield]() {
|
|
goto l46
|
|
}
|
|
{
|
|
position48, tokenIndex48 := position, tokenIndex
|
|
if !_rules[rulecomma]() {
|
|
goto l48
|
|
}
|
|
if !_rules[ruleallargs]() {
|
|
goto l48
|
|
}
|
|
goto l49
|
|
l48:
|
|
position, tokenIndex = position48, tokenIndex48
|
|
}
|
|
l49:
|
|
if !_rules[ruleclose]() {
|
|
goto l46
|
|
}
|
|
{
|
|
add(ruleAction15, position)
|
|
}
|
|
goto l7
|
|
l46:
|
|
position, tokenIndex = position7, tokenIndex7
|
|
if buffer[position] != rune('R') {
|
|
goto l51
|
|
}
|
|
position++
|
|
if buffer[position] != rune('a') {
|
|
goto l51
|
|
}
|
|
position++
|
|
if buffer[position] != rune('n') {
|
|
goto l51
|
|
}
|
|
position++
|
|
if buffer[position] != rune('g') {
|
|
goto l51
|
|
}
|
|
position++
|
|
if buffer[position] != rune('e') {
|
|
goto l51
|
|
}
|
|
position++
|
|
{
|
|
add(ruleAction16, position)
|
|
}
|
|
if !_rules[ruleopen]() {
|
|
goto l51
|
|
}
|
|
if !_rules[rulefield]() {
|
|
goto l51
|
|
}
|
|
if !_rules[rulesp]() {
|
|
goto l51
|
|
}
|
|
if buffer[position] != rune('=') {
|
|
goto l51
|
|
}
|
|
position++
|
|
if !_rules[rulesp]() {
|
|
goto l51
|
|
}
|
|
if !_rules[rulefvalue]() {
|
|
goto l51
|
|
}
|
|
if !_rules[rulecomma]() {
|
|
goto l51
|
|
}
|
|
{
|
|
position53, tokenIndex53 := position, tokenIndex
|
|
if buffer[position] != rune('f') {
|
|
goto l53
|
|
}
|
|
position++
|
|
if buffer[position] != rune('r') {
|
|
goto l53
|
|
}
|
|
position++
|
|
if buffer[position] != rune('o') {
|
|
goto l53
|
|
}
|
|
position++
|
|
if buffer[position] != rune('m') {
|
|
goto l53
|
|
}
|
|
position++
|
|
if buffer[position] != rune('=') {
|
|
goto l53
|
|
}
|
|
position++
|
|
goto l54
|
|
l53:
|
|
position, tokenIndex = position53, tokenIndex53
|
|
}
|
|
l54:
|
|
{
|
|
add(ruleAction17, position)
|
|
}
|
|
if !_rules[ruletimestampfmt]() {
|
|
goto l51
|
|
}
|
|
{
|
|
add(ruleAction18, position)
|
|
}
|
|
if !_rules[rulecomma]() {
|
|
goto l51
|
|
}
|
|
{
|
|
position57, tokenIndex57 := position, tokenIndex
|
|
if buffer[position] != rune('t') {
|
|
goto l57
|
|
}
|
|
position++
|
|
if buffer[position] != rune('o') {
|
|
goto l57
|
|
}
|
|
position++
|
|
if buffer[position] != rune('=') {
|
|
goto l57
|
|
}
|
|
position++
|
|
goto l58
|
|
l57:
|
|
position, tokenIndex = position57, tokenIndex57
|
|
}
|
|
l58:
|
|
if !_rules[rulesp]() {
|
|
goto l51
|
|
}
|
|
{
|
|
add(ruleAction19, position)
|
|
}
|
|
if !_rules[ruletimestampfmt]() {
|
|
goto l51
|
|
}
|
|
{
|
|
add(ruleAction20, position)
|
|
}
|
|
if !_rules[ruleclose]() {
|
|
goto l51
|
|
}
|
|
{
|
|
add(ruleAction21, position)
|
|
}
|
|
goto l7
|
|
l51:
|
|
position, tokenIndex = position7, tokenIndex7
|
|
{
|
|
position62 := position
|
|
if !_rules[ruleIDENT]() {
|
|
goto l5
|
|
}
|
|
add(rulePegText, position62)
|
|
}
|
|
{
|
|
add(ruleAction22, position)
|
|
}
|
|
if !_rules[ruleopen]() {
|
|
goto l5
|
|
}
|
|
if !_rules[ruleallargs]() {
|
|
goto l5
|
|
}
|
|
{
|
|
position64, tokenIndex64 := position, tokenIndex
|
|
if !_rules[rulecomma]() {
|
|
goto l64
|
|
}
|
|
goto l65
|
|
l64:
|
|
position, tokenIndex = position64, tokenIndex64
|
|
}
|
|
l65:
|
|
if !_rules[ruleclose]() {
|
|
goto l5
|
|
}
|
|
{
|
|
add(ruleAction23, position)
|
|
}
|
|
}
|
|
l7:
|
|
add(ruleCall, position6)
|
|
}
|
|
return true
|
|
l5:
|
|
position, tokenIndex = position5, tokenIndex5
|
|
return false
|
|
},
|
|
/* 2 allargs <- <((Call (comma Call)* (comma dargs)?) / dargs / sp)> */
|
|
func() bool {
|
|
position67, tokenIndex67 := position, tokenIndex
|
|
{
|
|
position68 := position
|
|
{
|
|
position69, tokenIndex69 := position, tokenIndex
|
|
if !_rules[ruleCall]() {
|
|
goto l70
|
|
}
|
|
l71:
|
|
{
|
|
position72, tokenIndex72 := position, tokenIndex
|
|
if !_rules[rulecomma]() {
|
|
goto l72
|
|
}
|
|
if !_rules[ruleCall]() {
|
|
goto l72
|
|
}
|
|
goto l71
|
|
l72:
|
|
position, tokenIndex = position72, tokenIndex72
|
|
}
|
|
{
|
|
position73, tokenIndex73 := position, tokenIndex
|
|
if !_rules[rulecomma]() {
|
|
goto l73
|
|
}
|
|
if !_rules[ruledargs]() {
|
|
goto l73
|
|
}
|
|
goto l74
|
|
l73:
|
|
position, tokenIndex = position73, tokenIndex73
|
|
}
|
|
l74:
|
|
goto l69
|
|
l70:
|
|
position, tokenIndex = position69, tokenIndex69
|
|
if !_rules[ruledargs]() {
|
|
goto l75
|
|
}
|
|
goto l69
|
|
l75:
|
|
position, tokenIndex = position69, tokenIndex69
|
|
if !_rules[rulesp]() {
|
|
goto l67
|
|
}
|
|
}
|
|
l69:
|
|
add(ruleallargs, position68)
|
|
}
|
|
return true
|
|
l67:
|
|
position, tokenIndex = position67, tokenIndex67
|
|
return false
|
|
},
|
|
/* 3 fargs <- <(farg (comma fargs)? sp)> */
|
|
func() bool {
|
|
position76, tokenIndex76 := position, tokenIndex
|
|
{
|
|
position77 := position
|
|
{
|
|
position78 := position
|
|
{
|
|
position79, tokenIndex79 := position, tokenIndex
|
|
if !_rules[rulefield]() {
|
|
goto l80
|
|
}
|
|
if !_rules[rulesp]() {
|
|
goto l80
|
|
}
|
|
if buffer[position] != rune('=') {
|
|
goto l80
|
|
}
|
|
position++
|
|
if !_rules[rulesp]() {
|
|
goto l80
|
|
}
|
|
if !_rules[rulefvalue]() {
|
|
goto l80
|
|
}
|
|
goto l79
|
|
l80:
|
|
position, tokenIndex = position79, tokenIndex79
|
|
if !_rules[rulefield]() {
|
|
goto l81
|
|
}
|
|
if !_rules[rulesp]() {
|
|
goto l81
|
|
}
|
|
if !_rules[ruleCOND]() {
|
|
goto l81
|
|
}
|
|
if !_rules[rulesp]() {
|
|
goto l81
|
|
}
|
|
if !_rules[rulefvalue]() {
|
|
goto l81
|
|
}
|
|
goto l79
|
|
l81:
|
|
position, tokenIndex = position79, tokenIndex79
|
|
if !_rules[ruleconditional]() {
|
|
goto l76
|
|
}
|
|
}
|
|
l79:
|
|
add(rulefarg, position78)
|
|
}
|
|
{
|
|
position82, tokenIndex82 := position, tokenIndex
|
|
if !_rules[rulecomma]() {
|
|
goto l82
|
|
}
|
|
if !_rules[rulefargs]() {
|
|
goto l82
|
|
}
|
|
goto l83
|
|
l82:
|
|
position, tokenIndex = position82, tokenIndex82
|
|
}
|
|
l83:
|
|
if !_rules[rulesp]() {
|
|
goto l76
|
|
}
|
|
add(rulefargs, position77)
|
|
}
|
|
return true
|
|
l76:
|
|
position, tokenIndex = position76, tokenIndex76
|
|
return false
|
|
},
|
|
/* 4 farg <- <((field sp '=' sp fvalue) / (field sp COND sp fvalue) / conditional)> */
|
|
nil,
|
|
/* 5 dargs <- <(darg (comma dargs)? sp)> */
|
|
func() bool {
|
|
position85, tokenIndex85 := position, tokenIndex
|
|
{
|
|
position86 := position
|
|
if !_rules[ruledarg]() {
|
|
goto l85
|
|
}
|
|
{
|
|
position87, tokenIndex87 := position, tokenIndex
|
|
if !_rules[rulecomma]() {
|
|
goto l87
|
|
}
|
|
if !_rules[ruledargs]() {
|
|
goto l87
|
|
}
|
|
goto l88
|
|
l87:
|
|
position, tokenIndex = position87, tokenIndex87
|
|
}
|
|
l88:
|
|
if !_rules[rulesp]() {
|
|
goto l85
|
|
}
|
|
add(ruledargs, position86)
|
|
}
|
|
return true
|
|
l85:
|
|
position, tokenIndex = position85, tokenIndex85
|
|
return false
|
|
},
|
|
/* 6 darg <- <((field sp '=' sp dvalue) / (field sp COND sp dvalue) / conditional)> */
|
|
func() bool {
|
|
position89, tokenIndex89 := position, tokenIndex
|
|
{
|
|
position90 := position
|
|
{
|
|
position91, tokenIndex91 := position, tokenIndex
|
|
if !_rules[rulefield]() {
|
|
goto l92
|
|
}
|
|
if !_rules[rulesp]() {
|
|
goto l92
|
|
}
|
|
if buffer[position] != rune('=') {
|
|
goto l92
|
|
}
|
|
position++
|
|
if !_rules[rulesp]() {
|
|
goto l92
|
|
}
|
|
if !_rules[ruledvalue]() {
|
|
goto l92
|
|
}
|
|
goto l91
|
|
l92:
|
|
position, tokenIndex = position91, tokenIndex91
|
|
if !_rules[rulefield]() {
|
|
goto l93
|
|
}
|
|
if !_rules[rulesp]() {
|
|
goto l93
|
|
}
|
|
if !_rules[ruleCOND]() {
|
|
goto l93
|
|
}
|
|
if !_rules[rulesp]() {
|
|
goto l93
|
|
}
|
|
if !_rules[ruledvalue]() {
|
|
goto l93
|
|
}
|
|
goto l91
|
|
l93:
|
|
position, tokenIndex = position91, tokenIndex91
|
|
if !_rules[ruleconditional]() {
|
|
goto l89
|
|
}
|
|
}
|
|
l91:
|
|
add(ruledarg, position90)
|
|
}
|
|
return true
|
|
l89:
|
|
position, tokenIndex = position89, tokenIndex89
|
|
return false
|
|
},
|
|
/* 7 COND <- <(('>' '<' Action24) / ('<' '=' Action25) / ('>' '=' Action26) / ('=' '=' Action27) / ('!' '=' Action28) / ('<' Action29) / ('>' Action30))> */
|
|
func() bool {
|
|
position94, tokenIndex94 := position, tokenIndex
|
|
{
|
|
position95 := position
|
|
{
|
|
position96, tokenIndex96 := position, tokenIndex
|
|
if buffer[position] != rune('>') {
|
|
goto l97
|
|
}
|
|
position++
|
|
if buffer[position] != rune('<') {
|
|
goto l97
|
|
}
|
|
position++
|
|
{
|
|
add(ruleAction24, position)
|
|
}
|
|
goto l96
|
|
l97:
|
|
position, tokenIndex = position96, tokenIndex96
|
|
if buffer[position] != rune('<') {
|
|
goto l99
|
|
}
|
|
position++
|
|
if buffer[position] != rune('=') {
|
|
goto l99
|
|
}
|
|
position++
|
|
{
|
|
add(ruleAction25, position)
|
|
}
|
|
goto l96
|
|
l99:
|
|
position, tokenIndex = position96, tokenIndex96
|
|
if buffer[position] != rune('>') {
|
|
goto l101
|
|
}
|
|
position++
|
|
if buffer[position] != rune('=') {
|
|
goto l101
|
|
}
|
|
position++
|
|
{
|
|
add(ruleAction26, position)
|
|
}
|
|
goto l96
|
|
l101:
|
|
position, tokenIndex = position96, tokenIndex96
|
|
if buffer[position] != rune('=') {
|
|
goto l103
|
|
}
|
|
position++
|
|
if buffer[position] != rune('=') {
|
|
goto l103
|
|
}
|
|
position++
|
|
{
|
|
add(ruleAction27, position)
|
|
}
|
|
goto l96
|
|
l103:
|
|
position, tokenIndex = position96, tokenIndex96
|
|
if buffer[position] != rune('!') {
|
|
goto l105
|
|
}
|
|
position++
|
|
if buffer[position] != rune('=') {
|
|
goto l105
|
|
}
|
|
position++
|
|
{
|
|
add(ruleAction28, position)
|
|
}
|
|
goto l96
|
|
l105:
|
|
position, tokenIndex = position96, tokenIndex96
|
|
if buffer[position] != rune('<') {
|
|
goto l107
|
|
}
|
|
position++
|
|
{
|
|
add(ruleAction29, position)
|
|
}
|
|
goto l96
|
|
l107:
|
|
position, tokenIndex = position96, tokenIndex96
|
|
if buffer[position] != rune('>') {
|
|
goto l94
|
|
}
|
|
position++
|
|
{
|
|
add(ruleAction30, position)
|
|
}
|
|
}
|
|
l96:
|
|
add(ruleCOND, position95)
|
|
}
|
|
return true
|
|
l94:
|
|
position, tokenIndex = position94, tokenIndex94
|
|
return false
|
|
},
|
|
/* 8 conditional <- <(Action31 condint condLT condfield condLT condint Action32)> */
|
|
func() bool {
|
|
position110, tokenIndex110 := position, tokenIndex
|
|
{
|
|
position111 := position
|
|
{
|
|
add(ruleAction31, position)
|
|
}
|
|
if !_rules[rulecondint]() {
|
|
goto l110
|
|
}
|
|
if !_rules[rulecondLT]() {
|
|
goto l110
|
|
}
|
|
{
|
|
position113 := position
|
|
{
|
|
position114 := position
|
|
if !_rules[rulefieldExpr]() {
|
|
goto l110
|
|
}
|
|
add(rulePegText, position114)
|
|
}
|
|
if !_rules[rulesp]() {
|
|
goto l110
|
|
}
|
|
{
|
|
add(ruleAction35, position)
|
|
}
|
|
add(rulecondfield, position113)
|
|
}
|
|
if !_rules[rulecondLT]() {
|
|
goto l110
|
|
}
|
|
if !_rules[rulecondint]() {
|
|
goto l110
|
|
}
|
|
{
|
|
add(ruleAction32, position)
|
|
}
|
|
add(ruleconditional, position111)
|
|
}
|
|
return true
|
|
l110:
|
|
position, tokenIndex = position110, tokenIndex110
|
|
return false
|
|
},
|
|
/* 9 condint <- <(<(('-'? [0-9]* '.' [0-9]+) / '0' / ('-'? [1-9] [0-9]*))> sp Action33)> */
|
|
func() bool {
|
|
position117, tokenIndex117 := position, tokenIndex
|
|
{
|
|
position118 := position
|
|
{
|
|
position119 := position
|
|
{
|
|
position120, tokenIndex120 := position, tokenIndex
|
|
{
|
|
position122, tokenIndex122 := position, tokenIndex
|
|
if buffer[position] != rune('-') {
|
|
goto l122
|
|
}
|
|
position++
|
|
goto l123
|
|
l122:
|
|
position, tokenIndex = position122, tokenIndex122
|
|
}
|
|
l123:
|
|
l124:
|
|
{
|
|
position125, tokenIndex125 := position, tokenIndex
|
|
if c := buffer[position]; c < rune('0') || c > rune('9') {
|
|
goto l125
|
|
}
|
|
position++
|
|
goto l124
|
|
l125:
|
|
position, tokenIndex = position125, tokenIndex125
|
|
}
|
|
if buffer[position] != rune('.') {
|
|
goto l121
|
|
}
|
|
position++
|
|
if c := buffer[position]; c < rune('0') || c > rune('9') {
|
|
goto l121
|
|
}
|
|
position++
|
|
l126:
|
|
{
|
|
position127, tokenIndex127 := position, tokenIndex
|
|
if c := buffer[position]; c < rune('0') || c > rune('9') {
|
|
goto l127
|
|
}
|
|
position++
|
|
goto l126
|
|
l127:
|
|
position, tokenIndex = position127, tokenIndex127
|
|
}
|
|
goto l120
|
|
l121:
|
|
position, tokenIndex = position120, tokenIndex120
|
|
if buffer[position] != rune('0') {
|
|
goto l128
|
|
}
|
|
position++
|
|
goto l120
|
|
l128:
|
|
position, tokenIndex = position120, tokenIndex120
|
|
{
|
|
position129, tokenIndex129 := position, tokenIndex
|
|
if buffer[position] != rune('-') {
|
|
goto l129
|
|
}
|
|
position++
|
|
goto l130
|
|
l129:
|
|
position, tokenIndex = position129, tokenIndex129
|
|
}
|
|
l130:
|
|
if c := buffer[position]; c < rune('1') || c > rune('9') {
|
|
goto l117
|
|
}
|
|
position++
|
|
l131:
|
|
{
|
|
position132, tokenIndex132 := position, tokenIndex
|
|
if c := buffer[position]; c < rune('0') || c > rune('9') {
|
|
goto l132
|
|
}
|
|
position++
|
|
goto l131
|
|
l132:
|
|
position, tokenIndex = position132, tokenIndex132
|
|
}
|
|
}
|
|
l120:
|
|
add(rulePegText, position119)
|
|
}
|
|
if !_rules[rulesp]() {
|
|
goto l117
|
|
}
|
|
{
|
|
add(ruleAction33, position)
|
|
}
|
|
add(rulecondint, position118)
|
|
}
|
|
return true
|
|
l117:
|
|
position, tokenIndex = position117, tokenIndex117
|
|
return false
|
|
},
|
|
/* 10 condLT <- <(<(('<' '=') / '<')> sp Action34)> */
|
|
func() bool {
|
|
position134, tokenIndex134 := position, tokenIndex
|
|
{
|
|
position135 := position
|
|
{
|
|
position136 := position
|
|
{
|
|
position137, tokenIndex137 := position, tokenIndex
|
|
if buffer[position] != rune('<') {
|
|
goto l138
|
|
}
|
|
position++
|
|
if buffer[position] != rune('=') {
|
|
goto l138
|
|
}
|
|
position++
|
|
goto l137
|
|
l138:
|
|
position, tokenIndex = position137, tokenIndex137
|
|
if buffer[position] != rune('<') {
|
|
goto l134
|
|
}
|
|
position++
|
|
}
|
|
l137:
|
|
add(rulePegText, position136)
|
|
}
|
|
if !_rules[rulesp]() {
|
|
goto l134
|
|
}
|
|
{
|
|
add(ruleAction34, position)
|
|
}
|
|
add(rulecondLT, position135)
|
|
}
|
|
return true
|
|
l134:
|
|
position, tokenIndex = position134, tokenIndex134
|
|
return false
|
|
},
|
|
/* 11 condfield <- <(<fieldExpr> sp Action35)> */
|
|
nil,
|
|
/* 12 dvalue <- <(ditem / (lbrack Action36 dlist rbrack Action37))> */
|
|
func() bool {
|
|
position141, tokenIndex141 := position, tokenIndex
|
|
{
|
|
position142 := position
|
|
{
|
|
position143, tokenIndex143 := position, tokenIndex
|
|
if !_rules[ruleditem]() {
|
|
goto l144
|
|
}
|
|
goto l143
|
|
l144:
|
|
position, tokenIndex = position143, tokenIndex143
|
|
if !_rules[rulelbrack]() {
|
|
goto l141
|
|
}
|
|
{
|
|
add(ruleAction36, position)
|
|
}
|
|
if !_rules[ruledlist]() {
|
|
goto l141
|
|
}
|
|
if !_rules[rulerbrack]() {
|
|
goto l141
|
|
}
|
|
{
|
|
add(ruleAction37, position)
|
|
}
|
|
}
|
|
l143:
|
|
add(ruledvalue, position142)
|
|
}
|
|
return true
|
|
l141:
|
|
position, tokenIndex = position141, tokenIndex141
|
|
return false
|
|
},
|
|
/* 13 fvalue <- <(fitem / (lbrack Action38 flist rbrack Action39))> */
|
|
func() bool {
|
|
position147, tokenIndex147 := position, tokenIndex
|
|
{
|
|
position148 := position
|
|
{
|
|
position149, tokenIndex149 := position, tokenIndex
|
|
if !_rules[rulefitem]() {
|
|
goto l150
|
|
}
|
|
goto l149
|
|
l150:
|
|
position, tokenIndex = position149, tokenIndex149
|
|
if !_rules[rulelbrack]() {
|
|
goto l147
|
|
}
|
|
{
|
|
add(ruleAction38, position)
|
|
}
|
|
if !_rules[ruleflist]() {
|
|
goto l147
|
|
}
|
|
if !_rules[rulerbrack]() {
|
|
goto l147
|
|
}
|
|
{
|
|
add(ruleAction39, position)
|
|
}
|
|
}
|
|
l149:
|
|
add(rulefvalue, position148)
|
|
}
|
|
return true
|
|
l147:
|
|
position, tokenIndex = position147, tokenIndex147
|
|
return false
|
|
},
|
|
/* 14 dlist <- <(ditem (comma dlist)?)> */
|
|
func() bool {
|
|
position153, tokenIndex153 := position, tokenIndex
|
|
{
|
|
position154 := position
|
|
if !_rules[ruleditem]() {
|
|
goto l153
|
|
}
|
|
{
|
|
position155, tokenIndex155 := position, tokenIndex
|
|
if !_rules[rulecomma]() {
|
|
goto l155
|
|
}
|
|
if !_rules[ruledlist]() {
|
|
goto l155
|
|
}
|
|
goto l156
|
|
l155:
|
|
position, tokenIndex = position155, tokenIndex155
|
|
}
|
|
l156:
|
|
add(ruledlist, position154)
|
|
}
|
|
return true
|
|
l153:
|
|
position, tokenIndex = position153, tokenIndex153
|
|
return false
|
|
},
|
|
/* 15 flist <- <(fitem (comma flist)?)> */
|
|
func() bool {
|
|
position157, tokenIndex157 := position, tokenIndex
|
|
{
|
|
position158 := position
|
|
if !_rules[rulefitem]() {
|
|
goto l157
|
|
}
|
|
{
|
|
position159, tokenIndex159 := position, tokenIndex
|
|
if !_rules[rulecomma]() {
|
|
goto l159
|
|
}
|
|
if !_rules[ruleflist]() {
|
|
goto l159
|
|
}
|
|
goto l160
|
|
l159:
|
|
position, tokenIndex = position159, tokenIndex159
|
|
}
|
|
l160:
|
|
add(ruleflist, position158)
|
|
}
|
|
return true
|
|
l157:
|
|
position, tokenIndex = position157, tokenIndex157
|
|
return false
|
|
},
|
|
/* 16 ditem <- <(itema / decimal / itemb)> */
|
|
func() bool {
|
|
position161, tokenIndex161 := position, tokenIndex
|
|
{
|
|
position162 := position
|
|
{
|
|
position163, tokenIndex163 := position, tokenIndex
|
|
if !_rules[ruleitema]() {
|
|
goto l164
|
|
}
|
|
goto l163
|
|
l164:
|
|
position, tokenIndex = position163, tokenIndex163
|
|
{
|
|
position166 := position
|
|
{
|
|
position167, tokenIndex167 := position, tokenIndex
|
|
{
|
|
position169 := position
|
|
{
|
|
position170, tokenIndex170 := position, tokenIndex
|
|
if buffer[position] != rune('-') {
|
|
goto l170
|
|
}
|
|
position++
|
|
goto l171
|
|
l170:
|
|
position, tokenIndex = position170, tokenIndex170
|
|
}
|
|
l171:
|
|
if c := buffer[position]; c < rune('0') || c > rune('9') {
|
|
goto l168
|
|
}
|
|
position++
|
|
l172:
|
|
{
|
|
position173, tokenIndex173 := position, tokenIndex
|
|
if c := buffer[position]; c < rune('0') || c > rune('9') {
|
|
goto l173
|
|
}
|
|
position++
|
|
goto l172
|
|
l173:
|
|
position, tokenIndex = position173, tokenIndex173
|
|
}
|
|
{
|
|
position174, tokenIndex174 := position, tokenIndex
|
|
if buffer[position] != rune('.') {
|
|
goto l174
|
|
}
|
|
position++
|
|
l176:
|
|
{
|
|
position177, tokenIndex177 := position, tokenIndex
|
|
if c := buffer[position]; c < rune('0') || c > rune('9') {
|
|
goto l177
|
|
}
|
|
position++
|
|
goto l176
|
|
l177:
|
|
position, tokenIndex = position177, tokenIndex177
|
|
}
|
|
goto l175
|
|
l174:
|
|
position, tokenIndex = position174, tokenIndex174
|
|
}
|
|
l175:
|
|
add(rulePegText, position169)
|
|
}
|
|
{
|
|
add(ruleAction51, position)
|
|
}
|
|
goto l167
|
|
l168:
|
|
position, tokenIndex = position167, tokenIndex167
|
|
{
|
|
position179 := position
|
|
{
|
|
position180, tokenIndex180 := position, tokenIndex
|
|
if buffer[position] != rune('-') {
|
|
goto l180
|
|
}
|
|
position++
|
|
goto l181
|
|
l180:
|
|
position, tokenIndex = position180, tokenIndex180
|
|
}
|
|
l181:
|
|
if buffer[position] != rune('.') {
|
|
goto l165
|
|
}
|
|
position++
|
|
if c := buffer[position]; c < rune('0') || c > rune('9') {
|
|
goto l165
|
|
}
|
|
position++
|
|
l182:
|
|
{
|
|
position183, tokenIndex183 := position, tokenIndex
|
|
if c := buffer[position]; c < rune('0') || c > rune('9') {
|
|
goto l183
|
|
}
|
|
position++
|
|
goto l182
|
|
l183:
|
|
position, tokenIndex = position183, tokenIndex183
|
|
}
|
|
add(rulePegText, position179)
|
|
}
|
|
{
|
|
add(ruleAction52, position)
|
|
}
|
|
}
|
|
l167:
|
|
add(ruledecimal, position166)
|
|
}
|
|
goto l163
|
|
l165:
|
|
position, tokenIndex = position163, tokenIndex163
|
|
if !_rules[ruleitemb]() {
|
|
goto l161
|
|
}
|
|
}
|
|
l163:
|
|
add(ruleditem, position162)
|
|
}
|
|
return true
|
|
l161:
|
|
position, tokenIndex = position161, tokenIndex161
|
|
return false
|
|
},
|
|
/* 17 fitem <- <(itema / float / itemb)> */
|
|
func() bool {
|
|
position185, tokenIndex185 := position, tokenIndex
|
|
{
|
|
position186 := position
|
|
{
|
|
position187, tokenIndex187 := position, tokenIndex
|
|
if !_rules[ruleitema]() {
|
|
goto l188
|
|
}
|
|
goto l187
|
|
l188:
|
|
position, tokenIndex = position187, tokenIndex187
|
|
{
|
|
position190 := position
|
|
{
|
|
position191, tokenIndex191 := position, tokenIndex
|
|
{
|
|
position193 := position
|
|
{
|
|
position194, tokenIndex194 := position, tokenIndex
|
|
if buffer[position] != rune('-') {
|
|
goto l194
|
|
}
|
|
position++
|
|
goto l195
|
|
l194:
|
|
position, tokenIndex = position194, tokenIndex194
|
|
}
|
|
l195:
|
|
if c := buffer[position]; c < rune('0') || c > rune('9') {
|
|
goto l192
|
|
}
|
|
position++
|
|
l196:
|
|
{
|
|
position197, tokenIndex197 := position, tokenIndex
|
|
if c := buffer[position]; c < rune('0') || c > rune('9') {
|
|
goto l197
|
|
}
|
|
position++
|
|
goto l196
|
|
l197:
|
|
position, tokenIndex = position197, tokenIndex197
|
|
}
|
|
{
|
|
position198, tokenIndex198 := position, tokenIndex
|
|
if buffer[position] != rune('.') {
|
|
goto l198
|
|
}
|
|
position++
|
|
l200:
|
|
{
|
|
position201, tokenIndex201 := position, tokenIndex
|
|
if c := buffer[position]; c < rune('0') || c > rune('9') {
|
|
goto l201
|
|
}
|
|
position++
|
|
goto l200
|
|
l201:
|
|
position, tokenIndex = position201, tokenIndex201
|
|
}
|
|
goto l199
|
|
l198:
|
|
position, tokenIndex = position198, tokenIndex198
|
|
}
|
|
l199:
|
|
add(rulePegText, position193)
|
|
}
|
|
{
|
|
add(ruleAction49, position)
|
|
}
|
|
goto l191
|
|
l192:
|
|
position, tokenIndex = position191, tokenIndex191
|
|
{
|
|
position203 := position
|
|
{
|
|
position204, tokenIndex204 := position, tokenIndex
|
|
if buffer[position] != rune('-') {
|
|
goto l204
|
|
}
|
|
position++
|
|
goto l205
|
|
l204:
|
|
position, tokenIndex = position204, tokenIndex204
|
|
}
|
|
l205:
|
|
if buffer[position] != rune('.') {
|
|
goto l189
|
|
}
|
|
position++
|
|
if c := buffer[position]; c < rune('0') || c > rune('9') {
|
|
goto l189
|
|
}
|
|
position++
|
|
l206:
|
|
{
|
|
position207, tokenIndex207 := position, tokenIndex
|
|
if c := buffer[position]; c < rune('0') || c > rune('9') {
|
|
goto l207
|
|
}
|
|
position++
|
|
goto l206
|
|
l207:
|
|
position, tokenIndex = position207, tokenIndex207
|
|
}
|
|
add(rulePegText, position203)
|
|
}
|
|
{
|
|
add(ruleAction50, position)
|
|
}
|
|
}
|
|
l191:
|
|
add(rulefloat, position190)
|
|
}
|
|
goto l187
|
|
l189:
|
|
position, tokenIndex = position187, tokenIndex187
|
|
if !_rules[ruleitemb]() {
|
|
goto l185
|
|
}
|
|
}
|
|
l187:
|
|
add(rulefitem, position186)
|
|
}
|
|
return true
|
|
l185:
|
|
position, tokenIndex = position185, tokenIndex185
|
|
return false
|
|
},
|
|
/* 18 itema <- <(('n' 'u' 'l' 'l' &(comma / (sp close)) Action40) / ('t' 'r' 'u' 'e' &(comma / (sp close)) Action41) / ('f' 'a' 'l' 's' 'e' &(comma / (sp close)) Action42) / (timestampfmt Action43))> */
|
|
func() bool {
|
|
position209, tokenIndex209 := position, tokenIndex
|
|
{
|
|
position210 := position
|
|
{
|
|
position211, tokenIndex211 := position, tokenIndex
|
|
if buffer[position] != rune('n') {
|
|
goto l212
|
|
}
|
|
position++
|
|
if buffer[position] != rune('u') {
|
|
goto l212
|
|
}
|
|
position++
|
|
if buffer[position] != rune('l') {
|
|
goto l212
|
|
}
|
|
position++
|
|
if buffer[position] != rune('l') {
|
|
goto l212
|
|
}
|
|
position++
|
|
{
|
|
position213, tokenIndex213 := position, tokenIndex
|
|
{
|
|
position214, tokenIndex214 := position, tokenIndex
|
|
if !_rules[rulecomma]() {
|
|
goto l215
|
|
}
|
|
goto l214
|
|
l215:
|
|
position, tokenIndex = position214, tokenIndex214
|
|
if !_rules[rulesp]() {
|
|
goto l212
|
|
}
|
|
if !_rules[ruleclose]() {
|
|
goto l212
|
|
}
|
|
}
|
|
l214:
|
|
position, tokenIndex = position213, tokenIndex213
|
|
}
|
|
{
|
|
add(ruleAction40, position)
|
|
}
|
|
goto l211
|
|
l212:
|
|
position, tokenIndex = position211, tokenIndex211
|
|
if buffer[position] != rune('t') {
|
|
goto l217
|
|
}
|
|
position++
|
|
if buffer[position] != rune('r') {
|
|
goto l217
|
|
}
|
|
position++
|
|
if buffer[position] != rune('u') {
|
|
goto l217
|
|
}
|
|
position++
|
|
if buffer[position] != rune('e') {
|
|
goto l217
|
|
}
|
|
position++
|
|
{
|
|
position218, tokenIndex218 := position, tokenIndex
|
|
{
|
|
position219, tokenIndex219 := position, tokenIndex
|
|
if !_rules[rulecomma]() {
|
|
goto l220
|
|
}
|
|
goto l219
|
|
l220:
|
|
position, tokenIndex = position219, tokenIndex219
|
|
if !_rules[rulesp]() {
|
|
goto l217
|
|
}
|
|
if !_rules[ruleclose]() {
|
|
goto l217
|
|
}
|
|
}
|
|
l219:
|
|
position, tokenIndex = position218, tokenIndex218
|
|
}
|
|
{
|
|
add(ruleAction41, position)
|
|
}
|
|
goto l211
|
|
l217:
|
|
position, tokenIndex = position211, tokenIndex211
|
|
if buffer[position] != rune('f') {
|
|
goto l222
|
|
}
|
|
position++
|
|
if buffer[position] != rune('a') {
|
|
goto l222
|
|
}
|
|
position++
|
|
if buffer[position] != rune('l') {
|
|
goto l222
|
|
}
|
|
position++
|
|
if buffer[position] != rune('s') {
|
|
goto l222
|
|
}
|
|
position++
|
|
if buffer[position] != rune('e') {
|
|
goto l222
|
|
}
|
|
position++
|
|
{
|
|
position223, tokenIndex223 := position, tokenIndex
|
|
{
|
|
position224, tokenIndex224 := position, tokenIndex
|
|
if !_rules[rulecomma]() {
|
|
goto l225
|
|
}
|
|
goto l224
|
|
l225:
|
|
position, tokenIndex = position224, tokenIndex224
|
|
if !_rules[rulesp]() {
|
|
goto l222
|
|
}
|
|
if !_rules[ruleclose]() {
|
|
goto l222
|
|
}
|
|
}
|
|
l224:
|
|
position, tokenIndex = position223, tokenIndex223
|
|
}
|
|
{
|
|
add(ruleAction42, position)
|
|
}
|
|
goto l211
|
|
l222:
|
|
position, tokenIndex = position211, tokenIndex211
|
|
if !_rules[ruletimestampfmt]() {
|
|
goto l209
|
|
}
|
|
{
|
|
add(ruleAction43, position)
|
|
}
|
|
}
|
|
l211:
|
|
add(ruleitema, position210)
|
|
}
|
|
return true
|
|
l209:
|
|
position, tokenIndex = position209, tokenIndex209
|
|
return false
|
|
},
|
|
/* 19 itemb <- <((<IDENT> Action44 open allargs comma? close Action45) / (<([a-z] / [A-Z] / [0-9] / '-' / '_' / ':')+> Action46) / (<('"' doublequotedstring '"')> Action47) / (<('\'' singlequotedstring '\'')> Action48))> */
|
|
func() bool {
|
|
position228, tokenIndex228 := position, tokenIndex
|
|
{
|
|
position229 := position
|
|
{
|
|
position230, tokenIndex230 := position, tokenIndex
|
|
{
|
|
position232 := position
|
|
if !_rules[ruleIDENT]() {
|
|
goto l231
|
|
}
|
|
add(rulePegText, position232)
|
|
}
|
|
{
|
|
add(ruleAction44, position)
|
|
}
|
|
if !_rules[ruleopen]() {
|
|
goto l231
|
|
}
|
|
if !_rules[ruleallargs]() {
|
|
goto l231
|
|
}
|
|
{
|
|
position234, tokenIndex234 := position, tokenIndex
|
|
if !_rules[rulecomma]() {
|
|
goto l234
|
|
}
|
|
goto l235
|
|
l234:
|
|
position, tokenIndex = position234, tokenIndex234
|
|
}
|
|
l235:
|
|
if !_rules[ruleclose]() {
|
|
goto l231
|
|
}
|
|
{
|
|
add(ruleAction45, position)
|
|
}
|
|
goto l230
|
|
l231:
|
|
position, tokenIndex = position230, tokenIndex230
|
|
{
|
|
position238 := position
|
|
{
|
|
position241, tokenIndex241 := position, tokenIndex
|
|
if c := buffer[position]; c < rune('a') || c > rune('z') {
|
|
goto l242
|
|
}
|
|
position++
|
|
goto l241
|
|
l242:
|
|
position, tokenIndex = position241, tokenIndex241
|
|
if c := buffer[position]; c < rune('A') || c > rune('Z') {
|
|
goto l243
|
|
}
|
|
position++
|
|
goto l241
|
|
l243:
|
|
position, tokenIndex = position241, tokenIndex241
|
|
if c := buffer[position]; c < rune('0') || c > rune('9') {
|
|
goto l244
|
|
}
|
|
position++
|
|
goto l241
|
|
l244:
|
|
position, tokenIndex = position241, tokenIndex241
|
|
if buffer[position] != rune('-') {
|
|
goto l245
|
|
}
|
|
position++
|
|
goto l241
|
|
l245:
|
|
position, tokenIndex = position241, tokenIndex241
|
|
if buffer[position] != rune('_') {
|
|
goto l246
|
|
}
|
|
position++
|
|
goto l241
|
|
l246:
|
|
position, tokenIndex = position241, tokenIndex241
|
|
if buffer[position] != rune(':') {
|
|
goto l237
|
|
}
|
|
position++
|
|
}
|
|
l241:
|
|
l239:
|
|
{
|
|
position240, tokenIndex240 := position, tokenIndex
|
|
{
|
|
position247, tokenIndex247 := position, tokenIndex
|
|
if c := buffer[position]; c < rune('a') || c > rune('z') {
|
|
goto l248
|
|
}
|
|
position++
|
|
goto l247
|
|
l248:
|
|
position, tokenIndex = position247, tokenIndex247
|
|
if c := buffer[position]; c < rune('A') || c > rune('Z') {
|
|
goto l249
|
|
}
|
|
position++
|
|
goto l247
|
|
l249:
|
|
position, tokenIndex = position247, tokenIndex247
|
|
if c := buffer[position]; c < rune('0') || c > rune('9') {
|
|
goto l250
|
|
}
|
|
position++
|
|
goto l247
|
|
l250:
|
|
position, tokenIndex = position247, tokenIndex247
|
|
if buffer[position] != rune('-') {
|
|
goto l251
|
|
}
|
|
position++
|
|
goto l247
|
|
l251:
|
|
position, tokenIndex = position247, tokenIndex247
|
|
if buffer[position] != rune('_') {
|
|
goto l252
|
|
}
|
|
position++
|
|
goto l247
|
|
l252:
|
|
position, tokenIndex = position247, tokenIndex247
|
|
if buffer[position] != rune(':') {
|
|
goto l240
|
|
}
|
|
position++
|
|
}
|
|
l247:
|
|
goto l239
|
|
l240:
|
|
position, tokenIndex = position240, tokenIndex240
|
|
}
|
|
add(rulePegText, position238)
|
|
}
|
|
{
|
|
add(ruleAction46, position)
|
|
}
|
|
goto l230
|
|
l237:
|
|
position, tokenIndex = position230, tokenIndex230
|
|
{
|
|
position255 := position
|
|
if buffer[position] != rune('"') {
|
|
goto l254
|
|
}
|
|
position++
|
|
if !_rules[ruledoublequotedstring]() {
|
|
goto l254
|
|
}
|
|
if buffer[position] != rune('"') {
|
|
goto l254
|
|
}
|
|
position++
|
|
add(rulePegText, position255)
|
|
}
|
|
{
|
|
add(ruleAction47, position)
|
|
}
|
|
goto l230
|
|
l254:
|
|
position, tokenIndex = position230, tokenIndex230
|
|
{
|
|
position257 := position
|
|
if buffer[position] != rune('\'') {
|
|
goto l228
|
|
}
|
|
position++
|
|
if !_rules[rulesinglequotedstring]() {
|
|
goto l228
|
|
}
|
|
if buffer[position] != rune('\'') {
|
|
goto l228
|
|
}
|
|
position++
|
|
add(rulePegText, position257)
|
|
}
|
|
{
|
|
add(ruleAction48, position)
|
|
}
|
|
}
|
|
l230:
|
|
add(ruleitemb, position229)
|
|
}
|
|
return true
|
|
l228:
|
|
position, tokenIndex = position228, tokenIndex228
|
|
return false
|
|
},
|
|
/* 20 float <- <((<('-'? [0-9]+ ('.' [0-9]*)?)> Action49) / (<('-'? '.' [0-9]+)> Action50))> */
|
|
nil,
|
|
/* 21 decimal <- <((<('-'? [0-9]+ ('.' [0-9]*)?)> Action51) / (<('-'? '.' [0-9]+)> Action52))> */
|
|
nil,
|
|
/* 22 doublequotedstring <- <(('\\' '"') / ('\\' '\\') / ('\\' 'n') / ('\\' 't') / (!('"' / '\\') .))*> */
|
|
func() bool {
|
|
{
|
|
position262 := position
|
|
l263:
|
|
{
|
|
position264, tokenIndex264 := position, tokenIndex
|
|
{
|
|
position265, tokenIndex265 := position, tokenIndex
|
|
if buffer[position] != rune('\\') {
|
|
goto l266
|
|
}
|
|
position++
|
|
if buffer[position] != rune('"') {
|
|
goto l266
|
|
}
|
|
position++
|
|
goto l265
|
|
l266:
|
|
position, tokenIndex = position265, tokenIndex265
|
|
if buffer[position] != rune('\\') {
|
|
goto l267
|
|
}
|
|
position++
|
|
if buffer[position] != rune('\\') {
|
|
goto l267
|
|
}
|
|
position++
|
|
goto l265
|
|
l267:
|
|
position, tokenIndex = position265, tokenIndex265
|
|
if buffer[position] != rune('\\') {
|
|
goto l268
|
|
}
|
|
position++
|
|
if buffer[position] != rune('n') {
|
|
goto l268
|
|
}
|
|
position++
|
|
goto l265
|
|
l268:
|
|
position, tokenIndex = position265, tokenIndex265
|
|
if buffer[position] != rune('\\') {
|
|
goto l269
|
|
}
|
|
position++
|
|
if buffer[position] != rune('t') {
|
|
goto l269
|
|
}
|
|
position++
|
|
goto l265
|
|
l269:
|
|
position, tokenIndex = position265, tokenIndex265
|
|
{
|
|
position270, tokenIndex270 := position, tokenIndex
|
|
{
|
|
position271, tokenIndex271 := position, tokenIndex
|
|
if buffer[position] != rune('"') {
|
|
goto l272
|
|
}
|
|
position++
|
|
goto l271
|
|
l272:
|
|
position, tokenIndex = position271, tokenIndex271
|
|
if buffer[position] != rune('\\') {
|
|
goto l270
|
|
}
|
|
position++
|
|
}
|
|
l271:
|
|
goto l264
|
|
l270:
|
|
position, tokenIndex = position270, tokenIndex270
|
|
}
|
|
if !matchDot() {
|
|
goto l264
|
|
}
|
|
}
|
|
l265:
|
|
goto l263
|
|
l264:
|
|
position, tokenIndex = position264, tokenIndex264
|
|
}
|
|
add(ruledoublequotedstring, position262)
|
|
}
|
|
return true
|
|
},
|
|
/* 23 singlequotedstring <- <(('\\' '\'') / ('\\' '\\') / ('\\' 'n') / ('\\' 't') / (!('\'' / '\\') .))*> */
|
|
func() bool {
|
|
{
|
|
position274 := position
|
|
l275:
|
|
{
|
|
position276, tokenIndex276 := position, tokenIndex
|
|
{
|
|
position277, tokenIndex277 := position, tokenIndex
|
|
if buffer[position] != rune('\\') {
|
|
goto l278
|
|
}
|
|
position++
|
|
if buffer[position] != rune('\'') {
|
|
goto l278
|
|
}
|
|
position++
|
|
goto l277
|
|
l278:
|
|
position, tokenIndex = position277, tokenIndex277
|
|
if buffer[position] != rune('\\') {
|
|
goto l279
|
|
}
|
|
position++
|
|
if buffer[position] != rune('\\') {
|
|
goto l279
|
|
}
|
|
position++
|
|
goto l277
|
|
l279:
|
|
position, tokenIndex = position277, tokenIndex277
|
|
if buffer[position] != rune('\\') {
|
|
goto l280
|
|
}
|
|
position++
|
|
if buffer[position] != rune('n') {
|
|
goto l280
|
|
}
|
|
position++
|
|
goto l277
|
|
l280:
|
|
position, tokenIndex = position277, tokenIndex277
|
|
if buffer[position] != rune('\\') {
|
|
goto l281
|
|
}
|
|
position++
|
|
if buffer[position] != rune('t') {
|
|
goto l281
|
|
}
|
|
position++
|
|
goto l277
|
|
l281:
|
|
position, tokenIndex = position277, tokenIndex277
|
|
{
|
|
position282, tokenIndex282 := position, tokenIndex
|
|
{
|
|
position283, tokenIndex283 := position, tokenIndex
|
|
if buffer[position] != rune('\'') {
|
|
goto l284
|
|
}
|
|
position++
|
|
goto l283
|
|
l284:
|
|
position, tokenIndex = position283, tokenIndex283
|
|
if buffer[position] != rune('\\') {
|
|
goto l282
|
|
}
|
|
position++
|
|
}
|
|
l283:
|
|
goto l276
|
|
l282:
|
|
position, tokenIndex = position282, tokenIndex282
|
|
}
|
|
if !matchDot() {
|
|
goto l276
|
|
}
|
|
}
|
|
l277:
|
|
goto l275
|
|
l276:
|
|
position, tokenIndex = position276, tokenIndex276
|
|
}
|
|
add(rulesinglequotedstring, position274)
|
|
}
|
|
return true
|
|
},
|
|
/* 24 fieldExpr <- <(([a-z] / [A-Z] / '_') ([a-z] / [A-Z] / [0-9] / '_' / '-')*)> */
|
|
func() bool {
|
|
position285, tokenIndex285 := position, tokenIndex
|
|
{
|
|
position286 := position
|
|
{
|
|
position287, tokenIndex287 := position, tokenIndex
|
|
if c := buffer[position]; c < rune('a') || c > rune('z') {
|
|
goto l288
|
|
}
|
|
position++
|
|
goto l287
|
|
l288:
|
|
position, tokenIndex = position287, tokenIndex287
|
|
if c := buffer[position]; c < rune('A') || c > rune('Z') {
|
|
goto l289
|
|
}
|
|
position++
|
|
goto l287
|
|
l289:
|
|
position, tokenIndex = position287, tokenIndex287
|
|
if buffer[position] != rune('_') {
|
|
goto l285
|
|
}
|
|
position++
|
|
}
|
|
l287:
|
|
l290:
|
|
{
|
|
position291, tokenIndex291 := position, tokenIndex
|
|
{
|
|
position292, tokenIndex292 := position, tokenIndex
|
|
if c := buffer[position]; c < rune('a') || c > rune('z') {
|
|
goto l293
|
|
}
|
|
position++
|
|
goto l292
|
|
l293:
|
|
position, tokenIndex = position292, tokenIndex292
|
|
if c := buffer[position]; c < rune('A') || c > rune('Z') {
|
|
goto l294
|
|
}
|
|
position++
|
|
goto l292
|
|
l294:
|
|
position, tokenIndex = position292, tokenIndex292
|
|
if c := buffer[position]; c < rune('0') || c > rune('9') {
|
|
goto l295
|
|
}
|
|
position++
|
|
goto l292
|
|
l295:
|
|
position, tokenIndex = position292, tokenIndex292
|
|
if buffer[position] != rune('_') {
|
|
goto l296
|
|
}
|
|
position++
|
|
goto l292
|
|
l296:
|
|
position, tokenIndex = position292, tokenIndex292
|
|
if buffer[position] != rune('-') {
|
|
goto l291
|
|
}
|
|
position++
|
|
}
|
|
l292:
|
|
goto l290
|
|
l291:
|
|
position, tokenIndex = position291, tokenIndex291
|
|
}
|
|
add(rulefieldExpr, position286)
|
|
}
|
|
return true
|
|
l285:
|
|
position, tokenIndex = position285, tokenIndex285
|
|
return false
|
|
},
|
|
/* 25 field <- <(<(fieldExpr / reserved)> Action53)> */
|
|
func() bool {
|
|
position297, tokenIndex297 := position, tokenIndex
|
|
{
|
|
position298 := position
|
|
{
|
|
position299 := position
|
|
{
|
|
position300, tokenIndex300 := position, tokenIndex
|
|
if !_rules[rulefieldExpr]() {
|
|
goto l301
|
|
}
|
|
goto l300
|
|
l301:
|
|
position, tokenIndex = position300, tokenIndex300
|
|
{
|
|
position302 := position
|
|
{
|
|
position303, tokenIndex303 := position, tokenIndex
|
|
if buffer[position] != rune('_') {
|
|
goto l304
|
|
}
|
|
position++
|
|
if buffer[position] != rune('r') {
|
|
goto l304
|
|
}
|
|
position++
|
|
if buffer[position] != rune('o') {
|
|
goto l304
|
|
}
|
|
position++
|
|
if buffer[position] != rune('w') {
|
|
goto l304
|
|
}
|
|
position++
|
|
goto l303
|
|
l304:
|
|
position, tokenIndex = position303, tokenIndex303
|
|
if buffer[position] != rune('_') {
|
|
goto l305
|
|
}
|
|
position++
|
|
if buffer[position] != rune('c') {
|
|
goto l305
|
|
}
|
|
position++
|
|
if buffer[position] != rune('o') {
|
|
goto l305
|
|
}
|
|
position++
|
|
if buffer[position] != rune('l') {
|
|
goto l305
|
|
}
|
|
position++
|
|
goto l303
|
|
l305:
|
|
position, tokenIndex = position303, tokenIndex303
|
|
if buffer[position] != rune('_') {
|
|
goto l306
|
|
}
|
|
position++
|
|
if buffer[position] != rune('s') {
|
|
goto l306
|
|
}
|
|
position++
|
|
if buffer[position] != rune('t') {
|
|
goto l306
|
|
}
|
|
position++
|
|
if buffer[position] != rune('a') {
|
|
goto l306
|
|
}
|
|
position++
|
|
if buffer[position] != rune('r') {
|
|
goto l306
|
|
}
|
|
position++
|
|
if buffer[position] != rune('t') {
|
|
goto l306
|
|
}
|
|
position++
|
|
goto l303
|
|
l306:
|
|
position, tokenIndex = position303, tokenIndex303
|
|
if buffer[position] != rune('_') {
|
|
goto l307
|
|
}
|
|
position++
|
|
if buffer[position] != rune('e') {
|
|
goto l307
|
|
}
|
|
position++
|
|
if buffer[position] != rune('n') {
|
|
goto l307
|
|
}
|
|
position++
|
|
if buffer[position] != rune('d') {
|
|
goto l307
|
|
}
|
|
position++
|
|
goto l303
|
|
l307:
|
|
position, tokenIndex = position303, tokenIndex303
|
|
if buffer[position] != rune('_') {
|
|
goto l308
|
|
}
|
|
position++
|
|
if buffer[position] != rune('t') {
|
|
goto l308
|
|
}
|
|
position++
|
|
if buffer[position] != rune('i') {
|
|
goto l308
|
|
}
|
|
position++
|
|
if buffer[position] != rune('m') {
|
|
goto l308
|
|
}
|
|
position++
|
|
if buffer[position] != rune('e') {
|
|
goto l308
|
|
}
|
|
position++
|
|
if buffer[position] != rune('s') {
|
|
goto l308
|
|
}
|
|
position++
|
|
if buffer[position] != rune('t') {
|
|
goto l308
|
|
}
|
|
position++
|
|
if buffer[position] != rune('a') {
|
|
goto l308
|
|
}
|
|
position++
|
|
if buffer[position] != rune('m') {
|
|
goto l308
|
|
}
|
|
position++
|
|
if buffer[position] != rune('p') {
|
|
goto l308
|
|
}
|
|
position++
|
|
goto l303
|
|
l308:
|
|
position, tokenIndex = position303, tokenIndex303
|
|
if buffer[position] != rune('_') {
|
|
goto l297
|
|
}
|
|
position++
|
|
if buffer[position] != rune('f') {
|
|
goto l297
|
|
}
|
|
position++
|
|
if buffer[position] != rune('i') {
|
|
goto l297
|
|
}
|
|
position++
|
|
if buffer[position] != rune('e') {
|
|
goto l297
|
|
}
|
|
position++
|
|
if buffer[position] != rune('l') {
|
|
goto l297
|
|
}
|
|
position++
|
|
if buffer[position] != rune('d') {
|
|
goto l297
|
|
}
|
|
position++
|
|
}
|
|
l303:
|
|
add(rulereserved, position302)
|
|
}
|
|
}
|
|
l300:
|
|
add(rulePegText, position299)
|
|
}
|
|
{
|
|
add(ruleAction53, position)
|
|
}
|
|
add(rulefield, position298)
|
|
}
|
|
return true
|
|
l297:
|
|
position, tokenIndex = position297, tokenIndex297
|
|
return false
|
|
},
|
|
/* 26 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,
|
|
/* 27 posfield <- <(<fieldExpr> Action54)> */
|
|
func() bool {
|
|
position311, tokenIndex311 := position, tokenIndex
|
|
{
|
|
position312 := position
|
|
{
|
|
position313 := position
|
|
if !_rules[rulefieldExpr]() {
|
|
goto l311
|
|
}
|
|
add(rulePegText, position313)
|
|
}
|
|
{
|
|
add(ruleAction54, position)
|
|
}
|
|
add(ruleposfield, position312)
|
|
}
|
|
return true
|
|
l311:
|
|
position, tokenIndex = position311, tokenIndex311
|
|
return false
|
|
},
|
|
/* 28 uint <- <(([1-9] [0-9]*) / '0')> */
|
|
func() bool {
|
|
position315, tokenIndex315 := position, tokenIndex
|
|
{
|
|
position316 := position
|
|
{
|
|
position317, tokenIndex317 := position, tokenIndex
|
|
if c := buffer[position]; c < rune('1') || c > rune('9') {
|
|
goto l318
|
|
}
|
|
position++
|
|
l319:
|
|
{
|
|
position320, tokenIndex320 := position, tokenIndex
|
|
if c := buffer[position]; c < rune('0') || c > rune('9') {
|
|
goto l320
|
|
}
|
|
position++
|
|
goto l319
|
|
l320:
|
|
position, tokenIndex = position320, tokenIndex320
|
|
}
|
|
goto l317
|
|
l318:
|
|
position, tokenIndex = position317, tokenIndex317
|
|
if buffer[position] != rune('0') {
|
|
goto l315
|
|
}
|
|
position++
|
|
}
|
|
l317:
|
|
add(ruleuint, position316)
|
|
}
|
|
return true
|
|
l315:
|
|
position, tokenIndex = position315, tokenIndex315
|
|
return false
|
|
},
|
|
/* 29 col <- <((<uint> Action55) / (<('\'' singlequotedstring '\'')> Action56) / (<('"' doublequotedstring '"')> Action57))> */
|
|
func() bool {
|
|
position321, tokenIndex321 := position, tokenIndex
|
|
{
|
|
position322 := position
|
|
{
|
|
position323, tokenIndex323 := position, tokenIndex
|
|
{
|
|
position325 := position
|
|
if !_rules[ruleuint]() {
|
|
goto l324
|
|
}
|
|
add(rulePegText, position325)
|
|
}
|
|
{
|
|
add(ruleAction55, position)
|
|
}
|
|
goto l323
|
|
l324:
|
|
position, tokenIndex = position323, tokenIndex323
|
|
{
|
|
position328 := position
|
|
if buffer[position] != rune('\'') {
|
|
goto l327
|
|
}
|
|
position++
|
|
if !_rules[rulesinglequotedstring]() {
|
|
goto l327
|
|
}
|
|
if buffer[position] != rune('\'') {
|
|
goto l327
|
|
}
|
|
position++
|
|
add(rulePegText, position328)
|
|
}
|
|
{
|
|
add(ruleAction56, position)
|
|
}
|
|
goto l323
|
|
l327:
|
|
position, tokenIndex = position323, tokenIndex323
|
|
{
|
|
position330 := position
|
|
if buffer[position] != rune('"') {
|
|
goto l321
|
|
}
|
|
position++
|
|
if !_rules[ruledoublequotedstring]() {
|
|
goto l321
|
|
}
|
|
if buffer[position] != rune('"') {
|
|
goto l321
|
|
}
|
|
position++
|
|
add(rulePegText, position330)
|
|
}
|
|
{
|
|
add(ruleAction57, position)
|
|
}
|
|
}
|
|
l323:
|
|
add(rulecol, position322)
|
|
}
|
|
return true
|
|
l321:
|
|
position, tokenIndex = position321, tokenIndex321
|
|
return false
|
|
},
|
|
/* 30 row <- <((<uint> Action58) / (<('\'' singlequotedstring '\'')> Action59) / (<('"' doublequotedstring '"')> Action60))> */
|
|
nil,
|
|
/* 31 open <- <('(' sp)> */
|
|
func() bool {
|
|
position333, tokenIndex333 := position, tokenIndex
|
|
{
|
|
position334 := position
|
|
if buffer[position] != rune('(') {
|
|
goto l333
|
|
}
|
|
position++
|
|
if !_rules[rulesp]() {
|
|
goto l333
|
|
}
|
|
add(ruleopen, position334)
|
|
}
|
|
return true
|
|
l333:
|
|
position, tokenIndex = position333, tokenIndex333
|
|
return false
|
|
},
|
|
/* 32 close <- <(')' sp)> */
|
|
func() bool {
|
|
position335, tokenIndex335 := position, tokenIndex
|
|
{
|
|
position336 := position
|
|
if buffer[position] != rune(')') {
|
|
goto l335
|
|
}
|
|
position++
|
|
if !_rules[rulesp]() {
|
|
goto l335
|
|
}
|
|
add(ruleclose, position336)
|
|
}
|
|
return true
|
|
l335:
|
|
position, tokenIndex = position335, tokenIndex335
|
|
return false
|
|
},
|
|
/* 33 sp <- <(' ' / '\t' / '\n')*> */
|
|
func() bool {
|
|
{
|
|
position338 := position
|
|
l339:
|
|
{
|
|
position340, tokenIndex340 := position, tokenIndex
|
|
{
|
|
position341, tokenIndex341 := position, tokenIndex
|
|
if buffer[position] != rune(' ') {
|
|
goto l342
|
|
}
|
|
position++
|
|
goto l341
|
|
l342:
|
|
position, tokenIndex = position341, tokenIndex341
|
|
if buffer[position] != rune('\t') {
|
|
goto l343
|
|
}
|
|
position++
|
|
goto l341
|
|
l343:
|
|
position, tokenIndex = position341, tokenIndex341
|
|
if buffer[position] != rune('\n') {
|
|
goto l340
|
|
}
|
|
position++
|
|
}
|
|
l341:
|
|
goto l339
|
|
l340:
|
|
position, tokenIndex = position340, tokenIndex340
|
|
}
|
|
add(rulesp, position338)
|
|
}
|
|
return true
|
|
},
|
|
/* 34 comma <- <(sp ',' sp)> */
|
|
func() bool {
|
|
position344, tokenIndex344 := position, tokenIndex
|
|
{
|
|
position345 := position
|
|
if !_rules[rulesp]() {
|
|
goto l344
|
|
}
|
|
if buffer[position] != rune(',') {
|
|
goto l344
|
|
}
|
|
position++
|
|
if !_rules[rulesp]() {
|
|
goto l344
|
|
}
|
|
add(rulecomma, position345)
|
|
}
|
|
return true
|
|
l344:
|
|
position, tokenIndex = position344, tokenIndex344
|
|
return false
|
|
},
|
|
/* 35 lbrack <- <('[' sp)> */
|
|
func() bool {
|
|
position346, tokenIndex346 := position, tokenIndex
|
|
{
|
|
position347 := position
|
|
if buffer[position] != rune('[') {
|
|
goto l346
|
|
}
|
|
position++
|
|
if !_rules[rulesp]() {
|
|
goto l346
|
|
}
|
|
add(rulelbrack, position347)
|
|
}
|
|
return true
|
|
l346:
|
|
position, tokenIndex = position346, tokenIndex346
|
|
return false
|
|
},
|
|
/* 36 rbrack <- <(sp ']' sp)> */
|
|
func() bool {
|
|
position348, tokenIndex348 := position, tokenIndex
|
|
{
|
|
position349 := position
|
|
if !_rules[rulesp]() {
|
|
goto l348
|
|
}
|
|
if buffer[position] != rune(']') {
|
|
goto l348
|
|
}
|
|
position++
|
|
if !_rules[rulesp]() {
|
|
goto l348
|
|
}
|
|
add(rulerbrack, position349)
|
|
}
|
|
return true
|
|
l348:
|
|
position, tokenIndex = position348, tokenIndex348
|
|
return false
|
|
},
|
|
/* 37 IDENT <- <(([a-z] / [A-Z]) ([a-z] / [A-Z] / [0-9])*)> */
|
|
func() bool {
|
|
position350, tokenIndex350 := position, tokenIndex
|
|
{
|
|
position351 := position
|
|
{
|
|
position352, tokenIndex352 := position, tokenIndex
|
|
if c := buffer[position]; c < rune('a') || c > rune('z') {
|
|
goto l353
|
|
}
|
|
position++
|
|
goto l352
|
|
l353:
|
|
position, tokenIndex = position352, tokenIndex352
|
|
if c := buffer[position]; c < rune('A') || c > rune('Z') {
|
|
goto l350
|
|
}
|
|
position++
|
|
}
|
|
l352:
|
|
l354:
|
|
{
|
|
position355, tokenIndex355 := position, tokenIndex
|
|
{
|
|
position356, tokenIndex356 := position, tokenIndex
|
|
if c := buffer[position]; c < rune('a') || c > rune('z') {
|
|
goto l357
|
|
}
|
|
position++
|
|
goto l356
|
|
l357:
|
|
position, tokenIndex = position356, tokenIndex356
|
|
if c := buffer[position]; c < rune('A') || c > rune('Z') {
|
|
goto l358
|
|
}
|
|
position++
|
|
goto l356
|
|
l358:
|
|
position, tokenIndex = position356, tokenIndex356
|
|
if c := buffer[position]; c < rune('0') || c > rune('9') {
|
|
goto l355
|
|
}
|
|
position++
|
|
}
|
|
l356:
|
|
goto l354
|
|
l355:
|
|
position, tokenIndex = position355, tokenIndex355
|
|
}
|
|
add(ruleIDENT, position351)
|
|
}
|
|
return true
|
|
l350:
|
|
position, tokenIndex = position350, tokenIndex350
|
|
return false
|
|
},
|
|
/* 38 timestampbasicfmt <- <([0-9] [0-9] [0-9] [0-9] '-' ('0' / '1') [0-9] '-' [0-3] [0-9] 'T' [0-9] [0-9] ':' [0-9] [0-9])> */
|
|
func() bool {
|
|
position359, tokenIndex359 := position, tokenIndex
|
|
{
|
|
position360 := position
|
|
if c := buffer[position]; c < rune('0') || c > rune('9') {
|
|
goto l359
|
|
}
|
|
position++
|
|
if c := buffer[position]; c < rune('0') || c > rune('9') {
|
|
goto l359
|
|
}
|
|
position++
|
|
if c := buffer[position]; c < rune('0') || c > rune('9') {
|
|
goto l359
|
|
}
|
|
position++
|
|
if c := buffer[position]; c < rune('0') || c > rune('9') {
|
|
goto l359
|
|
}
|
|
position++
|
|
if buffer[position] != rune('-') {
|
|
goto l359
|
|
}
|
|
position++
|
|
{
|
|
position361, tokenIndex361 := position, tokenIndex
|
|
if buffer[position] != rune('0') {
|
|
goto l362
|
|
}
|
|
position++
|
|
goto l361
|
|
l362:
|
|
position, tokenIndex = position361, tokenIndex361
|
|
if buffer[position] != rune('1') {
|
|
goto l359
|
|
}
|
|
position++
|
|
}
|
|
l361:
|
|
if c := buffer[position]; c < rune('0') || c > rune('9') {
|
|
goto l359
|
|
}
|
|
position++
|
|
if buffer[position] != rune('-') {
|
|
goto l359
|
|
}
|
|
position++
|
|
if c := buffer[position]; c < rune('0') || c > rune('3') {
|
|
goto l359
|
|
}
|
|
position++
|
|
if c := buffer[position]; c < rune('0') || c > rune('9') {
|
|
goto l359
|
|
}
|
|
position++
|
|
if buffer[position] != rune('T') {
|
|
goto l359
|
|
}
|
|
position++
|
|
if c := buffer[position]; c < rune('0') || c > rune('9') {
|
|
goto l359
|
|
}
|
|
position++
|
|
if c := buffer[position]; c < rune('0') || c > rune('9') {
|
|
goto l359
|
|
}
|
|
position++
|
|
if buffer[position] != rune(':') {
|
|
goto l359
|
|
}
|
|
position++
|
|
if c := buffer[position]; c < rune('0') || c > rune('9') {
|
|
goto l359
|
|
}
|
|
position++
|
|
if c := buffer[position]; c < rune('0') || c > rune('9') {
|
|
goto l359
|
|
}
|
|
position++
|
|
add(ruletimestampbasicfmt, position360)
|
|
}
|
|
return true
|
|
l359:
|
|
position, tokenIndex = position359, tokenIndex359
|
|
return false
|
|
},
|
|
/* 39 timestampfmt <- <(('"' <timestampbasicfmt> '"') / ('\'' <timestampbasicfmt> '\'') / <timestampbasicfmt>)> */
|
|
func() bool {
|
|
position363, tokenIndex363 := position, tokenIndex
|
|
{
|
|
position364 := position
|
|
{
|
|
position365, tokenIndex365 := position, tokenIndex
|
|
if buffer[position] != rune('"') {
|
|
goto l366
|
|
}
|
|
position++
|
|
{
|
|
position367 := position
|
|
if !_rules[ruletimestampbasicfmt]() {
|
|
goto l366
|
|
}
|
|
add(rulePegText, position367)
|
|
}
|
|
if buffer[position] != rune('"') {
|
|
goto l366
|
|
}
|
|
position++
|
|
goto l365
|
|
l366:
|
|
position, tokenIndex = position365, tokenIndex365
|
|
if buffer[position] != rune('\'') {
|
|
goto l368
|
|
}
|
|
position++
|
|
{
|
|
position369 := position
|
|
if !_rules[ruletimestampbasicfmt]() {
|
|
goto l368
|
|
}
|
|
add(rulePegText, position369)
|
|
}
|
|
if buffer[position] != rune('\'') {
|
|
goto l368
|
|
}
|
|
position++
|
|
goto l365
|
|
l368:
|
|
position, tokenIndex = position365, tokenIndex365
|
|
{
|
|
position370 := position
|
|
if !_rules[ruletimestampbasicfmt]() {
|
|
goto l363
|
|
}
|
|
add(rulePegText, position370)
|
|
}
|
|
}
|
|
l365:
|
|
add(ruletimestampfmt, position364)
|
|
}
|
|
return true
|
|
l363:
|
|
position, tokenIndex = position363, tokenIndex363
|
|
return false
|
|
},
|
|
/* 40 timestamp <- <(<timestampfmt> Action61)> */
|
|
nil,
|
|
/* 42 Action0 <- <{p.startCall("Set")}> */
|
|
nil,
|
|
/* 43 Action1 <- <{p.endCall()}> */
|
|
nil,
|
|
/* 44 Action2 <- <{p.startCall("SetRowAttrs")}> */
|
|
nil,
|
|
/* 45 Action3 <- <{p.endCall()}> */
|
|
nil,
|
|
/* 46 Action4 <- <{p.startCall("SetColumnAttrs")}> */
|
|
nil,
|
|
/* 47 Action5 <- <{p.endCall()}> */
|
|
nil,
|
|
/* 48 Action6 <- <{p.startCall("Clear")}> */
|
|
nil,
|
|
/* 49 Action7 <- <{p.endCall()}> */
|
|
nil,
|
|
/* 50 Action8 <- <{p.startCall("ClearRow")}> */
|
|
nil,
|
|
/* 51 Action9 <- <{p.endCall()}> */
|
|
nil,
|
|
/* 52 Action10 <- <{p.startCall("Store")}> */
|
|
nil,
|
|
/* 53 Action11 <- <{p.endCall()}> */
|
|
nil,
|
|
/* 54 Action12 <- <{p.startCall("TopN")}> */
|
|
nil,
|
|
/* 55 Action13 <- <{p.endCall()}> */
|
|
nil,
|
|
/* 56 Action14 <- <{p.startCall("Rows")}> */
|
|
nil,
|
|
/* 57 Action15 <- <{p.endCall()}> */
|
|
nil,
|
|
/* 58 Action16 <- <{p.startCall("Range")}> */
|
|
nil,
|
|
/* 59 Action17 <- <{p.addField("from")}> */
|
|
nil,
|
|
/* 60 Action18 <- <{p.addVal(buffer[begin:end])}> */
|
|
nil,
|
|
/* 61 Action19 <- <{p.addField("to")}> */
|
|
nil,
|
|
/* 62 Action20 <- <{p.addVal(buffer[begin:end])}> */
|
|
nil,
|
|
/* 63 Action21 <- <{p.endCall()}> */
|
|
nil,
|
|
nil,
|
|
/* 65 Action22 <- <{ p.startCall(buffer[begin:end] ) }> */
|
|
nil,
|
|
/* 66 Action23 <- <{ p.endCall() }> */
|
|
nil,
|
|
/* 67 Action24 <- <{ p.addBTWN() }> */
|
|
nil,
|
|
/* 68 Action25 <- <{ p.addLTE() }> */
|
|
nil,
|
|
/* 69 Action26 <- <{ p.addGTE() }> */
|
|
nil,
|
|
/* 70 Action27 <- <{ p.addEQ() }> */
|
|
nil,
|
|
/* 71 Action28 <- <{ p.addNEQ() }> */
|
|
nil,
|
|
/* 72 Action29 <- <{ p.addLT() }> */
|
|
nil,
|
|
/* 73 Action30 <- <{ p.addGT() }> */
|
|
nil,
|
|
/* 74 Action31 <- <{p.startConditional()}> */
|
|
nil,
|
|
/* 75 Action32 <- <{p.endConditional()}> */
|
|
nil,
|
|
/* 76 Action33 <- <{p.condAdd(buffer[begin:end])}> */
|
|
nil,
|
|
/* 77 Action34 <- <{p.condAdd(buffer[begin:end])}> */
|
|
nil,
|
|
/* 78 Action35 <- <{p.condAdd(buffer[begin:end])}> */
|
|
nil,
|
|
/* 79 Action36 <- <{ p.startList() }> */
|
|
nil,
|
|
/* 80 Action37 <- <{ p.endList() }> */
|
|
nil,
|
|
/* 81 Action38 <- <{ p.startList() }> */
|
|
nil,
|
|
/* 82 Action39 <- <{ p.endList() }> */
|
|
nil,
|
|
/* 83 Action40 <- <{ p.addVal(nil) }> */
|
|
nil,
|
|
/* 84 Action41 <- <{ p.addVal(true) }> */
|
|
nil,
|
|
/* 85 Action42 <- <{ p.addVal(false) }> */
|
|
nil,
|
|
/* 86 Action43 <- <{ p.addVal(buffer[begin:end]) }> */
|
|
nil,
|
|
/* 87 Action44 <- <{ p.startCall(buffer[begin:end]) }> */
|
|
nil,
|
|
/* 88 Action45 <- <{ p.addVal(p.endCall()) }> */
|
|
nil,
|
|
/* 89 Action46 <- <{ p.addVal(buffer[begin:end]) }> */
|
|
nil,
|
|
/* 90 Action47 <- <{ p.addVal(buffer[begin:end]) }> */
|
|
nil,
|
|
/* 91 Action48 <- <{ p.addVal(buffer[begin:end]) }> */
|
|
nil,
|
|
/* 92 Action49 <- <{ p.addNumVal(buffer[begin:end], true) }> */
|
|
nil,
|
|
/* 93 Action50 <- <{ p.addNumVal(buffer[begin:end], true) }> */
|
|
nil,
|
|
/* 94 Action51 <- <{ p.addNumVal(buffer[begin:end], false) }> */
|
|
nil,
|
|
/* 95 Action52 <- <{ p.addNumVal(buffer[begin:end], false) }> */
|
|
nil,
|
|
/* 96 Action53 <- <{ p.addField(buffer[begin:end]) }> */
|
|
nil,
|
|
/* 97 Action54 <- <{ p.addPosStr("_field", buffer[begin:end]) }> */
|
|
nil,
|
|
/* 98 Action55 <- <{p.addPosNum("_col", buffer[begin:end])}> */
|
|
nil,
|
|
/* 99 Action56 <- <{p.addPosStr("_col", buffer[begin:end])}> */
|
|
nil,
|
|
/* 100 Action57 <- <{p.addPosStr("_col", buffer[begin:end])}> */
|
|
nil,
|
|
/* 101 Action58 <- <{p.addPosNum("_row", buffer[begin:end])}> */
|
|
nil,
|
|
/* 102 Action59 <- <{p.addPosStr("_row", buffer[begin:end])}> */
|
|
nil,
|
|
/* 103 Action60 <- <{p.addPosStr("_row", buffer[begin:end])}> */
|
|
nil,
|
|
/* 104 Action61 <- <{p.addPosStr("_timestamp", buffer[begin:end])}> */
|
|
nil,
|
|
}
|
|
p.rules = _rules
|
|
return nil
|
|
}
|