|
@@ -60,47 +60,31 @@ public class LispImpl implements Lisp {
|
|
|
}
|
|
|
|
|
|
private Object parseElement(String val) {
|
|
|
- switch(val.charAt(0)) {
|
|
|
- case '-':
|
|
|
- case '0':
|
|
|
- case '1':
|
|
|
- case '2':
|
|
|
- case '3':
|
|
|
- case '4':
|
|
|
- case '5':
|
|
|
- case '6':
|
|
|
- case '7':
|
|
|
- case '8':
|
|
|
- case '9':
|
|
|
- try {
|
|
|
- BigInteger i = BigInteger.valueOf((Integer.parseInt(val)));
|
|
|
- return i;
|
|
|
- } catch(NumberFormatException ex) {
|
|
|
- //Rien
|
|
|
- }
|
|
|
- try {
|
|
|
- Double d = Double.parseDouble(val);
|
|
|
- return d;
|
|
|
- } catch(NumberFormatException ex) {
|
|
|
- //Rien
|
|
|
- }
|
|
|
- return val;
|
|
|
- case '#':
|
|
|
- try {
|
|
|
- LispBoolean lbool = LispBoolean.valueOf(val);
|
|
|
- return lbool;
|
|
|
- } catch(IllegalArgumentException ex) {
|
|
|
- //Rien
|
|
|
- }
|
|
|
- return val;
|
|
|
- default:
|
|
|
- return val;
|
|
|
+ try {
|
|
|
+ BigInteger bi = new BigInteger(val);
|
|
|
+ return bi;
|
|
|
+ } catch(NumberFormatException ex) {
|
|
|
+ //Rien
|
|
|
+ }
|
|
|
+ try {
|
|
|
+ Double d = Double.parseDouble(val);
|
|
|
+ return d;
|
|
|
+ } catch(NumberFormatException ex) {
|
|
|
+ //Rien
|
|
|
+ }
|
|
|
+ try {
|
|
|
+ LispBoolean lbool = LispBoolean.valueOf(val);
|
|
|
+ return lbool;
|
|
|
+ } catch(IllegalArgumentException ex) {
|
|
|
+ //Rien
|
|
|
}
|
|
|
+ return val;
|
|
|
}
|
|
|
|
|
|
private Object parseList(Stack<String> pile) {
|
|
|
- for(String s : pile) {
|
|
|
- System.out.println(s);
|
|
|
+ String val = "";
|
|
|
+ while(pile.size() > 0 && val.equals(")")) {
|
|
|
+
|
|
|
}
|
|
|
return null;
|
|
|
}
|