========================= Simple Declaration ========================= parser simple() { state start { bool l; transition accept; } }; --- (p4program (declaration (parserDeclaration (parserType (parser) (identifier) ) (parserStates (parserState (state) (identifier) (parserLocalElements (parserLocalElement (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) (parserLocalElements (parserLocalElement (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) (parserLocalElements (parserLocalElement (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) (parserLocalElements (parserLocalElement (variableDeclaration (typeRef (baseType (string) ) ) (identifier) (assignment) (expression (string_literal) ) ) ) ) (parserTransitionStatement (transition) (transitionSelectionExpression (identifier) ) ) ) ) ) ) )