========================= 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) ) ) ) ) ) ) )