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

Base de conocimiento

objeto:- write('{'),read(X), (X='atributo'->atributo; write('')),write('}').
a1:- read(X),(X='atributo'-> write(','),atributo;X='nElemento'-> write(', '),elemento;(X='fin'->write(''))).
atributo:- read(X), write('"'), write(X), write('":'),tipoatributo(X),a1. 
tipoatributo(M):- read(X), (X='metodo'->metodo(M);(X='numero'->numero;X='cadena'->cadena; X='arreglo'->arreglo);(X='objeto'->objeto; write('error'))).
cadena:- read(X), write('"'), write(X), write('"').
numero:- read(X), write(X).
arreglo:- write('['), elemento, write(']').
elemento:- tipoatributo(X),a1.
metodo(M):- write('"function() {'),a2,write(' return '), write(M), write(';}"').
a2:- read(X), (X='decision'->decision;a3(X)).
a3(X):- X='asignacion' -> asignacion;(a4(X)).
a4(X):- 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, write('}'),falso,write('}').
condicion:-read(X), write(X).
verdadero:- write('{'),a2.
falso:- write('else {'),a2.
:-objeto. 
 run  | edit  | history  | help 0