AeThex-OS/packages/aethex-cli/lib/compiler/Lexer.d.ts

78 lines
No EOL
1.8 KiB
TypeScript

/**
* AeThex Compiler - Lexer (Tokenizer)
* Converts source code into tokens
*/
export declare enum TokenType {
REALITY = "REALITY",
JOURNEY = "JOURNEY",
LET = "LET",
IMPORT = "IMPORT",
FROM = "FROM",
WHEN = "WHEN",
OTHERWISE = "OTHERWISE",
RETURN = "RETURN",
PLATFORM = "PLATFORM",
NOTIFY = "NOTIFY",
REVEAL = "REVEAL",
SYNC = "SYNC",
ACROSS = "ACROSS",
NEW = "NEW",
IDENTIFIER = "IDENTIFIER",
STRING = "STRING",
NUMBER = "NUMBER",
PLUS = "PLUS",
MINUS = "MINUS",
STAR = "STAR",
SLASH = "SLASH",
EQUALS = "EQUALS",
EQUALS_EQUALS = "EQUALS_EQUALS",
NOT_EQUALS = "NOT_EQUALS",
BANG = "BANG",
LESS_THAN = "LESS_THAN",
GREATER_THAN = "GREATER_THAN",
LESS_EQUALS = "LESS_EQUALS",
GREATER_EQUALS = "GREATER_EQUALS",
LEFT_PAREN = "LEFT_PAREN",
RIGHT_PAREN = "RIGHT_PAREN",
LEFT_BRACE = "LEFT_BRACE",
RIGHT_BRACE = "RIGHT_BRACE",
LEFT_BRACKET = "LEFT_BRACKET",
RIGHT_BRACKET = "RIGHT_BRACKET",
COMMA = "COMMA",
DOT = "DOT",
COLON = "COLON",
SEMICOLON = "SEMICOLON",
NEWLINE = "NEWLINE",
EOF = "EOF",
COMMENT = "COMMENT"
}
export interface Token {
type: TokenType;
value: string;
line: number;
column: number;
}
export declare class Lexer {
private source;
private position;
private line;
private column;
private current;
private keywords;
constructor(source: string);
tokenize(): Token[];
private nextToken;
private readComment;
private readString;
private readNumber;
private readIdentifier;
private readOperator;
private skipWhitespace;
private advance;
private isAtEnd;
private isDigit;
private isAlpha;
private isAlphaNumeric;
private makeToken;
}
//# sourceMappingURL=Lexer.d.ts.map