|
@@ -28,7 +28,6 @@ public class LispImpl implements Lisp {
|
|
if(explode.size() > 0) {
|
|
if(explode.size() > 0) {
|
|
throw new LispError("Invalid Format");
|
|
throw new LispError("Invalid Format");
|
|
}
|
|
}
|
|
- //return this.parseElement(val);
|
|
|
|
return LispElement.valueOf(val).get().value;
|
|
return LispElement.valueOf(val).get().value;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -118,30 +117,6 @@ public class LispImpl implements Lisp {
|
|
return result;
|
|
return result;
|
|
}
|
|
}
|
|
|
|
|
|
- /**
|
|
|
|
- * Parse un element depuis une chaine de caractere
|
|
|
|
- * @param val La chaine de caractere
|
|
|
|
- * @return L'objet parser
|
|
|
|
- */
|
|
|
|
- private Object parseElement(String val) {
|
|
|
|
- try {
|
|
|
|
- return new BigInteger(val);
|
|
|
|
- } catch(NumberFormatException ex) {
|
|
|
|
- //Rien
|
|
|
|
- }
|
|
|
|
- try {
|
|
|
|
- return Double.valueOf(val);
|
|
|
|
- } catch(NumberFormatException ex) {
|
|
|
|
- //Rien
|
|
|
|
- }
|
|
|
|
- try {
|
|
|
|
- return LispBoolean.valueOf(val);
|
|
|
|
- } catch(IllegalArgumentException ex) {
|
|
|
|
- //Rien
|
|
|
|
- }
|
|
|
|
- return val;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
/**
|
|
/**
|
|
* Parse une liste en Lisp
|
|
* Parse une liste en Lisp
|
|
* @param pile La pile avec les valeurs parser par explode
|
|
* @param pile La pile avec les valeurs parser par explode
|
|
@@ -153,10 +128,8 @@ public class LispImpl implements Lisp {
|
|
String val = pile.remove(0);
|
|
String val = pile.remove(0);
|
|
while(pile.size() != 0 && !")".equals(val)) {
|
|
while(pile.size() != 0 && !")".equals(val)) {
|
|
if("(".equals(val)) {
|
|
if("(".equals(val)) {
|
|
- //list = list.append(this.parse("(" + val));
|
|
|
|
list = list.append(this.parseList(pile));
|
|
list = list.append(this.parseList(pile));
|
|
} else {
|
|
} else {
|
|
- //list = list.append(this.parseElement(val));
|
|
|
|
list = list.append(LispElement.valueOf(val).get().value);
|
|
list = list.append(LispElement.valueOf(val).get().value);
|
|
}
|
|
}
|
|
val = pile.remove(0);
|
|
val = pile.remove(0);
|