Tabela sintática
Tabela sintática utilizada para a construção da vivi lang.
Tabela sintática
Não Terminal | $<vivi> | $</vivi> | function | id | ( | ) | : | { | } | , | ; | = | int | double | boolean | string | if | else | for | == | != | < | <= | > | >= | return | str | + | - | && | || | * | / | % | integer | decimal | digit | true | false | null | $ | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
S | Script | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | sync |
Script | $<vivi> Statements $</vivi> | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | sync |
Statements | error | ε | Statement Statements | Statement Statements | error | error | error | error | ε | error | error | error | error | error | error | error | Statement Statements | error | Statement Statements | error | error | error | error | error | error | Statement Statements | Statement Statements | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error |
FunctionDefinition | error | sync | function id ( Parameters ) : Type { Statements } | sync | error | error | error | error | sync | error | error | error | error | error | error | error | sync | error | sync | error | error | error | error | error | error | sync | sync | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error |
FunctionCall | error | sync | sync | id ( Arguments ) | error | error | error | error | sync | error | error | error | error | error | error | error | sync | error | sync | error | error | error | error | error | error | sync | sync | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error |
Parameters | error | error | error | ParameterList | error | ε | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error |
ParameterList | error | error | error | id : Type MoreParameters | error | sync | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error |
MoreParameters | error | error | error | error | error | ε | error | error | error | , id : Type MoreParameters | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error |
Arguments | error | error | error | ArgumentList | ArgumentList | ε | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | ArgumentList | error | error | error | error | error | error | error | ArgumentList | ArgumentList | ArgumentList | ArgumentList | ArgumentList | ArgumentList | error |
ArgumentList | error | error | error | Expression MoreArguments | Expression MoreArguments | sync | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | Expression MoreArguments | error | error | error | error | error | error | error | Expression MoreArguments | Expression MoreArguments | Expression MoreArguments | Expression MoreArguments | Expression MoreArguments | Expression MoreArguments | error |
MoreArguments | error | error | error | error | error | ε | error | error | error | , Expression MoreArguments | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error |
Statement | error | sync | FunctionDefinition | FunctionCall | error | error | error | error | sync | error | error | error | error | error | error | error | IfStatement | error | ForLoop | error | error | error | error | error | error | ReturnStatement | PrintStatement | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error |
VariableDeclaration | error | sync | sync | id : Type Expression ; | sync | error | error | error | sync | error | error | error | error | error | error | error | sync | error | sync | error | error | error | error | error | error | sync | sync | sync | error | error | error | error | error | error | error | sync | sync | sync | sync | sync | sync | error |
VariableAssignment | error | sync | sync | id = Expression ; | error | error | error | error | sync | error | error | error | error | error | error | error | sync | error | sync | error | error | error | error | error | error | sync | sync | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error |
Type | error | error | error | sync | sync | sync | error | sync | error | sync | error | error | int | double | boolean | string | error | error | error | error | error | error | error | error | error | error | error | sync | error | error | error | error | error | error | error | sync | sync | sync | sync | sync | sync | error |
IfStatement | error | sync | sync | sync | error | error | error | error | sync | error | error | error | error | error | error | error | if ( Condition ) { Statements } ElseClause | error | sync | error | error | error | error | error | error | sync | sync | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error |
ElseClause | error | ε | ε | ε | error | error | error | error | ε | error | error | error | error | error | error | error | ε | else { Statements } | ε | error | error | error | error | error | error | ε | ε | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error |
ForLoop | error | sync | sync | sync | error | error | error | error | sync | error | error | error | error | error | error | error | sync | error | for ( VariableDeclaration Condition ; Expression ) { Statements } | error | error | error | error | error | error | sync | sync | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error |
Condition | error | error | error | Expression RelationalOp Expression | Expression RelationalOp Expression | sync | error | error | error | error | sync | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | Expression RelationalOp Expression | error | error | error | error | error | error | error | Expression RelationalOp Expression | Expression RelationalOp Expression | Expression RelationalOp Expression | Expression RelationalOp Expression | Expression RelationalOp Expression | Expression RelationalOp Expression | error |
RelationalOp | error | error | error | sync | sync | error | error | error | error | error | error | error | error | error | error | error | error | error | error | == != < <= > >= | error | error | error | error | error | error | error | sync | error | error | error | error | error | error | error | sync | sync | sync | sync | sync | sync | error |
ReturnStatement | error | sync | sync | sync | error | error | error | error | sync | error | error | error | error | error | error | error | sync | error | sync | error | error | error | error | error | error | return ; | sync | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error |
PrintStatement | error | sync | sync | sync | error | error | error | error | sync | error | error | error | error | error | error | error | sync | error | sync | error | error | error | error | error | error | sync | print ( PrintArgument ) ; | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error |
PrintArgument | error | error | error | Expression str | Expression str | sync | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | Expression str | error | error | error | error | error | error | error | Expression str | Expression str | Expression str | Expression str | Expression str | Expression str | error |
Expression | error | error | error | Term MoreTerms | Term MoreTerms | sync | error | error | error | sync | sync | error | error | error | error | error | error | error | error | sync | error | error | error | error | error | error | error | Term MoreTerms | error | error | error | error | error | error | error | Term MoreTerms | Term MoreTerms | Term MoreTerms | Term MoreTerms | Term MoreTerms | Term MoreTerms | error |
MoreTerms | error | error | error | error | error | ε | error | error | error | ε | ε | error | error | error | error | error | error | error | error | ε | error | error | error | error | error | error | error | ε | + Term MoreTerms | - Term MoreTerms | LogicalOp Term MoreTerms | LogicalOp Term MoreTerms | error | error | error | error | error | error | error | error | error | error |
LogicalOp | error | error | error | sync | sync | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | error | sync | error | error | && | || | error | error | error | sync | sync | sync | sync | sync | sync | error |
Term | error | error | error | Factor MoreFactors | Factor MoreFactors | sync | error | error | error | sync | sync | error | error | error | error | error | error | error | error | sync | error | error | error | error | error | error | error | Factor MoreFactors | sync | sync | sync | sync | error | error | error | Factor MoreFactors | Factor MoreFactors | Factor MoreFactors | Factor MoreFactors | Factor MoreFactors | Factor MoreFactors | error |
MoreFactors | error | error | error | error | error | ε | error | error | error | ε | ε | error | error | error | error | error | error | error | error | ε | error | error | error | error | error | error | error | ε | ε | ε | ε | ε | * Factor MoreFactors | / Factor MoreFactors | % Factor MoreFactors | error | error | error | error | error | error | error |
Factor | error | error | error | id | ( Expression ) | sync | error | error | error | sync | sync | error | error | error | error | error | error | error | error | sync | error | error | error | error | error | error | error | str | sync | sync | sync | sync | sync | sync | sync | integer | decimal | digit | true | false | null | error |