[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