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 |