35 lines
593 B
C
35 lines
593 B
C
#ifndef TOKEN_H
|
|
#define TOKEN_H
|
|
|
|
enum TokenType {
|
|
Empty,
|
|
String,
|
|
Number,
|
|
Symbol,
|
|
Plus = '+',
|
|
Minus = '-',
|
|
Star = '*',
|
|
Slash = '/',
|
|
Carot = '^',
|
|
OpenParen = '(',
|
|
CloseParen = ')',
|
|
FileEnd
|
|
};
|
|
|
|
typedef struct _token {
|
|
TokenType Type;
|
|
char* Name;
|
|
union {
|
|
char* String;
|
|
int Number;
|
|
} Value;
|
|
int LineNumber;
|
|
int ColumnNumber;
|
|
int Index;
|
|
int Length;
|
|
int Resolved;
|
|
} Token;
|
|
|
|
Token* TokenCreate(char* name, TokenType type, int lineNumber, int columnNumber, int index, int length, int resolved);
|
|
|
|
#endif |