Author: remy.maucherat(a)jboss.com
Date: 2008-05-21 07:51:36 -0400 (Wed, 21 May 2008)
New Revision: 633
Modified:
trunk/java/org/apache/el/parser/AstAnd.java
trunk/java/org/apache/el/parser/AstBracketSuffix.java
trunk/java/org/apache/el/parser/AstChoice.java
trunk/java/org/apache/el/parser/AstCompositeExpression.java
trunk/java/org/apache/el/parser/AstDeferredExpression.java
trunk/java/org/apache/el/parser/AstDiv.java
trunk/java/org/apache/el/parser/AstDotSuffix.java
trunk/java/org/apache/el/parser/AstDynamicExpression.java
trunk/java/org/apache/el/parser/AstEmpty.java
trunk/java/org/apache/el/parser/AstEqual.java
trunk/java/org/apache/el/parser/AstFalse.java
trunk/java/org/apache/el/parser/AstFloatingPoint.java
trunk/java/org/apache/el/parser/AstFunction.java
trunk/java/org/apache/el/parser/AstGreaterThan.java
trunk/java/org/apache/el/parser/AstGreaterThanEqual.java
trunk/java/org/apache/el/parser/AstIdentifier.java
trunk/java/org/apache/el/parser/AstInteger.java
trunk/java/org/apache/el/parser/AstLessThan.java
trunk/java/org/apache/el/parser/AstLessThanEqual.java
trunk/java/org/apache/el/parser/AstLiteralExpression.java
trunk/java/org/apache/el/parser/AstMinus.java
trunk/java/org/apache/el/parser/AstMod.java
trunk/java/org/apache/el/parser/AstMult.java
trunk/java/org/apache/el/parser/AstNegative.java
trunk/java/org/apache/el/parser/AstNot.java
trunk/java/org/apache/el/parser/AstNotEqual.java
trunk/java/org/apache/el/parser/AstNull.java
trunk/java/org/apache/el/parser/AstOr.java
trunk/java/org/apache/el/parser/AstPlus.java
trunk/java/org/apache/el/parser/AstString.java
trunk/java/org/apache/el/parser/AstTrue.java
trunk/java/org/apache/el/parser/AstValue.java
trunk/java/org/apache/el/parser/ELParser.html
trunk/java/org/apache/el/parser/ELParser.java
trunk/java/org/apache/el/parser/ELParser.jjt
trunk/java/org/apache/el/parser/ELParserConstants.java
trunk/java/org/apache/el/parser/ELParserTokenManager.java
trunk/java/org/apache/el/parser/ELParserTreeConstants.java
trunk/java/org/apache/el/parser/JJTELParserState.java
trunk/java/org/apache/el/parser/ParseException.java
trunk/java/org/apache/el/parser/SimpleCharStream.java
trunk/java/org/apache/el/parser/SimpleNode.java
trunk/java/org/apache/el/parser/Token.java
trunk/java/org/apache/el/parser/TokenMgrError.java
trunk/java/org/apache/tomcat/util/net/AprEndpoint.java
trunk/java/org/apache/tomcat/util/net/jsse/JSSESocketFactory.java
trunk/webapps/docs/changelog.xml
trunk/webapps/docs/config/http.xml
Log:
- Sync with Tomcat's current EL parser.
- Sendfile fix.
- Port Tomcat fix to allow specifying keystore providers.
Modified: trunk/java/org/apache/el/parser/AstAnd.java
===================================================================
--- trunk/java/org/apache/el/parser/AstAnd.java 2008-05-21 07:36:03 UTC (rev 632)
+++ trunk/java/org/apache/el/parser/AstAnd.java 2008-05-21 11:51:36 UTC (rev 633)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *
http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
/* Generated By:JJTree: Do not edit this line. AstAnd.java */
package org.apache.el.parser;
Modified: trunk/java/org/apache/el/parser/AstBracketSuffix.java
===================================================================
--- trunk/java/org/apache/el/parser/AstBracketSuffix.java 2008-05-21 07:36:03 UTC (rev
632)
+++ trunk/java/org/apache/el/parser/AstBracketSuffix.java 2008-05-21 11:51:36 UTC (rev
633)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *
http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
/* Generated By:JJTree: Do not edit this line. AstBracketSuffix.java */
package org.apache.el.parser;
Modified: trunk/java/org/apache/el/parser/AstChoice.java
===================================================================
--- trunk/java/org/apache/el/parser/AstChoice.java 2008-05-21 07:36:03 UTC (rev 632)
+++ trunk/java/org/apache/el/parser/AstChoice.java 2008-05-21 11:51:36 UTC (rev 633)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *
http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
/* Generated By:JJTree: Do not edit this line. AstChoice.java */
package org.apache.el.parser;
Modified: trunk/java/org/apache/el/parser/AstCompositeExpression.java
===================================================================
--- trunk/java/org/apache/el/parser/AstCompositeExpression.java 2008-05-21 07:36:03 UTC
(rev 632)
+++ trunk/java/org/apache/el/parser/AstCompositeExpression.java 2008-05-21 11:51:36 UTC
(rev 633)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *
http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
/* Generated By:JJTree: Do not edit this line. AstCompositeExpression.java */
package org.apache.el.parser;
Modified: trunk/java/org/apache/el/parser/AstDeferredExpression.java
===================================================================
--- trunk/java/org/apache/el/parser/AstDeferredExpression.java 2008-05-21 07:36:03 UTC
(rev 632)
+++ trunk/java/org/apache/el/parser/AstDeferredExpression.java 2008-05-21 11:51:36 UTC
(rev 633)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *
http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
/* Generated By:JJTree: Do not edit this line. AstDeferredExpression.java */
package org.apache.el.parser;
Modified: trunk/java/org/apache/el/parser/AstDiv.java
===================================================================
--- trunk/java/org/apache/el/parser/AstDiv.java 2008-05-21 07:36:03 UTC (rev 632)
+++ trunk/java/org/apache/el/parser/AstDiv.java 2008-05-21 11:51:36 UTC (rev 633)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *
http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
/* Generated By:JJTree: Do not edit this line. AstDiv.java */
package org.apache.el.parser;
Modified: trunk/java/org/apache/el/parser/AstDotSuffix.java
===================================================================
--- trunk/java/org/apache/el/parser/AstDotSuffix.java 2008-05-21 07:36:03 UTC (rev 632)
+++ trunk/java/org/apache/el/parser/AstDotSuffix.java 2008-05-21 11:51:36 UTC (rev 633)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *
http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
/* Generated By:JJTree: Do not edit this line. AstDotSuffix.java */
package org.apache.el.parser;
Modified: trunk/java/org/apache/el/parser/AstDynamicExpression.java
===================================================================
--- trunk/java/org/apache/el/parser/AstDynamicExpression.java 2008-05-21 07:36:03 UTC (rev
632)
+++ trunk/java/org/apache/el/parser/AstDynamicExpression.java 2008-05-21 11:51:36 UTC (rev
633)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *
http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
/* Generated By:JJTree: Do not edit this line. AstDynamicExpression.java */
package org.apache.el.parser;
Modified: trunk/java/org/apache/el/parser/AstEmpty.java
===================================================================
--- trunk/java/org/apache/el/parser/AstEmpty.java 2008-05-21 07:36:03 UTC (rev 632)
+++ trunk/java/org/apache/el/parser/AstEmpty.java 2008-05-21 11:51:36 UTC (rev 633)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *
http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
/* Generated By:JJTree: Do not edit this line. AstEmpty.java */
package org.apache.el.parser;
Modified: trunk/java/org/apache/el/parser/AstEqual.java
===================================================================
--- trunk/java/org/apache/el/parser/AstEqual.java 2008-05-21 07:36:03 UTC (rev 632)
+++ trunk/java/org/apache/el/parser/AstEqual.java 2008-05-21 11:51:36 UTC (rev 633)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *
http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
/* Generated By:JJTree: Do not edit this line. AstEqual.java */
package org.apache.el.parser;
Modified: trunk/java/org/apache/el/parser/AstFalse.java
===================================================================
--- trunk/java/org/apache/el/parser/AstFalse.java 2008-05-21 07:36:03 UTC (rev 632)
+++ trunk/java/org/apache/el/parser/AstFalse.java 2008-05-21 11:51:36 UTC (rev 633)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *
http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
/* Generated By:JJTree: Do not edit this line. AstFalse.java */
package org.apache.el.parser;
Modified: trunk/java/org/apache/el/parser/AstFloatingPoint.java
===================================================================
--- trunk/java/org/apache/el/parser/AstFloatingPoint.java 2008-05-21 07:36:03 UTC (rev
632)
+++ trunk/java/org/apache/el/parser/AstFloatingPoint.java 2008-05-21 11:51:36 UTC (rev
633)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *
http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
/* Generated By:JJTree: Do not edit this line. AstFloatingPoint.java */
package org.apache.el.parser;
Modified: trunk/java/org/apache/el/parser/AstFunction.java
===================================================================
--- trunk/java/org/apache/el/parser/AstFunction.java 2008-05-21 07:36:03 UTC (rev 632)
+++ trunk/java/org/apache/el/parser/AstFunction.java 2008-05-21 11:51:36 UTC (rev 633)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *
http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
/* Generated By:JJTree: Do not edit this line. AstFunction.java */
package org.apache.el.parser;
Modified: trunk/java/org/apache/el/parser/AstGreaterThan.java
===================================================================
--- trunk/java/org/apache/el/parser/AstGreaterThan.java 2008-05-21 07:36:03 UTC (rev 632)
+++ trunk/java/org/apache/el/parser/AstGreaterThan.java 2008-05-21 11:51:36 UTC (rev 633)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *
http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
/* Generated By:JJTree: Do not edit this line. AstGreaterThan.java */
package org.apache.el.parser;
Modified: trunk/java/org/apache/el/parser/AstGreaterThanEqual.java
===================================================================
--- trunk/java/org/apache/el/parser/AstGreaterThanEqual.java 2008-05-21 07:36:03 UTC (rev
632)
+++ trunk/java/org/apache/el/parser/AstGreaterThanEqual.java 2008-05-21 11:51:36 UTC (rev
633)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *
http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
/* Generated By:JJTree: Do not edit this line. AstGreaterThanEqual.java */
package org.apache.el.parser;
Modified: trunk/java/org/apache/el/parser/AstIdentifier.java
===================================================================
--- trunk/java/org/apache/el/parser/AstIdentifier.java 2008-05-21 07:36:03 UTC (rev 632)
+++ trunk/java/org/apache/el/parser/AstIdentifier.java 2008-05-21 11:51:36 UTC (rev 633)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *
http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
/* Generated By:JJTree: Do not edit this line. AstIdentifier.java */
package org.apache.el.parser;
Modified: trunk/java/org/apache/el/parser/AstInteger.java
===================================================================
--- trunk/java/org/apache/el/parser/AstInteger.java 2008-05-21 07:36:03 UTC (rev 632)
+++ trunk/java/org/apache/el/parser/AstInteger.java 2008-05-21 11:51:36 UTC (rev 633)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *
http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
/* Generated By:JJTree: Do not edit this line. AstInteger.java */
package org.apache.el.parser;
Modified: trunk/java/org/apache/el/parser/AstLessThan.java
===================================================================
--- trunk/java/org/apache/el/parser/AstLessThan.java 2008-05-21 07:36:03 UTC (rev 632)
+++ trunk/java/org/apache/el/parser/AstLessThan.java 2008-05-21 11:51:36 UTC (rev 633)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *
http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
/* Generated By:JJTree: Do not edit this line. AstLessThan.java */
package org.apache.el.parser;
Modified: trunk/java/org/apache/el/parser/AstLessThanEqual.java
===================================================================
--- trunk/java/org/apache/el/parser/AstLessThanEqual.java 2008-05-21 07:36:03 UTC (rev
632)
+++ trunk/java/org/apache/el/parser/AstLessThanEqual.java 2008-05-21 11:51:36 UTC (rev
633)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *
http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
/* Generated By:JJTree: Do not edit this line. AstLessThanEqual.java */
package org.apache.el.parser;
Modified: trunk/java/org/apache/el/parser/AstLiteralExpression.java
===================================================================
--- trunk/java/org/apache/el/parser/AstLiteralExpression.java 2008-05-21 07:36:03 UTC (rev
632)
+++ trunk/java/org/apache/el/parser/AstLiteralExpression.java 2008-05-21 11:51:36 UTC (rev
633)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *
http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
/* Generated By:JJTree: Do not edit this line. AstLiteralExpression.java */
package org.apache.el.parser;
Modified: trunk/java/org/apache/el/parser/AstMinus.java
===================================================================
--- trunk/java/org/apache/el/parser/AstMinus.java 2008-05-21 07:36:03 UTC (rev 632)
+++ trunk/java/org/apache/el/parser/AstMinus.java 2008-05-21 11:51:36 UTC (rev 633)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *
http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
/* Generated By:JJTree: Do not edit this line. AstMinus.java */
package org.apache.el.parser;
Modified: trunk/java/org/apache/el/parser/AstMod.java
===================================================================
--- trunk/java/org/apache/el/parser/AstMod.java 2008-05-21 07:36:03 UTC (rev 632)
+++ trunk/java/org/apache/el/parser/AstMod.java 2008-05-21 11:51:36 UTC (rev 633)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *
http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
/* Generated By:JJTree: Do not edit this line. AstMod.java */
package org.apache.el.parser;
Modified: trunk/java/org/apache/el/parser/AstMult.java
===================================================================
--- trunk/java/org/apache/el/parser/AstMult.java 2008-05-21 07:36:03 UTC (rev 632)
+++ trunk/java/org/apache/el/parser/AstMult.java 2008-05-21 11:51:36 UTC (rev 633)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *
http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
/* Generated By:JJTree: Do not edit this line. AstMult.java */
package org.apache.el.parser;
Modified: trunk/java/org/apache/el/parser/AstNegative.java
===================================================================
--- trunk/java/org/apache/el/parser/AstNegative.java 2008-05-21 07:36:03 UTC (rev 632)
+++ trunk/java/org/apache/el/parser/AstNegative.java 2008-05-21 11:51:36 UTC (rev 633)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *
http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
/* Generated By:JJTree: Do not edit this line. AstNegative.java */
package org.apache.el.parser;
Modified: trunk/java/org/apache/el/parser/AstNot.java
===================================================================
--- trunk/java/org/apache/el/parser/AstNot.java 2008-05-21 07:36:03 UTC (rev 632)
+++ trunk/java/org/apache/el/parser/AstNot.java 2008-05-21 11:51:36 UTC (rev 633)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *
http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
/* Generated By:JJTree: Do not edit this line. AstNot.java */
package org.apache.el.parser;
Modified: trunk/java/org/apache/el/parser/AstNotEqual.java
===================================================================
--- trunk/java/org/apache/el/parser/AstNotEqual.java 2008-05-21 07:36:03 UTC (rev 632)
+++ trunk/java/org/apache/el/parser/AstNotEqual.java 2008-05-21 11:51:36 UTC (rev 633)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *
http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
/* Generated By:JJTree: Do not edit this line. AstNotEqual.java */
package org.apache.el.parser;
Modified: trunk/java/org/apache/el/parser/AstNull.java
===================================================================
--- trunk/java/org/apache/el/parser/AstNull.java 2008-05-21 07:36:03 UTC (rev 632)
+++ trunk/java/org/apache/el/parser/AstNull.java 2008-05-21 11:51:36 UTC (rev 633)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *
http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
/* Generated By:JJTree: Do not edit this line. AstNull.java */
package org.apache.el.parser;
Modified: trunk/java/org/apache/el/parser/AstOr.java
===================================================================
--- trunk/java/org/apache/el/parser/AstOr.java 2008-05-21 07:36:03 UTC (rev 632)
+++ trunk/java/org/apache/el/parser/AstOr.java 2008-05-21 11:51:36 UTC (rev 633)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *
http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
/* Generated By:JJTree: Do not edit this line. AstOr.java */
package org.apache.el.parser;
Modified: trunk/java/org/apache/el/parser/AstPlus.java
===================================================================
--- trunk/java/org/apache/el/parser/AstPlus.java 2008-05-21 07:36:03 UTC (rev 632)
+++ trunk/java/org/apache/el/parser/AstPlus.java 2008-05-21 11:51:36 UTC (rev 633)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *
http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
/* Generated By:JJTree: Do not edit this line. AstPlus.java */
package org.apache.el.parser;
Modified: trunk/java/org/apache/el/parser/AstString.java
===================================================================
--- trunk/java/org/apache/el/parser/AstString.java 2008-05-21 07:36:03 UTC (rev 632)
+++ trunk/java/org/apache/el/parser/AstString.java 2008-05-21 11:51:36 UTC (rev 633)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *
http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
/* Generated By:JJTree: Do not edit this line. AstString.java */
package org.apache.el.parser;
Modified: trunk/java/org/apache/el/parser/AstTrue.java
===================================================================
--- trunk/java/org/apache/el/parser/AstTrue.java 2008-05-21 07:36:03 UTC (rev 632)
+++ trunk/java/org/apache/el/parser/AstTrue.java 2008-05-21 11:51:36 UTC (rev 633)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *
http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
/* Generated By:JJTree: Do not edit this line. AstTrue.java */
package org.apache.el.parser;
Modified: trunk/java/org/apache/el/parser/AstValue.java
===================================================================
--- trunk/java/org/apache/el/parser/AstValue.java 2008-05-21 07:36:03 UTC (rev 632)
+++ trunk/java/org/apache/el/parser/AstValue.java 2008-05-21 11:51:36 UTC (rev 633)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *
http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
/* Generated By:JJTree: Do not edit this line. AstValue.java */
package org.apache.el.parser;
@@ -114,9 +130,9 @@
ctx.setPropertyResolved(false);
ELResolver resolver = ctx.getELResolver();
resolver.setValue(ctx, t.base, t.property,
- // coerce to the expected type
- ELSupport.coerceToType(value,
- resolver.getType(ctx, t.base, t.property)));
+ // coerce to the expected type
+ ELSupport.coerceToType(value,
+ resolver.getType(ctx, t.base, t.property)));
}
public MethodInfo getMethodInfo(EvaluationContext ctx, Class[] paramTypes)
Modified: trunk/java/org/apache/el/parser/ELParser.html
===================================================================
--- trunk/java/org/apache/el/parser/ELParser.html 2008-05-21 07:36:03 UTC (rev 632)
+++ trunk/java/org/apache/el/parser/ELParser.html 2008-05-21 11:51:36 UTC (rev 633)
@@ -1,3 +1,19 @@
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+
http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
@@ -35,7 +51,7 @@
<TR>
<TD ALIGN=RIGHT VALIGN=BASELINE><A
NAME="prod6">Choice</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod7">Or</A> (
<QUESTIONMARK> <A HREF="#prod7">Or</A>
<COLON> <A HREF="#prod6">Choice</A> )*</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod7">Or</A> (
<QUESTIONMARK> <A HREF="#prod6">Choice</A>
<COLON> <A HREF="#prod6">Choice</A> )*</TD>
</TR>
<TR>
<TD ALIGN=RIGHT VALIGN=BASELINE><A
NAME="prod7">Or</A></TD>
Modified: trunk/java/org/apache/el/parser/ELParser.java
===================================================================
--- trunk/java/org/apache/el/parser/ELParser.java 2008-05-21 07:36:03 UTC (rev 632)
+++ trunk/java/org/apache/el/parser/ELParser.java 2008-05-21 11:51:36 UTC (rev 633)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *
http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
/* Generated By:JJTree&JavaCC: Do not edit this line. ELParser.java */
package org.apache.el.parser;
import java.io.StringReader;
@@ -11,15 +27,6 @@
throw new ELException(pe.getMessage());
}
}
-
- public static void main(String[] argv) throws Exception {
- String[] str = { "${foo()}", "${fn.fn:foo() ? a : b}",
"${fn:foo() ? (fn_af.f:fd() ? a : b) : b}", "${a.b.c ? a : b}" };
- for (int i = 0; i < str.length; i++) {
- SimpleNode sn = (SimpleNode) ELParser.parse(str[i]);
- System.out.println("====\n" + str[i]);
- sn.dump("\t");
- }
- }
/*
* CompositeExpression
@@ -200,31 +207,31 @@
break label_2;
}
jj_consume_token(QUESTIONMARK);
- Or();
+ Choice();
jj_consume_token(COLON);
- AstChoice jjtn001 = new
AstChoice(JJTCHOICE);
- boolean jjtc001 = true;
- jjtree.openNodeScope(jjtn001);
+ AstChoice jjtn001 = new
AstChoice(JJTCHOICE);
+ boolean jjtc001 = true;
+ jjtree.openNodeScope(jjtn001);
try {
Choice();
} catch (Throwable jjte001) {
- if (jjtc001) {
- jjtree.clearNodeScope(jjtn001);
- jjtc001 = false;
- } else {
- jjtree.popNode();
- }
- if (jjte001 instanceof RuntimeException) {
- {if (true) throw
(RuntimeException)jjte001;}
- }
- if (jjte001 instanceof ParseException) {
- {if (true) throw (ParseException)jjte001;}
- }
- {if (true) throw (Error)jjte001;}
+ if (jjtc001) {
+ jjtree.clearNodeScope(jjtn001);
+ jjtc001 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte001 instanceof RuntimeException)
{
+ {if (true) throw
(RuntimeException)jjte001;}
+ }
+ if (jjte001 instanceof ParseException) {
+ {if (true) throw
(ParseException)jjte001;}
+ }
+ {if (true) throw (Error)jjte001;}
} finally {
- if (jjtc001) {
- jjtree.closeNodeScope(jjtn001, 3);
- }
+ if (jjtc001) {
+ jjtree.closeNodeScope(jjtn001, 3);
+ }
}
}
}
Modified: trunk/java/org/apache/el/parser/ELParser.jjt
===================================================================
--- trunk/java/org/apache/el/parser/ELParser.jjt 2008-05-21 07:36:03 UTC (rev 632)
+++ trunk/java/org/apache/el/parser/ELParser.jjt 2008-05-21 11:51:36 UTC (rev 633)
@@ -1,471 +1,471 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- *
http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- Author: Jacob Hookom
- Email: jacob at
hookom.net
-*/
-
-/* == Option Declaration == */
-options
-{
- STATIC=false;
- NODE_PREFIX="Ast";
- VISITOR_EXCEPTION="javax.el.ELException";
- VISITOR=false;
- MULTI=true;
- NODE_DEFAULT_VOID=true;
- JAVA_UNICODE_ESCAPE=false;
- UNICODE_INPUT=true;
- BUILD_NODE_FILES=true;
-}
-
-/* == Parser Declaration == */
-PARSER_BEGIN( ELParser )
-package org.apache.el.parser;
-import java.io.StringReader;
-import javax.el.ELException;
-public class ELParser
-{
- public static Node parse(String ref) throws ELException
- {
- try {
- return (new ELParser(new StringReader(ref))).CompositeExpression();
- } catch (ParseException pe) {
- throw new ELException(pe.getMessage());
- }
- }
-}
-PARSER_END( ELParser )
-
-/*
- * CompositeExpression
- * Allow most flexible parsing, restrict by examining
- * type of returned node
- */
-AstCompositeExpression CompositeExpression() #CompositeExpression : {}
-{
- (DeferredExpression() | DynamicExpression() | LiteralExpression())* <EOF> { return
jjtThis; }
-}
-
-/*
- * LiteralExpression
- * Non-EL Expression blocks
- */
-void LiteralExpression() #LiteralExpression : { Token t = null; }
-{
- t=<LITERAL_EXPRESSION> { jjtThis.setImage(t.image); }
-}
-
-/*
- * DeferredExpression
- * #{..} Expressions
- */
-void DeferredExpression() #DeferredExpression : {}
-{
- <START_DEFERRED_EXPRESSION> Expression() <END_EXPRESSION>
-}
-
-/*
- * DynamicExpression
- * ${..} Expressions
- */
-void DynamicExpression() #DynamicExpression : {}
-{
- <START_DYNAMIC_EXPRESSION> Expression() <END_EXPRESSION>
-}
-
-/*
- * Expression
- * EL Expression Language Root, goes to Choice
- */
-void Expression() : {}
-{
- Choice()
-}
-
-/*
- * Choice
- * For Choice markup a ? b : c, then Or
- */
-void Choice() : {}
-{
- Or() (<QUESTIONMARK> Or() <COLON> Choice() #Choice(3))*
-}
-
-/*
- * Or
- * For 'or' '||', then And
- */
-void Or() : {}
-{
- And() ((<OR0>|<OR1>) And() #Or(2))*
-}
-
-/*
- * And
- * For 'and' '&&', then Equality
- */
-void And() : {}
-{
- Equality() ((<AND0>|<AND1>) Equality() #And(2))*
-}
-
-/*
- * Equality
- * For '==' 'eq' '!=' 'ne', then Compare
- */
-void Equality() : {}
-{
- Compare()
- (
- ((<EQ0>|<EQ1>) Compare() #Equal(2))
- |
- ((<NE0>|<NE1>) Compare() #NotEqual(2))
- )*
-}
-
-/*
- * Compare
- * For a bunch of them, then Math
- */
-void Compare() : {}
-{
- Math()
- (
- ((<LT0>|<LT1>) Math() #LessThan(2))
- |
- ((<GT0>|<GT1>) Math() #GreaterThan(2))
- |
- ((<LE0>|<LE1>) Math() #LessThanEqual(2))
- |
- ((<GE0>|<GE1>) Math() #GreaterThanEqual(2))
- )*
-}
-
-/*
- * Math
- * For '+' '-', then Multiplication
- */
-void Math() : {}
-{
- Multiplication()
- (
- (<PLUS> Multiplication() #Plus(2))
- |
- (<MINUS> Multiplication() #Minus(2))
- )*
-}
-
-/*
- * Multiplication
- * For a bunch of them, then Unary
- */
-void Multiplication() : {}
-{
- Unary()
- (
- (<MULT> Unary() #Mult(2))
- |
- ((<DIV0>|<DIV1>) Unary() #Div(2))
- |
- ((<MOD0>|<MOD1>) Unary() #Mod(2))
- )*
-}
-
-/*
- * Unary
- * For '-' '!' 'not' 'empty', then Value
- */
-void Unary() : {}
-{
- <MINUS> Unary() #Negative
- |
- (<NOT0>|<NOT1>) Unary() #Not
- |
- <EMPTY> Unary() #Empty
- |
- Value()
-}
-
-/*
- * Value
- * Defines Prefix plus zero or more Suffixes
- */
-void Value() : {}
-{
- (ValuePrefix() (ValueSuffix())*) #Value(>1)
-}
-
-/*
- * ValuePrefix
- * For Literals, Variables, and Functions
- */
-void ValuePrefix() : {}
-{
- Literal()
- | NonLiteral()
-}
-
-/*
- * ValueSuffix
- * Either dot or bracket notation
- */
-void ValueSuffix() : {}
-{
- DotSuffix() | BracketSuffix()
-}
-
-/*
- * DotSuffix
- * Dot Property
- */
-void DotSuffix() #DotSuffix : { Token t = null; }
-{
- <DOT> t=<IDENTIFIER> { jjtThis.setImage(t.image); }
-}
-
-/*
- * BracketSuffix
- * Sub Expression Suffix
- */
-void BracketSuffix() #BracketSuffix : {}
-{
- <LBRACK> Expression() <RBRACK>
-}
-
-/*
- * NonLiteral
- * For Grouped Operations, Identifiers, and Functions
- */
-void NonLiteral() : {}
-{
- <LPAREN> Expression() <RPAREN>
- | LOOKAHEAD(3) Function()
- | Identifier()
-}
-
-/*
- * Identifier
- * Java Language Identifier
- */
-void Identifier() #Identifier : { Token t = null; }
-{
- t=<IDENTIFIER> { jjtThis.setImage(t.image); }
-}
-
-/*
- * Function
- * Namespace:Name(a,b,c)
- */
-void Function() #Function :
-{
- Token t0 = null;
- Token t1 = null;
-}
-{
- (t0=<NAMESPACE>)? t1=<IDENTIFIER>
- {
- if (t0 != null) {
- jjtThis.setPrefix(t0.image.substring(0, t0.image.length() - 1));
- jjtThis.setLocalName(t1.image);
- } else {
- jjtThis.setLocalName(t1.image);
- }
- }
- <LPAREN> (Expression() (<COMMA> Expression())*)? <RPAREN>
-}
-
-/*
- * Literal
- * Reserved Keywords
- */
-void Literal() : {}
-{
- Boolean()
- | FloatingPoint()
- | Integer()
- | String()
- | Null()
-}
-
-/*
- * Boolean
- * For 'true' 'false'
- */
-void Boolean() : {}
-{
- <TRUE> #True
- | <FALSE> #False
-}
-
-/*
- * FloatinPoint
- * For Decimal and Floating Point Literals
- */
-void FloatingPoint() #FloatingPoint : { Token t = null; }
-{
- t=<FLOATING_POINT_LITERAL> { jjtThis.setImage(t.image); }
-}
-
-/*
- * Integer
- * For Simple Numeric Literals
- */
-void Integer() #Integer : { Token t = null; }
-{
- t=<INTEGER_LITERAL> { jjtThis.setImage(t.image); }
-}
-
-/*
- * String
- * For Quoted Literals
- */
-void String() #String : { Token t = null; }
-{
- t=<STRING_LITERAL> { jjtThis.setImage(t.image); }
-}
-
-/*
- * Null
- * For 'null'
- */
-void Null() #Null : {}
-{
- <NULL>
-}
-
-
-/* ====================================================================================
*/
-<DEFAULT> TOKEN :
-{
- < LITERAL_EXPRESSION:
- ((~["\\", "$", "#"])
- | ("\\" ("\\" | "$" | "#"))
- | ("$" ~["{", "$"])
- | ("#" ~["{", "#"])
- )+
- | "$"
- | "#"
- >
-|
- < START_DYNAMIC_EXPRESSION: "${" > : IN_EXPRESSION
-|
- < START_DEFERRED_EXPRESSION: "#{" > : IN_EXPRESSION
-}
-
-<DEFAULT> SKIP : { "\\" }
-
-<IN_EXPRESSION> SKIP : { " " | "\t" | "\n" |
"\r" }
-
-<IN_EXPRESSION> TOKEN :
-{
- < INTEGER_LITERAL: ["0"-"9"] (["0"-"9"])*
>
-| < FLOATING_POINT_LITERAL: (["0"-"9"])+ "."
(["0"-"9"])* (<EXPONENT>)?
- | "." (["0"-"9"])+ (<EXPONENT>)?
- | (["0"-"9"])+ <EXPONENT>
- >
-| < #EXPONENT: ["e","E"] (["+","-"])?
(["0"-"9"])+ >
-| < STRING_LITERAL: ("\"" ((~["\"","\\"])
- | ("\\" ( ["\\","\""] )))* "\"")
- | ("\'" ((~["\'","\\"])
- | ("\\" ( ["\\","\'"] )))* "\'")
- >
-| < BADLY_ESCAPED_STRING_LITERAL: ("\""
(~["\"","\\"])* ("\\" (
~["\\","\""] )))
- | ("\'" (~["\'","\\"])* ("\\" (
~["\\","\'"] )))
- >
-| < TRUE : "true" >
-| < FALSE : "false" >
-| < NULL : "null" >
-| < END_EXPRESSION : "}" > : DEFAULT
-| < DOT : "." >
-| < LPAREN : "(" >
-| < RPAREN : ")" >
-| < LBRACK : "[" >
-| < RBRACK : "]" >
-| < COLON : ":" >
-| < COMMA : "," >
-| < GT0 : ">" >
-| < GT1 : "gt" >
-| < LT0 : "<" >
-| < LT1 : "lt" >
-| < GE0 : ">=" >
-| < GE1 : "ge" >
-| < LE0 : "<=" >
-| < LE1 : "le" >
-| < EQ0 : "==" >
-| < EQ1 : "eq" >
-| < NE0 : "!=" >
-| < NE1 : "ne" >
-| < NOT0 : "!" >
-| < NOT1 : "not" >
-| < AND0 : "&&" >
-| < AND1 : "and" >
-| < OR0 : "||" >
-| < OR1 : "or" >
-| < EMPTY : "empty" >
-| < INSTANCEOF : "instanceof" >
-| < MULT : "*" >
-| < PLUS : "+" >
-| < MINUS : "-" >
-| < QUESTIONMARK : "?" >
-| < DIV0 : "/" >
-| < DIV1 : "div" >
-| < MOD0 : "%" >
-| < MOD1 : "mod" >
-| < IDENTIFIER : (<LETTER>|<IMPL_OBJ_START>)
(<LETTER>|<DIGIT>)* >
-| < NAMESPACE : (<IDENTIFIER> (<IDENTIFIER>|<MINUS>|<DOT>)*
<COLON>) >
-| < FUNCTIONSUFFIX : (<IDENTIFIER>) >
-| < #IMPL_OBJ_START: "#" >
-| < #LETTER:
- [
- "\u0024",
- "\u0041"-"\u005a",
- "\u005f",
- "\u0061"-"\u007a",
- "\u00c0"-"\u00d6",
- "\u00d8"-"\u00f6",
- "\u00f8"-"\u00ff",
- "\u0100"-"\u1fff",
- "\u3040"-"\u318f",
- "\u3300"-"\u337f",
- "\u3400"-"\u3d2d",
- "\u4e00"-"\u9fff",
- "\uf900"-"\ufaff"
- ]
- >
-| < #DIGIT:
- [
- "\u0030"-"\u0039",
- "\u0660"-"\u0669",
- "\u06f0"-"\u06f9",
- "\u0966"-"\u096f",
- "\u09e6"-"\u09ef",
- "\u0a66"-"\u0a6f",
- "\u0ae6"-"\u0aef",
- "\u0b66"-"\u0b6f",
- "\u0be7"-"\u0bef",
- "\u0c66"-"\u0c6f",
- "\u0ce6"-"\u0cef",
- "\u0d66"-"\u0d6f",
- "\u0e50"-"\u0e59",
- "\u0ed0"-"\u0ed9",
- "\u1040"-"\u1049"
- ]
- >
-| < ILLEGAL_CHARACTER: (~[]) >
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *
http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ Author: Jacob Hookom
+ Email: jacob at
hookom.net
+*/
+
+/* == Option Declaration == */
+options
+{
+ STATIC=false;
+ NODE_PREFIX="Ast";
+ VISITOR_EXCEPTION="javax.el.ELException";
+ VISITOR=false;
+ MULTI=true;
+ NODE_DEFAULT_VOID=true;
+ JAVA_UNICODE_ESCAPE=false;
+ UNICODE_INPUT=true;
+ BUILD_NODE_FILES=true;
+}
+
+/* == Parser Declaration == */
+PARSER_BEGIN( ELParser )
+package org.apache.el.parser;
+import java.io.StringReader;
+import javax.el.ELException;
+public class ELParser
+{
+ public static Node parse(String ref) throws ELException
+ {
+ try {
+ return (new ELParser(new StringReader(ref))).CompositeExpression();
+ } catch (ParseException pe) {
+ throw new ELException(pe.getMessage());
+ }
+ }
+}
+PARSER_END( ELParser )
+
+/*
+ * CompositeExpression
+ * Allow most flexible parsing, restrict by examining
+ * type of returned node
+ */
+AstCompositeExpression CompositeExpression() #CompositeExpression : {}
+{
+ (DeferredExpression() | DynamicExpression() | LiteralExpression())* <EOF> { return
jjtThis; }
+}
+
+/*
+ * LiteralExpression
+ * Non-EL Expression blocks
+ */
+void LiteralExpression() #LiteralExpression : { Token t = null; }
+{
+ t=<LITERAL_EXPRESSION> { jjtThis.setImage(t.image); }
+}
+
+/*
+ * DeferredExpression
+ * #{..} Expressions
+ */
+void DeferredExpression() #DeferredExpression : {}
+{
+ <START_DEFERRED_EXPRESSION> Expression() <END_EXPRESSION>
+}
+
+/*
+ * DynamicExpression
+ * ${..} Expressions
+ */
+void DynamicExpression() #DynamicExpression : {}
+{
+ <START_DYNAMIC_EXPRESSION> Expression() <END_EXPRESSION>
+}
+
+/*
+ * Expression
+ * EL Expression Language Root, goes to Choice
+ */
+void Expression() : {}
+{
+ Choice()
+}
+
+/*
+ * Choice
+ * For Choice markup a ? b : c, then Or
+ */
+void Choice() : {}
+{
+ Or() (<QUESTIONMARK> Choice() <COLON> Choice() #Choice(3))*
+}
+
+/*
+ * Or
+ * For 'or' '||', then And
+ */
+void Or() : {}
+{
+ And() ((<OR0>|<OR1>) And() #Or(2))*
+}
+
+/*
+ * And
+ * For 'and' '&&', then Equality
+ */
+void And() : {}
+{
+ Equality() ((<AND0>|<AND1>) Equality() #And(2))*
+}
+
+/*
+ * Equality
+ * For '==' 'eq' '!=' 'ne', then Compare
+ */
+void Equality() : {}
+{
+ Compare()
+ (
+ ((<EQ0>|<EQ1>) Compare() #Equal(2))
+ |
+ ((<NE0>|<NE1>) Compare() #NotEqual(2))
+ )*
+}
+
+/*
+ * Compare
+ * For a bunch of them, then Math
+ */
+void Compare() : {}
+{
+ Math()
+ (
+ ((<LT0>|<LT1>) Math() #LessThan(2))
+ |
+ ((<GT0>|<GT1>) Math() #GreaterThan(2))
+ |
+ ((<LE0>|<LE1>) Math() #LessThanEqual(2))
+ |
+ ((<GE0>|<GE1>) Math() #GreaterThanEqual(2))
+ )*
+}
+
+/*
+ * Math
+ * For '+' '-', then Multiplication
+ */
+void Math() : {}
+{
+ Multiplication()
+ (
+ (<PLUS> Multiplication() #Plus(2))
+ |
+ (<MINUS> Multiplication() #Minus(2))
+ )*
+}
+
+/*
+ * Multiplication
+ * For a bunch of them, then Unary
+ */
+void Multiplication() : {}
+{
+ Unary()
+ (
+ (<MULT> Unary() #Mult(2))
+ |
+ ((<DIV0>|<DIV1>) Unary() #Div(2))
+ |
+ ((<MOD0>|<MOD1>) Unary() #Mod(2))
+ )*
+}
+
+/*
+ * Unary
+ * For '-' '!' 'not' 'empty', then Value
+ */
+void Unary() : {}
+{
+ <MINUS> Unary() #Negative
+ |
+ (<NOT0>|<NOT1>) Unary() #Not
+ |
+ <EMPTY> Unary() #Empty
+ |
+ Value()
+}
+
+/*
+ * Value
+ * Defines Prefix plus zero or more Suffixes
+ */
+void Value() : {}
+{
+ (ValuePrefix() (ValueSuffix())*) #Value(>1)
+}
+
+/*
+ * ValuePrefix
+ * For Literals, Variables, and Functions
+ */
+void ValuePrefix() : {}
+{
+ Literal()
+ | NonLiteral()
+}
+
+/*
+ * ValueSuffix
+ * Either dot or bracket notation
+ */
+void ValueSuffix() : {}
+{
+ DotSuffix() | BracketSuffix()
+}
+
+/*
+ * DotSuffix
+ * Dot Property
+ */
+void DotSuffix() #DotSuffix : { Token t = null; }
+{
+ <DOT> t=<IDENTIFIER> { jjtThis.setImage(t.image); }
+}
+
+/*
+ * BracketSuffix
+ * Sub Expression Suffix
+ */
+void BracketSuffix() #BracketSuffix : {}
+{
+ <LBRACK> Expression() <RBRACK>
+}
+
+/*
+ * NonLiteral
+ * For Grouped Operations, Identifiers, and Functions
+ */
+void NonLiteral() : {}
+{
+ <LPAREN> Expression() <RPAREN>
+ | LOOKAHEAD(3) Function()
+ | Identifier()
+}
+
+/*
+ * Identifier
+ * Java Language Identifier
+ */
+void Identifier() #Identifier : { Token t = null; }
+{
+ t=<IDENTIFIER> { jjtThis.setImage(t.image); }
+}
+
+/*
+ * Function
+ * Namespace:Name(a,b,c)
+ */
+void Function() #Function :
+{
+ Token t0 = null;
+ Token t1 = null;
+}
+{
+ (t0=<NAMESPACE>)? t1=<IDENTIFIER>
+ {
+ if (t0 != null) {
+ jjtThis.setPrefix(t0.image.substring(0, t0.image.length() - 1));
+ jjtThis.setLocalName(t1.image);
+ } else {
+ jjtThis.setLocalName(t1.image);
+ }
+ }
+ <LPAREN> (Expression() (<COMMA> Expression())*)? <RPAREN>
+}
+
+/*
+ * Literal
+ * Reserved Keywords
+ */
+void Literal() : {}
+{
+ Boolean()
+ | FloatingPoint()
+ | Integer()
+ | String()
+ | Null()
+}
+
+/*
+ * Boolean
+ * For 'true' 'false'
+ */
+void Boolean() : {}
+{
+ <TRUE> #True
+ | <FALSE> #False
+}
+
+/*
+ * FloatinPoint
+ * For Decimal and Floating Point Literals
+ */
+void FloatingPoint() #FloatingPoint : { Token t = null; }
+{
+ t=<FLOATING_POINT_LITERAL> { jjtThis.setImage(t.image); }
+}
+
+/*
+ * Integer
+ * For Simple Numeric Literals
+ */
+void Integer() #Integer : { Token t = null; }
+{
+ t=<INTEGER_LITERAL> { jjtThis.setImage(t.image); }
+}
+
+/*
+ * String
+ * For Quoted Literals
+ */
+void String() #String : { Token t = null; }
+{
+ t=<STRING_LITERAL> { jjtThis.setImage(t.image); }
+}
+
+/*
+ * Null
+ * For 'null'
+ */
+void Null() #Null : {}
+{
+ <NULL>
+}
+
+
+/* ====================================================================================
*/
+<DEFAULT> TOKEN :
+{
+ < LITERAL_EXPRESSION:
+ ((~["\\", "$", "#"])
+ | ("\\" ("\\" | "$" | "#"))
+ | ("$" ~["{", "$"])
+ | ("#" ~["{", "#"])
+ )+
+ | "$"
+ | "#"
+ >
+|
+ < START_DYNAMIC_EXPRESSION: "${" > : IN_EXPRESSION
+|
+ < START_DEFERRED_EXPRESSION: "#{" > : IN_EXPRESSION
+}
+
+<DEFAULT> SKIP : { "\\" }
+
+<IN_EXPRESSION> SKIP : { " " | "\t" | "\n" |
"\r" }
+
+<IN_EXPRESSION> TOKEN :
+{
+ < INTEGER_LITERAL: ["0"-"9"] (["0"-"9"])*
>
+| < FLOATING_POINT_LITERAL: (["0"-"9"])+ "."
(["0"-"9"])* (<EXPONENT>)?
+ | "." (["0"-"9"])+ (<EXPONENT>)?
+ | (["0"-"9"])+ <EXPONENT>
+ >
+| < #EXPONENT: ["e","E"] (["+","-"])?
(["0"-"9"])+ >
+| < STRING_LITERAL: ("\"" ((~["\"","\\"])
+ | ("\\" ( ["\\","\""] )))* "\"")
+ | ("\'" ((~["\'","\\"])
+ | ("\\" ( ["\\","\'"] )))* "\'")
+ >
+| < BADLY_ESCAPED_STRING_LITERAL: ("\""
(~["\"","\\"])* ("\\" (
~["\\","\""] )))
+ | ("\'" (~["\'","\\"])* ("\\" (
~["\\","\'"] )))
+ >
+| < TRUE : "true" >
+| < FALSE : "false" >
+| < NULL : "null" >
+| < END_EXPRESSION : "}" > : DEFAULT
+| < DOT : "." >
+| < LPAREN : "(" >
+| < RPAREN : ")" >
+| < LBRACK : "[" >
+| < RBRACK : "]" >
+| < COLON : ":" >
+| < COMMA : "," >
+| < GT0 : ">" >
+| < GT1 : "gt" >
+| < LT0 : "<" >
+| < LT1 : "lt" >
+| < GE0 : ">=" >
+| < GE1 : "ge" >
+| < LE0 : "<=" >
+| < LE1 : "le" >
+| < EQ0 : "==" >
+| < EQ1 : "eq" >
+| < NE0 : "!=" >
+| < NE1 : "ne" >
+| < NOT0 : "!" >
+| < NOT1 : "not" >
+| < AND0 : "&&" >
+| < AND1 : "and" >
+| < OR0 : "||" >
+| < OR1 : "or" >
+| < EMPTY : "empty" >
+| < INSTANCEOF : "instanceof" >
+| < MULT : "*" >
+| < PLUS : "+" >
+| < MINUS : "-" >
+| < QUESTIONMARK : "?" >
+| < DIV0 : "/" >
+| < DIV1 : "div" >
+| < MOD0 : "%" >
+| < MOD1 : "mod" >
+| < IDENTIFIER : (<LETTER>|<IMPL_OBJ_START>)
(<LETTER>|<DIGIT>)* >
+| < NAMESPACE : (<IDENTIFIER> (<IDENTIFIER>|<MINUS>|<DOT>)*
<COLON>) >
+| < FUNCTIONSUFFIX : (<IDENTIFIER>) >
+| < #IMPL_OBJ_START: "#" >
+| < #LETTER:
+ [
+ "\u0024",
+ "\u0041"-"\u005a",
+ "\u005f",
+ "\u0061"-"\u007a",
+ "\u00c0"-"\u00d6",
+ "\u00d8"-"\u00f6",
+ "\u00f8"-"\u00ff",
+ "\u0100"-"\u1fff",
+ "\u3040"-"\u318f",
+ "\u3300"-"\u337f",
+ "\u3400"-"\u3d2d",
+ "\u4e00"-"\u9fff",
+ "\uf900"-"\ufaff"
+ ]
+ >
+| < #DIGIT:
+ [
+ "\u0030"-"\u0039",
+ "\u0660"-"\u0669",
+ "\u06f0"-"\u06f9",
+ "\u0966"-"\u096f",
+ "\u09e6"-"\u09ef",
+ "\u0a66"-"\u0a6f",
+ "\u0ae6"-"\u0aef",
+ "\u0b66"-"\u0b6f",
+ "\u0be7"-"\u0bef",
+ "\u0c66"-"\u0c6f",
+ "\u0ce6"-"\u0cef",
+ "\u0d66"-"\u0d6f",
+ "\u0e50"-"\u0e59",
+ "\u0ed0"-"\u0ed9",
+ "\u1040"-"\u1049"
+ ]
+ >
+| < ILLEGAL_CHARACTER: (~[]) >
+}
Modified: trunk/java/org/apache/el/parser/ELParserConstants.java
===================================================================
--- trunk/java/org/apache/el/parser/ELParserConstants.java 2008-05-21 07:36:03 UTC (rev
632)
+++ trunk/java/org/apache/el/parser/ELParserConstants.java 2008-05-21 11:51:36 UTC (rev
633)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *
http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
/* Generated By:JJTree&JavaCC: Do not edit this line. ELParserConstants.java */
package org.apache.el.parser;
@@ -3,130 +19,125 @@
public interface ELParserConstants {
- int EOF = 0;
+ int EOF = 0;
+ int LITERAL_EXPRESSION = 1;
+ int START_DYNAMIC_EXPRESSION = 2;
+ int START_DEFERRED_EXPRESSION = 3;
+ int INTEGER_LITERAL = 9;
+ int FLOATING_POINT_LITERAL = 10;
+ int EXPONENT = 11;
+ int STRING_LITERAL = 12;
+ int BADLY_ESCAPED_STRING_LITERAL = 13;
+ int TRUE = 14;
+ int FALSE = 15;
+ int NULL = 16;
+ int END_EXPRESSION = 17;
+ int DOT = 18;
+ int LPAREN = 19;
+ int RPAREN = 20;
+ int LBRACK = 21;
+ int RBRACK = 22;
+ int COLON = 23;
+ int COMMA = 24;
+ int GT0 = 25;
+ int GT1 = 26;
+ int LT0 = 27;
+ int LT1 = 28;
+ int GE0 = 29;
+ int GE1 = 30;
+ int LE0 = 31;
+ int LE1 = 32;
+ int EQ0 = 33;
+ int EQ1 = 34;
+ int NE0 = 35;
+ int NE1 = 36;
+ int NOT0 = 37;
+ int NOT1 = 38;
+ int AND0 = 39;
+ int AND1 = 40;
+ int OR0 = 41;
+ int OR1 = 42;
+ int EMPTY = 43;
+ int INSTANCEOF = 44;
+ int MULT = 45;
+ int PLUS = 46;
+ int MINUS = 47;
+ int QUESTIONMARK = 48;
+ int DIV0 = 49;
+ int DIV1 = 50;
+ int MOD0 = 51;
+ int MOD1 = 52;
+ int IDENTIFIER = 53;
+ int NAMESPACE = 54;
+ int FUNCTIONSUFFIX = 55;
+ int IMPL_OBJ_START = 56;
+ int LETTER = 57;
+ int DIGIT = 58;
+ int ILLEGAL_CHARACTER = 59;
- int LITERAL_EXPRESSION = 1;
+ int DEFAULT = 0;
+ int IN_EXPRESSION = 1;
- int START_DYNAMIC_EXPRESSION = 2;
+ String[] tokenImage = {
+ "<EOF>",
+ "<LITERAL_EXPRESSION>",
+ "\"${\"",
+ "\"#{\"",
+ "\"\\\\\"",
+ "\" \"",
+ "\"\\t\"",
+ "\"\\n\"",
+ "\"\\r\"",
+ "<INTEGER_LITERAL>",
+ "<FLOATING_POINT_LITERAL>",
+ "<EXPONENT>",
+ "<STRING_LITERAL>",
+ "<BADLY_ESCAPED_STRING_LITERAL>",
+ "\"true\"",
+ "\"false\"",
+ "\"null\"",
+ "\"}\"",
+ "\".\"",
+ "\"(\"",
+ "\")\"",
+ "\"[\"",
+ "\"]\"",
+ "\":\"",
+ "\",\"",
+ "\">\"",
+ "\"gt\"",
+ "\"<\"",
+ "\"lt\"",
+ "\">=\"",
+ "\"ge\"",
+ "\"<=\"",
+ "\"le\"",
+ "\"==\"",
+ "\"eq\"",
+ "\"!=\"",
+ "\"ne\"",
+ "\"!\"",
+ "\"not\"",
+ "\"&&\"",
+ "\"and\"",
+ "\"||\"",
+ "\"or\"",
+ "\"empty\"",
+ "\"instanceof\"",
+ "\"*\"",
+ "\"+\"",
+ "\"-\"",
+ "\"?\"",
+ "\"/\"",
+ "\"div\"",
+ "\"%\"",
+ "\"mod\"",
+ "<IDENTIFIER>",
+ "<NAMESPACE>",
+ "<FUNCTIONSUFFIX>",
+ "\"#\"",
+ "<LETTER>",
+ "<DIGIT>",
+ "<ILLEGAL_CHARACTER>",
+ };
- int START_DEFERRED_EXPRESSION = 3;
-
- int INTEGER_LITERAL = 9;
-
- int FLOATING_POINT_LITERAL = 10;
-
- int EXPONENT = 11;
-
- int STRING_LITERAL = 12;
-
- int BADLY_ESCAPED_STRING_LITERAL = 13;
-
- int TRUE = 14;
-
- int FALSE = 15;
-
- int NULL = 16;
-
- int END_EXPRESSION = 17;
-
- int DOT = 18;
-
- int LPAREN = 19;
-
- int RPAREN = 20;
-
- int LBRACK = 21;
-
- int RBRACK = 22;
-
- int COLON = 23;
-
- int COMMA = 24;
-
- int GT0 = 25;
-
- int GT1 = 26;
-
- int LT0 = 27;
-
- int LT1 = 28;
-
- int GE0 = 29;
-
- int GE1 = 30;
-
- int LE0 = 31;
-
- int LE1 = 32;
-
- int EQ0 = 33;
-
- int EQ1 = 34;
-
- int NE0 = 35;
-
- int NE1 = 36;
-
- int NOT0 = 37;
-
- int NOT1 = 38;
-
- int AND0 = 39;
-
- int AND1 = 40;
-
- int OR0 = 41;
-
- int OR1 = 42;
-
- int EMPTY = 43;
-
- int INSTANCEOF = 44;
-
- int MULT = 45;
-
- int PLUS = 46;
-
- int MINUS = 47;
-
- int QUESTIONMARK = 48;
-
- int DIV0 = 49;
-
- int DIV1 = 50;
-
- int MOD0 = 51;
-
- int MOD1 = 52;
-
- int IDENTIFIER = 53;
-
- int NAMESPACE = 54;
-
- int FUNCTIONSUFFIX = 55;
-
- int IMPL_OBJ_START = 56;
-
- int LETTER = 57;
-
- int DIGIT = 58;
-
- int ILLEGAL_CHARACTER = 59;
-
- int DEFAULT = 0;
-
- int IN_EXPRESSION = 1;
-
- String[] tokenImage = { "<EOF>", "<LITERAL_EXPRESSION>",
"\"${\"",
- "\"#{\"", "\"\\\\\"", "\"
\"", "\"\\t\"", "\"\\n\"",
"\"\\r\"",
- "<INTEGER_LITERAL>", "<FLOATING_POINT_LITERAL>",
"<EXPONENT>",
- "<STRING_LITERAL>", "<BADLY_ESCAPED_STRING_LITERAL>",
"\"true\"",
- "\"false\"", "\"null\"",
"\"}\"", "\".\"", "\"(\"",
"\")\"",
- "\"[\"", "\"]\"", "\":\"",
"\",\"", "\">\"", "\"gt\"",
"\"<\"",
- "\"lt\"", "\">=\"",
"\"ge\"", "\"<=\"",
"\"le\"", "\"==\"",
- "\"eq\"", "\"!=\"",
"\"ne\"", "\"!\"", "\"not\"",
"\"&&\"",
- "\"and\"", "\"||\"",
"\"or\"", "\"empty\"",
"\"instanceof\"",
- "\"*\"", "\"+\"", "\"-\"",
"\"?\"", "\"/\"", "\"div\"",
"\"%\"",
- "\"mod\"", "<IDENTIFIER>",
"<NAMESPACE>", "<FUNCTIONSUFFIX>",
- "\"#\"", "<LETTER>", "<DIGIT>",
"<ILLEGAL_CHARACTER>", };
-
}
Modified: trunk/java/org/apache/el/parser/ELParserTokenManager.java
===================================================================
--- trunk/java/org/apache/el/parser/ELParserTokenManager.java 2008-05-21 07:36:03 UTC (rev
632)
+++ trunk/java/org/apache/el/parser/ELParserTokenManager.java 2008-05-21 11:51:36 UTC (rev
633)
@@ -1,1403 +1,1463 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *
http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
/* Generated By:JJTree&JavaCC: Do not edit this line. ELParserTokenManager.java */
package org.apache.el.parser;
+import java.io.StringReader;
+import javax.el.ELException;
-public class ELParserTokenManager implements ELParserConstants {
- public java.io.PrintStream debugStream = System.out;
+public class ELParserTokenManager implements ELParserConstants
+{
+ public java.io.PrintStream debugStream = System.out;
+ public void setDebugStream(java.io.PrintStream ds) { debugStream = ds; }
+private final int jjStopStringLiteralDfa_0(int pos, long active0)
+{
+ switch (pos)
+ {
+ case 0:
+ if ((active0 & 0x10L) != 0L)
+ return 2;
+ if ((active0 & 0x4L) != 0L)
+ {
+ jjmatchedKind = 1;
+ return 4;
+ }
+ if ((active0 & 0x8L) != 0L)
+ {
+ jjmatchedKind = 1;
+ return 6;
+ }
+ return -1;
+ default :
+ return -1;
+ }
+}
+private final int jjStartNfa_0(int pos, long active0)
+{
+ return jjMoveNfa_0(jjStopStringLiteralDfa_0(pos, active0), pos + 1);
+}
+private final int jjStopAtPos(int pos, int kind)
+{
+ jjmatchedKind = kind;
+ jjmatchedPos = pos;
+ return pos + 1;
+}
+private final int jjStartNfaWithStates_0(int pos, int kind, int state)
+{
+ jjmatchedKind = kind;
+ jjmatchedPos = pos;
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) { return pos + 1; }
+ return jjMoveNfa_0(state, pos + 1);
+}
+private final int jjMoveStringLiteralDfa0_0()
+{
+ switch(curChar)
+ {
+ case 35:
+ return jjMoveStringLiteralDfa1_0(0x8L);
+ case 36:
+ return jjMoveStringLiteralDfa1_0(0x4L);
+ case 92:
+ return jjStartNfaWithStates_0(0, 4, 2);
+ default :
+ return jjMoveNfa_0(7, 0);
+ }
+}
+private final int jjMoveStringLiteralDfa1_0(long active0)
+{
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) {
+ jjStopStringLiteralDfa_0(0, active0);
+ return 1;
+ }
+ switch(curChar)
+ {
+ case 123:
+ if ((active0 & 0x4L) != 0L)
+ return jjStopAtPos(1, 2);
+ else if ((active0 & 0x8L) != 0L)
+ return jjStopAtPos(1, 3);
+ break;
+ default :
+ break;
+ }
+ return jjStartNfa_0(0, active0);
+}
+private final void jjCheckNAdd(int state)
+{
+ if (jjrounds[state] != jjround)
+ {
+ jjstateSet[jjnewStateCnt++] = state;
+ jjrounds[state] = jjround;
+ }
+}
+private final void jjAddStates(int start, int end)
+{
+ do {
+ jjstateSet[jjnewStateCnt++] = jjnextStates[start];
+ } while (start++ != end);
+}
+private final void jjCheckNAddTwoStates(int state1, int state2)
+{
+ jjCheckNAdd(state1);
+ jjCheckNAdd(state2);
+}
+private final void jjCheckNAddStates(int start, int end)
+{
+ do {
+ jjCheckNAdd(jjnextStates[start]);
+ } while (start++ != end);
+}
+private final void jjCheckNAddStates(int start)
+{
+ jjCheckNAdd(jjnextStates[start]);
+ jjCheckNAdd(jjnextStates[start + 1]);
+}
+static final long[] jjbitVec0 = {
+ 0xfffffffffffffffeL, 0xffffffffffffffffL, 0xffffffffffffffffL, 0xffffffffffffffffL
+};
+static final long[] jjbitVec2 = {
+ 0x0L, 0x0L, 0xffffffffffffffffL, 0xffffffffffffffffL
+};
+private final int jjMoveNfa_0(int startState, int curPos)
+{
+ int[] nextStates;
+ int startsAt = 0;
+ jjnewStateCnt = 8;
+ int i = 1;
+ jjstateSet[0] = startState;
+ int j, kind = 0x7fffffff;
+ for (;;)
+ {
+ if (++jjround == 0x7fffffff)
+ ReInitRounds();
+ if (curChar < 64)
+ {
+ long l = 1L << curChar;
+ MatchLoop: do
+ {
+ switch(jjstateSet[--i])
+ {
+ case 7:
+ if ((0xffffffe7ffffffffL & l) != 0L)
+ {
+ if (kind > 1)
+ kind = 1;
+ jjCheckNAddStates(0, 3);
+ }
+ else if ((0x1800000000L & l) != 0L)
+ {
+ if (kind > 1)
+ kind = 1;
+ }
+ if (curChar == 35)
+ jjstateSet[jjnewStateCnt++] = 6;
+ else if (curChar == 36)
+ jjstateSet[jjnewStateCnt++] = 4;
+ break;
+ case 0:
+ if ((0xffffffe7ffffffffL & l) == 0L)
+ break;
+ if (kind > 1)
+ kind = 1;
+ jjCheckNAddStates(0, 3);
+ break;
+ case 2:
+ if ((0x1800000000L & l) == 0L)
+ break;
+ if (kind > 1)
+ kind = 1;
+ jjCheckNAddStates(0, 3);
+ break;
+ case 3:
+ if (curChar == 36)
+ jjstateSet[jjnewStateCnt++] = 4;
+ break;
+ case 4:
+ if ((0xffffffefffffffffL & l) == 0L)
+ break;
+ if (kind > 1)
+ kind = 1;
+ jjCheckNAddStates(0, 3);
+ break;
+ case 5:
+ if (curChar == 35)
+ jjstateSet[jjnewStateCnt++] = 6;
+ break;
+ case 6:
+ if ((0xfffffff7ffffffffL & l) == 0L)
+ break;
+ if (kind > 1)
+ kind = 1;
+ jjCheckNAddStates(0, 3);
+ break;
+ default : break;
+ }
+ } while(i != startsAt);
+ }
+ else if (curChar < 128)
+ {
+ long l = 1L << (curChar & 077);
+ MatchLoop: do
+ {
+ switch(jjstateSet[--i])
+ {
+ case 7:
+ if ((0xffffffffefffffffL & l) != 0L)
+ {
+ if (kind > 1)
+ kind = 1;
+ jjCheckNAddStates(0, 3);
+ }
+ else if (curChar == 92)
+ jjstateSet[jjnewStateCnt++] = 2;
+ break;
+ case 0:
+ if ((0xffffffffefffffffL & l) == 0L)
+ break;
+ if (kind > 1)
+ kind = 1;
+ jjCheckNAddStates(0, 3);
+ break;
+ case 1:
+ if (curChar == 92)
+ jjstateSet[jjnewStateCnt++] = 2;
+ break;
+ case 2:
+ if (curChar != 92)
+ break;
+ if (kind > 1)
+ kind = 1;
+ jjCheckNAddStates(0, 3);
+ break;
+ case 4:
+ case 6:
+ if ((0xf7ffffffffffffffL & l) == 0L)
+ break;
+ if (kind > 1)
+ kind = 1;
+ jjCheckNAddStates(0, 3);
+ break;
+ default : break;
+ }
+ } while(i != startsAt);
+ }
+ else
+ {
+ int hiByte = (int)(curChar >> 8);
+ int i1 = hiByte >> 6;
+ long l1 = 1L << (hiByte & 077);
+ int i2 = (curChar & 0xff) >> 6;
+ long l2 = 1L << (curChar & 077);
+ MatchLoop: do
+ {
+ switch(jjstateSet[--i])
+ {
+ case 7:
+ case 0:
+ case 4:
+ case 6:
+ if (!jjCanMove_0(hiByte, i1, i2, l1, l2))
+ break;
+ if (kind > 1)
+ kind = 1;
+ jjCheckNAddStates(0, 3);
+ break;
+ default : break;
+ }
+ } while(i != startsAt);
+ }
+ if (kind != 0x7fffffff)
+ {
+ jjmatchedKind = kind;
+ jjmatchedPos = curPos;
+ kind = 0x7fffffff;
+ }
+ ++curPos;
+ if ((i = jjnewStateCnt) == (startsAt = 8 - (jjnewStateCnt = startsAt)))
+ return curPos;
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) { return curPos; }
+ }
+}
+private final int jjStopStringLiteralDfa_1(int pos, long active0)
+{
+ switch (pos)
+ {
+ case 0:
+ if ((active0 & 0x141d555401c000L) != 0L)
+ {
+ jjmatchedKind = 53;
+ return 41;
+ }
+ if ((active0 & 0x40000L) != 0L)
+ return 1;
+ return -1;
+ case 1:
+ if ((active0 & 0x41554000000L) != 0L)
+ return 42;
+ if ((active0 & 0x1419400001c000L) != 0L)
+ {
+ jjmatchedKind = 53;
+ jjmatchedPos = 1;
+ return 42;
+ }
+ return -1;
+ case 2:
+ if ((active0 & 0x14014000000000L) != 0L)
+ return 42;
+ if ((active0 & 0x18000001c000L) != 0L)
+ {
+ jjmatchedKind = 53;
+ jjmatchedPos = 2;
+ return 42;
+ }
+ return -1;
+ case 3:
+ if ((active0 & 0x14000L) != 0L)
+ return 42;
+ if ((active0 & 0x180000008000L) != 0L)
+ {
+ jjmatchedKind = 53;
+ jjmatchedPos = 3;
+ return 42;
+ }
+ return -1;
+ case 4:
+ if ((active0 & 0x80000008000L) != 0L)
+ return 42;
+ if ((active0 & 0x100000000000L) != 0L)
+ {
+ jjmatchedKind = 53;
+ jjmatchedPos = 4;
+ return 42;
+ }
+ return -1;
+ case 5:
+ if ((active0 & 0x100000000000L) != 0L)
+ {
+ jjmatchedKind = 53;
+ jjmatchedPos = 5;
+ return 42;
+ }
+ return -1;
+ case 6:
+ if ((active0 & 0x100000000000L) != 0L)
+ {
+ jjmatchedKind = 53;
+ jjmatchedPos = 6;
+ return 42;
+ }
+ return -1;
+ case 7:
+ if ((active0 & 0x100000000000L) != 0L)
+ {
+ jjmatchedKind = 53;
+ jjmatchedPos = 7;
+ return 42;
+ }
+ return -1;
+ case 8:
+ if ((active0 & 0x100000000000L) != 0L)
+ {
+ jjmatchedKind = 53;
+ jjmatchedPos = 8;
+ return 42;
+ }
+ return -1;
+ default :
+ return -1;
+ }
+}
+private final int jjStartNfa_1(int pos, long active0)
+{
+ return jjMoveNfa_1(jjStopStringLiteralDfa_1(pos, active0), pos + 1);
+}
+private final int jjStartNfaWithStates_1(int pos, int kind, int state)
+{
+ jjmatchedKind = kind;
+ jjmatchedPos = pos;
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) { return pos + 1; }
+ return jjMoveNfa_1(state, pos + 1);
+}
+private final int jjMoveStringLiteralDfa0_1()
+{
+ switch(curChar)
+ {
+ case 33:
+ jjmatchedKind = 37;
+ return jjMoveStringLiteralDfa1_1(0x800000000L);
+ case 37:
+ return jjStopAtPos(0, 51);
+ case 38:
+ return jjMoveStringLiteralDfa1_1(0x8000000000L);
+ case 40:
+ return jjStopAtPos(0, 19);
+ case 41:
+ return jjStopAtPos(0, 20);
+ case 42:
+ return jjStopAtPos(0, 45);
+ case 43:
+ return jjStopAtPos(0, 46);
+ case 44:
+ return jjStopAtPos(0, 24);
+ case 45:
+ return jjStopAtPos(0, 47);
+ case 46:
+ return jjStartNfaWithStates_1(0, 18, 1);
+ case 47:
+ return jjStopAtPos(0, 49);
+ case 58:
+ return jjStopAtPos(0, 23);
+ case 60:
+ jjmatchedKind = 27;
+ return jjMoveStringLiteralDfa1_1(0x80000000L);
+ case 61:
+ return jjMoveStringLiteralDfa1_1(0x200000000L);
+ case 62:
+ jjmatchedKind = 25;
+ return jjMoveStringLiteralDfa1_1(0x20000000L);
+ case 63:
+ return jjStopAtPos(0, 48);
+ case 91:
+ return jjStopAtPos(0, 21);
+ case 93:
+ return jjStopAtPos(0, 22);
+ case 97:
+ return jjMoveStringLiteralDfa1_1(0x10000000000L);
+ case 100:
+ return jjMoveStringLiteralDfa1_1(0x4000000000000L);
+ case 101:
+ return jjMoveStringLiteralDfa1_1(0x80400000000L);
+ case 102:
+ return jjMoveStringLiteralDfa1_1(0x8000L);
+ case 103:
+ return jjMoveStringLiteralDfa1_1(0x44000000L);
+ case 105:
+ return jjMoveStringLiteralDfa1_1(0x100000000000L);
+ case 108:
+ return jjMoveStringLiteralDfa1_1(0x110000000L);
+ case 109:
+ return jjMoveStringLiteralDfa1_1(0x10000000000000L);
+ case 110:
+ return jjMoveStringLiteralDfa1_1(0x5000010000L);
+ case 111:
+ return jjMoveStringLiteralDfa1_1(0x40000000000L);
+ case 116:
+ return jjMoveStringLiteralDfa1_1(0x4000L);
+ case 124:
+ return jjMoveStringLiteralDfa1_1(0x20000000000L);
+ case 125:
+ return jjStopAtPos(0, 17);
+ default :
+ return jjMoveNfa_1(0, 0);
+ }
+}
+private final int jjMoveStringLiteralDfa1_1(long active0)
+{
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) {
+ jjStopStringLiteralDfa_1(0, active0);
+ return 1;
+ }
+ switch(curChar)
+ {
+ case 38:
+ if ((active0 & 0x8000000000L) != 0L)
+ return jjStopAtPos(1, 39);
+ break;
+ case 61:
+ if ((active0 & 0x20000000L) != 0L)
+ return jjStopAtPos(1, 29);
+ else if ((active0 & 0x80000000L) != 0L)
+ return jjStopAtPos(1, 31);
+ else if ((active0 & 0x200000000L) != 0L)
+ return jjStopAtPos(1, 33);
+ else if ((active0 & 0x800000000L) != 0L)
+ return jjStopAtPos(1, 35);
+ break;
+ case 97:
+ return jjMoveStringLiteralDfa2_1(active0, 0x8000L);
+ case 101:
+ if ((active0 & 0x40000000L) != 0L)
+ return jjStartNfaWithStates_1(1, 30, 42);
+ else if ((active0 & 0x100000000L) != 0L)
+ return jjStartNfaWithStates_1(1, 32, 42);
+ else if ((active0 & 0x1000000000L) != 0L)
+ return jjStartNfaWithStates_1(1, 36, 42);
+ break;
+ case 105:
+ return jjMoveStringLiteralDfa2_1(active0, 0x4000000000000L);
+ case 109:
+ return jjMoveStringLiteralDfa2_1(active0, 0x80000000000L);
+ case 110:
+ return jjMoveStringLiteralDfa2_1(active0, 0x110000000000L);
+ case 111:
+ return jjMoveStringLiteralDfa2_1(active0, 0x10004000000000L);
+ case 113:
+ if ((active0 & 0x400000000L) != 0L)
+ return jjStartNfaWithStates_1(1, 34, 42);
+ break;
+ case 114:
+ if ((active0 & 0x40000000000L) != 0L)
+ return jjStartNfaWithStates_1(1, 42, 42);
+ return jjMoveStringLiteralDfa2_1(active0, 0x4000L);
+ case 116:
+ if ((active0 & 0x4000000L) != 0L)
+ return jjStartNfaWithStates_1(1, 26, 42);
+ else if ((active0 & 0x10000000L) != 0L)
+ return jjStartNfaWithStates_1(1, 28, 42);
+ break;
+ case 117:
+ return jjMoveStringLiteralDfa2_1(active0, 0x10000L);
+ case 124:
+ if ((active0 & 0x20000000000L) != 0L)
+ return jjStopAtPos(1, 41);
+ break;
+ default :
+ break;
+ }
+ return jjStartNfa_1(0, active0);
+}
+private final int jjMoveStringLiteralDfa2_1(long old0, long active0)
+{
+ if (((active0 &= old0)) == 0L)
+ return jjStartNfa_1(0, old0);
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) {
+ jjStopStringLiteralDfa_1(1, active0);
+ return 2;
+ }
+ switch(curChar)
+ {
+ case 100:
+ if ((active0 & 0x10000000000L) != 0L)
+ return jjStartNfaWithStates_1(2, 40, 42);
+ else if ((active0 & 0x10000000000000L) != 0L)
+ return jjStartNfaWithStates_1(2, 52, 42);
+ break;
+ case 108:
+ return jjMoveStringLiteralDfa3_1(active0, 0x18000L);
+ case 112:
+ return jjMoveStringLiteralDfa3_1(active0, 0x80000000000L);
+ case 115:
+ return jjMoveStringLiteralDfa3_1(active0, 0x100000000000L);
+ case 116:
+ if ((active0 & 0x4000000000L) != 0L)
+ return jjStartNfaWithStates_1(2, 38, 42);
+ break;
+ case 117:
+ return jjMoveStringLiteralDfa3_1(active0, 0x4000L);
+ case 118:
+ if ((active0 & 0x4000000000000L) != 0L)
+ return jjStartNfaWithStates_1(2, 50, 42);
+ break;
+ default :
+ break;
+ }
+ return jjStartNfa_1(1, active0);
+}
+private final int jjMoveStringLiteralDfa3_1(long old0, long active0)
+{
+ if (((active0 &= old0)) == 0L)
+ return jjStartNfa_1(1, old0);
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) {
+ jjStopStringLiteralDfa_1(2, active0);
+ return 3;
+ }
+ switch(curChar)
+ {
+ case 101:
+ if ((active0 & 0x4000L) != 0L)
+ return jjStartNfaWithStates_1(3, 14, 42);
+ break;
+ case 108:
+ if ((active0 & 0x10000L) != 0L)
+ return jjStartNfaWithStates_1(3, 16, 42);
+ break;
+ case 115:
+ return jjMoveStringLiteralDfa4_1(active0, 0x8000L);
+ case 116:
+ return jjMoveStringLiteralDfa4_1(active0, 0x180000000000L);
+ default :
+ break;
+ }
+ return jjStartNfa_1(2, active0);
+}
+private final int jjMoveStringLiteralDfa4_1(long old0, long active0)
+{
+ if (((active0 &= old0)) == 0L)
+ return jjStartNfa_1(2, old0);
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) {
+ jjStopStringLiteralDfa_1(3, active0);
+ return 4;
+ }
+ switch(curChar)
+ {
+ case 97:
+ return jjMoveStringLiteralDfa5_1(active0, 0x100000000000L);
+ case 101:
+ if ((active0 & 0x8000L) != 0L)
+ return jjStartNfaWithStates_1(4, 15, 42);
+ break;
+ case 121:
+ if ((active0 & 0x80000000000L) != 0L)
+ return jjStartNfaWithStates_1(4, 43, 42);
+ break;
+ default :
+ break;
+ }
+ return jjStartNfa_1(3, active0);
+}
+private final int jjMoveStringLiteralDfa5_1(long old0, long active0)
+{
+ if (((active0 &= old0)) == 0L)
+ return jjStartNfa_1(3, old0);
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) {
+ jjStopStringLiteralDfa_1(4, active0);
+ return 5;
+ }
+ switch(curChar)
+ {
+ case 110:
+ return jjMoveStringLiteralDfa6_1(active0, 0x100000000000L);
+ default :
+ break;
+ }
+ return jjStartNfa_1(4, active0);
+}
+private final int jjMoveStringLiteralDfa6_1(long old0, long active0)
+{
+ if (((active0 &= old0)) == 0L)
+ return jjStartNfa_1(4, old0);
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) {
+ jjStopStringLiteralDfa_1(5, active0);
+ return 6;
+ }
+ switch(curChar)
+ {
+ case 99:
+ return jjMoveStringLiteralDfa7_1(active0, 0x100000000000L);
+ default :
+ break;
+ }
+ return jjStartNfa_1(5, active0);
+}
+private final int jjMoveStringLiteralDfa7_1(long old0, long active0)
+{
+ if (((active0 &= old0)) == 0L)
+ return jjStartNfa_1(5, old0);
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) {
+ jjStopStringLiteralDfa_1(6, active0);
+ return 7;
+ }
+ switch(curChar)
+ {
+ case 101:
+ return jjMoveStringLiteralDfa8_1(active0, 0x100000000000L);
+ default :
+ break;
+ }
+ return jjStartNfa_1(6, active0);
+}
+private final int jjMoveStringLiteralDfa8_1(long old0, long active0)
+{
+ if (((active0 &= old0)) == 0L)
+ return jjStartNfa_1(6, old0);
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) {
+ jjStopStringLiteralDfa_1(7, active0);
+ return 8;
+ }
+ switch(curChar)
+ {
+ case 111:
+ return jjMoveStringLiteralDfa9_1(active0, 0x100000000000L);
+ default :
+ break;
+ }
+ return jjStartNfa_1(7, active0);
+}
+private final int jjMoveStringLiteralDfa9_1(long old0, long active0)
+{
+ if (((active0 &= old0)) == 0L)
+ return jjStartNfa_1(7, old0);
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) {
+ jjStopStringLiteralDfa_1(8, active0);
+ return 9;
+ }
+ switch(curChar)
+ {
+ case 102:
+ if ((active0 & 0x100000000000L) != 0L)
+ return jjStartNfaWithStates_1(9, 44, 42);
+ break;
+ default :
+ break;
+ }
+ return jjStartNfa_1(8, active0);
+}
+static final long[] jjbitVec3 = {
+ 0x1ff00000fffffffeL, 0xffffffffffffc000L, 0xffffffffL, 0x600000000000000L
+};
+static final long[] jjbitVec4 = {
+ 0x0L, 0x0L, 0x0L, 0xff7fffffff7fffffL
+};
+static final long[] jjbitVec5 = {
+ 0x0L, 0xffffffffffffffffL, 0xffffffffffffffffL, 0xffffffffffffffffL
+};
+static final long[] jjbitVec6 = {
+ 0xffffffffffffffffL, 0xffffffffffffffffL, 0xffffL, 0x0L
+};
+static final long[] jjbitVec7 = {
+ 0xffffffffffffffffL, 0xffffffffffffffffL, 0x0L, 0x0L
+};
+static final long[] jjbitVec8 = {
+ 0x3fffffffffffL, 0x0L, 0x0L, 0x0L
+};
+private final int jjMoveNfa_1(int startState, int curPos)
+{
+ int[] nextStates;
+ int startsAt = 0;
+ jjnewStateCnt = 41;
+ int i = 1;
+ jjstateSet[0] = startState;
+ int j, kind = 0x7fffffff;
+ for (;;)
+ {
+ if (++jjround == 0x7fffffff)
+ ReInitRounds();
+ if (curChar < 64)
+ {
+ long l = 1L << curChar;
+ MatchLoop: do
+ {
+ switch(jjstateSet[--i])
+ {
+ case 41:
+ if ((0x3ff001000000000L & l) != 0L)
+ {
+ if (kind > 55)
+ kind = 55;
+ jjCheckNAdd(40);
+ }
+ else if ((0x600000000000L & l) != 0L)
+ jjCheckNAddStates(4, 6);
+ else if (curChar == 58)
+ {
+ if (kind > 54)
+ kind = 54;
+ }
+ if ((0x3ff001000000000L & l) != 0L)
+ jjCheckNAddStates(7, 10);
+ if ((0x3ff001000000000L & l) != 0L)
+ {
+ if (kind > 53)
+ kind = 53;
+ jjCheckNAdd(34);
+ }
+ if ((0x1800000000L & l) != 0L)
+ jjCheckNAddStates(11, 14);
+ break;
+ case 0:
+ if ((0x3ff000000000000L & l) != 0L)
+ {
+ if (kind > 9)
+ kind = 9;
+ jjCheckNAddStates(15, 19);
+ }
+ else if ((0x1800000000L & l) != 0L)
+ {
+ if (kind > 53)
+ kind = 53;
+ jjCheckNAddStates(20, 25);
+ }
+ else if (curChar == 39)
+ jjCheckNAddStates(26, 30);
+ else if (curChar == 34)
+ jjCheckNAddStates(31, 35);
+ else if (curChar == 46)
+ jjCheckNAdd(1);
+ break;
+ case 42:
+ if ((0x3ff001000000000L & l) != 0L)
+ {
+ if (kind > 55)
+ kind = 55;
+ jjCheckNAdd(40);
+ }
+ else if ((0x600000000000L & l) != 0L)
+ jjCheckNAddStates(4, 6);
+ else if (curChar == 58)
+ {
+ if (kind > 54)
+ kind = 54;
+ }
+ if ((0x3ff001000000000L & l) != 0L)
+ jjCheckNAddStates(11, 14);
+ if ((0x3ff001000000000L & l) != 0L)
+ jjCheckNAddStates(7, 10);
+ if ((0x3ff001000000000L & l) != 0L)
+ {
+ if (kind > 53)
+ kind = 53;
+ jjCheckNAdd(34);
+ }
+ if ((0x1800000000L & l) != 0L)
+ jjCheckNAddStates(11, 14);
+ break;
+ case 1:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 10)
+ kind = 10;
+ jjCheckNAddTwoStates(1, 2);
+ break;
+ case 3:
+ if ((0x280000000000L & l) != 0L)
+ jjCheckNAdd(4);
+ break;
+ case 4:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 10)
+ kind = 10;
+ jjCheckNAdd(4);
+ break;
+ case 5:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 9)
+ kind = 9;
+ jjCheckNAddStates(15, 19);
+ break;
+ case 6:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 9)
+ kind = 9;
+ jjCheckNAdd(6);
+ break;
+ case 7:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddTwoStates(7, 8);
+ break;
+ case 8:
+ if (curChar != 46)
+ break;
+ if (kind > 10)
+ kind = 10;
+ jjCheckNAddTwoStates(9, 10);
+ break;
+ case 9:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 10)
+ kind = 10;
+ jjCheckNAddTwoStates(9, 10);
+ break;
+ case 11:
+ if ((0x280000000000L & l) != 0L)
+ jjCheckNAdd(12);
+ break;
+ case 12:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 10)
+ kind = 10;
+ jjCheckNAdd(12);
+ break;
+ case 13:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddTwoStates(13, 14);
+ break;
+ case 15:
+ if ((0x280000000000L & l) != 0L)
+ jjCheckNAdd(16);
+ break;
+ case 16:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 10)
+ kind = 10;
+ jjCheckNAdd(16);
+ break;
+ case 17:
+ if (curChar == 34)
+ jjCheckNAddStates(31, 35);
+ break;
+ case 18:
+ if ((0xfffffffbffffffffL & l) != 0L)
+ jjCheckNAddStates(36, 38);
+ break;
+ case 20:
+ if (curChar == 34)
+ jjCheckNAddStates(36, 38);
+ break;
+ case 21:
+ if (curChar == 34 && kind > 12)
+ kind = 12;
+ break;
+ case 22:
+ if ((0xfffffffbffffffffL & l) != 0L)
+ jjCheckNAddTwoStates(22, 23);
+ break;
+ case 24:
+ if ((0xfffffffbffffffffL & l) != 0L && kind > 13)
+ kind = 13;
+ break;
+ case 25:
+ if (curChar == 39)
+ jjCheckNAddStates(26, 30);
+ break;
+ case 26:
+ if ((0xffffff7fffffffffL & l) != 0L)
+ jjCheckNAddStates(39, 41);
+ break;
+ case 28:
+ if (curChar == 39)
+ jjCheckNAddStates(39, 41);
+ break;
+ case 29:
+ if (curChar == 39 && kind > 12)
+ kind = 12;
+ break;
+ case 30:
+ if ((0xffffff7fffffffffL & l) != 0L)
+ jjCheckNAddTwoStates(30, 31);
+ break;
+ case 32:
+ if ((0xffffff7fffffffffL & l) != 0L && kind > 13)
+ kind = 13;
+ break;
+ case 33:
+ if ((0x1800000000L & l) == 0L)
+ break;
+ if (kind > 53)
+ kind = 53;
+ jjCheckNAddStates(20, 25);
+ break;
+ case 34:
+ if ((0x3ff001000000000L & l) == 0L)
+ break;
+ if (kind > 53)
+ kind = 53;
+ jjCheckNAdd(34);
+ break;
+ case 35:
+ if ((0x3ff001000000000L & l) != 0L)
+ jjCheckNAddStates(7, 10);
+ break;
+ case 36:
+ if ((0x1800000000L & l) != 0L)
+ jjCheckNAddStates(11, 14);
+ break;
+ case 37:
+ if ((0x3ff001000000000L & l) != 0L)
+ jjCheckNAddStates(11, 14);
+ break;
+ case 38:
+ if ((0x600000000000L & l) != 0L)
+ jjCheckNAddStates(4, 6);
+ break;
+ case 39:
+ if (curChar == 58 && kind > 54)
+ kind = 54;
+ break;
+ case 40:
+ if ((0x3ff001000000000L & l) == 0L)
+ break;
+ if (kind > 55)
+ kind = 55;
+ jjCheckNAdd(40);
+ break;
+ default : break;
+ }
+ } while(i != startsAt);
+ }
+ else if (curChar < 128)
+ {
+ long l = 1L << (curChar & 077);
+ MatchLoop: do
+ {
+ switch(jjstateSet[--i])
+ {
+ case 41:
+ if ((0x7fffffe87fffffeL & l) != 0L)
+ {
+ if (kind > 55)
+ kind = 55;
+ jjCheckNAdd(40);
+ }
+ if ((0x7fffffe87fffffeL & l) != 0L)
+ jjCheckNAddStates(11, 14);
+ if ((0x7fffffe87fffffeL & l) != 0L)
+ jjCheckNAddStates(7, 10);
+ if ((0x7fffffe87fffffeL & l) != 0L)
+ {
+ if (kind > 53)
+ kind = 53;
+ jjCheckNAdd(34);
+ }
+ break;
+ case 0:
+ if ((0x7fffffe87fffffeL & l) == 0L)
+ break;
+ if (kind > 53)
+ kind = 53;
+ jjCheckNAddStates(20, 25);
+ break;
+ case 42:
+ if ((0x7fffffe87fffffeL & l) != 0L)
+ {
+ if (kind > 55)
+ kind = 55;
+ jjCheckNAdd(40);
+ }
+ if ((0x7fffffe87fffffeL & l) != 0L)
+ jjCheckNAddStates(11, 14);
+ if ((0x7fffffe87fffffeL & l) != 0L)
+ jjCheckNAddStates(11, 14);
+ if ((0x7fffffe87fffffeL & l) != 0L)
+ jjCheckNAddStates(7, 10);
+ if ((0x7fffffe87fffffeL & l) != 0L)
+ {
+ if (kind > 53)
+ kind = 53;
+ jjCheckNAdd(34);
+ }
+ break;
+ case 2:
+ if ((0x2000000020L & l) != 0L)
+ jjAddStates(42, 43);
+ break;
+ case 10:
+ if ((0x2000000020L & l) != 0L)
+ jjAddStates(44, 45);
+ break;
+ case 14:
+ if ((0x2000000020L & l) != 0L)
+ jjAddStates(46, 47);
+ break;
+ case 18:
+ if ((0xffffffffefffffffL & l) != 0L)
+ jjCheckNAddStates(36, 38);
+ break;
+ case 19:
+ if (curChar == 92)
+ jjstateSet[jjnewStateCnt++] = 20;
+ break;
+ case 20:
+ if (curChar == 92)
+ jjCheckNAddStates(36, 38);
+ break;
+ case 22:
+ if ((0xffffffffefffffffL & l) != 0L)
+ jjAddStates(48, 49);
+ break;
+ case 23:
+ if (curChar == 92)
+ jjstateSet[jjnewStateCnt++] = 24;
+ break;
+ case 24:
+ case 32:
+ if ((0xffffffffefffffffL & l) != 0L && kind > 13)
+ kind = 13;
+ break;
+ case 26:
+ if ((0xffffffffefffffffL & l) != 0L)
+ jjCheckNAddStates(39, 41);
+ break;
+ case 27:
+ if (curChar == 92)
+ jjstateSet[jjnewStateCnt++] = 28;
+ break;
+ case 28:
+ if (curChar == 92)
+ jjCheckNAddStates(39, 41);
+ break;
+ case 30:
+ if ((0xffffffffefffffffL & l) != 0L)
+ jjAddStates(50, 51);
+ break;
+ case 31:
+ if (curChar == 92)
+ jjstateSet[jjnewStateCnt++] = 32;
+ break;
+ case 34:
+ if ((0x7fffffe87fffffeL & l) == 0L)
+ break;
+ if (kind > 53)
+ kind = 53;
+ jjCheckNAdd(34);
+ break;
+ case 35:
+ if ((0x7fffffe87fffffeL & l) != 0L)
+ jjCheckNAddStates(7, 10);
+ break;
+ case 36:
+ if ((0x7fffffe87fffffeL & l) != 0L)
+ jjCheckNAddStates(11, 14);
+ break;
+ case 37:
+ if ((0x7fffffe87fffffeL & l) != 0L)
+ jjCheckNAddStates(11, 14);
+ break;
+ case 40:
+ if ((0x7fffffe87fffffeL & l) == 0L)
+ break;
+ if (kind > 55)
+ kind = 55;
+ jjCheckNAdd(40);
+ break;
+ default : break;
+ }
+ } while(i != startsAt);
+ }
+ else
+ {
+ int hiByte = (int)(curChar >> 8);
+ int i1 = hiByte >> 6;
+ long l1 = 1L << (hiByte & 077);
+ int i2 = (curChar & 0xff) >> 6;
+ long l2 = 1L << (curChar & 077);
+ MatchLoop: do
+ {
+ switch(jjstateSet[--i])
+ {
+ case 41:
+ if (jjCanMove_1(hiByte, i1, i2, l1, l2))
+ {
+ if (kind > 53)
+ kind = 53;
+ jjCheckNAdd(34);
+ }
+ if (jjCanMove_1(hiByte, i1, i2, l1, l2))
+ jjCheckNAddStates(7, 10);
+ if (jjCanMove_1(hiByte, i1, i2, l1, l2))
+ jjCheckNAddStates(11, 14);
+ if (jjCanMove_1(hiByte, i1, i2, l1, l2))
+ {
+ if (kind > 55)
+ kind = 55;
+ jjCheckNAdd(40);
+ }
+ break;
+ case 0:
+ if (!jjCanMove_1(hiByte, i1, i2, l1, l2))
+ break;
+ if (kind > 53)
+ kind = 53;
+ jjCheckNAddStates(20, 25);
+ break;
+ case 42:
+ if (jjCanMove_1(hiByte, i1, i2, l1, l2))
+ {
+ if (kind > 53)
+ kind = 53;
+ jjCheckNAdd(34);
+ }
+ if (jjCanMove_1(hiByte, i1, i2, l1, l2))
+ jjCheckNAddStates(7, 10);
+ if (jjCanMove_1(hiByte, i1, i2, l1, l2))
+ jjCheckNAddStates(11, 14);
+ if (jjCanMove_1(hiByte, i1, i2, l1, l2))
+ jjCheckNAddStates(11, 14);
+ if (jjCanMove_1(hiByte, i1, i2, l1, l2))
+ {
+ if (kind > 55)
+ kind = 55;
+ jjCheckNAdd(40);
+ }
+ break;
+ case 18:
+ if (jjCanMove_0(hiByte, i1, i2, l1, l2))
+ jjAddStates(36, 38);
+ break;
+ case 22:
+ if (jjCanMove_0(hiByte, i1, i2, l1, l2))
+ jjAddStates(48, 49);
+ break;
+ case 24:
+ case 32:
+ if (jjCanMove_0(hiByte, i1, i2, l1, l2) && kind > 13)
+ kind = 13;
+ break;
+ case 26:
+ if (jjCanMove_0(hiByte, i1, i2, l1, l2))
+ jjAddStates(39, 41);
+ break;
+ case 30:
+ if (jjCanMove_0(hiByte, i1, i2, l1, l2))
+ jjAddStates(50, 51);
+ break;
+ case 34:
+ if (!jjCanMove_1(hiByte, i1, i2, l1, l2))
+ break;
+ if (kind > 53)
+ kind = 53;
+ jjCheckNAdd(34);
+ break;
+ case 35:
+ if (jjCanMove_1(hiByte, i1, i2, l1, l2))
+ jjCheckNAddStates(7, 10);
+ break;
+ case 36:
+ if (jjCanMove_1(hiByte, i1, i2, l1, l2))
+ jjCheckNAddStates(11, 14);
+ break;
+ case 37:
+ if (jjCanMove_1(hiByte, i1, i2, l1, l2))
+ jjCheckNAddStates(11, 14);
+ break;
+ case 40:
+ if (!jjCanMove_1(hiByte, i1, i2, l1, l2))
+ break;
+ if (kind > 55)
+ kind = 55;
+ jjCheckNAdd(40);
+ break;
+ default : break;
+ }
+ } while(i != startsAt);
+ }
+ if (kind != 0x7fffffff)
+ {
+ jjmatchedKind = kind;
+ jjmatchedPos = curPos;
+ kind = 0x7fffffff;
+ }
+ ++curPos;
+ if ((i = jjnewStateCnt) == (startsAt = 41 - (jjnewStateCnt = startsAt)))
+ return curPos;
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) { return curPos; }
+ }
+}
+static final int[] jjnextStates = {
+ 0, 1, 3, 5, 36, 38, 39, 35, 36, 38, 39, 36, 37, 38, 39, 6,
+ 7, 8, 13, 14, 34, 35, 36, 38, 39, 40, 26, 27, 29, 30, 31, 18,
+ 19, 21, 22, 23, 18, 19, 21, 26, 27, 29, 3, 4, 11, 12, 15, 16,
+ 22, 23, 30, 31,
+};
+private static final boolean jjCanMove_0(int hiByte, int i1, int i2, long l1, long l2)
+{
+ switch(hiByte)
+ {
+ case 0:
+ return ((jjbitVec2[i2] & l2) != 0L);
+ default :
+ if ((jjbitVec0[i1] & l1) != 0L)
+ return true;
+ return false;
+ }
+}
+private static final boolean jjCanMove_1(int hiByte, int i1, int i2, long l1, long l2)
+{
+ switch(hiByte)
+ {
+ case 0:
+ return ((jjbitVec4[i2] & l2) != 0L);
+ case 48:
+ return ((jjbitVec5[i2] & l2) != 0L);
+ case 49:
+ return ((jjbitVec6[i2] & l2) != 0L);
+ case 51:
+ return ((jjbitVec7[i2] & l2) != 0L);
+ case 61:
+ return ((jjbitVec8[i2] & l2) != 0L);
+ default :
+ if ((jjbitVec3[i1] & l1) != 0L)
+ return true;
+ return false;
+ }
+}
+public static final String[] jjstrLiteralImages = {
+"", null, "\44\173", "\43\173", null, null, null, null,
null, null, null, null,
+null, null, "\164\162\165\145", "\146\141\154\163\145",
"\156\165\154\154", "\175",
+"\56", "\50", "\51", "\133", "\135",
"\72", "\54", "\76", "\147\164", "\74",
+"\154\164", "\76\75", "\147\145", "\74\75",
"\154\145", "\75\75", "\145\161", "\41\75",
+"\156\145", "\41", "\156\157\164", "\46\46",
"\141\156\144", "\174\174", "\157\162",
+"\145\155\160\164\171", "\151\156\163\164\141\156\143\145\157\146",
"\52", "\53", "\55", "\77", "\57",
+"\144\151\166", "\45", "\155\157\144", null, null, null,
null, null, null, null, };
+public static final String[] lexStateNames = {
+ "DEFAULT",
+ "IN_EXPRESSION",
+};
+public static final int[] jjnewLexState = {
+ -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -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, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+};
+static final long[] jjtoToken = {
+ 0x8fffffffffff60fL,
+};
+static final long[] jjtoSkip = {
+ 0x1f0L,
+};
+protected SimpleCharStream input_stream;
+private final int[] jjrounds = new int[41];
+private final int[] jjstateSet = new int[82];
+protected char curChar;
+public ELParserTokenManager(SimpleCharStream stream){
+ if (SimpleCharStream.staticFlag)
+ throw new Error("ERROR: Cannot use a static CharStream class with a non-static
lexical analyzer.");
+ input_stream = stream;
+}
+public ELParserTokenManager(SimpleCharStream stream, int lexState){
+ this(stream);
+ SwitchTo(lexState);
+}
+public void ReInit(SimpleCharStream stream)
+{
+ jjmatchedPos = jjnewStateCnt = 0;
+ curLexState = defaultLexState;
+ input_stream = stream;
+ ReInitRounds();
+}
+private final void ReInitRounds()
+{
+ int i;
+ jjround = 0x80000001;
+ for (i = 41; i-- > 0;)
+ jjrounds[i] = 0x80000000;
+}
+public void ReInit(SimpleCharStream stream, int lexState)
+{
+ ReInit(stream);
+ SwitchTo(lexState);
+}
+public void SwitchTo(int lexState)
+{
+ if (lexState >= 2 || lexState < 0)
+ throw new TokenMgrError("Error: Ignoring invalid lexical state : " +
lexState + ". State unchanged.", TokenMgrError.INVALID_LEXICAL_STATE);
+ else
+ curLexState = lexState;
+}
- public void setDebugStream(java.io.PrintStream ds) {
- debugStream = ds;
- }
+protected Token jjFillToken()
+{
+ Token t = Token.newToken(jjmatchedKind);
+ t.kind = jjmatchedKind;
+ String im = jjstrLiteralImages[jjmatchedKind];
+ t.image = (im == null) ? input_stream.GetImage() : im;
+ t.beginLine = input_stream.getBeginLine();
+ t.beginColumn = input_stream.getBeginColumn();
+ t.endLine = input_stream.getEndLine();
+ t.endColumn = input_stream.getEndColumn();
+ return t;
+}
- private final int jjStopStringLiteralDfa_0(int pos, long active0) {
- switch (pos) {
- case 0:
- if ((active0 & 0x10L) != 0L)
- return 2;
- if ((active0 & 0x4L) != 0L) {
- jjmatchedKind = 1;
- return 4;
- }
- if ((active0 & 0x8L) != 0L) {
- jjmatchedKind = 1;
- return 6;
- }
- return -1;
- default:
- return -1;
- }
- }
+int curLexState = 0;
+int defaultLexState = 0;
+int jjnewStateCnt;
+int jjround;
+int jjmatchedPos;
+int jjmatchedKind;
- private final int jjStartNfa_0(int pos, long active0) {
- return jjMoveNfa_0(jjStopStringLiteralDfa_0(pos, active0), pos + 1);
- }
+public Token getNextToken()
+{
+ int kind;
+ Token specialToken = null;
+ Token matchedToken;
+ int curPos = 0;
- private final int jjStopAtPos(int pos, int kind) {
- jjmatchedKind = kind;
- jjmatchedPos = pos;
- return pos + 1;
- }
+ EOFLoop :
+ for (;;)
+ {
+ try
+ {
+ curChar = input_stream.BeginToken();
+ }
+ catch(java.io.IOException e)
+ {
+ jjmatchedKind = 0;
+ matchedToken = jjFillToken();
+ return matchedToken;
+ }
- private final int jjStartNfaWithStates_0(int pos, int kind, int state) {
- jjmatchedKind = kind;
- jjmatchedPos = pos;
- try {
- curChar = input_stream.readChar();
- } catch (java.io.IOException e) {
- return pos + 1;
- }
- return jjMoveNfa_0(state, pos + 1);
- }
+ switch(curLexState)
+ {
+ case 0:
+ jjmatchedKind = 0x7fffffff;
+ jjmatchedPos = 0;
+ curPos = jjMoveStringLiteralDfa0_0();
+ break;
+ case 1:
+ try { input_stream.backup(0);
+ while (curChar <= 32 && (0x100002600L & (1L << curChar))
!= 0L)
+ curChar = input_stream.BeginToken();
+ }
+ catch (java.io.IOException e1) { continue EOFLoop; }
+ jjmatchedKind = 0x7fffffff;
+ jjmatchedPos = 0;
+ curPos = jjMoveStringLiteralDfa0_1();
+ if (jjmatchedPos == 0 && jjmatchedKind > 59)
+ {
+ jjmatchedKind = 59;
+ }
+ break;
+ }
+ if (jjmatchedKind != 0x7fffffff)
+ {
+ if (jjmatchedPos + 1 < curPos)
+ input_stream.backup(curPos - jjmatchedPos - 1);
+ if ((jjtoToken[jjmatchedKind >> 6] & (1L << (jjmatchedKind &
077))) != 0L)
+ {
+ matchedToken = jjFillToken();
+ if (jjnewLexState[jjmatchedKind] != -1)
+ curLexState = jjnewLexState[jjmatchedKind];
+ return matchedToken;
+ }
+ else
+ {
+ if (jjnewLexState[jjmatchedKind] != -1)
+ curLexState = jjnewLexState[jjmatchedKind];
+ continue EOFLoop;
+ }
+ }
+ int error_line = input_stream.getEndLine();
+ int error_column = input_stream.getEndColumn();
+ String error_after = null;
+ boolean EOFSeen = false;
+ try { input_stream.readChar(); input_stream.backup(1); }
+ catch (java.io.IOException e1) {
+ EOFSeen = true;
+ error_after = curPos <= 1 ? "" : input_stream.GetImage();
+ if (curChar == '\n' || curChar == '\r') {
+ error_line++;
+ error_column = 0;
+ }
+ else
+ error_column++;
+ }
+ if (!EOFSeen) {
+ input_stream.backup(1);
+ error_after = curPos <= 1 ? "" : input_stream.GetImage();
+ }
+ throw new TokenMgrError(EOFSeen, curLexState, error_line, error_column, error_after,
curChar, TokenMgrError.LEXICAL_ERROR);
+ }
+}
- private final int jjMoveStringLiteralDfa0_0() {
- switch (curChar) {
- case 35:
- return jjMoveStringLiteralDfa1_0(0x8L);
- case 36:
- return jjMoveStringLiteralDfa1_0(0x4L);
- case 92:
- return jjStartNfaWithStates_0(0, 4, 2);
- default:
- return jjMoveNfa_0(7, 0);
- }
- }
-
- private final int jjMoveStringLiteralDfa1_0(long active0) {
- try {
- curChar = input_stream.readChar();
- } catch (java.io.IOException e) {
- jjStopStringLiteralDfa_0(0, active0);
- return 1;
- }
- switch (curChar) {
- case 123:
- if ((active0 & 0x4L) != 0L)
- return jjStopAtPos(1, 2);
- else if ((active0 & 0x8L) != 0L)
- return jjStopAtPos(1, 3);
- break;
- default:
- break;
- }
- return jjStartNfa_0(0, active0);
- }
-
- private final void jjCheckNAdd(int state) {
- if (jjrounds[state] != jjround) {
- jjstateSet[jjnewStateCnt++] = state;
- jjrounds[state] = jjround;
- }
- }
-
- private final void jjAddStates(int start, int end) {
- do {
- jjstateSet[jjnewStateCnt++] = jjnextStates[start];
- } while (start++ != end);
- }
-
- private final void jjCheckNAddTwoStates(int state1, int state2) {
- jjCheckNAdd(state1);
- jjCheckNAdd(state2);
- }
-
- private final void jjCheckNAddStates(int start, int end) {
- do {
- jjCheckNAdd(jjnextStates[start]);
- } while (start++ != end);
- }
-
- private final void jjCheckNAddStates(int start) {
- jjCheckNAdd(jjnextStates[start]);
- jjCheckNAdd(jjnextStates[start + 1]);
- }
-
- static final long[] jjbitVec0 = { 0xfffffffffffffffeL, 0xffffffffffffffffL,
- 0xffffffffffffffffL, 0xffffffffffffffffL };
-
- static final long[] jjbitVec2 = { 0x0L, 0x0L, 0xffffffffffffffffL,
- 0xffffffffffffffffL };
-
- private final int jjMoveNfa_0(int startState, int curPos) {
- int[] nextStates;
- int startsAt = 0;
- jjnewStateCnt = 8;
- int i = 1;
- jjstateSet[0] = startState;
- int j, kind = 0x7fffffff;
- for (;;) {
- if (++jjround == 0x7fffffff)
- ReInitRounds();
- if (curChar < 64) {
- long l = 1L << curChar;
- MatchLoop: do {
- switch (jjstateSet[--i]) {
- case 7:
- if ((0xffffffe7ffffffffL & l) != 0L) {
- if (kind > 1)
- kind = 1;
- jjCheckNAddStates(0, 3);
- } else if ((0x1800000000L & l) != 0L) {
- if (kind > 1)
- kind = 1;
- }
- if (curChar == 35)
- jjstateSet[jjnewStateCnt++] = 6;
- else if (curChar == 36)
- jjstateSet[jjnewStateCnt++] = 4;
- break;
- case 0:
- if ((0xffffffe7ffffffffL & l) == 0L)
- break;
- if (kind > 1)
- kind = 1;
- jjCheckNAddStates(0, 3);
- break;
- case 2:
- if ((0x1800000000L & l) == 0L)
- break;
- if (kind > 1)
- kind = 1;
- jjCheckNAddStates(0, 3);
- break;
- case 3:
- if (curChar == 36)
- jjstateSet[jjnewStateCnt++] = 4;
- break;
- case 4:
- if ((0xffffffefffffffffL & l) == 0L)
- break;
- if (kind > 1)
- kind = 1;
- jjCheckNAddStates(0, 3);
- break;
- case 5:
- if (curChar == 35)
- jjstateSet[jjnewStateCnt++] = 6;
- break;
- case 6:
- if ((0xfffffff7ffffffffL & l) == 0L)
- break;
- if (kind > 1)
- kind = 1;
- jjCheckNAddStates(0, 3);
- break;
- default:
- break;
- }
- } while (i != startsAt);
- } else if (curChar < 128) {
- long l = 1L << (curChar & 077);
- MatchLoop: do {
- switch (jjstateSet[--i]) {
- case 7:
- if ((0xffffffffefffffffL & l) != 0L) {
- if (kind > 1)
- kind = 1;
- jjCheckNAddStates(0, 3);
- } else if (curChar == 92)
- jjstateSet[jjnewStateCnt++] = 2;
- break;
- case 0:
- if ((0xffffffffefffffffL & l) == 0L)
- break;
- if (kind > 1)
- kind = 1;
- jjCheckNAddStates(0, 3);
- break;
- case 1:
- if (curChar == 92)
- jjstateSet[jjnewStateCnt++] = 2;
- break;
- case 2:
- if (curChar != 92)
- break;
- if (kind > 1)
- kind = 1;
- jjCheckNAddStates(0, 3);
- break;
- case 4:
- case 6:
- if ((0xf7ffffffffffffffL & l) == 0L)
- break;
- if (kind > 1)
- kind = 1;
- jjCheckNAddStates(0, 3);
- break;
- default:
- break;
- }
- } while (i != startsAt);
- } else {
- int hiByte = (int) (curChar >> 8);
- int i1 = hiByte >> 6;
- long l1 = 1L << (hiByte & 077);
- int i2 = (curChar & 0xff) >> 6;
- long l2 = 1L << (curChar & 077);
- MatchLoop: do {
- switch (jjstateSet[--i]) {
- case 7:
- case 0:
- case 4:
- case 6:
- if (!jjCanMove_0(hiByte, i1, i2, l1, l2))
- break;
- if (kind > 1)
- kind = 1;
- jjCheckNAddStates(0, 3);
- break;
- default:
- break;
- }
- } while (i != startsAt);
- }
- if (kind != 0x7fffffff) {
- jjmatchedKind = kind;
- jjmatchedPos = curPos;
- kind = 0x7fffffff;
- }
- ++curPos;
- if ((i = jjnewStateCnt) == (startsAt = 8 - (jjnewStateCnt = startsAt)))
- return curPos;
- try {
- curChar = input_stream.readChar();
- } catch (java.io.IOException e) {
- return curPos;
- }
- }
- }
-
- private final int jjStopStringLiteralDfa_1(int pos, long active0) {
- switch (pos) {
- case 0:
- if ((active0 & 0x141d555401c000L) != 0L) {
- jjmatchedKind = 53;
- return 41;
- }
- if ((active0 & 0x40000L) != 0L)
- return 1;
- return -1;
- case 1:
- if ((active0 & 0x41554000000L) != 0L)
- return 42;
- if ((active0 & 0x1419400001c000L) != 0L) {
- jjmatchedKind = 53;
- jjmatchedPos = 1;
- return 42;
- }
- return -1;
- case 2:
- if ((active0 & 0x14014000000000L) != 0L)
- return 42;
- if ((active0 & 0x18000001c000L) != 0L) {
- jjmatchedKind = 53;
- jjmatchedPos = 2;
- return 42;
- }
- return -1;
- case 3:
- if ((active0 & 0x14000L) != 0L)
- return 42;
- if ((active0 & 0x180000008000L) != 0L) {
- jjmatchedKind = 53;
- jjmatchedPos = 3;
- return 42;
- }
- return -1;
- case 4:
- if ((active0 & 0x80000008000L) != 0L)
- return 42;
- if ((active0 & 0x100000000000L) != 0L) {
- jjmatchedKind = 53;
- jjmatchedPos = 4;
- return 42;
- }
- return -1;
- case 5:
- if ((active0 & 0x100000000000L) != 0L) {
- jjmatchedKind = 53;
- jjmatchedPos = 5;
- return 42;
- }
- return -1;
- case 6:
- if ((active0 & 0x100000000000L) != 0L) {
- jjmatchedKind = 53;
- jjmatchedPos = 6;
- return 42;
- }
- return -1;
- case 7:
- if ((active0 & 0x100000000000L) != 0L) {
- jjmatchedKind = 53;
- jjmatchedPos = 7;
- return 42;
- }
- return -1;
- case 8:
- if ((active0 & 0x100000000000L) != 0L) {
- jjmatchedKind = 53;
- jjmatchedPos = 8;
- return 42;
- }
- return -1;
- default:
- return -1;
- }
- }
-
- private final int jjStartNfa_1(int pos, long active0) {
- return jjMoveNfa_1(jjStopStringLiteralDfa_1(pos, active0), pos + 1);
- }
-
- private final int jjStartNfaWithStates_1(int pos, int kind, int state) {
- jjmatchedKind = kind;
- jjmatchedPos = pos;
- try {
- curChar = input_stream.readChar();
- } catch (java.io.IOException e) {
- return pos + 1;
- }
- return jjMoveNfa_1(state, pos + 1);
- }
-
- private final int jjMoveStringLiteralDfa0_1() {
- switch (curChar) {
- case 33:
- jjmatchedKind = 37;
- return jjMoveStringLiteralDfa1_1(0x800000000L);
- case 37:
- return jjStopAtPos(0, 51);
- case 38:
- return jjMoveStringLiteralDfa1_1(0x8000000000L);
- case 40:
- return jjStopAtPos(0, 19);
- case 41:
- return jjStopAtPos(0, 20);
- case 42:
- return jjStopAtPos(0, 45);
- case 43:
- return jjStopAtPos(0, 46);
- case 44:
- return jjStopAtPos(0, 24);
- case 45:
- return jjStopAtPos(0, 47);
- case 46:
- return jjStartNfaWithStates_1(0, 18, 1);
- case 47:
- return jjStopAtPos(0, 49);
- case 58:
- return jjStopAtPos(0, 23);
- case 60:
- jjmatchedKind = 27;
- return jjMoveStringLiteralDfa1_1(0x80000000L);
- case 61:
- return jjMoveStringLiteralDfa1_1(0x200000000L);
- case 62:
- jjmatchedKind = 25;
- return jjMoveStringLiteralDfa1_1(0x20000000L);
- case 63:
- return jjStopAtPos(0, 48);
- case 91:
- return jjStopAtPos(0, 21);
- case 93:
- return jjStopAtPos(0, 22);
- case 97:
- return jjMoveStringLiteralDfa1_1(0x10000000000L);
- case 100:
- return jjMoveStringLiteralDfa1_1(0x4000000000000L);
- case 101:
- return jjMoveStringLiteralDfa1_1(0x80400000000L);
- case 102:
- return jjMoveStringLiteralDfa1_1(0x8000L);
- case 103:
- return jjMoveStringLiteralDfa1_1(0x44000000L);
- case 105:
- return jjMoveStringLiteralDfa1_1(0x100000000000L);
- case 108:
- return jjMoveStringLiteralDfa1_1(0x110000000L);
- case 109:
- return jjMoveStringLiteralDfa1_1(0x10000000000000L);
- case 110:
- return jjMoveStringLiteralDfa1_1(0x5000010000L);
- case 111:
- return jjMoveStringLiteralDfa1_1(0x40000000000L);
- case 116:
- return jjMoveStringLiteralDfa1_1(0x4000L);
- case 124:
- return jjMoveStringLiteralDfa1_1(0x20000000000L);
- case 125:
- return jjStopAtPos(0, 17);
- default:
- return jjMoveNfa_1(0, 0);
- }
- }
-
- private final int jjMoveStringLiteralDfa1_1(long active0) {
- try {
- curChar = input_stream.readChar();
- } catch (java.io.IOException e) {
- jjStopStringLiteralDfa_1(0, active0);
- return 1;
- }
- switch (curChar) {
- case 38:
- if ((active0 & 0x8000000000L) != 0L)
- return jjStopAtPos(1, 39);
- break;
- case 61:
- if ((active0 & 0x20000000L) != 0L)
- return jjStopAtPos(1, 29);
- else if ((active0 & 0x80000000L) != 0L)
- return jjStopAtPos(1, 31);
- else if ((active0 & 0x200000000L) != 0L)
- return jjStopAtPos(1, 33);
- else if ((active0 & 0x800000000L) != 0L)
- return jjStopAtPos(1, 35);
- break;
- case 97:
- return jjMoveStringLiteralDfa2_1(active0, 0x8000L);
- case 101:
- if ((active0 & 0x40000000L) != 0L)
- return jjStartNfaWithStates_1(1, 30, 42);
- else if ((active0 & 0x100000000L) != 0L)
- return jjStartNfaWithStates_1(1, 32, 42);
- else if ((active0 & 0x1000000000L) != 0L)
- return jjStartNfaWithStates_1(1, 36, 42);
- break;
- case 105:
- return jjMoveStringLiteralDfa2_1(active0, 0x4000000000000L);
- case 109:
- return jjMoveStringLiteralDfa2_1(active0, 0x80000000000L);
- case 110:
- return jjMoveStringLiteralDfa2_1(active0, 0x110000000000L);
- case 111:
- return jjMoveStringLiteralDfa2_1(active0, 0x10004000000000L);
- case 113:
- if ((active0 & 0x400000000L) != 0L)
- return jjStartNfaWithStates_1(1, 34, 42);
- break;
- case 114:
- if ((active0 & 0x40000000000L) != 0L)
- return jjStartNfaWithStates_1(1, 42, 42);
- return jjMoveStringLiteralDfa2_1(active0, 0x4000L);
- case 116:
- if ((active0 & 0x4000000L) != 0L)
- return jjStartNfaWithStates_1(1, 26, 42);
- else if ((active0 & 0x10000000L) != 0L)
- return jjStartNfaWithStates_1(1, 28, 42);
- break;
- case 117:
- return jjMoveStringLiteralDfa2_1(active0, 0x10000L);
- case 124:
- if ((active0 & 0x20000000000L) != 0L)
- return jjStopAtPos(1, 41);
- break;
- default:
- break;
- }
- return jjStartNfa_1(0, active0);
- }
-
- private final int jjMoveStringLiteralDfa2_1(long old0, long active0) {
- if (((active0 &= old0)) == 0L)
- return jjStartNfa_1(0, old0);
- try {
- curChar = input_stream.readChar();
- } catch (java.io.IOException e) {
- jjStopStringLiteralDfa_1(1, active0);
- return 2;
- }
- switch (curChar) {
- case 100:
- if ((active0 & 0x10000000000L) != 0L)
- return jjStartNfaWithStates_1(2, 40, 42);
- else if ((active0 & 0x10000000000000L) != 0L)
- return jjStartNfaWithStates_1(2, 52, 42);
- break;
- case 108:
- return jjMoveStringLiteralDfa3_1(active0, 0x18000L);
- case 112:
- return jjMoveStringLiteralDfa3_1(active0, 0x80000000000L);
- case 115:
- return jjMoveStringLiteralDfa3_1(active0, 0x100000000000L);
- case 116:
- if ((active0 & 0x4000000000L) != 0L)
- return jjStartNfaWithStates_1(2, 38, 42);
- break;
- case 117:
- return jjMoveStringLiteralDfa3_1(active0, 0x4000L);
- case 118:
- if ((active0 & 0x4000000000000L) != 0L)
- return jjStartNfaWithStates_1(2, 50, 42);
- break;
- default:
- break;
- }
- return jjStartNfa_1(1, active0);
- }
-
- private final int jjMoveStringLiteralDfa3_1(long old0, long active0) {
- if (((active0 &= old0)) == 0L)
- return jjStartNfa_1(1, old0);
- try {
- curChar = input_stream.readChar();
- } catch (java.io.IOException e) {
- jjStopStringLiteralDfa_1(2, active0);
- return 3;
- }
- switch (curChar) {
- case 101:
- if ((active0 & 0x4000L) != 0L)
- return jjStartNfaWithStates_1(3, 14, 42);
- break;
- case 108:
- if ((active0 & 0x10000L) != 0L)
- return jjStartNfaWithStates_1(3, 16, 42);
- break;
- case 115:
- return jjMoveStringLiteralDfa4_1(active0, 0x8000L);
- case 116:
- return jjMoveStringLiteralDfa4_1(active0, 0x180000000000L);
- default:
- break;
- }
- return jjStartNfa_1(2, active0);
- }
-
- private final int jjMoveStringLiteralDfa4_1(long old0, long active0) {
- if (((active0 &= old0)) == 0L)
- return jjStartNfa_1(2, old0);
- try {
- curChar = input_stream.readChar();
- } catch (java.io.IOException e) {
- jjStopStringLiteralDfa_1(3, active0);
- return 4;
- }
- switch (curChar) {
- case 97:
- return jjMoveStringLiteralDfa5_1(active0, 0x100000000000L);
- case 101:
- if ((active0 & 0x8000L) != 0L)
- return jjStartNfaWithStates_1(4, 15, 42);
- break;
- case 121:
- if ((active0 & 0x80000000000L) != 0L)
- return jjStartNfaWithStates_1(4, 43, 42);
- break;
- default:
- break;
- }
- return jjStartNfa_1(3, active0);
- }
-
- private final int jjMoveStringLiteralDfa5_1(long old0, long active0) {
- if (((active0 &= old0)) == 0L)
- return jjStartNfa_1(3, old0);
- try {
- curChar = input_stream.readChar();
- } catch (java.io.IOException e) {
- jjStopStringLiteralDfa_1(4, active0);
- return 5;
- }
- switch (curChar) {
- case 110:
- return jjMoveStringLiteralDfa6_1(active0, 0x100000000000L);
- default:
- break;
- }
- return jjStartNfa_1(4, active0);
- }
-
- private final int jjMoveStringLiteralDfa6_1(long old0, long active0) {
- if (((active0 &= old0)) == 0L)
- return jjStartNfa_1(4, old0);
- try {
- curChar = input_stream.readChar();
- } catch (java.io.IOException e) {
- jjStopStringLiteralDfa_1(5, active0);
- return 6;
- }
- switch (curChar) {
- case 99:
- return jjMoveStringLiteralDfa7_1(active0, 0x100000000000L);
- default:
- break;
- }
- return jjStartNfa_1(5, active0);
- }
-
- private final int jjMoveStringLiteralDfa7_1(long old0, long active0) {
- if (((active0 &= old0)) == 0L)
- return jjStartNfa_1(5, old0);
- try {
- curChar = input_stream.readChar();
- } catch (java.io.IOException e) {
- jjStopStringLiteralDfa_1(6, active0);
- return 7;
- }
- switch (curChar) {
- case 101:
- return jjMoveStringLiteralDfa8_1(active0, 0x100000000000L);
- default:
- break;
- }
- return jjStartNfa_1(6, active0);
- }
-
- private final int jjMoveStringLiteralDfa8_1(long old0, long active0) {
- if (((active0 &= old0)) == 0L)
- return jjStartNfa_1(6, old0);
- try {
- curChar = input_stream.readChar();
- } catch (java.io.IOException e) {
- jjStopStringLiteralDfa_1(7, active0);
- return 8;
- }
- switch (curChar) {
- case 111:
- return jjMoveStringLiteralDfa9_1(active0, 0x100000000000L);
- default:
- break;
- }
- return jjStartNfa_1(7, active0);
- }
-
- private final int jjMoveStringLiteralDfa9_1(long old0, long active0) {
- if (((active0 &= old0)) == 0L)
- return jjStartNfa_1(7, old0);
- try {
- curChar = input_stream.readChar();
- } catch (java.io.IOException e) {
- jjStopStringLiteralDfa_1(8, active0);
- return 9;
- }
- switch (curChar) {
- case 102:
- if ((active0 & 0x100000000000L) != 0L)
- return jjStartNfaWithStates_1(9, 44, 42);
- break;
- default:
- break;
- }
- return jjStartNfa_1(8, active0);
- }
-
- static final long[] jjbitVec3 = { 0x1ff00000fffffffeL, 0xffffffffffffc000L,
- 0xffffffffL, 0x600000000000000L };
-
- static final long[] jjbitVec4 = { 0x0L, 0x0L, 0x0L, 0xff7fffffff7fffffL };
-
- static final long[] jjbitVec5 = { 0x0L, 0xffffffffffffffffL,
- 0xffffffffffffffffL, 0xffffffffffffffffL };
-
- static final long[] jjbitVec6 = { 0xffffffffffffffffL, 0xffffffffffffffffL,
- 0xffffL, 0x0L };
-
- static final long[] jjbitVec7 = { 0xffffffffffffffffL, 0xffffffffffffffffL,
- 0x0L, 0x0L };
-
- static final long[] jjbitVec8 = { 0x3fffffffffffL, 0x0L, 0x0L, 0x0L };
-
- private final int jjMoveNfa_1(int startState, int curPos) {
- int[] nextStates;
- int startsAt = 0;
- jjnewStateCnt = 41;
- int i = 1;
- jjstateSet[0] = startState;
- int j, kind = 0x7fffffff;
- for (;;) {
- if (++jjround == 0x7fffffff)
- ReInitRounds();
- if (curChar < 64) {
- long l = 1L << curChar;
- MatchLoop: do {
- switch (jjstateSet[--i]) {
- case 41:
- if ((0x3ff001000000000L & l) != 0L) {
- if (kind > 55)
- kind = 55;
- jjCheckNAdd(40);
- } else if ((0x600000000000L & l) != 0L)
- jjCheckNAddStates(4, 6);
- else if (curChar == 58) {
- if (kind > 54)
- kind = 54;
- }
- if ((0x3ff001000000000L & l) != 0L)
- jjCheckNAddStates(7, 10);
- if ((0x3ff001000000000L & l) != 0L) {
- if (kind > 53)
- kind = 53;
- jjCheckNAdd(34);
- }
- if ((0x1800000000L & l) != 0L)
- jjCheckNAddStates(11, 14);
- break;
- case 0:
- if ((0x3ff000000000000L & l) != 0L) {
- if (kind > 9)
- kind = 9;
- jjCheckNAddStates(15, 19);
- } else if ((0x1800000000L & l) != 0L) {
- if (kind > 53)
- kind = 53;
- jjCheckNAddStates(20, 25);
- } else if (curChar == 39)
- jjCheckNAddStates(26, 30);
- else if (curChar == 34)
- jjCheckNAddStates(31, 35);
- else if (curChar == 46)
- jjCheckNAdd(1);
- break;
- case 42:
- if ((0x3ff001000000000L & l) != 0L) {
- if (kind > 55)
- kind = 55;
- jjCheckNAdd(40);
- } else if ((0x600000000000L & l) != 0L)
- jjCheckNAddStates(4, 6);
- else if (curChar == 58) {
- if (kind > 54)
- kind = 54;
- }
- if ((0x3ff001000000000L & l) != 0L)
- jjCheckNAddStates(11, 14);
- if ((0x3ff001000000000L & l) != 0L)
- jjCheckNAddStates(7, 10);
- if ((0x3ff001000000000L & l) != 0L) {
- if (kind > 53)
- kind = 53;
- jjCheckNAdd(34);
- }
- if ((0x1800000000L & l) != 0L)
- jjCheckNAddStates(11, 14);
- break;
- case 1:
- if ((0x3ff000000000000L & l) == 0L)
- break;
- if (kind > 10)
- kind = 10;
- jjCheckNAddTwoStates(1, 2);
- break;
- case 3:
- if ((0x280000000000L & l) != 0L)
- jjCheckNAdd(4);
- break;
- case 4:
- if ((0x3ff000000000000L & l) == 0L)
- break;
- if (kind > 10)
- kind = 10;
- jjCheckNAdd(4);
- break;
- case 5:
- if ((0x3ff000000000000L & l) == 0L)
- break;
- if (kind > 9)
- kind = 9;
- jjCheckNAddStates(15, 19);
- break;
- case 6:
- if ((0x3ff000000000000L & l) == 0L)
- break;
- if (kind > 9)
- kind = 9;
- jjCheckNAdd(6);
- break;
- case 7:
- if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddTwoStates(7, 8);
- break;
- case 8:
- if (curChar != 46)
- break;
- if (kind > 10)
- kind = 10;
- jjCheckNAddTwoStates(9, 10);
- break;
- case 9:
- if ((0x3ff000000000000L & l) == 0L)
- break;
- if (kind > 10)
- kind = 10;
- jjCheckNAddTwoStates(9, 10);
- break;
- case 11:
- if ((0x280000000000L & l) != 0L)
- jjCheckNAdd(12);
- break;
- case 12:
- if ((0x3ff000000000000L & l) == 0L)
- break;
- if (kind > 10)
- kind = 10;
- jjCheckNAdd(12);
- break;
- case 13:
- if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddTwoStates(13, 14);
- break;
- case 15:
- if ((0x280000000000L & l) != 0L)
- jjCheckNAdd(16);
- break;
- case 16:
- if ((0x3ff000000000000L & l) == 0L)
- break;
- if (kind > 10)
- kind = 10;
- jjCheckNAdd(16);
- break;
- case 17:
- if (curChar == 34)
- jjCheckNAddStates(31, 35);
- break;
- case 18:
- if ((0xfffffffbffffffffL & l) != 0L)
- jjCheckNAddStates(36, 38);
- break;
- case 20:
- if (curChar == 34)
- jjCheckNAddStates(36, 38);
- break;
- case 21:
- if (curChar == 34 && kind > 12)
- kind = 12;
- break;
- case 22:
- if ((0xfffffffbffffffffL & l) != 0L)
- jjCheckNAddTwoStates(22, 23);
- break;
- case 24:
- if ((0xfffffffbffffffffL & l) != 0L && kind > 13)
- kind = 13;
- break;
- case 25:
- if (curChar == 39)
- jjCheckNAddStates(26, 30);
- break;
- case 26:
- if ((0xffffff7fffffffffL & l) != 0L)
- jjCheckNAddStates(39, 41);
- break;
- case 28:
- if (curChar == 39)
- jjCheckNAddStates(39, 41);
- break;
- case 29:
- if (curChar == 39 && kind > 12)
- kind = 12;
- break;
- case 30:
- if ((0xffffff7fffffffffL & l) != 0L)
- jjCheckNAddTwoStates(30, 31);
- break;
- case 32:
- if ((0xffffff7fffffffffL & l) != 0L && kind > 13)
- kind = 13;
- break;
- case 33:
- if ((0x1800000000L & l) == 0L)
- break;
- if (kind > 53)
- kind = 53;
- jjCheckNAddStates(20, 25);
- break;
- case 34:
- if ((0x3ff001000000000L & l) == 0L)
- break;
- if (kind > 53)
- kind = 53;
- jjCheckNAdd(34);
- break;
- case 35:
- if ((0x3ff001000000000L & l) != 0L)
- jjCheckNAddStates(7, 10);
- break;
- case 36:
- if ((0x1800000000L & l) != 0L)
- jjCheckNAddStates(11, 14);
- break;
- case 37:
- if ((0x3ff001000000000L & l) != 0L)
- jjCheckNAddStates(11, 14);
- break;
- case 38:
- if ((0x600000000000L & l) != 0L)
- jjCheckNAddStates(4, 6);
- break;
- case 39:
- if (curChar == 58 && kind > 54)
- kind = 54;
- break;
- case 40:
- if ((0x3ff001000000000L & l) == 0L)
- break;
- if (kind > 55)
- kind = 55;
- jjCheckNAdd(40);
- break;
- default:
- break;
- }
- } while (i != startsAt);
- } else if (curChar < 128) {
- long l = 1L << (curChar & 077);
- MatchLoop: do {
- switch (jjstateSet[--i]) {
- case 41:
- if ((0x7fffffe87fffffeL & l) != 0L) {
- if (kind > 55)
- kind = 55;
- jjCheckNAdd(40);
- }
- if ((0x7fffffe87fffffeL & l) != 0L)
- jjCheckNAddStates(11, 14);
- if ((0x7fffffe87fffffeL & l) != 0L)
- jjCheckNAddStates(7, 10);
- if ((0x7fffffe87fffffeL & l) != 0L) {
- if (kind > 53)
- kind = 53;
- jjCheckNAdd(34);
- }
- break;
- case 0:
- if ((0x7fffffe87fffffeL & l) == 0L)
- break;
- if (kind > 53)
- kind = 53;
- jjCheckNAddStates(20, 25);
- break;
- case 42:
- if ((0x7fffffe87fffffeL & l) != 0L) {
- if (kind > 55)
- kind = 55;
- jjCheckNAdd(40);
- }
- if ((0x7fffffe87fffffeL & l) != 0L)
- jjCheckNAddStates(11, 14);
- if ((0x7fffffe87fffffeL & l) != 0L)
- jjCheckNAddStates(11, 14);
- if ((0x7fffffe87fffffeL & l) != 0L)
- jjCheckNAddStates(7, 10);
- if ((0x7fffffe87fffffeL & l) != 0L) {
- if (kind > 53)
- kind = 53;
- jjCheckNAdd(34);
- }
- break;
- case 2:
- if ((0x2000000020L & l) != 0L)
- jjAddStates(42, 43);
- break;
- case 10:
- if ((0x2000000020L & l) != 0L)
- jjAddStates(44, 45);
- break;
- case 14:
- if ((0x2000000020L & l) != 0L)
- jjAddStates(46, 47);
- break;
- case 18:
- if ((0xffffffffefffffffL & l) != 0L)
- jjCheckNAddStates(36, 38);
- break;
- case 19:
- if (curChar == 92)
- jjstateSet[jjnewStateCnt++] = 20;
- break;
- case 20:
- if (curChar == 92)
- jjCheckNAddStates(36, 38);
- break;
- case 22:
- if ((0xffffffffefffffffL & l) != 0L)
- jjAddStates(48, 49);
- break;
- case 23:
- if (curChar == 92)
- jjstateSet[jjnewStateCnt++] = 24;
- break;
- case 24:
- case 32:
- if ((0xffffffffefffffffL & l) != 0L && kind > 13)
- kind = 13;
- break;
- case 26:
- if ((0xffffffffefffffffL & l) != 0L)
- jjCheckNAddStates(39, 41);
- break;
- case 27:
- if (curChar == 92)
- jjstateSet[jjnewStateCnt++] = 28;
- break;
- case 28:
- if (curChar == 92)
- jjCheckNAddStates(39, 41);
- break;
- case 30:
- if ((0xffffffffefffffffL & l) != 0L)
- jjAddStates(50, 51);
- break;
- case 31:
- if (curChar == 92)
- jjstateSet[jjnewStateCnt++] = 32;
- break;
- case 34:
- if ((0x7fffffe87fffffeL & l) == 0L)
- break;
- if (kind > 53)
- kind = 53;
- jjCheckNAdd(34);
- break;
- case 35:
- if ((0x7fffffe87fffffeL & l) != 0L)
- jjCheckNAddStates(7, 10);
- break;
- case 36:
- if ((0x7fffffe87fffffeL & l) != 0L)
- jjCheckNAddStates(11, 14);
- break;
- case 37:
- if ((0x7fffffe87fffffeL & l) != 0L)
- jjCheckNAddStates(11, 14);
- break;
- case 40:
- if ((0x7fffffe87fffffeL & l) == 0L)
- break;
- if (kind > 55)
- kind = 55;
- jjCheckNAdd(40);
- break;
- default:
- break;
- }
- } while (i != startsAt);
- } else {
- int hiByte = (int) (curChar >> 8);
- int i1 = hiByte >> 6;
- long l1 = 1L << (hiByte & 077);
- int i2 = (curChar & 0xff) >> 6;
- long l2 = 1L << (curChar & 077);
- MatchLoop: do {
- switch (jjstateSet[--i]) {
- case 41:
- if (jjCanMove_1(hiByte, i1, i2, l1, l2)) {
- if (kind > 53)
- kind = 53;
- jjCheckNAdd(34);
- }
- if (jjCanMove_1(hiByte, i1, i2, l1, l2))
- jjCheckNAddStates(7, 10);
- if (jjCanMove_1(hiByte, i1, i2, l1, l2))
- jjCheckNAddStates(11, 14);
- if (jjCanMove_1(hiByte, i1, i2, l1, l2)) {
- if (kind > 55)
- kind = 55;
- jjCheckNAdd(40);
- }
- break;
- case 0:
- if (!jjCanMove_1(hiByte, i1, i2, l1, l2))
- break;
- if (kind > 53)
- kind = 53;
- jjCheckNAddStates(20, 25);
- break;
- case 42:
- if (jjCanMove_1(hiByte, i1, i2, l1, l2)) {
- if (kind > 53)
- kind = 53;
- jjCheckNAdd(34);
- }
- if (jjCanMove_1(hiByte, i1, i2, l1, l2))
- jjCheckNAddStates(7, 10);
- if (jjCanMove_1(hiByte, i1, i2, l1, l2))
- jjCheckNAddStates(11, 14);
- if (jjCanMove_1(hiByte, i1, i2, l1, l2))
- jjCheckNAddStates(11, 14);
- if (jjCanMove_1(hiByte, i1, i2, l1, l2)) {
- if (kind > 55)
- kind = 55;
- jjCheckNAdd(40);
- }
- break;
- case 18:
- if (jjCanMove_0(hiByte, i1, i2, l1, l2))
- jjAddStates(36, 38);
- break;
- case 22:
- if (jjCanMove_0(hiByte, i1, i2, l1, l2))
- jjAddStates(48, 49);
- break;
- case 24:
- case 32:
- if (jjCanMove_0(hiByte, i1, i2, l1, l2) && kind > 13)
- kind = 13;
- break;
- case 26:
- if (jjCanMove_0(hiByte, i1, i2, l1, l2))
- jjAddStates(39, 41);
- break;
- case 30:
- if (jjCanMove_0(hiByte, i1, i2, l1, l2))
- jjAddStates(50, 51);
- break;
- case 34:
- if (!jjCanMove_1(hiByte, i1, i2, l1, l2))
- break;
- if (kind > 53)
- kind = 53;
- jjCheckNAdd(34);
- break;
- case 35:
- if (jjCanMove_1(hiByte, i1, i2, l1, l2))
- jjCheckNAddStates(7, 10);
- break;
- case 36:
- if (jjCanMove_1(hiByte, i1, i2, l1, l2))
- jjCheckNAddStates(11, 14);
- break;
- case 37:
- if (jjCanMove_1(hiByte, i1, i2, l1, l2))
- jjCheckNAddStates(11, 14);
- break;
- case 40:
- if (!jjCanMove_1(hiByte, i1, i2, l1, l2))
- break;
- if (kind > 55)
- kind = 55;
- jjCheckNAdd(40);
- break;
- default:
- break;
- }
- } while (i != startsAt);
- }
- if (kind != 0x7fffffff) {
- jjmatchedKind = kind;
- jjmatchedPos = curPos;
- kind = 0x7fffffff;
- }
- ++curPos;
- if ((i = jjnewStateCnt) == (startsAt = 41 - (jjnewStateCnt = startsAt)))
- return curPos;
- try {
- curChar = input_stream.readChar();
- } catch (java.io.IOException e) {
- return curPos;
- }
- }
- }
-
- static final int[] jjnextStates = { 0, 1, 3, 5, 36, 38, 39, 35, 36, 38, 39,
- 36, 37, 38, 39, 6, 7, 8, 13, 14, 34, 35, 36, 38, 39, 40, 26, 27,
- 29, 30, 31, 18, 19, 21, 22, 23, 18, 19, 21, 26, 27, 29, 3, 4, 11,
- 12, 15, 16, 22, 23, 30, 31, };
-
- private static final boolean jjCanMove_0(int hiByte, int i1, int i2,
- long l1, long l2) {
- switch (hiByte) {
- case 0:
- return ((jjbitVec2[i2] & l2) != 0L);
- default:
- if ((jjbitVec0[i1] & l1) != 0L)
- return true;
- return false;
- }
- }
-
- private static final boolean jjCanMove_1(int hiByte, int i1, int i2,
- long l1, long l2) {
- switch (hiByte) {
- case 0:
- return ((jjbitVec4[i2] & l2) != 0L);
- case 48:
- return ((jjbitVec5[i2] & l2) != 0L);
- case 49:
- return ((jjbitVec6[i2] & l2) != 0L);
- case 51:
- return ((jjbitVec7[i2] & l2) != 0L);
- case 61:
- return ((jjbitVec8[i2] & l2) != 0L);
- default:
- if ((jjbitVec3[i1] & l1) != 0L)
- return true;
- return false;
- }
- }
-
- public static final String[] jjstrLiteralImages = { "", null,
"\44\173",
- "\43\173", null, null, null, null, null, null, null, null, null,
- null, "\164\162\165\145", "\146\141\154\163\145",
- "\156\165\154\154", "\175", "\56", "\50",
"\51", "\133", "\135",
- "\72", "\54", "\76", "\147\164",
"\74", "\154\164", "\76\75",
- "\147\145", "\74\75", "\154\145", "\75\75",
"\145\161", "\41\75",
- "\156\145", "\41", "\156\157\164", "\46\46",
"\141\156\144",
- "\174\174", "\157\162", "\145\155\160\164\171",
- "\151\156\163\164\141\156\143\145\157\146", "\52",
"\53", "\55",
- "\77", "\57", "\144\151\166", "\45",
"\155\157\144", null, null,
- null, null, null, null, null, };
-
- public static final String[] lexStateNames = { "DEFAULT",
"IN_EXPRESSION", };
-
- public static final int[] jjnewLexState = { -1, -1, 1, 1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -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, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, };
-
- static final long[] jjtoToken = { 0x8fffffffffff60fL, };
-
- static final long[] jjtoSkip = { 0x1f0L, };
-
- protected SimpleCharStream input_stream;
-
- private final int[] jjrounds = new int[41];
-
- private final int[] jjstateSet = new int[82];
-
- protected char curChar;
-
- public ELParserTokenManager(SimpleCharStream stream) {
- if (SimpleCharStream.staticFlag)
- throw new Error(
- "ERROR: Cannot use a static CharStream class with a non-static lexical
analyzer.");
- input_stream = stream;
- }
-
- public ELParserTokenManager(SimpleCharStream stream, int lexState) {
- this(stream);
- SwitchTo(lexState);
- }
-
- public void ReInit(SimpleCharStream stream) {
- jjmatchedPos = jjnewStateCnt = 0;
- curLexState = defaultLexState;
- input_stream = stream;
- ReInitRounds();
- }
-
- private final void ReInitRounds() {
- int i;
- jjround = 0x80000001;
- for (i = 41; i-- > 0;)
- jjrounds[i] = 0x80000000;
- }
-
- public void ReInit(SimpleCharStream stream, int lexState) {
- ReInit(stream);
- SwitchTo(lexState);
- }
-
- public void SwitchTo(int lexState) {
- if (lexState >= 2 || lexState < 0)
- throw new TokenMgrError("Error: Ignoring invalid lexical state : "
- + lexState + ". State unchanged.",
- TokenMgrError.INVALID_LEXICAL_STATE);
- else
- curLexState = lexState;
- }
-
- protected Token jjFillToken() {
- Token t = Token.newToken(jjmatchedKind);
- t.kind = jjmatchedKind;
- String im = jjstrLiteralImages[jjmatchedKind];
- t.image = (im == null) ? input_stream.GetImage() : im;
- t.beginLine = input_stream.getBeginLine();
- t.beginColumn = input_stream.getBeginColumn();
- t.endLine = input_stream.getEndLine();
- t.endColumn = input_stream.getEndColumn();
- return t;
- }
-
- int curLexState = 0;
-
- int defaultLexState = 0;
-
- int jjnewStateCnt;
-
- int jjround;
-
- int jjmatchedPos;
-
- int jjmatchedKind;
-
- public Token getNextToken() {
- int kind;
- Token specialToken = null;
- Token matchedToken;
- int curPos = 0;
-
- EOFLoop: for (;;) {
- try {
- curChar = input_stream.BeginToken();
- } catch (java.io.IOException e) {
- jjmatchedKind = 0;
- matchedToken = jjFillToken();
- return matchedToken;
- }
-
- switch (curLexState) {
- case 0:
- jjmatchedKind = 0x7fffffff;
- jjmatchedPos = 0;
- curPos = jjMoveStringLiteralDfa0_0();
- break;
- case 1:
- try {
- input_stream.backup(0);
- while (curChar <= 32
- && (0x100002600L & (1L << curChar)) != 0L)
- curChar = input_stream.BeginToken();
- } catch (java.io.IOException e1) {
- continue EOFLoop;
- }
- jjmatchedKind = 0x7fffffff;
- jjmatchedPos = 0;
- curPos = jjMoveStringLiteralDfa0_1();
- if (jjmatchedPos == 0 && jjmatchedKind > 59) {
- jjmatchedKind = 59;
- }
- break;
- }
- if (jjmatchedKind != 0x7fffffff) {
- if (jjmatchedPos + 1 < curPos)
- input_stream.backup(curPos - jjmatchedPos - 1);
- if ((jjtoToken[jjmatchedKind >> 6] & (1L << (jjmatchedKind &
077))) != 0L) {
- matchedToken = jjFillToken();
- if (jjnewLexState[jjmatchedKind] != -1)
- curLexState = jjnewLexState[jjmatchedKind];
- return matchedToken;
- } else {
- if (jjnewLexState[jjmatchedKind] != -1)
- curLexState = jjnewLexState[jjmatchedKind];
- continue EOFLoop;
- }
- }
- int error_line = input_stream.getEndLine();
- int error_column = input_stream.getEndColumn();
- String error_after = null;
- boolean EOFSeen = false;
- try {
- input_stream.readChar();
- input_stream.backup(1);
- } catch (java.io.IOException e1) {
- EOFSeen = true;
- error_after = curPos <= 1 ? "" : input_stream.GetImage();
- if (curChar == '\n' || curChar == '\r') {
- error_line++;
- error_column = 0;
- } else
- error_column++;
- }
- if (!EOFSeen) {
- input_stream.backup(1);
- error_after = curPos <= 1 ? "" : input_stream.GetImage();
- }
- throw new TokenMgrError(EOFSeen, curLexState, error_line,
- error_column, error_after, curChar,
- TokenMgrError.LEXICAL_ERROR);
- }
- }
-
}
Modified: trunk/java/org/apache/el/parser/ELParserTreeConstants.java
===================================================================
--- trunk/java/org/apache/el/parser/ELParserTreeConstants.java 2008-05-21 07:36:03 UTC
(rev 632)
+++ trunk/java/org/apache/el/parser/ELParserTreeConstants.java 2008-05-21 11:51:36 UTC
(rev 633)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *
http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
/* Generated By:JJTree: Do not edit this line. ./ELParserTreeConstants.java */
package org.apache.el.parser;
Modified: trunk/java/org/apache/el/parser/JJTELParserState.java
===================================================================
--- trunk/java/org/apache/el/parser/JJTELParserState.java 2008-05-21 07:36:03 UTC (rev
632)
+++ trunk/java/org/apache/el/parser/JJTELParserState.java 2008-05-21 11:51:36 UTC (rev
633)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *
http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
/* Generated By:JJTree: Do not edit this line.
/tomc/web.align/webtier-alignment/prototype/el-ri/src/com/sun/el/parser/JJTELParserState.java
*/
package org.apache.el.parser;
Modified: trunk/java/org/apache/el/parser/ParseException.java
===================================================================
--- trunk/java/org/apache/el/parser/ParseException.java 2008-05-21 07:36:03 UTC (rev 632)
+++ trunk/java/org/apache/el/parser/ParseException.java 2008-05-21 11:51:36 UTC (rev 633)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *
http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
/* Generated By:JavaCC: Do not edit this line. ParseException.java Version 3.0 */
package org.apache.el.parser;
@@ -98,19 +114,19 @@
if (!specialConstructor) {
return super.getMessage();
}
- String expected = "";
+ StringBuffer expected = new StringBuffer();
int maxSize = 0;
for (int i = 0; i < expectedTokenSequences.length; i++) {
if (maxSize < expectedTokenSequences[i].length) {
maxSize = expectedTokenSequences[i].length;
}
for (int j = 0; j < expectedTokenSequences[i].length; j++) {
- expected += tokenImage[expectedTokenSequences[i][j]] + " ";
+ expected.append(tokenImage[expectedTokenSequences[i][j]]).append(" ");
}
if (expectedTokenSequences[i][expectedTokenSequences[i].length - 1] != 0) {
- expected += "...";
+ expected.append("...");
}
- expected += eol + " ";
+ expected.append(eol).append(" ");
}
String retval = "Encountered \"";
Token tok = currentToken.next;
@@ -130,7 +146,7 @@
} else {
retval += "Was expecting one of:" + eol + " ";
}
- retval += expected;
+ retval += expected.toString();
return retval;
}
Modified: trunk/java/org/apache/el/parser/SimpleCharStream.java
===================================================================
--- trunk/java/org/apache/el/parser/SimpleCharStream.java 2008-05-21 07:36:03 UTC (rev
632)
+++ trunk/java/org/apache/el/parser/SimpleCharStream.java 2008-05-21 11:51:36 UTC (rev
633)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *
http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
/* Generated By:JavaCC: Do not edit this line. SimpleCharStream.java Version 4.0 */
package org.apache.el.parser;
Modified: trunk/java/org/apache/el/parser/SimpleNode.java
===================================================================
--- trunk/java/org/apache/el/parser/SimpleNode.java 2008-05-21 07:36:03 UTC (rev 632)
+++ trunk/java/org/apache/el/parser/SimpleNode.java 2008-05-21 11:51:36 UTC (rev 633)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *
http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
/* Generated By:JJTree: Do not edit this line. SimpleNode.java */
package org.apache.el.parser;
Modified: trunk/java/org/apache/el/parser/Token.java
===================================================================
--- trunk/java/org/apache/el/parser/Token.java 2008-05-21 07:36:03 UTC (rev 632)
+++ trunk/java/org/apache/el/parser/Token.java 2008-05-21 11:51:36 UTC (rev 633)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *
http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
/* Generated By:JavaCC: Do not edit this line. Token.java Version 3.0 */
package org.apache.el.parser;
Modified: trunk/java/org/apache/el/parser/TokenMgrError.java
===================================================================
--- trunk/java/org/apache/el/parser/TokenMgrError.java 2008-05-21 07:36:03 UTC (rev 632)
+++ trunk/java/org/apache/el/parser/TokenMgrError.java 2008-05-21 11:51:36 UTC (rev 633)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *
http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
/* Generated By:JavaCC: Do not edit this line. TokenMgrError.java Version 3.0 */
package org.apache.el.parser;
Modified: trunk/java/org/apache/tomcat/util/net/AprEndpoint.java
===================================================================
--- trunk/java/org/apache/tomcat/util/net/AprEndpoint.java 2008-05-21 07:36:03 UTC (rev
632)
+++ trunk/java/org/apache/tomcat/util/net/AprEndpoint.java 2008-05-21 11:51:36 UTC (rev
633)
@@ -2199,11 +2199,9 @@
// Destroy file descriptor pool, which should close
the file
Pool.destroy(state.fdpool);
Socket.timeoutSet(state.socket, soTimeout * 1000);
- // If all done hand this socket off to a worker for
+ // If all done put the socket back in the poller for
// processing of further requests
- if (!processSocket(state.socket)) {
- Socket.destroy(state.socket);
- }
+ getPoller().add(state.socket);
} else {
// Close the socket since this is
// the end of not keep-alive request.
Modified: trunk/java/org/apache/tomcat/util/net/jsse/JSSESocketFactory.java
===================================================================
--- trunk/java/org/apache/tomcat/util/net/jsse/JSSESocketFactory.java 2008-05-21 07:36:03
UTC (rev 632)
+++ trunk/java/org/apache/tomcat/util/net/jsse/JSSESocketFactory.java 2008-05-21 11:51:36
UTC (rev 633)
@@ -249,38 +249,39 @@
/*
* Gets the SSL server's keystore.
*/
- protected KeyStore getKeystore(String type, String pass)
+ protected KeyStore getKeystore(String type, String provider, String pass)
throws IOException {
String keystoreFile = (String)attributes.get("keystore");
if (keystoreFile == null)
keystoreFile = defaultKeystoreFile;
- return getStore(type, keystoreFile, pass);
+ return getStore(type, provider, keystoreFile, pass);
}
/*
* Gets the SSL server's truststore.
*/
- protected KeyStore getTrustStore(String keystoreType) throws IOException {
+ protected KeyStore getTrustStore(String keystoreType,
+ String keystoreProvider) throws IOException {
KeyStore trustStore = null;
- String trustStoreFile = (String)attributes.get("truststoreFile");
- if(trustStoreFile == null) {
- trustStoreFile = System.getProperty("javax.net.ssl.trustStore");
+ String truststoreFile = (String)attributes.get("truststoreFile");
+ if(truststoreFile == null) {
+ truststoreFile = System.getProperty("javax.net.ssl.trustStore");
}
if(log.isDebugEnabled()) {
- log.debug("Truststore = " + trustStoreFile);
+ log.debug("Truststore = " + truststoreFile);
}
- String trustStorePassword = (String)attributes.get("truststorePass");
- if( trustStorePassword == null) {
- trustStorePassword =
System.getProperty("javax.net.ssl.trustStorePassword");
+ String truststorePassword = (String)attributes.get("truststorePass");
+ if( truststorePassword == null) {
+ truststorePassword =
System.getProperty("javax.net.ssl.trustStorePassword");
}
- if( trustStorePassword == null ) {
- trustStorePassword = getKeystorePassword();
+ if( truststorePassword == null ) {
+ truststorePassword = getKeystorePassword();
}
if(log.isDebugEnabled()) {
- log.debug("TrustPass = " + trustStorePassword);
+ log.debug("TrustPass = " + truststorePassword);
}
String truststoreType = (String)attributes.get("truststoreType");
if( truststoreType == null) {
@@ -292,25 +293,42 @@
if(log.isDebugEnabled()) {
log.debug("trustType = " + truststoreType);
}
- if (trustStoreFile != null && trustStorePassword != null){
- trustStore = getStore(truststoreType, trustStoreFile,
- trustStorePassword);
+ String truststoreProvider =
+ (String)attributes.get("truststoreProvider");
+ if( truststoreProvider == null) {
+ truststoreProvider =
+ System.getProperty("javax.net.ssl.trustStoreProvider");
}
+ if (truststoreProvider == null) {
+ truststoreProvider = keystoreProvider;
+ }
+ if(log.isDebugEnabled()) {
+ log.debug("trustProvider = " + truststoreProvider);
+ }
+ if (truststoreFile != null && truststorePassword != null){
+ trustStore = getStore(truststoreType, truststoreProvider,
+ truststoreFile, truststorePassword);
+ }
+
return trustStore;
}
/*
* Gets the key- or truststore with the specified type, path, and password.
*/
- private KeyStore getStore(String type, String path, String pass)
- throws IOException {
+ private KeyStore getStore(String type, String provider, String path,
+ String pass) throws IOException {
KeyStore ks = null;
InputStream istream = null;
try {
- ks = KeyStore.getInstance(type);
- if (!("PKCS11".equalsIgnoreCase(type) ||
"".equalsIgnoreCase(path))) {
+ if (provider == null) {
+ ks = KeyStore.getInstance(type);
+ } else {
+ ks = KeyStore.getInstance(type, provider);
+ }
+ if(!("PKCS11".equalsIgnoreCase(type) ||
"".equalsIgnoreCase(path))) {
File keyStoreFile = new File(path);
if (!keyStoreFile.isAbsolute()) {
keyStoreFile = new
File(System.getProperty("catalina.base"),
@@ -377,15 +395,22 @@
keystoreType = defaultKeystoreType;
}
- String trustAlgorithm = (String)attributes.get("truststoreAlgorithm");
- if( trustAlgorithm == null ) {
- trustAlgorithm = TrustManagerFactory.getDefaultAlgorithm();
- }
+ String keystoreProvider =
+ (String) attributes.get("keystoreProvider");
+
+ String trustAlgorithm =
+ (String)attributes.get("truststoreAlgorithm");
+ if( trustAlgorithm == null ) {
+ trustAlgorithm = TrustManagerFactory.getDefaultAlgorithm();
+ }
+
// Create and init SSLContext
SSLContext context = SSLContext.getInstance(protocol);
- context.init(getKeyManagers(keystoreType, algorithm,
- (String) attributes.get("keyAlias")),
- getTrustManagers(keystoreType, trustAlgorithm),
+ context.init(getKeyManagers(keystoreType, keystoreProvider,
+ algorithm,
+ (String) attributes.get("keyAlias")),
+ getTrustManagers(keystoreType, keystoreProvider,
+ trustAlgorithm),
new SecureRandom());
// create proxy
@@ -407,6 +432,7 @@
* Gets the initialized key managers.
*/
protected KeyManager[] getKeyManagers(String keystoreType,
+ String keystoreProvider,
String algorithm,
String keyAlias)
throws Exception {
@@ -415,7 +441,7 @@
String keystorePass = getKeystorePassword();
- KeyStore ks = getKeystore(keystoreType, keystorePass);
+ KeyStore ks = getKeystore(keystoreType, keystoreProvider, keystorePass);
if (keyAlias != null && !ks.isKeyEntry(keyAlias)) {
throw new IOException(sm.getString("jsse.alias_no_key_entry",
keyAlias));
}
@@ -439,17 +465,14 @@
/**
* Gets the intialized trust managers.
*/
- protected TrustManager[] getTrustManagers(String keystoreType, String algorithm)
+ protected TrustManager[] getTrustManagers(String keystoreType,
+ String keystoreProvider, String algorithm)
throws Exception {
String crlf = (String) attributes.get("crlFile");
TrustManager[] tms = null;
- String truststoreType = (String) attributes.get("truststoreType");
- if (truststoreType == null) {
- truststoreType = keystoreType;
- }
- KeyStore trustStore = getTrustStore(truststoreType);
+ KeyStore trustStore = getTrustStore(keystoreType, keystoreProvider);
if (trustStore != null) {
if (crlf == null) {
TrustManagerFactory tmf = TrustManagerFactory.getInstance(algorithm);
Modified: trunk/webapps/docs/changelog.xml
===================================================================
--- trunk/webapps/docs/changelog.xml 2008-05-21 07:36:03 UTC (rev 632)
+++ trunk/webapps/docs/changelog.xml 2008-05-21 11:51:36 UTC (rev 633)
@@ -33,10 +33,21 @@
</subsection>
<subsection name="Coyote">
<changelog>
+ <update>
+ <bug>43094</bug>: Allow specification of keystore providers. Based on
a
+ patch by Bruno Harbulot. (markt)
+ </update>
+ <fix>
+ After completing an asynchronous sendfile, the socket should be placed in the
main poller
+ rather than assigned to a worker (where it would block). (remm)
+ </fix>
</changelog>
</subsection>
<subsection name="Jasper">
<changelog>
+ <fix>
+ <bug>44994</bug>: Correct BNF grammar so ${0 lt a ? 1 lt a ?
"many": "one": "none"} works. (markt)
+ </fix>
</changelog>
</subsection>
</section>
Modified: trunk/webapps/docs/config/http.xml
===================================================================
--- trunk/webapps/docs/config/http.xml 2008-05-21 07:36:03 UTC (rev 632)
+++ trunk/webapps/docs/config/http.xml 2008-05-21 11:51:36 UTC (rev 633)
@@ -451,6 +451,14 @@
</p>
</attribute>
+ <attribute name="keystoreProvider" required="false">
+ <p>The name of the keystore provider to be used for the server
+ certificate. If not specified, the list of registered providers is
+ traversed in preference order and the first provider that supports the
+ <code>keystoreType</code> is used.
+ </p>
+ </attribute>
+
<attribute name="keystoreType" required="false">
<p>The type of keystore file to be used for the server certificate.
If not specified, the default value is
"<code>JKS</code>".</p>
@@ -480,6 +488,14 @@
of <code>keystorePass</code>.</p>
</attribute>
+ <attribute name="truststoreProvider" required="false">
+ <p>The name of the truststore provider to be used for the server
+ certificate. If not specified, the list of registered providers is
+ traversed in preference order and the first provider that supports the
+ <code>truststoreType</code> is used.
+ </p>
+ </attribute>
+
<attribute name="truststoreType" required="false">
<p>Add this element if your are using a different format for the
TrustStore then you are using for the KeyStore.</p>