diff options
| author | gingerBill <bill@gingerbill.org> | 2018-02-04 20:07:05 +0000 |
|---|---|---|
| committer | gingerBill <bill@gingerbill.org> | 2018-02-04 20:07:05 +0000 |
| commit | ed2f49e8d2f91c1eed1c597946407039d0524465 (patch) | |
| tree | 92322e37a3831a8b03f1185dfcd9713724e1b89d /src/parser.hpp | |
| parent | 8a76a370a984d511846cfac749587a3ab5f9f47e (diff) | |
Remove dead code; Fix issue regarding order of evaluation of function parameters (in C++) depending on the compiler (clang vs gcc vs msvc)
Diffstat (limited to 'src/parser.hpp')
| -rw-r--r-- | src/parser.hpp | 70 |
1 files changed, 28 insertions, 42 deletions
diff --git a/src/parser.hpp b/src/parser.hpp index f9a520e40..67c063de5 100644 --- a/src/parser.hpp +++ b/src/parser.hpp @@ -169,23 +169,23 @@ Array<AstNode *> make_ast_node_array(AstFile *f, isize init_capacity = 8) { Token token; \ }) \ AST_NODE_KIND(BasicDirective, "basic directive", struct { \ - Token token; \ + Token token; \ String name; \ }) \ AST_NODE_KIND(Ellipsis, "ellipsis", struct { \ - Token token; \ + Token token; \ AstNode *expr; \ }) \ AST_NODE_KIND(ProcGroup, "procedure group", struct { \ - Token token; \ - Token open; \ - Token close; \ + Token token; \ + Token open; \ + Token close; \ Array<AstNode *> args; \ }) \ AST_NODE_KIND(ProcLit, "procedure literal", struct { \ - AstNode *type; \ - AstNode *body; \ - u64 tags; \ + AstNode * type; \ + AstNode * body; \ + u64 tags; \ ProcInlining inlining; \ }) \ AST_NODE_KIND(CompoundLit, "compound literal", struct { \ @@ -193,7 +193,7 @@ Array<AstNode *> make_ast_node_array(AstFile *f, isize init_capacity = 8) { Array<AstNode *> elems; \ Token open, close; \ }) \ -AST_NODE_KIND(_ExprBegin, "", i32) \ +AST_NODE_KIND(_ExprBegin, "", struct {}) \ AST_NODE_KIND(BadExpr, "bad expression", struct { Token begin, end; }) \ AST_NODE_KIND(TagExpr, "tag expression", struct { Token token, name; AstNode *expr; }) \ AST_NODE_KIND(RunExpr, "run expression", struct { Token token, name; AstNode *expr; }) \ @@ -220,8 +220,8 @@ AST_NODE_KIND(_ExprBegin, "", i32) \ AST_NODE_KIND(TernaryExpr, "ternary expression", struct { AstNode *cond, *x, *y; }) \ AST_NODE_KIND(TypeAssertion, "type assertion", struct { AstNode *expr; Token dot; AstNode *type; }) \ AST_NODE_KIND(TypeCast, "type cast", struct { Token token; AstNode *type, *expr; }) \ -AST_NODE_KIND(_ExprEnd, "", i32) \ -AST_NODE_KIND(_StmtBegin, "", i32) \ +AST_NODE_KIND(_ExprEnd, "", struct {}) \ +AST_NODE_KIND(_StmtBegin, "", struct {}) \ AST_NODE_KIND(BadStmt, "bad statement", struct { Token begin, end; }) \ AST_NODE_KIND(EmptyStmt, "empty statement", struct { Token token; }) \ AST_NODE_KIND(ExprStmt, "expression statement", struct { AstNode *expr; } ) \ @@ -238,7 +238,7 @@ AST_NODE_KIND(_StmtBegin, "", i32) \ Token op; \ AstNode *expr; \ }) \ -AST_NODE_KIND(_ComplexStmtBegin, "", i32) \ +AST_NODE_KIND(_ComplexStmtBegin, "", struct {}) \ AST_NODE_KIND(BlockStmt, "block statement", struct { \ Array<AstNode *> stmts; \ Token open, close; \ @@ -310,28 +310,14 @@ AST_NODE_KIND(_ComplexStmtBegin, "", i32) \ Token in_token; \ AstNode *expr; \ }) \ - AST_NODE_KIND(AsmOperand, "assembly operand", struct { \ - Token string; \ - AstNode *operand; \ - }) \ - AST_NODE_KIND(AsmStmt, "assembly statement", struct { \ - Token token; \ - bool is_volatile; \ - Token open, close; \ - Token code_string; \ - AstNode *output_list; \ - AstNode *input_list; \ - AstNode *clobber_list; \ - isize output_count, input_count, clobber_count; \ - }) \ AST_NODE_KIND(PushContext, "context <- statement", struct { \ Token token; \ AstNode *expr; \ AstNode *body; \ }) \ -AST_NODE_KIND(_ComplexStmtEnd, "", i32) \ -AST_NODE_KIND(_StmtEnd, "", i32) \ -AST_NODE_KIND(_DeclBegin, "", i32) \ +AST_NODE_KIND(_ComplexStmtEnd, "", struct {}) \ +AST_NODE_KIND(_StmtEnd, "", struct {}) \ +AST_NODE_KIND(_DeclBegin, "", struct {}) \ AST_NODE_KIND(BadDecl, "bad declaration", struct { Token begin, end; }) \ AST_NODE_KIND(ForeignBlockDecl, "foreign block declaration", struct { \ Token token; \ @@ -339,8 +325,8 @@ AST_NODE_KIND(_DeclBegin, "", i32) \ Token open, close; \ Array<AstNode *> decls; \ Array<AstNode *> attributes; \ - bool been_handled; \ CommentGroup docs; \ + bool been_handled; \ }) \ AST_NODE_KIND(Label, "label", struct { \ Token token; \ @@ -350,12 +336,12 @@ AST_NODE_KIND(_DeclBegin, "", i32) \ Array<AstNode *> names; \ AstNode * type; \ Array<AstNode *> values; \ - bool is_using; \ - bool is_mutable; \ - bool been_handled; \ Array<AstNode *> attributes; \ CommentGroup docs; \ CommentGroup comment; \ + bool is_using; \ + bool is_mutable; \ + bool been_handled; \ }) \ AST_NODE_KIND(ImportDecl, "import declaration", struct { \ AstFile *file; \ @@ -363,21 +349,21 @@ AST_NODE_KIND(_DeclBegin, "", i32) \ Token relpath; \ String fullpath; \ Token import_name; \ - bool is_using; \ - bool been_handled; \ Array<AstNode *> using_in_list; \ CommentGroup docs; \ CommentGroup comment; \ + bool is_using; \ + bool been_handled; \ }) \ AST_NODE_KIND(ExportDecl, "export declaration", struct { \ AstFile *file; \ Token token; \ Token relpath; \ String fullpath; \ - bool been_handled; \ Array<AstNode *> using_in_list; \ CommentGroup docs; \ CommentGroup comment; \ + bool been_handled; \ }) \ AST_NODE_KIND(ForeignImportDecl, "foreign import declaration", struct { \ Token token; \ @@ -386,11 +372,11 @@ AST_NODE_KIND(_DeclBegin, "", i32) \ String base_dir; \ String collection_name; \ String fullpath; \ - bool been_handled; \ CommentGroup docs; \ CommentGroup comment; \ + bool been_handled; \ }) \ -AST_NODE_KIND(_DeclEnd, "", i32) \ +AST_NODE_KIND(_DeclEnd, "", struct {}) \ AST_NODE_KIND(Attribute, "attribute", struct { \ Token token; \ AstNode *type; \ @@ -413,7 +399,7 @@ AST_NODE_KIND(_DeclEnd, "", i32) \ AstNode *name; \ AstNode *list; \ }) \ -AST_NODE_KIND(_TypeBegin, "", i32) \ +AST_NODE_KIND(_TypeBegin, "", struct {}) \ AST_NODE_KIND(TypeType, "type", struct { \ Token token; \ AstNode *specialization; \ @@ -457,9 +443,9 @@ AST_NODE_KIND(_TypeBegin, "", i32) \ Array<AstNode *> fields; \ isize field_count; \ AstNode * polymorphic_params; \ + AstNode * align; \ bool is_packed; \ bool is_raw_union; \ - AstNode * align; \ }) \ AST_NODE_KIND(UnionType, "union type", struct { \ Token token; \ @@ -469,8 +455,8 @@ AST_NODE_KIND(_TypeBegin, "", i32) \ AST_NODE_KIND(EnumType, "enum type", struct { \ Token token; \ AstNode * base_type; \ - bool is_export; \ Array<AstNode *> fields; /* FieldValue */ \ + bool is_export; \ }) \ AST_NODE_KIND(BitFieldType, "bit field type", struct { \ Token token; \ @@ -483,7 +469,7 @@ AST_NODE_KIND(_TypeBegin, "", i32) \ AstNode *key; \ AstNode *value; \ }) \ -AST_NODE_KIND(_TypeEnd, "", i32) +AST_NODE_KIND(_TypeEnd, "", struct {}) enum AstNodeKind { AstNode_Invalid, |