Interface NestedStructureHouseKeeper
-
- All Known Implementing Classes:
AbstractNestedStructureHouseKeeper,GenericNestedStructureHouseKeeper
public interface NestedStructureHouseKeeperObject implementing this interface keep track of the programming structures that can be nested into each other. For example loops, functions and procedures and so on.- Author:
- Peter Verhas date June 8, 2012
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description <T extends NestedStructure>
Tpop(java.lang.Class<T> expectedClass)Pops one element from the stack.voidpush(NestedStructure element)Push a nested structure object on the housekeeping stack.voidpush(java.lang.Class<?> klass, NestedStructure element)Push a nested structure object on the housekeeping stack.
-
-
-
Method Detail
-
push
void push(java.lang.Class<?> klass, NestedStructure element)Push a nested structure object on the housekeeping stack.- Parameters:
element- the element to be stored on the stack.klass- is the class that we will expect when we pop this element off
-
push
void push(NestedStructure element)
Push a nested structure object on the housekeeping stack. This version of push does push the object associated with the actual class of the object.- Parameters:
element- to push on the stack.
-
pop
<T extends NestedStructure> T pop(java.lang.Class<T> expectedClass) throws AnalysisException
Pops one element from the stack.Note that nested element have to be pushed on the stack nested. If we get an element off the stack that was not expected it means syntax error and therefore in this case exception is thrown.
When exception was thrown the functioning of the object is not defined by this interface. Some implementation may seek the appropriate element in the stack and throw off all top element until a proper type of element is found assuming that the user forgot to close some internal programming structured in the scripted language. Other implementations may follow more complex strategy to recover from such an error. In either case the sole reason of further syntax analysis is to discover as many syntax error as possible following the first one.
- Type Parameters:
T- expected type of the element- Parameters:
expectedClass- the expected class of the element- Returns:
- the top element
- Throws:
AnalysisException- when the top element of the stack is not the type that we expect
-
-