OOP in iLisp:

All classes (colors) are in SymTable stored in global symbol Classes.
class have following format:
([INDEX] NAME
	 (PARS)/()
	 (PUBS)/()
	 (PRIVS)/()
	 (METHODS)/()
)

PARS: list of pointers to other classes which are parents of this one.
PUBS,PRIVS: ( [INDEX] (name comment) (name coment) ...)
METHODS: ([INDEX] [STAB] (name comment)...)

Create a new object:
(New Class-name Obj-Name)
It will define a new lambda-call: 
Obj-Name:='(lambda ()
 (ignore ([INDEX] [STAB]-PUBS [STAB]-PRIVS))
 (ComputeClass CLASS-NAME [STAB]-classes [P] ParList));
Where [P] is a pointer to ignore parameter;

Access:
(Obj-Name PUB-name) - get value of PUB element;
(Obj-Name PUB-name VAL) - Set value of PUB element;
(Obj-Name (METHOD pars)) - Use Method.


----------------
(setq ComputeClass '(lambda (CN CT L LL)
	(atab (stab 5))
	(setql L1 (ilist L))
	(setql p1 (nth 0 LL))
	(setql p2 (nth 1 LL))
	(if (atom p1)
		(if (null p2) (getsym (inth 0 L1) p1)
			(setl p1 p2 (inth 0 L1)) ) 
		(prog ! EXECUTE METHOD !
			(setql M (getsym (inth 4 (getsym CT CN)) (car p1)))
			(eval (list M (cdr p1)))
		)
	)
 ))


