/* * 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_ARROW, /* '->' */ 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 */