LexLeo
0.0.0-dev+f8e5087-dirty
Technical documentation
Loading...
Searching...
No Matches
lexleo_token.h
Go to the documentation of this file.
1
// src/langage/include/lexleo_token.h
2
3
#ifndef LEXLEO_LEXLEO_TOKEN_H
4
#define LEXLEO_LEXLEO_TOKEN_H
5
6
#include "
policy/lexleo_cstd_types.h
"
7
14
typedef
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
67
typedef
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
;
74
}
lexleo_token_t
;
75
76
#endif
//LEXLEO_LEXLEO_TOKEN_H
lexleo_cstd_types.h
lexleo_token_kind_t
lexleo_token_kind_t
Definition
lexleo_token.h:14
LEX_TK_THEN
@ LEX_TK_THEN
Definition
lexleo_token.h:44
LEX_TK_EQUAL
@ LEX_TK_EQUAL
Definition
lexleo_token.h:32
LEX_TK_SET
@ LEX_TK_SET
Definition
lexleo_token.h:42
LEX_TK_SUBTRACT
@ LEX_TK_SUBTRACT
Definition
lexleo_token.h:25
LEX_TK_SYMBOL_NAME
@ LEX_TK_SYMBOL_NAME
Definition
lexleo_token.h:52
LEX_TK_RPAREN
@ LEX_TK_RPAREN
Definition
lexleo_token.h:21
LEX_TK_SEMICOLON
@ LEX_TK_SEMICOLON
Definition
lexleo_token.h:30
LEX_TK_QUOTE
@ LEX_TK_QUOTE
Definition
lexleo_token.h:39
LEX_TK_ELSE
@ LEX_TK_ELSE
Definition
lexleo_token.h:45
LEX_TK_CALL
@ LEX_TK_CALL
Definition
lexleo_token.h:38
LEX_TK_INVALID
@ LEX_TK_INVALID
Definition
lexleo_token.h:15
LEX_TK_DO
@ LEX_TK_DO
Definition
lexleo_token.h:47
LEX_TK_LBRACE
@ LEX_TK_LBRACE
Definition
lexleo_token.h:18
LEX_TK_WRITE
@ LEX_TK_WRITE
Definition
lexleo_token.h:36
LEX_TK_DEFINE
@ LEX_TK_DEFINE
Definition
lexleo_token.h:37
LEX_TK_READ
@ LEX_TK_READ
Definition
lexleo_token.h:35
LEX_TK_SYMBOL
@ LEX_TK_SYMBOL
Definition
lexleo_token.h:41
LEX_TK_EVAL
@ LEX_TK_EVAL
Definition
lexleo_token.h:40
LEX_TK_ADD
@ LEX_TK_ADD
Definition
lexleo_token.h:24
LEX_TK_IF
@ LEX_TK_IF
Definition
lexleo_token.h:43
LEX_TK_WHILE
@ LEX_TK_WHILE
Definition
lexleo_token.h:46
LEX_TK_STRING
@ LEX_TK_STRING
Definition
lexleo_token.h:51
LEX_TK_DIVIDE
@ LEX_TK_DIVIDE
Definition
lexleo_token.h:27
LEX_TK_MULTIPLY
@ LEX_TK_MULTIPLY
Definition
lexleo_token.h:26
LEX_TK_COMMA
@ LEX_TK_COMMA
Definition
lexleo_token.h:31
LEX_TK_RBRACE
@ LEX_TK_RBRACE
Definition
lexleo_token.h:19
LEX_TK_EOF
@ LEX_TK_EOF
Definition
lexleo_token.h:55
LEX_TK_LPAREN
@ LEX_TK_LPAREN
Definition
lexleo_token.h:20
LEX_TK_INTEGER
@ LEX_TK_INTEGER
Definition
lexleo_token.h:50
lexleo_token_t
Definition
lexleo_token.h:67
lexleo_token_t::symbol_value
char * symbol_value
Definition
lexleo_token.h:72
lexleo_token_t::string_value
char * string_value
Definition
lexleo_token.h:71
lexleo_token_t::int_value
int int_value
Definition
lexleo_token.h:70
lexleo_token_t::kind
lexleo_token_kind_t kind
Definition
lexleo_token.h:68
lexleo_token_t::as
union lexleo_token_t::@0 as
src
langage
include
langage
lexleo_token.h
Generated by
1.9.8