AbstractGrammar.txt (VGen)
Fichero de VGen en el que se definen:
- Los nodos del AST.
- Los atributos que añade cada fase.
- Las funciones de código de la especificación de código.
A partir de lo anterior, genera los esqueletos de las clases Java de todas esas etapas.
txt
CATEGORIES
type;
statement;
expression;
NODES
program -> varDefinition* statement*;
varDefinition -> type string;
intType:type -> ;
floatType:type -> ;
print:statement -> expression;
assignment:statement -> left:expression right:expression;
arithmetic:expression -> left:expression operator:string right:expression;
variable:expression -> string;
intLiteral:expression -> int;
floatLiteral:expression -> float;
// -----------------------
ATTRIBUTE GRAMMAR Identification
variable -> varDefinition;
// -----------------------
ATTRIBUTE GRAMMAR TypeChecking
expression -> type;
expression -> lvalue:boolean;
// -----------------------
ATTRIBUTE GRAMMAR MemoryAllocation
varDefinition -> [inh] address:int; // Inherited attribute
// -----------------------
CODE SPECIFICATION Mapl
run[program]
execute[statement]
value[expression]
address[expression]
metadata[program]
metadata[varDefinition]