Browse Source

Amelioration parseElement

Arthur Brandao 6 years ago
parent
commit
7ad023a0b0
1 changed files with 21 additions and 37 deletions
  1. 21 37
      src/migl/lisp/LispImpl.java

+ 21 - 37
src/migl/lisp/LispImpl.java

@@ -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;
 	}