aboutsummaryrefslogtreecommitdiff
path: root/src/parser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/parser.cpp')
-rw-r--r--src/parser.cpp46
1 files changed, 23 insertions, 23 deletions
diff --git a/src/parser.cpp b/src/parser.cpp
index a55435581..7f2dc8fdc 100644
--- a/src/parser.cpp
+++ b/src/parser.cpp
@@ -1,8 +1,8 @@
-struct AstNode;
-struct Scope;
-struct DeclInfo;
+typedef struct AstNode AstNode;
+typedef struct Scope Scope;
+typedef struct DeclInfo DeclInfo;
-enum ParseFileError {
+typedef enum ParseFileError {
ParseFile_None,
ParseFile_WrongExtension,
@@ -13,11 +13,11 @@ enum ParseFileError {
ParseFile_InvalidToken,
ParseFile_Count,
-};
+} ParseFileError;
typedef Array(AstNode *) AstNodeArray;
-struct AstFile {
+typedef struct AstFile {
i32 id;
gbArena arena;
Tokenizer tokenizer;
@@ -43,15 +43,15 @@ struct AstFile {
#define PARSER_MAX_FIX_COUNT 6
isize fix_count;
TokenPos fix_prev_pos;
-};
+} AstFile;
-struct ImportedFile {
+typedef struct ImportedFile {
String path;
String rel_path;
TokenPos pos; // #import
-};
+} ImportedFile;
-struct Parser {
+typedef struct Parser {
String init_fullpath;
Array(AstFile) files;
Array(ImportedFile) imports;
@@ -59,9 +59,9 @@ struct Parser {
Array(String) foreign_libraries;
isize total_token_count;
gbMutex mutex;
-};
+} Parser;
-enum ProcTag : u64 {
+typedef enum ProcTag {
ProcTag_bounds_check = GB_BIT(0),
ProcTag_no_bounds_check = GB_BIT(1),
@@ -75,23 +75,23 @@ enum ProcTag : u64 {
ProcTag_stdcall = GB_BIT(16),
ProcTag_fastcall = GB_BIT(17),
// ProcTag_cdecl = GB_BIT(18),
-};
+} ProcTag;
-enum VarDeclTag {
+typedef enum VarDeclTag {
VarDeclTag_thread_local = GB_BIT(0),
-};
+} VarDeclTag;
-enum StmtStateFlag : u32 {
+typedef enum StmtStateFlag {
StmtStateFlag_bounds_check = GB_BIT(0),
StmtStateFlag_no_bounds_check = GB_BIT(1),
-};
+} StmtStateFlag;
-enum CallExprKind {
+typedef enum CallExprKind {
CallExpr_Prefix, // call(...)
CallExpr_Postfix, // a'call
CallExpr_Infix, // a ''call b
-};
+} CallExprKind;
AstNodeArray make_ast_node_array(AstFile *f) {
AstNodeArray a;
@@ -320,11 +320,11 @@ AST_NODE_KIND(_TypeBegin, "", struct{}) \
AST_NODE_KIND(_TypeEnd, "", struct{}) \
AST_NODE_KIND(Count, "", struct{})
-enum AstNodeKind {
+typedef enum AstNodeKind {
#define AST_NODE_KIND(_kind_name_, ...) GB_JOIN2(AstNode_, _kind_name_),
AST_NODE_KINDS
#undef AST_NODE_KIND
-};
+} AstNodeKind;
String const ast_node_strings[] = {
#define AST_NODE_KIND(_kind_name_, name, ...) {cast(u8 *)name, gb_size_of(name)-1},
@@ -336,7 +336,7 @@ String const ast_node_strings[] = {
AST_NODE_KINDS
#undef AST_NODE_KIND
-struct AstNode {
+typedef struct AstNode {
AstNodeKind kind;
// AstNode *prev, *next; // NOTE(bill): allow for Linked list
u32 stmt_state_flags;
@@ -345,7 +345,7 @@ struct AstNode {
AST_NODE_KINDS
#undef AST_NODE_KIND
};
-};
+} AstNode;
#define ast_node(n_, Kind_, node_) GB_JOIN2(AstNode, Kind_) *n_ = &(node_)->Kind_; GB_ASSERT((node_)->kind == GB_JOIN2(AstNode_, Kind_))