nooc

nooc programming language compiler
git clone git://git.nihaljere.xyz/nooc
Log | Files | Refs | LICENSE

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:
Mir.c | 18+++++++++---------
Mmain.c | 16++++++++--------
Mnooc.h | 12++++++------
Mparse.c | 28++++++++++++++--------------
Mtype.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"); } } }