@@ -2,24 +2,34 @@
|
||||
Parser (No Parameters)
|
||||
=========================
|
||||
parser simple() {
|
||||
state testing {}
|
||||
}
|
||||
state start {
|
||||
transition accept;
|
||||
}
|
||||
};
|
||||
|
||||
---
|
||||
(p4program
|
||||
(declaration
|
||||
(parserDeclaration
|
||||
(parserTypeDeclaration
|
||||
(parserType
|
||||
(parser)
|
||||
parser_name: (identifier)
|
||||
(identifier)
|
||||
)
|
||||
(parserStates
|
||||
(parserState
|
||||
(state)
|
||||
(identifier)
|
||||
)
|
||||
(parserTransitionStatement
|
||||
(transition)
|
||||
(transitionSelectionExpression
|
||||
(identifier)
|
||||
)
|
||||
)
|
||||
(semicolon)
|
||||
)
|
||||
)
|
||||
)
|
||||
(semicolon)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -28,28 +38,43 @@ parser simple() {
|
||||
Parser (Parameters)
|
||||
=========================
|
||||
parser imple(bool pname) {
|
||||
state testing {}
|
||||
}
|
||||
state start {
|
||||
transition accept;
|
||||
}
|
||||
};
|
||||
|
||||
---
|
||||
(p4program
|
||||
(declaration
|
||||
(parserDeclaration
|
||||
(parserTypeDeclaration
|
||||
(parserType
|
||||
(parser)
|
||||
(identifier)
|
||||
(nonEmptyParameterList
|
||||
(parameterList
|
||||
(parameter
|
||||
(typeRef
|
||||
(baseType
|
||||
(bool)))
|
||||
(identifier))))
|
||||
(bool)
|
||||
)
|
||||
)
|
||||
(identifier)
|
||||
)
|
||||
)
|
||||
)
|
||||
(parserStates
|
||||
(parserState
|
||||
(state)
|
||||
(identifier)
|
||||
)
|
||||
(parserTransitionStatement
|
||||
(transition)
|
||||
(transitionSelectionExpression
|
||||
(identifier)
|
||||
)
|
||||
)
|
||||
(semicolon)
|
||||
)
|
||||
)
|
||||
)
|
||||
(semicolon)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -0,0 +1,187 @@
|
||||
=========================
|
||||
Simple If Statement (No Else)
|
||||
=========================
|
||||
parser simple() {
|
||||
state start {
|
||||
if (true) {
|
||||
};
|
||||
transition accept;
|
||||
}
|
||||
};
|
||||
|
||||
---
|
||||
(p4program
|
||||
(declaration
|
||||
(parserDeclaration
|
||||
(parserType
|
||||
(parser)
|
||||
(identifier)
|
||||
)
|
||||
(parserStates
|
||||
(parserState
|
||||
(state)
|
||||
(identifier)
|
||||
(parserStatements
|
||||
(parserStatement
|
||||
(conditionalStatement
|
||||
(if)
|
||||
(expression
|
||||
(true)
|
||||
)
|
||||
(statement
|
||||
(blockStatement)
|
||||
)
|
||||
)
|
||||
)
|
||||
(semicolon)
|
||||
)
|
||||
(parserTransitionStatement
|
||||
(transition)
|
||||
(transitionSelectionExpression
|
||||
(identifier)
|
||||
)
|
||||
)
|
||||
(semicolon)
|
||||
)
|
||||
)
|
||||
)
|
||||
(semicolon)
|
||||
)
|
||||
)
|
||||
|
||||
=========================
|
||||
Simple If Statement (Else)
|
||||
=========================
|
||||
parser simple() {
|
||||
state start {
|
||||
if (true) {
|
||||
} else {
|
||||
};
|
||||
transition accept;
|
||||
}
|
||||
};
|
||||
|
||||
---
|
||||
(p4program
|
||||
(declaration
|
||||
(parserDeclaration
|
||||
(parserType
|
||||
(parser)
|
||||
(identifier)
|
||||
)
|
||||
(parserStates
|
||||
(parserState
|
||||
(state)
|
||||
(identifier)
|
||||
(parserStatements
|
||||
(parserStatement
|
||||
(conditionalStatement
|
||||
(if)
|
||||
(expression
|
||||
(true)
|
||||
)
|
||||
(statement
|
||||
(blockStatement)
|
||||
)
|
||||
(else)
|
||||
(statement
|
||||
(blockStatement)
|
||||
)
|
||||
)
|
||||
)
|
||||
(semicolon)
|
||||
)
|
||||
(parserTransitionStatement
|
||||
(transition)
|
||||
(transitionSelectionExpression
|
||||
(identifier)
|
||||
)
|
||||
)
|
||||
(semicolon)
|
||||
)
|
||||
)
|
||||
)
|
||||
(semicolon)
|
||||
)
|
||||
)
|
||||
|
||||
=========================
|
||||
Simple If Statement (With Body)
|
||||
=========================
|
||||
parser simple() {
|
||||
state start {
|
||||
if (true) {
|
||||
true;
|
||||
} else {
|
||||
false;
|
||||
};
|
||||
transition accept;
|
||||
}
|
||||
};
|
||||
|
||||
---
|
||||
(p4program
|
||||
(declaration
|
||||
(parserDeclaration
|
||||
(parserType
|
||||
(parser)
|
||||
(identifier)
|
||||
)
|
||||
(parserStates
|
||||
(parserState
|
||||
(state)
|
||||
(identifier)
|
||||
(parserStatements
|
||||
(parserStatement
|
||||
(conditionalStatement
|
||||
(if)
|
||||
(expression
|
||||
(true)
|
||||
)
|
||||
(statement
|
||||
(blockStatement
|
||||
(statements
|
||||
(statement
|
||||
(expressionStatement
|
||||
(expression
|
||||
(true)
|
||||
)
|
||||
)
|
||||
)
|
||||
(semicolon)
|
||||
)
|
||||
)
|
||||
)
|
||||
(else)
|
||||
(statement
|
||||
(blockStatement
|
||||
(statements
|
||||
(statement
|
||||
(expressionStatement
|
||||
(expression
|
||||
(false)
|
||||
)
|
||||
)
|
||||
)
|
||||
(semicolon)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(semicolon)
|
||||
)
|
||||
(parserTransitionStatement
|
||||
(transition)
|
||||
(transitionSelectionExpression
|
||||
(identifier)
|
||||
)
|
||||
)
|
||||
(semicolon)
|
||||
)
|
||||
)
|
||||
)
|
||||
(semicolon)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -0,0 +1,88 @@
|
||||
=========================
|
||||
Simple Transition Statement (To Identifier)
|
||||
=========================
|
||||
parser simple() {
|
||||
state start {
|
||||
transition accept;
|
||||
}
|
||||
};
|
||||
|
||||
---
|
||||
(p4program
|
||||
(declaration
|
||||
(parserDeclaration
|
||||
(parserType
|
||||
(parser)
|
||||
(identifier)
|
||||
)
|
||||
(parserStates
|
||||
(parserState
|
||||
(state)
|
||||
(identifier)
|
||||
(parserTransitionStatement
|
||||
(transition)
|
||||
(transitionSelectionExpression
|
||||
(identifier)
|
||||
)
|
||||
)
|
||||
(semicolon)
|
||||
)
|
||||
)
|
||||
)
|
||||
(semicolon)
|
||||
)
|
||||
)
|
||||
|
||||
=========================
|
||||
Simple Transition Statement (To Select Expression)
|
||||
=========================
|
||||
parser simple() {
|
||||
state start {
|
||||
transition select (se) {
|
||||
true: next_state;
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
---
|
||||
(p4program
|
||||
(declaration
|
||||
(parserDeclaration
|
||||
(parserType
|
||||
(parser)
|
||||
(identifier)
|
||||
)
|
||||
(parserStates
|
||||
(parserState
|
||||
(state)
|
||||
(identifier)
|
||||
(parserTransitionStatement
|
||||
(transition)
|
||||
(transitionSelectionExpression
|
||||
(selectExpression
|
||||
(select)
|
||||
(expression
|
||||
(identifier)
|
||||
)
|
||||
(selectBody
|
||||
(selectCase
|
||||
(keysetExpression
|
||||
(expression
|
||||
(true)
|
||||
)
|
||||
)
|
||||
(colon)
|
||||
(identifier)
|
||||
)
|
||||
(semicolon)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(semicolon)
|
||||
)
|
||||
)
|
||||
)
|
||||
(semicolon)
|
||||
)
|
||||
)
|
||||
Reference in New Issue
Block a user