Quellcode durchsuchen

Ajout documentation

Arthur Brandao vor 6 Jahren
Ursprung
Commit
a425953b08
3 geänderte Dateien mit 85 neuen und 0 gelöschten Zeilen
  1. 19 0
      src/migl/lisp/LispElement.java
  2. 29 0
      src/migl/lisp/LispEval.java
  3. 37 0
      src/migl/lisp/LispParser.java

+ 19 - 0
src/migl/lisp/LispElement.java

@@ -91,18 +91,34 @@ public class LispElement {
 		throw new IllegalStateException("Not a String");
 	}
 	
+	/**
+	 * Indique si l'element est un entier
+	 * @return
+	 */
 	public boolean isInt() {
 		return this.value.getClass() == BigInteger.class;
 	}
 	
+	/**
+	 * Indique si l'element est nombre (BigInteger ou Double)
+	 * @return
+	 */
 	public boolean isNumber() {
 		return this.isInt() || (this.value.getClass() == Double.class);
 	}
 	
+	/**
+	 * Indique si l'element est boolean
+	 * @return
+	 */
 	public boolean isBoolean() {
 		return this.value.getClass() == LispBoolean.class;
 	}
 	
+	/**
+	 * Indique si l'element est un String
+	 * @return
+	 */
 	public boolean isStr() {
 		return this.value.getClass() == String.class;
 	}
@@ -130,6 +146,9 @@ public class LispElement {
 		return this.value.toString();
 	}
 	
+	/**
+	 * Supprime le cache
+	 */
 	public static void clear() {
 		cache.clear();
 	}

+ 29 - 0
src/migl/lisp/LispEval.java

@@ -11,6 +11,10 @@ import migl.lisp.operator.MathOperator;
 import migl.lisp.operator.MinMaxOperator;
 import migl.util.ConsList;
 
+/**
+ * Evaluateur lisp
+ * @author Arthur Brandao
+ */
 public class LispEval {
 	
 	/**
@@ -166,10 +170,20 @@ public class LispEval {
 		});
 	}
 
+	/**
+	 * Un element lisp
+	 */
 	private Object lispElt = null;
 	
+	/**
+	 * Une liste d'elements lisp
+	 */
 	private ConsList<Object> lispList = null;
 	
+	/**
+	 * Creation d'un evaluateur lisp
+	 * @param lisp Un element lisp (Object) ou une liste de lisp (ConsList<Object>)
+	 */
 	@SuppressWarnings("unchecked")
 	public LispEval(Object lisp) {
 		if(lisp == null) {
@@ -181,6 +195,11 @@ public class LispEval {
 		}
 	}
 	
+	/**
+	 * Evalue l'element lisp
+	 * @return L'element retourner par l'évaluation
+	 * @throws LispError
+	 */
 	public LispElement evaluate() throws LispError {
 		if(this.lispElt != null) {
 			return this.evalElt();
@@ -188,6 +207,11 @@ public class LispEval {
 		return this.evalList();
 	}
 	
+	/**
+	 * Evalue un element
+	 * @return L'element retourner par l'évaluation
+	 * @throws LispError
+	 */
 	public LispElement evalElt() throws LispError {
 		try {
 			return LispElement.getElement(this.lispElt);
@@ -196,6 +220,11 @@ public class LispEval {
 		}
 	}
 	
+	/**
+	 * Evalue une liste d'elements lisp
+	 * @return L'element retourner par l'évaluation
+	 * @throws LispError
+	 */
 	public LispElement evalList() throws LispError {
 		return evaluateList(this.lispList);
 	}

+ 37 - 0
src/migl/lisp/LispParser.java

@@ -8,16 +8,36 @@ import java.util.regex.Pattern;
 import migl.util.ConsList;
 import migl.util.ConsListFactory;
 
+/**
+ * Analyseur Lisp
+ * @author Arthur Brandao
+ */
 public class LispParser {
 	
+	/**
+	 * Regex d'un element lisp
+	 */
 	private static final String REGEX_LISP_ELEMENT = "[ |\t]*[A-Za-z0-9\\.\\+\\-\\/\\*<>=#]+[ |\t]*";
 	
+	/**
+	 * Regex d'une liste d'elements lisp
+	 */
 	private static final String REGEX_LISP_LIST = "\\(([ |\t]*[A-Za-z0-9\\.\\+\\-\\/\\*<>=#!]+[ |\t]*)*\\)";
 	
+	/**
+	 * L'expression à analyser
+	 */
 	private String expr;
 	
+	/**
+	 * L'expression exploser pour l'analyse les données
+	 */
 	private Queue<String> explode = new LinkedList<>();
 	
+	/**
+	 * Création d'un analyseur lisp
+	 * @param lispExpr
+	 */
 	public LispParser(String lispExpr) {
 		if(lispExpr == null) {
 			throw new IllegalArgumentException("Expression is null");
@@ -98,6 +118,11 @@ public class LispParser {
 	
 	/* --- Parse les elements --- */
 	
+	/**
+	 * Analyse les elements d'une expression lisp
+	 * @return
+	 * @throws LispError
+	 */
 	public Object parse() throws LispError {
 		//Remplace les nil par ()
 		String lispExpr = this.expr.replaceAll(" nil ", " () ")
@@ -118,6 +143,10 @@ public class LispParser {
 		}
 	}
 	
+	/**
+	 * Separe les différents elements d'une expression lisp pour l'analyse
+	 * @param lispExpr
+	 */
 	private void explode(String lispExpr) {
 		String[] tmp = lispExpr.trim().split("[ |\t]");
 		for(String str : tmp) {
@@ -149,6 +178,10 @@ public class LispParser {
 		}
 	}
 	
+	/**
+	 * Analyse la liste d'elements
+	 * @return
+	 */
 	private Object parseList() {
 		ConsList<Object> list = ConsListFactory.nil();
 		String val = this.explode.poll();
@@ -165,6 +198,10 @@ public class LispParser {
 	
 	/* --- Getter --- */
 	
+	/**
+	 * Retourne l'expression analyser
+	 * @return
+	 */
 	public String getExpression() {
 		return this.expr;
 	}