package com.github.sommeri.less4j.core.compiler.scopes; import com.github.sommeri.less4j.core.ast.ASTCssNode; import com.github.sommeri.less4j.core.ast.Expression; import com.github.sommeri.less4j.core.ast.Variable; public interface IScope extends ILocalScope, IScopesTree { // debug printing public StringBuilder toLongString(int indentationLevel); public String toString(); public String toFullName(); public boolean seesLocalDataOf(IScope otherScope); public boolean seesAllDataOf(IScope otherScope); //smart util methods public IScope firstChild(); public IScope skipBodyOwner(); public String toLongString(); public IScope getRootScope(); public IScope getChildOwnerOf(ASTCssNode body); public IScope childByOwners(ASTCssNode headNode, ASTCssNode... restNodes); // data access methods public Expression getValue(Variable variable); public Expression getValue(String name); public Expression getLocalValue(Variable variable); public Expression getLocalValue(String name); // smart setters public void setParentKeepConsistency(IScope parent); // internals access public IScopesTree getSurroundingScopes(); public ILocalScope getLocalScope(); }