@wener/miniquery
Version:
SQL Where like **safe** filter expression for ORM.
2,907 lines • 82.2 kB
JavaScript
import { makeRecipe } from 'ohm-js';
var result = makeRecipe([
'grammar',
{
source: 'MiniQuery {\n Main = Expr end\n Expr = LogicExpr\n\n LogicExpr\n = LogicExpr logic RelExpr -- match\n | RelExpr\n\n RelExpr\n = RelExpr (">=" | "<=" | ">" | "<") InExpr -- match\n | RelExpr ("==" | "!=" | "<>" | "=") InExpr -- match_eq\n | RelExpr ":" literal -- has\n | InExpr\n InExpr\n = InExpr in Array -- match\n | PredicateExpr\n PredicateExpr\n = PredicateExpr is (null| bool) -- is\n | PredicateExpr like string -- like\n | BetweenExpr\n BetweenExpr\n = BetweenExpr between CallExpr "and" CallExpr -- match\n | CallExpr\n CallExpr\n = ident "(" ListOf<Expr,","> ")" -- match\n | PriExpr\n\n PriExpr\n = "(" Expr ")" -- paren\n | caseInsensitive<"not"> Expr -- not\n | Array\n | Value\n | "+" Expr -- pos\n | "-" Expr -- neg\n\n\n Array = "(" ListOf<Expr,","> ")" | "[" ListOf<Expr,","> "]"\n Value = literal | ref | ident\n\n ListOf<elem, sep>\n := TrailNonEmptyListOf<elem, sep>\n | EmptyListOf<elem, sep>\n\n TrailNonEmptyListOf<elem, sep>\n = elem (sep elem)* sep?\n\n in = (caseInsensitive<"not"> space+)? caseInsensitive<"in">\n is = caseInsensitive<"is"> (space+ caseInsensitive<"not">?)\n logic = caseInsensitive<"and"> | caseInsensitive<"or"> | "&&" | "||"\n like = (caseInsensitive<"not"> space+)? (caseInsensitive<"like"> | caseInsensitive<"ilike">)\n between = (caseInsensitive<"not"> space+)? caseInsensitive<"between">\n\n ref = ident ( "." (ident | string) )+\n ident = letter (alnum | "_")*\n literal = string | float | int | bool | null\n null = "null" | "NULL"\n bool = "true" | "false" | "TRUE" | "FALSE"\n string\n = "\'" (~"\'" any)* "\'"\n | "\\"" (~"\\"" any)* "\\""\n int = (("-"|"+") spaces)? uint\n uint\n = "0"\n | int_non_zero\n int_non_zero = "1".."9" digit*\n float = int? "." digit+\n}'
},
'MiniQuery',
null,
'Main',
{
Main: [
'define',
{
sourceInterval: [
14,
29
]
},
null,
[],
[
'seq',
{
sourceInterval: [
21,
29
]
},
[
'app',
{
sourceInterval: [
21,
25
]
},
'Expr',
[]
],
[
'app',
{
sourceInterval: [
26,
29
]
},
'end',
[]
]
]
],
Expr: [
'define',
{
sourceInterval: [
32,
48
]
},
null,
[],
[
'app',
{
sourceInterval: [
39,
48
]
},
'LogicExpr',
[]
]
],
LogicExpr_match: [
'define',
{
sourceInterval: [
68,
100
]
},
null,
[],
[
'seq',
{
sourceInterval: [
68,
91
]
},
[
'app',
{
sourceInterval: [
68,
77
]
},
'LogicExpr',
[]
],
[
'app',
{
sourceInterval: [
78,
83
]
},
'logic',
[]
],
[
'app',
{
sourceInterval: [
84,
91
]
},
'RelExpr',
[]
]
]
],
LogicExpr: [
'define',
{
sourceInterval: [
52,
114
]
},
null,
[],
[
'alt',
{
sourceInterval: [
68,
114
]
},
[
'app',
{
sourceInterval: [
68,
91
]
},
'LogicExpr_match',
[]
],
[
'app',
{
sourceInterval: [
107,
114
]
},
'RelExpr',
[]
]
]
],
RelExpr_match: [
'define',
{
sourceInterval: [
132,
182
]
},
null,
[],
[
'seq',
{
sourceInterval: [
132,
173
]
},
[
'app',
{
sourceInterval: [
132,
139
]
},
'RelExpr',
[]
],
[
'alt',
{
sourceInterval: [
141,
165
]
},
[
'terminal',
{
sourceInterval: [
141,
145
]
},
'>='
],
[
'terminal',
{
sourceInterval: [
148,
152
]
},
'<='
],
[
'terminal',
{
sourceInterval: [
156,
159
]
},
'>'
],
[
'terminal',
{
sourceInterval: [
162,
165
]
},
'<'
]
],
[
'app',
{
sourceInterval: [
167,
173
]
},
'InExpr',
[]
]
]
],
RelExpr_match_eq: [
'define',
{
sourceInterval: [
189,
242
]
},
null,
[],
[
'seq',
{
sourceInterval: [
189,
230
]
},
[
'app',
{
sourceInterval: [
189,
196
]
},
'RelExpr',
[]
],
[
'alt',
{
sourceInterval: [
198,
222
]
},
[
'terminal',
{
sourceInterval: [
198,
202
]
},
'=='
],
[
'terminal',
{
sourceInterval: [
205,
209
]
},
'!='
],
[
'terminal',
{
sourceInterval: [
212,
216
]
},
'<>'
],
[
'terminal',
{
sourceInterval: [
219,
222
]
},
'='
]
],
[
'app',
{
sourceInterval: [
224,
230
]
},
'InExpr',
[]
]
]
],
RelExpr_has: [
'define',
{
sourceInterval: [
249,
275
]
},
null,
[],
[
'seq',
{
sourceInterval: [
249,
268
]
},
[
'app',
{
sourceInterval: [
249,
256
]
},
'RelExpr',
[]
],
[
'terminal',
{
sourceInterval: [
257,
260
]
},
':'
],
[
'app',
{
sourceInterval: [
261,
268
]
},
'literal',
[]
]
]
],
RelExpr: [
'define',
{
sourceInterval: [
118,
288
]
},
null,
[],
[
'alt',
{
sourceInterval: [
132,
288
]
},
[
'app',
{
sourceInterval: [
132,
173
]
},
'RelExpr_match',
[]
],
[
'app',
{
sourceInterval: [
189,
230
]
},
'RelExpr_match_eq',
[]
],
[
'app',
{
sourceInterval: [
249,
268
]
},
'RelExpr_has',
[]
],
[
'app',
{
sourceInterval: [
282,
288
]
},
'InExpr',
[]
]
]
],
InExpr_match: [
'define',
{
sourceInterval: [
304,
328
]
},
null,
[],
[
'seq',
{
sourceInterval: [
304,
319
]
},
[
'app',
{
sourceInterval: [
304,
310
]
},
'InExpr',
[]
],
[
'app',
{
sourceInterval: [
311,
313
]
},
'in',
[]
],
[
'app',
{
sourceInterval: [
314,
319
]
},
'Array',
[]
]
]
],
InExpr: [
'define',
{
sourceInterval: [
291,
348
]
},
null,
[],
[
'alt',
{
sourceInterval: [
304,
348
]
},
[
'app',
{
sourceInterval: [
304,
319
]
},
'InExpr_match',
[]
],
[
'app',
{
sourceInterval: [
335,
348
]
},
'PredicateExpr',
[]
]
]
],
PredicateExpr_is: [
'define',
{
sourceInterval: [
371,
406
]
},
null,
[],
[
'seq',
{
sourceInterval: [
371,
400
]
},
[
'app',
{
sourceInterval: [
371,
384
]
},
'PredicateExpr',
[]
],
[
'app',
{
sourceInterval: [
385,
387
]
},
'is',
[]
],
[
'alt',
{
sourceInterval: [
389,
399
]
},
[
'app',
{
sourceInterval: [
389,
393
]
},
'null',
[]
],
[
'app',
{
sourceInterval: [
395,
399
]
},
'bool',
[]
]
]
]
],
PredicateExpr_like: [
'define',
{
sourceInterval: [
413,
446
]
},
null,
[],
[
'seq',
{
sourceInterval: [
413,
438
]
},
[
'app',
{
sourceInterval: [
413,
426
]
},
'PredicateExpr',
[]
],
[
'app',
{
sourceInterval: [
427,
431
]
},
'like',
[]
],
[
'app',
{
sourceInterval: [
432,
438
]
},
'string',
[]
]
]
],
PredicateExpr: [
'define',
{
sourceInterval: [
351,
464
]
},
null,
[],
[
'alt',
{
sourceInterval: [
371,
464
]
},
[
'app',
{
sourceInterval: [
371,
400
]
},
'PredicateExpr_is',
[]
],
[
'app',
{
sourceInterval: [
413,
438
]
},
'PredicateExpr_like',
[]
],
[
'app',
{
sourceInterval: [
453,
464
]
},
'BetweenExpr',
[]
]
]
],
BetweenExpr_match: [
'define',
{
sourceInterval: [
485,
537
]
},
null,
[],
[
'seq',
{
sourceInterval: [
485,
528
]
},
[
'app',
{
sourceInterval: [
485,
496
]
},
'BetweenExpr',
[]
],
[
'app',
{
sourceInterval: [
497,
504
]
},
'between',
[]
],
[
'app',
{
sourceInterval: [
505,
513
]
},
'CallExpr',
[]
],
[
'terminal',
{
sourceInterval: [
514,
519
]
},
'and'
],
[
'app',
{
sourceInterval: [
520,
528
]
},
'CallExpr',
[]
]
]
],
BetweenExpr: [
'define',
{
sourceInterval: [
467,
552
]
},
null,
[],
[
'alt',
{
sourceInterval: [
485,
552
]
},
[
'app',
{
sourceInterval: [
485,
528
]
},
'BetweenExpr_match',
[]
],
[
'app',
{
sourceInterval: [
544,
552
]
},
'CallExpr',
[]
]
]
],
CallExpr_match: [
'define',
{
sourceInterval: [
570,
609
]
},
null,
[],
[
'seq',
{
sourceInterval: [
570,
600
]
},
[
'app',
{
sourceInterval: [
570,
575
]
},
'ident',
[]
],
[
'terminal',
{
sourceInterval: [
576,
579
]
},
'('
],
[
'app',
{
sourceInterval: [
580,
596
]
},
'ListOf',
[
[
'app',
{
sourceInterval: [
587,
591
]
},
'Expr',
[]
],
[
'terminal',
{
sourceInterval: [
592,
595
]
},
','
]
]
],
[
'terminal',
{
sourceInterval: [
597,
600
]
},
')'
]
]
],
CallExpr: [
'define',
{
sourceInterval: [
555,
623
]
},
null,
[],
[
'alt',
{
sourceInterval: [
570,
623
]
},
[
'app',
{
sourceInterval: [
570,
600
]
},
'CallExpr_match',
[]
],
[
'app',
{
sourceInterval: [
616,
623
]
},
'PriExpr',
[]
]
]
],
PriExpr_paren: [
'define',
{
sourceInterval: [
641,
662
]
},
null,
[],
[
'seq',
{
sourceInterval: [
641,
653
]
},
[
'terminal',
{
sourceInterval: [
641,
644
]
},
'('
],
[
'app',
{
sourceInterval: [
645,
649
]
},
'Expr',
[]
],
[
'terminal',
{
sourceInterval: [
650,
653
]
},
')'
]
]
],
PriExpr_not: [
'define',
{
sourceInterval: [
669,
703
]
},
null,
[],
[
'seq',
{
sourceInterval: [
669,
696
]
},
[
'app',
{
sourceInterval: [
669,
691
]
},
'caseInsensitive',
[
[
'terminal',
{
sourceInterval: [
685,
690
]
},
'not'
]
]
],
[
'app',
{
sourceInterval: [
692,
696
]
},
'Expr',
[]
]
]
],
PriExpr_pos: [
'define',
{
sourceInterval: [
734,
749
]
},
null,
[],
[
'seq',
{
sourceInterval: [
734,
742
]
},
[
'terminal',
{
sourceInterval: [
734,
737
]
},
'+'
],
[
'app',
{
sourceInterval: [
738,
742
]
},
'Expr',
[]
]
]
],
PriExpr_neg: [
'define',
{
sourceInterval: [
756,
771
]
},
null,
[],
[
'seq',
{
sourceInterval: [
756,
764
]
},
[
'terminal',
{
sourceInterval: [
756,
759
]
},
'-'
],
[
'app',
{
sourceInterval: [
760,
764
]
},
'Expr',
[]
]
]
],
PriExpr: [
'define',
{
sourceInterval: [
627,
771
]
},
null,
[],
[
'alt',
{
sourceInterval: [
641,
771
]
},
[
'app',
{
sourceInterval: [
641,
653
]
},
'PriExpr_paren',
[]
],
[
'app',
{
sourceInterval: [
669,
696
]
},
'PriExpr_not',
[]
],
[
'app',
{
sourceInterval: [
710,
715
]
},
'Array',
[]
],
[
'app',
{
sourceInterval: [
722,
727
]
},
'Value',
[]
],
[
'app',
{
sourceInterval: [
734,
742
]
},
'PriExpr_pos',
[]
],
[
'app',
{
sourceInterval: [
756,
764
]
},
'PriExpr_neg',
[]
]
]
],
Array: [
'define',
{
sourceInterval: [
776,
837
]
},
null,
[],
[
'alt',
{
sourceInterval: [
786,
837
]
},
[
'seq',
{
sourceInterval: [
786,
810
]
},
[
'terminal',
{
sourceInterval: [
786,
789
]
},
'('
],
[
'app',
{
sourceInterval: [
790,
806
]
},
'ListOf',
[
[
'app',
{
sourceInterval: [
797,
801
]
},
'Expr',
[]
],
[
'terminal',
{
sourceInterval: [
802,
805
]
},
','
]
]
],
[
'terminal',
{
sourceInterval: [
807,
810
]
},
')'
]
],
[
'seq',
{
sourceInterval: [
813,
837
]
},
[
'terminal',
{
sourceInterval: [
813,
816
]
},
'['
],
[
'app',
{
sourceInterval: [
817,
833
]
},
'ListOf',
[
[
'app',
{
sourceInterval: [
824,
828
]
},
'Expr',
[]
],
[
'terminal',
{
sourceInterval: [
829,
832
]
},
','
]
]
],
[
'terminal',
{
sourceInterval: [
834,
837
]
},
']'
]
]
]
],
Value: [
'define',
{
sourceInterval: [
840,
871
]
},
null,
[],
[
'alt',
{
sourceInterval: [
850,
871
]
},
[
'app',
{
sourceInterval: [
850,
857
]
},
'literal',
[]
],
[
'app',
{
sourceInterval: [
860,
863
]
},
'ref',
[]
],
[
'app',
{
sourceInterval: [
866,
871
]
},
'ident',
[]
]
]
],
ListOf: [
'override',
{
sourceInterval: [
875,
959
]
},
null,
[
'elem',
'sep'
],
[
'alt',
{
sourceInterval: [
900,
959
]
},
[
'app',
{
sourceInterval: [
900,
930
]
},
'TrailNonEmptyListOf',
[
[
'param',
{
sourceInterval: [
920,
924
]
},
0
],
[
'param',
{
sourceInterval: [
926,
929
]
},
1
]
]
],
[
'app',
{
sourceInterval: [
937,
959
]
},
'EmptyListOf',
[
[
'param',
{
sourceInterval: [
949,
953
]
},
0
],
[
'param',
{
sourceInterval: [
955,
958
]
},
1
]
]
]
]
],
TrailNonEmptyListOf: [
'define',
{
sourceInterval: [
963,
1021
]
},
null,
[
'elem',
'sep'
],
[
'seq',
{
sourceInterval: [
1000,
1021
]
},
[
'param',
{
sourceInterval: [
1000,
1004
]
},
0
],
[
'star',
{
sourceInterval: [
1005,
1016
]
},
[
'seq',
{
sourceInterval: [
1006,
1014
]
},
[
'param',
{
sourceInterval: [
1006,
1009
]
},
1
],
[
'param',
{
sourceInterval: [
1010,
1014
]
},
0
]
]
],
[
'opt',
{
sourceInterval: [
1017,
1021
]
},
[
'param',
{
sourceInterval: [
1017,
1020
]
},
1
]
]
]
],
in: [
'define',
{
sourceInterval: [
1025,
1084
]
},
null,
[],
[
'seq',
{
sourceInterval: [
1030,
1084
]
},
[
'opt',
{
sourceInterval: [
1030,
1062
]
},
[
'seq',
{
sourceInterval: [
1031,
1060
]
},
[
'app',
{
sourceInterval: [
1031,
1053
]
},
'caseInsensitive',
[
[
'terminal',
{
sourceInterval: [
1047,
1052
]
},
'not'
]
]
],
[
'plus',
{
sourceInterval: [
1054,
1060
]
},
[
'app',
{
sourceInterval: [
1054,
1059
]
},
'space',
[]
]
]
]
],
[
'app',
{
sourceInterval: [
1063,
1084
]
},
'caseInsensitive',
[
[
'terminal',
{
sourceInterval: [
1079,
1083
]
},
'in'
]
]
]
]
],
is: [
'define',
{
sourceInterval: [
1087,
1146
]
},
null,
[],
[
'seq',
{
sourceInterval: [
1092,
1146
]
},
[
'app',
{
sourceInterval: [
1092,
1113
]
},
'caseInsensitive',
[
[
'terminal',
{
sourceInterval: [
1108,
1112
]
},
'is'
]
]
],
[
'plus',
{
sourceInterval: [
1115,
1121
]
},
[
'app',
{
sourceInterval: [
1115,
1120
]
},
'space',
[]
]
],
[
'opt',
{
sourceInterval: [
1122,
1145
]
},
[
'app',
{
sourceInterval: [
1122,
1144
]
},
'caseInsensitive',
[
[
'terminal',
{
sourceInterval: [
1138,
1143
]
},
'not'
]
]
]
]
]
],
logic: [
'define',
{
sourceInterval: [
1149,
1217
]
},
null,
[],
[
'alt',
{
sourceInterval: [
1157,
1217
]
},
[
'app',
{
sourceInterval: [
1157,
1179
]
},
'caseInsensitive',
[
[
'terminal',
{
sourceInterval: [
1173,
1178
]
},
'and'
]
]
],
[
'app',
{
sourceInterval: [
1182,
1203
]
},
'caseInsensitive',
[
[
'terminal',
{
sourceInterval: [
1198,
1202
]
},
'or'
]
]
],
[
'terminal',
{
sourceInterval: [
1206,
1210
]
},
'&&'
],
[
'terminal',
{
sourceInterval: [
1213,
1217
]
},
'||'
]
]
],
like: [
'define',
{
sourceInterval: [
1220,
1312
]
},
null,
[],
[
'seq',
{
sourceInterval: [
1227,
1312
]
},
[
'opt',
{
sourceInterval: [
1227,
1259
]
},
[
'seq',
{
sourceInterval: [
1228,
1257
]
},
[
'app',
{
sourceInterval: [
1228,
1250
]
},
'caseInsensitive',
[
[
'terminal',
{
sourceInterval: [
1244,
1249
]
},
'not'
]
]
],
[
'plus',
{
sourceInterval: [
1251,
1257
]
},
[
'app',
{
sourceInterval: [
1251,
1256
]
},
'space',
[]
]
]
]
],
[
'alt',
{
sourceInterval: [
1261,
1311
]
},
[
'app',
{
sourceInterval: [
1261,
1284
]
},
'caseInsensitive',
[
[
'terminal',
{
sourceInterval: [
1277,
1283
]
},
'like'
]
]
],
[
'app',
{
sourceInterval: [
1287,
1311
]
},
'caseInsensitive',
[
[
'terminal',
{
sourceInterval: [
1303,
1310
]
},
'ilike'
]
]
]
]
]
],
between: [
'define',
{
sourceInterval: [
1315,
1384
]
},
null,
[],
[
'seq',
{
sourceInterval: [
1325,
1384
]
},
[
'opt',
{
sourceInterval: [
1325,
1357
]
},
[
'seq',
{
sourceInterval: [
1326,
1355
]
},
[
'app',
{
sourceInterval: [
1326,
1348
]
},
'caseInsensitive',
[
[
'terminal',
{
sourceInterval: [
1342,
1347
]
},
'not'
]
]
],
[
'plus',
{
sourceInterval: [
1349,
1355
]
},
[
'app',
{
sourceInterval: [
1349,
1354
]
},
'space',
[]
]
]
]
],
[
'app',
{
sourceInterval: [
1358,
1384
]
},
'caseInsensitive',
[
[
'terminal',
{
sourceInterval: [
1374,
1383
]
},
'between'
]
]
]
]
],
ref: [
'define',
{
sourceInterval: [
1388,
1425
]
},
null,
[],
[
'seq',
{
sourceInterval: [
1394,
1425
]
},
[
'app',
{
sourceInterval: [
1394,
1399
]
},
'ident',
[]
],
[
'plus',
{
sourceInterval: [
1400,
1425
]
},
[
'seq',
{
sourceInterval: [
1402,
1422
]
},
[
'terminal',
{
sourceInterval: [
1402,
1405
]
},
'.'
],
[
'alt',
{
sourceInterval: [
1407,
1421
]
},
[
'app',
{
sourceInterval: [
1407,
1412
]
},
'ident',
[]
],
[
'app',
{
sourceInterval: [
1415,
1421
]
},
'string',
[]
]
]
]
]
]
],
ident: [
'define',
{
sourceInterval: [
1428,
1457
]
},
null,
[],
[
'seq',
{
sourceInterval: [
1436,
1457
]
},
[
'app',
{
sourceInterval: [
1436,
1442
]
},
'letter',
[]
],
[
'star',
{
sourceInterval: [
1443,
1457
]
},
[
'alt',
{
sourceInterval: [
1444,
1455
]
},
[
'app',
{
sourceInterval: [
1444,
1449
]
},
'alnum',
[]
],
[
'terminal',
{
sourceInterval: [
1452,
1455
]
},
'_'
]
]
]
]
],
literal: [
'define',
{
sourceInterval: [
1460,
1504
]
},
null,
[],
[
'alt',
{
sourceInterval: [
1470,
1504
]
},
[
'app',
{
sourceInterval: [
1470,
1476
]
},
'string',
[]
],
[
'app',
{
sourceInterval: [
1479,
1484
]
},
'float',
[]
],
[
'app',
{
sourceInterval: [
1487,
1490
]
},
'int',
[]
],
[
'app',
{
sourceInterval: [
1493,
1497
]
},
'bool',
[]
],
[
'app',
{
sourceInterval: [
1500,
1504
]
},
'null',
[]
]
]
],
null: [
'define',
{
sourceInterval: [
1507,
1532
]
},
null,
[],
[
'alt',
{
sourceInterval: [
1517,
1532
]
},
[
'terminal',
{
sourceInterval: [
1517,
1523
]
},
'null'
],
[
'terminal',
{
sourceInterval: [
1526,
1532
]
},
'NULL'
]
]
],
bool: [
'define',
{
sourceInterval: [
1535,
1580
]
},
null,
[],
[
'alt',
{
sourceInterval: [
1545,
1580
]
},
[
'terminal',
{
sourceInterval: [
1545,
1551
]
},
'true'
],
[
'terminal',
{
sourceInterval: [
1554,
1561
]
},
'false'
],
[
'terminal',
{
sourceInterval: [
1564,
1570
]
},
'TRUE'
],
[
'terminal',
{
sourceInterval: [
1573,
1580
]
},
'FALSE'
]
]
],
string: [
'define',
{
sourceInterval: [
1583,
1644
]
},
null,
[],
[
'alt',
{
sourceInterval: [
1596,
1644
]
},
[
'seq',
{
sourceInterval: [
1596,
1615
]
},
[
'terminal',
{
sourceInterval: [
1596,
1599
]
},
"'"
],
[
'star',
{
sourceInterval: [
1600,
1611
]
},
[
'seq',
{
sourceInterval: [
1601,
1609
]
},
[
'not',
{
sourceInterval: [
1601,
1605
]
},
[
'terminal',
{
sourceInterval: [
1602,
1605
]
},
"'"
]
],
[
'app',
{
sourceInterval: [
1606,
1609
]
},
'any',
[]
]
]
],
[
'terminal',
{
sourceInterval: [
1612,
1615
]
},
"'"
]
],
[
'seq',
{
sourceInterval: [
1622,
1644
]
},
[
'terminal',
{
sourceInterval: [
1622,
1626
]
},
'"'
],
[
'star',
{
sourceInterval: [
1627,
1639
]
},
[
'seq',
{
sourceInterval: [
1628,
1637
]
},
[
'not',
{
sourceInterval: [
1628,
1633
]
},
[
'terminal',
{
sourceInterval: [
1629,
1633
]
},
'"'
]
],
[
'app',
{
sourceInterval: [
1634,
1637
]
},
'any',
[]
]
]
],
[
'terminal',
{
sourceInterval: [
1640,
1644
]
},
'"'
]
]
]
],
int: [
'define',
{
sourceInterval: [
1647,
1677
]
},
null,
[],
[
'seq',
{
sourceInterval: [
1653,
1677
]
},
[
'opt',
{
sourceInterval: [
1653,
1672
]
},
[
'seq',
{
sourceInterval: [
1654,
1670
]
},
[
'alt',
{
sourceInterval: [
1655,
1662
]
},
[
'terminal',
{
sourceInterval: [
1655,
1658
]
},
'-'
],
[
'terminal',
{
sourceInterval: [
1659,
1662
]
},
'+'
]
],
[
'app',
{
sourceInterval: [
1664,
1670
]
},
'spaces',
[]
]
]
],
[
'app',
{
sourceInterval: [
1673,
1677
]
},
'uint',
[]
]
]
],
uint: [
'define',
{
sourceInterval: [
1680,
1713
]
},
null,
[],
[
'alt',
{
sourceInterval: [
1691,
1713
]
},
[
'terminal',
{
sourceInterval: [
1691,
1694
]
},
'0'
],
[
'app',
{
sourceInterval: [
1701,
1713
]
},
'int_non_zero',
[]
]
]
],
int_non_zero: [
'define',
{
sourceInterval: [
1716,
1746
]
},
null,
[],
[
'seq',
{
sourceInterval: [
1731,
1746
]
},
[
'range',
{
sourceInterval: [
1731,
1739
]
},
'1',
'9'
],
[
'star',
{
sourceInterval: [
1740,
1746
]
},
[
'app',
{
sourceInterval: [
1740,
1745
]
},
'digit',
[]
]
]
]
],
float: [
'define',
{
sourceInterval: [
1749,
1774
]
},
null,
[],
[
'seq',
{
sourceInterval: [
1759,
1774
]
},
[
'opt',
{
sourceInterval: [
1759,
1763
]
},
[
'app',
{
sourceInterval: [
1759,
1762
]
},
'int',
[]
]
],
[
'terminal',
{
sourceInterval: [
1764,
1767
]
},
'.'
],
[
'plus',
{
sourceInterval: [
1768,
1774
]
},
[
'app',
{
sourceInterval: [
1768,
1773
]
},
'digit',
[]
]
]
]
]
}
]);
export default result;