Run Code  | API  | Code Wall  | Misc  | Feedback  | Login  | Theme  | Privacy  | Patreon 

Arreglos_TunRojasCarolina

objeto:- write('{'),read(X), (X='atributo'->atributo),write('}').
atributo:- read(X), write('"'), write(X), write('":'),tipoatributo(X),a1. 
a1:- read(X),(X='atributo'-> write(','),atributo;(X='fin'->write(''))).
tipoatributo(M):- read(X), (X='metodo'->metodo(M); X='numero'->numero;  X='cadena'-> cadena ; X='objeto'->objeto; X='arreglo'-> arreglo;write('error')).
cadena:- read(X), write('"'), write(X), write('"').
numero:- read(X), write(X).
arreglo:- read(X),write('['),(read(X), atributoA (X)), write (']').

atributoA (X):-  (X= 'fin', write ('entrada')); (X='numero'-> numero, Agregar); (X='cadena'-> cadena , Agregar); 
(X='objeto'->objeto, Agregar);(X='arreglo'->arreglo, Agregar).
Arreglar:- read(X), write (','), atributoA(X).
metodo(M):- write('"function() {'),a2,write(' return '), write(M), write(';}"').
a2:- read(X), (X='decision'->decision; X='asignacion' -> asignacion; X='fin' -> write('');(write('ERROR: '),write(X))).
asignacion:- read(X), write(X), write('='), read(Y), write(Y), write(';'),a2.
decision:- write('if('),condicion,write(')'), verdadero,falso.
condicion:- read(X), write(X).
verdadero:- write('{'),a2('}').
falso:- write('else {'),a2.('}').
:-objeto.
 run  | edit  | history  | help 0