Spaces:
Running
Running
Download source/teaql-ts/src/parser/query.pegjs from teaql/browser-sqlite-playground: direct link, hf CLI and curl.
- Browser
- Download file 1.25 kB
-
https://huggingface.co/spaces/teaql/browser-sqlite-playground/resolve/main/source/teaql-ts/src/parser/query.pegjs
- Command line
-
hf download hf://spaces/teaql/browser-sqlite-playground/source/teaql-ts/src/parser/query.pegjs
-
curl -L -o query.pegjs https://huggingface.co/spaces/teaql/browser-sqlite-playground/resolve/main/source/teaql-ts/src/parser/query.pegjs
1.25 kB
| { | |
| function expression(target, calls) { | |
| return { type: "CallChain", target, calls: calls.map(item => item[3]) }; | |
| } | |
| } | |
| Start | |
| = _ value:Expression _ ";"? _ { return value; } | |
| Expression | |
| = target:Identifier calls:(_ "." _ Call)+ { return expression(target, calls); } | |
| Call | |
| = method:Identifier _ "(" _ args:Arguments? _ ")" { | |
| return { type: "Call", method, arguments: args || [] }; | |
| } | |
| Arguments | |
| = head:Value tail:(_ "," _ Value)* { return [head, ...tail.map(item => item[3])]; } | |
| Value | |
| = Expression | |
| / Array | |
| / DoubleQuotedString | |
| / SingleQuotedString | |
| / Number | |
| / Boolean | |
| / Null | |
| Array | |
| = "[" _ values:Arguments? _ "]" { return values || []; } | |
| DoubleQuotedString | |
| = value:$('"' ("\\" . / [^"\\])* '"') { return JSON.parse(value); } | |
| SingleQuotedString | |
| = "'" chars:("\\" escaped:. { return escaped; } / [^'\\])* "'" { return chars.join(""); } | |
| Number | |
| = value:$('-'? ([0-9]+ "." [0-9]+ / [0-9]+) ([eE] [+-]? [0-9]+)?) { return Number(value); } | |
| Boolean | |
| = "true" !IdentifierPart { return true; } | |
| / "false" !IdentifierPart { return false; } | |
| Null | |
| = "null" !IdentifierPart { return null; } | |
| Identifier | |
| = value:$([A-Za-z_$] IdentifierPart*) { return value; } | |
| IdentifierPart | |
| = [A-Za-z0-9_$] | |
| _ = [ \t\r\n]* | |