Parse query functions
This commit is contained in:
1 parent
ccf548081f
commit
9253ffc584
1 file changed
+19
-1
+19
-1
@@ -98,8 +98,26 @@ const lang = parsimmon.createLanguage({
|
|||||||
.map(Number)
|
.map(Number)
|
||||||
.desc("number");
|
.desc("number");
|
||||||
},
|
},
|
||||||
|
FuncValue: function(r) {
|
||||||
|
return parsimmon.seqMap(
|
||||||
|
parsimmon
|
||||||
|
.regexp(/([a-zA-Z0-0_]+)/, 1)
|
||||||
|
.skip(r._)
|
||||||
|
.desc("function"),
|
||||||
|
r.Value.sepBy(parsimmon.string(",").skip(r._)).wrap(
|
||||||
|
parsimmon.string("(").skip(r._),
|
||||||
|
parsimmon.string(")").skip(r._)
|
||||||
|
),
|
||||||
|
(f, args) => ["FUNC", f.toUpperCase()].concat(args)
|
||||||
|
);
|
||||||
|
},
|
||||||
Value: function(r) {
|
Value: function(r) {
|
||||||
return parsimmon.alt(r.NumberValue, r.StringValueSql, r.StringValueJs);
|
return parsimmon.alt(
|
||||||
|
r.NumberValue,
|
||||||
|
r.StringValueSql,
|
||||||
|
r.StringValueJs,
|
||||||
|
r.FuncValue
|
||||||
|
);
|
||||||
},
|
},
|
||||||
Comparison: function(r) {
|
Comparison: function(r) {
|
||||||
return parsimmon.alt(
|
return parsimmon.alt(
|
||||||
|
|||||||
Reference in new issue
Block a user