|
@@ -168,11 +168,17 @@ public class LispImpl implements Lisp {
|
|
|
|
|
|
@Override
|
|
|
@SuppressWarnings("unchecked")
|
|
|
- public Object evaluate(Object ex) throws LispError {
|
|
|
- if(ex instanceof ConsList) {
|
|
|
- return eval((ConsList<Object>) ex);
|
|
|
+ public Object evaluate(Object lisp) throws LispError {
|
|
|
+ if(lisp instanceof ConsList) {
|
|
|
+ return eval((ConsList<Object>) lisp);
|
|
|
}
|
|
|
- return LispElement.generate(ex);
|
|
|
+ //Si element seul on évalue directement sa valeur
|
|
|
+ try {
|
|
|
+ return LispElement.generate(lisp);
|
|
|
+ } catch (IllegalArgumentException ex) {
|
|
|
+ throw new LispError(ex.getMessage(), ex);
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|
|
|
/* --- Verification --- */
|