3e3ccae003
Signed-off-by: Chloe M. <chloe@mirocom.org>
41 lines
786 B
C
41 lines
786 B
C
/*
|
|
* Copyright (c) 2026, Chloe M.
|
|
* Provided under the BSD-3 clause
|
|
*/
|
|
|
|
#ifndef CESCAL_TOKEN_H
|
|
#define CESCAL_TOKEN_H 1
|
|
|
|
/*
|
|
* Represents valid source file token types
|
|
*/
|
|
typedef enum {
|
|
TT_NONE, /* [none] */
|
|
TT_IDENT, /* [identifier] */
|
|
TT_COMMENT, /* [comment : ignored] */
|
|
TT_INTLIT, /* [0-9]+ */
|
|
TT_LPAREN, /* '(' */
|
|
TT_RPAREN, /* '( */
|
|
TT_COMMA, /* ',' */
|
|
TT_RETURN, /* 'return' */
|
|
TT_PUB, /* 'pub' */
|
|
TT_PROC, /* 'proc' */
|
|
TT_BEGIN, /* 'begin' */
|
|
TT_END, /* 'end' */
|
|
} tt_t;
|
|
|
|
/*
|
|
* Represents a source file token
|
|
*
|
|
* @type: Token type
|
|
*/
|
|
struct token {
|
|
tt_t type;
|
|
union {
|
|
char c;
|
|
char *s;
|
|
};
|
|
};
|
|
|
|
#endif /* !CESCAL_TOKEN_H */
|