Class ProcessingInstructionCompiler

    • Constructor Detail

      • ProcessingInstructionCompiler

        public ProcessingInstructionCompiler()
    • Method Detail

      • isNamedNodeKind

        protected boolean isNamedNodeKind()
        Ask whether this instruction generates a kind of node that is named
        Overrides:
        isNamedNodeKind in class SimpleNodeConstructorCompiler
        Returns:
        true if the instruction generates a kind of node that is named
      • compileNodeName

        protected void compileNodeName​(CompilerService compiler,
                                       Expression expression)
                                throws CannotCompileException
        Compile code to generate the node name (if any) and leave it on the top of the stack. For node kinds that are always unnamed (such as comments), the stack is not changed. For node kinds that may be named or unnamed (namespace nodes), an entry is always added to the stack, which will be null if the particular node has no name.
        Overrides:
        compileNodeName in class SimpleNodeConstructorCompiler
        Parameters:
        compiler - the compiler service
        expression - the expression to be compiled
        Throws:
        CannotCompileException - if the expression cannot be compiled to bytecode
      • checkContent

        public void checkContent​(CompilerService compiler,
                                 Expression expression)
        Description copied from class: SimpleNodeConstructorCompiler
        Compile code to check the content of the node, and adjust it if necessary On entry the proposed content is on the stack as a UnicodeString; on exit the revised content must be on the stack as a UnicodeString.
        Overrides:
        checkContent in class SimpleNodeConstructorCompiler
        Parameters:
        compiler - the compiler service
        expression - the expression to be compiled
      • pushNode

        protected void pushNode​(CompilerService compiler,
                                Expression expression)
        Generate code to write the node to the current receiver. On entry the stack holds the current receiver, the node name (for named node kinds only) and the content (for all nodes)
        Specified by:
        pushNode in class SimpleNodeConstructorCompiler
        Parameters:
        compiler - the compiler service
        expression - the expression to be compiled