Add async statements
This commit is contained in:
parent
0f58ea5a7a
commit
cf22950b7e
171
corpus/async.txt
171
corpus/async.txt
@ -10,14 +10,13 @@ async { (output 'Whaddup') }
|
|||||||
(item
|
(item
|
||||||
(statement
|
(statement
|
||||||
(async
|
(async
|
||||||
(item
|
(statement
|
||||||
(statement
|
(expression
|
||||||
(expression
|
(function_call
|
||||||
(function_call
|
(tool)
|
||||||
(tool)
|
(expression
|
||||||
(expression
|
(value
|
||||||
(value
|
(string))))))))))
|
||||||
(string)))))))))))
|
|
||||||
|
|
||||||
==================
|
==================
|
||||||
Complex Async Statements
|
Complex Async Statements
|
||||||
@ -25,7 +24,7 @@ Complex Async Statements
|
|||||||
|
|
||||||
async {
|
async {
|
||||||
if 1 % 2 == 0 {
|
if 1 % 2 == 0 {
|
||||||
(output 'true')
|
(output 'true')
|
||||||
} else {
|
} else {
|
||||||
(output 'false')
|
(output 'false')
|
||||||
}
|
}
|
||||||
@ -39,44 +38,132 @@ async {
|
|||||||
(item
|
(item
|
||||||
(statement
|
(statement
|
||||||
(async
|
(async
|
||||||
(item
|
(statement
|
||||||
(statement
|
(if_else
|
||||||
(if_else
|
(if
|
||||||
(if
|
(expression
|
||||||
|
(logic
|
||||||
|
(expression
|
||||||
|
(math
|
||||||
|
(expression
|
||||||
|
(value
|
||||||
|
(integer)))
|
||||||
|
(math_operator)
|
||||||
|
(expression
|
||||||
|
(value
|
||||||
|
(integer)))))
|
||||||
|
(logic_operator)
|
||||||
|
(expression
|
||||||
|
(value
|
||||||
|
(integer)))))
|
||||||
|
(statement
|
||||||
|
(expression
|
||||||
|
(function_call
|
||||||
|
(tool)
|
||||||
|
(expression
|
||||||
|
(value
|
||||||
|
(string)))))))
|
||||||
|
(else
|
||||||
|
(statement
|
||||||
|
(expression
|
||||||
|
(function_call
|
||||||
|
(tool)
|
||||||
|
(expression
|
||||||
|
(value
|
||||||
|
(string)))))))))
|
||||||
|
(statement
|
||||||
|
(expression
|
||||||
|
(function_call
|
||||||
|
(tool)
|
||||||
|
(expression
|
||||||
|
(value
|
||||||
|
(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
|
(expression
|
||||||
(logic
|
(logic
|
||||||
(expression
|
(expression
|
||||||
(math
|
(identifier))
|
||||||
(expression
|
|
||||||
(value
|
|
||||||
(integer)))
|
|
||||||
(math_operator)
|
|
||||||
(expression
|
|
||||||
(value
|
|
||||||
(integer)))))
|
|
||||||
(logic_operator)
|
(logic_operator)
|
||||||
(expression
|
(expression
|
||||||
(value
|
(value
|
||||||
(integer)))))
|
(integer)))))
|
||||||
(statement
|
(item
|
||||||
|
(statement
|
||||||
|
(expression
|
||||||
|
(function_call
|
||||||
|
(tool)
|
||||||
|
(expression
|
||||||
|
(identifier)))))
|
||||||
|
(statement
|
||||||
|
(assignment
|
||||||
|
(identifier)
|
||||||
|
(assignment_operator)
|
||||||
|
(statement
|
||||||
|
(expression
|
||||||
|
(value
|
||||||
|
(integer)))))))))
|
||||||
|
(statement
|
||||||
|
(expression
|
||||||
|
(function_call
|
||||||
|
(tool)
|
||||||
(expression
|
(expression
|
||||||
(function_call
|
(value
|
||||||
(tool)
|
(string))))))))))))
|
||||||
(expression
|
|
||||||
(value
|
|
||||||
(string)))))))
|
|
||||||
(else
|
|
||||||
(statement
|
|
||||||
(expression
|
|
||||||
(function_call
|
|
||||||
(tool)
|
|
||||||
(expression
|
|
||||||
(value
|
|
||||||
(string)))))))))
|
|
||||||
(statement
|
|
||||||
(expression
|
|
||||||
(function_call
|
|
||||||
(tool)
|
|
||||||
(expression
|
|
||||||
(value
|
|
||||||
(string)))))))))))
|
|
||||||
|
@ -236,6 +236,12 @@ module.exports = grammar({
|
|||||||
),
|
),
|
||||||
)),
|
)),
|
||||||
|
|
||||||
async: $ => seq('async', '{', $.item, '}'),
|
async: $ => seq(
|
||||||
|
'async',
|
||||||
|
'{',
|
||||||
|
repeat($.statement),
|
||||||
|
'}'
|
||||||
|
),
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
@ -959,8 +959,11 @@
|
|||||||
"value": "{"
|
"value": "{"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "SYMBOL",
|
"type": "REPEAT",
|
||||||
"name": "item"
|
"content": {
|
||||||
|
"type": "SYMBOL",
|
||||||
|
"name": "statement"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "STRING",
|
"type": "STRING",
|
||||||
|
@ -32,11 +32,11 @@
|
|||||||
"named": true,
|
"named": true,
|
||||||
"fields": {},
|
"fields": {},
|
||||||
"children": {
|
"children": {
|
||||||
"multiple": false,
|
"multiple": true,
|
||||||
"required": true,
|
"required": false,
|
||||||
"types": [
|
"types": [
|
||||||
{
|
{
|
||||||
"type": "item",
|
"type": "statement",
|
||||||
"named": true
|
"named": true
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
7673
src/parser.c
7673
src/parser.c
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user