Add async statements

This commit is contained in:
Jeff 2023-10-16 21:13:39 -04:00
parent 0f58ea5a7a
commit cf22950b7e
5 changed files with 4024 additions and 3841 deletions

View File

@ -10,14 +10,13 @@ async { (output 'Whaddup') }
(item
(statement
(async
(item
(statement
(expression
(function_call
(tool)
(expression
(value
(string)))))))))))
(string))))))))))
==================
Complex Async Statements
@ -39,7 +38,6 @@ async {
(item
(statement
(async
(item
(statement
(if_else
(if
@ -79,4 +77,93 @@ async {
(tool)
(expression
(value
(string)))))))))))
(string))))))))))
==================
Simple Async Await Statements
==================
x = async {
1
}
---
(root
(item
(statement
(assignment
(identifier)
(assignment_operator)
(statement
(async
(statement
(expression
(value
(integer))))))))))
==================
Complex Async Await Statements
==================
x = async {
i = 0
while i < 5 {
(output i)
i += 1
}
(read "examples/assets/faithful.csv")
}
---
(root
(item
(statement
(assignment
(identifier)
(assignment_operator)
(statement
(async
(statement
(assignment
(identifier)
(assignment_operator)
(statement
(expression
(value
(integer))))))
(statement
(while
(expression
(logic
(expression
(identifier))
(logic_operator)
(expression
(value
(integer)))))
(item
(statement
(expression
(function_call
(tool)
(expression
(identifier)))))
(statement
(assignment
(identifier)
(assignment_operator)
(statement
(expression
(value
(integer)))))))))
(statement
(expression
(function_call
(tool)
(expression
(value
(string))))))))))))

View File

@ -236,6 +236,12 @@ module.exports = grammar({
),
)),
async: $ => seq('async', '{', $.item, '}'),
async: $ => seq(
'async',
'{',
repeat($.statement),
'}'
),
}
});

View File

@ -959,8 +959,11 @@
"value": "{"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "item"
"name": "statement"
}
},
{
"type": "STRING",

View File

@ -32,11 +32,11 @@
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"multiple": true,
"required": false,
"types": [
{
"type": "item",
"type": "statement",
"named": true
}
]

File diff suppressed because it is too large Load Diff