Especificación Sintáctica de MLang
Especificación sintáctica de MLang utilizando como metalenguaje una gramática libre de contexto (GFC).
En notación BNF:
java
program ⟶ 'DATA' varDefinitions 'CODE' statements
varDefinitions ⟶ ε | varDefinitions varDefinition
varDefinition ⟶ type IDENT ';'
type ⟶ 'float' | 'int'
statements ⟶ ε | statements statement
statement ⟶ 'print' expression ';'
| expression '=' expression ';'
expression ⟶
expression '+' expression
| expression '-' expression
| expression '*' expression
| expression '/' expression
| '(' expression ')'
| IDENT
| INT_LITERAL
| FLOAT_LITERAL
En notación EBNF:
java
program ⟶ 'DATA' varDefinitions* 'CODE' statements*
varDefinition ⟶ type IDENT ';'
type ⟶ 'float' | 'int'
statement ⟶ 'print' expression ';'
| expression '=' expression ';'
expression ⟶
expression '+' expression
| expression '-' expression
| expression '*' expression
| expression '/' expression
| '(' expression ')'
| IDENT
| INT_LITERAL
| FLOAT_LITERAL