You are viewing a plain text version of this content. The canonical link for it is here.
Posted to imperius-commits@incubator.apache.org by jn...@apache.org on 2008/01/03 19:42:07 UTC
svn commit: r608608 [2/3] - in
/incubator/imperius/trunk/modules/imperius-splcore/src/org/apache/imperius/spl/parser/compiler:
SPLTreeParser.java SPLTreeParser.smap SPLTreeParserTokenTypes.txt
Added: incubator/imperius/trunk/modules/imperius-splcore/src/org/apache/imperius/spl/parser/compiler/SPLTreeParser.java
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/modules/imperius-splcore/src/org/apache/imperius/spl/parser/compiler/SPLTreeParser.java?rev=608608&view=auto
==============================================================================
--- incubator/imperius/trunk/modules/imperius-splcore/src/org/apache/imperius/spl/parser/compiler/SPLTreeParser.java (added)
+++ incubator/imperius/trunk/modules/imperius-splcore/src/org/apache/imperius/spl/parser/compiler/SPLTreeParser.java Thu Jan 3 11:42:07 2008
@@ -0,0 +1,3286 @@
+// $ANTLR : "cimspl.tree.g" -> "SPLTreeParser.java"$
+
+ /*
+ * Copyright 2004 The Apache Software Foundation.
+ *
+ * Licensed 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 Neeraj Joshi <jn...@us.ibm.com>
+ *
+ */
+ package org.apache.imperius.spl.parser.compiler;
+
+
+import antlr.TreeParser;
+import antlr.Token;
+import antlr.collections.AST;
+import antlr.RecognitionException;
+import antlr.ANTLRException;
+import antlr.NoViableAltException;
+import antlr.MismatchedTokenException;
+import antlr.SemanticException;
+import antlr.collections.impl.BitSet;
+import antlr.ASTPair;
+import antlr.collections.impl.ASTArray;
+
+import java.util.*;
+import java.io.*;
+import org.apache.imperius.spl.parser.statements.impl.*;
+import org.apache.imperius.spl.parser.statements.*;
+import org.apache.imperius.spl.parser.statements.impl.*;
+import org.apache.imperius.spl.parser.factory.*;
+import org.apache.imperius.spl.parser.expressions.*;
+import org.apache.imperius.spl.parser.expressions.impl.*;
+import org.apache.imperius.spl.parser.util.*;
+import org.apache.imperius.spl.parser.compiler.IdentPrimaryTuple;
+import org.apache.imperius.spl.parser.compiler.symboltable.*;
+import org.apache.imperius.spl.parser.statements.PolicyStatement;
+import org.apache.imperius.spl.parser.exceptions.*;
+import org.apache.imperius.spl.external.*;
+import org.apache.imperius.util.SPLLogger;
+import org.apache.imperius.spl.parser.expression.primary.*;
+import org.apache.imperius.spl.parser.exceptions.*;
+import java.util.logging.Logger;
+import java.util.logging.Level;
+
+
+
+
+
+
+
+
+public class SPLTreeParser extends antlr.TreeParser implements SPLTreeParserTokenTypes
+ {
+
+SPLSymbolTable globalSymbolTable = new SPLSymbolTable();
+private static Logger logger = SPLLogger.getSPLLogger().getLogger();
+
+SPLSymbolTable currSymbolTable = globalSymbolTable;
+String currAnchor = "";
+DataCollector dataCollector = null;
+
+//ExpressionFactory expressionFactory = new ExpressionFactory();
+public SPLTreeParser() {
+ tokenNames = _tokenNames;
+}
+
+ public final SPLPolicy splpolicy(AST _t,
+ DataCollector dc, SPLSymbolTable currentSymTab
+ ) throws RecognitionException {
+ SPLPolicy cp = null;
+
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber splpolicy_AST_in = (_t == ASTNULL) ? null : (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+
+ dataCollector = dc;
+ SPLSymbolTable symTab = new SPLSymbolTable(currentSymTab,SPLSymbolTable.POLICYGROUP);
+ symTab.setDataCollector(dataCollector);
+
+ currSymbolTable = symTab;
+ List importStatementList = new ArrayList();
+ ImportStatement i = null;
+ PolicyStatement p = null;
+ ArrayList pStmtList = new ArrayList();
+ DeclarationStatement d = null;
+ StrategyStatement s = null;
+
+
+
+ try { // for error handling
+ {
+ int _cnt3=0;
+ _loop3:
+ do {
+ if (_t==null) _t=ASTNULL;
+ if ((_t.getType()==IMPORT_DEF)) {
+ i=importstatement(_t,symTab);
+ _t = _retTree;
+ importStatementList.add(i);
+ }
+ else {
+ if ( _cnt3>=1 ) { break _loop3; } else {throw new NoViableAltException(_t);}
+ }
+
+ _cnt3++;
+ } while (true);
+ }
+ s=strategystatement(_t);
+ _t = _retTree;
+ {
+ if (_t==null) _t=ASTNULL;
+ switch ( _t.getType()) {
+ case DECL_DEF:
+ {
+ d=declarationstatement(_t,symTab);
+ _t = _retTree;
+ break;
+ }
+ case POLICY_DEF:
+ case POLICY_GRP_DEF:
+ {
+ break;
+ }
+ default:
+ {
+ throw new NoViableAltException(_t);
+ }
+ }
+ }
+ {
+ int _cnt6=0;
+ _loop6:
+ do {
+ if (_t==null) _t=ASTNULL;
+ if ((_t.getType()==POLICY_DEF||_t.getType()==POLICY_GRP_DEF)) {
+ p=policystatement(_t,symTab);
+ _t = _retTree;
+ pStmtList.add(p);
+ }
+ else {
+ if ( _cnt6>=1 ) { break _loop6; } else {throw new NoViableAltException(_t);}
+ }
+
+ _cnt6++;
+ } while (true);
+ }
+
+ cp = new SPLPolicy(importStatementList,s,d,pStmtList,symTab);
+ if(logger.isLoggable(Level.FINE))
+ logger.fine(Thread.currentThread().getName()+" CIMSPLTreeParser:: SPLPolicy Created");
+
+
+
+ }
+ catch (RecognitionException ex) {
+ reportError(ex);
+ if (_t!=null) {_t = _t.getNextSibling();}
+ }
+ _retTree = _t;
+ return cp;
+ }
+
+ public final ImportStatement importstatement(AST _t,
+ SPLSymbolTable symTab
+ ) throws RecognitionException {
+ ImportStatement i = null;
+
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber importstatement_AST_in = (_t == ASTNULL) ? null : (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber i1 = null;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber i2 = null;
+
+ Expression e = null;
+ String qual = null;
+ StringBuffer className = new StringBuffer();
+ List instanceInfoList = new ArrayList();
+
+
+
+ try { // for error handling
+ AST __t8 = _t;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber tmp1_AST_in = (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,IMPORT_DEF);
+ _t = _t.getFirstChild();
+ {
+ if (_t==null) _t=ASTNULL;
+ switch ( _t.getType()) {
+ case QUALIFIER:
+ {
+ qual=qualifier(_t);
+ _t = _retTree;
+ break;
+ }
+ case IDENT:
+ {
+ break;
+ }
+ default:
+ {
+ throw new NoViableAltException(_t);
+ }
+ }
+ }
+ i1 = (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,IDENT);
+ _t = _t.getNextSibling();
+ className.append(i1.getText());
+ {
+ _loop11:
+ do {
+ if (_t==null) _t=ASTNULL;
+ if ((_t.getType()==IDENT)) {
+ i2 = (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,IDENT);
+ _t = _t.getNextSibling();
+ className.append("." + i2.getText());
+ }
+ else {
+ break _loop11;
+ }
+
+ } while (true);
+ }
+ {
+ if (_t==null) _t=ASTNULL;
+ switch ( _t.getType()) {
+ case COLON:
+ {
+ instanceInfoList=identList(_t);
+ _t = _retTree;
+ break;
+ }
+ case 3:
+ case EXPR:
+ {
+ break;
+ }
+ default:
+ {
+ throw new NoViableAltException(_t);
+ }
+ }
+ }
+
+ try
+ {
+ //System.out.println("class name, qual = "+className.toString()+" , "+qual);
+ symTab.addAnchor(className.toString(), qual, instanceInfoList);
+ }
+ catch (SPLException exep)
+ {
+ ASTWithLineNumber q = (ASTWithLineNumber)i1;
+ //System.out.println(exep.getMessage() + "at line" + q.getLine());
+
+ }
+
+ {
+ if (_t==null) _t=ASTNULL;
+ switch ( _t.getType()) {
+ case EXPR:
+ {
+ e=expression(_t,symTab);
+ _t = _retTree;
+ break;
+ }
+ case 3:
+ {
+ break;
+ }
+ default:
+ {
+ throw new NoViableAltException(_t);
+ }
+ }
+ }
+ _t = __t8;
+ _t = _t.getNextSibling();
+
+ // currSymbolTable.setAnchor(i4.getText());
+ i = new ImportStatement(className.toString(),instanceInfoList,e,symTab);
+ //if(logger.isLoggable(Level.FINE))
+ //logger.fine(Thread.currentThread().getName()+" CIMSPLTreeParser:: ImportStatement Created");
+
+
+
+ }
+ catch (RecognitionException ex) {
+ reportError(ex);
+ if (_t!=null) {_t = _t.getNextSibling();}
+ }
+ _retTree = _t;
+ return i;
+ }
+
+ public final StrategyStatement strategystatement(AST _t) throws RecognitionException {
+ StrategyStatement s = null;
+
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber strategystatement_AST_in = (_t == ASTNULL) ? null : (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+
+ try { // for error handling
+ AST __t21 = _t;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber tmp2_AST_in = (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,STRATEGY_DEF);
+ _t = _t.getFirstChild();
+ {
+ if (_t==null) _t=ASTNULL;
+ switch ( _t.getType()) {
+ case LITERAL_Execute_All_Applicable:
+ {
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber tmp3_AST_in = (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,LITERAL_Execute_All_Applicable);
+ _t = _t.getNextSibling();
+
+ s = new StrategyStatement("Execute_All_Applicable");
+ if(logger.isLoggable(Level.FINE))
+ logger.fine(Thread.currentThread().getName()+" CIMSPLTreeParser:: StrategyStatement Created");
+
+
+ break;
+ }
+ case LITERAL_Execute_First_Applicable:
+ {
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber tmp4_AST_in = (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,LITERAL_Execute_First_Applicable);
+ _t = _t.getNextSibling();
+
+ s = new StrategyStatement("Execute_First_Applicable");
+ if(logger.isLoggable(Level.FINE))
+ logger.fine(Thread.currentThread().getName()+" CIMSPLTreeParser:: StrategyStatement Created");
+
+
+ break;
+ }
+ default:
+ {
+ throw new NoViableAltException(_t);
+ }
+ }
+ }
+ _t = __t21;
+ _t = _t.getNextSibling();
+ }
+ catch (RecognitionException ex) {
+ reportError(ex);
+ if (_t!=null) {_t = _t.getNextSibling();}
+ }
+ _retTree = _t;
+ return s;
+ }
+
+ public final DeclarationStatement declarationstatement(AST _t,
+ SPLSymbolTable symTab
+ ) throws RecognitionException {
+ DeclarationStatement d = null;
+
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber declarationstatement_AST_in = (_t == ASTNULL) ? null : (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+
+ ArrayList cList = new ArrayList();
+ ArrayList mList = new ArrayList();
+ MacroDefinition m = null;
+ ConstantDefinition c = null;
+
+
+ try { // for error handling
+ AST __t24 = _t;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber tmp5_AST_in = (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,DECL_DEF);
+ _t = _t.getFirstChild();
+ {
+ _loop28:
+ do {
+ if (_t==null) _t=ASTNULL;
+ switch ( _t.getType()) {
+ case CONSTANT_DEFN:
+ {
+ {
+ c=constantDefinitions(_t,symTab);
+ _t = _retTree;
+ cList.add(c);
+ }
+ break;
+ }
+ case MACRO_DEFN:
+ {
+ {
+ m=macroDeclarations(_t,symTab);
+ _t = _retTree;
+ mList.add(m);
+ }
+ break;
+ }
+ default:
+ {
+ break _loop28;
+ }
+ }
+ } while (true);
+ }
+ _t = __t24;
+ _t = _t.getNextSibling();
+
+ d = new DeclarationStatement(cList,mList,symTab);
+ if(logger.isLoggable(Level.FINE))
+ logger.fine(Thread.currentThread().getName()+" CIMSPLTreeParser:: DeclarationStatement Created");
+
+
+ }
+ catch (RecognitionException ex) {
+ reportError(ex);
+ if (_t!=null) {_t = _t.getNextSibling();}
+ }
+ _retTree = _t;
+ return d;
+ }
+
+ public final PolicyStatement policystatement(AST _t,
+ SPLSymbolTable symTab
+ ) throws RecognitionException {
+ PolicyStatement p = null;
+
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber policystatement_AST_in = (_t == ASTNULL) ? null : (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+
+ try { // for error handling
+ {
+ if (_t==null) _t=ASTNULL;
+ switch ( _t.getType()) {
+ case POLICY_DEF:
+ {
+ p=policydef(_t,symTab);
+ _t = _retTree;
+ break;
+ }
+ case POLICY_GRP_DEF:
+ {
+ p=policyGroup(_t,symTab);
+ _t = _retTree;
+ break;
+ }
+ default:
+ {
+ throw new NoViableAltException(_t);
+ }
+ }
+ }
+ }
+ catch (RecognitionException ex) {
+ reportError(ex);
+ if (_t!=null) {_t = _t.getNextSibling();}
+ }
+ _retTree = _t;
+ return p;
+ }
+
+ public final String qualifier(AST _t) throws RecognitionException {
+ String qualifier = null;
+
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber qualifier_AST_in = (_t == ASTNULL) ? null : (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber c = null;
+
+ try { // for error handling
+ AST __t15 = _t;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber tmp6_AST_in = (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,QUALIFIER);
+ _t = _t.getFirstChild();
+ c = (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,IDENT);
+ _t = _t.getNextSibling();
+ qualifier = c.getText();
+ _t = __t15;
+ _t = _t.getNextSibling();
+ }
+ catch (RecognitionException ex) {
+ reportError(ex);
+ if (_t!=null) {_t = _t.getNextSibling();}
+ }
+ _retTree = _t;
+ return qualifier;
+ }
+
+ public final List identList(AST _t) throws RecognitionException {
+ List instanceInfoList = null;
+
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber identList_AST_in = (_t == ASTNULL) ? null : (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber cl = null;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber c2 = null;
+
+ InstanceInfo ii = null;
+ instanceInfoList = new ArrayList();
+
+
+ try { // for error handling
+ AST __t17 = _t;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber tmp7_AST_in = (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,COLON);
+ _t = _t.getFirstChild();
+ cl = (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,IDENT);
+ _t = _t.getNextSibling();
+ ii = new InstanceInfo(cl.getText(),new Object());instanceInfoList.add(ii);
+ {
+ _loop19:
+ do {
+ if (_t==null) _t=ASTNULL;
+ if ((_t.getType()==IDENT)) {
+ c2 = (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,IDENT);
+ _t = _t.getNextSibling();
+ ii = new InstanceInfo(c2.getText(), new Object()); instanceInfoList.add(ii);
+ }
+ else {
+ break _loop19;
+ }
+
+ } while (true);
+ }
+ _t = __t17;
+ _t = _t.getNextSibling();
+ }
+ catch (RecognitionException ex) {
+ reportError(ex);
+ if (_t!=null) {_t = _t.getNextSibling();}
+ }
+ _retTree = _t;
+ return instanceInfoList;
+ }
+
+ public final Expression expression(AST _t,
+ SPLSymbolTable symTab
+ ) throws RecognitionException {
+ Expression exp=null;
+
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber expression_AST_in = (_t == ASTNULL) ? null : (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+
+ try { // for error handling
+ AST __t56 = _t;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber tmp8_AST_in = (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,EXPR);
+ _t = _t.getFirstChild();
+ exp=expr(_t,symTab);
+ _t = _retTree;
+ _t = __t56;
+ _t = _t.getNextSibling();
+ }
+ catch (RecognitionException ex) {
+ reportError(ex);
+ if (_t!=null) {_t = _t.getNextSibling();}
+ }
+ _retTree = _t;
+ return exp;
+ }
+
+ public final ConstantDefinition constantDefinitions(AST _t,
+ SPLSymbolTable symTab
+ ) throws RecognitionException {
+ ConstantDefinition cd = null ;
+
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber constantDefinitions_AST_in = (_t == ASTNULL) ? null : (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber t = null;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber id = null;
+
+ Expression v = null;
+
+
+ try { // for error handling
+ AST __t30 = _t;
+ t = _t==ASTNULL ? null :(org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,CONSTANT_DEFN);
+ _t = _t.getFirstChild();
+ id = (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,IDENT);
+ _t = _t.getNextSibling();
+ v=varInitializer(_t,symTab);
+ _t = _retTree;
+ _t = __t30;
+ _t = _t.getNextSibling();
+
+ //currSymbolTable.insertVariableSymbol(id.getText(),null,null);
+ try
+ {
+ //System.out.println("id.getText() "+id.getText() +" v.getType() "+v.getType()+ " v "+v.toString() );
+
+ symTab.insertVariableSymbol(id.getText(),v.getType(),false,false);
+ cd = new ConstantDefinition(id.getText(),v,symTab);
+ if(logger.isLoggable(Level.FINE))
+ logger.fine(Thread.currentThread().getName()+" CIMSPLTreeParser:: ConstantDefinition Created "+id.getText());
+
+ }
+ catch(SPLException excep)
+ {
+ ASTWithLineNumber q = (ASTWithLineNumber)t;
+ logger.severe(excep.getMessage());
+ logger.severe(Thread.currentThread().getName()+" "+"TreeParser::Exception inserting symbol "+id.getText() +" at line "+q.getLine());
+ //System.out.println(excep.getMessage());
+ //System.out.println("TreeParser::Exception inserting symbol "+id.getText() +" at line "+q.getLine());
+ System.err.println("$SPLTreeParser$ Error at line no#"+q.getLine()+":"+excep.getMessage());
+ throw new RecognitionException(excep.getMessage());
+ }
+
+
+ }
+ catch (RecognitionException ex) {
+ reportError(ex);
+ if (_t!=null) {_t = _t.getNextSibling();}
+ }
+ _retTree = _t;
+ return cd;
+ }
+
+ public final MacroDefinition macroDeclarations(AST _t,
+ SPLSymbolTable symTab
+ ) throws RecognitionException {
+ MacroDefinition m = null;
+
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber macroDeclarations_AST_in = (_t == ASTNULL) ? null : (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+
+ try { // for error handling
+ AST __t34 = _t;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber tmp9_AST_in = (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,MACRO_DEFN);
+ _t = _t.getFirstChild();
+ m=macrodef(_t,symTab);
+ _t = _retTree;
+ _t = __t34;
+ _t = _t.getNextSibling();
+ }
+ catch (RecognitionException ex) {
+ reportError(ex);
+ if (_t!=null) {_t = _t.getNextSibling();}
+ }
+ _retTree = _t;
+ return m;
+ }
+
+ public final Expression varInitializer(AST _t,
+ SPLSymbolTable symTab
+ ) throws RecognitionException {
+ Expression v = null;
+
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber varInitializer_AST_in = (_t == ASTNULL) ? null : (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+
+
+
+
+ try { // for error handling
+ AST __t32 = _t;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber tmp10_AST_in = (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,ASSIGN);
+ _t = _t.getFirstChild();
+ v=expression(_t,symTab);
+ _t = _retTree;
+ _t = __t32;
+ _t = _t.getNextSibling();
+
+
+
+ }
+ catch (RecognitionException ex) {
+ reportError(ex);
+ if (_t!=null) {_t = _t.getNextSibling();}
+ }
+ _retTree = _t;
+ return v;
+ }
+
+ public final MacroDefinition macrodef(AST _t,
+ SPLSymbolTable symTab
+ ) throws RecognitionException {
+ MacroDefinition m = null;
+
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber macrodef_AST_in = (_t == ASTNULL) ? null : (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber id = null;
+
+ ArrayList a=new ArrayList();
+ Expression e = null;
+ String arr = "";
+ String typestr="";
+ boolean isArr=false;
+ SPLSymbolTable macroSymTab = new SPLSymbolTable(symTab,2);
+
+ macroSymTab.setSymbolTableType(SPLSymbolTable.MACRO);
+ symTab.addChildSymbolTable(macroSymTab);
+
+
+
+
+ try { // for error handling
+ AST __t36 = _t;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber tmp11_AST_in = (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,LITERAL_Name);
+ _t = _t.getFirstChild();
+ id = (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,IDENT);
+ _t = _t.getNextSibling();
+ arr=splType(_t);
+ _t = _retTree;
+ a=argumentList(_t,macroSymTab);
+ _t = _retTree;
+ e=expression(_t,macroSymTab);
+ _t = _retTree;
+ _t = __t36;
+ _t = _t.getNextSibling();
+
+ // currSymbolTable.insertMethodSymbol(id.getText(),c.getText(),a);
+ //System.out.println("treeparser c= "+c.getText());
+ if(logger.isLoggable(Level.FINE))
+ logger.fine(Thread.currentThread().getName()+" CIMSPLTreeParser:: MacroDefinition type "+arr);
+
+ if(arr!=null)
+ {
+ if(arr.indexOf("[") != -1)
+ {
+ typestr=arr.substring(0,arr.indexOf("["));
+ if(logger.isLoggable(Level.FINE))
+ logger.fine(Thread.currentThread().getName()+" CIMSPLTreeParser:: MacroDefinition typestr "+typestr);
+ isArr=true;
+ if(logger.isLoggable(Level.FINE))
+ logger.fine(Thread.currentThread().getName()+" CIMSPLTreeParser:: macro isArray = "+isArr);
+
+ }
+ else
+ {
+ typestr=arr;
+ }
+ }
+ else
+ {
+ logger.severe(Thread.currentThread().getName()+" "+" arr string is null in macrodef ");
+ }
+
+ //int type = TypeConstants.getActualType(typestr);
+
+
+
+
+
+
+ try
+ {
+ m = new MacroDefinition(id.getText(),typestr,isArr,a,e,macroSymTab,symTab);
+ //System.out.println("MacroDefinition : "+id.getText()+" "+typestr);
+
+ if(logger.isLoggable(Level.FINE))
+ logger.fine(Thread.currentThread().getName()+" CIMSPLTreeParser:: MacroDefinition Created "+id.getText());
+
+ symTab.insertMacroSymbol(id.getText(),typestr,isArr,a,m);
+ //System.out.println("inserted MacroSymbol into Symbol Table : "+id.getText());
+ if(logger.isLoggable(Level.FINE))
+ logger.fine(Thread.currentThread().getName()+" CIMSPLTreeParser:: MacroDefinition inserted into SymbolTable "+id.getText());
+
+ }
+ catch(SPLException excep)
+ {
+ ASTWithLineNumber q = (ASTWithLineNumber)id;
+ logger.severe(excep.getMessage());
+ logger.severe(Thread.currentThread().getName()+" "+"TreeParser::Exception inserting symbol "+id.getText() +" at line "+q.getLine());
+ //System.out.println(excep.getMessage());
+ //System.out.println("TreeParser::Exception inserting symbol "+id.getText() +" at line "+q.getLine());
+ System.err.println("$SPLTreeParser$ Error at line no#"+q.getLine()+":"+excep.getMessage());
+ throw new RecognitionException(excep.getMessage());
+
+ }
+
+
+
+ }
+ catch (RecognitionException ex) {
+ reportError(ex);
+ if (_t!=null) {_t = _t.getNextSibling();}
+ }
+ _retTree = _t;
+ return m;
+ }
+
+ public final String splType(AST _t) throws RecognitionException {
+ String tp;
+
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber splType_AST_in = (_t == ASTNULL) ? null : (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber t = null;
+
+ boolean isArray = false;
+ tp="";
+
+
+
+
+ try { // for error handling
+ t = _t==ASTNULL ? null : (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ basicSplTypes(_t);
+ _t = _retTree;
+ {
+ if (_t==null) _t=ASTNULL;
+ switch ( _t.getType()) {
+ case LBRACK:
+ {
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber tmp12_AST_in = (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,LBRACK);
+ _t = _t.getNextSibling();
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber tmp13_AST_in = (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,RBRACK);
+ _t = _t.getNextSibling();
+ isArray = true;
+ break;
+ }
+ case 3:
+ case ARGUMENTS:
+ {
+ break;
+ }
+ default:
+ {
+ throw new NoViableAltException(_t);
+ }
+ }
+ }
+
+ tp = t.getText();
+ //System.out.println(" cimtype = "+tp);
+ if (isArray)
+ {
+ tp=tp+"[]";
+ //System.out.println(" adding [] to cimtype = "+tp);
+ }
+ //System.out.println(" cimtype = "+tp);
+
+
+ }
+ catch (RecognitionException ex) {
+ reportError(ex);
+ if (_t!=null) {_t = _t.getNextSibling();}
+ }
+ _retTree = _t;
+ return tp;
+ }
+
+ public final ArrayList argumentList(AST _t,
+ SPLSymbolTable symTab
+ ) throws RecognitionException {
+ ArrayList argTypes=new ArrayList();
+
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber argumentList_AST_in = (_t == ASTNULL) ? null : (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ Argument at = null;
+
+
+ try { // for error handling
+ AST __t38 = _t;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber tmp14_AST_in = (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,ARGUMENTS);
+ _t = _t.getFirstChild();
+ {
+ _loop40:
+ do {
+ if (_t==null) _t=ASTNULL;
+ if ((_t.getType()==ARG_DEF)) {
+ at=argument(_t,symTab);
+ _t = _retTree;
+ argTypes.add(at);
+ }
+ else {
+ break _loop40;
+ }
+
+ } while (true);
+ }
+ _t = __t38;
+ _t = _t.getNextSibling();
+ }
+ catch (RecognitionException ex) {
+ reportError(ex);
+ if (_t!=null) {_t = _t.getNextSibling();}
+ }
+ _retTree = _t;
+ return argTypes;
+ }
+
+ public final Argument argument(AST _t,
+ SPLSymbolTable symTab
+ ) throws RecognitionException {
+ Argument tp = null;
+
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber argument_AST_in = (_t == ASTNULL) ? null : (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber i = null;
+
+ String arr = "";
+ String typestr="";
+ boolean isArr=false;
+
+
+ try { // for error handling
+ AST __t42 = _t;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber tmp15_AST_in = (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,ARG_DEF);
+ _t = _t.getFirstChild();
+ AST __t43 = _t;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber tmp16_AST_in = (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,TYPE);
+ _t = _t.getFirstChild();
+ arr=splType(_t);
+ _t = _retTree;
+ _t = __t43;
+ _t = _t.getNextSibling();
+ i = (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,IDENT);
+ _t = _t.getNextSibling();
+ _t = __t42;
+ _t = _t.getNextSibling();
+
+ if(logger.isLoggable(Level.FINE))
+ logger.fine(Thread.currentThread().getName()+" CIMSPLTreeParser:: macro arr = "+arr);
+
+ if(arr!=null)
+ {
+ if(arr.indexOf("[") != -1)
+ {
+ typestr=arr.substring(0,arr.indexOf("["));
+ if(logger.isLoggable(Level.FINE))
+ logger.fine(Thread.currentThread().getName()+" CIMSPLTreeParser:: MacroDefinition typestr "+typestr);
+ isArr=true;
+ if(logger.isLoggable(Level.FINE))
+ logger.fine(Thread.currentThread().getName()+" CIMSPLTreeParser:: macro isArray = "+isArr);
+
+ }
+ else
+ {
+ typestr=arr;
+ }
+ }
+ else
+ {
+ logger.severe(Thread.currentThread().getName()+" "+" arr string is null in argument ");
+ }
+
+
+ try
+ {
+ int type = TypeConstants.getActualType(typestr);
+
+ symTab.insertVariableSymbol(i.getText(),type,null,isArr,false,false);
+ if(logger.isLoggable(Level.FINE))
+ logger.fine(Thread.currentThread().getName()+" CIMSPLTreeParser:: Variable inserted into SymbolTable "+i.getText());
+
+ tp = new ArgumentImpl(typestr,i.getText(),isArr,null);
+ if(logger.isLoggable(Level.FINE))
+ logger.fine(Thread.currentThread().getName()+" CIMSPLTreeParser:: Argument created");
+
+ }
+ catch(SPLException excep)
+ {
+ ASTWithLineNumber q = (ASTWithLineNumber)i;
+ logger.severe(excep.getMessage());
+ logger.severe(Thread.currentThread().getName()+" "+"TreeParser::Exception inserting symbol "+i.getText() +" at line "+q.getLine());
+ //System.out.println(excep.getMessage());
+ //System.out.println("TreeParser::Exception inserting symbol "+i.getText() +" at line "+q.getLine());
+ System.err.println("$SPLTreeParser$ Error at line no#"+q.getLine()+":"+excep.getMessage());
+ throw new RecognitionException(excep.getMessage());
+ }
+
+ }
+ catch (RecognitionException ex) {
+ reportError(ex);
+ if (_t!=null) {_t = _t.getNextSibling();}
+ }
+ _retTree = _t;
+ return tp;
+ }
+
+ public final PolicyDefinition policydef(AST _t,
+ SPLSymbolTable symTab
+ ) throws RecognitionException {
+ PolicyDefinition pd = null;
+
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber policydef_AST_in = (_t == ASTNULL) ? null : (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber p = null;
+
+ SPLSymbolTable lclSymTab = new SPLSymbolTable(symTab);
+ symTab.addChildSymbolTable(lclSymTab);
+ // currSymbolTable = symTab;
+ DeclarationStatement d = null;
+ Expression exp = null;
+ ActionBlock dec = null;
+
+
+
+ try { // for error handling
+ AST __t47 = _t;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber tmp17_AST_in = (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,POLICY_DEF);
+ _t = _t.getFirstChild();
+ {
+ if (_t==null) _t=ASTNULL;
+ switch ( _t.getType()) {
+ case DECL_DEF:
+ {
+ d=declarationstatement(_t,lclSymTab);
+ _t = _retTree;
+ break;
+ }
+ case CONDITION_DEF:
+ case DECISION_DEF:
+ {
+ break;
+ }
+ default:
+ {
+ throw new NoViableAltException(_t);
+ }
+ }
+ }
+ {
+ if (_t==null) _t=ASTNULL;
+ switch ( _t.getType()) {
+ case CONDITION_DEF:
+ {
+ exp=conditionstatement(_t,lclSymTab);
+ _t = _retTree;
+ break;
+ }
+ case DECISION_DEF:
+ {
+ break;
+ }
+ default:
+ {
+ throw new NoViableAltException(_t);
+ }
+ }
+ }
+ dec=decision(_t,lclSymTab);
+ _t = _retTree;
+ p = _t==ASTNULL ? null : (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ priority(_t);
+ _t = _retTree;
+ _t = __t47;
+ _t = _t.getNextSibling();
+
+ // currSymbolTable = currSymbolTable.getParentSymbolTable();
+ pd = new PolicyDefinition(d,exp,dec,p.getText(),lclSymTab);
+ if(logger.isLoggable(Level.FINE))
+ logger.fine(Thread.currentThread().getName()+" CIMSPLTreeParser:: PolicyDefinition Created");
+
+
+
+
+ }
+ catch (RecognitionException ex) {
+ reportError(ex);
+ if (_t!=null) {_t = _t.getNextSibling();}
+ }
+ _retTree = _t;
+ return pd;
+ }
+
+ public final PolicyGroup policyGroup(AST _t,
+ SPLSymbolTable symTab
+ ) throws RecognitionException {
+ PolicyGroup pg = null;
+
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber policyGroup_AST_in = (_t == ASTNULL) ? null : (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber id1 = null;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber id2 = null;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber id3 = null;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber p = null;
+
+ try { // for error handling
+
+ String assocName = "CIM_Component";
+ String role1="GroupComponent";
+ String role2="PartComponent";
+ SPLPolicy c = null;
+
+
+ AST __t120 = _t;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber tmp18_AST_in = (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,POLICY_GRP_DEF);
+ _t = _t.getFirstChild();
+ {
+ AST __t122 = _t;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber tmp19_AST_in = (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,ASSOCIATION);
+ _t = _t.getFirstChild();
+ AST __t123 = _t;
+ id1 = _t==ASTNULL ? null :(org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,IDENT);
+ _t = _t.getFirstChild();
+ id2 = (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,IDENT);
+ _t = _t.getNextSibling();
+ id3 = (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,IDENT);
+ _t = _t.getNextSibling();
+ assocName = id1.getText(); role1=id2.getText(); role2=id3.getText();
+ _t = __t123;
+ _t = _t.getNextSibling();
+ _t = __t122;
+ _t = _t.getNextSibling();
+ }
+ c=splpolicy(_t,dataCollector,symTab);
+ _t = _retTree;
+ p = _t==ASTNULL ? null : (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ priority(_t);
+ _t = _retTree;
+ _t = __t120;
+ _t = _t.getNextSibling();
+
+
+ pg = new PolicyGroup(assocName,role1,role2,c,p.getText(),symTab);
+ if(logger.isLoggable(Level.FINE))
+ logger.fine(Thread.currentThread().getName()+" CIMSPLTreeParser:: PolicyGroup created ");
+
+
+ }
+ catch (RecognitionException ex) {
+ reportError(ex);
+ if (_t!=null) {_t = _t.getNextSibling();}
+ }
+ _retTree = _t;
+ return pg;
+ }
+
+ public final Expression conditionstatement(AST _t,
+ SPLSymbolTable symTab
+ ) throws RecognitionException {
+ Expression exp = null;
+
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber conditionstatement_AST_in = (_t == ASTNULL) ? null : (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+
+ try { // for error handling
+ AST __t51 = _t;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber tmp20_AST_in = (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,CONDITION_DEF);
+ _t = _t.getFirstChild();
+ exp=expression(_t,symTab);
+ _t = _retTree;
+ _t = __t51;
+ _t = _t.getNextSibling();
+ /*//System.out.println("cimspl.tree.g condition statement "+exp);*/
+ }
+ catch (RecognitionException ex) {
+ reportError(ex);
+ if (_t!=null) {_t = _t.getNextSibling();}
+ }
+ _retTree = _t;
+ return exp;
+ }
+
+ public final ActionBlock decision(AST _t,
+ SPLSymbolTable symTab
+ ) throws RecognitionException {
+ ActionBlock ab=null;
+
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber decision_AST_in = (_t == ASTNULL) ? null : (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+
+ try { // for error handling
+ AST __t53 = _t;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber tmp21_AST_in = (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,DECISION_DEF);
+ _t = _t.getFirstChild();
+ ab=actionBlock(_t,symTab);
+ _t = _retTree;
+ _t = __t53;
+ _t = _t.getNextSibling();
+ }
+ catch (RecognitionException ex) {
+ reportError(ex);
+ if (_t!=null) {_t = _t.getNextSibling();}
+ }
+ _retTree = _t;
+ return ab;
+ }
+
+ public final void priority(AST _t) throws RecognitionException {
+
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber priority_AST_in = (_t == ASTNULL) ? null : (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+
+ try { // for error handling
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber tmp22_AST_in = (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,NUM_INT);
+ _t = _t.getNextSibling();
+ }
+ catch (RecognitionException ex) {
+ reportError(ex);
+ if (_t!=null) {_t = _t.getNextSibling();}
+ }
+ _retTree = _t;
+ }
+
+ public final ActionBlock actionBlock(AST _t,
+ SPLSymbolTable symTab
+ ) throws RecognitionException {
+ ActionBlock ab = null;
+
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber actionBlock_AST_in = (_t == ASTNULL) ? null : (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+
+ ActionBlock ab1 = null;
+ ActionBlock ab2 = null;
+
+
+ try { // for error handling
+ if (_t==null) _t=ASTNULL;
+ switch ( _t.getType()) {
+ case ARROW:
+ {
+ AST __t107 = _t;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber tmp23_AST_in = (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,ARROW);
+ _t = _t.getFirstChild();
+ ab1=actionBlock(_t,symTab);
+ _t = _retTree;
+ ab2=actionBlock(_t,symTab);
+ _t = _retTree;
+ _t = __t107;
+ _t = _t.getNextSibling();
+
+ ab = ActionFactory.createAction(ab1,ab2,ARROW,symTab);
+ if(logger.isLoggable(Level.FINE))
+ logger.fine(Thread.currentThread().getName()+" CIMSPLTreeParser:: ARROW ActionBlock created ");
+
+
+ break;
+ }
+ case LOR:
+ {
+ AST __t108 = _t;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber tmp24_AST_in = (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,LOR);
+ _t = _t.getFirstChild();
+ ab1=actionBlock(_t,symTab);
+ _t = _retTree;
+ ab2=actionBlock(_t,symTab);
+ _t = _retTree;
+ _t = __t108;
+ _t = _t.getNextSibling();
+
+ ab = ActionFactory.createAction(ab1,ab2,LOR,symTab);
+ if(logger.isLoggable(Level.FINE))
+ logger.fine(Thread.currentThread().getName()+" CIMSPLTreeParser:: LOR ActionBlock created ");
+
+
+ break;
+ }
+ case LAND:
+ {
+ AST __t109 = _t;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber tmp25_AST_in = (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,LAND);
+ _t = _t.getFirstChild();
+ ab1=actionBlock(_t,symTab);
+ _t = _retTree;
+ ab2=actionBlock(_t,symTab);
+ _t = _retTree;
+ _t = __t109;
+ _t = _t.getNextSibling();
+
+ ab = ActionFactory.createAction(ab1,ab2,LAND,symTab);
+ if(logger.isLoggable(Level.FINE))
+ logger.fine(Thread.currentThread().getName()+" CIMSPLTreeParser:: LAND ActionBlock created ");
+
+
+ break;
+ }
+ case BOR:
+ {
+ AST __t110 = _t;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber tmp26_AST_in = (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,BOR);
+ _t = _t.getFirstChild();
+ ab1=actionBlock(_t,symTab);
+ _t = _retTree;
+ ab2=actionBlock(_t,symTab);
+ _t = _retTree;
+ _t = __t110;
+ _t = _t.getNextSibling();
+
+ ab = ActionFactory.createAction(ab1,ab2,BOR,symTab);
+ if(logger.isLoggable(Level.FINE))
+ logger.fine(Thread.currentThread().getName()+" CIMSPLTreeParser:: BOR ActionBlock created ");
+
+
+ break;
+ }
+ case ACTIONBLOCK:
+ {
+ ab=basicActionBlock(_t,symTab);
+ _t = _retTree;
+ break;
+ }
+ default:
+ {
+ throw new NoViableAltException(_t);
+ }
+ }
+ }
+ catch (RecognitionException ex) {
+ reportError(ex);
+ if (_t!=null) {_t = _t.getNextSibling();}
+ }
+ _retTree = _t;
+ return ab;
+ }
+
+ public final Expression expr(AST _t,
+ SPLSymbolTable symTab
+ ) throws RecognitionException {
+ Expression e=null;
+
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber expr_AST_in = (_t == ASTNULL) ? null : (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber t = null;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber t1 = null;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber t2 = null;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber t3 = null;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber t4 = null;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber t5 = null;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber t6 = null;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber t7 = null;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber t8 = null;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber t9 = null;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber t10 = null;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber t11 = null;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber t12 = null;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber t13 = null;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber t14 = null;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber t15 = null;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber t16 = null;
+
+ Expression e1=null;
+ Expression e2=null;
+
+
+
+ try { // for error handling
+ if (_t==null) _t=ASTNULL;
+ switch ( _t.getType()) {
+ case ASSIGN:
+ {
+ AST __t58 = _t;
+ t = _t==ASTNULL ? null :(org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,ASSIGN);
+ _t = _t.getFirstChild();
+ e1=expr(_t,symTab);
+ _t = _retTree;
+ e2=expr(_t,symTab);
+ _t = _retTree;
+ _t = __t58;
+ _t = _t.getNextSibling();
+
+ try
+ {
+ e = ExpressionFactory.createExpression(e1,e2,ASSIGN,symTab);
+ if(logger.isLoggable(Level.FINE))
+ logger.fine(Thread.currentThread().getName()+" CIMSPLTreeParser:: expression created "+e.toString());
+
+ }
+ catch (SPLException excep)
+ {
+ ASTWithLineNumber q = (ASTWithLineNumber)t;
+ logger.severe(excep.getMessage());
+ logger.severe(Thread.currentThread().getName()+" "+"TreeParser::Exception creating Expression at line "+q.getLine());
+ //System.out.println(excep.getMessage());
+ //System.out.println("TreeParser::Exception inserting symbol at line "+q.getLine());
+ System.err.println("$SPLTreeParser$ Error at line no#"+q.getLine()+":"+excep.getMessage());
+ throw new RecognitionException(excep.getMessage());
+ }
+
+ break;
+ }
+ case LOR:
+ {
+ AST __t59 = _t;
+ t1 = _t==ASTNULL ? null :(org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,LOR);
+ _t = _t.getFirstChild();
+ e1=expr(_t,symTab);
+ _t = _retTree;
+ e2=expr(_t,symTab);
+ _t = _retTree;
+ _t = __t59;
+ _t = _t.getNextSibling();
+
+ try
+ {
+ e = ExpressionFactory.createExpression(e1,e2,LOR,symTab);
+ if(logger.isLoggable(Level.FINE))
+ logger.fine(Thread.currentThread().getName()+" CIMSPLTreeParser:: expression created "+e.toString());
+
+ }
+ catch (SPLException excep)
+ {
+ ASTWithLineNumber q = (ASTWithLineNumber)t1;
+ logger.severe(excep.getMessage());
+ logger.severe(Thread.currentThread().getName()+" "+"TreeParser::Exception creating Expression at line "+q.getLine());
+ //System.out.println(excep.getMessage());
+ //System.out.println("TreeParser::Exception inserting symbol at line "+q.getLine());
+ //throw new RecognitionException(excep.getMessage());
+ System.err.println("$SPLTreeParser$ Error at line no#"+q.getLine()+":"+excep.getMessage());
+ throw new RecognitionException(excep.getMessage());
+ }
+
+ break;
+ }
+ case LAND:
+ {
+ AST __t60 = _t;
+ t2 = _t==ASTNULL ? null :(org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,LAND);
+ _t = _t.getFirstChild();
+ e1=expr(_t,symTab);
+ _t = _retTree;
+ e2=expr(_t,symTab);
+ _t = _retTree;
+ _t = __t60;
+ _t = _t.getNextSibling();
+
+ try
+ {
+ e = ExpressionFactory.createExpression(e1,e2,LAND,symTab);
+ if(logger.isLoggable(Level.FINE))
+ logger.fine(Thread.currentThread().getName()+" CIMSPLTreeParser:: expression created "+e.toString());
+
+ }
+ catch (SPLException excep)
+ {
+ ASTWithLineNumber q = (ASTWithLineNumber)t2;
+ logger.severe(excep.getMessage());
+ logger.severe(Thread.currentThread().getName()+" "+"TreeParser::Exception creating Expression at line "+q.getLine());
+ //System.out.println(excep.getMessage());
+ //System.out.println("TreeParser::Exception inserting symbol at line "+q.getLine());
+ //throw new RecognitionException(excep.getMessage());
+ System.err.println("$SPLTreeParser$ Error at line no#"+q.getLine()+":"+excep.getMessage());
+ throw new RecognitionException(excep.getMessage());
+ }
+
+ break;
+ }
+ case BXOR:
+ {
+ AST __t61 = _t;
+ t3 = _t==ASTNULL ? null :(org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,BXOR);
+ _t = _t.getFirstChild();
+ e1=expr(_t,symTab);
+ _t = _retTree;
+ e2=expr(_t,symTab);
+ _t = _retTree;
+ _t = __t61;
+ _t = _t.getNextSibling();
+
+ try
+ {
+ e = ExpressionFactory.createExpression(e1,e2,BXOR,symTab);
+ if(logger.isLoggable(Level.FINE))
+ logger.fine(Thread.currentThread().getName()+" CIMSPLTreeParser:: expression created "+e.toString());
+
+ }
+ catch (SPLException excep)
+ {
+ ASTWithLineNumber q = (ASTWithLineNumber)t3;
+ logger.severe(excep.getMessage());
+ logger.severe(Thread.currentThread().getName()+" "+"TreeParser::Exception creating Expression at line "+q.getLine());
+ //System.out.println(excep.getMessage());
+ //System.out.println("TreeParser::Exception inserting symbol at line "+q.getLine());
+ System.err.println("$SPLTreeParser$ Error at line no#"+q.getLine()+":"+excep.getMessage());
+ throw new RecognitionException(excep.getMessage());
+ }
+
+ break;
+ }
+ case NOT_EQUAL:
+ {
+ AST __t62 = _t;
+ t4 = _t==ASTNULL ? null :(org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,NOT_EQUAL);
+ _t = _t.getFirstChild();
+ e1=expr(_t,symTab);
+ _t = _retTree;
+ e2=expr(_t,symTab);
+ _t = _retTree;
+ _t = __t62;
+ _t = _t.getNextSibling();
+
+ try
+ {
+ e = ExpressionFactory.createExpression(e1,e2,NOT_EQUAL,symTab);
+ if(logger.isLoggable(Level.FINE))
+ logger.fine(Thread.currentThread().getName()+" CIMSPLTreeParser:: expression created "+e.toString());
+
+ }
+ catch (SPLException excep)
+ {
+ ASTWithLineNumber q = (ASTWithLineNumber)t4;
+ logger.severe(excep.getMessage());
+ logger.severe(Thread.currentThread().getName()+" "+"TreeParser::Exception creating Expression at line "+q.getLine());
+ //System.out.println(excep.getMessage());
+ //System.out.println("TreeParser::Exception inserting symbol at line "+q.getLine());
+ System.err.println("$SPLTreeParser$ Error at line no#"+q.getLine()+":"+excep.getMessage());
+ throw new RecognitionException(excep.getMessage());
+ }
+
+ break;
+ }
+ case EQUAL:
+ {
+ AST __t63 = _t;
+ t5 = _t==ASTNULL ? null :(org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,EQUAL);
+ _t = _t.getFirstChild();
+ e1=expr(_t,symTab);
+ _t = _retTree;
+ e2=expr(_t,symTab);
+ _t = _retTree;
+ _t = __t63;
+ _t = _t.getNextSibling();
+
+ try
+ {
+ e = ExpressionFactory.createExpression(e1,e2,EQUAL,symTab);
+ if(logger.isLoggable(Level.FINE))
+ logger.fine(Thread.currentThread().getName()+" CIMSPLTreeParser:: expression created "+e.toString());
+
+
+ }
+ catch (SPLException excep)
+ {
+ ASTWithLineNumber q = (ASTWithLineNumber)t5;
+ //System.err.println("$SPLTreeParser$ Error at line no#"+q.getLine()+":"+excep.getMessage());
+ logger.severe(excep.getMessage());
+ logger.severe(Thread.currentThread().getName()+" "+"TreeParser::Exception creating Expression at line "+q.getLine());
+ //System.out.println(excep.getMessage());
+ System.err.println("$SPLTreeParser$ Error at line no#"+q.getLine()+":"+excep.getMessage());
+ throw new RecognitionException(excep.getMessage());
+ }
+
+ break;
+ }
+ case LT:
+ {
+ AST __t64 = _t;
+ t6 = _t==ASTNULL ? null :(org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,LT);
+ _t = _t.getFirstChild();
+ e1=expr(_t,symTab);
+ _t = _retTree;
+ e2=expr(_t,symTab);
+ _t = _retTree;
+ _t = __t64;
+ _t = _t.getNextSibling();
+
+ try
+ {
+ e = ExpressionFactory.createExpression(e1,e2,LT,symTab);
+ if(logger.isLoggable(Level.FINE))
+ logger.fine(Thread.currentThread().getName()+" CIMSPLTreeParser:: expression created "+e.toString());
+
+
+ }
+ catch (SPLException excep)
+ {
+ ASTWithLineNumber q = (ASTWithLineNumber)t6;
+ //System.err.println("$SPLTreeParser$ Error at line no#"+q.getLine()+":"+excep.getMessage());
+ logger.severe(excep.getMessage());
+ logger.severe(Thread.currentThread().getName()+" "+"TreeParser::Exception creating Expression at line "+q.getLine());
+ //System.out.println(excep.getMessage());
+ System.err.println("$SPLTreeParser$ Error at line no#"+q.getLine()+":"+excep.getMessage());
+ throw new RecognitionException(excep.getMessage());
+ }
+
+ break;
+ }
+ case GT:
+ {
+ AST __t65 = _t;
+ t7 = _t==ASTNULL ? null :(org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,GT);
+ _t = _t.getFirstChild();
+ e1=expr(_t,symTab);
+ _t = _retTree;
+ e2=expr(_t,symTab);
+ _t = _retTree;
+ _t = __t65;
+ _t = _t.getNextSibling();
+
+ try
+ {
+ e = ExpressionFactory.createExpression(e1,e2,GT,symTab);
+ if(logger.isLoggable(Level.FINE))
+ logger.fine(Thread.currentThread().getName()+" CIMSPLTreeParser:: expression created "+e.toString());
+
+ }
+ catch (SPLException excep)
+ {
+ ASTWithLineNumber q = (ASTWithLineNumber)t7;
+ //System.err.println("$SPLTreeParser$ Error at line no#"+q.getLine()+":"+excep.getMessage());
+ logger.severe(excep.getMessage());
+ logger.severe(Thread.currentThread().getName()+" "+"TreeParser::Exception creating Expression at line "+q.getLine());
+ //System.out.println(excep.getMessage());
+ System.err.println("$SPLTreeParser$ Error at line no#"+q.getLine()+":"+excep.getMessage());
+ throw new RecognitionException(excep.getMessage());
+ }
+
+ break;
+ }
+ case LE:
+ {
+ AST __t66 = _t;
+ t8 = _t==ASTNULL ? null :(org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,LE);
+ _t = _t.getFirstChild();
+ e1=expr(_t,symTab);
+ _t = _retTree;
+ e2=expr(_t,symTab);
+ _t = _retTree;
+ _t = __t66;
+ _t = _t.getNextSibling();
+
+ try
+ {
+ e = ExpressionFactory.createExpression(e1,e2,LE,symTab);
+ if(logger.isLoggable(Level.FINE))
+ logger.fine(Thread.currentThread().getName()+" CIMSPLTreeParser:: expression created "+e.toString());
+
+ }
+ catch (SPLException excep)
+ {
+ ASTWithLineNumber q = (ASTWithLineNumber)t8;
+ //System.err.println("$SPLTreeParser$ Error at line no#"+q.getLine()+":"+excep.getMessage());
+ logger.severe(excep.getMessage());
+ logger.severe(Thread.currentThread().getName()+" "+"TreeParser::Exception creating Expression at line "+q.getLine());
+ //System.out.println(excep.getMessage());
+ System.err.println("$SPLTreeParser$ Error at line no#"+q.getLine()+":"+excep.getMessage());
+ throw new RecognitionException(excep.getMessage());
+ }
+
+ break;
+ }
+ case GE:
+ {
+ AST __t67 = _t;
+ t9 = _t==ASTNULL ? null :(org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,GE);
+ _t = _t.getFirstChild();
+ e1=expr(_t,symTab);
+ _t = _retTree;
+ e2=expr(_t,symTab);
+ _t = _retTree;
+ _t = __t67;
+ _t = _t.getNextSibling();
+
+ try
+ {
+ e = ExpressionFactory.createExpression(e1,e2,GE,symTab);
+ if(logger.isLoggable(Level.FINE))
+ logger.fine(Thread.currentThread().getName()+" CIMSPLTreeParser:: expression created "+e.toString());
+
+ }
+ catch (SPLException excep)
+ {
+ ASTWithLineNumber q = (ASTWithLineNumber)t9;
+ logger.severe(excep.getMessage());
+ logger.severe(Thread.currentThread().getName()+" "+"TreeParser::Exception creating Expression at line "+q.getLine());
+ //System.out.println(excep.getMessage());
+ //System.out.println("TreeParser::Exception inserting symbol at line "+q.getLine());
+ System.err.println("$SPLTreeParser$ Error at line no#"+q.getLine()+":"+excep.getMessage());
+ throw new RecognitionException(excep.getMessage());
+ }
+
+ break;
+ }
+ case PLUS:
+ {
+ AST __t68 = _t;
+ t10 = _t==ASTNULL ? null :(org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,PLUS);
+ _t = _t.getFirstChild();
+ e1=expr(_t,symTab);
+ _t = _retTree;
+ e2=expr(_t,symTab);
+ _t = _retTree;
+ _t = __t68;
+ _t = _t.getNextSibling();
+
+ try
+ {
+ e = ExpressionFactory.createExpression(e1,e2,PLUS,symTab);
+ if(logger.isLoggable(Level.FINE))
+ logger.fine(Thread.currentThread().getName()+" CIMSPLTreeParser:: expression created "+e.toString());
+
+ }
+ catch (SPLException excep)
+ {
+ ASTWithLineNumber q = (ASTWithLineNumber)t10;
+ logger.severe(excep.getMessage());
+ logger.severe(Thread.currentThread().getName()+" "+"TreeParser::Exception creating Expression at line "+q.getLine());
+ //System.out.println(excep.getMessage());
+ //System.out.println("TreeParser::Exception inserting symbol at line "+q.getLine());
+ System.err.println("$SPLTreeParser$ Error at line no#"+q.getLine()+":"+excep.getMessage());
+ throw new RecognitionException(excep.getMessage());
+ }
+
+ break;
+ }
+ case MINUS:
+ {
+ AST __t69 = _t;
+ t11 = _t==ASTNULL ? null :(org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,MINUS);
+ _t = _t.getFirstChild();
+ e1=expr(_t,symTab);
+ _t = _retTree;
+ e2=expr(_t,symTab);
+ _t = _retTree;
+ _t = __t69;
+ _t = _t.getNextSibling();
+
+ try
+ {
+ e = ExpressionFactory.createExpression(e1,e2,MINUS,symTab);
+ if(logger.isLoggable(Level.FINE))
+ logger.fine(Thread.currentThread().getName()+" CIMSPLTreeParser:: expression created "+e.toString());
+
+ }
+ catch (SPLException excep)
+ {
+ ASTWithLineNumber q = (ASTWithLineNumber)t11;
+ logger.severe(excep.getMessage());
+ logger.severe(Thread.currentThread().getName()+" "+"TreeParser::Exception creating Expression at line "+q.getLine());
+ //System.out.println(excep.getMessage());
+ //System.out.println("TreeParser::Exception inserting symbol at line "+q.getLine());
+ System.err.println("$SPLTreeParser$ Error at line no#"+q.getLine()+":"+excep.getMessage());
+ throw new RecognitionException(excep.getMessage());
+ }
+
+ break;
+ }
+ case DIV:
+ {
+ AST __t70 = _t;
+ t12 = _t==ASTNULL ? null :(org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,DIV);
+ _t = _t.getFirstChild();
+ e1=expr(_t,symTab);
+ _t = _retTree;
+ e2=expr(_t,symTab);
+ _t = _retTree;
+ _t = __t70;
+ _t = _t.getNextSibling();
+
+ try
+ {
+ e = ExpressionFactory.createExpression(e1,e2,DIV,symTab);
+ if(logger.isLoggable(Level.FINE))
+ logger.fine(Thread.currentThread().getName()+" CIMSPLTreeParser:: expression created "+e.toString());
+
+ }
+ catch (SPLException excep)
+ {
+ ASTWithLineNumber q = (ASTWithLineNumber)t12;
+ logger.severe(excep.getMessage());
+ logger.severe(Thread.currentThread().getName()+" "+"TreeParser::Exception creating Expression at line "+q.getLine());
+ //System.out.println(excep.getMessage());
+ //System.out.println("TreeParser::Exception inserting symbol at line "+q.getLine());
+ System.err.println("$SPLTreeParser$ Error at line no#"+q.getLine()+":"+excep.getMessage());
+ throw new RecognitionException(excep.getMessage());
+ }
+
+ break;
+ }
+ case STAR:
+ {
+ AST __t71 = _t;
+ t13 = _t==ASTNULL ? null :(org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,STAR);
+ _t = _t.getFirstChild();
+ e1=expr(_t,symTab);
+ _t = _retTree;
+ e2=expr(_t,symTab);
+ _t = _retTree;
+ _t = __t71;
+ _t = _t.getNextSibling();
+
+ try
+ {
+ e = ExpressionFactory.createExpression(e1,e2,STAR,symTab);
+ if(logger.isLoggable(Level.FINE))
+ logger.fine(Thread.currentThread().getName()+" CIMSPLTreeParser:: expression created "+e.toString());
+
+ }
+ catch (SPLException excep)
+ {
+ ASTWithLineNumber q = (ASTWithLineNumber)t13;
+ logger.severe(excep.getMessage());
+ logger.severe(Thread.currentThread().getName()+" "+"TreeParser::Exception creating Expression at line "+q.getLine());
+ //System.out.println(excep.getMessage());
+ //System.out.println("TreeParser::Exception inserting symbol at line "+q.getLine());
+ System.err.println("$SPLTreeParser$ Error at line no#"+q.getLine()+":"+excep.getMessage());
+ throw new RecognitionException(excep.getMessage());
+ }
+
+ break;
+ }
+ case UNARY_MINUS:
+ {
+ AST __t72 = _t;
+ t14 = _t==ASTNULL ? null :(org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,UNARY_MINUS);
+ _t = _t.getFirstChild();
+ e1=expr(_t,symTab);
+ _t = _retTree;
+ _t = __t72;
+ _t = _t.getNextSibling();
+
+ try
+ {
+ e = ExpressionFactory.createExpression(e1,UNARY_MINUS,symTab);
+ if(logger.isLoggable(Level.FINE))
+ logger.fine(Thread.currentThread().getName()+" CIMSPLTreeParser:: expression created "+e.toString());
+
+ }
+ catch (SPLException excep)
+ {
+ ASTWithLineNumber q = (ASTWithLineNumber)t14;
+ logger.severe(excep.getMessage());
+ logger.severe(Thread.currentThread().getName()+" "+"TreeParser::Exception creating Expression at line "+q.getLine());
+ //System.out.println(excep.getMessage());
+ //System.out.println("TreeParser::Exception inserting symbol at line "+q.getLine());
+ //throw new RecognitionException("");
+ System.err.println("$SPLTreeParser$ Error at line no#"+q.getLine()+":"+excep.getMessage());
+ throw new RecognitionException(excep.getMessage());
+ }
+
+ break;
+ }
+ case UNARY_PLUS:
+ {
+ AST __t73 = _t;
+ t15 = _t==ASTNULL ? null :(org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,UNARY_PLUS);
+ _t = _t.getFirstChild();
+ e1=expr(_t,symTab);
+ _t = _retTree;
+ _t = __t73;
+ _t = _t.getNextSibling();
+
+ try
+ {
+ e = ExpressionFactory.createExpression(e1,UNARY_PLUS,symTab);
+ if(logger.isLoggable(Level.FINE))
+ logger.fine(Thread.currentThread().getName()+" CIMSPLTreeParser:: expression created "+e.toString());
+
+ }
+ catch (SPLException excep)
+ {
+ ASTWithLineNumber q = (ASTWithLineNumber)t15;
+ logger.severe(excep.getMessage());
+ logger.severe(Thread.currentThread().getName()+" "+"TreeParser::Exception creating Expression at line "+q.getLine());
+ //System.out.println(excep.getMessage());
+ //System.out.println("TreeParser::Exception inserting symbol at line "+q.getLine());
+ System.err.println("$SPLTreeParser$ Error at line no#"+q.getLine()+":"+excep.getMessage());
+ throw new RecognitionException(excep.getMessage());
+ }
+
+ break;
+ }
+ case UNARY_NOT:
+ {
+ AST __t74 = _t;
+ t16 = _t==ASTNULL ? null :(org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,UNARY_NOT);
+ _t = _t.getFirstChild();
+ e1=expr(_t,symTab);
+ _t = _retTree;
+ _t = __t74;
+ _t = _t.getNextSibling();
+
+ try
+ {
+ e = ExpressionFactory.createExpression(e1,UNARY_NOT,symTab);
+ if(logger.isLoggable(Level.FINE))
+ logger.fine(Thread.currentThread().getName()+" CIMSPLTreeParser:: expression created "+e.toString());
+
+ }
+ catch (SPLException excep)
+ {
+ ASTWithLineNumber q = (ASTWithLineNumber)t16;
+ logger.severe(excep.getMessage());
+ logger.severe(Thread.currentThread().getName()+" "+"TreeParser::Exception creating Expression at line "+q.getLine());
+ //System.out.println(excep.getMessage());
+ //System.out.println("TreeParser::Exception inserting symbol at line "+q.getLine());
+ System.err.println("$SPLTreeParser$ Error at line no#"+q.getLine()+":"+excep.getMessage());
+ throw new RecognitionException(excep.getMessage());
+ }
+
+ break;
+ }
+ case COLLECT_OP:
+ case BASICCOLLECTION_OP:
+ case IDENT:
+ case NUM_INT:
+ case LITERAL_true:
+ case LITERAL_false:
+ case LITERAL_Self:
+ case CHAR_LITERAL:
+ case STRING_LITERAL:
+ case NUM_FLOAT:
+ case NUM_LONG:
+ case NUM_DOUBLE:
+ {
+ e=primaryExpression(_t,symTab);
+ _t = _retTree;
+
+
+
+ break;
+ }
+ default:
+ {
+ throw new NoViableAltException(_t);
+ }
+ }
+ }
+ catch (RecognitionException ex) {
+ reportError(ex);
+ if (_t!=null) {_t = _t.getNextSibling();}
+ }
+ _retTree = _t;
+ return e;
+ }
+
+ public final Expression primaryExpression(AST _t,
+ SPLSymbolTable symTab
+ ) throws RecognitionException {
+ Expression e = null;
+
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber primaryExpression_AST_in = (_t == ASTNULL) ? null : (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber t = null;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber f = null;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber s = null;
+
+ try { // for error handling
+ if (_t==null) _t=ASTNULL;
+ switch ( _t.getType()) {
+ case LITERAL_true:
+ {
+ t = (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,LITERAL_true);
+ _t = _t.getNextSibling();
+
+ try
+ {
+ e = ExpressionFactory.createExpression(t.getText(),TypeConstants.booleanType);
+ if(logger.isLoggable(Level.FINE))
+ logger.fine(Thread.currentThread().getName()+" CIMSPLTreeParser:: expression created "+e.toString());
+
+ }
+ catch (SPLException excep)
+ {
+ ASTWithLineNumber q = (ASTWithLineNumber)t;
+ logger.severe(excep.getMessage());
+ logger.severe(Thread.currentThread().getName()+" "+"TreeParser::Exception creating Expression at line "+q.getLine());
+ //System.out.println(excep.getMessage());
+ //System.out.println("TreeParser::Exception inserting symbol at line "+q.getLine());
+ System.err.println("$SPLTreeParser$ Error at line no#"+q.getLine()+":"+excep.getMessage());
+ throw new RecognitionException(excep.getMessage());
+ }
+
+ break;
+ }
+ case LITERAL_false:
+ {
+ f = (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,LITERAL_false);
+ _t = _t.getNextSibling();
+
+ try
+ {
+ e = ExpressionFactory.createExpression(f.getText(),TypeConstants.booleanType);
+ if(logger.isLoggable(Level.FINE))
+ logger.fine(Thread.currentThread().getName()+" CIMSPLTreeParser:: expression created "+e.toString());
+
+ }catch (SPLException excep)
+ {
+ ASTWithLineNumber q = (ASTWithLineNumber)f;
+ logger.severe(excep.getMessage());
+ logger.severe(Thread.currentThread().getName()+" "+"TreeParser::Exception creating Expression at line "+q.getLine());
+ //System.out.println(excep.getMessage());
+ //System.out.println("TreeParser::Exception inserting symbol at line "+q.getLine());
+ System.err.println("$SPLTreeParser$ Error at line no#"+q.getLine()+":"+excep.getMessage());
+ throw new RecognitionException(excep.getMessage());
+ }
+
+ break;
+ }
+ case LITERAL_Self:
+ {
+ s = (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,LITERAL_Self);
+ _t = _t.getNextSibling();
+
+ try
+ {
+ //System.out.println("Self expression");
+ e = ExpressionFactory.createSelfExpression(symTab);
+ if(logger.isLoggable(Level.FINE))
+ logger.fine(Thread.currentThread().getName()+" CIMSPLTreeParser:: expression created "+e.toString());
+ }catch (SPLException excep)
+ {
+ ASTWithLineNumber q = (ASTWithLineNumber)s;
+ logger.severe(excep.getMessage());
+ logger.severe(Thread.currentThread().getName()+" "+"TreeParser::Exception creating Expression at line "+q.getLine());
+ //System.out.println(excep.getMessage());
+ //System.out.println("TreeParser::Exception inserting symbol at line "+q.getLine());
+ System.err.println("$SPLTreeParser$ Error at line no#"+q.getLine()+":"+excep.getMessage());
+ throw new RecognitionException(excep.getMessage());
+ }
+
+ break;
+ }
+ case NUM_INT:
+ case CHAR_LITERAL:
+ case STRING_LITERAL:
+ case NUM_FLOAT:
+ case NUM_LONG:
+ case NUM_DOUBLE:
+ {
+ e=constant(_t);
+ _t = _retTree;
+
+
+
+ break;
+ }
+ case COLLECT_OP:
+ case BASICCOLLECTION_OP:
+ case IDENT:
+ {
+ e=identPrimary(_t,symTab);
+ _t = _retTree;
+
+ //System.out.println("identPrimary");
+
+ break;
+ }
+ default:
+ {
+ throw new NoViableAltException(_t);
+ }
+ }
+ }
+ catch (RecognitionException ex) {
+ reportError(ex);
+ if (_t!=null) {_t = _t.getNextSibling();}
+ }
+ _retTree = _t;
+ return e;
+ }
+
+ public final Expression constant(AST _t) throws RecognitionException {
+ Expression ce = null;
+
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber constant_AST_in = (_t == ASTNULL) ? null : (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber ni = null;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber cl = null;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber sl = null;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber nf = null;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber nl = null;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber nd = null;
+
+ try { // for error handling
+ if (_t==null) _t=ASTNULL;
+ switch ( _t.getType()) {
+ case NUM_INT:
+ {
+ ni = (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,NUM_INT);
+ _t = _t.getNextSibling();
+
+ try
+ {
+ ce = ExpressionFactory.createExpression(ni.getText(),TypeConstants.intType);
+ if(logger.isLoggable(Level.FINE))
+ logger.fine(Thread.currentThread().getName()+" CIMSPLTreeParser:: expression created "+ce.toString());
+
+ }
+ catch (SPLException excep)
+ {
+ ASTWithLineNumber q = (ASTWithLineNumber)ni;
+ logger.severe(excep.getMessage());
+ logger.severe(Thread.currentThread().getName()+" "+"TreeParser::Exception creating Expression at line "+q.getLine());
+ //System.out.println(excep.getMessage());
+ //System.out.println("TreeParser::Exception inserting symbol at line "+q.getLine());
+ System.err.println("$SPLTreeParser$ Error at line no#"+q.getLine()+":"+excep.getMessage());
+ throw new RecognitionException(excep.getMessage());
+ }
+
+ break;
+ }
+ case CHAR_LITERAL:
+ {
+ cl = (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,CHAR_LITERAL);
+ _t = _t.getNextSibling();
+
+ try
+ {
+ ce = ExpressionFactory.createExpression(cl.getText(),TypeConstants.charType);
+ if(logger.isLoggable(Level.FINE))
+ logger.fine(Thread.currentThread().getName()+" CIMSPLTreeParser:: expression created "+ce.toString());
+
+ }
+ catch (SPLException excep)
+ {
+ ASTWithLineNumber q = (ASTWithLineNumber)cl;
+ logger.severe(excep.getMessage());
+ logger.severe(Thread.currentThread().getName()+" "+"TreeParser::Exception creating Expression at line "+q.getLine());
+ //System.out.println(excep.getMessage());
+ //System.out.println("TreeParser::Exception inserting symbol at line "+q.getLine());
+ System.err.println("$SPLTreeParser$ Error at line no#"+q.getLine()+":"+excep.getMessage());
+ throw new RecognitionException(excep.getMessage());
+ }
+
+ break;
+ }
+ case STRING_LITERAL:
+ {
+ sl = (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,STRING_LITERAL);
+ _t = _t.getNextSibling();
+
+ try
+ {
+ ce = ExpressionFactory.createExpression(sl.getText(),TypeConstants.stringType);
+ if(logger.isLoggable(Level.FINE))
+ logger.fine(Thread.currentThread().getName()+" CIMSPLTreeParser:: expression created "+ce.toString());
+
+ }catch (SPLException excep)
+ {
+ ASTWithLineNumber q = (ASTWithLineNumber)sl;
+ logger.severe(excep.getMessage());
+ logger.severe(Thread.currentThread().getName()+" "+"TreeParser::Exception creating Expression at line "+q.getLine());
+ //System.out.println(excep.getMessage());
+ //System.out.println("TreeParser::Exception inserting symbol at line "+q.getLine());
+ System.err.println("$SPLTreeParser$ Error at line no#"+q.getLine()+":"+excep.getMessage());
+ throw new RecognitionException(excep.getMessage());
+ }
+
+ break;
+ }
+ case NUM_FLOAT:
+ {
+ nf = (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,NUM_FLOAT);
+ _t = _t.getNextSibling();
+
+ try
+ {
+ ce = ExpressionFactory.createExpression(nf.getText(),TypeConstants.floatType);
+ if(logger.isLoggable(Level.FINE))
+ logger.fine(Thread.currentThread().getName()+" CIMSPLTreeParser:: expression created "+ce.toString());
+
+ }
+ catch (SPLException excep)
+ {
+ ASTWithLineNumber q = (ASTWithLineNumber)nf;
+ logger.severe(excep.getMessage());
+ logger.severe(Thread.currentThread().getName()+" "+"TreeParser::Exception creating Expression at line "+q.getLine());
+ //System.out.println(excep.getMessage());
+ //System.out.println("TreeParser::Exception inserting symbol at line "+q.getLine());
+ System.err.println("$SPLTreeParser$ Error at line no#"+q.getLine()+":"+excep.getMessage());
+ throw new RecognitionException(excep.getMessage());
+ }
+
+ break;
+ }
+ case NUM_LONG:
+ {
+ nl = (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,NUM_LONG);
+ _t = _t.getNextSibling();
+
+ try
+ {
+ ce = ExpressionFactory.createExpression(nl.getText(),TypeConstants.longType);
+ if(logger.isLoggable(Level.FINE))
+ logger.fine(Thread.currentThread().getName()+" CIMSPLTreeParser:: expression created "+ce.toString());
+
+ }
+ catch (SPLException excep)
+ {
+ ASTWithLineNumber q = (ASTWithLineNumber)nl;
+ logger.severe(excep.getMessage());
+ logger.severe(Thread.currentThread().getName()+" "+"TreeParser::Exception creating Expression at line "+q.getLine());
+ //System.out.println(excep.getMessage());
+ //System.out.println("TreeParser::Exception inserting symbol at line "+q.getLine());
+ System.err.println("$SPLTreeParser$ Error at line no#"+q.getLine()+":"+excep.getMessage());
+ throw new RecognitionException(excep.getMessage());
+ }
+
+ break;
+ }
+ case NUM_DOUBLE:
+ {
+ nd = (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,NUM_DOUBLE);
+ _t = _t.getNextSibling();
+
+ try
+ {
+ ce = ExpressionFactory.createExpression(nd.getText(),TypeConstants.doubleType);
+ if(logger.isLoggable(Level.FINE))
+ logger.fine(Thread.currentThread().getName()+" CIMSPLTreeParser:: expression created "+ce.toString());
+
+ }
+ catch (SPLException excep)
+ {
+ ASTWithLineNumber q = (ASTWithLineNumber)nd;
+ logger.severe(excep.getMessage());
+ logger.severe(Thread.currentThread().getName()+" "+"TreeParser::Exception creating Expression at line "+q.getLine());
+ //System.out.println(excep.getMessage());
+ //System.out.println("TreeParser::Exception inserting symbol at line "+q.getLine());
+ System.err.println("$SPLTreeParser$ Error at line no#"+q.getLine()+":"+excep.getMessage());
+ throw new RecognitionException(excep.getMessage());
+ }
+
+ break;
+ }
+ default:
+ {
+ throw new NoViableAltException(_t);
+ }
+ }
+ }
+ catch (RecognitionException ex) {
+ reportError(ex);
+ if (_t!=null) {_t = _t.getNextSibling();}
+ }
+ _retTree = _t;
+ return ce;
+ }
+
+ public final Expression identPrimary(AST _t,
+ SPLSymbolTable symTab
+ ) throws RecognitionException {
+ Expression e=null;
+
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber identPrimary_AST_in = (_t == ASTNULL) ? null : (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber i1 = null;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber m2 = null;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber i2 = null;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber m = null;
+
+ Expression arrexp = null;
+ List paramList = new ArrayList();
+ String secondId = "";
+ boolean isMethod = false;
+ boolean isBuiltInMethod = false;
+ List identTupleList = new ArrayList();
+ IdentPrimaryTuple tp = null;
+ SPLSymbolTable sTab = symTab;
+
+
+ try { // for error handling
+ if (_t==null) _t=ASTNULL;
+ switch ( _t.getType()) {
+ case COLLECT_OP:
+ {
+ e=collectExpr(_t,symTab);
+ _t = _retTree;
+ break;
+ }
+ case IDENT:
+ {
+ AST __t77 = _t;
+ i1 = _t==ASTNULL ? null :(org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,IDENT);
+ _t = _t.getFirstChild();
+ {
+ if (_t==null) _t=ASTNULL;
+ switch ( _t.getType()) {
+ case METHOD_CALL:
+ {
+ AST __t79 = _t;
+ m2 = _t==ASTNULL ? null :(org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,METHOD_CALL);
+ _t = _t.getFirstChild();
+ {
+ if (_t==null) _t=ASTNULL;
+ switch ( _t.getType()) {
+ case ELIST:
+ {
+ paramList=exprList(_t,symTab);
+ _t = _retTree;
+ break;
+ }
+ case 3:
+ {
+ break;
+ }
+ default:
+ {
+ throw new NoViableAltException(_t);
+ }
+ }
+ }
+ _t = __t79;
+ _t = _t.getNextSibling();
+ break;
+ }
+ case 3:
+ case IDENT:
+ {
+ {
+ _loop85:
+ do {
+ if (_t==null) _t=ASTNULL;
+ if ((_t.getType()==IDENT)) {
+ i2 = (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,IDENT);
+ _t = _t.getNextSibling();
+ secondId = i2.getText();
+ {
+ if (_t==null) _t=ASTNULL;
+ switch ( _t.getType()) {
+ case INDEX_OP:
+ {
+ arrexp=arrayIndex(_t,symTab);
+ _t = _retTree;
+ break;
+ }
+ case METHOD_CALL:
+ {
+ AST __t83 = _t;
+ m = _t==ASTNULL ? null :(org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,METHOD_CALL);
+ _t = _t.getFirstChild();
+ {
+ if (_t==null) _t=ASTNULL;
+ switch ( _t.getType()) {
+ case ELIST:
+ {
+ paramList=exprList(_t,symTab);
+ _t = _retTree;
+ break;
+ }
+ case 3:
+ {
+ break;
+ }
+ default:
+ {
+ throw new NoViableAltException(_t);
+ }
+ }
+ }
+ _t = __t83;
+ _t = _t.getNextSibling();
+ break;
+ }
+ case 3:
+ case IDENT:
+ {
+ break;
+ }
+ default:
+ {
+ throw new NoViableAltException(_t);
+ }
+ }
+ }
+
+ if(m != null)
+ isMethod = true;
+ sTab = new SPLSymbolTable();
+ tp = new IdentPrimaryTuple(arrexp, paramList, secondId, isMethod,sTab);
+ identTupleList.add(tp);
+
+
+
+
+ }
+ else {
+ break _loop85;
+ }
+
+ } while (true);
+ }
+ break;
+ }
+ default:
+ {
+ throw new NoViableAltException(_t);
+ }
+ }
+ }
+ _t = __t77;
+ _t = _t.getNextSibling();
+
+ if(m2!=null)
+ {
+ isBuiltInMethod = true;
+ //System.out.println("is isBuiltInMethod=true");
+ }
+ // do the symbol validation here
+ try
+ {
+ if(!isBuiltInMethod)
+ {
+ e = ExpressionFactory.createExpression(i1.getText(),identTupleList,isBuiltInMethod,symTab);
+ if(logger.isLoggable(Level.FINE))
+ {
+ logger.fine(Thread.currentThread().getName()+
+ " CIMSPLTreeParser:: expression created "+e.toString());
+ }
+ }
+ else
+ {
+ e = ExpressionFactory.createExpression(i1.getText(),paramList,isBuiltInMethod,symTab);
+ if(logger.isLoggable(Level.FINE))
+ {
+ logger.fine(Thread.currentThread().getName()+
+ " CIMSPLTreeParser:: expression created "+e.toString());
+ }
+ }
+
+ }
+ catch(SPLException excep)
+ {
+ ASTWithLineNumber q = (ASTWithLineNumber)i1;
+ logger.severe(excep.getMessage());
+ logger.severe(Thread.currentThread().getName()+" "+"TreeParser::Exception creating Expression at line "+q.getLine());
+ //System.out.println(excep.getMessage());
+ //System.out.println("TreeParser::Exception inserting symbol at line "+q.getLine());
+ System.err.println("$SPLTreeParser$ Error at line no#"+q.getLine()+":"+excep.getMessage());
+ throw new RecognitionException(excep.getMessage());
+ }
+
+
+
+ break;
+ }
+ case BASICCOLLECTION_OP:
+ {
+ e=basicCollectExpr(_t,symTab);
+ _t = _retTree;
+ break;
+ }
+ default:
+ {
+ throw new NoViableAltException(_t);
+ }
+ }
+ }
+ catch (RecognitionException ex) {
+ reportError(ex);
+ if (_t!=null) {_t = _t.getNextSibling();}
+ }
+ _retTree = _t;
+ return e;
+ }
+
+ public final Expression collectExpr(AST _t,
+ SPLSymbolTable symTab
+ ) throws RecognitionException {
+ Expression expr=null;
+
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber collectExpr_AST_in = (_t == ASTNULL) ? null : (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber c = null;
+
+ ArrayList paramList = new ArrayList();
+ Expression arrExp = null;
+ Expression postExpr = null;
+ SPLSymbolTable collectSymbolTable = new SPLSymbolTable();
+ collectSymbolTable.setSymbolTableType(SPLSymbolTable.COLLECT);
+ collectSymbolTable.setParentSymbolTable(symTab) ;
+ collectSymbolTable.setDefaultQualifier(symTab.getDefaultQualifier());
+
+
+
+
+ try { // for error handling
+ AST __t87 = _t;
+ c = _t==ASTNULL ? null :(org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,COLLECT_OP);
+ _t = _t.getFirstChild();
+ AST __t88 = _t;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber tmp27_AST_in = (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,COLLECT_CALL);
+ _t = _t.getFirstChild();
+ paramList=exprList(_t,collectSymbolTable);
+ _t = _retTree;
+ _t = __t88;
+ _t = _t.getNextSibling();
+ {
+ if (_t==null) _t=ASTNULL;
+ switch ( _t.getType()) {
+ case INDEX_OP:
+ {
+ postExpr=methodPropArrForCollect(_t,symTab,collectSymbolTable);
+ _t = _retTree;
+ break;
+ }
+ case 3:
+ {
+ break;
+ }
+ default:
+ {
+ throw new NoViableAltException(_t);
+ }
+ }
+ }
+ _t = __t87;
+ _t = _t.getNextSibling();
+
+ try
+ {
+ //System.out.println("createCollectExpression");
+ expr = ExpressionFactory.createCollectExpression(paramList,postExpr,collectSymbolTable);
+ if(logger.isLoggable(Level.FINE))
+ logger.fine(Thread.currentThread().getName()+" CIMSPLTreeParser:: expression created "+expr.toString());
+
+ }
+ catch (SPLException excep)
+ {
+ ASTWithLineNumber q = (ASTWithLineNumber)c;
+ logger.severe(excep.getMessage());
+ logger.severe(Thread.currentThread().getName()+" "+"TreeParser::Exception creating Expression at line "+q.getLine());
+ //System.out.println(excep.getMessage());
+ //System.out.println("TreeParser::Exception inserting symbol at line "+q.getLine());
+ System.err.println("$SPLTreeParser$ Error at line no#"+q.getLine()+":"+excep.getMessage());
+ throw new RecognitionException(excep.getMessage());
+ }
+
+ }
+ catch (RecognitionException ex) {
+ reportError(ex);
+ if (_t!=null) {_t = _t.getNextSibling();}
+ }
+ _retTree = _t;
+ return expr;
+ }
+
+ public final ArrayList exprList(AST _t,
+ SPLSymbolTable symTab
+ ) throws RecognitionException {
+ ArrayList eList = new ArrayList();
+
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber exprList_AST_in = (_t == ASTNULL) ? null : (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+
+ Expression e = null;
+
+
+ try { // for error handling
+ AST __t100 = _t;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber tmp28_AST_in = (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,ELIST);
+ _t = _t.getFirstChild();
+ {
+ _loop102:
+ do {
+ if (_t==null) _t=ASTNULL;
+ if ((_t.getType()==EXPR)) {
+ e=expression(_t,symTab);
+ _t = _retTree;
+ eList.add(e);/*//System.out.println("exprlist: created expression, added it to eList"+e);*/
+ }
+ else {
+ break _loop102;
+ }
+
+ } while (true);
+ }
+ _t = __t100;
+ _t = _t.getNextSibling();
+ }
+ catch (RecognitionException ex) {
+ reportError(ex);
+ if (_t!=null) {_t = _t.getNextSibling();}
+ }
+ _retTree = _t;
+ return eList;
+ }
+
+ public final Expression arrayIndex(AST _t,
+ SPLSymbolTable symTab
+ ) throws RecognitionException {
+ Expression e = null;
+
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber arrayIndex_AST_in = (_t == ASTNULL) ? null : (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+
+ try { // for error handling
+ AST __t104 = _t;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber tmp29_AST_in = (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ match(_t,INDEX_OP);
+ _t = _t.getFirstChild();
+ e=expression(_t,symTab);
+ _t = _retTree;
+ _t = __t104;
+ _t = _t.getNextSibling();
+ }
+ catch (RecognitionException ex) {
+ reportError(ex);
+ if (_t!=null) {_t = _t.getNextSibling();}
+ }
+ _retTree = _t;
+ return e;
+ }
+
+ public final Expression basicCollectExpr(AST _t,
+ SPLSymbolTable symTab
+ ) throws RecognitionException {
+ Expression expr=null;
+
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber basicCollectExpr_AST_in = (_t == ASTNULL) ? null : (org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
+ org.apache.imperius.spl.parser.compiler.ASTWithLineNumber c = null;
+
+ ArrayList paramList = new ArrayList();
+ Expression arrExp = null;
+ Expression postExpr = null;
+ SPLSymbolTable collectSymbolTable = new SPLSymbolTable();
+ collectSymbolTable.setSymbolTableType(SPLSymbolTable.BASICCOLLECT);
+ collectSymbolTable.setParentSymbolTable(symTab) ;
+ collectSymbolTable.setDefaultQualifier(symTab.getDefaultQualifier());
+
+ //symTab.addChildSymbolTable(collectSymbolTable);
+
+
+
+
+ try { // for error handling
+ AST __t98 = _t;
+ c = _t==ASTNULL ? null :(org.apache.imperius.spl.parser.compiler.ASTWithLineNumber)_t;
[... 649 lines stripped ...]