public class Envir extends Object
Modifier and Type | Field and Description |
---|---|
protected net.sourceforge.czt.z.ast.Expr |
expr_ |
protected net.sourceforge.czt.z.ast.ZName |
name_ |
protected Envir |
nextEnv |
Constructor and Description |
---|
Envir()
Create an empty Envir
|
Modifier and Type | Method and Description |
---|---|
Envir |
deepCopy()
Returns a copy of this environment, with no values shared.
|
Set<net.sourceforge.czt.z.ast.ZName> |
definedSince(Envir env0)
Return the set of newly defined names.
|
boolean |
equals(Object obj)
Two environments are equal if they contain the same names
and values, in exactly the same order.
|
int |
hashCode() |
Envir |
hide(net.sourceforge.czt.z.ast.ZName name)
Hides the given name, so the the environment *appears* not to include that name.
|
boolean |
isDefined(net.sourceforge.czt.z.ast.ZName want)
See if a name is defined in the Environment.
|
boolean |
isDefinedSince(Envir env0,
net.sourceforge.czt.z.ast.ZName want)
See if a name is recently defined in the Environment.
|
net.sourceforge.czt.z.ast.Expr |
lookup(net.sourceforge.czt.z.ast.ZName want)
Lookup the value of a name in the Environment.
|
protected void |
pairToString(StringBuffer result) |
Envir |
plus(net.sourceforge.czt.z.ast.ZName name,
net.sourceforge.czt.z.ast.Expr value)
Create a new Envir which equals this one, plus an extra name,value pair.
|
Envir |
plusAll(net.sourceforge.czt.z.ast.BindExpr binding)
Creates an environment which extends this one by adding
all the name==expr pairs in binding.
|
static boolean |
sameName(net.sourceforge.czt.z.ast.ZName a,
net.sourceforge.czt.z.ast.ZName b) |
void |
setValue(net.sourceforge.czt.z.ast.ZName name,
net.sourceforge.czt.z.ast.Expr newvalue)
Update the value of a name in the Environment.
|
String |
toString() |
protected Envir nextEnv
protected net.sourceforge.czt.z.ast.ZName name_
protected net.sourceforge.czt.z.ast.Expr expr_
public net.sourceforge.czt.z.ast.Expr lookup(net.sourceforge.czt.z.ast.ZName want)
EvalException
- if want is not defined in this environment.public static boolean sameName(net.sourceforge.czt.z.ast.ZName a, net.sourceforge.czt.z.ast.ZName b)
public Set<net.sourceforge.czt.z.ast.ZName> definedSince(Envir env0)
public boolean isDefinedSince(Envir env0, net.sourceforge.czt.z.ast.ZName want)
public boolean isDefined(net.sourceforge.czt.z.ast.ZName want)
public void setValue(net.sourceforge.czt.z.ast.ZName name, net.sourceforge.czt.z.ast.Expr newvalue)
name
- This name must already exist in the environment.newvalue
- The new value for name.public Envir plus(net.sourceforge.czt.z.ast.ZName name, net.sourceforge.czt.z.ast.Expr value)
name
- The name to add.value
- The value to which name will be bound. Can be null.public Envir plusAll(net.sourceforge.czt.z.ast.BindExpr binding)
public Envir hide(net.sourceforge.czt.z.ast.ZName name)
name
- public boolean equals(Object obj)
protected void pairToString(StringBuffer result)
public Envir deepCopy()
Copyright © 2003–2016 Community Z Tools Project. All rights reserved.