aboutsummaryrefslogtreecommitdiff
path: root/src/parser.c
diff options
context:
space:
mode:
authorGinger Bill <bill@gingerbill.org>2017-01-01 16:58:38 +0000
committerGinger Bill <bill@gingerbill.org>2017-01-01 16:58:38 +0000
commit311b5cb6e211aa49d8dc0e081173204d7271964f (patch)
tree34e46ebf224736b737f72b2873d5afcaab8d5f17 /src/parser.c
parent6fef74317cdd0e403fb913ebe965dc08b3dfb22d (diff)
Add enum type info and fix enum casting
Diffstat (limited to 'src/parser.c')
-rw-r--r--src/parser.c13
1 files changed, 4 insertions, 9 deletions
diff --git a/src/parser.c b/src/parser.c
index a7d9b4282..2d61c9e92 100644
--- a/src/parser.c
+++ b/src/parser.c
@@ -1211,7 +1211,6 @@ void fix_advance_to_next_stmt(AstFile *f) {
return;
case Token_var:
- case Token_let:
case Token_const:
case Token_type:
case Token_proc:
@@ -2154,7 +2153,6 @@ PARSE_SPEC_PROC(parse_value_spec) {
switch (keyword) {
case Token_var:
- case Token_let:
if (type == NULL && values.count == 0 && names.count > 0) {
syntax_error(f->curr_token, "Missing type or initialization");
return make_bad_decl(f, f->curr_token, f->curr_token);
@@ -2240,7 +2238,6 @@ PARSE_SPEC_PROC(parse_include_spec) {
AstNode *parse_decl(AstFile *f) {
switch (f->curr_token.kind) {
case Token_var:
- case Token_let:
case Token_const:
return parse_generic_decl(f, f->curr_token.kind, parse_value_spec);
@@ -2269,7 +2266,6 @@ AstNode *parse_decl(AstFile *f) {
AstNode *parse_simple_stmt(AstFile *f) {
switch (f->curr_token.kind) {
case Token_var:
- case Token_let:
case Token_const:
return parse_decl(f);
}
@@ -2555,9 +2551,11 @@ AstNode *parse_identifier_or_type(AstFile *f) {
base_type = parse_type(f);
}
Token open = expect_token(f, Token_OpenBrace);
- AstNodeArray fields = parse_element_list(f);
+
+ AstNodeArray values = parse_element_list(f);
Token close = expect_token(f, Token_CloseBrace);
- return make_enum_type(f, token, base_type, fields);
+
+ return make_enum_type(f, token, base_type, values);
}
case Token_proc: {
@@ -3026,7 +3024,6 @@ AstNode *parse_stmt(AstFile *f) {
return s;
case Token_var:
- case Token_let:
case Token_const:
case Token_proc:
case Token_type:
@@ -3071,8 +3068,6 @@ AstNode *parse_stmt(AstFile *f) {
case AstNode_GenericDecl:
if (node->GenericDecl.token.kind == Token_var) {
valid = true;
- } else if (node->GenericDecl.token.kind == Token_let) {
- valid = true;
}
break;
}