tan  0.0.1
ast_node_type.h
1 #ifndef __TAN_SRC_AST_AST_NODE_TYPE_H__
2 #define __TAN_SRC_AST_AST_NODE_TYPE_H__
3 
4 namespace tanlang {
5 
6 enum class ASTNodeType {
7  PROGRAM,
8  FUNC_DECL,
9  FUNC_CALL,
10  ARG_DECL,
11  VAR_DECL,
12  STRUCT_DECL,
13  COMPOUND_STATEMENT, /// compound statements
14  BOP, /// binary operators, see BinaryOpKind
15  UOP, /// unary operators, see UnaryOpKind
16  BOP_OR_UOP, /// a special type, denoting a node that we cannot determine whether it's a BOP or an UOP
17  ASSIGN, /// =
18  CAST, /// as
19  ID, /// identifiers
20  LOOP, /// for, while, ...
21  CONTINUE, /// continue
22  BREAK, /// break
23  PARENTHESIS, /// ()
24  RET, /// return
25  IF, /// if
26  IMPORT, /// import
27  VAR_REF, /// variable reference
28  INTRINSIC, /// intrinsic functions, operators, qualifiers, etc.
29  PACKAGE_DECL, /// specify package name
30  PACKAGE,
31 
32  BOOL_LITERAL, /// bool literal
33  INTEGER_LITERAL, /// int literal
34  FLOAT_LITERAL, /// float literal
35  CHAR_LITERAL, /// 's'
36  STRING_LITERAL, /// "xxx"
37  ARRAY_LITERAL, /// [1, 2, 3]
38  NULLPTR_LITERAL, /// nullptr
39 };
40 
41 }
42 
43 #endif //__TAN_SRC_AST_AST_NODE_TYPE_H__