[jboss-svn-commits] JBL Code SVN: r20300 - labs/jbossrules/branches/parser-rewrite/drools-compiler/src/main/java/org/drools/lang.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Jun 4 09:20:15 EDT 2008


Author: porcelli
Date: 2008-06-04 09:20:15 -0400 (Wed, 04 Jun 2008)
New Revision: 20300

Modified:
   labs/jbossrules/branches/parser-rewrite/drools-compiler/src/main/java/org/drools/lang/DroolsTreeAdaptor.java
Log:
JavaDoc info

Modified: labs/jbossrules/branches/parser-rewrite/drools-compiler/src/main/java/org/drools/lang/DroolsTreeAdaptor.java
===================================================================
--- labs/jbossrules/branches/parser-rewrite/drools-compiler/src/main/java/org/drools/lang/DroolsTreeAdaptor.java	2008-06-04 13:16:29 UTC (rev 20299)
+++ labs/jbossrules/branches/parser-rewrite/drools-compiler/src/main/java/org/drools/lang/DroolsTreeAdaptor.java	2008-06-04 13:20:15 UTC (rev 20300)
@@ -5,8 +5,23 @@
 import org.antlr.runtime.tree.CommonTreeAdaptor;
 import org.antlr.runtime.tree.Tree;
 
+/**
+ * This tree adaptor is a factory for DroolsTree.
+ * 
+ * DRLParser must use this tree adaptor.
+ * 
+ * @author porcelli
+ */
 public class DroolsTreeAdaptor extends CommonTreeAdaptor {
 
+	/**
+	 * Based on token parameter it returns a new DroolsTree. Also set the char
+	 * offset info and editor type based on token type.
+	 * 
+	 * @param token
+	 *            token
+	 * @return DroolsTree object with char offset and editor type info
+	 */
 	public Object create(Token token) {
 		DroolsTree tree = new DroolsTree(token);
 		if (null != token
@@ -59,21 +74,21 @@
 					|| token.getType() == DRLLexer.VK_SOUNDSLIKE
 					|| token.getType() == DRLLexer.VK_TEMPLATE
 					|| token.getType() == DRLLexer.VK_WHEN) {
-				tree.setEditorElementType(DroolEditorType.KEYWORD);
+				tree.setEditorElementType(DroolsEditorType.KEYWORD);
 			} else if (token.getType() == DRLLexer.FLOAT
 					|| token.getType() == DRLLexer.INT) {
-				tree.setEditorElementType(DroolEditorType.NUMERIC_CONST);
+				tree.setEditorElementType(DroolsEditorType.NUMERIC_CONST);
 			} else if (token.getType() == DRLLexer.STRING) {
-				tree.setEditorElementType(DroolEditorType.STRING_CONST);
+				tree.setEditorElementType(DroolsEditorType.STRING_CONST);
 			} else if (token.getType() == DRLLexer.BOOL) {
-				tree.setEditorElementType(DroolEditorType.BOOLEAN_CONST);
+				tree.setEditorElementType(DroolsEditorType.BOOLEAN_CONST);
 			} else if (token.getType() == DRLLexer.NULL) {
-				tree.setEditorElementType(DroolEditorType.NULL_CONST);
+				tree.setEditorElementType(DroolsEditorType.NULL_CONST);
 			} else if (token.getType() == DRLLexer.VT_SQUARE_CHUNK
 					|| token.getType() == DRLLexer.VT_PAREN_CHUNK
 					|| token.getType() == DRLLexer.VT_CURLY_CHUNK
 					|| token.getType() == DRLLexer.VT_RHS_CHUNK) {
-				tree.setEditorElementType(DroolEditorType.CODE_CHUNK);
+				tree.setEditorElementType(DroolsEditorType.CODE_CHUNK);
 			} else if (token.getType() == DRLLexer.MISC
 					|| token.getType() == DRLLexer.DOUBLE_PIPE
 					|| token.getType() == DRLLexer.DOUBLE_AMPER
@@ -94,7 +109,7 @@
 					|| token.getType() == DRLLexer.EQUAL
 					|| token.getType() == DRLLexer.COLON
 					|| token.getType() == DRLLexer.SEMICOLON) {
-				tree.setEditorElementType(DroolEditorType.SYMBOL);
+				tree.setEditorElementType(DroolsEditorType.SYMBOL);
 			} else if (token.getType() == DRLLexer.ID
 					|| token.getType() == DRLLexer.DOT_STAR
 					|| token.getType() == DRLLexer.VT_GLOBAL_ID
@@ -104,11 +119,11 @@
 					|| token.getType() == DRLLexer.VT_SLOT_ID
 					|| token.getType() == DRLLexer.VT_RULE_ID
 					|| token.getType() == DRLLexer.VT_ENTRYPOINT_ID) {
-				tree.setEditorElementType(DroolEditorType.IDENTIFIER);
+				tree.setEditorElementType(DroolsEditorType.IDENTIFIER);
 			} else if (token.getType() == DRLLexer.VT_DATA_TYPE) {
-				tree.setEditorElementType(DroolEditorType.IDENTIFIER_TYPE);
+				tree.setEditorElementType(DroolsEditorType.IDENTIFIER_TYPE);
 			} else if (token.getType() == DRLLexer.VT_PATTERN_TYPE) {
-				tree.setEditorElementType(DroolEditorType.IDENTIFIER_PATTERN);
+				tree.setEditorElementType(DroolsEditorType.IDENTIFIER_PATTERN);
 			}
 
 		}
@@ -116,12 +131,36 @@
 	}
 
 	/**
-	 * Add a child to the tree t. If child is a flat tree (a list), make all in
-	 * list children of t. Warning: if t has no children, but child does and
-	 * child isNil then you can decide it is ok to move children to t via
-	 * t.children = child.children; i.e., without copying the array. Just make
-	 * sure that this is consistent with have the user will build ASTs.
+	 * Create a DroolsTree and keeps the char offset info.
 	 */
