lexLeo
Loading...
Searching...
No Matches
lexleo_token.h
1// src/langage/include/lexleo_token.h
2
3#ifndef LEXLEO_LEXLEO_TOKEN_H
4#define LEXLEO_LEXLEO_TOKEN_H
5
6#include <stdint.h>
7
14typedef enum lexleo_token_kind_t {
15 LEX_TK_INVALID = 0,
16
17 /* punctuation */
18 LEX_TK_LBRACE,
19 LEX_TK_RBRACE,
20 LEX_TK_LPAREN,
21 LEX_TK_RPAREN,
22
23 /* operators */
24 LEX_TK_ADD,
25 LEX_TK_SUBTRACT,
26 LEX_TK_MULTIPLY,
27 LEX_TK_DIVIDE,
28
29 /* separators / assignment */
30 LEX_TK_SEMICOLON,
31 LEX_TK_COMMA,
32 LEX_TK_EQUAL,
33
34 /* keywords */
35 LEX_TK_READ,
36 LEX_TK_WRITE,
37 LEX_TK_DEFINE,
38 LEX_TK_CALL,
39 LEX_TK_QUOTE,
40 LEX_TK_EVAL,
41 LEX_TK_SYMBOL,
42 LEX_TK_SET,
43 LEX_TK_IF,
44 LEX_TK_THEN,
45 LEX_TK_ELSE,
46 LEX_TK_WHILE,
47 LEX_TK_DO,
48
49 /* literals / identifiers */
50 LEX_TK_INTEGER,
51 LEX_TK_STRING,
52 LEX_TK_SYMBOL_NAME,
53
54 /* end of input */
55 LEX_TK_EOF
56
57} lexleo_token_kind_t;
58
67typedef struct lexleo_token_t {
68 lexleo_token_kind_t kind;
69 union {
70 int int_value;
71 char *string_value;
72 char *symbol_value;
73 } as;
75
76#endif //LEXLEO_LEXLEO_TOKEN_H
Definition lexleo_token.h:67