jvanzyl 00/10/09 08:06:38
Modified: src/java/org/apache/velocity/runtime/parser
ASTDirective.java ASTIdentifier.java ASTMethod.java
ASTReference.java ASTprocess.java Node.java
Parser.java Parser.jj Parser.jjt
ParserConstants.java ParserTokenManager.java
SimpleNode.java
Log:
- more complete introspection, caching of reflection metadata via
an new self-walking method in the node structure: init(). this
method will allow to make any number of optimizations during
the initial walk. subsequent walks with the render() method
are much less expensive now. this has resulted in quite a
dramatic speed improvement as far as i can tell and now
tops WM in performance.
Revision Changes Path
1.3 +26 -5
jakarta-velocity/src/java/org/apache/velocity/runtime/parser/ASTDirective.java
Index: ASTDirective.java
===================================================================
RCS file:
/home/cvs/jakarta-velocity/src/java/org/apache/velocity/runtime/parser/ASTDirective.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- ASTDirective.java 2000/09/30 22:58:14 1.2
+++ ASTDirective.java 2000/10/09 15:06:29 1.3
@@ -6,9 +6,14 @@
import java.io.IOException;
import org.apache.velocity.Context;
+import org.apache.velocity.runtime.directive.Directive;
public class ASTDirective extends SimpleNode
{
+ private Directive directive;
+ private String directiveName;
+ private boolean isDirective;
+
public ASTDirective(int id)
{
super(id);
@@ -25,15 +30,31 @@
{
return visitor.visit(this, data);
}
+
+ public Object init(Context context, Object data) throws Exception
+ {
+ directiveName = getFirstToken().image.substring(1);
+
+ if (parser.isDirective(directiveName))
+ {
+ isDirective = true;
+ directive = parser.getDirective(directiveName);
+ directive.init(context,this);
+ }
+ else
+ {
+ isDirective = false;
+ }
+
+ return data;
+ }
public void render(Context context, Writer writer)
throws IOException
{
- String directive = getFirstToken().image.substring(1);
-
- if (parser.isDirective(directive))
- parser.getDirective(directive).render(context, writer, this);
+ if (isDirective)
+ directive.render(context, writer, this);
else
- writer.write(getFirstToken().image);
+ writer.write(directiveName);
}
}
1.2 +35 -1
jakarta-velocity/src/java/org/apache/velocity/runtime/parser/ASTIdentifier.java
Index: ASTIdentifier.java
===================================================================
RCS file:
/home/cvs/jakarta-velocity/src/java/org/apache/velocity/runtime/parser/ASTIdentifier.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ASTIdentifier.java 2000/09/30 17:04:22 1.1
+++ ASTIdentifier.java 2000/10/09 15:06:29 1.2
@@ -3,12 +3,15 @@
package org.apache.velocity.runtime.parser;
import java.util.Map;
+import java.lang.reflect.Method;
import org.apache.velocity.Context;
import org.apache.velocity.util.ClassUtils;
public class ASTIdentifier extends SimpleNode
{
+ private AbstractExecutor executor;
+
public ASTIdentifier(int id)
{
super(id);
@@ -25,6 +28,37 @@
return visitor.visit(this, data);
}
+ public Object init(Context context, Object data)
+ throws Exception
+ {
+ String identifier = getFirstToken().image;
+ String method = "get" + identifier;
+
+ //! Now there might just be an error here.
+ // If there is a typo in the property
+ // then a MapExecutor is created and
+ // this needs to be prevented.
+
+ try
+ {
+ executor = new PropertyExecutor();
+ Method m = ((Class)data).getMethod(method,null);
+ executor.setData(m);
+ return m.getReturnType();
+ }
+ catch (NoSuchMethodException nsme)
+ {
+ executor = new MapExecutor();
+ executor.setData(identifier);
+ return Object.class;
+ }
+ }
+
+ public Object execute(Object o, Context context)
+ {
+ return executor.execute(o, context);
+ }
+
public Object invoke(Object result, Context context)
{
String identifier = getFirstToken().image;
@@ -52,7 +86,7 @@
}
else
result = newResult;
-
+
return result;
}
}
1.2 +48 -2
jakarta-velocity/src/java/org/apache/velocity/runtime/parser/ASTMethod.java
Index: ASTMethod.java
===================================================================
RCS file:
/home/cvs/jakarta-velocity/src/java/org/apache/velocity/runtime/parser/ASTMethod.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ASTMethod.java 2000/09/30 17:04:22 1.1
+++ ASTMethod.java 2000/10/09 15:06:29 1.2
@@ -2,11 +2,19 @@
package org.apache.velocity.runtime.parser;
+import java.lang.reflect.Method;
+
import org.apache.velocity.Context;
import org.apache.velocity.util.ClassUtils;
+import org.apache.velocity.util.Introspector;
public class ASTMethod extends SimpleNode
{
+ private String methodName;
+ private int paramCount;
+ private Method method;
+ private Object[] params;
+
public ASTMethod(int id)
{
super(id);
@@ -23,6 +31,44 @@
return visitor.visit(this, data);
}
+ public Object init(Context context, Object data)
+ throws Exception
+ {
+ methodName = getFirstToken().image;
+
+ paramCount = jjtGetNumChildren() - 1;
+ params = new Object[paramCount];
+
+ method = Introspector.getMethod((Class) data, methodName, paramCount);
+
+ // Now the parameters have to be processed, there
+ // may be references contained within that need
+ // to be introspected.
+
+ for (int i = 0; i < paramCount; i++)
+ jjtGetChild(i + 1).init(context, null);
+
+ return method.getReturnType();
+ }
+
+ public Object execute(Object o, Context context)
+ {
+ // I need to pass in the arguments to the
+ // method.
+
+ for (int j = 0; j < paramCount; j++)
+ params[j] = jjtGetChild(j + 1).value(context);
+
+ try
+ {
+ return method.invoke(o, params);
+ }
+ catch (Exception e)
+ {
+ return null;
+ }
+ }
+
public Object invoke(Object result, Context context)
{
// node 1: method name
@@ -42,7 +88,7 @@
Node p = jjtGetChild(j + 1);
params[j] = p.value(context);
}
-
- return ClassUtils.invoke(result, method, params);
+
+ return ClassUtils.invoke(result, method, params);
}
}
1.3 +46 -27
jakarta-velocity/src/java/org/apache/velocity/runtime/parser/ASTReference.java
Index: ASTReference.java
===================================================================
RCS file:
/home/cvs/jakarta-velocity/src/java/org/apache/velocity/runtime/parser/ASTReference.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- ASTReference.java 2000/09/30 19:50:33 1.2
+++ ASTReference.java 2000/10/09 15:06:30 1.3
@@ -1,4 +1,4 @@
-/* Generated By:JJTree: Do not edit this line. ASTReference.java */
+//* Generated By:JJTree: Do not edit this line. ASTReference.java */
package org.apache.velocity.runtime.parser;
@@ -14,6 +14,8 @@
public class ASTReference extends SimpleNode
{
private String nullString;
+ private Object root;
+ private Object value;
public ASTReference(int id)
{
@@ -31,10 +33,46 @@
return visitor.visit(this, data);
}
+ public Object init(Context context, Object data) throws Exception
+ {
+ root = getVariableValue(context, getRoot());
+
+ // An object has to be in the context for
+ // subsequent introspection.
+
+ if (root == null) return null;
+
+ Class clazz = root.getClass();
+
+ // All children here are either Identifier() nodes
+ // or Method() nodes.
+
+ int children = jjtGetNumChildren();
+ for (int i = 0; i < children; i++)
+ clazz = (Class) jjtGetChild(i).init(context, clazz);
+
+ return data;
+ }
+
+ public Object execute(Object o, Context context)
+ {
+ Object result = getVariableValue(context, getRoot());
+
+ if (result == null)
+ return null;
+
+ int children = jjtGetNumChildren();
+
+ for (int i = 0; i < children; i++)
+ result = jjtGetChild(i).execute(result,context);
+
+ return result;
+ }
+
public void render(Context context, Writer writer)
throws IOException
{
- Object value = value(context);
+ value = execute(null, context);
if (value == null)
writer.write(NodeUtils
@@ -48,12 +86,13 @@
public boolean evaluate(Context context)
{
- Object o = value(context);
- if (o == null)
+ value = execute(null, context);
+
+ if (value == null)
return false;
- else if (o instanceof Boolean)
+ else if (value instanceof Boolean)
{
- if (((Boolean) o).booleanValue())
+ if (((Boolean) value).booleanValue())
return true;
else
return false;
@@ -64,27 +103,7 @@
public Object value(Context context)
{
- // The rootOfIntrospection is the object we will
- // retrieve from the Context. This is the base
- // object we will apply reflection to.
- String root = getRoot();
- Object result = getVariableValue(context, root);
-
- if (result == null)
- {
- Runtime.error("Reference error: " + root + " " +
- "not defined in the context.");
-
- return null;
- }
-
- // How many child nodes do we have?
- int children = jjtGetNumChildren();
-
- for (int i = 0; i < children; i++)
- result = jjtGetChild(i).invoke(result, context);
-
- return result;
+ return execute(null, context);
}
public void setValue(Context context, Object value)
1.2 +0 -1
jakarta-velocity/src/java/org/apache/velocity/runtime/parser/ASTprocess.java
Index: ASTprocess.java
===================================================================
RCS file:
/home/cvs/jakarta-velocity/src/java/org/apache/velocity/runtime/parser/ASTprocess.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ASTprocess.java 2000/09/30 17:04:23 1.1
+++ ASTprocess.java 2000/10/09 15:06:30 1.2
@@ -33,5 +33,4 @@
for (i = 0; i < k; i++)
jjtGetChild(i).render(context, writer);
}
-
}
1.2 +7 -1
jakarta-velocity/src/java/org/apache/velocity/runtime/parser/Node.java
Index: Node.java
===================================================================
RCS file:
/home/cvs/jakarta-velocity/src/java/org/apache/velocity/runtime/parser/Node.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- Node.java 2000/09/30 17:04:23 1.1
+++ Node.java 2000/10/09 15:06:30 1.2
@@ -48,11 +48,17 @@
public Token getLastToken();
public int getType();
+ public Object init(Context context, Object data) throws Exception;
+
public boolean evaluate(Context context);
public Object value(Context context);
- public void process(Node node, Context context, ParserVisitor visitor);
+
public void render(Context context, Writer writer)
throws IOException;
public Object invoke(Object o, Context context);
+ public Object execute(Object o, Context context);
+
+ public void setInfo(int info);
+ public int getInfo();
}
1.4 +181 -165
jakarta-velocity/src/java/org/apache/velocity/runtime/parser/Parser.java
Index: Parser.java
===================================================================
RCS file:
/home/cvs/jakarta-velocity/src/java/org/apache/velocity/runtime/parser/Parser.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- Parser.java 2000/10/03 17:03:13 1.3
+++ Parser.java 2000/10/09 15:06:31 1.4
@@ -16,7 +16,7 @@
* what controls the generation of this class.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Jason van Zyl</a>
- * @version $Id: Parser.java,v 1.3 2000/10/03 17:03:13 jvanzyl Exp $
+ * @version $Id: Parser.java,v 1.4 2000/10/09 15:06:31 jvanzyl Exp $
*/
public class Parser/*@bgen(jjtree)*/implements ParserTreeConstants, ParserConstants
{/*@bgen(jjtree)*/
protected JJTParserState jjtree = new JJTParserState();
@@ -95,6 +95,7 @@
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case ESCAPE_SEQUENCE:
case TEXT:
+ case NUMBER_LITERAL:
case SINGLE_LINE_COMMENT:
case FORMAL_COMMENT:
case MULTI_LINE_COMMENT:
@@ -102,7 +103,6 @@
case IF_DIRECTIVE:
case SET_DIRECTIVE:
case STOP_DIRECTIVE:
- case NUMBER_LITERAL:
case WORD:
case IDENTIFIER:
case DOT:
@@ -364,6 +364,7 @@
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case ESCAPE_SEQUENCE:
case TEXT:
+ case NUMBER_LITERAL:
case SINGLE_LINE_COMMENT:
case FORMAL_COMMENT:
case MULTI_LINE_COMMENT:
@@ -371,7 +372,6 @@
case IF_DIRECTIVE:
case SET_DIRECTIVE:
case STOP_DIRECTIVE:
- case NUMBER_LITERAL:
case WORD:
case IDENTIFIER:
case DOT:
@@ -601,6 +601,14 @@
;
}
jj_consume_token(IDENTIFIER);
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case RCURLY:
+ jj_consume_token(RCURLY);
+ break;
+ default:
+ jj_la1[13] = jj_gen;
+ ;
+ }
label_6:
while (true) {
if (jj_2_1(2)) {
@@ -615,14 +623,6 @@
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case IDENTIFIER:
Identifier();
- switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
- case RCURLY:
- jj_consume_token(RCURLY);
- break;
- default:
- jj_la1[13] = jj_gen;
- ;
- }
break;
default:
jj_la1[14] = jj_gen;
@@ -630,6 +630,14 @@
throw new ParseException();
}
}
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case RCURLY:
+ jj_consume_token(RCURLY);
+ break;
+ default:
+ jj_la1[15] = jj_gen;
+ ;
+ }
}
} catch (Throwable jjte000) {
if (jjtc000) {
@@ -708,7 +716,7 @@
t.image = t.image.substring(1);
break;
default:
- jj_la1[15] = jj_gen;
+ jj_la1[16] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -744,6 +752,7 @@
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case ESCAPE_SEQUENCE:
case TEXT:
+ case NUMBER_LITERAL:
case SINGLE_LINE_COMMENT:
case FORMAL_COMMENT:
case MULTI_LINE_COMMENT:
@@ -751,7 +760,6 @@
case IF_DIRECTIVE:
case SET_DIRECTIVE:
case STOP_DIRECTIVE:
- case NUMBER_LITERAL:
case WORD:
case IDENTIFIER:
case DOT:
@@ -760,7 +768,7 @@
;
break;
default:
- jj_la1[16] = jj_gen;
+ jj_la1[17] = jj_gen;
break label_7;
}
}
@@ -793,13 +801,13 @@
;
break;
default:
- jj_la1[17] = jj_gen;
+ jj_la1[18] = jj_gen;
break label_8;
}
}
break;
default:
- jj_la1[18] = jj_gen;
+ jj_la1[19] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -807,7 +815,7 @@
ElseStatement();
break;
default:
- jj_la1[19] = jj_gen;
+ jj_la1[20] = jj_gen;
;
}
jj_consume_token(END);
@@ -849,6 +857,7 @@
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case ESCAPE_SEQUENCE:
case TEXT:
+ case NUMBER_LITERAL:
case SINGLE_LINE_COMMENT:
case FORMAL_COMMENT:
case MULTI_LINE_COMMENT:
@@ -856,7 +865,6 @@
case IF_DIRECTIVE:
case SET_DIRECTIVE:
case STOP_DIRECTIVE:
- case NUMBER_LITERAL:
case WORD:
case IDENTIFIER:
case DOT:
@@ -865,7 +873,7 @@
;
break;
default:
- jj_la1[20] = jj_gen;
+ jj_la1[21] = jj_gen;
break label_9;
}
}
@@ -929,6 +937,7 @@
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case ESCAPE_SEQUENCE:
case TEXT:
+ case NUMBER_LITERAL:
case SINGLE_LINE_COMMENT:
case FORMAL_COMMENT:
case MULTI_LINE_COMMENT:
@@ -936,7 +945,6 @@
case IF_DIRECTIVE:
case SET_DIRECTIVE:
case STOP_DIRECTIVE:
- case NUMBER_LITERAL:
case WORD:
case IDENTIFIER:
case DOT:
@@ -945,7 +953,7 @@
;
break;
default:
- jj_la1[21] = jj_gen;
+ jj_la1[22] = jj_gen;
break label_10;
}
}
@@ -1061,17 +1069,17 @@
case LPAREN:
case LBRACKET:
case STRING_LITERAL:
+ case NUMBER_LITERAL:
case TRUE:
case FALSE:
case LOGICAL_NOT:
- case NUMBER_LITERAL:
case IDENTIFIER:
case SHORTHAND:
case LCURLY:
ConditionalOrExpression();
break;
default:
- jj_la1[22] = jj_gen;
+ jj_la1[23] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -1136,7 +1144,7 @@
;
break;
default:
- jj_la1[23] = jj_gen;
+ jj_la1[24] = jj_gen;
break label_11;
}
jj_consume_token(LOGICAL_OR);
@@ -1176,7 +1184,7 @@
;
break;
default:
- jj_la1[24] = jj_gen;
+ jj_la1[25] = jj_gen;
break label_12;
}
jj_consume_token(LOGICAL_AND);
@@ -1217,7 +1225,7 @@
;
break;
default:
- jj_la1[25] = jj_gen;
+ jj_la1[26] = jj_gen;
break label_13;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -1276,7 +1284,7 @@
}
break;
default:
- jj_la1[26] = jj_gen;
+ jj_la1[27] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -1295,7 +1303,7 @@
;
break;
default:
- jj_la1[27] = jj_gen;
+ jj_la1[28] = jj_gen;
break label_14;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -1408,7 +1416,7 @@
}
break;
default:
- jj_la1[28] = jj_gen;
+ jj_la1[29] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -1425,7 +1433,7 @@
;
break;
default:
- jj_la1[29] = jj_gen;
+ jj_la1[30] = jj_gen;
break label_15;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -1484,7 +1492,7 @@
}
break;
default:
- jj_la1[30] = jj_gen;
+ jj_la1[31] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -1502,7 +1510,7 @@
;
break;
default:
- jj_la1[31] = jj_gen;
+ jj_la1[32] = jj_gen;
break label_16;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -1588,7 +1596,7 @@
}
break;
default:
- jj_la1[32] = jj_gen;
+ jj_la1[33] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -1627,16 +1635,16 @@
case LPAREN:
case LBRACKET:
case STRING_LITERAL:
+ case NUMBER_LITERAL:
case TRUE:
case FALSE:
- case NUMBER_LITERAL:
case IDENTIFIER:
case SHORTHAND:
case LCURLY:
PrimaryExpression();
break;
default:
- jj_la1[33] = jj_gen;
+ jj_la1[34] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -1670,7 +1678,7 @@
jj_consume_token(RPAREN);
break;
default:
- jj_la1[34] = jj_gen;
+ jj_la1[35] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -1707,9 +1715,18 @@
if (jj_3R_17()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
} else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ xsp = jj_scanpos;
+ if (jj_3R_48()) jj_scanpos = xsp;
+ else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
+ final private boolean jj_3R_44() {
+ if (jj_scan_token(RCURLY)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
final private boolean jj_3R_43() {
if (jj_scan_token(LCURLY)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
@@ -1738,6 +1755,9 @@
else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
if (jj_scan_token(IDENTIFIER)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ xsp = jj_scanpos;
+ if (jj_3R_44()) jj_scanpos = xsp;
+ else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
while (true) {
xsp = jj_scanpos;
if (jj_3_1()) { jj_scanpos = xsp; break; }
@@ -1746,7 +1766,7 @@
return false;
}
- final private boolean jj_3R_47() {
+ final private boolean jj_3R_49() {
if (jj_scan_token(COMMA)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
if (jj_3R_29()) return true;
@@ -1802,48 +1822,42 @@
return false;
}
- final private boolean jj_3R_41() {
+ final private boolean jj_3R_24() {
if (jj_3R_32()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_24() {
+ final private boolean jj_3R_41() {
if (jj_3R_32()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
+ final private boolean jj_3R_23() {
+ if (jj_3R_31()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
final private boolean jj_3R_40() {
if (jj_3R_35()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_44() {
+ final private boolean jj_3R_45() {
if (jj_3R_29()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
Token xsp;
while (true) {
xsp = jj_scanpos;
- if (jj_3R_47()) { jj_scanpos = xsp; break; }
+ if (jj_3R_49()) { jj_scanpos = xsp; break; }
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
}
return false;
}
- final private boolean jj_3R_23() {
- if (jj_3R_31()) return true;
- if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- return false;
- }
-
- final private boolean jj_3R_39() {
- if (jj_3R_34()) return true;
- if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- return false;
- }
-
final private boolean jj_3R_22() {
if (jj_3R_30()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
@@ -1876,6 +1890,12 @@
return false;
}
+ final private boolean jj_3R_39() {
+ if (jj_3R_34()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
final private boolean jj_3R_38() {
if (jj_3R_33()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
@@ -1908,180 +1928,180 @@
return false;
}
- final private boolean jj_3R_73() {
+ final private boolean jj_3R_74() {
if (jj_3R_19()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_76() {
+ final private boolean jj_3R_77() {
if (jj_scan_token(MODULUS)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_68()) return true;
+ if (jj_3R_69()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_72() {
+ final private boolean jj_3R_73() {
if (jj_scan_token(LOGICAL_NOT)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_68()) return true;
+ if (jj_3R_69()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_68() {
+ final private boolean jj_3R_69() {
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_72()) {
+ if (jj_3R_73()) {
jj_scanpos = xsp;
- if (jj_3R_73()) return true;
+ if (jj_3R_74()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
} else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_75() {
+ final private boolean jj_3R_76() {
if (jj_scan_token(DIVIDE)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_68()) return true;
+ if (jj_3R_69()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_74() {
+ final private boolean jj_3R_75() {
if (jj_scan_token(MULTIPLY)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_68()) return true;
+ if (jj_3R_69()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_69() {
+ final private boolean jj_3R_70() {
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_74()) {
- jj_scanpos = xsp;
if (jj_3R_75()) {
jj_scanpos = xsp;
- if (jj_3R_76()) return true;
+ if (jj_3R_76()) {
+ jj_scanpos = xsp;
+ if (jj_3R_77()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
} else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
} else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
+ final private boolean jj_3R_48() {
+ if (jj_scan_token(RCURLY)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
final private boolean jj_3R_33() {
if (jj_scan_token(LBRACKET)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_44()) jj_scanpos = xsp;
+ if (jj_3R_45()) jj_scanpos = xsp;
else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
if (jj_scan_token(RBRACKET)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
-
- final private boolean jj_3R_50() {
- if (jj_scan_token(RCURLY)) return true;
- if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- return false;
- }
- final private boolean jj_3R_71() {
+ final private boolean jj_3R_72() {
if (jj_scan_token(MINUS)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_62()) return true;
+ if (jj_3R_63()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_62() {
- if (jj_3R_68()) return true;
+ final private boolean jj_3R_63() {
+ if (jj_3R_69()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
Token xsp;
while (true) {
xsp = jj_scanpos;
- if (jj_3R_69()) { jj_scanpos = xsp; break; }
+ if (jj_3R_70()) { jj_scanpos = xsp; break; }
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
}
return false;
}
- final private boolean jj_3R_70() {
+ final private boolean jj_3R_71() {
if (jj_scan_token(PLUS)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_62()) return true;
+ if (jj_3R_63()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_63() {
+ final private boolean jj_3R_64() {
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_70()) {
+ if (jj_3R_71()) {
jj_scanpos = xsp;
- if (jj_3R_71()) return true;
+ if (jj_3R_72()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
} else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_67() {
+ final private boolean jj_3R_68() {
if (jj_scan_token(LOGICAL_GE)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_58()) return true;
+ if (jj_3R_59()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_58() {
- if (jj_3R_62()) return true;
+ final private boolean jj_3R_59() {
+ if (jj_3R_63()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
Token xsp;
while (true) {
xsp = jj_scanpos;
- if (jj_3R_63()) { jj_scanpos = xsp; break; }
+ if (jj_3R_64()) { jj_scanpos = xsp; break; }
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
}
return false;
}
- final private boolean jj_3R_66() {
+ final private boolean jj_3R_67() {
if (jj_scan_token(LOGICAL_LE)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_58()) return true;
+ if (jj_3R_59()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_65() {
+ final private boolean jj_3R_66() {
if (jj_scan_token(LOGICAL_GT)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_58()) return true;
+ if (jj_3R_59()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_64() {
+ final private boolean jj_3R_65() {
if (jj_scan_token(LOGICAL_LT)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_58()) return true;
+ if (jj_3R_59()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_59() {
+ final private boolean jj_3R_60() {
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_64()) {
- jj_scanpos = xsp;
if (jj_3R_65()) {
jj_scanpos = xsp;
if (jj_3R_66()) {
jj_scanpos = xsp;
- if (jj_3R_67()) return true;
+ if (jj_3R_67()) {
+ jj_scanpos = xsp;
+ if (jj_3R_68()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
} else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
} else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
@@ -2092,76 +2112,72 @@
final private boolean jj_3R_17() {
if (jj_3R_20()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- Token xsp;
- xsp = jj_scanpos;
- if (jj_3R_50()) jj_scanpos = xsp;
- else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_61() {
+ final private boolean jj_3R_62() {
if (jj_scan_token(LOGICAL_NOT_EQUALS)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_56()) return true;
+ if (jj_3R_57()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_56() {
- if (jj_3R_58()) return true;
+ final private boolean jj_3R_57() {
+ if (jj_3R_59()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
Token xsp;
while (true) {
xsp = jj_scanpos;
- if (jj_3R_59()) { jj_scanpos = xsp; break; }
+ if (jj_3R_60()) { jj_scanpos = xsp; break; }
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
}
return false;
}
- final private boolean jj_3R_60() {
+ final private boolean jj_3R_61() {
if (jj_scan_token(LOGICAL_EQUALS)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_56()) return true;
+ if (jj_3R_57()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_57() {
+ final private boolean jj_3R_58() {
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_60()) {
+ if (jj_3R_61()) {
jj_scanpos = xsp;
- if (jj_3R_61()) return true;
+ if (jj_3R_62()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
} else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
-
- final private boolean jj_3R_55() {
- if (jj_scan_token(COMMA)) return true;
- if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_29()) return true;
- if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- return false;
- }
- final private boolean jj_3R_53() {
- if (jj_3R_56()) return true;
+ final private boolean jj_3R_54() {
+ if (jj_3R_57()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
Token xsp;
while (true) {
xsp = jj_scanpos;
- if (jj_3R_57()) { jj_scanpos = xsp; break; }
+ if (jj_3R_58()) { jj_scanpos = xsp; break; }
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
}
return false;
}
- final private boolean jj_3R_54() {
+ final private boolean jj_3R_56() {
+ if (jj_scan_token(COMMA)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ if (jj_3R_29()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_55() {
if (jj_scan_token(LOGICAL_AND)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_53()) return true;
+ if (jj_3R_54()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
@@ -2172,22 +2188,22 @@
return false;
}
- final private boolean jj_3R_51() {
- if (jj_3R_53()) return true;
+ final private boolean jj_3R_52() {
+ if (jj_3R_54()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
Token xsp;
while (true) {
xsp = jj_scanpos;
- if (jj_3R_54()) { jj_scanpos = xsp; break; }
+ if (jj_3R_55()) { jj_scanpos = xsp; break; }
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
}
return false;
}
- final private boolean jj_3R_52() {
+ final private boolean jj_3R_53() {
if (jj_scan_token(LOGICAL_OR)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_51()) return true;
+ if (jj_3R_52()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
@@ -2200,48 +2216,48 @@
return false;
}
- final private boolean jj_3R_21() {
- if (jj_3R_29()) return true;
+ final private boolean jj_3R_51() {
+ if (jj_3R_52()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
Token xsp;
while (true) {
xsp = jj_scanpos;
- if (jj_3R_55()) { jj_scanpos = xsp; break; }
+ if (jj_3R_53()) { jj_scanpos = xsp; break; }
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
}
return false;
}
- final private boolean jj_3R_49() {
- if (jj_3R_51()) return true;
+ final private boolean jj_3R_21() {
+ if (jj_3R_29()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
Token xsp;
while (true) {
xsp = jj_scanpos;
- if (jj_3R_52()) { jj_scanpos = xsp; break; }
+ if (jj_3R_56()) { jj_scanpos = xsp; break; }
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
}
return false;
}
- final private boolean jj_3R_20() {
- if (jj_scan_token(IDENTIFIER)) return true;
+ final private boolean jj_3R_50() {
+ if (jj_3R_19()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ if (jj_scan_token(EQUALS)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ if (jj_3R_36()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_35() {
- if (jj_scan_token(FALSE)) return true;
+ final private boolean jj_3R_20() {
+ if (jj_scan_token(IDENTIFIER)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_48() {
- if (jj_3R_19()) return true;
- if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_scan_token(EQUALS)) return true;
- if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_36()) return true;
+ final private boolean jj_3R_35() {
+ if (jj_scan_token(FALSE)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
@@ -2252,8 +2268,8 @@
return false;
}
- final private boolean jj_3R_46() {
- if (jj_3R_49()) return true;
+ final private boolean jj_3R_47() {
+ if (jj_3R_51()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
@@ -2261,16 +2277,16 @@
final private boolean jj_3R_36() {
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_45()) {
+ if (jj_3R_46()) {
jj_scanpos = xsp;
- if (jj_3R_46()) return true;
+ if (jj_3R_47()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
} else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_45() {
- if (jj_3R_48()) return true;
+ final private boolean jj_3R_46() {
+ if (jj_3R_50()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
@@ -2284,9 +2300,9 @@
public boolean lookingAhead = false;
private boolean jj_semLA;
private int jj_gen;
- final private int[] jj_la1 = new int[35];
- final private int[] jj_la1_0 =
{0x70006,0x70006,0x70000,0xa0,0xa0,0x70006,0x100,0x6a0,0x6a0,0x100,0x6a0,0x0,0x0,0x0,0x0,0x6,0x70006,0x0,0x0,0x0,0x70006,0x70006,0x6a8,0x20000000,0x10000000,0x0,0x0,0xc0000000,0xc0000000,0x1800000,0x1800000,0xe000000,0xe000000,0x6a8,0x6a8,};
- final private int[] jj_la1_1 =
{0xf15980,0xf15980,0x0,0xd14000,0xd14000,0xf15980,0x0,0xd00000,0xd00000,0x0,0xd00000,0x400000,0x800000,0x1000000,0x100000,0x204000,0xf15980,0x200,0x200,0x400,0xf15980,0xf15980,0xd04010,0x0,0x0,0xc,0xc,0x3,0x3,0x0,0x0,0x0,0x0,0xd04010,0xd04000,};
+ final private int[] jj_la1 = new int[36];
+ final private int[] jj_la1_0 =
{0x380206,0x380206,0x380000,0x2a0,0x2a0,0x380206,0x400,0x18a0,0x18a0,0x400,0x18a0,0x0,0x0,0x0,0x0,0x0,0x206,0x380206,0x0,0x0,0x0,0x380206,0x380206,0x1aa8,0x0,0x80000000,0x0,0x0,0x0,0x0,0xc000000,0xc000000,0x70000000,0x70000000,0x1aa8,0x1aa8,};
+ final private int[] jj_la1_1 =
{0xf16600,0xf16600,0x0,0xd10000,0xd10000,0xf16600,0x0,0xd00000,0xd00000,0x0,0xd00000,0x400000,0x800000,0x1000000,0x100000,0x1000000,0x200000,0xf16600,0x800,0x800,0x1000,0xf16600,0xf16600,0xd00080,0x1,0x0,0x60,0x60,0x1e,0x1e,0x0,0x0,0x0,0x0,0xd00080,0xd00000,};
final private JJCalls[] jj_2_rtns = new JJCalls[3];
private boolean jj_rescan = false;
private int jj_gc = 0;
@@ -2297,7 +2313,7 @@
token = new Token();
jj_ntk = -1;
jj_gen = 0;
- for (int i = 0; i < 35; i++) jj_la1[i] = -1;
+ for (int i = 0; i < 36; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
@@ -2308,7 +2324,7 @@
jj_ntk = -1;
jjtree.reset();
jj_gen = 0;
- for (int i = 0; i < 35; i++) jj_la1[i] = -1;
+ for (int i = 0; i < 36; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
@@ -2318,7 +2334,7 @@
token = new Token();
jj_ntk = -1;
jj_gen = 0;
- for (int i = 0; i < 35; i++) jj_la1[i] = -1;
+ for (int i = 0; i < 36; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
@@ -2329,7 +2345,7 @@
jj_ntk = -1;
jjtree.reset();
jj_gen = 0;
- for (int i = 0; i < 35; i++) jj_la1[i] = -1;
+ for (int i = 0; i < 36; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
@@ -2338,7 +2354,7 @@
token = new Token();
jj_ntk = -1;
jj_gen = 0;
- for (int i = 0; i < 35; i++) jj_la1[i] = -1;
+ for (int i = 0; i < 36; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
@@ -2348,7 +2364,7 @@
jj_ntk = -1;
jjtree.reset();
jj_gen = 0;
- for (int i = 0; i < 35; i++) jj_la1[i] = -1;
+ for (int i = 0; i < 36; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
@@ -2463,7 +2479,7 @@
la1tokens[jj_kind] = true;
jj_kind = -1;
}
- for (int i = 0; i < 35; i++) {
+ for (int i = 0; i < 36; i++) {
if (jj_la1[i] == jj_gen) {
for (int j = 0; j < 32; j++) {
if ((jj_la1_0[i] & (1<<j)) != 0) {
1.4 +7 -7
jakarta-velocity/src/java/org/apache/velocity/runtime/parser/Parser.jj
Index: Parser.jj
===================================================================
RCS file:
/home/cvs/jakarta-velocity/src/java/org/apache/velocity/runtime/parser/Parser.jj,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- Parser.jj 2000/10/03 17:03:14 1.3
+++ Parser.jj 2000/10/09 15:06:31 1.4
@@ -96,7 +96,7 @@
* what controls the generation of this class.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Jason van Zyl</a>
- * @version $Id: Parser.jj,v 1.3 2000/10/03 17:03:14 jvanzyl Exp $
+ * @version $Id: Parser.jj,v 1.4 2000/10/09 15:06:31 jvanzyl Exp $
*/
public class Parser/*@bgen(jjtree)*/implements ParserTreeConstants/*@egen*/
{/*@bgen(jjtree)*/
@@ -305,10 +305,12 @@
}
incMode = false;
}
-
+| <#DIGIT: [ "0"-"9" ] >
+| <NUMBER_LITERAL: (<DIGIT>)+ >
| <COMMA: ",">
| <TRUE: "true">
| <FALSE: "false">
+| <EQUALS: "=" >
}
<*>
@@ -426,7 +428,6 @@
| <LOGICAL_EQUALS: "==">
| <LOGICAL_NOT_EQUALS: "!=">
| <LOGICAL_NOT: "!">
-| <EQUALS: "=" >
}
<DIRECTIVE>
@@ -457,8 +458,6 @@
fileDepth = 0;
}
-| <#DIGIT: [ "0"-"9" ] >
-| <NUMBER_LITERAL: (<DIGIT>)+ >
| <#LETTER: [ "a"-"z" ] >
| <WORD: (<LETTER>)+ >
}
@@ -864,8 +863,9 @@
// This should be changed to Indentifier() now. Make
// it easier to walk the AST.
[<LCURLY>]
- <IDENTIFIER>
- (LOOKAHEAD(2) <DOT> (LOOKAHEAD(3) Method() | Identifier() [<RCURLY>] )
)*/*@bgen(jjtree)*/
+ <IDENTIFIER>
+ [<RCURLY>]
+ (LOOKAHEAD(2) <DOT> (LOOKAHEAD(3) Method() | Identifier() ) [<RCURLY>]
)*/*@bgen(jjtree)*/
} catch (Throwable jjte000) {
if (jjtc000) {
jjtree.clearNodeScope(jjtn000);
1.4 +7 -7
jakarta-velocity/src/java/org/apache/velocity/runtime/parser/Parser.jjt
Index: Parser.jjt
===================================================================
RCS file:
/home/cvs/jakarta-velocity/src/java/org/apache/velocity/runtime/parser/Parser.jjt,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- Parser.jjt 2000/10/03 17:03:15 1.3
+++ Parser.jjt 2000/10/09 15:06:32 1.4
@@ -120,7 +120,7 @@
* what controls the generation of this class.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Jason van Zyl</a>
- * @version $Id: Parser.jjt,v 1.3 2000/10/03 17:03:15 jvanzyl Exp $
+ * @version $Id: Parser.jjt,v 1.4 2000/10/09 15:06:32 jvanzyl Exp $
*/
public class Parser
{
@@ -326,10 +326,12 @@
}
incMode = false;
}
-
+| <#DIGIT: [ "0"-"9" ] >
+| <NUMBER_LITERAL: (<DIGIT>)+ >
| <COMMA: ",">
| <TRUE: "true">
| <FALSE: "false">
+| <EQUALS: "=" >
}
<*>
@@ -447,7 +449,6 @@
| <LOGICAL_EQUALS: "==">
| <LOGICAL_NOT_EQUALS: "!=">
| <LOGICAL_NOT: "!">
-| <EQUALS: "=" >
}
<DIRECTIVE>
@@ -478,8 +479,6 @@
fileDepth = 0;
}
-| <#DIGIT: [ "0"-"9" ] >
-| <NUMBER_LITERAL: (<DIGIT>)+ >
| <#LETTER: [ "a"-"z" ] >
| <WORD: (<LETTER>)+ >
}
@@ -678,8 +677,9 @@
// This should be changed to Indentifier() now. Make
// it easier to walk the AST.
[<LCURLY>]
- <IDENTIFIER>
- (LOOKAHEAD(2) <DOT> (LOOKAHEAD(3) Method() | Identifier() [<RCURLY>] ) )*
+ <IDENTIFIER>
+ [<RCURLY>]
+ (LOOKAHEAD(2) <DOT> (LOOKAHEAD(3) Method() | Identifier() ) [<RCURLY>] )*
}
void True() : {}
1.3 +38 -38
jakarta-velocity/src/java/org/apache/velocity/runtime/parser/ParserConstants.java
Index: ParserConstants.java
===================================================================
RCS file:
/home/cvs/jakarta-velocity/src/java/org/apache/velocity/runtime/parser/ParserConstants.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- ParserConstants.java 2000/10/03 17:03:15 1.2
+++ ParserConstants.java 2000/10/09 15:06:32 1.3
@@ -11,39 +11,39 @@
int LBRACKET = 5;
int RBRACKET = 6;
int STRING_LITERAL = 7;
- int COMMA = 8;
- int TRUE = 9;
- int FALSE = 10;
- int DOLLAR = 11;
- int HASH = 15;
- int SINGLE_LINE_COMMENT = 16;
- int FORMAL_COMMENT = 17;
- int MULTI_LINE_COMMENT = 18;
- int NEWLINE = 22;
- int MINUS = 23;
- int PLUS = 24;
- int MULTIPLY = 25;
- int DIVIDE = 26;
- int MODULUS = 27;
- int LOGICAL_AND = 28;
- int LOGICAL_OR = 29;
- int LOGICAL_LT = 30;
- int LOGICAL_LE = 31;
- int LOGICAL_GT = 32;
- int LOGICAL_GE = 33;
- int LOGICAL_EQUALS = 34;
- int LOGICAL_NOT_EQUALS = 35;
- int LOGICAL_NOT = 36;
- int EQUALS = 37;
- int END = 38;
- int INCLUDE_DIRECTIVE = 39;
- int IF_DIRECTIVE = 40;
- int ELSEIF_DIRECTIVE = 41;
- int ELSE_DIRECTIVE = 42;
- int SET_DIRECTIVE = 43;
- int STOP_DIRECTIVE = 44;
- int DIGIT = 45;
- int NUMBER_LITERAL = 46;
+ int DIGIT = 8;
+ int NUMBER_LITERAL = 9;
+ int COMMA = 10;
+ int TRUE = 11;
+ int FALSE = 12;
+ int EQUALS = 13;
+ int DOLLAR = 14;
+ int HASH = 18;
+ int SINGLE_LINE_COMMENT = 19;
+ int FORMAL_COMMENT = 20;
+ int MULTI_LINE_COMMENT = 21;
+ int NEWLINE = 25;
+ int MINUS = 26;
+ int PLUS = 27;
+ int MULTIPLY = 28;
+ int DIVIDE = 29;
+ int MODULUS = 30;
+ int LOGICAL_AND = 31;
+ int LOGICAL_OR = 32;
+ int LOGICAL_LT = 33;
+ int LOGICAL_LE = 34;
+ int LOGICAL_GT = 35;
+ int LOGICAL_GE = 36;
+ int LOGICAL_EQUALS = 37;
+ int LOGICAL_NOT_EQUALS = 38;
+ int LOGICAL_NOT = 39;
+ int END = 40;
+ int INCLUDE_DIRECTIVE = 41;
+ int IF_DIRECTIVE = 42;
+ int ELSEIF_DIRECTIVE = 43;
+ int ELSE_DIRECTIVE = 44;
+ int SET_DIRECTIVE = 45;
+ int STOP_DIRECTIVE = 46;
int LETTER = 47;
int WORD = 48;
int ALPHA_CHAR = 49;
@@ -72,18 +72,21 @@
"\"[\"",
"\"]\"",
"<STRING_LITERAL>",
+ "<DIGIT>",
+ "<NUMBER_LITERAL>",
"\",\"",
"\"true\"",
"\"false\"",
+ "\"=\"",
"\"$\"",
"\"##\"",
- "<token of kind 13>",
+ "<token of kind 16>",
"\"#*\"",
"\"#\"",
"<SINGLE_LINE_COMMENT>",
"\"*#\"",
"\"*#\"",
- "<token of kind 19>",
+ "<token of kind 22>",
"\" \"",
"\"\\t\"",
"<NEWLINE>",
@@ -101,7 +104,6 @@
"\"==\"",
"\"!=\"",
"\"!\"",
- "\"=\"",
"\"end\"",
"\"include\"",
"\"if\"",
@@ -109,8 +111,6 @@
"\"else\"",
"\"set\"",
"\"stop\"",
- "<DIGIT>",
- "<NUMBER_LITERAL>",
"<LETTER>",
"<WORD>",
"<ALPHA_CHAR>",
1.3 +281 -266
jakarta-velocity/src/java/org/apache/velocity/runtime/parser/ParserTokenManager.java
Index: ParserTokenManager.java
===================================================================
RCS file:
/home/cvs/jakarta-velocity/src/java/org/apache/velocity/runtime/parser/ParserTokenManager.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- ParserTokenManager.java 2000/10/03 17:03:16 1.2
+++ ParserTokenManager.java 2000/10/09 15:06:32 1.3
@@ -91,7 +91,7 @@
switch (pos)
{
case 0:
- if ((active0 & 0xd000L) != 0L)
+ if ((active0 & 0x68000L) != 0L)
return 5;
return -1;
default :
@@ -121,10 +121,10 @@
switch(curChar)
{
case 35:
- jjmatchedKind = 15;
- return jjMoveStringLiteralDfa1_0(0x5000L);
+ jjmatchedKind = 18;
+ return jjMoveStringLiteralDfa1_0(0x28000L);
case 36:
- return jjStopAtPos(0, 11);
+ return jjStopAtPos(0, 14);
default :
return jjMoveNfa_0(0, 0);
}
@@ -139,12 +139,12 @@
switch(curChar)
{
case 35:
- if ((active0 & 0x1000L) != 0L)
- return jjStopAtPos(1, 12);
+ if ((active0 & 0x8000L) != 0L)
+ return jjStopAtPos(1, 15);
break;
case 42:
- if ((active0 & 0x4000L) != 0L)
- return jjStartNfaWithStates_0(1, 14, 3);
+ if ((active0 & 0x20000L) != 0L)
+ return jjStartNfaWithStates_0(1, 17, 3);
break;
default :
break;
@@ -229,8 +229,8 @@
jjstateSet[jjnewStateCnt++] = 4;
break;
case 4:
- if ((0xfffffff7ffffffffL & l) != 0L && kind > 13)
- kind = 13;
+ if ((0xfffffff7ffffffffL & l) != 0L && kind > 16)
+ kind = 16;
break;
case 5:
if (curChar == 42)
@@ -273,8 +273,8 @@
jjCheckNAdd(2);
break;
case 4:
- if (kind > 13)
- kind = 13;
+ if (kind > 16)
+ kind = 16;
break;
default : break;
}
@@ -301,8 +301,8 @@
kind = 1;
break;
case 4:
- if ((jjbitVec0[i2] & l2) != 0L && kind > 13)
- kind = 13;
+ if ((jjbitVec0[i2] & l2) != 0L && kind > 16)
+ kind = 16;
break;
default : break;
}
@@ -326,7 +326,7 @@
switch (pos)
{
case 0:
- if ((active0 & 0xd000L) != 0L)
+ if ((active0 & 0x68000L) != 0L)
return 2;
return -1;
default :
@@ -350,12 +350,12 @@
switch(curChar)
{
case 35:
- jjmatchedKind = 15;
- return jjMoveStringLiteralDfa1_3(0x5000L);
+ jjmatchedKind = 18;
+ return jjMoveStringLiteralDfa1_3(0x28000L);
case 36:
- return jjStopAtPos(0, 11);
+ return jjStopAtPos(0, 14);
case 42:
- return jjMoveStringLiteralDfa1_3(0x40000L);
+ return jjMoveStringLiteralDfa1_3(0x200000L);
default :
return jjMoveNfa_3(3, 0);
}
@@ -370,14 +370,14 @@
switch(curChar)
{
case 35:
- if ((active0 & 0x1000L) != 0L)
- return jjStopAtPos(1, 12);
- else if ((active0 & 0x40000L) != 0L)
- return jjStopAtPos(1, 18);
+ if ((active0 & 0x8000L) != 0L)
+ return jjStopAtPos(1, 15);
+ else if ((active0 & 0x200000L) != 0L)
+ return jjStopAtPos(1, 21);
break;
case 42:
- if ((active0 & 0x4000L) != 0L)
- return jjStartNfaWithStates_3(1, 14, 0);
+ if ((active0 & 0x20000L) != 0L)
+ return jjStartNfaWithStates_3(1, 17, 0);
break;
default :
break;
@@ -408,8 +408,8 @@
jjstateSet[jjnewStateCnt++] = 1;
break;
case 1:
- if ((0xfffffff7ffffffffL & l) != 0L && kind > 13)
- kind = 13;
+ if ((0xfffffff7ffffffffL & l) != 0L && kind > 16)
+ kind = 16;
break;
case 2:
if (curChar == 42)
@@ -431,7 +431,7 @@
switch(jjstateSet[--i])
{
case 1:
- kind = 13;
+ kind = 16;
break;
default : break;
}
@@ -446,8 +446,8 @@
switch(jjstateSet[--i])
{
case 1:
- if ((jjbitVec0[i2] & l2) != 0L && kind > 13)
- kind = 13;
+ if ((jjbitVec0[i2] & l2) != 0L && kind > 16)
+ kind = 16;
break;
default : break;
}
@@ -471,7 +471,7 @@
switch (pos)
{
case 0:
- if ((active0 & 0xd000L) != 0L)
+ if ((active0 & 0x68000L) != 0L)
return 2;
return -1;
default :
@@ -495,10 +495,10 @@
switch(curChar)
{
case 35:
- jjmatchedKind = 15;
- return jjMoveStringLiteralDfa1_5(0x5000L);
+ jjmatchedKind = 18;
+ return jjMoveStringLiteralDfa1_5(0x28000L);
case 36:
- return jjStopAtPos(0, 11);
+ return jjStopAtPos(0, 14);
default :
return jjMoveNfa_5(3, 0);
}
@@ -513,12 +513,12 @@
switch(curChar)
{
case 35:
- if ((active0 & 0x1000L) != 0L)
- return jjStopAtPos(1, 12);
+ if ((active0 & 0x8000L) != 0L)
+ return jjStopAtPos(1, 15);
break;
case 42:
- if ((active0 & 0x4000L) != 0L)
- return jjStartNfaWithStates_5(1, 14, 0);
+ if ((active0 & 0x20000L) != 0L)
+ return jjStartNfaWithStates_5(1, 17, 0);
break;
default :
break;
@@ -547,8 +547,8 @@
case 3:
if ((0x2400L & l) != 0L)
{
- if (kind > 16)
- kind = 16;
+ if (kind > 19)
+ kind = 19;
}
else if (curChar == 35)
jjstateSet[jjnewStateCnt++] = 2;
@@ -560,20 +560,20 @@
jjstateSet[jjnewStateCnt++] = 1;
break;
case 1:
- if ((0xfffffff7ffffffffL & l) != 0L && kind > 13)
- kind = 13;
+ if ((0xfffffff7ffffffffL & l) != 0L && kind > 16)
+ kind = 16;
break;
case 2:
if (curChar == 42)
jjstateSet[jjnewStateCnt++] = 0;
break;
case 4:
- if ((0x2400L & l) != 0L && kind > 16)
- kind = 16;
+ if ((0x2400L & l) != 0L && kind > 19)
+ kind = 19;
break;
case 5:
- if (curChar == 10 && kind > 16)
- kind = 16;
+ if (curChar == 10 && kind > 19)
+ kind = 19;
break;
case 6:
if (curChar == 13)
@@ -591,7 +591,7 @@
switch(jjstateSet[--i])
{
case 1:
- kind = 13;
+ kind = 16;
break;
default : break;
}
@@ -606,8 +606,8 @@
switch(jjstateSet[--i])
{
case 1:
- if ((jjbitVec0[i2] & l2) != 0L && kind > 13)
- kind = 13;
+ if ((jjbitVec0[i2] & l2) != 0L && kind > 16)
+ kind = 16;
break;
default : break;
}
@@ -631,30 +631,30 @@
switch (pos)
{
case 0:
- if ((active0 & 0x1fc000000600L) != 0L)
+ if ((active0 & 0x7f0000001800L) != 0L)
{
jjmatchedKind = 48;
return 11;
}
- if ((active0 & 0xd000L) != 0L)
- return 5;
+ if ((active0 & 0x68000L) != 0L)
+ return 6;
return -1;
case 1:
- if ((active0 & 0x1ec000000600L) != 0L)
+ if ((active0 & 0x20000L) != 0L)
+ return 4;
+ if ((active0 & 0x7b0000001800L) != 0L)
{
jjmatchedKind = 48;
jjmatchedPos = 1;
return 11;
}
- if ((active0 & 0x10000000000L) != 0L)
+ if ((active0 & 0x40000000000L) != 0L)
return 11;
- if ((active0 & 0x4000L) != 0L)
- return 3;
return -1;
case 2:
- if ((active0 & 0x84000000000L) != 0L)
+ if ((active0 & 0x210000000000L) != 0L)
return 11;
- if ((active0 & 0x168000000600L) != 0L)
+ if ((active0 & 0x5a0000001800L) != 0L)
{
jjmatchedKind = 48;
jjmatchedPos = 2;
@@ -662,7 +662,7 @@
}
return -1;
case 3:
- if ((active0 & 0x8000000400L) != 0L)
+ if ((active0 & 0x20000001000L) != 0L)
{
if (jjmatchedPos != 3)
{
@@ -671,23 +671,23 @@
}
return 11;
}
- if ((active0 & 0x160000000200L) != 0L)
+ if ((active0 & 0x580000000800L) != 0L)
return 11;
return -1;
case 4:
- if ((active0 & 0x28000000000L) != 0L)
+ if ((active0 & 0xa0000000000L) != 0L)
{
jjmatchedKind = 48;
jjmatchedPos = 4;
return 11;
}
- if ((active0 & 0x400L) != 0L)
+ if ((active0 & 0x1000L) != 0L)
return 11;
return -1;
case 5:
- if ((active0 & 0x20000000000L) != 0L)
+ if ((active0 & 0x80000000000L) != 0L)
return 11;
- if ((active0 & 0x8000000000L) != 0L)
+ if ((active0 & 0x20000000000L) != 0L)
{
jjmatchedKind = 48;
jjmatchedPos = 5;
@@ -715,56 +715,56 @@
switch(curChar)
{
case 33:
- jjmatchedKind = 36;
- return jjMoveStringLiteralDfa1_2(0x800000000L);
+ jjmatchedKind = 39;
+ return jjMoveStringLiteralDfa1_2(0x4000000000L);
case 35:
- jjmatchedKind = 15;
- return jjMoveStringLiteralDfa1_2(0x5000L);
+ jjmatchedKind = 18;
+ return jjMoveStringLiteralDfa1_2(0x28000L);
case 36:
- return jjStopAtPos(0, 11);
+ return jjStopAtPos(0, 14);
case 37:
- return jjStopAtPos(0, 27);
+ return jjStopAtPos(0, 30);
case 38:
- return jjMoveStringLiteralDfa1_2(0x10000000L);
+ return jjMoveStringLiteralDfa1_2(0x80000000L);
case 40:
return jjStopAtPos(0, 3);
case 41:
return jjStopAtPos(0, 4);
case 42:
- return jjStopAtPos(0, 25);
+ return jjStopAtPos(0, 28);
case 43:
- return jjStopAtPos(0, 24);
+ return jjStopAtPos(0, 27);
case 44:
- return jjStopAtPos(0, 8);
+ return jjStopAtPos(0, 10);
case 45:
- return jjStopAtPos(0, 23);
- case 47:
return jjStopAtPos(0, 26);
+ case 47:
+ return jjStopAtPos(0, 29);
case 60:
- jjmatchedKind = 30;
- return jjMoveStringLiteralDfa1_2(0x80000000L);
- case 61:
- jjmatchedKind = 37;
+ jjmatchedKind = 33;
return jjMoveStringLiteralDfa1_2(0x400000000L);
+ case 61:
+ jjmatchedKind = 13;
+ return jjMoveStringLiteralDfa1_2(0x2000000000L);
case 62:
- jjmatchedKind = 32;
- return jjMoveStringLiteralDfa1_2(0x200000000L);
+ jjmatchedKind = 35;
+ return jjMoveStringLiteralDfa1_2(0x1000000000L);
case 91:
return jjStopAtPos(0, 5);
case 93:
return jjStopAtPos(0, 6);
case 101:
- return jjMoveStringLiteralDfa1_2(0x64000000000L);
+ return jjMoveStringLiteralDfa1_2(0x190000000000L);
case 102:
- return jjMoveStringLiteralDfa1_2(0x400L);
+ return jjMoveStringLiteralDfa1_2(0x1000L);
case 105:
- return jjMoveStringLiteralDfa1_2(0x18000000000L);
+ return jjMoveStringLiteralDfa1_2(0x60000000000L);
case 115:
- return jjMoveStringLiteralDfa1_2(0x180000000000L);
+ return jjMoveStringLiteralDfa1_2(0x600000000000L);
case 116:
- return jjMoveStringLiteralDfa1_2(0x200L);
+ return jjMoveStringLiteralDfa1_2(0x800L);
case 124:
- return jjMoveStringLiteralDfa1_2(0x20000000L);
+ return jjMoveStringLiteralDfa1_2(0x100000000L);
default :
return jjMoveNfa_2(0, 0);
}
@@ -779,46 +779,46 @@
switch(curChar)
{
case 35:
- if ((active0 & 0x1000L) != 0L)
- return jjStopAtPos(1, 12);
+ if ((active0 & 0x8000L) != 0L)
+ return jjStopAtPos(1, 15);
break;
case 38:
- if ((active0 & 0x10000000L) != 0L)
- return jjStopAtPos(1, 28);
+ if ((active0 & 0x80000000L) != 0L)
+ return jjStopAtPos(1, 31);
break;
case 42:
- if ((active0 & 0x4000L) != 0L)
- return jjStartNfaWithStates_2(1, 14, 3);
+ if ((active0 & 0x20000L) != 0L)
+ return jjStartNfaWithStates_2(1, 17, 4);
break;
case 61:
- if ((active0 & 0x80000000L) != 0L)
- return jjStopAtPos(1, 31);
- else if ((active0 & 0x200000000L) != 0L)
- return jjStopAtPos(1, 33);
- else if ((active0 & 0x400000000L) != 0L)
+ if ((active0 & 0x400000000L) != 0L)
return jjStopAtPos(1, 34);
- else if ((active0 & 0x800000000L) != 0L)
- return jjStopAtPos(1, 35);
+ else if ((active0 & 0x1000000000L) != 0L)
+ return jjStopAtPos(1, 36);
+ else if ((active0 & 0x2000000000L) != 0L)
+ return jjStopAtPos(1, 37);
+ else if ((active0 & 0x4000000000L) != 0L)
+ return jjStopAtPos(1, 38);
break;
case 97:
- return jjMoveStringLiteralDfa2_2(active0, 0x400L);
+ return jjMoveStringLiteralDfa2_2(active0, 0x1000L);
case 101:
- return jjMoveStringLiteralDfa2_2(active0, 0x80000000000L);
+ return jjMoveStringLiteralDfa2_2(active0, 0x200000000000L);
case 102:
- if ((active0 & 0x10000000000L) != 0L)
- return jjStartNfaWithStates_2(1, 40, 11);
+ if ((active0 & 0x40000000000L) != 0L)
+ return jjStartNfaWithStates_2(1, 42, 11);
break;
case 108:
- return jjMoveStringLiteralDfa2_2(active0, 0x60000000000L);
+ return jjMoveStringLiteralDfa2_2(active0, 0x180000000000L);
case 110:
- return jjMoveStringLiteralDfa2_2(active0, 0xc000000000L);
+ return jjMoveStringLiteralDfa2_2(active0, 0x30000000000L);
case 114:
- return jjMoveStringLiteralDfa2_2(active0, 0x200L);
+ return jjMoveStringLiteralDfa2_2(active0, 0x800L);
case 116:
- return jjMoveStringLiteralDfa2_2(active0, 0x100000000000L);
+ return jjMoveStringLiteralDfa2_2(active0, 0x400000000000L);
case 124:
- if ((active0 & 0x20000000L) != 0L)
- return jjStopAtPos(1, 29);
+ if ((active0 & 0x100000000L) != 0L)
+ return jjStopAtPos(1, 32);
break;
default :
break;
@@ -837,23 +837,23 @@
switch(curChar)
{
case 99:
- return jjMoveStringLiteralDfa3_2(active0, 0x8000000000L);
+ return jjMoveStringLiteralDfa3_2(active0, 0x20000000000L);
case 100:
- if ((active0 & 0x4000000000L) != 0L)
- return jjStartNfaWithStates_2(2, 38, 11);
+ if ((active0 & 0x10000000000L) != 0L)
+ return jjStartNfaWithStates_2(2, 40, 11);
break;
case 108:
- return jjMoveStringLiteralDfa3_2(active0, 0x400L);
+ return jjMoveStringLiteralDfa3_2(active0, 0x1000L);
case 111:
- return jjMoveStringLiteralDfa3_2(active0, 0x100000000000L);
+ return jjMoveStringLiteralDfa3_2(active0, 0x400000000000L);
case 115:
- return jjMoveStringLiteralDfa3_2(active0, 0x60000000000L);
+ return jjMoveStringLiteralDfa3_2(active0, 0x180000000000L);
case 116:
- if ((active0 & 0x80000000000L) != 0L)
- return jjStartNfaWithStates_2(2, 43, 11);
+ if ((active0 & 0x200000000000L) != 0L)
+ return jjStartNfaWithStates_2(2, 45, 11);
break;
case 117:
- return jjMoveStringLiteralDfa3_2(active0, 0x200L);
+ return jjMoveStringLiteralDfa3_2(active0, 0x800L);
default :
break;
}
@@ -871,22 +871,22 @@
switch(curChar)
{
case 101:
- if ((active0 & 0x200L) != 0L)
- return jjStartNfaWithStates_2(3, 9, 11);
- else if ((active0 & 0x40000000000L) != 0L)
+ if ((active0 & 0x800L) != 0L)
+ return jjStartNfaWithStates_2(3, 11, 11);
+ else if ((active0 & 0x100000000000L) != 0L)
{
- jjmatchedKind = 42;
+ jjmatchedKind = 44;
jjmatchedPos = 3;
}
- return jjMoveStringLiteralDfa4_2(active0, 0x20000000000L);
+ return jjMoveStringLiteralDfa4_2(active0, 0x80000000000L);
case 108:
- return jjMoveStringLiteralDfa4_2(active0, 0x8000000000L);
+ return jjMoveStringLiteralDfa4_2(active0, 0x20000000000L);
case 112:
- if ((active0 & 0x100000000000L) != 0L)
- return jjStartNfaWithStates_2(3, 44, 11);
+ if ((active0 & 0x400000000000L) != 0L)
+ return jjStartNfaWithStates_2(3, 46, 11);
break;
case 115:
- return jjMoveStringLiteralDfa4_2(active0, 0x400L);
+ return jjMoveStringLiteralDfa4_2(active0, 0x1000L);
default :
break;
}
@@ -904,13 +904,13 @@
switch(curChar)
{
case 101:
- if ((active0 & 0x400L) != 0L)
- return jjStartNfaWithStates_2(4, 10, 11);
+ if ((active0 & 0x1000L) != 0L)
+ return jjStartNfaWithStates_2(4, 12, 11);
break;
case 105:
- return jjMoveStringLiteralDfa5_2(active0, 0x20000000000L);
+ return jjMoveStringLiteralDfa5_2(active0, 0x80000000000L);
case 117:
- return jjMoveStringLiteralDfa5_2(active0, 0x8000000000L);
+ return jjMoveStringLiteralDfa5_2(active0, 0x20000000000L);
default :
break;
}
@@ -928,10 +928,10 @@
switch(curChar)
{
case 100:
- return jjMoveStringLiteralDfa6_2(active0, 0x8000000000L);
+ return jjMoveStringLiteralDfa6_2(active0, 0x20000000000L);
case 102:
- if ((active0 & 0x20000000000L) != 0L)
- return jjStartNfaWithStates_2(5, 41, 11);
+ if ((active0 & 0x80000000000L) != 0L)
+ return jjStartNfaWithStates_2(5, 43, 11);
break;
default :
break;
@@ -950,8 +950,8 @@
switch(curChar)
{
case 101:
- if ((active0 & 0x8000000000L) != 0L)
- return jjStartNfaWithStates_2(6, 39, 11);
+ if ((active0 & 0x20000000000L) != 0L)
+ return jjStartNfaWithStates_2(6, 41, 11);
break;
default :
break;
@@ -980,21 +980,21 @@
case 0:
if ((0x3ff000000000000L & l) != 0L)
{
- if (kind > 46)
- kind = 46;
- jjCheckNAdd(10);
+ if (kind > 9)
+ kind = 9;
+ jjCheckNAdd(3);
}
else if ((0x2400L & l) != 0L)
{
- if (kind > 22)
- kind = 22;
+ if (kind > 25)
+ kind = 25;
}
else if (curChar == 35)
- jjstateSet[jjnewStateCnt++] = 5;
+ jjstateSet[jjnewStateCnt++] = 6;
else if (curChar == 34)
jjCheckNAddTwoStates(1, 2);
if (curChar == 13)
- jjstateSet[jjnewStateCnt++] = 8;
+ jjstateSet[jjnewStateCnt++] = 9;
break;
case 1:
if ((0xfffffffbffffdbffL & l) != 0L)
@@ -1005,39 +1005,39 @@
kind = 7;
break;
case 3:
- if (curChar == 42)
- jjstateSet[jjnewStateCnt++] = 4;
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 9)
+ kind = 9;
+ jjCheckNAdd(3);
break;
case 4:
- if ((0xfffffff7ffffffffL & l) != 0L && kind > 13)
- kind = 13;
+ if (curChar == 42)
+ jjstateSet[jjnewStateCnt++] = 5;
break;
case 5:
- if (curChar == 42)
- jjstateSet[jjnewStateCnt++] = 3;
+ if ((0xfffffff7ffffffffL & l) != 0L && kind > 16)
+ kind = 16;
break;
case 6:
- if (curChar == 35)
- jjstateSet[jjnewStateCnt++] = 5;
+ if (curChar == 42)
+ jjstateSet[jjnewStateCnt++] = 4;
break;
case 7:
- if ((0x2400L & l) != 0L && kind > 22)
- kind = 22;
+ if (curChar == 35)
+ jjstateSet[jjnewStateCnt++] = 6;
break;
case 8:
- if (curChar == 10 && kind > 22)
- kind = 22;
+ if ((0x2400L & l) != 0L && kind > 25)
+ kind = 25;
break;
case 9:
- if (curChar == 13)
- jjstateSet[jjnewStateCnt++] = 8;
+ if (curChar == 10 && kind > 25)
+ kind = 25;
break;
case 10:
- if ((0x3ff000000000000L & l) == 0L)
- break;
- if (kind > 46)
- kind = 46;
- jjCheckNAdd(10);
+ if (curChar == 13)
+ jjstateSet[jjnewStateCnt++] = 9;
break;
default : break;
}
@@ -1061,9 +1061,9 @@
case 1:
jjAddStates(0, 1);
break;
- case 4:
- if (kind > 13)
- kind = 13;
+ case 5:
+ if (kind > 16)
+ kind = 16;
break;
default : break;
}
@@ -1081,9 +1081,9 @@
if ((jjbitVec0[i2] & l2) != 0L)
jjAddStates(0, 1);
break;
- case 4:
- if ((jjbitVec0[i2] & l2) != 0L && kind > 13)
- kind = 13;
+ case 5:
+ if ((jjbitVec0[i2] & l2) != 0L && kind > 16)
+ kind = 16;
break;
default : break;
}
@@ -1107,7 +1107,7 @@
switch (pos)
{
case 0:
- if ((active0 & 0xd000L) != 0L)
+ if ((active0 & 0x68000L) != 0L)
return 2;
return -1;
default :
@@ -1131,12 +1131,12 @@
switch(curChar)
{
case 35:
- jjmatchedKind = 15;
- return jjMoveStringLiteralDfa1_4(0x5000L);
+ jjmatchedKind = 18;
+ return jjMoveStringLiteralDfa1_4(0x28000L);
case 36:
- return jjStopAtPos(0, 11);
+ return jjStopAtPos(0, 14);
case 42:
- return jjMoveStringLiteralDfa1_4(0x20000L);
+ return jjMoveStringLiteralDfa1_4(0x100000L);
default :
return jjMoveNfa_4(3, 0);
}
@@ -1151,14 +1151,14 @@
switch(curChar)
{
case 35:
- if ((active0 & 0x1000L) != 0L)
- return jjStopAtPos(1, 12);
- else if ((active0 & 0x20000L) != 0L)
- return jjStopAtPos(1, 17);
+ if ((active0 & 0x8000L) != 0L)
+ return jjStopAtPos(1, 15);
+ else if ((active0 & 0x100000L) != 0L)
+ return jjStopAtPos(1, 20);
break;
case 42:
- if ((active0 & 0x4000L) != 0L)
- return jjStartNfaWithStates_4(1, 14, 0);
+ if ((active0 & 0x20000L) != 0L)
+ return jjStartNfaWithStates_4(1, 17, 0);
break;
default :
break;
@@ -1189,8 +1189,8 @@
jjstateSet[jjnewStateCnt++] = 1;
break;
case 1:
- if ((0xfffffff7ffffffffL & l) != 0L && kind > 13)
- kind = 13;
+ if ((0xfffffff7ffffffffL & l) != 0L && kind > 16)
+ kind = 16;
break;
case 2:
if (curChar == 42)
@@ -1212,7 +1212,7 @@
switch(jjstateSet[--i])
{
case 1:
- kind = 13;
+ kind = 16;
break;
default : break;
}
@@ -1227,8 +1227,8 @@
switch(jjstateSet[--i])
{
case 1:
- if ((jjbitVec0[i2] & l2) != 0L && kind > 13)
- kind = 13;
+ if ((jjbitVec0[i2] & l2) != 0L && kind > 16)
+ kind = 16;
break;
default : break;
}
@@ -1252,41 +1252,41 @@
switch (pos)
{
case 0:
- if ((active0 & 0x600L) != 0L)
+ if ((active0 & 0x68000L) != 0L)
+ return 6;
+ if ((active0 & 0x1800L) != 0L)
{
jjmatchedKind = 52;
- return 8;
+ return 9;
}
- if ((active0 & 0xd000L) != 0L)
- return 5;
return -1;
case 1:
- if ((active0 & 0x600L) != 0L)
+ if ((active0 & 0x20000L) != 0L)
+ return 4;
+ if ((active0 & 0x1800L) != 0L)
{
jjmatchedKind = 52;
jjmatchedPos = 1;
- return 8;
+ return 9;
}
- if ((active0 & 0x4000L) != 0L)
- return 3;
return -1;
case 2:
- if ((active0 & 0x600L) != 0L)
+ if ((active0 & 0x1800L) != 0L)
{
jjmatchedKind = 52;
jjmatchedPos = 2;
- return 8;
+ return 9;
}
return -1;
case 3:
- if ((active0 & 0x400L) != 0L)
+ if ((active0 & 0x1000L) != 0L)
{
jjmatchedKind = 52;
jjmatchedPos = 3;
- return 8;
+ return 9;
}
- if ((active0 & 0x200L) != 0L)
- return 8;
+ if ((active0 & 0x800L) != 0L)
+ return 9;
return -1;
default :
return -1;
@@ -1311,26 +1311,28 @@
case 33:
return jjStopAtPos(0, 54);
case 35:
- jjmatchedKind = 15;
- return jjMoveStringLiteralDfa1_1(0x5000L);
+ jjmatchedKind = 18;
+ return jjMoveStringLiteralDfa1_1(0x28000L);
case 36:
- return jjStopAtPos(0, 11);
+ return jjStopAtPos(0, 14);
case 40:
return jjStopAtPos(0, 3);
case 41:
return jjStopAtPos(0, 4);
case 44:
- return jjStopAtPos(0, 8);
+ return jjStopAtPos(0, 10);
case 46:
return jjStopAtPos(0, 53);
+ case 61:
+ return jjStopAtPos(0, 13);
case 91:
return jjStopAtPos(0, 5);
case 93:
return jjStopAtPos(0, 6);
case 102:
- return jjMoveStringLiteralDfa1_1(0x400L);
+ return jjMoveStringLiteralDfa1_1(0x1000L);
case 116:
- return jjMoveStringLiteralDfa1_1(0x200L);
+ return jjMoveStringLiteralDfa1_1(0x800L);
case 123:
return jjStopAtPos(0, 55);
case 125:
@@ -1349,17 +1351,17 @@
switch(curChar)
{
case 35:
- if ((active0 & 0x1000L) != 0L)
- return jjStopAtPos(1, 12);
+ if ((active0 & 0x8000L) != 0L)
+ return jjStopAtPos(1, 15);
break;
case 42:
- if ((active0 & 0x4000L) != 0L)
- return jjStartNfaWithStates_1(1, 14, 3);
+ if ((active0 & 0x20000L) != 0L)
+ return jjStartNfaWithStates_1(1, 17, 4);
break;
case 97:
- return jjMoveStringLiteralDfa2_1(active0, 0x400L);
+ return jjMoveStringLiteralDfa2_1(active0, 0x1000L);
case 114:
- return jjMoveStringLiteralDfa2_1(active0, 0x200L);
+ return jjMoveStringLiteralDfa2_1(active0, 0x800L);
default :
break;
}
@@ -1377,9 +1379,9 @@
switch(curChar)
{
case 108:
- return jjMoveStringLiteralDfa3_1(active0, 0x400L);
+ return jjMoveStringLiteralDfa3_1(active0, 0x1000L);
case 117:
- return jjMoveStringLiteralDfa3_1(active0, 0x200L);
+ return jjMoveStringLiteralDfa3_1(active0, 0x800L);
default :
break;
}
@@ -1397,11 +1399,11 @@
switch(curChar)
{
case 101:
- if ((active0 & 0x200L) != 0L)
- return jjStartNfaWithStates_1(3, 9, 8);
+ if ((active0 & 0x800L) != 0L)
+ return jjStartNfaWithStates_1(3, 11, 9);
break;
case 115:
- return jjMoveStringLiteralDfa4_1(active0, 0x400L);
+ return jjMoveStringLiteralDfa4_1(active0, 0x1000L);
default :
break;
}
@@ -1419,8 +1421,8 @@
switch(curChar)
{
case 101:
- if ((active0 & 0x400L) != 0L)
- return jjStartNfaWithStates_1(4, 10, 8);
+ if ((active0 & 0x1000L) != 0L)
+ return jjStartNfaWithStates_1(4, 12, 9);
break;
default :
break;
@@ -1431,7 +1433,7 @@
{
int[] nextStates;
int startsAt = 0;
- jjnewStateCnt = 9;
+ jjnewStateCnt = 10;
int i = 1;
jjstateSet[0] = startState;
int j, kind = 0x7fffffff;
@@ -1447,8 +1449,14 @@
switch(jjstateSet[--i])
{
case 0:
- if (curChar == 35)
- jjstateSet[jjnewStateCnt++] = 5;
+ if ((0x3ff000000000000L & l) != 0L)
+ {
+ if (kind > 9)
+ kind = 9;
+ jjCheckNAdd(3);
+ }
+ else if (curChar == 35)
+ jjstateSet[jjnewStateCnt++] = 6;
else if (curChar == 34)
jjCheckNAddTwoStates(1, 2);
break;
@@ -1461,27 +1469,34 @@
kind = 7;
break;
case 3:
- if (curChar == 42)
- jjstateSet[jjnewStateCnt++] = 4;
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 9)
+ kind = 9;
+ jjCheckNAdd(3);
break;
case 4:
- if ((0xfffffff7ffffffffL & l) != 0L && kind > 13)
- kind = 13;
+ if (curChar == 42)
+ jjstateSet[jjnewStateCnt++] = 5;
break;
case 5:
- if (curChar == 42)
- jjstateSet[jjnewStateCnt++] = 3;
+ if ((0xfffffff7ffffffffL & l) != 0L && kind > 16)
+ kind = 16;
break;
case 6:
+ if (curChar == 42)
+ jjstateSet[jjnewStateCnt++] = 4;
+ break;
+ case 7:
if (curChar == 35)
- jjstateSet[jjnewStateCnt++] = 5;
+ jjstateSet[jjnewStateCnt++] = 6;
break;
- case 8:
+ case 9:
if ((0x3ff200000000000L & l) == 0L)
break;
if (kind > 52)
kind = 52;
- jjstateSet[jjnewStateCnt++] = 8;
+ jjstateSet[jjnewStateCnt++] = 9;
break;
default : break;
}
@@ -1499,21 +1514,21 @@
break;
if (kind > 52)
kind = 52;
- jjCheckNAdd(8);
+ jjCheckNAdd(9);
break;
case 1:
jjAddStates(0, 1);
break;
- case 4:
- if (kind > 13)
- kind = 13;
+ case 5:
+ if (kind > 16)
+ kind = 16;
break;
- case 8:
+ case 9:
if ((0x7fffffe87fffffeL & l) == 0L)
break;
if (kind > 52)
kind = 52;
- jjCheckNAdd(8);
+ jjCheckNAdd(9);
break;
default : break;
}
@@ -1531,9 +1546,9 @@
if ((jjbitVec0[i2] & l2) != 0L)
jjAddStates(0, 1);
break;
- case 4:
- if ((jjbitVec0[i2] & l2) != 0L && kind > 13)
- kind = 13;
+ case 5:
+ if ((jjbitVec0[i2] & l2) != 0L && kind > 16)
+ kind = 16;
break;
default : break;
}
@@ -1546,7 +1561,7 @@
kind = 0x7fffffff;
}
++curPos;
- if ((i = jjnewStateCnt) == (startsAt = 9 - (jjnewStateCnt = startsAt)))
+ if ((i = jjnewStateCnt) == (startsAt = 10 - (jjnewStateCnt = startsAt)))
return curPos;
try { curChar = input_stream.readChar(); }
catch(java.io.IOException e) { return curPos; }
@@ -1570,21 +1585,21 @@
"IN_SINGLE_LINE_COMMENT",
};
public static final int[] jjnewLexState = {
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5, 4, 3, -1, 0, 0, 0, -1, -1,
-1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, 0, -1, -1,
-1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5, 4, 3, -1, 0, 0,
0, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, 0,
-1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 0, -1,
};
static final long[] jjtoToken = {
- 0x1f15fffff8707ffL,
+ 0x1f17ffffc383effL,
};
static final long[] jjtoSkip = {
- 0x200000000700000L,
+ 0x200000003800000L,
};
static final long[] jjtoSpecial = {
- 0x200000000400000L,
+ 0x200000002000000L,
};
static final long[] jjtoMore = {
- 0x8f800L,
+ 0x47c000L,
};
private ASCII_CharStream input_stream;
private final int[] jjrounds = new int[12];
@@ -1708,27 +1723,27 @@
jjmatchedKind = 0x7fffffff;
jjmatchedPos = 0;
curPos = jjMoveStringLiteralDfa0_3();
- if (jjmatchedPos == 0 && jjmatchedKind > 19)
+ if (jjmatchedPos == 0 && jjmatchedKind > 22)
{
- jjmatchedKind = 19;
+ jjmatchedKind = 22;
}
break;
case 4:
jjmatchedKind = 0x7fffffff;
jjmatchedPos = 0;
curPos = jjMoveStringLiteralDfa0_4();
- if (jjmatchedPos == 0 && jjmatchedKind > 19)
+ if (jjmatchedPos == 0 && jjmatchedKind > 22)
{
- jjmatchedKind = 19;
+ jjmatchedKind = 22;
}
break;
case 5:
jjmatchedKind = 0x7fffffff;
jjmatchedPos = 0;
curPos = jjMoveStringLiteralDfa0_5();
- if (jjmatchedPos == 0 && jjmatchedKind > 19)
+ if (jjmatchedPos == 0 && jjmatchedKind > 22)
{
- jjmatchedKind = 19;
+ jjmatchedKind = 22;
}
break;
}
@@ -1805,7 +1820,7 @@
{
switch(jjmatchedKind)
{
- case 22 :
+ case 25 :
if (image == null)
image = new StringBuffer(new String(input_stream.GetSuffix(jjimageLen +
(lengthOfMatch = jjmatchedPos + 1))));
else
@@ -1844,7 +1859,7 @@
jjimageLen += (lengthOfMatch = jjmatchedPos + 1);
switch(jjmatchedKind)
{
- case 11 :
+ case 14 :
if (image == null)
image = new StringBuffer(new
String(input_stream.GetSuffix(jjimageLen)));
else
@@ -1856,7 +1871,7 @@
SwitchTo(REFERENCE);
}
break;
- case 12 :
+ case 15 :
if (image == null)
image = new StringBuffer(new
String(input_stream.GetSuffix(jjimageLen)));
else
@@ -1864,7 +1879,7 @@
jjimageLen = 0;
inComment = true;
break;
- case 13 :
+ case 16 :
if (image == null)
image = new StringBuffer(new
String(input_stream.GetSuffix(jjimageLen)));
else
@@ -1872,7 +1887,7 @@
jjimageLen = 0;
input_stream.backup(1); inComment = true;
break;
- case 14 :
+ case 17 :
if (image == null)
image = new StringBuffer(new
String(input_stream.GetSuffix(jjimageLen)));
else
@@ -1880,7 +1895,7 @@
jjimageLen = 0;
inComment=true;
break;
- case 15 :
+ case 18 :
if (image == null)
image = new StringBuffer(new
String(input_stream.GetSuffix(jjimageLen)));
else
@@ -1932,49 +1947,49 @@
}
incMode = false;
break;
- case 16 :
+ case 19 :
if (image == null)
image = new StringBuffer(new String(input_stream.GetSuffix(jjimageLen +
(lengthOfMatch = jjmatchedPos + 1))));
else
image.append(new String(input_stream.GetSuffix(jjimageLen +
(lengthOfMatch = jjmatchedPos + 1))));
inComment = false;
break;
- case 17 :
+ case 20 :
if (image == null)
image = new StringBuffer(new String(input_stream.GetSuffix(jjimageLen +
(lengthOfMatch = jjmatchedPos + 1))));
else
image.append(new String(input_stream.GetSuffix(jjimageLen +
(lengthOfMatch = jjmatchedPos + 1))));
inComment = false;
break;
- case 18 :
+ case 21 :
if (image == null)
image = new StringBuffer(new String(input_stream.GetSuffix(jjimageLen +
(lengthOfMatch = jjmatchedPos + 1))));
else
image.append(new String(input_stream.GetSuffix(jjimageLen +
(lengthOfMatch = jjmatchedPos + 1))));
inComment = false;
break;
- case 38 :
+ case 40 :
if (image == null)
image = new StringBuffer(new String(input_stream.GetSuffix(jjimageLen +
(lengthOfMatch = jjmatchedPos + 1))));
else
image.append(new String(input_stream.GetSuffix(jjimageLen +
(lengthOfMatch = jjmatchedPos + 1))));
inDirective = false;
break;
- case 39 :
+ case 41 :
if (image == null)
image = new StringBuffer(new String(input_stream.GetSuffix(jjimageLen +
(lengthOfMatch = jjmatchedPos + 1))));
else
image.append(new String(input_stream.GetSuffix(jjimageLen +
(lengthOfMatch = jjmatchedPos + 1))));
incMode = true;
break;
- case 43 :
+ case 45 :
if (image == null)
image = new StringBuffer(new String(input_stream.GetSuffix(jjimageLen +
(lengthOfMatch = jjmatchedPos + 1))));
else
image.append(new String(input_stream.GetSuffix(jjimageLen +
(lengthOfMatch = jjmatchedPos + 1))));
inSet = true;
break;
- case 44 :
+ case 46 :
if (image == null)
image = new StringBuffer(new String(input_stream.GetSuffix(jjimageLen +
(lengthOfMatch = jjmatchedPos + 1))));
else
1.2 +53 -37
jakarta-velocity/src/java/org/apache/velocity/runtime/parser/SimpleNode.java
Index: SimpleNode.java
===================================================================
RCS file:
/home/cvs/jakarta-velocity/src/java/org/apache/velocity/runtime/parser/SimpleNode.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- SimpleNode.java 2000/09/30 17:04:24 1.1
+++ SimpleNode.java 2000/10/09 15:06:33 1.2
@@ -13,9 +13,11 @@
protected Node[] children;
protected int id;
protected Parser parser;
-
+
+ protected int info; // added
public boolean state;
+
/* Added */
protected Token first, last;
@@ -45,33 +47,6 @@
last = parser.getToken(0); // added
}
- public boolean evaluate(Context context)
- {
- return false;
- }
-
- public Object value(Context context)
- {
- return null;
- }
-
- public void process(Node node, Context context, ParserVisitor visitor)
- {
- }
-
- public Object invoke(Object o, Context context)
- { return null; }
-
- public void render(Context context, Writer writer)
- throws IOException
- {
- }
-
- public int getType()
- {
- return id;
- }
-
public void setFirstToken(Token t)
{
this.first = first;
@@ -110,15 +85,6 @@
children[i] = n;
}
- // Added by jvz.
- public void jjtRemoveChild(int i)
- {
- Node c[] = new Node[children.length - 1];
- System.arraycopy(children, 0, c, 0, i - 1);
- System.arraycopy(children, i + 1, c, i, c.length - i);
- children = c;
- }
-
public Node jjtGetChild(int i)
{
return children[i];
@@ -181,5 +147,55 @@
}
}
}
+
+ // All additional methods
+
+ public Object init(Context context, Object data) throws Exception
+ {
+ int i, k = jjtGetNumChildren();
+
+ for (i = 0; i < k; i++)
+ jjtGetChild(i).init(context, data);
+
+ return data;
+ }
+
+ public boolean evaluate(Context context)
+ {
+ return false;
+ }
+
+ public Object value(Context context)
+ {
+ return null;
+ }
+
+ public Object invoke(Object o, Context context)
+ { return null; }
+
+ public void render(Context context, Writer writer)
+ throws IOException
+ {
+ }
+
+ public Object execute(Object o, Context context)
+ {
+ return null;
+ }
+
+ public int getType()
+ {
+ return id;
+ }
+
+ public void setInfo(int info)
+ {
+ this.info = info;
+ }
+
+ public int getInfo()
+ {
+ return info;
+ }
}