Add async syntax
This commit is contained in:
parent
b47907ee26
commit
69778781ee
84
corpus/async.txt
Normal file
84
corpus/async.txt
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
==================
|
||||||
|
Simple Async Statements
|
||||||
|
==================
|
||||||
|
|
||||||
|
async (output 'Whaddup')
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
(root
|
||||||
|
(item
|
||||||
|
(statement
|
||||||
|
(async
|
||||||
|
(item
|
||||||
|
(statement
|
||||||
|
(expression
|
||||||
|
(function_call
|
||||||
|
(tool)
|
||||||
|
(expression
|
||||||
|
(value
|
||||||
|
(string)))))))))))
|
||||||
|
|
||||||
|
==================
|
||||||
|
Complex Run Statements
|
||||||
|
==================
|
||||||
|
|
||||||
|
async if 1 % 2 == 0 {
|
||||||
|
(output 'true')
|
||||||
|
} else {
|
||||||
|
(output 'false')
|
||||||
|
}
|
||||||
|
|
||||||
|
async (output 'foobar')
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
(root
|
||||||
|
(item
|
||||||
|
(statement
|
||||||
|
(async
|
||||||
|
(item
|
||||||
|
(statement
|
||||||
|
(if_else
|
||||||
|
(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)))))))))))))
|
||||||
|
(item
|
||||||
|
(statement
|
||||||
|
(async
|
||||||
|
(item
|
||||||
|
(statement
|
||||||
|
(expression
|
||||||
|
(function_call
|
||||||
|
(tool)
|
||||||
|
(expression
|
||||||
|
(value
|
||||||
|
(string)))))))))))
|
@ -16,6 +16,7 @@ module.exports = grammar({
|
|||||||
$.insert,
|
$.insert,
|
||||||
$.select,
|
$.select,
|
||||||
$.while,
|
$.while,
|
||||||
|
$.async,
|
||||||
),
|
),
|
||||||
|
|
||||||
comment: $ => seq(/[#]+.*/),
|
comment: $ => seq(/[#]+.*/),
|
||||||
@ -234,5 +235,7 @@ module.exports = grammar({
|
|||||||
seq('where', $.logic)
|
seq('where', $.logic)
|
||||||
),
|
),
|
||||||
)),
|
)),
|
||||||
|
|
||||||
|
async: $ => seq('async', $.item),
|
||||||
}
|
}
|
||||||
});
|
});
|
@ -50,6 +50,10 @@
|
|||||||
{
|
{
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "while"
|
"name": "while"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "SYMBOL",
|
||||||
|
"name": "async"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@ -942,6 +946,19 @@
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"async": {
|
||||||
|
"type": "SEQ",
|
||||||
|
"members": [
|
||||||
|
{
|
||||||
|
"type": "STRING",
|
||||||
|
"value": "async"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "SYMBOL",
|
||||||
|
"name": "item"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"extras": [
|
"extras": [
|
||||||
|
@ -27,6 +27,21 @@
|
|||||||
"named": true,
|
"named": true,
|
||||||
"fields": {}
|
"fields": {}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"type": "async",
|
||||||
|
"named": true,
|
||||||
|
"fields": {},
|
||||||
|
"children": {
|
||||||
|
"multiple": false,
|
||||||
|
"required": true,
|
||||||
|
"types": [
|
||||||
|
{
|
||||||
|
"type": "item",
|
||||||
|
"named": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"named": true,
|
"named": true,
|
||||||
@ -352,6 +367,10 @@
|
|||||||
"type": "assignment",
|
"type": "assignment",
|
||||||
"named": true
|
"named": true
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"type": "async",
|
||||||
|
"named": true
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"type": "comment",
|
"type": "comment",
|
||||||
"named": true
|
"named": true
|
||||||
@ -553,6 +572,10 @@
|
|||||||
"type": "assert_equal",
|
"type": "assert_equal",
|
||||||
"named": false
|
"named": false
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"type": "async",
|
||||||
|
"named": false
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"type": "bash",
|
"type": "bash",
|
||||||
"named": false
|
"named": false
|
||||||
|
9790
src/parser.c
9790
src/parser.c
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user