Class Var<T>
- java.lang.Object
-
- org.parboiled.common.Reference<T>
-
- org.parboiled.support.Var<T>
-
- Type Parameters:
T
- the type wrapped by this Var
- Direct Known Subclasses:
StringBuilderVar
,StringVar
public class Var<T> extends Reference<T>
This class provides a "local variable"-like construct for action expressions in parser rule methods. Var
objects wrap an internal value of an arbitrary (reference) type, can have an initial value, allow read/write access to their values and can be passed around as parameters to nested rule methods. Each rule invocation (i.e. rule matching attempt) receives its own Var scope (which is automatically initialized with the initial value), so actions in recursive rules work just like expected. Var
objects generally behave just like local variables with one exception:
When rule method A() passes a Var defined in its scope to another rule method B() as a parameter and an action in rule method B() writes to this Var all actions in rule method A() running after B() will "see" this newly written value (since values in Varobjects are passed by reference)
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
enterFrame()
Provides a new frame for the variable.boolean
exitFrame()
Exits a frame previously entered withenterFrame()
.int
getLevel()
Returns the current frame level of this variable, the very first level corresponding to zero.String
getName()
Gets the name of this Var.void
setName(String name)
Sets the name of this Var.String
toString()
-
-
-
Constructor Detail
-
Var
public Var()
Initializes a new Var with a null initial value.
-
Var
public Var(T value)
Initializes a new Var with the given initial value.- Parameters:
value
- the value
-
-
Method Detail
-
getName
public String getName()
Gets the name of this Var.- Returns:
- the name
-
setName
public void setName(String name)
Sets the name of this Var.- Parameters:
name
- the name
-
getLevel
public int getLevel()
Returns the current frame level of this variable, the very first level corresponding to zero.- Returns:
- the current level
-
enterFrame
public boolean enterFrame()
Provides a new frame for the variable. Potentially existing previous frames are saved. Normally you do not have to call this method manually as parboiled provides for automatic Var frame management.- Returns:
- true
-
exitFrame
public boolean exitFrame()
Exits a frame previously entered withenterFrame()
. Normally you do not have to call this method manually as parboiled provides for automatic Var frame management.- Returns:
- true
-
-