Essays.club - Ensayos gratis, notas de cursos, notas de libros, tareas, monografías y trabajos de investigación
Buscar

Crear ast

Enviado por   •  11 de Diciembre de 2018  •  847 Palabras (4 Páginas)  •  290 Visitas

Página 1 de 4

...

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

{:

Nodo padre =new Nodo("METODOO1",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("METODOO2",aleft,aright);

Nodo hijo = new Nodo(a,aleft,aright);

padre.hijos.add(hijo);

padre.hijos.add(b);

RESULT = padre;

:};

//----------------------------------en el interprete

public void ejecutarOBJECTO(Nodo nodo){

Metodos m;

InterpreteGraphik clase;

ArrayList parametros=new ArrayList();

String instancia=nodo.hijos.get(0).hijos.get(0).valor;

String objetoinstancia=nodo.hijos.get(0).hijos.get(1).valor;

clase=gurdandoArbol.interG.get(instancia);

clase.aumentarAmbito();

if(nodo.hijos.get(0).valor.equals("NMETODO")){

if(clase.getMetodo(objetoinstancia,parametros)!=null){

m=clase.getMetodo(objetoinstancia,parametros);

if(m.nodo.hijos.size()==3){

clase.ejecutarSENTENCIAS(m.nodo.hijos.get(2));

}else if(m.nodo.hijos.size()==4 && m.nodo.valor.equals("METODOS1")){

clase.ejecutarSENTENCIAS(m.nodo.hijos.get(2));

}else if(m.nodo.hijos.size()==4 && m.nodo.valor.equals("FUNCIONES")){

clase.ejecutarSENTENCIAS(m.nodo.hijos.get(2));

}

else if(m.nodo.hijos.size()==5 && m.nodo.valor.equals("FUNCIONES1")){

clase.ejecutarSENTENCIAS(m.nodo.hijos.get(2));

}

}

}

else if(nodo.hijos.get(0).valor.equals("NMETODOS1")){

//---------------------------parametros

System.out.println("entro al nmetodo1");

for(int i=0;i<nodo.hijos.get(0).hijos.get(2).hijos.size();i++){

Object val=evaluarExpresion(nodo.hijos.get(0).hijos.get(2).hijos.get(i));

int tipo=tipoO.tobjeto(val);

parametros.add(tipo);

}

if(clase.getMetodollamada(objetoinstancia,parametros)!=null){

m=clase.getMetodollamada(objetoinstancia,parametros);

System.out.println("entro a NMETODOS1");

for(int i=0;i<m.nodo.hijos.get(2).hijos.size();i++){

String t=m.nodo.hijos.get(2).hijos.get(i).hijos.get(0).valor;

String n=m.nodo.hijos.get(2).hijos.get(i).hijos.get(1).valor;

Object v=evaluarExpresion(nodo.hijos.get(0).hijos.get(2).hijos.get(i));

variables nuevo=new variables(n, t, v);

clase.saveVariable(nuevo);

}

clase.ejecutarSENTENCIAS(m.nodo.hijos.get(3));

}

}

clase.disminuirAmbito();

}

...

Descargar como  txt (5.1 Kb)   pdf (46.4 Kb)   docx (13.6 Kb)  
Leer 3 páginas más »
Disponible sólo en Essays.club