From 18ed02d7fb00e985d0ce17e67708aec17479bd12 Mon Sep 17 00:00:00 2001 From: Seebs Date: Wed, 7 Oct 2020 16:11:47 -0500 Subject: [PATCH] drop float/decimal distinction in PQL PQL always produces decimals, which have effectively-arbitrary range, but can convert them to floats when required; the executor then requests this conversion in the handful of cases (SetRowAttrs and SetColumnAttrs) where it wants floats rather than decimals. Not yet fixed: The "Range" call may also be wrong now. It was specifying an "fvalue" but is now effectively getting what used to be called a "dvalue". However, so far as I can tell, that didn't work before either. --- executor.go | 6 +- pql/ast.go | 32 +- pql/pql.peg | 51 +- pql/pql.peg.go | 3128 +++++++++++++++++++++--------------------------- 4 files changed, 1405 insertions(+), 1812 deletions(-) diff --git a/executor.go b/executor.go index 08d0feb47..973b163fc 100644 --- a/executor.go +++ b/executor.go @@ -4286,7 +4286,7 @@ func (e *executor) executeSetRowAttrs(ctx context.Context, qcx *Qcx, index strin } // Copy args and remove reserved fields. - attrs := pql.CopyArgs(c.Args) + attrs := pql.CopyArgsDecimalToFloat(c.Args) delete(attrs, "_field") delete(attrs, "_"+rowLabel) @@ -4353,7 +4353,7 @@ func (e *executor) executeBulkSetRowAttrs(ctx context.Context, qcx *Qcx, index s } // Copy args and remove reserved fields. - attrs := pql.CopyArgs(c.Args) + attrs := pql.CopyArgsDecimalToFloat(c.Args) delete(attrs, "_field") delete(attrs, "_"+rowLabel) @@ -4437,7 +4437,7 @@ func (e *executor) executeSetColumnAttrs(ctx context.Context, qcx *Qcx, index st } // Copy args and remove reserved fields. - attrs := pql.CopyArgs(c.Args) + attrs := pql.CopyArgsDecimalToFloat(c.Args) delete(attrs, "_"+columnLabel) delete(attrs, "field") diff --git a/pql/ast.go b/pql/ast.go index b2e03fece..49a5e5e68 100644 --- a/pql/ast.go +++ b/pql/ast.go @@ -60,7 +60,7 @@ func (q *Query) lastCallStackElem() *callStackElem { func (q *Query) addPosNum(key, value string) { q.addField(key) - q.addNumVal(value, false) + q.addNumVal(value) } func (q *Query) addPosStr(key, value string) { @@ -85,9 +85,9 @@ func (q *Query) endConditional() { if len(q.conditional) != 5 { panic(fmt.Sprintf("conditional of wrong length: %#v", q.conditional)) } - low := parseNum(q.conditional[0], false) + low := parseNum(q.conditional[0]) field := q.conditional[2] - high := parseNum(q.conditional[4], false) + high := parseNum(q.conditional[4]) var op Token switch q.conditional[1] + q.conditional[3] { @@ -162,12 +162,12 @@ func (q *Query) addVal(val interface{}) { elem.lastCond = ILLEGAL } -func (q *Query) addNumVal(val string, asFloat bool) { +func (q *Query) addNumVal(val string) { elem := q.lastCallStackElem() if elem == nil || elem.lastField == "" { panic(fmt.Sprintf("addIntVal called with '%s' when lastField is empty", val)) } - ival := parseNum(val, asFloat) + ival := parseNum(val) if elem.inList { if elem.lastCond != ILLEGAL { list := elem.call.Args[elem.lastField].(*Condition).Value.([]interface{}) @@ -991,6 +991,20 @@ func CopyArgs(m map[string]interface{}) map[string]interface{} { return other } +// CopyArgsDecimalToFloat makes a copy of m, but in the process, +// replaces any Decimal values with Float64 values. +func CopyArgsDecimalToFloat(m map[string]interface{}) map[string]interface{} { + other := make(map[string]interface{}, len(m)) + for k, v := range m { + if dec, ok := v.(Decimal); ok { + other[k] = dec.Float64() + } else { + other[k] = v + } + } + return other +} + func joinInterfaceSlice(a []interface{}) string { other := make([]string, len(a)) for i := range a { @@ -1012,15 +1026,11 @@ func joinUint64Slice(a []uint64) string { return "[" + strings.Join(other, ",") + "]" } -func parseNum(val string, asFloat bool) interface{} { +func parseNum(val string) interface{} { var ival interface{} var err error if strings.Contains(val, ".") { - if asFloat { - ival, err = strconv.ParseFloat(val, 64) - } else { - ival, err = ParseDecimal(val) - } + ival, err = ParseDecimal(val) } else { ival, err = strconv.ParseInt(val, 10, 64) } diff --git a/pql/pql.peg b/pql/pql.peg index cf1a2aafe..501367ff3 100644 --- a/pql/pql.peg +++ b/pql/pql.peg @@ -6,24 +6,20 @@ type PQL Peg { Calls <- sp (Call sp)* !. -Call <- 'Set' {p.startCall("Set")} open col comma dargs (comma timestamp)? close {p.endCall()} - / 'SetRowAttrs' {p.startCall("SetRowAttrs")} open posfield comma row comma fargs close {p.endCall()} - / 'SetColumnAttrs' {p.startCall("SetColumnAttrs")} open col comma fargs close {p.endCall()} - / 'Clear' {p.startCall("Clear")} open col comma dargs close {p.endCall()} - / 'ClearRow' {p.startCall("ClearRow")} open darg close {p.endCall()} - / 'Store' {p.startCall("Store")} open Call comma darg close {p.endCall()} +Call <- 'Set' {p.startCall("Set")} open col comma args (comma timestamp)? close {p.endCall()} + / 'SetRowAttrs' {p.startCall("SetRowAttrs")} open posfield comma row comma args close {p.endCall()} + / 'SetColumnAttrs' {p.startCall("SetColumnAttrs")} open col comma args close {p.endCall()} + / 'Clear' {p.startCall("Clear")} open col comma args close {p.endCall()} + / 'ClearRow' {p.startCall("ClearRow")} open arg close {p.endCall()} + / 'Store' {p.startCall("Store")} open Call comma arg close {p.endCall()} / 'TopN' {p.startCall("TopN")} open posfield (comma allargs)? close {p.endCall()} / 'Rows' {p.startCall("Rows")} open posfield (comma allargs)? close {p.endCall()} - / 'Range' {p.startCall("Range")} open field sp '=' sp fvalue comma 'from='? {p.addField("from")} timestampfmt {p.addVal(text)} comma 'to='? sp {p.addField("to")} timestampfmt {p.addVal(text)} close {p.endCall()} + / 'Range' {p.startCall("Range")} open field sp '=' sp value comma 'from='? {p.addField("from")} timestampfmt {p.addVal(text)} comma 'to='? sp {p.addField("to")} timestampfmt {p.addVal(text)} close {p.endCall()} / < IDENT > { p.startCall(text ) } open allargs comma? close { p.endCall() } -allargs <- Call (comma Call)* (comma dargs)? / dargs / sp -fargs <- farg (comma fargs)? sp -farg <- field sp '=' sp fvalue - / field sp COND sp fvalue - / conditional -dargs <- darg (comma dargs)? sp -darg <- field sp '=' sp dvalue - / field sp COND sp dvalue +allargs <- Call (comma Call)* (comma args)? / args / sp +args <- arg (comma args)? sp +arg <- field sp '=' sp value + / field sp COND sp value / conditional COND <- '><' { p.addBTWN() } / '<=' { p.addLTE() } @@ -38,30 +34,19 @@ condint <- < '-'? [0-9]* '.' [0-9]+ / '0' / '-'? [1-9] [0-9]* > sp {p.condAdd(te condLT <- <('<=' / '<')> sp {p.condAdd(text)} condfield <- sp {p.condAdd(text)} -dvalue <- ditem - / lbrack { p.startList() } dlist rbrack { p.endList() } -fvalue <- fitem - / lbrack { p.startList() } flist rbrack { p.endList() } -dlist <- ditem (comma dlist)? -flist <- fitem (comma flist)? -ditem <- itema - / decimal - / itemb -fitem <- itema - / float - / itemb -itema <- 'null' &(comma / sp close) { p.addVal(nil) } +value <- item + / lbrack { p.startList() } list rbrack { p.endList() } +list <- item (comma list)? +item <- 'null' &(comma / sp close) { p.addVal(nil) } / 'true' &(comma / sp close) { p.addVal(true) } / 'false' &(comma / sp close) { p.addVal(false) } / timestampfmt { p.addVal(text) } -itemb <- < IDENT > { p.startCall(text) } open allargs comma? close { p.addVal(p.endCall()) } + / < '-'? [0-9]+ ('.'[0-9]*)? > { p.addNumVal(text) } + / < '-'? '.'[0-9]+ > { p.addNumVal(text) } + / < IDENT > { p.startCall(text) } open allargs comma? close { p.addVal(p.endCall()) } / < ([[A-Z]] / [0-9] / '-' / '_' / ':')+ > { p.addVal(text) } / < '"' doublequotedstring '"' > { p.addVal(text) } / < '\'' singlequotedstring '\'' > { p.addVal(text) } -float <- < '-'? [0-9]+ ('.'[0-9]*)? > { p.addNumVal(text, true) } - / < '-'? '.'[0-9]+ > { p.addNumVal(text, true) } -decimal <- < '-'? [0-9]+ ('.'[0-9]*)? > { p.addNumVal(text, false) } - / < '-'? '.'[0-9]+ > { p.addNumVal(text, false) } doublequotedstring <- ( '\\"' / '\\\\' / '\\n' / '\\t' / [^"\\] )* singlequotedstring <- ( '\\\'' / '\\\\' / '\\n' / '\\t' / [^'\\] )* diff --git a/pql/pql.peg.go b/pql/pql.peg.go index f0ddff7ec..895de23c8 100644 --- a/pql/pql.peg.go +++ b/pql/pql.peg.go @@ -21,25 +21,16 @@ const ( ruleCalls ruleCall ruleallargs - rulefargs - rulefarg - ruledargs - ruledarg + ruleargs + rulearg ruleCOND ruleconditional rulecondint rulecondLT rulecondfield - ruledvalue - rulefvalue - ruledlist - ruleflist - ruleditem - rulefitem - ruleitema - ruleitemb - rulefloat - ruledecimal + rulevalue + rulelist + ruleitem ruledoublequotedstring rulesinglequotedstring rulefieldExpr @@ -118,10 +109,6 @@ const ( ruleAction55 ruleAction56 ruleAction57 - ruleAction58 - ruleAction59 - ruleAction60 - ruleAction61 ) var rul3s = [...]string{ @@ -129,25 +116,16 @@ var rul3s = [...]string{ "Calls", "Call", "allargs", - "fargs", - "farg", - "dargs", - "darg", + "args", + "arg", "COND", "conditional", "condint", "condLT", "condfield", - "dvalue", - "fvalue", - "dlist", - "flist", - "ditem", - "fitem", - "itema", - "itemb", - "float", - "decimal", + "value", + "list", + "item", "doublequotedstring", "singlequotedstring", "fieldExpr", @@ -226,10 +204,6 @@ var rul3s = [...]string{ "Action55", "Action56", "Action57", - "Action58", - "Action59", - "Action60", - "Action61", } type token32 struct { @@ -346,7 +320,7 @@ type PQL struct { Buffer string buffer []rune - rules [105]func() bool + rules [92]func() bool parse func(rule ...int) error reset func() Pretty bool @@ -525,17 +499,17 @@ func (p *PQL) Execute() { case ruleAction37: p.endList() case ruleAction38: - p.startList() - case ruleAction39: - p.endList() - case ruleAction40: p.addVal(nil) - case ruleAction41: + case ruleAction39: p.addVal(true) - case ruleAction42: + case ruleAction40: p.addVal(false) - case ruleAction43: + case ruleAction41: p.addVal(text) + case ruleAction42: + p.addNumVal(text) + case ruleAction43: + p.addNumVal(text) case ruleAction44: p.startCall(text) case ruleAction45: @@ -547,30 +521,22 @@ func (p *PQL) Execute() { case ruleAction48: p.addVal(text) case ruleAction49: - p.addNumVal(text, true) - case ruleAction50: - p.addNumVal(text, true) - case ruleAction51: - p.addNumVal(text, false) - case ruleAction52: - p.addNumVal(text, false) - case ruleAction53: p.addField(text) - case ruleAction54: + case ruleAction50: p.addPosStr("_field", text) - case ruleAction55: + case ruleAction51: p.addPosNum("_col", text) - case ruleAction56: + case ruleAction52: p.addPosStr("_col", text) - case ruleAction57: + case ruleAction53: p.addPosStr("_col", text) - case ruleAction58: + case ruleAction54: p.addPosNum("_row", text) - case ruleAction59: + case ruleAction55: p.addPosStr("_row", text) - case ruleAction60: + case ruleAction56: p.addPosStr("_row", text) - case ruleAction61: + case ruleAction57: p.addPosStr("_timestamp", text) } @@ -702,7 +668,7 @@ func (p *PQL) Init(options ...func(*PQL) error) error { 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) / ( Action22 open allargs comma? close Action23))> */ + /* 1 Call <- <(('S' 'e' 't' Action0 open col comma args (comma timestamp)? close Action1) / ('S' 'e' 't' 'R' 'o' 'w' 'A' 't' 't' 'r' 's' Action2 open posfield comma row comma args close Action3) / ('S' 'e' 't' 'C' 'o' 'l' 'u' 'm' 'n' 'A' 't' 't' 'r' 's' Action4 open col comma args close Action5) / ('C' 'l' 'e' 'a' 'r' Action6 open col comma args close Action7) / ('C' 'l' 'e' 'a' 'r' 'R' 'o' 'w' Action8 open arg close Action9) / ('S' 't' 'o' 'r' 'e' Action10 open Call comma arg 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 value comma ('f' 'r' 'o' 'm' '=')? Action17 timestampfmt Action18 comma ('t' 'o' '=')? sp Action19 timestampfmt Action20 close Action21) / ( Action22 open allargs comma? close Action23))> */ func() bool { position5, tokenIndex5 := position, tokenIndex { @@ -733,7 +699,7 @@ func (p *PQL) Init(options ...func(*PQL) error) error { if !_rules[rulecomma]() { goto l8 } - if !_rules[ruledargs]() { + if !_rules[ruleargs]() { goto l8 } { @@ -751,7 +717,7 @@ func (p *PQL) Init(options ...func(*PQL) error) error { add(rulePegText, position13) } { - add(ruleAction61, position) + add(ruleAction57, position) } add(ruletimestamp, position12) } @@ -837,7 +803,7 @@ func (p *PQL) Init(options ...func(*PQL) error) error { add(rulePegText, position21) } { - add(ruleAction58, position) + add(ruleAction54, position) } goto l19 l20: @@ -858,7 +824,7 @@ func (p *PQL) Init(options ...func(*PQL) error) error { add(rulePegText, position24) } { - add(ruleAction59, position) + add(ruleAction55, position) } goto l19 l23: @@ -879,7 +845,7 @@ func (p *PQL) Init(options ...func(*PQL) error) error { add(rulePegText, position26) } { - add(ruleAction60, position) + add(ruleAction56, position) } } l19: @@ -888,7 +854,7 @@ func (p *PQL) Init(options ...func(*PQL) error) error { if !_rules[rulecomma]() { goto l16 } - if !_rules[rulefargs]() { + if !_rules[ruleargs]() { goto l16 } if !_rules[ruleclose]() { @@ -968,7 +934,7 @@ func (p *PQL) Init(options ...func(*PQL) error) error { if !_rules[rulecomma]() { goto l29 } - if !_rules[rulefargs]() { + if !_rules[ruleargs]() { goto l29 } if !_rules[ruleclose]() { @@ -1012,7 +978,7 @@ func (p *PQL) Init(options ...func(*PQL) error) error { if !_rules[rulecomma]() { goto l32 } - if !_rules[ruledargs]() { + if !_rules[ruleargs]() { goto l32 } if !_rules[ruleclose]() { @@ -1062,7 +1028,7 @@ func (p *PQL) Init(options ...func(*PQL) error) error { if !_rules[ruleopen]() { goto l35 } - if !_rules[ruledarg]() { + if !_rules[rulearg]() { goto l35 } if !_rules[ruleclose]() { @@ -1106,7 +1072,7 @@ func (p *PQL) Init(options ...func(*PQL) error) error { if !_rules[rulecomma]() { goto l38 } - if !_rules[ruledarg]() { + if !_rules[rulearg]() { goto l38 } if !_rules[ruleclose]() { @@ -1251,7 +1217,7 @@ func (p *PQL) Init(options ...func(*PQL) error) error { if !_rules[rulesp]() { goto l51 } - if !_rules[rulefvalue]() { + if !_rules[rulevalue]() { goto l51 } if !_rules[rulecomma]() { @@ -1377,7 +1343,7 @@ func (p *PQL) Init(options ...func(*PQL) error) error { position, tokenIndex = position5, tokenIndex5 return false }, - /* 2 allargs <- <((Call (comma Call)* (comma dargs)?) / dargs / sp)> */ + /* 2 allargs <- <((Call (comma Call)* (comma args)?) / args / sp)> */ func() bool { position67, tokenIndex67 := position, tokenIndex { @@ -1405,7 +1371,7 @@ func (p *PQL) Init(options ...func(*PQL) error) error { if !_rules[rulecomma]() { goto l73 } - if !_rules[ruledargs]() { + if !_rules[ruleargs]() { goto l73 } goto l74 @@ -1416,7 +1382,7 @@ func (p *PQL) Init(options ...func(*PQL) error) error { goto l69 l70: position, tokenIndex = position69, tokenIndex69 - if !_rules[ruledargs]() { + if !_rules[ruleargs]() { goto l75 } goto l69 @@ -1434,2245 +1400,1877 @@ func (p *PQL) Init(options ...func(*PQL) error) error { position, tokenIndex = position67, tokenIndex67 return false }, - /* 3 fargs <- <(farg (comma fargs)? sp)> */ + /* 3 args <- <(arg (comma args)? 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) + if !_rules[rulearg]() { + goto l76 } { - position82, tokenIndex82 := position, tokenIndex + position78, tokenIndex78 := position, tokenIndex if !_rules[rulecomma]() { - goto l82 + goto l78 } - if !_rules[rulefargs]() { - goto l82 + if !_rules[ruleargs]() { + goto l78 } - goto l83 - l82: - position, tokenIndex = position82, tokenIndex82 + goto l79 + l78: + position, tokenIndex = position78, tokenIndex78 } - l83: + l79: if !_rules[rulesp]() { goto l76 } - add(rulefargs, position77) + add(ruleargs, position77) } return true l76: position, tokenIndex = position76, tokenIndex76 return false }, - /* 4 farg <- <((field sp '=' sp fvalue) / (field sp COND sp fvalue) / conditional)> */ + /* 4 arg <- <((field sp '=' sp value) / (field sp COND sp value) / conditional)> */ + func() bool { + position80, tokenIndex80 := position, tokenIndex + { + position81 := position + { + position82, tokenIndex82 := position, tokenIndex + if !_rules[rulefield]() { + goto l83 + } + if !_rules[rulesp]() { + goto l83 + } + if buffer[position] != rune('=') { + goto l83 + } + position++ + if !_rules[rulesp]() { + goto l83 + } + if !_rules[rulevalue]() { + goto l83 + } + goto l82 + l83: + position, tokenIndex = position82, tokenIndex82 + if !_rules[rulefield]() { + goto l84 + } + if !_rules[rulesp]() { + goto l84 + } + { + position85 := position + { + position86, tokenIndex86 := position, tokenIndex + if buffer[position] != rune('>') { + goto l87 + } + position++ + if buffer[position] != rune('<') { + goto l87 + } + position++ + { + add(ruleAction24, position) + } + goto l86 + l87: + position, tokenIndex = position86, tokenIndex86 + if buffer[position] != rune('<') { + goto l89 + } + position++ + if buffer[position] != rune('=') { + goto l89 + } + position++ + { + add(ruleAction25, position) + } + goto l86 + l89: + position, tokenIndex = position86, tokenIndex86 + if buffer[position] != rune('>') { + goto l91 + } + position++ + if buffer[position] != rune('=') { + goto l91 + } + position++ + { + add(ruleAction26, position) + } + goto l86 + l91: + position, tokenIndex = position86, tokenIndex86 + if buffer[position] != rune('=') { + goto l93 + } + position++ + if buffer[position] != rune('=') { + goto l93 + } + position++ + { + add(ruleAction27, position) + } + goto l86 + l93: + position, tokenIndex = position86, tokenIndex86 + if buffer[position] != rune('!') { + goto l95 + } + position++ + if buffer[position] != rune('=') { + goto l95 + } + position++ + { + add(ruleAction28, position) + } + goto l86 + l95: + position, tokenIndex = position86, tokenIndex86 + if buffer[position] != rune('<') { + goto l97 + } + position++ + { + add(ruleAction29, position) + } + goto l86 + l97: + position, tokenIndex = position86, tokenIndex86 + if buffer[position] != rune('>') { + goto l84 + } + position++ + { + add(ruleAction30, position) + } + } + l86: + add(ruleCOND, position85) + } + if !_rules[rulesp]() { + goto l84 + } + if !_rules[rulevalue]() { + goto l84 + } + goto l82 + l84: + position, tokenIndex = position82, tokenIndex82 + { + position100 := position + { + add(ruleAction31, position) + } + if !_rules[rulecondint]() { + goto l80 + } + if !_rules[rulecondLT]() { + goto l80 + } + { + position102 := position + { + position103 := position + if !_rules[rulefieldExpr]() { + goto l80 + } + add(rulePegText, position103) + } + if !_rules[rulesp]() { + goto l80 + } + { + add(ruleAction35, position) + } + add(rulecondfield, position102) + } + if !_rules[rulecondLT]() { + goto l80 + } + if !_rules[rulecondint]() { + goto l80 + } + { + add(ruleAction32, position) + } + add(ruleconditional, position100) + } + } + l82: + add(rulearg, position81) + } + return true + l80: + position, tokenIndex = position80, tokenIndex80 + return false + }, + /* 5 COND <- <(('>' '<' Action24) / ('<' '=' Action25) / ('>' '=' Action26) / ('=' '=' Action27) / ('!' '=' Action28) / ('<' Action29) / ('>' Action30))> */ nil, - /* 5 dargs <- <(darg (comma dargs)? sp)> */ + /* 6 conditional <- <(Action31 condint condLT condfield condLT condint Action32)> */ + nil, + /* 7 condint <- <(<(('-'? [0-9]* '.' [0-9]+) / '0' / ('-'? [1-9] [0-9]*))> sp Action33)> */ func() bool { - position85, tokenIndex85 := position, tokenIndex + position108, tokenIndex108 := position, tokenIndex { - position86 := position - if !_rules[ruledarg]() { - goto l85 - } + position109 := position { - 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++ + position110 := 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 + position111, tokenIndex111 := position, tokenIndex { - position122, tokenIndex122 := position, tokenIndex + position113, tokenIndex113 := position, tokenIndex if buffer[position] != rune('-') { - goto l122 + goto l113 } position++ - goto l123 - l122: - position, tokenIndex = position122, tokenIndex122 + goto l114 + l113: + position, tokenIndex = position113, tokenIndex113 } - l123: - l124: + l114: + l115: { - position125, tokenIndex125 := position, tokenIndex + position116, tokenIndex116 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l125 + goto l116 } position++ - goto l124 - l125: - position, tokenIndex = position125, tokenIndex125 + goto l115 + l116: + position, tokenIndex = position116, tokenIndex116 } if buffer[position] != rune('.') { - goto l121 + goto l112 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l121 + goto l112 } position++ - l126: + l117: { - position127, tokenIndex127 := position, tokenIndex + position118, tokenIndex118 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l127 + goto l118 } 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 + l118: + position, tokenIndex = position118, tokenIndex118 + } + goto l111 + l112: + position, tokenIndex = position111, tokenIndex111 + if buffer[position] != rune('0') { + goto l119 } position++ - l131: + goto l111 + l119: + position, tokenIndex = position111, tokenIndex111 { - position132, tokenIndex132 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l132 + position120, tokenIndex120 := position, tokenIndex + if buffer[position] != rune('-') { + goto l120 } position++ - goto l131 - l132: - position, tokenIndex = position132, tokenIndex132 + goto l121 + l120: + position, tokenIndex = position120, tokenIndex120 + } + l121: + if c := buffer[position]; c < rune('1') || c > rune('9') { + goto l108 + } + position++ + l122: + { + position123, tokenIndex123 := position, tokenIndex + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l123 + } + position++ + goto l122 + l123: + position, tokenIndex = position123, tokenIndex123 } } - l120: - add(rulePegText, position119) + l111: + add(rulePegText, position110) } if !_rules[rulesp]() { - goto l117 + goto l108 } { add(ruleAction33, position) } - add(rulecondint, position118) + add(rulecondint, position109) } return true - l117: - position, tokenIndex = position117, tokenIndex117 + l108: + position, tokenIndex = position108, tokenIndex108 return false }, - /* 10 condLT <- <(<(('<' '=') / '<')> sp Action34)> */ + /* 8 condLT <- <(<(('<' '=') / '<')> sp Action34)> */ func() bool { - position134, tokenIndex134 := position, tokenIndex + position125, tokenIndex125 := position, tokenIndex { - position135 := position + position126 := position { - position136 := position + position127 := position { - position137, tokenIndex137 := position, tokenIndex + position128, tokenIndex128 := position, tokenIndex if buffer[position] != rune('<') { - goto l138 + goto l129 } position++ if buffer[position] != rune('=') { - goto l138 + goto l129 } position++ - goto l137 - l138: - position, tokenIndex = position137, tokenIndex137 + goto l128 + l129: + position, tokenIndex = position128, tokenIndex128 if buffer[position] != rune('<') { - goto l134 + goto l125 } position++ } - l137: - add(rulePegText, position136) + l128: + add(rulePegText, position127) } if !_rules[rulesp]() { - goto l134 + goto l125 } { add(ruleAction34, position) } - add(rulecondLT, position135) + add(rulecondLT, position126) } return true - l134: - position, tokenIndex = position134, tokenIndex134 + l125: + position, tokenIndex = position125, tokenIndex125 return false }, - /* 11 condfield <- <( sp Action35)> */ + /* 9 condfield <- <( sp Action35)> */ nil, - /* 12 dvalue <- <(ditem / (lbrack Action36 dlist rbrack Action37))> */ + /* 10 value <- <(item / (lbrack Action36 list rbrack Action37))> */ func() bool { - position141, tokenIndex141 := position, tokenIndex + position132, tokenIndex132 := position, tokenIndex { - position142 := position + position133 := position { - position143, tokenIndex143 := position, tokenIndex - if !_rules[ruleditem]() { - goto l144 + position134, tokenIndex134 := position, tokenIndex + if !_rules[ruleitem]() { + goto l135 } - goto l143 - l144: - position, tokenIndex = position143, tokenIndex143 - if !_rules[rulelbrack]() { - goto l141 + goto l134 + l135: + position, tokenIndex = position134, tokenIndex134 + { + position136 := position + if buffer[position] != rune('[') { + goto l132 + } + position++ + if !_rules[rulesp]() { + goto l132 + } + add(rulelbrack, position136) } { add(ruleAction36, position) } - if !_rules[ruledlist]() { - goto l141 + if !_rules[rulelist]() { + goto l132 } - if !_rules[rulerbrack]() { - goto l141 + { + position138 := position + if !_rules[rulesp]() { + goto l132 + } + if buffer[position] != rune(']') { + goto l132 + } + position++ + if !_rules[rulesp]() { + goto l132 + } + add(rulerbrack, position138) } { add(ruleAction37, position) } } - l143: - add(ruledvalue, position142) + l134: + add(rulevalue, position133) } return true - l141: - position, tokenIndex = position141, tokenIndex141 + l132: + position, tokenIndex = position132, tokenIndex132 return false }, - /* 13 fvalue <- <(fitem / (lbrack Action38 flist rbrack Action39))> */ + /* 11 list <- <(item (comma list)?)> */ func() bool { - position147, tokenIndex147 := position, tokenIndex + position140, tokenIndex140 := position, tokenIndex { - position148 := position + position141 := position + if !_rules[ruleitem]() { + goto l140 + } { - position149, tokenIndex149 := position, tokenIndex - if !_rules[rulefitem]() { - goto l150 + position142, tokenIndex142 := position, tokenIndex + if !_rules[rulecomma]() { + goto l142 } - goto l149 - l150: - position, tokenIndex = position149, tokenIndex149 - if !_rules[rulelbrack]() { + if !_rules[rulelist]() { + goto l142 + } + goto l143 + l142: + position, tokenIndex = position142, tokenIndex142 + } + l143: + add(rulelist, position141) + } + return true + l140: + position, tokenIndex = position140, tokenIndex140 + return false + }, + /* 12 item <- <(('n' 'u' 'l' 'l' &(comma / (sp close)) Action38) / ('t' 'r' 'u' 'e' &(comma / (sp close)) Action39) / ('f' 'a' 'l' 's' 'e' &(comma / (sp close)) Action40) / (timestampfmt Action41) / (<('-'? [0-9]+ ('.' [0-9]*)?)> Action42) / (<('-'? '.' [0-9]+)> Action43) / ( Action44 open allargs comma? close Action45) / (<([a-z] / [A-Z] / [0-9] / '-' / '_' / ':')+> Action46) / (<('"' doublequotedstring '"')> Action47) / (<('\'' singlequotedstring '\'')> Action48))> */ + func() bool { + position144, tokenIndex144 := position, tokenIndex + { + position145 := position + { + position146, tokenIndex146 := position, tokenIndex + if buffer[position] != rune('n') { goto l147 } + position++ + if buffer[position] != rune('u') { + goto l147 + } + position++ + if buffer[position] != rune('l') { + goto l147 + } + position++ + if buffer[position] != rune('l') { + goto l147 + } + position++ + { + position148, tokenIndex148 := position, tokenIndex + { + position149, tokenIndex149 := position, tokenIndex + if !_rules[rulecomma]() { + goto l150 + } + goto l149 + l150: + position, tokenIndex = position149, tokenIndex149 + if !_rules[rulesp]() { + goto l147 + } + if !_rules[ruleclose]() { + goto l147 + } + } + l149: + position, tokenIndex = position148, tokenIndex148 + } { add(ruleAction38, position) } - if !_rules[ruleflist]() { - goto l147 + goto l146 + l147: + position, tokenIndex = position146, tokenIndex146 + if buffer[position] != rune('t') { + goto l152 } - if !_rules[rulerbrack]() { - goto l147 + position++ + if buffer[position] != rune('r') { + goto l152 + } + position++ + if buffer[position] != rune('u') { + goto l152 + } + position++ + if buffer[position] != rune('e') { + goto l152 + } + position++ + { + position153, tokenIndex153 := position, tokenIndex + { + position154, tokenIndex154 := position, tokenIndex + if !_rules[rulecomma]() { + goto l155 + } + goto l154 + l155: + position, tokenIndex = position154, tokenIndex154 + if !_rules[rulesp]() { + goto l152 + } + if !_rules[ruleclose]() { + goto l152 + } + } + l154: + position, tokenIndex = position153, tokenIndex153 } { 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 + goto l146 + l152: + position, tokenIndex = position146, tokenIndex146 + if buffer[position] != rune('f') { + goto l157 } position++ - if buffer[position] != rune('u') { - goto l212 + if buffer[position] != rune('a') { + goto l157 } position++ if buffer[position] != rune('l') { - goto l212 + goto l157 } position++ - if buffer[position] != rune('l') { - goto l212 + if buffer[position] != rune('s') { + goto l157 + } + position++ + if buffer[position] != rune('e') { + goto l157 } position++ { - position213, tokenIndex213 := position, tokenIndex + position158, tokenIndex158 := position, tokenIndex { - position214, tokenIndex214 := position, tokenIndex + position159, tokenIndex159 := position, tokenIndex if !_rules[rulecomma]() { - goto l215 + goto l160 } - goto l214 - l215: - position, tokenIndex = position214, tokenIndex214 + goto l159 + l160: + position, tokenIndex = position159, tokenIndex159 if !_rules[rulesp]() { - goto l212 + goto l157 } if !_rules[ruleclose]() { - goto l212 + goto l157 } } - l214: - position, tokenIndex = position213, tokenIndex213 + l159: + position, tokenIndex = position158, tokenIndex158 } { 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 + goto l146 + l157: + position, tokenIndex = position146, tokenIndex146 + if !_rules[ruletimestampfmt]() { + goto l162 } { 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++ + goto l146 + l162: + position, tokenIndex = position146, tokenIndex146 { - position223, tokenIndex223 := position, tokenIndex + position165 := position { - 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 + position166, tokenIndex166 := position, tokenIndex + if buffer[position] != rune('-') { + goto l166 } + position++ + goto l167 + l166: + position, tokenIndex = position166, tokenIndex166 } - l224: - position, tokenIndex = position223, tokenIndex223 + l167: + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l164 + } + position++ + l168: + { + position169, tokenIndex169 := position, tokenIndex + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l169 + } + position++ + goto l168 + l169: + position, tokenIndex = position169, tokenIndex169 + } + { + position170, tokenIndex170 := position, tokenIndex + if buffer[position] != rune('.') { + goto l170 + } + 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 + } + goto l171 + l170: + position, tokenIndex = position170, tokenIndex170 + } + l171: + add(rulePegText, position165) } { add(ruleAction42, position) } - goto l211 - l222: - position, tokenIndex = position211, tokenIndex211 - if !_rules[ruletimestampfmt]() { - goto l209 + goto l146 + l164: + position, tokenIndex = position146, tokenIndex146 + { + position176 := position + { + position177, tokenIndex177 := position, tokenIndex + if buffer[position] != rune('-') { + goto l177 + } + position++ + goto l178 + l177: + position, tokenIndex = position177, tokenIndex177 + } + l178: + if buffer[position] != rune('.') { + goto l175 + } + position++ + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l175 + } + position++ + l179: + { + position180, tokenIndex180 := position, tokenIndex + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l180 + } + position++ + goto l179 + l180: + position, tokenIndex = position180, tokenIndex180 + } + add(rulePegText, position176) } { add(ruleAction43, position) } - } - l211: - add(ruleitema, position210) - } - return true - l209: - position, tokenIndex = position209, tokenIndex209 - return false - }, - /* 19 itemb <- <(( 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 + goto l146 + l175: + position, tokenIndex = position146, tokenIndex146 { - position232 := position + position183 := position if !_rules[ruleIDENT]() { - goto l231 + goto l182 } - add(rulePegText, position232) + add(rulePegText, position183) } { add(ruleAction44, position) } if !_rules[ruleopen]() { - goto l231 + goto l182 } if !_rules[ruleallargs]() { - goto l231 + goto l182 } { - position234, tokenIndex234 := position, tokenIndex + position185, tokenIndex185 := position, tokenIndex if !_rules[rulecomma]() { - goto l234 + goto l185 } - goto l235 - l234: - position, tokenIndex = position234, tokenIndex234 + goto l186 + l185: + position, tokenIndex = position185, tokenIndex185 } - l235: + l186: if !_rules[ruleclose]() { - goto l231 + goto l182 } { add(ruleAction45, position) } - goto l230 - l231: - position, tokenIndex = position230, tokenIndex230 + goto l146 + l182: + position, tokenIndex = position146, tokenIndex146 { - position238 := position + position189 := position { - position241, tokenIndex241 := position, tokenIndex + position192, tokenIndex192 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l242 + goto l193 } position++ - goto l241 - l242: - position, tokenIndex = position241, tokenIndex241 + goto l192 + l193: + position, tokenIndex = position192, tokenIndex192 if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l243 + goto l194 } position++ - goto l241 - l243: - position, tokenIndex = position241, tokenIndex241 + goto l192 + l194: + position, tokenIndex = position192, tokenIndex192 if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l244 + goto l195 } position++ - goto l241 - l244: - position, tokenIndex = position241, tokenIndex241 + goto l192 + l195: + position, tokenIndex = position192, tokenIndex192 if buffer[position] != rune('-') { - goto l245 + goto l196 } position++ - goto l241 - l245: - position, tokenIndex = position241, tokenIndex241 + goto l192 + l196: + position, tokenIndex = position192, tokenIndex192 if buffer[position] != rune('_') { - goto l246 + goto l197 } position++ - goto l241 - l246: - position, tokenIndex = position241, tokenIndex241 + goto l192 + l197: + position, tokenIndex = position192, tokenIndex192 if buffer[position] != rune(':') { - goto l237 + goto l188 } position++ } - l241: - l239: + l192: + l190: { - position240, tokenIndex240 := position, tokenIndex + position191, tokenIndex191 := position, tokenIndex { - position247, tokenIndex247 := position, tokenIndex + position198, tokenIndex198 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l248 + goto l199 } position++ - goto l247 - l248: - position, tokenIndex = position247, tokenIndex247 + goto l198 + l199: + position, tokenIndex = position198, tokenIndex198 if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l249 + goto l200 } position++ - goto l247 - l249: - position, tokenIndex = position247, tokenIndex247 + goto l198 + l200: + position, tokenIndex = position198, tokenIndex198 if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l250 + goto l201 } position++ - goto l247 - l250: - position, tokenIndex = position247, tokenIndex247 + goto l198 + l201: + position, tokenIndex = position198, tokenIndex198 if buffer[position] != rune('-') { - goto l251 + goto l202 } position++ - goto l247 - l251: - position, tokenIndex = position247, tokenIndex247 + goto l198 + l202: + position, tokenIndex = position198, tokenIndex198 if buffer[position] != rune('_') { - goto l252 + goto l203 } position++ - goto l247 - l252: - position, tokenIndex = position247, tokenIndex247 + goto l198 + l203: + position, tokenIndex = position198, tokenIndex198 if buffer[position] != rune(':') { - goto l240 + goto l191 } position++ } - l247: - goto l239 - l240: - position, tokenIndex = position240, tokenIndex240 + l198: + goto l190 + l191: + position, tokenIndex = position191, tokenIndex191 } - add(rulePegText, position238) + add(rulePegText, position189) } { add(ruleAction46, position) } - goto l230 - l237: - position, tokenIndex = position230, tokenIndex230 + goto l146 + l188: + position, tokenIndex = position146, tokenIndex146 { - position255 := position + position206 := position if buffer[position] != rune('"') { - goto l254 + goto l205 } position++ if !_rules[ruledoublequotedstring]() { - goto l254 + goto l205 } if buffer[position] != rune('"') { - goto l254 + goto l205 } position++ - add(rulePegText, position255) + add(rulePegText, position206) } { add(ruleAction47, position) } - goto l230 - l254: - position, tokenIndex = position230, tokenIndex230 + goto l146 + l205: + position, tokenIndex = position146, tokenIndex146 { - position257 := position + position208 := position if buffer[position] != rune('\'') { - goto l228 + goto l144 } position++ if !_rules[rulesinglequotedstring]() { - goto l228 + goto l144 } if buffer[position] != rune('\'') { - goto l228 + goto l144 } position++ - add(rulePegText, position257) + add(rulePegText, position208) } { add(ruleAction48, position) } } - l230: - add(ruleitemb, position229) + l146: + add(ruleitem, position145) } return true - l228: - position, tokenIndex = position228, tokenIndex228 + l144: + position, tokenIndex = position144, tokenIndex144 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') / (!('"' / '\\') .))*> */ + /* 13 doublequotedstring <- <(('\\' '"') / ('\\' '\\') / ('\\' 'n') / ('\\' 't') / (!('"' / '\\') .))*> */ func() bool { { - position262 := position - l263: + position211 := position + l212: { - position264, tokenIndex264 := position, tokenIndex + position213, tokenIndex213 := position, tokenIndex { - position265, tokenIndex265 := position, tokenIndex + position214, tokenIndex214 := position, tokenIndex if buffer[position] != rune('\\') { - goto l266 + goto l215 } position++ if buffer[position] != rune('"') { - goto l266 + goto l215 } position++ - goto l265 - l266: - position, tokenIndex = position265, tokenIndex265 + goto l214 + l215: + position, tokenIndex = position214, tokenIndex214 if buffer[position] != rune('\\') { - goto l267 + goto l216 } position++ if buffer[position] != rune('\\') { - goto l267 + goto l216 } position++ - goto l265 - l267: - position, tokenIndex = position265, tokenIndex265 + goto l214 + l216: + position, tokenIndex = position214, tokenIndex214 if buffer[position] != rune('\\') { - goto l268 + goto l217 } position++ if buffer[position] != rune('n') { - goto l268 + goto l217 } position++ - goto l265 - l268: - position, tokenIndex = position265, tokenIndex265 + goto l214 + l217: + position, tokenIndex = position214, tokenIndex214 if buffer[position] != rune('\\') { - goto l269 + goto l218 } position++ if buffer[position] != rune('t') { - goto l269 + goto l218 } position++ - goto l265 - l269: - position, tokenIndex = position265, tokenIndex265 + goto l214 + l218: + position, tokenIndex = position214, tokenIndex214 { - position270, tokenIndex270 := position, tokenIndex + position219, tokenIndex219 := position, tokenIndex { - position271, tokenIndex271 := position, tokenIndex + position220, tokenIndex220 := position, tokenIndex if buffer[position] != rune('"') { - goto l272 + goto l221 } position++ - goto l271 - l272: - position, tokenIndex = position271, tokenIndex271 + goto l220 + l221: + position, tokenIndex = position220, tokenIndex220 if buffer[position] != rune('\\') { - goto l270 + goto l219 } position++ } - l271: - goto l264 - l270: - position, tokenIndex = position270, tokenIndex270 + l220: + goto l213 + l219: + position, tokenIndex = position219, tokenIndex219 } if !matchDot() { - goto l264 + goto l213 } } - l265: - goto l263 - l264: - position, tokenIndex = position264, tokenIndex264 + l214: + goto l212 + l213: + position, tokenIndex = position213, tokenIndex213 } - add(ruledoublequotedstring, position262) + add(ruledoublequotedstring, position211) } return true }, - /* 23 singlequotedstring <- <(('\\' '\'') / ('\\' '\\') / ('\\' 'n') / ('\\' 't') / (!('\'' / '\\') .))*> */ + /* 14 singlequotedstring <- <(('\\' '\'') / ('\\' '\\') / ('\\' 'n') / ('\\' 't') / (!('\'' / '\\') .))*> */ func() bool { { - position274 := position - l275: + position223 := position + l224: { - position276, tokenIndex276 := position, tokenIndex + position225, tokenIndex225 := position, tokenIndex { - position277, tokenIndex277 := position, tokenIndex + position226, tokenIndex226 := position, tokenIndex if buffer[position] != rune('\\') { - goto l278 + goto l227 } position++ if buffer[position] != rune('\'') { - goto l278 + goto l227 } position++ - goto l277 - l278: - position, tokenIndex = position277, tokenIndex277 + goto l226 + l227: + position, tokenIndex = position226, tokenIndex226 if buffer[position] != rune('\\') { - goto l279 + goto l228 } position++ if buffer[position] != rune('\\') { - goto l279 + goto l228 } position++ - goto l277 - l279: - position, tokenIndex = position277, tokenIndex277 + goto l226 + l228: + position, tokenIndex = position226, tokenIndex226 if buffer[position] != rune('\\') { - goto l280 + goto l229 } position++ if buffer[position] != rune('n') { - goto l280 + goto l229 } position++ - goto l277 - l280: - position, tokenIndex = position277, tokenIndex277 + goto l226 + l229: + position, tokenIndex = position226, tokenIndex226 if buffer[position] != rune('\\') { - goto l281 + goto l230 } position++ if buffer[position] != rune('t') { - goto l281 + goto l230 } position++ - goto l277 - l281: - position, tokenIndex = position277, tokenIndex277 + goto l226 + l230: + position, tokenIndex = position226, tokenIndex226 { - position282, tokenIndex282 := position, tokenIndex + position231, tokenIndex231 := position, tokenIndex { - position283, tokenIndex283 := position, tokenIndex + position232, tokenIndex232 := position, tokenIndex if buffer[position] != rune('\'') { - goto l284 + goto l233 } position++ - goto l283 - l284: - position, tokenIndex = position283, tokenIndex283 + goto l232 + l233: + position, tokenIndex = position232, tokenIndex232 if buffer[position] != rune('\\') { - goto l282 + goto l231 } position++ } - l283: - goto l276 - l282: - position, tokenIndex = position282, tokenIndex282 + l232: + goto l225 + l231: + position, tokenIndex = position231, tokenIndex231 } if !matchDot() { - goto l276 + goto l225 } } - l277: - goto l275 - l276: - position, tokenIndex = position276, tokenIndex276 + l226: + goto l224 + l225: + position, tokenIndex = position225, tokenIndex225 } - add(rulesinglequotedstring, position274) + add(rulesinglequotedstring, position223) } return true }, - /* 24 fieldExpr <- <(([a-z] / [A-Z] / '_') ([a-z] / [A-Z] / [0-9] / '_' / '-')*)> */ + /* 15 fieldExpr <- <(([a-z] / [A-Z] / '_') ([a-z] / [A-Z] / [0-9] / '_' / '-')*)> */ func() bool { - position285, tokenIndex285 := position, tokenIndex + position234, tokenIndex234 := position, tokenIndex { - position286 := position + position235 := position { - position287, tokenIndex287 := position, tokenIndex + position236, tokenIndex236 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l288 + goto l237 } position++ - goto l287 - l288: - position, tokenIndex = position287, tokenIndex287 + goto l236 + l237: + position, tokenIndex = position236, tokenIndex236 if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l289 + goto l238 } position++ - goto l287 - l289: - position, tokenIndex = position287, tokenIndex287 + goto l236 + l238: + position, tokenIndex = position236, tokenIndex236 if buffer[position] != rune('_') { - goto l285 + goto l234 } position++ } - l287: - l290: + l236: + l239: { - position291, tokenIndex291 := position, tokenIndex + position240, tokenIndex240 := position, tokenIndex { - position292, tokenIndex292 := position, tokenIndex + position241, tokenIndex241 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l293 + goto l242 } position++ - goto l292 - l293: - position, tokenIndex = position292, tokenIndex292 + goto l241 + l242: + position, tokenIndex = position241, tokenIndex241 if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l294 + goto l243 } position++ - goto l292 - l294: - position, tokenIndex = position292, tokenIndex292 + goto l241 + l243: + position, tokenIndex = position241, tokenIndex241 if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l295 + goto l244 } position++ - goto l292 - l295: - position, tokenIndex = position292, tokenIndex292 + goto l241 + l244: + position, tokenIndex = position241, tokenIndex241 if buffer[position] != rune('_') { - goto l296 + goto l245 } position++ - goto l292 - l296: - position, tokenIndex = position292, tokenIndex292 + goto l241 + l245: + position, tokenIndex = position241, tokenIndex241 if buffer[position] != rune('-') { + goto l240 + } + position++ + } + l241: + goto l239 + l240: + position, tokenIndex = position240, tokenIndex240 + } + add(rulefieldExpr, position235) + } + return true + l234: + position, tokenIndex = position234, tokenIndex234 + return false + }, + /* 16 field <- <(<(fieldExpr / reserved)> Action49)> */ + func() bool { + position246, tokenIndex246 := position, tokenIndex + { + position247 := position + { + position248 := position + { + position249, tokenIndex249 := position, tokenIndex + if !_rules[rulefieldExpr]() { + goto l250 + } + goto l249 + l250: + position, tokenIndex = position249, tokenIndex249 + { + position251 := position + { + position252, tokenIndex252 := position, tokenIndex + if buffer[position] != rune('_') { + goto l253 + } + position++ + if buffer[position] != rune('r') { + goto l253 + } + position++ + if buffer[position] != rune('o') { + goto l253 + } + position++ + if buffer[position] != rune('w') { + goto l253 + } + position++ + goto l252 + l253: + position, tokenIndex = position252, tokenIndex252 + if buffer[position] != rune('_') { + goto l254 + } + position++ + if buffer[position] != rune('c') { + goto l254 + } + position++ + if buffer[position] != rune('o') { + goto l254 + } + position++ + if buffer[position] != rune('l') { + goto l254 + } + position++ + goto l252 + l254: + position, tokenIndex = position252, tokenIndex252 + if buffer[position] != rune('_') { + goto l255 + } + position++ + if buffer[position] != rune('s') { + goto l255 + } + position++ + if buffer[position] != rune('t') { + goto l255 + } + position++ + if buffer[position] != rune('a') { + goto l255 + } + position++ + if buffer[position] != rune('r') { + goto l255 + } + position++ + if buffer[position] != rune('t') { + goto l255 + } + position++ + goto l252 + l255: + position, tokenIndex = position252, tokenIndex252 + if buffer[position] != rune('_') { + goto l256 + } + position++ + if buffer[position] != rune('e') { + goto l256 + } + position++ + if buffer[position] != rune('n') { + goto l256 + } + position++ + if buffer[position] != rune('d') { + goto l256 + } + position++ + goto l252 + l256: + position, tokenIndex = position252, tokenIndex252 + if buffer[position] != rune('_') { + goto l257 + } + position++ + if buffer[position] != rune('t') { + goto l257 + } + position++ + if buffer[position] != rune('i') { + goto l257 + } + position++ + if buffer[position] != rune('m') { + goto l257 + } + position++ + if buffer[position] != rune('e') { + goto l257 + } + position++ + if buffer[position] != rune('s') { + goto l257 + } + position++ + if buffer[position] != rune('t') { + goto l257 + } + position++ + if buffer[position] != rune('a') { + goto l257 + } + position++ + if buffer[position] != rune('m') { + goto l257 + } + position++ + if buffer[position] != rune('p') { + goto l257 + } + position++ + goto l252 + l257: + position, tokenIndex = position252, tokenIndex252 + if buffer[position] != rune('_') { + goto l246 + } + position++ + if buffer[position] != rune('f') { + goto l246 + } + position++ + if buffer[position] != rune('i') { + goto l246 + } + position++ + if buffer[position] != rune('e') { + goto l246 + } + position++ + if buffer[position] != rune('l') { + goto l246 + } + position++ + if buffer[position] != rune('d') { + goto l246 + } + position++ + } + l252: + add(rulereserved, position251) + } + } + l249: + add(rulePegText, position248) + } + { + add(ruleAction49, position) + } + add(rulefield, position247) + } + return true + l246: + position, tokenIndex = position246, tokenIndex246 + return false + }, + /* 17 reserved <- <(('_' 'r' 'o' 'w') / ('_' 'c' 'o' 'l') / ('_' 's' 't' 'a' 'r' 't') / ('_' 'e' 'n' 'd') / ('_' 't' 'i' 'm' 'e' 's' 't' 'a' 'm' 'p') / ('_' 'f' 'i' 'e' 'l' 'd'))> */ + nil, + /* 18 posfield <- <( Action50)> */ + func() bool { + position260, tokenIndex260 := position, tokenIndex + { + position261 := position + { + position262 := position + if !_rules[rulefieldExpr]() { + goto l260 + } + add(rulePegText, position262) + } + { + add(ruleAction50, position) + } + add(ruleposfield, position261) + } + return true + l260: + position, tokenIndex = position260, tokenIndex260 + return false + }, + /* 19 uint <- <(([1-9] [0-9]*) / '0')> */ + func() bool { + position264, tokenIndex264 := position, tokenIndex + { + position265 := position + { + position266, tokenIndex266 := position, tokenIndex + if c := buffer[position]; c < rune('1') || c > rune('9') { + goto l267 + } + position++ + l268: + { + position269, tokenIndex269 := position, tokenIndex + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l269 + } + position++ + goto l268 + l269: + position, tokenIndex = position269, tokenIndex269 + } + goto l266 + l267: + position, tokenIndex = position266, tokenIndex266 + if buffer[position] != rune('0') { + goto l264 + } + position++ + } + l266: + add(ruleuint, position265) + } + return true + l264: + position, tokenIndex = position264, tokenIndex264 + return false + }, + /* 20 col <- <(( Action51) / (<('\'' singlequotedstring '\'')> Action52) / (<('"' doublequotedstring '"')> Action53))> */ + func() bool { + position270, tokenIndex270 := position, tokenIndex + { + position271 := position + { + position272, tokenIndex272 := position, tokenIndex + { + position274 := position + if !_rules[ruleuint]() { + goto l273 + } + add(rulePegText, position274) + } + { + add(ruleAction51, position) + } + goto l272 + l273: + position, tokenIndex = position272, tokenIndex272 + { + position277 := position + if buffer[position] != rune('\'') { + goto l276 + } + position++ + if !_rules[rulesinglequotedstring]() { + goto l276 + } + if buffer[position] != rune('\'') { + goto l276 + } + position++ + add(rulePegText, position277) + } + { + add(ruleAction52, position) + } + goto l272 + l276: + position, tokenIndex = position272, tokenIndex272 + { + position279 := position + if buffer[position] != rune('"') { + goto l270 + } + position++ + if !_rules[ruledoublequotedstring]() { + goto l270 + } + if buffer[position] != rune('"') { + goto l270 + } + position++ + add(rulePegText, position279) + } + { + add(ruleAction53, position) + } + } + l272: + add(rulecol, position271) + } + return true + l270: + position, tokenIndex = position270, tokenIndex270 + return false + }, + /* 21 row <- <(( Action54) / (<('\'' singlequotedstring '\'')> Action55) / (<('"' doublequotedstring '"')> Action56))> */ + nil, + /* 22 open <- <('(' sp)> */ + func() bool { + position282, tokenIndex282 := position, tokenIndex + { + position283 := position + if buffer[position] != rune('(') { + goto l282 + } + position++ + if !_rules[rulesp]() { + goto l282 + } + add(ruleopen, position283) + } + return true + l282: + position, tokenIndex = position282, tokenIndex282 + return false + }, + /* 23 close <- <(')' sp)> */ + func() bool { + position284, tokenIndex284 := position, tokenIndex + { + position285 := position + if buffer[position] != rune(')') { + goto l284 + } + position++ + if !_rules[rulesp]() { + goto l284 + } + add(ruleclose, position285) + } + return true + l284: + position, tokenIndex = position284, tokenIndex284 + return false + }, + /* 24 sp <- <(' ' / '\t' / '\n')*> */ + func() bool { + { + position287 := position + l288: + { + position289, tokenIndex289 := position, tokenIndex + { + position290, tokenIndex290 := position, tokenIndex + if buffer[position] != rune(' ') { goto l291 } position++ + goto l290 + l291: + position, tokenIndex = position290, tokenIndex290 + if buffer[position] != rune('\t') { + goto l292 + } + position++ + goto l290 + l292: + position, tokenIndex = position290, tokenIndex290 + if buffer[position] != rune('\n') { + goto l289 + } + position++ } - l292: - goto l290 - l291: - position, tokenIndex = position291, tokenIndex291 + l290: + goto l288 + l289: + position, tokenIndex = position289, tokenIndex289 } - add(rulefieldExpr, position286) + add(rulesp, position287) } return true - l285: - position, tokenIndex = position285, tokenIndex285 + }, + /* 25 comma <- <(sp ',' sp)> */ + func() bool { + position293, tokenIndex293 := position, tokenIndex + { + position294 := position + if !_rules[rulesp]() { + goto l293 + } + if buffer[position] != rune(',') { + goto l293 + } + position++ + if !_rules[rulesp]() { + goto l293 + } + add(rulecomma, position294) + } + return true + l293: + position, tokenIndex = position293, tokenIndex293 return false }, - /* 25 field <- <(<(fieldExpr / reserved)> Action53)> */ + /* 26 lbrack <- <('[' sp)> */ + nil, + /* 27 rbrack <- <(sp ']' sp)> */ + nil, + /* 28 IDENT <- <(([a-z] / [A-Z]) ([a-z] / [A-Z] / [0-9])*)> */ func() bool { position297, tokenIndex297 := position, tokenIndex { position298 := position { - position299 := position - { - position300, tokenIndex300 := position, tokenIndex - if !_rules[rulefieldExpr]() { - goto l301 - } + position299, tokenIndex299 := position, tokenIndex + if c := buffer[position]; c < rune('a') || c > rune('z') { 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) - } } + position++ + goto l299 l300: - add(rulePegText, position299) + position, tokenIndex = position299, tokenIndex299 + if c := buffer[position]; c < rune('A') || c > rune('Z') { + goto l297 + } + position++ } + l299: + l301: { - add(ruleAction53, position) + position302, tokenIndex302 := position, tokenIndex + { + position303, tokenIndex303 := position, tokenIndex + if c := buffer[position]; c < rune('a') || c > rune('z') { + goto l304 + } + position++ + goto l303 + l304: + position, tokenIndex = position303, tokenIndex303 + if c := buffer[position]; c < rune('A') || c > rune('Z') { + goto l305 + } + position++ + goto l303 + l305: + position, tokenIndex = position303, tokenIndex303 + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l302 + } + position++ + } + l303: + goto l301 + l302: + position, tokenIndex = position302, tokenIndex302 } - add(rulefield, position298) + add(ruleIDENT, 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 <- <( Action54)> */ + /* 29 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 { - position311, tokenIndex311 := position, tokenIndex + position306, tokenIndex306 := 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 <- <(( 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 <- <(( 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 + position307 := position if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l359 + goto l306 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l359 + goto l306 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l359 + goto l306 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l359 + goto l306 } position++ if buffer[position] != rune('-') { - goto l359 + goto l306 } position++ { - position361, tokenIndex361 := position, tokenIndex + position308, tokenIndex308 := position, tokenIndex if buffer[position] != rune('0') { - goto l362 + goto l309 } position++ - goto l361 - l362: - position, tokenIndex = position361, tokenIndex361 + goto l308 + l309: + position, tokenIndex = position308, tokenIndex308 if buffer[position] != rune('1') { - goto l359 + goto l306 } position++ } - l361: + l308: if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l359 + goto l306 } position++ if buffer[position] != rune('-') { - goto l359 + goto l306 } position++ if c := buffer[position]; c < rune('0') || c > rune('3') { - goto l359 + goto l306 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l359 + goto l306 } position++ if buffer[position] != rune('T') { - goto l359 + goto l306 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l359 + goto l306 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l359 + goto l306 } position++ if buffer[position] != rune(':') { - goto l359 + goto l306 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l359 + goto l306 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l359 + goto l306 } position++ - add(ruletimestampbasicfmt, position360) + add(ruletimestampbasicfmt, position307) } return true - l359: - position, tokenIndex = position359, tokenIndex359 + l306: + position, tokenIndex = position306, tokenIndex306 return false }, - /* 39 timestampfmt <- <(('"' '"') / ('\'' '\'') / )> */ + /* 30 timestampfmt <- <(('"' '"') / ('\'' '\'') / )> */ func() bool { - position363, tokenIndex363 := position, tokenIndex + position310, tokenIndex310 := position, tokenIndex { - position364 := position + position311 := position { - position365, tokenIndex365 := position, tokenIndex + position312, tokenIndex312 := position, tokenIndex if buffer[position] != rune('"') { - goto l366 + goto l313 } position++ { - position367 := position + position314 := position if !_rules[ruletimestampbasicfmt]() { - goto l366 + goto l313 } - add(rulePegText, position367) + add(rulePegText, position314) } if buffer[position] != rune('"') { - goto l366 + goto l313 } position++ - goto l365 - l366: - position, tokenIndex = position365, tokenIndex365 + goto l312 + l313: + position, tokenIndex = position312, tokenIndex312 if buffer[position] != rune('\'') { - goto l368 + goto l315 } position++ { - position369 := position + position316 := position if !_rules[ruletimestampbasicfmt]() { - goto l368 + goto l315 } - add(rulePegText, position369) + add(rulePegText, position316) } if buffer[position] != rune('\'') { - goto l368 + goto l315 } position++ - goto l365 - l368: - position, tokenIndex = position365, tokenIndex365 + goto l312 + l315: + position, tokenIndex = position312, tokenIndex312 { - position370 := position + position317 := position if !_rules[ruletimestampbasicfmt]() { - goto l363 + goto l310 } - add(rulePegText, position370) + add(rulePegText, position317) } } - l365: - add(ruletimestampfmt, position364) + l312: + add(ruletimestampfmt, position311) } return true - l363: - position, tokenIndex = position363, tokenIndex363 + l310: + position, tokenIndex = position310, tokenIndex310 return false }, - /* 40 timestamp <- <( Action61)> */ + /* 31 timestamp <- <( Action57)> */ nil, - /* 42 Action0 <- <{p.startCall("Set")}> */ + /* 33 Action0 <- <{p.startCall("Set")}> */ nil, - /* 43 Action1 <- <{p.endCall()}> */ + /* 34 Action1 <- <{p.endCall()}> */ nil, - /* 44 Action2 <- <{p.startCall("SetRowAttrs")}> */ + /* 35 Action2 <- <{p.startCall("SetRowAttrs")}> */ nil, - /* 45 Action3 <- <{p.endCall()}> */ + /* 36 Action3 <- <{p.endCall()}> */ nil, - /* 46 Action4 <- <{p.startCall("SetColumnAttrs")}> */ + /* 37 Action4 <- <{p.startCall("SetColumnAttrs")}> */ nil, - /* 47 Action5 <- <{p.endCall()}> */ + /* 38 Action5 <- <{p.endCall()}> */ nil, - /* 48 Action6 <- <{p.startCall("Clear")}> */ + /* 39 Action6 <- <{p.startCall("Clear")}> */ nil, - /* 49 Action7 <- <{p.endCall()}> */ + /* 40 Action7 <- <{p.endCall()}> */ nil, - /* 50 Action8 <- <{p.startCall("ClearRow")}> */ + /* 41 Action8 <- <{p.startCall("ClearRow")}> */ nil, - /* 51 Action9 <- <{p.endCall()}> */ + /* 42 Action9 <- <{p.endCall()}> */ nil, - /* 52 Action10 <- <{p.startCall("Store")}> */ + /* 43 Action10 <- <{p.startCall("Store")}> */ nil, - /* 53 Action11 <- <{p.endCall()}> */ + /* 44 Action11 <- <{p.endCall()}> */ nil, - /* 54 Action12 <- <{p.startCall("TopN")}> */ + /* 45 Action12 <- <{p.startCall("TopN")}> */ nil, - /* 55 Action13 <- <{p.endCall()}> */ + /* 46 Action13 <- <{p.endCall()}> */ nil, - /* 56 Action14 <- <{p.startCall("Rows")}> */ + /* 47 Action14 <- <{p.startCall("Rows")}> */ nil, - /* 57 Action15 <- <{p.endCall()}> */ + /* 48 Action15 <- <{p.endCall()}> */ nil, - /* 58 Action16 <- <{p.startCall("Range")}> */ + /* 49 Action16 <- <{p.startCall("Range")}> */ nil, - /* 59 Action17 <- <{p.addField("from")}> */ + /* 50 Action17 <- <{p.addField("from")}> */ nil, - /* 60 Action18 <- <{p.addVal(text)}> */ + /* 51 Action18 <- <{p.addVal(text)}> */ nil, - /* 61 Action19 <- <{p.addField("to")}> */ + /* 52 Action19 <- <{p.addField("to")}> */ nil, - /* 62 Action20 <- <{p.addVal(text)}> */ + /* 53 Action20 <- <{p.addVal(text)}> */ nil, - /* 63 Action21 <- <{p.endCall()}> */ + /* 54 Action21 <- <{p.endCall()}> */ nil, nil, - /* 65 Action22 <- <{ p.startCall(text ) }> */ + /* 56 Action22 <- <{ p.startCall(text ) }> */ nil, - /* 66 Action23 <- <{ p.endCall() }> */ + /* 57 Action23 <- <{ p.endCall() }> */ nil, - /* 67 Action24 <- <{ p.addBTWN() }> */ + /* 58 Action24 <- <{ p.addBTWN() }> */ nil, - /* 68 Action25 <- <{ p.addLTE() }> */ + /* 59 Action25 <- <{ p.addLTE() }> */ nil, - /* 69 Action26 <- <{ p.addGTE() }> */ + /* 60 Action26 <- <{ p.addGTE() }> */ nil, - /* 70 Action27 <- <{ p.addEQ() }> */ + /* 61 Action27 <- <{ p.addEQ() }> */ nil, - /* 71 Action28 <- <{ p.addNEQ() }> */ + /* 62 Action28 <- <{ p.addNEQ() }> */ nil, - /* 72 Action29 <- <{ p.addLT() }> */ + /* 63 Action29 <- <{ p.addLT() }> */ nil, - /* 73 Action30 <- <{ p.addGT() }> */ + /* 64 Action30 <- <{ p.addGT() }> */ nil, - /* 74 Action31 <- <{p.startConditional()}> */ + /* 65 Action31 <- <{p.startConditional()}> */ nil, - /* 75 Action32 <- <{p.endConditional()}> */ + /* 66 Action32 <- <{p.endConditional()}> */ nil, - /* 76 Action33 <- <{p.condAdd(text)}> */ + /* 67 Action33 <- <{p.condAdd(text)}> */ nil, - /* 77 Action34 <- <{p.condAdd(text)}> */ + /* 68 Action34 <- <{p.condAdd(text)}> */ nil, - /* 78 Action35 <- <{p.condAdd(text)}> */ + /* 69 Action35 <- <{p.condAdd(text)}> */ nil, - /* 79 Action36 <- <{ p.startList() }> */ + /* 70 Action36 <- <{ p.startList() }> */ nil, - /* 80 Action37 <- <{ p.endList() }> */ + /* 71 Action37 <- <{ p.endList() }> */ nil, - /* 81 Action38 <- <{ p.startList() }> */ + /* 72 Action38 <- <{ p.addVal(nil) }> */ nil, - /* 82 Action39 <- <{ p.endList() }> */ + /* 73 Action39 <- <{ p.addVal(true) }> */ nil, - /* 83 Action40 <- <{ p.addVal(nil) }> */ + /* 74 Action40 <- <{ p.addVal(false) }> */ nil, - /* 84 Action41 <- <{ p.addVal(true) }> */ + /* 75 Action41 <- <{ p.addVal(text) }> */ nil, - /* 85 Action42 <- <{ p.addVal(false) }> */ + /* 76 Action42 <- <{ p.addNumVal(text) }> */ nil, - /* 86 Action43 <- <{ p.addVal(text) }> */ + /* 77 Action43 <- <{ p.addNumVal(text) }> */ nil, - /* 87 Action44 <- <{ p.startCall(text) }> */ + /* 78 Action44 <- <{ p.startCall(text) }> */ nil, - /* 88 Action45 <- <{ p.addVal(p.endCall()) }> */ + /* 79 Action45 <- <{ p.addVal(p.endCall()) }> */ nil, - /* 89 Action46 <- <{ p.addVal(text) }> */ + /* 80 Action46 <- <{ p.addVal(text) }> */ nil, - /* 90 Action47 <- <{ p.addVal(text) }> */ + /* 81 Action47 <- <{ p.addVal(text) }> */ nil, - /* 91 Action48 <- <{ p.addVal(text) }> */ + /* 82 Action48 <- <{ p.addVal(text) }> */ nil, - /* 92 Action49 <- <{ p.addNumVal(text, true) }> */ + /* 83 Action49 <- <{ p.addField(text) }> */ nil, - /* 93 Action50 <- <{ p.addNumVal(text, true) }> */ + /* 84 Action50 <- <{ p.addPosStr("_field", text) }> */ nil, - /* 94 Action51 <- <{ p.addNumVal(text, false) }> */ + /* 85 Action51 <- <{p.addPosNum("_col", text)}> */ nil, - /* 95 Action52 <- <{ p.addNumVal(text, false) }> */ + /* 86 Action52 <- <{p.addPosStr("_col", text)}> */ nil, - /* 96 Action53 <- <{ p.addField(text) }> */ + /* 87 Action53 <- <{p.addPosStr("_col", text)}> */ nil, - /* 97 Action54 <- <{ p.addPosStr("_field", text) }> */ + /* 88 Action54 <- <{p.addPosNum("_row", text)}> */ nil, - /* 98 Action55 <- <{p.addPosNum("_col", text)}> */ + /* 89 Action55 <- <{p.addPosStr("_row", text)}> */ nil, - /* 99 Action56 <- <{p.addPosStr("_col", text)}> */ + /* 90 Action56 <- <{p.addPosStr("_row", text)}> */ nil, - /* 100 Action57 <- <{p.addPosStr("_col", text)}> */ - nil, - /* 101 Action58 <- <{p.addPosNum("_row", text)}> */ - nil, - /* 102 Action59 <- <{p.addPosStr("_row", text)}> */ - nil, - /* 103 Action60 <- <{p.addPosStr("_row", text)}> */ - nil, - /* 104 Action61 <- <{p.addPosStr("_timestamp", text)}> */ + /* 91 Action57 <- <{p.addPosStr("_timestamp", text)}> */ nil, } p.rules = _rules