Files
gp4/tree-sitter-p4/test/corpus/statements.txt
T
Will Hawkins a3a06efdb4 grammar: Make apply statements have block bodies
Signed-off-by: Will Hawkins <hawkinsw@obs.cr>
2026-04-20 03:25:07 -04:00

465 lines
7.2 KiB
Plaintext

=========================
Exit Statement
=========================
control T() {
apply {
exit;
}
};
---
(p4program
(declaration
(control_declaration
(control)
(identifier)
(parameters)
(apply_statement
(apply)
(blockStatement
(statements
(statement
(exit_statement)
)
)
)
)
)
)
)
=========================
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)
=========================
parser simple() {
state start {
if (true) {
}
transition accept;
}
};
---
(p4program
(declaration
(parserDeclaration
(parserType
(parser)
(identifier)
(parameters)
)
(parserStates
(parserState
(state)
(identifier)
(parserStatements
(parserStatement
(conditionalStatement
(if)
(expression
(simple_expression
(booleanLiteralExpression
(true)
)
)
)
(statement
(blockStatement)
)
)
)
)
(parserTransitionStatement
(transition)
(transitionSelectionExpression
(identifier)
)
)
)
)
)
)
)
=========================
Simple If Statement (Else)
=========================
parser simple() {
state start {
if (true) {
} else {
}
transition accept;
}
};
---
(p4program
(declaration
(parserDeclaration
(parserType
(parser)
(identifier)
(parameters)
)
(parserStates
(parserState
(state)
(identifier)
(parserStatements
(parserStatement
(conditionalStatement
(if)
(expression
(simple_expression
(booleanLiteralExpression
(true)
)
)
)
(statement
(blockStatement)
)
(else)
(statement
(blockStatement)
)
)
)
)
(parserTransitionStatement
(transition)
(transitionSelectionExpression
(identifier)
)
)
)
)
)
)
)
=========================
Simple Assignment Statement (To Identifier)
=========================
parser simple() {
state start {
string l = "testing";
l = "five";
transition accept;
}
};
---
(p4program
(declaration
(parserDeclaration
(parserType
(parser)
(identifier)
(parameters)
)
(parserStates
(parserState
(state)
(identifier)
(parserStatements
(parserStatement
(variableDeclaration
(typeRef
(baseType
(string)
)
)
(identifier)
(assignment)
(expression
(simple_expression
(string_literal)
)
)
)
)
(parserStatement
(assignmentStatement
(expression
(simple_expression
(identifier)
)
)
(assignment)
(expression
(simple_expression
(string_literal)
)
)
)
)
)
(parserTransitionStatement
(transition)
(transitionSelectionExpression
(identifier)
)
)
)
)
)
)
)
=========================
Simple Conditional Statement
=========================
parser simple() {
state start {
bool x = true;
if (x) {
x = false;
}
transition accept;
}
};
---
(p4program
(declaration
(parserDeclaration
(parserType
(parser)
(identifier)
(parameters)
)
(parserStates
(parserState
(state)
(identifier)
(parserStatements
(parserStatement
(variableDeclaration
(typeRef
(baseType
(bool)
)
)
(identifier)
(assignment)
(expression
(simple_expression
(booleanLiteralExpression
(true)
)
)
)
)
)
(parserStatement
(conditionalStatement
(if)
(expression
(simple_expression
(identifier)
)
)
(statement
(blockStatement
(statements
(statement
(assignmentStatement
(expression
(simple_expression
(identifier)
)
)
(assignment)
(expression
(simple_expression
(booleanLiteralExpression
(false)
)
)
)
)
)
)
)
)
)
)
)
(parserTransitionStatement
(transition)
(transitionSelectionExpression
(identifier)
)
)
)
)
)
)
)
=========================
Simple Conditional Statement (with else)
=========================
parser simple() {
state start {
bool x = true;
int y = 0;
if (x) {
y = 1;
} else {
y = 2;
}
transition accept;
}
};
---
(p4program
(declaration
(parserDeclaration
(parserType
(parser)
(identifier)
(parameters)
)
(parserStates
(parserState
(state)
(identifier)
(parserStatements
(parserStatement
(variableDeclaration
(typeRef
(baseType
(bool)
)
)
(identifier)
(assignment)
(expression
(simple_expression
(booleanLiteralExpression
(true)
)
)
)
)
)
(parserStatement
(variableDeclaration
(typeRef
(baseType
(int)
)
)
(identifier)
(assignment)
(expression
(simple_expression
(integer)
)
)
)
)
(parserStatement
(conditionalStatement
(if)
(expression
(simple_expression
(identifier)
)
)
(statement
(blockStatement
(statements
(statement
(assignmentStatement
(expression
(simple_expression
(identifier)
)
)
(assignment)
(expression
(simple_expression
(integer)
)
)
)
)
)
)
)
(else)
(statement
(blockStatement
(statements
(statement
(assignmentStatement
(expression
(simple_expression
(identifier)
)
)
(assignment)
(expression
(simple_expression
(integer)
)
)
)
)
)
)
)
)
)
)
(parserTransitionStatement
(transition)
(transitionSelectionExpression
(identifier)
)
)
)
)
)
)
)