1 /// Copyright: Copyright (c) 2021 Andrey Penechko.
2 /// License: $(WEB boost.org/LICENSE_1_0.txt, Boost License 1.0).
3 /// Authors: Andrey Penechko.
4 module vox.fe.ast.ast_node_type;
5 
6 enum AstType : ubyte
7 {
8 	error,
9 	abstract_node,
10 
11 	decl_alias,
12 	decl_alias_array,
13 	decl_builtin,
14 	decl_builtin_attribute,
15 	decl_enum,
16 	decl_enum_member,
17 	decl_function,
18 	decl_import,
19 	decl_module,
20 	decl_package,
21 	decl_static_assert,
22 	decl_static_foreach,
23 	decl_static_if,
24 	decl_static_version,
25 	decl_struct,
26 	decl_template,
27 	decl_template_param,
28 	decl_var,
29 
30 	stmt_block,
31 	stmt_if,
32 	stmt_while,
33 	stmt_do_while,
34 	stmt_for,
35 	stmt_switch,
36 	stmt_return,
37 	stmt_break,
38 	stmt_continue,
39 
40 	expr_name_use,
41 	expr_member,
42 	expr_call,
43 	expr_named_argument,
44 	expr_index,
45 	expr_slice,
46 	expr_bin_op,
47 	expr_un_op,
48 	expr_type_conv,
49 
50 	literal_int,
51 	literal_float,
52 	literal_string,
53 	literal_null,
54 	literal_bool,
55 	literal_array,
56 	literal_special,
57 
58 	type_basic,
59 	type_ptr,
60 	type_static_array,
61 	type_slice,
62 	type_func_sig,
63 }