consys
Version:
consys is a flexible tool to evaluate models using generic and readable constraints.
73 lines (72 loc) • 2.75 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.TokenType = void 0;
/**
* All possible words of the dsl.
*/
var TokenType;
(function (TokenType) {
// single character tokens
TokenType[TokenType["PARENTHESIS_OPEN"] = 0] = "PARENTHESIS_OPEN";
TokenType[TokenType["PARENTHESIS_CLOSE"] = 1] = "PARENTHESIS_CLOSE";
TokenType[TokenType["PLUS"] = 2] = "PLUS";
TokenType[TokenType["MINUS"] = 3] = "MINUS";
TokenType[TokenType["COMMA"] = 4] = "COMMA";
TokenType[TokenType["DOT"] = 5] = "DOT";
TokenType[TokenType["COLON"] = 6] = "COLON";
TokenType[TokenType["SLASH"] = 7] = "SLASH";
TokenType[TokenType["STAR"] = 8] = "STAR";
TokenType[TokenType["PERCENT"] = 9] = "PERCENT";
TokenType[TokenType["DOLLAR"] = 10] = "DOLLAR";
TokenType[TokenType["HASH"] = 11] = "HASH";
// single or double character tokens
TokenType[TokenType["EXCLAMATION_MARK"] = 12] = "EXCLAMATION_MARK";
TokenType[TokenType["EXCLAMATION_MARK_EQUAL"] = 13] = "EXCLAMATION_MARK_EQUAL";
TokenType[TokenType["EQUAL_EQUAL"] = 14] = "EQUAL_EQUAL";
TokenType[TokenType["GREATER"] = 15] = "GREATER";
TokenType[TokenType["GREATER_EQUAL"] = 16] = "GREATER_EQUAL";
TokenType[TokenType["LESS"] = 17] = "LESS";
TokenType[TokenType["LESS_EQUAL"] = 18] = "LESS_EQUAL";
TokenType[TokenType["PIPE_PIPE"] = 19] = "PIPE_PIPE";
TokenType[TokenType["AMPERSAND_AMPERSAND"] = 20] = "AMPERSAND_AMPERSAND";
// literals
TokenType[TokenType["IDENTIFIER"] = 21] = "IDENTIFIER";
TokenType[TokenType["STRING"] = 22] = "STRING";
TokenType[TokenType["NUMBER"] = 23] = "NUMBER";
// keywords
TokenType[TokenType["ALWAYS"] = 24] = "ALWAYS";
TokenType[TokenType["WHEN"] = 25] = "WHEN";
TokenType[TokenType["THEN"] = 26] = "THEN";
TokenType[TokenType["IF"] = 27] = "IF";
TokenType[TokenType["AND"] = 28] = "AND";
TokenType[TokenType["OR"] = 29] = "OR";
TokenType[TokenType["NOT"] = 30] = "NOT";
// other
TokenType[TokenType["EOF"] = 31] = "EOF";
})(TokenType = exports.TokenType || (exports.TokenType = {}));
/**
* Represents a word of the dsl.
*/
class Token {
/**
* Creates a new token from data.
*
* @param type token type
* @param lexeme token source
* @param literal token value
* @param position token position
*/
constructor(type, lexeme, literal, position) {
this.type = type;
this.lexeme = lexeme;
this.literal = literal;
this.position = position;
}
/**
* Returns the string representation of this token.
*/
toString() {
return '([' + TokenType[this.type] + '] ' + "'" + this.lexeme + "'" + ')';
}
}
exports.default = Token;