#Signature file v4.1
#Version 1.40

CLSS public abstract interface java.io.Serializable

CLSS public abstract interface java.lang.Comparable<%0 extends java.lang.Object>
meth public abstract int compareTo({java.lang.Comparable%0})

CLSS public abstract java.lang.Enum<%0 extends java.lang.Enum<{java.lang.Enum%0}>>
cons protected init(java.lang.String,int)
intf java.io.Serializable
intf java.lang.Comparable<{java.lang.Enum%0}>
meth protected final java.lang.Object clone() throws java.lang.CloneNotSupportedException
meth protected final void finalize()
meth public final boolean equals(java.lang.Object)
meth public final int compareTo({java.lang.Enum%0})
meth public final int hashCode()
meth public final int ordinal()
meth public final java.lang.Class<{java.lang.Enum%0}> getDeclaringClass()
meth public final java.lang.String name()
meth public java.lang.String toString()
meth public static <%0 extends java.lang.Enum<{%%0}>> {%%0} valueOf(java.lang.Class<{%%0}>,java.lang.String)
supr java.lang.Object
hfds name,ordinal

CLSS public java.lang.Object
cons public init()
meth protected java.lang.Object clone() throws java.lang.CloneNotSupportedException
meth protected void finalize() throws java.lang.Throwable
meth public boolean equals(java.lang.Object)
meth public final java.lang.Class<?> getClass()
meth public final void notify()
meth public final void notifyAll()
meth public final void wait() throws java.lang.InterruptedException
meth public final void wait(long) throws java.lang.InterruptedException
meth public final void wait(long,int) throws java.lang.InterruptedException
meth public int hashCode()
meth public java.lang.String toString()

CLSS public final !enum org.netbeans.api.java.lexer.JavaStringTokenId
fld public final static org.netbeans.api.java.lexer.JavaStringTokenId BACKSLASH
fld public final static org.netbeans.api.java.lexer.JavaStringTokenId BACKSPACE
fld public final static org.netbeans.api.java.lexer.JavaStringTokenId CR
fld public final static org.netbeans.api.java.lexer.JavaStringTokenId DOUBLE_QUOTE
fld public final static org.netbeans.api.java.lexer.JavaStringTokenId ESCAPE_SEQUENCE_INVALID
fld public final static org.netbeans.api.java.lexer.JavaStringTokenId FORM_FEED
fld public final static org.netbeans.api.java.lexer.JavaStringTokenId NEWLINE
fld public final static org.netbeans.api.java.lexer.JavaStringTokenId OCTAL_ESCAPE
fld public final static org.netbeans.api.java.lexer.JavaStringTokenId OCTAL_ESCAPE_INVALID
fld public final static org.netbeans.api.java.lexer.JavaStringTokenId SINGLE_QUOTE
fld public final static org.netbeans.api.java.lexer.JavaStringTokenId TAB
fld public final static org.netbeans.api.java.lexer.JavaStringTokenId TEXT
fld public final static org.netbeans.api.java.lexer.JavaStringTokenId UNICODE_ESCAPE
fld public final static org.netbeans.api.java.lexer.JavaStringTokenId UNICODE_ESCAPE_INVALID
intf org.netbeans.api.lexer.TokenId
meth public java.lang.String primaryCategory()
meth public static org.netbeans.api.java.lexer.JavaStringTokenId valueOf(java.lang.String)
meth public static org.netbeans.api.java.lexer.JavaStringTokenId[] values()
meth public static org.netbeans.api.lexer.Language<org.netbeans.api.java.lexer.JavaStringTokenId> language()
supr java.lang.Enum<org.netbeans.api.java.lexer.JavaStringTokenId>
hfds language,primaryCategory

