========================= Simple Declaration ========================= parser simple() { state start { bool l; transition accept; } }; --- (p4program (declaration (parserDeclaration (parserType (parser) (identifier) ) (parserStates (parserState (state) (identifier) (parserStatements (parserStatement (variableDeclaration (typeRef (baseType (bool) ) ) (identifier) ) ) ) (parserTransitionStatement (transition) (transitionSelectionExpression (identifier) ) ) ) ) ) ) ) ========================= Simple Declaration (int) ========================= parser simple() { state start { int l; transition accept; } }; --- (p4program (declaration (parserDeclaration (parserType (parser) (identifier) ) (parserStates (parserState (state) (identifier) (parserStatements (parserStatement (variableDeclaration (typeRef (baseType (int) ) ) (identifier) ) ) ) (parserTransitionStatement (transition) (transitionSelectionExpression (identifier) ) ) ) ) ) ) ) ========================= Simple Declaration (string) ========================= parser simple() { state start { string l; transition accept; } }; --- (p4program (declaration (parserDeclaration (parserType (parser) (identifier) ) (parserStates (parserState (state) (identifier) (parserStatements (parserStatement (variableDeclaration (typeRef (baseType (string) ) ) (identifier) ) ) ) (parserTransitionStatement (transition) (transitionSelectionExpression (identifier) ) ) ) ) ) ) ) ========================= Simple Declaration (string with initial value) ========================= parser simple() { state start { string l = "testing"; transition accept; } }; --- (p4program (declaration (parserDeclaration (parserType (parser) (identifier) ) (parserStates (parserState (state) (identifier) (parserStatements (parserStatement (variableDeclaration (typeRef (baseType (string) ) ) (identifier) (assignment) (expression (simple_expression (string_literal) ) ) ) ) ) (parserTransitionStatement (transition) (transitionSelectionExpression (identifier) ) ) ) ) ) ) ) ========================= Non Basic Type Declaration (No Initial Value) ========================= parser simple() { state start { header_t header; transition accept; } }; --- (p4program (declaration (parserDeclaration (parserType (parser) (identifier) ) (parserStates (parserState (state) (identifier) (parserStatements (parserStatement (variableDeclaration (typeRef (type_identifier) ) (identifier) ) ) ) (parserTransitionStatement (transition) (transitionSelectionExpression (identifier) ) ) ) ) ) ) ) ========================= Simple Struct Type Declaration ========================= struct Testing { string fieldA; }; --- (p4program (declaration (type_declaration (struct_declaration (struct) (identifier) (struct_declaration_fields (variableDeclaration (typeRef (baseType (string) ) ) (identifier) ) ) ) ) ) )