package org.eclipse.iee.translator.antlr.translator; import java.util.Map; import org.eclipse.iee.core.document.source.IScope; import org.eclipse.iee.core.document.source.IVariableType; import com.google.common.collect.Maps; class Scope implements IScope { private Scope parent; private Map<String, IVariableType> variables = Maps.newHashMap(); public Scope(Scope parent) { this.parent = parent; } public Scope getParent() { return parent; } /* (non-Javadoc) * @see org.eclipse.iee.translator.antlr.translator.IScope#addVariable(java.lang.String, org.eclipse.iee.core.document.source.VariableType) */ @Override public void addVariable(String text, IVariableType d) { variables.put(text, d); } /* (non-Javadoc) * @see org.eclipse.iee.translator.antlr.translator.IScope#getVariableType(java.lang.String) */ @Override public IVariableType getVariableType(String text) { IVariableType variableType = variables.get(text); if (variableType == null && parent != null) { return parent.getVariableType(text); } return variableType; } @Override public boolean hasVariable(String variable) { return variables.containsKey(variable); } }