Crear ast
Enviado por Luis Miguel T • 5 de Septiembre de 2017 • Tarea • 845 Palabras (4 Páginas) • 190 Visitas
AALS::= llamada NODOS:a fin
{:
Nodo padre=new Nodo("LLAMADANODO",aleft,aright);
padre.hijos.add(a);
RESULT = padre;
:};
NODOS::=NODO1:a NODO:b
{:
a.hijos.add(b);
RESULT = a;
:};
NODO::=NODO:a NODOAUX:b
{:
a.hijos.add(b);
RESULT = a;
:}
|NODOAUX:a
{:
RESULT = a;
:};
NODOAUX::=punto id:a
{:
Nodo hijo=new Nodo(a,aleft,aright);
RESULT = hijo;
:}
|punto id:a apar cpar
{:
Nodo padre=new Nodo("NMETODO",aleft,aright);
Nodo hijo=new Nodo(a,aleft,aright);
padre.hijos.add(hijo);
RESULT = padre;
:}
|punto id:a apar PARAMETROS:b cpar
{:
Nodo padre=new Nodo("NMETODOS1",aleft,aright);
Nodo hijo=new Nodo(a,aleft,aright);
padre.hijos.add(hijo);
padre.hijos.add(b);
RESULT = padre;
:};
NODO1::=id:a
{:
Nodo padre=new Nodo("ATRIBUTO",aleft,aright);
Nodo hijo=new Nodo(a,aleft,aright);
padre.hijos.add(hijo);
RESULT = padre;
:}
|id:a apar cpar
{:
Nodo padre=new Nodo("NMETODO",aleft,aright);
Nodo hijo=new Nodo(a,aleft,aright);
padre.hijos.add(hijo);
RESULT = padre;
:}
|id:a apar PARAMETROS:b cpar
{:
Nodo padre=new Nodo("NMETODOS1",aleft,aright);
Nodo hijo=new Nodo(a,aleft,aright);
padre.hijos.add(hijo);
padre.hijos.add(b);
RESULT = padre;
:};
//---------------------------------correcto
AALS::= llamada NODOAUX:a fin
{:
Nodo padre=new Nodo("LLAMADANODO",aleft,aright);
padre.hijos.add(a);
RESULT = padre;
:};
NODOAUX::=id:a NODOS:b
{:
Nodo padre=new Nodo("LLAMADAO",aleft,aright);
Nodo hijo=new Nodo(a,aleft,aright);
padre.hijos.add(hijo);
padre.hijos.add(b);
RESULT = padre;
:}
|id:a apar cpar NODOS:b
{:
Nodo padre=new Nodo("LLAMADAO1",aleft,aright);
Nodo hijo=new Nodo(a,aleft,aright);
padre.hijos.add(hijo);
padre.hijos.add(b);
RESULT = padre;
:}
|id:a apar PARAMETROS:b cpar NODOS:c
{:
Nodo padre=new Nodo("LLAMADAO2",aleft,aright);
Nodo hijo=new Nodo(a,aleft,aright);
padre.hijos.add(hijo);
padre.hijos.add(b);
padre.hijos.add(c);
RESULT = padre;
:};
NODOS::=NODOS:a NODO:b
{:
a.hijos.add(b);
RESULT = a;
:}
|NODO:a
{:
Nodo padre = new Nodo("OBJETO",aleft,aright);
padre.hijos.add(a);
RESULT = padre;
:};
NODO::=punto id:a
{:
Nodo padre = new Nodo("ATRIBUTO",aleft,aright);
Nodo hijo =new Nodo(a,aleft,aright);
padre.hijos.add(hijo);
RESULT = padre;
:}
|punto id:a apar cpar
{:
...