Change syntax
This commit is contained in:
parent
69fda534a3
commit
57d908af9c
@ -1 +1 @@
|
|||||||
Subproject commit f596c6b5811cabc9b1b8ef87b9c6ce627b567c93
|
Subproject commit 1f829d930a8a5d4683ac41c6a2085c5f482868cd
|
14
grammar.js
14
grammar.js
@ -14,13 +14,11 @@ module.exports = grammar({
|
|||||||
comment: $ => seq(token('#'), /.*/),
|
comment: $ => seq(token('#'), /.*/),
|
||||||
|
|
||||||
statement: $ => prec.right(choice(
|
statement: $ => prec.right(choice(
|
||||||
$.open_statement,
|
$.expression,
|
||||||
$.yield_statement,
|
$.yield,
|
||||||
)),
|
)),
|
||||||
|
|
||||||
open_statement: $ => prec.right($.expression),
|
yield: $ => prec.left(seq($.statement, '->', $.statement)),
|
||||||
|
|
||||||
yield_statement: $ => seq($.open_statement, '->', $.open_statement),
|
|
||||||
|
|
||||||
expression: $ => choice(
|
expression: $ => choice(
|
||||||
$._expression_kind,
|
$._expression_kind,
|
||||||
@ -57,11 +55,7 @@ module.exports = grammar({
|
|||||||
|
|
||||||
integer: $ => /\d+/,
|
integer: $ => /\d+/,
|
||||||
|
|
||||||
string: $ => choice(
|
string: $ => /(".*?")|('.*?')|(`.*?`)/,
|
||||||
/'([^"]+)'/,
|
|
||||||
/"([^"]+)"/,
|
|
||||||
/`([^"]+)`/
|
|
||||||
),
|
|
||||||
|
|
||||||
empty: $ => '()',
|
empty: $ => '()',
|
||||||
|
|
||||||
|
@ -46,40 +46,36 @@
|
|||||||
"members": [
|
"members": [
|
||||||
{
|
{
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "open_statement"
|
"name": "expression"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "yield_statement"
|
"name": "yield"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"open_statement": {
|
"yield": {
|
||||||
"type": "PREC_RIGHT",
|
"type": "PREC_LEFT",
|
||||||
"value": 0,
|
"value": 0,
|
||||||
"content": {
|
"content": {
|
||||||
"type": "SYMBOL",
|
"type": "SEQ",
|
||||||
"name": "expression"
|
"members": [
|
||||||
|
{
|
||||||
|
"type": "SYMBOL",
|
||||||
|
"name": "statement"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "STRING",
|
||||||
|
"value": "->"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "SYMBOL",
|
||||||
|
"name": "statement"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"yield_statement": {
|
|
||||||
"type": "SEQ",
|
|
||||||
"members": [
|
|
||||||
{
|
|
||||||
"type": "SYMBOL",
|
|
||||||
"name": "open_statement"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "STRING",
|
|
||||||
"value": "->"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "SYMBOL",
|
|
||||||
"name": "open_statement"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"expression": {
|
"expression": {
|
||||||
"type": "CHOICE",
|
"type": "CHOICE",
|
||||||
"members": [
|
"members": [
|
||||||
@ -209,21 +205,8 @@
|
|||||||
"value": "\\d+"
|
"value": "\\d+"
|
||||||
},
|
},
|
||||||
"string": {
|
"string": {
|
||||||
"type": "CHOICE",
|
"type": "PATTERN",
|
||||||
"members": [
|
"value": "(\".*?\")|('.*?')|(`.*?`)"
|
||||||
{
|
|
||||||
"type": "PATTERN",
|
|
||||||
"value": "'([^\"]+)'"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "PATTERN",
|
|
||||||
"value": "\"([^\"]+)\""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "PATTERN",
|
|
||||||
"value": "`([^\"]+)`"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
"empty": {
|
"empty": {
|
||||||
"type": "STRING",
|
"type": "STRING",
|
||||||
|
@ -256,21 +256,6 @@
|
|||||||
"named": true,
|
"named": true,
|
||||||
"fields": {}
|
"fields": {}
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"type": "open_statement",
|
|
||||||
"named": true,
|
|
||||||
"fields": {},
|
|
||||||
"children": {
|
|
||||||
"multiple": false,
|
|
||||||
"required": true,
|
|
||||||
"types": [
|
|
||||||
{
|
|
||||||
"type": "expression",
|
|
||||||
"named": true
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"type": "root",
|
"type": "root",
|
||||||
"named": true,
|
"named": true,
|
||||||
@ -314,21 +299,16 @@
|
|||||||
"required": true,
|
"required": true,
|
||||||
"types": [
|
"types": [
|
||||||
{
|
{
|
||||||
"type": "open_statement",
|
"type": "expression",
|
||||||
"named": true
|
"named": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "yield_statement",
|
"type": "yield",
|
||||||
"named": true
|
"named": true
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"type": "string",
|
|
||||||
"named": true,
|
|
||||||
"fields": {}
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"type": "table",
|
"type": "table",
|
||||||
"named": true,
|
"named": true,
|
||||||
@ -396,7 +376,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "yield_statement",
|
"type": "yield",
|
||||||
"named": true,
|
"named": true,
|
||||||
"fields": {},
|
"fields": {},
|
||||||
"children": {
|
"children": {
|
||||||
@ -404,7 +384,7 @@
|
|||||||
"required": true,
|
"required": true,
|
||||||
"types": [
|
"types": [
|
||||||
{
|
{
|
||||||
"type": "open_statement",
|
"type": "statement",
|
||||||
"named": true
|
"named": true
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@ -546,6 +526,10 @@
|
|||||||
"type": "select",
|
"type": "select",
|
||||||
"named": false
|
"named": false
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"named": true
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"type": "table",
|
"type": "table",
|
||||||
"named": false
|
"named": false
|
||||||
|
13698
src/parser.c
13698
src/parser.c
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user