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 ...]