Class CXCursor

  • All Implemented Interfaces:
    java.lang.AutoCloseable, org.lwjgl.system.NativeResource, org.lwjgl.system.Pointer

    public class CXCursor
    extends org.lwjgl.system.Struct
    implements org.lwjgl.system.NativeResource
    A cursor representing some element in the abstract syntax tree for a translation unit.

    The cursor abstraction unifies the different kinds of entities in a program --declaration, statements, expressions, references to declarations, etc.-- under a single "cursor" abstraction with a common set of operations. Common operation for a cursor include: getting the physical location in a source file where the cursor points, getting the name associated with a cursor, and retrieving cursors for any child nodes of a particular cursor.

    Cursors can be produced in two specific ways. getTranslationUnitCursor produces a cursor for a translation unit, from which one can use visitChildren to explore the rest of the translation unit. getCursor maps from a physical source location to the entity that resides at that location, allowing one to map from the source code into the AST.

    Layout

    
     struct CXCursor {
         enum CXCursorKind kind;
         int xdata;
         void const * data[3];
     }
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  CXCursor.Buffer
      An array of CXCursor structs.
      • Nested classes/interfaces inherited from interface org.lwjgl.system.Pointer

        org.lwjgl.system.Pointer.Default
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static int ALIGNOF
      The struct alignment in bytes.
      static int DATA
      KIND
      The struct member offsets.
      static int SIZEOF
      The struct size in bytes.
      static int XDATA
      The struct member offsets.
      • Fields inherited from interface org.lwjgl.system.Pointer

        BITS32, BITS64, CLONG_SHIFT, CLONG_SIZE, POINTER_SHIFT, POINTER_SIZE
    • Constructor Summary

      Constructors 
      Constructor Description
      CXCursor​(java.nio.ByteBuffer container)
      Creates a CXCursor instance at the current position of the specified ByteBuffer container.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      static CXCursor calloc()
      Returns a new CXCursor instance allocated with memCalloc.
      static CXCursor.Buffer calloc​(int capacity)
      Returns a new CXCursor.Buffer instance allocated with memCalloc.
      static CXCursor callocStack()
      Returns a new CXCursor instance allocated on the thread-local MemoryStack and initializes all its bits to zero.
      static CXCursor.Buffer callocStack​(int capacity)
      Returns a new CXCursor.Buffer instance allocated on the thread-local MemoryStack and initializes all its bits to zero.
      static CXCursor.Buffer callocStack​(int capacity, org.lwjgl.system.MemoryStack stack)
      Returns a new CXCursor.Buffer instance allocated on the specified MemoryStack and initializes all its bits to zero.
      static CXCursor callocStack​(org.lwjgl.system.MemoryStack stack)
      Returns a new CXCursor instance allocated on the specified MemoryStack and initializes all its bits to zero.
      static CXCursor create()
      Returns a new CXCursor instance allocated with BufferUtils.
      static CXCursor.Buffer create​(int capacity)
      Returns a new CXCursor.Buffer instance allocated with BufferUtils.
      static CXCursor create​(long address)
      Returns a new CXCursor instance for the specified memory address.
      static CXCursor.Buffer create​(long address, int capacity)
      Create a CXCursor.Buffer instance at the specified memory.
      static CXCursor createSafe​(long address)
      Like create, but returns null if address is NULL.
      static CXCursor.Buffer createSafe​(long address, int capacity)
      Like create, but returns null if address is NULL.
      org.lwjgl.PointerBuffer data()
      Returns a PointerBuffer view of the data field.
      long data​(int index)
      Returns the value at the specified index of the data field.
      int kind()
      Returns the value of the kind field.
      static CXCursor malloc()
      Returns a new CXCursor instance allocated with memAlloc.
      static CXCursor.Buffer malloc​(int capacity)
      Returns a new CXCursor.Buffer instance allocated with memAlloc.
      static CXCursor mallocStack()
      Returns a new CXCursor instance allocated on the thread-local MemoryStack.
      static CXCursor.Buffer mallocStack​(int capacity)
      Returns a new CXCursor.Buffer instance allocated on the thread-local MemoryStack.
      static CXCursor.Buffer mallocStack​(int capacity, org.lwjgl.system.MemoryStack stack)
      Returns a new CXCursor.Buffer instance allocated on the specified MemoryStack.
      static CXCursor mallocStack​(org.lwjgl.system.MemoryStack stack)
      Returns a new CXCursor instance allocated on the specified MemoryStack.
      static org.lwjgl.PointerBuffer ndata​(long struct)
      Unsafe version of data().
      static long ndata​(long struct, int index)
      Unsafe version of data.
      static int nkind​(long struct)
      Unsafe version of kind().
      static int nxdata​(long struct)
      Unsafe version of xdata().
      int sizeof()  
      int xdata()
      Returns the value of the xdata field.
      • Methods inherited from interface org.lwjgl.system.NativeResource

        close, free
      • Methods inherited from class java.lang.Object

        getClass, notify, notifyAll, wait, wait, wait
      • Methods inherited from class org.lwjgl.system.Pointer.Default

        address, equals, hashCode, toString
      • Methods inherited from class org.lwjgl.system.Struct

        clear, free, isNull
    • Field Detail

      • SIZEOF

        The struct size in bytes.
      • ALIGNOF

        The struct alignment in bytes.
      • KIND, XDATA, DATA

        The struct member offsets.
    • Constructor Detail

      • CXCursor

        public CXCursor​(java.nio.ByteBuffer container)
        Creates a CXCursor instance at the current position of the specified ByteBuffer container. Changes to the buffer's content will be visible to the struct instance and vice versa.

        The created instance holds a strong reference to the container object.

    • Method Detail

      • sizeof

        public int sizeof()
        Specified by:
        sizeof in class org.lwjgl.system.Struct
      • kind

        public int kind()
        Returns the value of the kind field.
      • xdata

        public int xdata()
        Returns the value of the xdata field.
      • data

        public org.lwjgl.PointerBuffer data()
        Returns a PointerBuffer view of the data field.
      • data

        public long data​(int index)
        Returns the value at the specified index of the data field.
      • malloc

        public static CXCursor malloc()
        Returns a new CXCursor instance allocated with memAlloc. The instance must be explicitly freed.
      • calloc

        public static CXCursor calloc()
        Returns a new CXCursor instance allocated with memCalloc. The instance must be explicitly freed.
      • create

        public static CXCursor create()
        Returns a new CXCursor instance allocated with BufferUtils.
      • create

        public static CXCursor create​(long address)
        Returns a new CXCursor instance for the specified memory address.
      • createSafe

        @Nullable
        public static CXCursor createSafe​(long address)
        Like create, but returns null if address is NULL.
      • malloc

        public static CXCursor.Buffer malloc​(int capacity)
        Returns a new CXCursor.Buffer instance allocated with memAlloc. The instance must be explicitly freed.
        Parameters:
        capacity - the buffer capacity
      • calloc

        public static CXCursor.Buffer calloc​(int capacity)
        Returns a new CXCursor.Buffer instance allocated with memCalloc. The instance must be explicitly freed.
        Parameters:
        capacity - the buffer capacity
      • create

        public static CXCursor.Buffer create​(int capacity)
        Returns a new CXCursor.Buffer instance allocated with BufferUtils.
        Parameters:
        capacity - the buffer capacity
      • create

        public static CXCursor.Buffer create​(long address,
                                             int capacity)
        Create a CXCursor.Buffer instance at the specified memory.
        Parameters:
        address - the memory address
        capacity - the buffer capacity
      • createSafe

        @Nullable
        public static CXCursor.Buffer createSafe​(long address,
                                                 int capacity)
        Like create, but returns null if address is NULL.
      • mallocStack

        public static CXCursor mallocStack()
        Returns a new CXCursor instance allocated on the thread-local MemoryStack.
      • callocStack

        public static CXCursor callocStack()
        Returns a new CXCursor instance allocated on the thread-local MemoryStack and initializes all its bits to zero.
      • mallocStack

        public static CXCursor mallocStack​(org.lwjgl.system.MemoryStack stack)
        Returns a new CXCursor instance allocated on the specified MemoryStack.
        Parameters:
        stack - the stack from which to allocate
      • callocStack

        public static CXCursor callocStack​(org.lwjgl.system.MemoryStack stack)
        Returns a new CXCursor instance allocated on the specified MemoryStack and initializes all its bits to zero.
        Parameters:
        stack - the stack from which to allocate
      • mallocStack

        public static CXCursor.Buffer mallocStack​(int capacity)
        Returns a new CXCursor.Buffer instance allocated on the thread-local MemoryStack.
        Parameters:
        capacity - the buffer capacity
      • callocStack

        public static CXCursor.Buffer callocStack​(int capacity)
        Returns a new CXCursor.Buffer instance allocated on the thread-local MemoryStack and initializes all its bits to zero.
        Parameters:
        capacity - the buffer capacity
      • mallocStack

        public static CXCursor.Buffer mallocStack​(int capacity,
                                                  org.lwjgl.system.MemoryStack stack)
        Returns a new CXCursor.Buffer instance allocated on the specified MemoryStack.
        Parameters:
        stack - the stack from which to allocate
        capacity - the buffer capacity
      • callocStack

        public static CXCursor.Buffer callocStack​(int capacity,
                                                  org.lwjgl.system.MemoryStack stack)
        Returns a new CXCursor.Buffer instance allocated on the specified MemoryStack and initializes all its bits to zero.
        Parameters:
        stack - the stack from which to allocate
        capacity - the buffer capacity
      • nkind

        public static int nkind​(long struct)
        Unsafe version of kind().
      • nxdata

        public static int nxdata​(long struct)
        Unsafe version of xdata().
      • ndata

        public static org.lwjgl.PointerBuffer ndata​(long struct)
        Unsafe version of data().
      • ndata

        public static long ndata​(long struct,
                                 int index)
        Unsafe version of data.