+	public Object create(int tokenType, Token fromToken, String text) {
+		if (fromToken instanceof DroolsToken) {
+			DroolsTree result = (DroolsTree) super.create(tokenType, fromToken,
+					text);
+			result
+					.setStartCharOffset(((DroolsToken) fromToken)
+							.getStartIndex());
+			result
+					.setEndCharOffset(result.getStartCharOffset()
+							+ text.length());
+			return result;
+		}
+		return super.create(tokenType, fromToken, text);
+	}
+
+	/**
+	 * Add a child to the tree t. If t does not have start offset info, it set t
+	 * start offset info from child. And always set t end char offset from
+	 * child.
+	 * 
+	 * The exception is RIGHT_PAREN, it is used just to keep the char set info
+	 * but not added on t.
+	 * 
+	 * @param t
+	 *            parent tree
+	 * @param child
+	 *            child tree
+	 */
 	public void addChild(Object t, Object child) {
 		if (t != null && child != null) {
 			DroolsTree tParent = (DroolsTree) t;
@@ -141,25 +180,16 @@
 		}
 	}
 
-	public Object create(int tokenType, Token fromToken, String text) {
-		if (fromToken instanceof DroolsToken) {
-			DroolsTree result = (DroolsTree) super.create(tokenType, fromToken,
-					text);
-			result
-					.setStartCharOffset(((DroolsToken) fromToken)
-							.getStartIndex());
-			result
-					.setEndCharOffset(result.getStartCharOffset()
-							+ text.length());
-			return result;
-		}
-		return super.create(tokenType, fromToken, text);
-	}
-
+	/**
+	 * Overrides createToken, returning a DroolsToken instead of CommonToken
+	 */
 	public Token createToken(int tokenType, String text) {
 		return new DroolsToken(tokenType, text);
 	}
 
+	/**
+	 * Overrides createToken, returning a DroolsToken instead of CommonToken
+	 */
 	public Token createToken(Token fromToken) {
 		return new DroolsToken(fromToken);
 	}




More information about the jboss-svn-commits mailing list