Class GenericNestedStructureHouseKeeper

    • Constructor Detail

      • GenericNestedStructureHouseKeeper

        public GenericNestedStructureHouseKeeper​(LexicalAnalyzer analyzer)
    • Method Detail

      • pop

        public <T extends NestedStructure> T pop​(java.lang.Class<T> expectedClass)
                                          throws AnalysisException
        Description copied from interface: NestedStructureHouseKeeper
        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.

        Specified by:
        pop in interface NestedStructureHouseKeeper
        Overrides:
        pop in class AbstractNestedStructureHouseKeeper
        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