commit 30ae2d244b6d30dd21ca8815670cc3945502f8aa
parent 610b7780a5f3ead504a6d665aa5613fb6e1c3534
Author: Nihal Jere <nihal@nihaljere.xyz>
Date: Mon, 17 Jan 2022 21:52:38 -0600
rename `struct item` to `struct statement`
This name is better.
Diffstat:
M | ir.c | | | 18 | +++++++++--------- |
M | main.c | | | 16 | ++++++++-------- |
M | nooc.h | | | 12 | ++++++------ |
M | parse.c | | | 28 | ++++++++++++++-------------- |
M | type.c | | | 16 | ++++++++-------- |
5 files changed, 45 insertions(+), 45 deletions(-)
diff --git a/ir.c b/ir.c
@@ -331,12 +331,12 @@ genblock(struct iproc *out, struct block *block)
blockpush(block);
for (size_t i = 0; i < block->len; i++) {
- struct item *item = &block->data[i];
+ struct statement *statement = &block->data[i];
uint64_t what;
size_t val;
- switch (item->kind) {
- case ITEM_DECL:
- decl = &block->decls.data[item->idx];
+ switch (statement->kind) {
+ case STMT_DECL:
+ decl = &block->decls.data[statement->idx];
type = &types.data[decl->type];
switch (type->size) {
case 1:
@@ -350,8 +350,8 @@ genblock(struct iproc *out, struct block *block)
}
val = decl->val;
goto decl_assign_common;
- case ITEM_ASSGN:
- assgn = &assgns.data[item->idx];
+ case STMT_ASSGN:
+ assgn = &assgns.data[statement->idx];
decl = finddecl(assgn->s);
type = &types.data[decl->type];
val = assgn->val;
@@ -374,10 +374,10 @@ decl_assign_common:
}
}
break;
- case ITEM_EXPR:
- genexpr(out, item->idx, &what);
+ case STMT_EXPR:
+ genexpr(out, statement->idx, &what);
break;
- case ITEM_RETURN:
+ case STMT_RETURN:
STARTINS(IR_RETURN, 0, VT_EMPTY);
break;
default:
diff --git a/main.c b/main.c
@@ -114,15 +114,15 @@ gentoplevel(struct toplevel *toplevel, struct block *block)
curaddr += targ.emitsyscall(&toplevel->text, i);
}
for (int i = 0; i < block->len; i++) {
- struct item *item = &block->data[i];
+ struct statement *statement = &block->data[i];
- switch (item->kind) {
- case ITEM_EXPR:
+ switch (statement->kind) {
+ case STMT_EXPR:
die("toplevel expressions are unimplemented");
- case ITEM_ASSGN:
+ case STMT_ASSGN:
die("toplevel assignments are unimplemented");
- case ITEM_DECL: {
- struct decl *decl = &block->decls.data[item->idx];
+ case STMT_DECL: {
+ struct decl *decl = &block->decls.data[statement->idx];
struct expr *expr = &exprs.data[decl->val];
decl_alloc(block, decl);
@@ -185,9 +185,9 @@ main(int argc, char *argv[])
typesmap = mkmap(16);
inittypes();
- struct block items = parse(head);
+ struct block statements = parse(head);
- gentoplevel(&toplevel, &items);
+ gentoplevel(&toplevel, &statements);
FILE *out = fopen(argv[2], "w");
if (!out) {
diff --git a/nooc.h b/nooc.h
@@ -144,12 +144,12 @@ struct data {
char *data;
};
-struct item {
+struct statement {
enum {
- ITEM_DECL,
- ITEM_ASSGN,
- ITEM_EXPR,
- ITEM_RETURN,
+ STMT_DECL,
+ STMT_ASSGN,
+ STMT_EXPR,
+ STMT_RETURN,
} kind;
size_t idx;
struct token *start;
@@ -164,7 +164,7 @@ struct block {
size_t datasize;
size_t cap;
size_t len;
- struct item *data;
+ struct statement *data;
};
struct cond {
diff --git a/parse.c b/parse.c
@@ -380,7 +380,7 @@ parsenametypes(struct nametypes *nametypes)
static void
parseblock(struct block *block)
{
- struct item item;
+ struct statement statement;
bool curlies = false;
blockpush(block);
@@ -390,13 +390,13 @@ parseblock(struct block *block)
}
while (!(tok->type == TOK_NONE || (curlies && tok->type == TOK_RCURLY))) {
- item = (struct item){ 0 };
- item.start = tok;
+ statement = (struct statement){ 0 };
+ statement.start = tok;
if (tok->type == TOK_LET) {
struct decl decl = { 0 };
decl.toplevel = !(blocki - 1);
decl.start = tok;
- item.kind = ITEM_DECL;
+ statement.kind = STMT_DECL;
tok = tok->next;
expect(TOK_NAME);
@@ -415,28 +415,28 @@ parseblock(struct block *block)
decl.val = parseexpr(block);
array_add((&block->decls), decl);
- item.idx = block->decls.len - 1;
- array_add((block), item);
+ statement.idx = block->decls.len - 1;
+ array_add((block), statement);
} else if (tok->type == TOK_RETURN) {
- item.kind = ITEM_RETURN;
+ statement.kind = STMT_RETURN;
tok = tok->next;
- array_add((block), item);
+ array_add((block), statement);
} else if (tok->type == TOK_NAME && tok->next && tok->next->type == TOK_EQUAL) {
struct assgn assgn = { 0 };
assgn.start = tok;
- item.kind = ITEM_ASSGN;
+ statement.kind = STMT_ASSGN;
assgn.s = tok->slice;
tok = tok->next->next;
assgn.val = parseexpr(block);
array_add((&assgns), assgn);
- item.idx = assgns.len - 1;
- array_add(block, item);
+ statement.idx = assgns.len - 1;
+ array_add(block, statement);
} else {
- item.kind = ITEM_EXPR;
- item.idx = parseexpr(block);
- array_add(block, item);
+ statement.kind = STMT_EXPR;
+ statement.idx = parseexpr(block);
+ array_add(block, statement);
}
}
diff --git a/type.c b/type.c
@@ -269,12 +269,12 @@ void
typecheck(struct block *block)
{
for (size_t i = 0; i < block->len; i++) {
- struct item *item = &block->data[i];
+ struct statement *statement = &block->data[i];
struct decl *decl;
struct assgn *assgn;
switch (block->data[i].kind) {
- case ITEM_ASSGN:
- assgn = &assgns.data[item->idx];
+ case STMT_ASSGN:
+ assgn = &assgns.data[statement->idx];
decl = finddecl(assgn->s);
if (decl == NULL)
error(assgn->start->line, assgn->start->col, "typecheck: unknown name '%.*s'", assgn->s.len, assgn->s.data);
@@ -287,16 +287,16 @@ typecheck(struct block *block)
typecompat(decl->type, assgn->val);
}
break;
- case ITEM_DECL:
- decl = &block->decls.data[item->idx];
+ case STMT_DECL:
+ decl = &block->decls.data[statement->idx];
typecheckexpr(decl->val);
typecompat(decl->type, decl->val);
break;
- case ITEM_EXPR:
- case ITEM_RETURN:
+ case STMT_EXPR:
+ case STMT_RETURN:
break;
default:
- error(item->start->line, item->start->col, "unknown item type");
+ error(statement->start->line, statement->start->col, "unknown statement type");
}
}
}