Package org.codehaus.groovy.syntax
Class Types
java.lang.Object
org.codehaus.groovy.syntax.Types
Registry of token type constants and type hierarchy definitions for the concrete syntax tree (CST) system.
Provides constants for lexical tokens (literals, keywords, operators), semantic types, type classifications,
and utility methods for type checking and querying. All
Token, CSTNode, and Reduction
nodes reference types from this class to identify their syntactic and semantic meaning.-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intType matching any token.static final intType category for any statement terminator.static final intType category for array expressions.static final intType category for array item terminators.static final intAlias forEQUAL.static final intType category for assignment operators.static final intBitwise AND operator (&).static final intBitwise AND assignment operator (&=).static final intBitwise negation operator (~).static final intType category for bitwise operators.static final intAlias forPIPE.static final intBitwise OR assignment operator (|=).static final intBitwise XOR operator (^).static final intBitwise XOR assignment operator (^=).static final intColon separator.static final intComma separator.static final intEquality comparison operator (==).static final intGreater-than comparison operator (>).static final intGreater-than-or-equal comparison operator (>=).static final intIdentity comparison operator (===).static final intLess-than comparison operator (<).static final intLess-than-or-equal comparison operator (<=).static final intNot-equal comparison operator (!=).static final intNon-identity comparison operator (!==).static final intNot-in operator (!in).static final intNot-instanceof operator (!instanceof).static final intSpaceship/compare-to operator (<=>).static final intType category for comparison operators.static final intType category for complex expressions.static final intType category for instantiable primitive types.static final intType category for instantiable type names.static final intDecimal number literal.static final intType category for declaration modifiers.static final intType category for dereference operators.static final intDivision operator (/).static final intDivision assignment operator (/=).static final intDot operator (.).static final intRange operator (..).static final intSpread operator (...).static final intAlias forLOGICAL_OR.static final intElvis/null-coalescing assignment operator (?=).static final intEnd-of-file indicator.static final intAssignment operator (=).static final intAlias forEQUAL.static final intType category for expressions.static final intRegex find operator (=~).static final intType category for general statement terminators.static final intGString end marker token.static final intGString embedded expression end marker.static final intGString embedded expression start marker.static final intGString start marker token.static final intIdentifier token.static final intImplies operator (==>).static final intType category for infix operators.static final intType category for instanceof operators.static final intInteger division operator (\).static final intInteger division assignment operator (\=).static final intInteger number literal.static final intType category for keywords.static final intMethod modifier keywordabstract.static final intImport alias keywordas.static final intAssertion keywordassert.static final intPrimitive type keywordboolean.static final intLoop control keywordbreak.static final intPrimitive type keywordbyte.static final intSwitch case keywordcase.static final intException handling keywordcatch.static final intPrimitive type keywordchar.static final intClass definition keywordclass.static final intReserved keywordconst.static final intLoop control keywordcontinue.static final intFunction definition keyworddef.static final intSwitch default keyworddefault.static final intMacro definition keyworddefmacro.static final intLoop keyworddo.static final intPrimitive type keyworddouble.static final intConditional keywordelse.static final intType category for keyword-based expressions.static final intExtends keywordextends.static final intBoolean literal keywordfalse.static final intDeclaration modifier keywordfinal.static final intException handling keywordfinally.static final intPrimitive type keywordfloat.static final intLoop keywordfor.static final intReserved keywordgoto.static final intType category for keyword identifiers.static final intConditional keywordif.static final intImplements keywordimplements.static final intImport statement keywordimport.static final intLoop separator keywordin.static final intInstanceof operator keywordinstanceof.static final intPrimitive type keywordint.static final intInterface definition keywordinterface.static final intPrimitive type keywordlong.static final intMixin definition keywordmixin.static final intMethod modifier keywordnative.static final intObject instantiation keywordnew.static final intNull literal keywordnull.static final intPackage declaration keywordpackage.static final intVisibility modifier keywordprivate.static final intProperty declaration keywordproperty(deprecated).static final intVisibility modifier keywordprotected.static final intVisibility modifier keywordpublic.static final intReturn statement keywordreturn.static final intPrimitive type keywordshort.static final intDeclaration modifier keywordstatic.static final intSuper keywordsuper.static final intSwitch statement keywordswitch.static final intMethod modifier keywordsynchronized.static final intThis keywordthis.static final intException throwing keywordthrow.static final intException declaration keywordthrows.static final intField modifier keywordtransient.static final intBoolean literal keywordtrue.static final intException handling keywordtry.static final intPrimitive type keywordvoid.static final intField modifier keywordvolatile.static final intLoop keywordwhile.static final intLeft curly brace ({}).static final intType category for left container delimiters.static final intLeft parenthesis (().static final intLeft shift operator (<<).static final intLeft shift assignment operator (<<=).static final intLeft square bracket ([]).static final intType category for literal values.static final intType category for literal expressions.static final intLogical AND operator (&&).static final intLogical AND assignment operator (&&=).static final intType category for logical operators.static final intLogical OR operator (||).static final intLogical OR assignment operator (||=).static final intType category for loop statements.static final intRegex match operator (==~).static final intType category for matched container syntax.static final intType category for mathematical operators.static final intType category for method call starting tokens.static final intSubtraction operator (-).static final intSubtraction assignment operator (-=).static final intDecrement operator (--).static final intModulo operator (%).static final intModulo assignment operator (%=).static final intMultiplication operator (*).static final intMultiplication assignment operator (*=).static final intType category for named values.static final intNavigation operator (->).static final intNewline character (\n).static final intLogical negation operator (!).static final intType matching any non-EOF token.static final intType category for numeric values.static final intType category for operator expressions.static final intType category for optional datatype followers.static final intType category for parameter list terminators.static final intBitwise OR operator (|).static final intAddition operator (+).static final intAddition assignment operator (+=).static final intIncrement operator (++).static final intPostfix decrement operator (--).static final intType category for postfix operators.static final intPostfix increment operator (++).static final intAlias forSTAR_STAR.static final intPower assignment operator (**=).static final intType category for tokens that prevent cast parsing.static final intUnary negation operator (-).static final intPrefix decrement operator (--).static final intType category for prefix operators.static final intType category for operators that can be prefix or infix.static final intUnary plus operator (+).static final intPrefix increment operator (++).static final intType category for primitive types.static final intType category for operators that are only prefix.static final intQuestion mark (ternary conditional operator).static final intType category for range operators (..,...).static final intType category for regex comparison operators.static final intRegex pattern operator (~).static final intRemainder operator (%).static final intRemainder assignment operator (%=).static final intType category for reserved keywords.static final intRight curly brace (}).static final intType category for right container delimiters.static final intRight parenthesis ()).static final intRight shift operator (>>).static final intRight shift assignment operator (>>=).static final intUnsigned right shift operator (>>>).static final intUnsigned right shift assignment operator (>>>=).static final intRight square bracket (]).static final intSemicolon statement terminator.static final intType category for sign operators.static final intType category for simple expressions.static final intAlias forMULTIPLY.static final intPower/exponentiation operator (**).static final intString literal token.static final intType category for switch block terminators.static final intType category for switch case entries.static final intType category for symbols.static final intSynthetic block node type.static final intSynthetic type cast node type.static final intSynthetic class declaration node type.static final intSynthetic closure literal node type.static final intSynthetic compilation unit node type.static final intType category for synthetic expressions.static final intSynthetic GString literal node type.static final intSynthetic interface declaration node type.static final intSynthetic label node type.static final intSynthetic list node type.static final intSynthetic map literal node type.static final intSynthetic method declaration node type.static final intSynthetic method call node type.static final intSynthetic mixin declaration node type.static final intSynthetic parameter declaration node type.static final intSynthetic property declaration node type.static final intSynthetic ternary expression type.static final intSynthetic tuple node type.static final intSynthetic variable declaration type.static final intType category for synthetic/generated nodes.static final intType category for boolean/truth values.static final intType category for type declarations.static final intType category for type list terminators.static final intType category for type names.static final intUnknown token type.static final intType category for tokens unsafe across newlines. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic booleancanMean(int actual, int preferred) Determines if a type can be interpreted as another type.static StringgetDescription(int type) Returns a human-readable description of the specified token type.static Collection<String>Returns an unmodifiable collection of all recognized keywords.static intgetPrecedence(int type, boolean throwIfInvalid) Returns the operator precedence level for the specified type.static StringgetText(int type) Returns the text representation for the specified token type.static booleanisAssignment(int type) Returnstrueif the specified type represents an assignment operator.static booleanReturnstrueif the specified text is a recognized keyword.static intReturns the token type for the specified symbol or keyword text.static intlookupKeyword(String text) Returns the token type for the specified keyword text.static intlookupSymbol(String text) Returns the token type for the specified symbol text.static voidmakePostfix(CSTNode node, boolean throwIfInvalid) Converts an operator node's meaning to a postfix operator variant.static voidmakePrefix(CSTNode node, boolean throwIfInvalid) Converts an operator node's meaning to a prefix operator variant.static booleanofType(int specific, int general) Determines if a specific type belongs to a general type category through the type hierarchy.
-
Field Details
-
EOF
public static final int EOFEnd-of-file indicator.- See Also:
-
UNKNOWN
public static final int UNKNOWNUnknown token type.- See Also:
-
NEWLINE
public static final int NEWLINENewline character (\n).- See Also:
-
LEFT_CURLY_BRACE
public static final int LEFT_CURLY_BRACELeft curly brace ({}).- See Also:
-
RIGHT_CURLY_BRACE
public static final int RIGHT_CURLY_BRACERight curly brace (}).- See Also:
-
LEFT_SQUARE_BRACKET
public static final int LEFT_SQUARE_BRACKETLeft square bracket ([]).- See Also:
-
RIGHT_SQUARE_BRACKET
public static final int RIGHT_SQUARE_BRACKETRight square bracket (]).- See Also:
-
LEFT_PARENTHESIS
public static final int LEFT_PARENTHESISLeft parenthesis (().- See Also:
-
RIGHT_PARENTHESIS
public static final int RIGHT_PARENTHESISRight parenthesis ()).- See Also:
-
DOT
public static final int DOTDot operator (.).- See Also:
-
DOT_DOT
public static final int DOT_DOTRange operator (..).- See Also:
-
DOT_DOT_DOT
public static final int DOT_DOT_DOTSpread operator (...).- See Also:
-
NAVIGATE
public static final int NAVIGATENavigation operator (->).- See Also:
-
FIND_REGEX
public static final int FIND_REGEXRegex find operator (=~).- See Also:
-
MATCH_REGEX
public static final int MATCH_REGEXRegex match operator (==~).- See Also:
-
REGEX_PATTERN
public static final int REGEX_PATTERNRegex pattern operator (~).- See Also:
-
IMPLIES
public static final int IMPLIESImplies operator (==>).- See Also:
-
EQUAL
public static final int EQUALAssignment operator (=).- See Also:
-
EQUALS
public static final int EQUALSAlias forEQUAL.- See Also:
-
ASSIGN
public static final int ASSIGNAlias forEQUAL.- See Also:
-
COMPARE_NOT_EQUAL
public static final int COMPARE_NOT_EQUALNot-equal comparison operator (!=).- See Also:
-
COMPARE_IDENTICAL
public static final int COMPARE_IDENTICALIdentity comparison operator (===).- See Also:
-
COMPARE_NOT_IDENTICAL
public static final int COMPARE_NOT_IDENTICALNon-identity comparison operator (!==).- See Also:
-
COMPARE_EQUAL
public static final int COMPARE_EQUALEquality comparison operator (==).- See Also:
-
COMPARE_LESS_THAN
public static final int COMPARE_LESS_THANLess-than comparison operator (<).- See Also:
-
COMPARE_LESS_THAN_EQUAL
public static final int COMPARE_LESS_THAN_EQUALLess-than-or-equal comparison operator (<=).- See Also:
-
COMPARE_GREATER_THAN
public static final int COMPARE_GREATER_THANGreater-than comparison operator (>).- See Also:
-
COMPARE_GREATER_THAN_EQUAL
public static final int COMPARE_GREATER_THAN_EQUALGreater-than-or-equal comparison operator (>=).- See Also:
-
COMPARE_TO
public static final int COMPARE_TOSpaceship/compare-to operator (<=>).- See Also:
-
COMPARE_NOT_IN
public static final int COMPARE_NOT_INNot-in operator (!in).- See Also:
-
COMPARE_NOT_INSTANCEOF
public static final int COMPARE_NOT_INSTANCEOFNot-instanceof operator (!instanceof).- See Also:
-
NOT
public static final int NOTLogical negation operator (!).- See Also:
-
LOGICAL_OR
public static final int LOGICAL_ORLogical OR operator (||).- See Also:
-
LOGICAL_AND
public static final int LOGICAL_ANDLogical AND operator (&&).- See Also:
-
LOGICAL_OR_EQUAL
public static final int LOGICAL_OR_EQUALLogical OR assignment operator (||=).- See Also:
-
LOGICAL_AND_EQUAL
public static final int LOGICAL_AND_EQUALLogical AND assignment operator (&&=).- See Also:
-
PLUS
public static final int PLUSAddition operator (+).- See Also:
-
MINUS
public static final int MINUSSubtraction operator (-).- See Also:
-
MULTIPLY
public static final int MULTIPLYMultiplication operator (*).- See Also:
-
DIVIDE
public static final int DIVIDEDivision operator (/).- See Also:
-
INTDIV
public static final int INTDIVInteger division operator (\).- See Also:
-
MOD
public static final int MODModulo operator (%).- See Also:
-
STAR_STAR
public static final int STAR_STARPower/exponentiation operator (**).- See Also:
-
POWER
public static final int POWERAlias forSTAR_STAR.- See Also:
-
PLUS_EQUAL
public static final int PLUS_EQUALAddition assignment operator (+=).- See Also:
-
MINUS_EQUAL
public static final int MINUS_EQUALSubtraction assignment operator (-=).- See Also:
-
MULTIPLY_EQUAL
public static final int MULTIPLY_EQUALMultiplication assignment operator (*=).- See Also:
-
DIVIDE_EQUAL
public static final int DIVIDE_EQUALDivision assignment operator (/=).- See Also:
-
INTDIV_EQUAL
public static final int INTDIV_EQUALInteger division assignment operator (\=).- See Also:
-
MOD_EQUAL
public static final int MOD_EQUALModulo assignment operator (%=).- See Also:
-
POWER_EQUAL
public static final int POWER_EQUALPower assignment operator (**=).- See Also:
-
ELVIS_EQUAL
public static final int ELVIS_EQUALElvis/null-coalescing assignment operator (?=).- See Also:
-
PLUS_PLUS
public static final int PLUS_PLUSIncrement operator (++).- See Also:
-
PREFIX_PLUS_PLUS
public static final int PREFIX_PLUS_PLUSPrefix increment operator (++).- See Also:
-
POSTFIX_PLUS_PLUS
public static final int POSTFIX_PLUS_PLUSPostfix increment operator (++).- See Also:
-
PREFIX_PLUS
public static final int PREFIX_PLUSUnary plus operator (+).- See Also:
-
MINUS_MINUS
public static final int MINUS_MINUSDecrement operator (--).- See Also:
-
PREFIX_MINUS_MINUS
public static final int PREFIX_MINUS_MINUSPrefix decrement operator (--).- See Also:
-
POSTFIX_MINUS_MINUS
public static final int POSTFIX_MINUS_MINUSPostfix decrement operator (--).- See Also:
-
PREFIX_MINUS
public static final int PREFIX_MINUSUnary negation operator (-).- See Also:
-
LEFT_SHIFT
public static final int LEFT_SHIFTLeft shift operator (<<).- See Also:
-
RIGHT_SHIFT
public static final int RIGHT_SHIFTRight shift operator (>>).- See Also:
-
RIGHT_SHIFT_UNSIGNED
public static final int RIGHT_SHIFT_UNSIGNEDUnsigned right shift operator (>>>).- See Also:
-
LEFT_SHIFT_EQUAL
public static final int LEFT_SHIFT_EQUALLeft shift assignment operator (<<=).- See Also:
-
RIGHT_SHIFT_EQUAL
public static final int RIGHT_SHIFT_EQUALRight shift assignment operator (>>=).- See Also:
-
RIGHT_SHIFT_UNSIGNED_EQUAL
public static final int RIGHT_SHIFT_UNSIGNED_EQUALUnsigned right shift assignment operator (>>>=).- See Also:
-
STAR
public static final int STARAlias forMULTIPLY.- See Also:
-
COMMA
public static final int COMMAComma separator.- See Also:
-
COLON
public static final int COLONColon separator.- See Also:
-
SEMICOLON
public static final int SEMICOLONSemicolon statement terminator.- See Also:
-
QUESTION
public static final int QUESTIONQuestion mark (ternary conditional operator).- See Also:
-
PIPE
public static final int PIPEBitwise OR operator (|).- See Also:
-
DOUBLE_PIPE
public static final int DOUBLE_PIPEAlias forLOGICAL_OR.- See Also:
-
BITWISE_OR
public static final int BITWISE_ORAlias forPIPE.- See Also:
-
BITWISE_AND
public static final int BITWISE_ANDBitwise AND operator (&).- See Also:
-
BITWISE_XOR
public static final int BITWISE_XORBitwise XOR operator (^).- See Also:
-
BITWISE_OR_EQUAL
public static final int BITWISE_OR_EQUALBitwise OR assignment operator (|=).- See Also:
-
BITWISE_AND_EQUAL
public static final int BITWISE_AND_EQUALBitwise AND assignment operator (&=).- See Also:
-
BITWISE_XOR_EQUAL
public static final int BITWISE_XOR_EQUALBitwise XOR assignment operator (^=).- See Also:
-
BITWISE_NEGATION
public static final int BITWISE_NEGATIONBitwise negation operator (~).- See Also:
-
REMAINDER
public static final int REMAINDERRemainder operator (%).- See Also:
-
REMAINDER_EQUAL
public static final int REMAINDER_EQUALRemainder assignment operator (%=).- See Also:
-
STRING
public static final int STRINGString literal token.- See Also:
-
IDENTIFIER
public static final int IDENTIFIERIdentifier token.- See Also:
-
INTEGER_NUMBER
public static final int INTEGER_NUMBERInteger number literal.- See Also:
-
DECIMAL_NUMBER
public static final int DECIMAL_NUMBERDecimal number literal.- See Also:
-
KEYWORD_PRIVATE
public static final int KEYWORD_PRIVATEVisibility modifier keywordprivate.- See Also:
-
KEYWORD_PROTECTED
public static final int KEYWORD_PROTECTEDVisibility modifier keywordprotected.- See Also:
-
KEYWORD_PUBLIC
public static final int KEYWORD_PUBLICVisibility modifier keywordpublic.- See Also:
-
KEYWORD_ABSTRACT
public static final int KEYWORD_ABSTRACTMethod modifier keywordabstract.- See Also:
-
KEYWORD_FINAL
public static final int KEYWORD_FINALDeclaration modifier keywordfinal.- See Also:
-
KEYWORD_NATIVE
public static final int KEYWORD_NATIVEMethod modifier keywordnative.- See Also:
-
KEYWORD_TRANSIENT
public static final int KEYWORD_TRANSIENTField modifier keywordtransient.- See Also:
-
KEYWORD_VOLATILE
public static final int KEYWORD_VOLATILEField modifier keywordvolatile.- See Also:
-
KEYWORD_SYNCHRONIZED
public static final int KEYWORD_SYNCHRONIZEDMethod modifier keywordsynchronized.- See Also:
-
KEYWORD_STATIC
public static final int KEYWORD_STATICDeclaration modifier keywordstatic.- See Also:
-
KEYWORD_DEF
public static final int KEYWORD_DEFFunction definition keyworddef.- See Also:
-
KEYWORD_DEFMACRO
public static final int KEYWORD_DEFMACROMacro definition keyworddefmacro.- See Also:
-
KEYWORD_CLASS
public static final int KEYWORD_CLASSClass definition keywordclass.- See Also:
-
KEYWORD_INTERFACE
public static final int KEYWORD_INTERFACEInterface definition keywordinterface.- See Also:
-
KEYWORD_MIXIN
public static final int KEYWORD_MIXINMixin definition keywordmixin.- See Also:
-
KEYWORD_IMPLEMENTS
public static final int KEYWORD_IMPLEMENTSImplements keywordimplements.- See Also:
-
KEYWORD_EXTENDS
public static final int KEYWORD_EXTENDSExtends keywordextends.- See Also:
-
KEYWORD_THIS
public static final int KEYWORD_THISThis keywordthis.- See Also:
-
KEYWORD_SUPER
public static final int KEYWORD_SUPERSuper keywordsuper.- See Also:
-
KEYWORD_INSTANCEOF
public static final int KEYWORD_INSTANCEOFInstanceof operator keywordinstanceof.- See Also:
-
KEYWORD_PROPERTY
public static final int KEYWORD_PROPERTYProperty declaration keywordproperty(deprecated).- See Also:
-
KEYWORD_NEW
public static final int KEYWORD_NEWObject instantiation keywordnew.- See Also:
-
KEYWORD_PACKAGE
public static final int KEYWORD_PACKAGEPackage declaration keywordpackage.- See Also:
-
KEYWORD_IMPORT
public static final int KEYWORD_IMPORTImport statement keywordimport.- See Also:
-
KEYWORD_AS
public static final int KEYWORD_ASImport alias keywordas.- See Also:
-
KEYWORD_RETURN
public static final int KEYWORD_RETURNReturn statement keywordreturn.- See Also:
-
KEYWORD_IF
public static final int KEYWORD_IFConditional keywordif.- See Also:
-
KEYWORD_ELSE
public static final int KEYWORD_ELSEConditional keywordelse.- See Also:
-
KEYWORD_DO
public static final int KEYWORD_DOLoop keyworddo.- See Also:
-
KEYWORD_WHILE
public static final int KEYWORD_WHILELoop keywordwhile.- See Also:
-
KEYWORD_FOR
public static final int KEYWORD_FORLoop keywordfor.- See Also:
-
KEYWORD_IN
public static final int KEYWORD_INLoop separator keywordin.- See Also:
-
KEYWORD_BREAK
public static final int KEYWORD_BREAKLoop control keywordbreak.- See Also:
-
KEYWORD_CONTINUE
public static final int KEYWORD_CONTINUELoop control keywordcontinue.- See Also:
-
KEYWORD_SWITCH
public static final int KEYWORD_SWITCHSwitch statement keywordswitch.- See Also:
-
KEYWORD_CASE
public static final int KEYWORD_CASESwitch case keywordcase.- See Also:
-
KEYWORD_DEFAULT
public static final int KEYWORD_DEFAULTSwitch default keyworddefault.- See Also:
-
KEYWORD_TRY
public static final int KEYWORD_TRYException handling keywordtry.- See Also:
-
KEYWORD_CATCH
public static final int KEYWORD_CATCHException handling keywordcatch.- See Also:
-
KEYWORD_FINALLY
public static final int KEYWORD_FINALLYException handling keywordfinally.- See Also:
-
KEYWORD_THROW
public static final int KEYWORD_THROWException throwing keywordthrow.- See Also:
-
KEYWORD_THROWS
public static final int KEYWORD_THROWSException declaration keywordthrows.- See Also:
-
KEYWORD_ASSERT
public static final int KEYWORD_ASSERTAssertion keywordassert.- See Also:
-
KEYWORD_VOID
public static final int KEYWORD_VOIDPrimitive type keywordvoid.- See Also:
-
KEYWORD_BOOLEAN
public static final int KEYWORD_BOOLEANPrimitive type keywordboolean.- See Also:
-
KEYWORD_BYTE
public static final int KEYWORD_BYTEPrimitive type keywordbyte.- See Also:
-
KEYWORD_SHORT
public static final int KEYWORD_SHORTPrimitive type keywordshort.- See Also:
-
KEYWORD_INT
public static final int KEYWORD_INTPrimitive type keywordint.- See Also:
-
KEYWORD_LONG
public static final int KEYWORD_LONGPrimitive type keywordlong.- See Also:
-
KEYWORD_FLOAT
public static final int KEYWORD_FLOATPrimitive type keywordfloat.- See Also:
-
KEYWORD_DOUBLE
public static final int KEYWORD_DOUBLEPrimitive type keyworddouble.- See Also:
-
KEYWORD_CHAR
public static final int KEYWORD_CHARPrimitive type keywordchar.- See Also:
-
KEYWORD_TRUE
public static final int KEYWORD_TRUEBoolean literal keywordtrue.- See Also:
-
KEYWORD_FALSE
public static final int KEYWORD_FALSEBoolean literal keywordfalse.- See Also:
-
KEYWORD_NULL
public static final int KEYWORD_NULLNull literal keywordnull.- See Also:
-
KEYWORD_CONST
public static final int KEYWORD_CONSTReserved keywordconst.- See Also:
-
KEYWORD_GOTO
public static final int KEYWORD_GOTOReserved keywordgoto.- See Also:
-
SYNTH_COMPILATION_UNIT
public static final int SYNTH_COMPILATION_UNITSynthetic compilation unit node type.- See Also:
-
SYNTH_CLASS
public static final int SYNTH_CLASSSynthetic class declaration node type.- See Also:
-
SYNTH_INTERFACE
public static final int SYNTH_INTERFACESynthetic interface declaration node type.- See Also:
-
SYNTH_MIXIN
public static final int SYNTH_MIXINSynthetic mixin declaration node type.- See Also:
-
SYNTH_METHOD
public static final int SYNTH_METHODSynthetic method declaration node type.- See Also:
-
SYNTH_PROPERTY
public static final int SYNTH_PROPERTYSynthetic property declaration node type.- See Also:
-
SYNTH_PARAMETER_DECLARATION
public static final int SYNTH_PARAMETER_DECLARATIONSynthetic parameter declaration node type.- See Also:
-
SYNTH_LIST
public static final int SYNTH_LISTSynthetic list node type.- See Also:
-
SYNTH_MAP
public static final int SYNTH_MAPSynthetic map literal node type.- See Also:
-
SYNTH_GSTRING
public static final int SYNTH_GSTRINGSynthetic GString literal node type.- See Also:
-
SYNTH_METHOD_CALL
public static final int SYNTH_METHOD_CALLSynthetic method call node type.- See Also:
-
SYNTH_CAST
public static final int SYNTH_CASTSynthetic type cast node type.- See Also:
-
SYNTH_BLOCK
public static final int SYNTH_BLOCKSynthetic block node type.- See Also:
-
SYNTH_CLOSURE
public static final int SYNTH_CLOSURESynthetic closure literal node type.- See Also:
-
SYNTH_LABEL
public static final int SYNTH_LABELSynthetic label node type.- See Also:
-
SYNTH_TERNARY
public static final int SYNTH_TERNARYSynthetic ternary expression type.- See Also:
-
SYNTH_TUPLE
public static final int SYNTH_TUPLESynthetic tuple node type.- See Also:
-
SYNTH_VARIABLE_DECLARATION
public static final int SYNTH_VARIABLE_DECLARATIONSynthetic variable declaration type.- See Also:
-
GSTRING_START
public static final int GSTRING_STARTGString start marker token.- See Also:
-
GSTRING_END
public static final int GSTRING_ENDGString end marker token.- See Also:
-
GSTRING_EXPRESSION_START
public static final int GSTRING_EXPRESSION_STARTGString embedded expression start marker.- See Also:
-
GSTRING_EXPRESSION_END
public static final int GSTRING_EXPRESSION_ENDGString embedded expression end marker.- See Also:
-
ANY
public static final int ANYType matching any token.- See Also:
-
NOT_EOF
public static final int NOT_EOFType matching any non-EOF token.- See Also:
-
GENERAL_END_OF_STATEMENT
public static final int GENERAL_END_OF_STATEMENTType category for general statement terminators.- See Also:
-
ANY_END_OF_STATEMENT
public static final int ANY_END_OF_STATEMENTType category for any statement terminator.- See Also:
-
ASSIGNMENT_OPERATOR
public static final int ASSIGNMENT_OPERATORType category for assignment operators.- See Also:
-
COMPARISON_OPERATOR
public static final int COMPARISON_OPERATORType category for comparison operators.- See Also:
-
MATH_OPERATOR
public static final int MATH_OPERATORType category for mathematical operators.- See Also:
-
LOGICAL_OPERATOR
public static final int LOGICAL_OPERATORType category for logical operators.- See Also:
-
RANGE_OPERATOR
public static final int RANGE_OPERATORType category for range operators (..,...).- See Also:
-
REGEX_COMPARISON_OPERATOR
public static final int REGEX_COMPARISON_OPERATORType category for regex comparison operators.- See Also:
-
DEREFERENCE_OPERATOR
public static final int DEREFERENCE_OPERATORType category for dereference operators.- See Also:
-
BITWISE_OPERATOR
public static final int BITWISE_OPERATORType category for bitwise operators.- See Also:
-
INSTANCEOF_OPERATOR
public static final int INSTANCEOF_OPERATORType category for instanceof operators.- See Also:
-
PREFIX_OPERATOR
public static final int PREFIX_OPERATORType category for prefix operators.- See Also:
-
POSTFIX_OPERATOR
public static final int POSTFIX_OPERATORType category for postfix operators.- See Also:
-
INFIX_OPERATOR
public static final int INFIX_OPERATORType category for infix operators.- See Also:
-
PREFIX_OR_INFIX_OPERATOR
public static final int PREFIX_OR_INFIX_OPERATORType category for operators that can be prefix or infix.- See Also:
-
PURE_PREFIX_OPERATOR
public static final int PURE_PREFIX_OPERATORType category for operators that are only prefix.- See Also:
-
KEYWORD
public static final int KEYWORDType category for keywords.- See Also:
-
SYMBOL
public static final int SYMBOLType category for symbols.- See Also:
-
LITERAL
public static final int LITERALType category for literal values.- See Also:
-
NUMBER
public static final int NUMBERType category for numeric values.- See Also:
-
SIGN
public static final int SIGNType category for sign operators.- See Also:
-
NAMED_VALUE
public static final int NAMED_VALUEType category for named values.- See Also:
-
TRUTH_VALUE
public static final int TRUTH_VALUEType category for boolean/truth values.- See Also:
-
PRIMITIVE_TYPE
public static final int PRIMITIVE_TYPEType category for primitive types.- See Also:
-
CREATABLE_PRIMITIVE_TYPE
public static final int CREATABLE_PRIMITIVE_TYPEType category for instantiable primitive types.- See Also:
-
LOOP
public static final int LOOPType category for loop statements.- See Also:
-
RESERVED_KEYWORD
public static final int RESERVED_KEYWORDType category for reserved keywords.- See Also:
-
KEYWORD_IDENTIFIER
public static final int KEYWORD_IDENTIFIERType category for keyword identifiers.- See Also:
-
SYNTHETIC
public static final int SYNTHETICType category for synthetic/generated nodes.- See Also:
-
TYPE_DECLARATION
public static final int TYPE_DECLARATIONType category for type declarations.- See Also:
-
DECLARATION_MODIFIER
public static final int DECLARATION_MODIFIERType category for declaration modifiers.- See Also:
-
TYPE_NAME
public static final int TYPE_NAMEType category for type names.- See Also:
-
CREATABLE_TYPE_NAME
public static final int CREATABLE_TYPE_NAMEType category for instantiable type names.- See Also:
-
MATCHED_CONTAINER
public static final int MATCHED_CONTAINERType category for matched container syntax.- See Also:
-
LEFT_OF_MATCHED_CONTAINER
public static final int LEFT_OF_MATCHED_CONTAINERType category for left container delimiters.- See Also:
-
RIGHT_OF_MATCHED_CONTAINER
public static final int RIGHT_OF_MATCHED_CONTAINERType category for right container delimiters.- See Also:
-
EXPRESSION
public static final int EXPRESSIONType category for expressions.- See Also:
-
OPERATOR_EXPRESSION
public static final int OPERATOR_EXPRESSIONType category for operator expressions.- See Also:
-
SYNTH_EXPRESSION
public static final int SYNTH_EXPRESSIONType category for synthetic expressions.- See Also:
-
KEYWORD_EXPRESSION
public static final int KEYWORD_EXPRESSIONType category for keyword-based expressions.- See Also:
-
LITERAL_EXPRESSION
public static final int LITERAL_EXPRESSIONType category for literal expressions.- See Also:
-
ARRAY_EXPRESSION
public static final int ARRAY_EXPRESSIONType category for array expressions.- See Also:
-
SIMPLE_EXPRESSION
public static final int SIMPLE_EXPRESSIONType category for simple expressions.- See Also:
-
COMPLEX_EXPRESSION
public static final int COMPLEX_EXPRESSIONType category for complex expressions.- See Also:
-
PARAMETER_TERMINATORS
public static final int PARAMETER_TERMINATORSType category for parameter list terminators.- See Also:
-
ARRAY_ITEM_TERMINATORS
public static final int ARRAY_ITEM_TERMINATORSType category for array item terminators.- See Also:
-
TYPE_LIST_TERMINATORS
public static final int TYPE_LIST_TERMINATORSType category for type list terminators.- See Also:
-
OPTIONAL_DATATYPE_FOLLOWERS
public static final int OPTIONAL_DATATYPE_FOLLOWERSType category for optional datatype followers.- See Also:
-
SWITCH_BLOCK_TERMINATORS
public static final int SWITCH_BLOCK_TERMINATORSType category for switch block terminators.- See Also:
-
SWITCH_ENTRIES
public static final int SWITCH_ENTRIESType category for switch case entries.- See Also:
-
METHOD_CALL_STARTERS
public static final int METHOD_CALL_STARTERSType category for method call starting tokens.- See Also:
-
UNSAFE_OVER_NEWLINES
public static final int UNSAFE_OVER_NEWLINESType category for tokens unsafe across newlines.- See Also:
-
PRECLUDES_CAST_OPERATOR
public static final int PRECLUDES_CAST_OPERATORType category for tokens that prevent cast parsing.- See Also:
-
-
Constructor Details
-
Types
public Types()
-
-
Method Details
-
isAssignment
public static boolean isAssignment(int type) Returnstrueif the specified type represents an assignment operator. Assignment operators include simple assignment (=) and compound assignments (+=,-=,*=, etc.).- Parameters:
type- the token type to check- Returns:
trueif the type is an assignment operator- Since:
- 3.0.0
-
ofType
public static boolean ofType(int specific, int general) Determines if a specific type belongs to a general type category through the type hierarchy. For example,ofType(Types.PLUS, Types.MATH_OPERATOR)returnstruebecausePLUSis classified as aMATH_OPERATOR.- Parameters:
specific- the specific token type to checkgeneral- the general type category- Returns:
trueif the specific type is within the general category
-
canMean
public static boolean canMean(int actual, int preferred) Determines if a type can be interpreted as another type. This is orthogonal toofType(int, int)and is used for semantic flexibility (e.g., an identifier can be viewed as a class name).- Parameters:
actual- the actual type being checkedpreferred- the desired interpretation- Returns:
trueif the actual type can be reinterpreted as the preferred type
-
makePrefix
Converts an operator node's meaning to a prefix operator variant. For example, convertsPLUStoPREFIX_PLUS.- Parameters:
node- the node whose meaning is to be modifiedthrowIfInvalid- iftrue, throwsGroovyBugErrorif the type cannot be converted
-
makePostfix
Converts an operator node's meaning to a postfix operator variant. For example, convertsPLUS_PLUStoPOSTFIX_PLUS_PLUS.- Parameters:
node- the node whose meaning is to be modifiedthrowIfInvalid- iftrue, throwsGroovyBugErrorif the type cannot be converted
-
getPrecedence
public static int getPrecedence(int type, boolean throwIfInvalid) Returns the operator precedence level for the specified type. Lower precedence values bind tighter (evaluate first). For example, multiplication (MULTIPLY) has higher precedence than addition (PLUS).- Parameters:
type- the operator type to checkthrowIfInvalid- iftrue, throwsGroovyBugErrorfor non-operators; iffalse, returns -1 for non-operators- Returns:
- the precedence level (0-85), or -1 if the type is not an operator and throwIfInvalid is false
- Throws:
GroovyBugError- if the type is not an operator and throwIfInvalid is true
-
getKeywords
Returns an unmodifiable collection of all recognized keywords.- Returns:
- collection of keyword strings
-
isKeyword
Returnstrueif the specified text is a recognized keyword.- Parameters:
text- the text to check- Returns:
trueif the text is a keyword
-
lookup
Returns the token type for the specified symbol or keyword text. ReturnsUNKNOWNif the text is not found. Optionally filters the result by type (e.g., restrict to keywords only). -
lookupKeyword
Returns the token type for the specified keyword text. Only matches keywords, not symbols.- Parameters:
text- the keyword text (e.g., "def", "if", "class")- Returns:
- the keyword type constant, or
UNKNOWNif not a recognized keyword
-
lookupSymbol
Returns the token type for the specified symbol text. Only matches symbols (operators, delimiters), not keywords.- Parameters:
text- the symbol text (e.g., "+", "-", "{", ".")- Returns:
- the symbol type constant, or
UNKNOWNif not a recognized symbol
-
getText
Returns the text representation for the specified token type. For symbols and keywords, this is the canonical text (e.g., "def", "+", "->").- Parameters:
type- a token type constant from this class- Returns:
- the text representation, or empty string if the type has no text mapping
-
getDescription
Returns a human-readable description of the specified token type. Useful for error messages and debugging. For example,PLUSmight return"+".- Parameters:
type- the token type constant- Returns:
- a description string, or
"<>"if the type has no description
-