CLSS public final !enum org.netbeans.api.java.lexer.JavaTokenId
fld public final static org.netbeans.api.java.lexer.JavaTokenId ABSTRACT
fld public final static org.netbeans.api.java.lexer.JavaTokenId AMP
fld public final static org.netbeans.api.java.lexer.JavaTokenId AMPAMP
fld public final static org.netbeans.api.java.lexer.JavaTokenId AMPEQ
fld public final static org.netbeans.api.java.lexer.JavaTokenId ARROW
fld public final static org.netbeans.api.java.lexer.JavaTokenId ASSERT
fld public final static org.netbeans.api.java.lexer.JavaTokenId AT
fld public final static org.netbeans.api.java.lexer.JavaTokenId BANG
fld public final static org.netbeans.api.java.lexer.JavaTokenId BANGEQ
fld public final static org.netbeans.api.java.lexer.JavaTokenId BAR
fld public final static org.netbeans.api.java.lexer.JavaTokenId BARBAR
fld public final static org.netbeans.api.java.lexer.JavaTokenId BAREQ
fld public final static org.netbeans.api.java.lexer.JavaTokenId BLOCK_COMMENT
fld public final static org.netbeans.api.java.lexer.JavaTokenId BOOLEAN
fld public final static org.netbeans.api.java.lexer.JavaTokenId BREAK
fld public final static org.netbeans.api.java.lexer.JavaTokenId BYTE
fld public final static org.netbeans.api.java.lexer.JavaTokenId CARET
fld public final static org.netbeans.api.java.lexer.JavaTokenId CARETEQ
fld public final static org.netbeans.api.java.lexer.JavaTokenId CASE
fld public final static org.netbeans.api.java.lexer.JavaTokenId CATCH
fld public final static org.netbeans.api.java.lexer.JavaTokenId CHAR
fld public final static org.netbeans.api.java.lexer.JavaTokenId CHAR_LITERAL
fld public final static org.netbeans.api.java.lexer.JavaTokenId CLASS
fld public final static org.netbeans.api.java.lexer.JavaTokenId COLON
fld public final static org.netbeans.api.java.lexer.JavaTokenId COLONCOLON
fld public final static org.netbeans.api.java.lexer.JavaTokenId COMMA
fld public final static org.netbeans.api.java.lexer.JavaTokenId CONST
fld public final static org.netbeans.api.java.lexer.JavaTokenId CONTINUE
fld public final static org.netbeans.api.java.lexer.JavaTokenId DEFAULT
fld public final static org.netbeans.api.java.lexer.JavaTokenId DO
fld public final static org.netbeans.api.java.lexer.JavaTokenId DOT
fld public final static org.netbeans.api.java.lexer.JavaTokenId DOUBLE
fld public final static org.netbeans.api.java.lexer.JavaTokenId DOUBLE_LITERAL
fld public final static org.netbeans.api.java.lexer.JavaTokenId ELLIPSIS
fld public final static org.netbeans.api.java.lexer.JavaTokenId ELSE
fld public final static org.netbeans.api.java.lexer.JavaTokenId ENUM
fld public final static org.netbeans.api.java.lexer.JavaTokenId EQ
fld public final static org.netbeans.api.java.lexer.JavaTokenId EQEQ
fld public final static org.netbeans.api.java.lexer.JavaTokenId ERROR
fld public final static org.netbeans.api.java.lexer.JavaTokenId EXPORTS
fld public final static org.netbeans.api.java.lexer.JavaTokenId EXTENDS
fld public final static org.netbeans.api.java.lexer.JavaTokenId FALSE
fld public final static org.netbeans.api.java.lexer.JavaTokenId FINAL
fld public final static org.netbeans.api.java.lexer.JavaTokenId FINALLY
fld public final static org.netbeans.api.java.lexer.JavaTokenId FLOAT
fld public final static org.netbeans.api.java.lexer.JavaTokenId FLOAT_LITERAL
fld public final static org.netbeans.api.java.lexer.JavaTokenId FLOAT_LITERAL_INVALID
fld public final static org.netbeans.api.java.lexer.JavaTokenId FOR
fld public final static org.netbeans.api.java.lexer.JavaTokenId GOTO
fld public final static org.netbeans.api.java.lexer.JavaTokenId GT
fld public final static org.netbeans.api.java.lexer.JavaTokenId GTEQ
fld public final static org.netbeans.api.java.lexer.JavaTokenId GTGT
fld public final static org.netbeans.api.java.lexer.JavaTokenId GTGTEQ
fld public final static org.netbeans.api.java.lexer.JavaTokenId GTGTGT
fld public final static org.netbeans.api.java.lexer.JavaTokenId GTGTGTEQ
fld public final static org.netbeans.api.java.lexer.JavaTokenId IDENTIFIER
fld public final static org.netbeans.api.java.lexer.JavaTokenId IF
fld public final static org.netbeans.api.java.lexer.JavaTokenId IMPLEMENTS
fld public final static org.netbeans.api.java.lexer.JavaTokenId IMPORT
fld public final static org.netbeans.api.java.lexer.JavaTokenId INSTANCEOF
fld public final static org.netbeans.api.java.lexer.JavaTokenId INT
fld public final static org.netbeans.api.java.lexer.JavaTokenId INTERFACE
fld public final static org.netbeans.api.java.lexer.JavaTokenId INT_LITERAL
fld public final static org.netbeans.api.java.lexer.JavaTokenId INVALID_COMMENT_END
fld public final static org.netbeans.api.java.lexer.JavaTokenId JAVADOC_COMMENT
fld public final static org.netbeans.api.java.lexer.JavaTokenId LBRACE
fld public final static org.netbeans.api.java.lexer.JavaTokenId LBRACKET
fld public final static org.netbeans.api.java.lexer.JavaTokenId LINE_COMMENT
fld public final static org.netbeans.api.java.lexer.JavaTokenId LONG
fld public final static org.netbeans.api.java.lexer.JavaTokenId LONG_LITERAL
fld public final static org.netbeans.api.java.lexer.JavaTokenId LPAREN
fld public final static org.netbeans.api.java.lexer.JavaTokenId LT
fld public final static org.netbeans.api.java.lexer.JavaTokenId LTEQ
fld public final static org.netbeans.api.java.lexer.JavaTokenId LTLT
fld public final static org.netbeans.api.java.lexer.JavaTokenId LTLTEQ
fld public final static org.netbeans.api.java.lexer.JavaTokenId MINUS
fld public final static org.netbeans.api.java.lexer.JavaTokenId MINUSEQ
fld public final static org.netbeans.api.java.lexer.JavaTokenId MINUSMINUS
fld public final static org.netbeans.api.java.lexer.JavaTokenId MODULE
fld public final static org.netbeans.api.java.lexer.JavaTokenId NATIVE
fld public final static org.netbeans.api.java.lexer.JavaTokenId NEW
fld public final static org.netbeans.api.java.lexer.JavaTokenId NULL
fld public final static org.netbeans.api.java.lexer.JavaTokenId OPEN
fld public final static org.netbeans.api.java.lexer.JavaTokenId OPENS
fld public final static org.netbeans.api.java.lexer.JavaTokenId PACKAGE
fld public final static org.netbeans.api.java.lexer.JavaTokenId PERCENT
fld public final static org.netbeans.api.java.lexer.JavaTokenId PERCENTEQ
fld public final static org.netbeans.api.java.lexer.JavaTokenId PLUS
fld public final static org.netbeans.api.java.lexer.JavaTokenId PLUSEQ
fld public final static org.netbeans.api.java.lexer.JavaTokenId PLUSPLUS
fld public final static org.netbeans.api.java.lexer.JavaTokenId PRIVATE
fld public final static org.netbeans.api.java.lexer.JavaTokenId PROTECTED
fld public final static org.netbeans.api.java.lexer.JavaTokenId PROVIDES
fld public final static org.netbeans.api.java.lexer.JavaTokenId PUBLIC
fld public final static org.netbeans.api.java.lexer.JavaTokenId QUESTION
fld public final static org.netbeans.api.java.lexer.JavaTokenId RBRACE
fld public final static org.netbeans.api.java.lexer.JavaTokenId RBRACKET
fld public final static org.netbeans.api.java.lexer.JavaTokenId REQUIRES
fld public final static org.netbeans.api.java.lexer.JavaTokenId RETURN
fld public final static org.netbeans.api.java.lexer.JavaTokenId RPAREN
fld public final static org.netbeans.api.java.lexer.JavaTokenId SEMICOLON
fld public final static org.netbeans.api.java.lexer.JavaTokenId SHORT
fld public final static org.netbeans.api.java.lexer.JavaTokenId SLASH
fld public final static org.netbeans.api.java.lexer.JavaTokenId SLASHEQ
fld public final static org.netbeans.api.java.lexer.JavaTokenId STAR
fld public final static org.netbeans.api.java.lexer.JavaTokenId STAREQ
fld public final static org.netbeans.api.java.lexer.JavaTokenId STATIC
fld public final static org.netbeans.api.java.lexer.JavaTokenId STRICTFP
fld public final static org.netbeans.api.java.lexer.JavaTokenId STRING_LITERAL
fld public final static org.netbeans.api.java.lexer.JavaTokenId SUPER
fld public final static org.netbeans.api.java.lexer.JavaTokenId SWITCH
fld public final static org.netbeans.api.java.lexer.JavaTokenId SYNCHRONIZED
fld public final static org.netbeans.api.java.lexer.JavaTokenId THIS
fld public final static org.netbeans.api.java.lexer.JavaTokenId THROW
fld public final static org.netbeans.api.java.lexer.JavaTokenId THROWS
fld public final static org.netbeans.api.java.lexer.JavaTokenId TILDE
fld public final static org.netbeans.api.java.lexer.JavaTokenId TO
fld public final static org.netbeans.api.java.lexer.JavaTokenId TRANSIENT
fld public final static org.netbeans.api.java.lexer.JavaTokenId TRANSITIVE
fld public final static org.netbeans.api.java.lexer.JavaTokenId TRUE
fld public final static org.netbeans.api.java.lexer.JavaTokenId TRY
fld public final static org.netbeans.api.java.lexer.JavaTokenId UNDERSCORE
fld public final static org.netbeans.api.java.lexer.JavaTokenId USES
fld public final static org.netbeans.api.java.lexer.JavaTokenId VAR
fld public final static org.netbeans.api.java.lexer.JavaTokenId VOID
fld public final static org.netbeans.api.java.lexer.JavaTokenId VOLATILE
fld public final static org.netbeans.api.java.lexer.JavaTokenId WHILE
fld public final static org.netbeans.api.java.lexer.JavaTokenId WHITESPACE
fld public final static org.netbeans.api.java.lexer.JavaTokenId WITH
intf org.netbeans.api.lexer.TokenId
meth public java.lang.String fixedText()
meth public java.lang.String primaryCategory()
meth public static org.netbeans.api.java.lexer.JavaTokenId valueOf(java.lang.String)
meth public static org.netbeans.api.java.lexer.JavaTokenId[] values()
meth public static org.netbeans.api.lexer.Language<org.netbeans.api.java.lexer.JavaTokenId> language()
supr java.lang.Enum<org.netbeans.api.java.lexer.JavaTokenId>
hfds fixedText,language,primaryCategory

