grammar: Hide the return keyword in the grammar
And, add a grammar test for the return keyword. Signed-off-by: Will Hawkins <hawkinsw@obs.cr>
This commit is contained in:
@@ -105,7 +105,7 @@ export default grammar({
|
|||||||
conditionalStatement: $ => choice(prec(1, seq($.if, '(', $.expression, ')', $.statement)), prec(2, seq($.if, '(', $.expression, ')', $.statement, $.else, $.statement))),
|
conditionalStatement: $ => choice(prec(1, seq($.if, '(', $.expression, ')', $.statement)), prec(2, seq($.if, '(', $.expression, ')', $.statement, $.else, $.statement))),
|
||||||
expressionStatement: $=> seq($.expression, $._semicolon),
|
expressionStatement: $=> seq($.expression, $._semicolon),
|
||||||
assignmentStatement: $=> seq($.expression, $.assignment, $.expression, $._semicolon),
|
assignmentStatement: $=> seq($.expression, $.assignment, $.expression, $._semicolon),
|
||||||
return_statement: $=> seq($.return, $.expression, $._semicolon),
|
return_statement: $=> seq($._return, $.expression, $._semicolon),
|
||||||
|
|
||||||
// Parser statements
|
// Parser statements
|
||||||
parserStatements: $ => repeat1($.parserStatement),
|
parserStatements: $ => repeat1($.parserStatement),
|
||||||
@@ -189,7 +189,7 @@ export default grammar({
|
|||||||
parser: $ => "parser",
|
parser: $ => "parser",
|
||||||
package: $ => "package",
|
package: $ => "package",
|
||||||
pragma: $ => "pragma",
|
pragma: $ => "pragma",
|
||||||
return: $ => "return",
|
_return: $ => "return",
|
||||||
select: $ => "select",
|
select: $ => "select",
|
||||||
state: $ => "state",
|
state: $ => "state",
|
||||||
string: $ => "string",
|
string: $ => "string",
|
||||||
|
|||||||
@@ -1,4 +1,39 @@
|
|||||||
=========================
|
=========================
|
||||||
|
Return Statement
|
||||||
|
=========================
|
||||||
|
int fun() {
|
||||||
|
return 1;
|
||||||
|
};
|
||||||
|
---
|
||||||
|
(p4program
|
||||||
|
(declaration
|
||||||
|
(function_declaration
|
||||||
|
(typeRef
|
||||||
|
(baseType
|
||||||
|
(int)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(identifier)
|
||||||
|
(parameters)
|
||||||
|
(statement
|
||||||
|
(blockStatement
|
||||||
|
(statements
|
||||||
|
(statement
|
||||||
|
(return_statement
|
||||||
|
(expression
|
||||||
|
(simple_expression
|
||||||
|
(integer)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
=========================
|
||||||
Simple If Statement (No Else)
|
Simple If Statement (No Else)
|
||||||
=========================
|
=========================
|
||||||
parser simple() {
|
parser simple() {
|
||||||
|
|||||||
Reference in New Issue
Block a user