package jetbrains.mps.lang.scopes.runtime;
/*Generated by MPS */
import jetbrains.mps.scope.Scope;
import org.jetbrains.mps.openapi.model.SNode;
import org.jetbrains.mps.openapi.language.SAbstractConcept;
import jetbrains.mps.scope.CompositeScope;
public class CompositeWithParentScope {
public static Scope from(Scope original, SNode node, SAbstractConcept kind) {
// todo: from?
Scope nextScope = ScopeUtils.parentScope(node, kind);
return (nextScope == null ? original : new CompositeScope(original, nextScope));
}
public static Scope from(Iterable<SNode> elements, SNode node, SAbstractConcept kind) {
return (elements != null ? from(new NamedElementsScope(elements), node, kind) : ScopeUtils.parentScope(node, kind));
}
public static Scope from(SNode element, SNode node, SAbstractConcept kind) {
return ((element != null) ? from(new NamedElementsScope(element), node, kind) : ScopeUtils.parentScope(node, kind));
}
}