CLSS public final !enum org.netbeans.api.java.lexer.JavadocTokenId
fld public final static org.netbeans.api.java.lexer.JavadocTokenId DOT
fld public final static org.netbeans.api.java.lexer.JavadocTokenId HASH
fld public final static org.netbeans.api.java.lexer.JavadocTokenId HTML_TAG
fld public final static org.netbeans.api.java.lexer.JavadocTokenId IDENT
fld public final static org.netbeans.api.java.lexer.JavadocTokenId OTHER_TEXT
fld public final static org.netbeans.api.java.lexer.JavadocTokenId TAG
intf org.netbeans.api.lexer.TokenId
meth public java.lang.String primaryCategory()
meth public static org.netbeans.api.java.lexer.JavadocTokenId valueOf(java.lang.String)
meth public static org.netbeans.api.java.lexer.JavadocTokenId[] values()
meth public static org.netbeans.api.lexer.Language<org.netbeans.api.java.lexer.JavadocTokenId> language()
supr java.lang.Enum<org.netbeans.api.java.lexer.JavadocTokenId>
hfds language,primaryCategory

CLSS public abstract interface org.netbeans.api.lexer.TokenId
meth public abstract int ordinal()
meth public abstract java.lang.String name()
meth public abstract java.lang.String primaryCategory()

