Add @let statement support
This commit is contained in:
parent
f3a7ee0c2e
commit
6d858472b2
|
|
@ -199,6 +199,7 @@ module.exports = grammar({
|
|||
// Control flow
|
||||
template_control_flow: ($) =>
|
||||
choice(
|
||||
$.let_statement,
|
||||
$.if_statement,
|
||||
$.for_loop,
|
||||
$.match_statement,
|
||||
|
|
@ -206,6 +207,10 @@ module.exports = grammar({
|
|||
$.continue_statement,
|
||||
),
|
||||
|
||||
// Let binding: @let name = expression
|
||||
let_statement: ($) =>
|
||||
seq("@let", $.pattern, "=", $.expression),
|
||||
|
||||
if_statement: ($) =>
|
||||
seq(
|
||||
"@if",
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@
|
|||
"@struct" @keyword
|
||||
"@enum" @keyword
|
||||
"@func" @keyword
|
||||
"@let" @keyword
|
||||
"@if" @keyword
|
||||
"@for" @keyword
|
||||
"@match" @keyword
|
||||
|
|
|
|||
|
|
@ -975,6 +975,10 @@
|
|||
"template_control_flow": {
|
||||
"type": "CHOICE",
|
||||
"members": [
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "let_statement"
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "if_statement"
|
||||
|
|
@ -997,6 +1001,27 @@
|
|||
}
|
||||
]
|
||||
},
|
||||
"let_statement": {
|
||||
"type": "SEQ",
|
||||
"members": [
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "@let"
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "pattern"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "="
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "expression"
|
||||
}
|
||||
]
|
||||
},
|
||||
"if_statement": {
|
||||
"type": "SEQ",
|
||||
"members": [
|
||||
|
|
|
|||
|
|
@ -826,6 +826,25 @@
|
|||
"named": true,
|
||||
"fields": {}
|
||||
},
|
||||
{
|
||||
"type": "let_statement",
|
||||
"named": true,
|
||||
"fields": {},
|
||||
"children": {
|
||||
"multiple": true,
|
||||
"required": true,
|
||||
"types": [
|
||||
{
|
||||
"type": "expression",
|
||||
"named": true
|
||||
},
|
||||
{
|
||||
"type": "pattern",
|
||||
"named": true
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "literal",
|
||||
"named": true,
|
||||
|
|
@ -1418,6 +1437,10 @@
|
|||
"type": "if_statement",
|
||||
"named": true
|
||||
},
|
||||
{
|
||||
"type": "let_statement",
|
||||
"named": true
|
||||
},
|
||||
{
|
||||
"type": "match_statement",
|
||||
"named": true
|
||||
|
|
@ -1802,6 +1825,10 @@
|
|||
"type": "@import",
|
||||
"named": false
|
||||
},
|
||||
{
|
||||
"type": "@let",
|
||||
"named": false
|
||||
},
|
||||
{
|
||||
"type": "@match",
|
||||
"named": false
|
||||
|
|
|
|||
41190
src/parser.c
41190
src/parser.c
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue