001package jmri.jmrit.logixng.util.parser;
002
003/**
004 * Types of tokens.
005 *
006 * https://introcs.cs.princeton.edu/java/11precedence/
007 */
008
009public enum TokenType {
010    ERROR,              // Invalid token, for example an identifier starting with a digit
011    SAME_AS_LAST,       // The same token as last time
012    NONE,
013    SPACE,              // Any space character outside of a string, like space, newline, ...
014    COMMA,              // , , used for parameter lists
015    DOT_DOT,            // .. , used for intervalls
016    DOT,                // . , used for method calls and properties, for example myVar.myFunc(parameter)
017    ASSIGN,             // =
018    ASSIGN_ADD,         // +=
019    ASSIGN_SUBTRACKT,   // -=
020    ASSIGN_MULTIPLY,    // *=
021    ASSIGN_DIVIDE,      // /=
022    ASSIGN_MODULO,      // %=
023    ASSIGN_AND,         // &=
024    ASSIGN_OR,          // |=
025    ASSIGN_XOR,         // ^=
026    ASSIGN_SHIFT_LEFT,             // <<=
027    ASSIGN_SHIFT_RIGHT,            // >>=
028    ASSIGN_UNSIGNED_SHIFT_RIGHT,   // >>>=
029    TERNARY_QUESTION_MARK,   // ?
030    TERNARY_COLON,           // :
031    BOOLEAN_OR,         // ||
032    BOOLEAN_XOR,        // ^^  (Requested by Bob M)
033    BOOLEAN_AND,        // &&
034    BINARY_OR,          // |
035    BINARY_XOR,         // ^
036    BINARY_AND,         // &
037    EQUAL,              // ==
038    NOT_EQUAL,          // !=
039    LESS_THAN,          // <
040    LESS_OR_EQUAL,      // <=
041    GREATER_THAN,       // >
042    GREATER_OR_EQUAL,   // >=
043    SHIFT_LEFT,             // <<
044    SHIFT_RIGHT,            // >>
045    UNSIGNED_SHIFT_RIGHT,   // >>>
046    ADD,                // +
047    SUBTRACKT,          // -
048    MULTIPLY,           // *
049    DIVIDE,             // /
050    MODULO,             // %
051    BOOLEAN_NOT,        // !
052    BINARY_NOT,         // ~
053    INCREMENT,          // ++
054    DECREMENT,          // --
055    LEFT_PARENTHESIS,       // (
056    RIGHT_PARENTHESIS,      // )
057    LEFT_SQUARE_BRACKET,    // [
058    RIGHT_SQUARE_BRACKET,   // ]
059    LEFT_CURLY_BRACKET,     // {
060    RIGHT_CURLY_BRACKET,    // }
061    IDENTIFIER,
062    INTEGER_NUMBER,
063    FLOATING_NUMBER,
064    STRING;
065}