inicio codificacion mercado 3 marzo 2022
objeto :- write('{'),aux1, write('}').
aux1 :- read(X),(X='atributo'->atributo;
X='fin'->write('')).
atributo :- read(X),write('"'),write(X),write('"'), write(':'),valoratributo(X),aux2.
arreglo :- write('['),aux3, write(']').
aux2 :- read(X),(X='atributo'->write(','),atributo;
X='fin'->write('')).
aux3 :- read(X),(X='valor'->valorarreglo,aux4;
X='fin'->write('')).
aux4 :- read(X),(X='valor'->write(','),valorarreglo,aux4;
X='fin'->write('')).
cadena :- read(X),write('"'),write(X),write('"').
numero :- read(X),write(X).
valoratributo(M) :-read(T),(T='cadena'->cadena;
T='numero'->numero;
T='arreglo'->arreglo;
T='metodo'->metodo(M);
T='objeto'->objeto).
valorarreglo :-read(T),(T='cadena'->cadena;
T='numero'->numero;
T='arreglo'->arreglo;
T='objeto'->objeto).
metodo(M) :- write('"function() {'),instruccion,write('return '),write(M),write(' }"').
instruccion :-read(I),(I='asignacion'->asignacion,instruccion;
I='decision'->decision,instruccion;
I='fin'->write('')).
asignacion :- numero,write('='),numero,write(';').
decision :- write('if ('),condicion,write('){'),instruccion,write('}'),aux5.
aux5 :- read(I),(I='sino'->falso;
I='fin'->write('')).
falso :- write('else {'), instruccion, write('}').
condicion :- numero.
:- objeto.
|
run
| edit
| history
| help
|
0
|
|
|