/*
* Copyright 2013 Guidewire Software, Inc.
*/
package gw.internal.gosu.parser;
import gw.internal.gosu.parser.statements.VarStatement;
import gw.lang.parser.ExternalSymbolMapForMap;
import gw.lang.parser.IExpression;
import gw.lang.parser.IParsedElement;
import gw.lang.parser.IStatement;
import gw.lang.parser.ISymbolTable;
/**
*/
public class GosuProgramParseInfo extends GosuClassParseInfo {
private ISymbolTable _symTable;
private ISymbolTable _additionalDFSDecls;
private Expression _expr;
private ExternalSymbolMapForMap _externalSymbols;
private IParsedElement _evalExprOrAnyExpr;
private IStatement _stmt;
public GosuProgramParseInfo(IGosuClassInternal gosuClass) {
super(gosuClass);
}
public ISymbolTable getSymbolTable() {
return _symTable;
}
public ExternalSymbolMapForMap getExternalSymbols() {
return _externalSymbols;
}
public ISymbolTable getAdditionalDFSDecls() {
return _additionalDFSDecls;
}
public void setAdditionalDFSDecls(ISymbolTable symbolTable) {
_additionalDFSDecls = symbolTable;
}
public void setSymbolTable(ISymbolTable symbolTable) {
_symTable = symbolTable;
}
public void setExternalSymbols(ExternalSymbolMapForMap externalSymbolMapForMap) {
_externalSymbols = externalSymbolMapForMap;
}
public void setExpression(Expression expr) {
_expr = expr;
}
public IExpression getExpression() {
return _expr;
}
public void setStatement(Statement stmt) {
_stmt = stmt;
}
public IStatement getStatement() {
return _stmt;
}
public IParsedElement getEvalExpression() {
return _evalExprOrAnyExpr;
}
public void setEvalExpression( IParsedElement evalExprOrAnyExpr ) {
_evalExprOrAnyExpr = evalExprOrAnyExpr;
}
@Override
public void addMemberField( VarStatement varStmt ) {
super.addMemberField( varStmt );
// Remove initializers, fields are assigned in the programs entry point function
varStmt.setAsExpression( null );
varStmt.setIsInitializedTopLevelProgVar();
}
}