Skip to content

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