com.saxonica.bytecode

## Class ProcessingInstructionCompiler

- java.lang.Object
- - com.saxonica.bytecode.ExpressionCompiler
  - - com.saxonica.bytecode.ToIteratorCompiler
    - - com.saxonica.bytecode.ToPushCompiler
      - - com.saxonica.bytecode.SimpleNodeConstructorCompiler
        - - com.saxonica.bytecode.ProcessingInstructionCompiler

-     public class ProcessingInstructionCompiler
      extends SimpleNodeConstructorCompiler

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `ProcessingInstructionCompiler()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `checkContent(CompilerService compiler, Expression expression)` 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 CharSequence; on exit the revised content must be on the stack as a CharSequence.
    `protected void` | `compileNodeName(CompilerService compiler, Expression expression)` Compile code to generate the node name (if any) and leave it on the top of the stack.
    `protected boolean` | `isNamedNodeKind()` Ask whether this instruction generates a kind of node that is named
    `protected void` | `pushNode(CompilerService compiler, Expression expression)` Generate code to write the node to the current receiver.

    - ### Methods inherited from class com.saxonica.bytecode.SimpleNodeConstructorCompiler

      `compileToItem, compileToPush, isNoNodeIfEmpty`

    - ### Methods inherited from class com.saxonica.bytecode.ToPushCompiler

      `compileToIterator`

    - ### Methods inherited from class com.saxonica.bytecode.ToIteratorCompiler

      `compileToBoolean`

    - ### Methods inherited from class com.saxonica.bytecode.ExpressionCompiler

      `allocateStatic, compileItemFromInt, compileItemFromString, compileToLoop, compileToPrimitive, generateMethod, handleEmptyStringResult, throwXPathException, throwXPathException, unboxItem, verify, visitAnnotation, visitLineNumber`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### 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`

    - #### 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`
      Throws:
        `CannotCompileException`

    - #### 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 CharSequence; on exit the revised content must be on the stack as a CharSequence.
      Overrides:
        `checkContent` in class `SimpleNodeConstructorCompiler`

    - #### 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` -
        `expression` -

Copyright (c) 2004-2013 Saxonica Limited. All rights reserved.