rename types

This commit is contained in:
2024-12-22 22:31:16 +02:00
parent 228b215259
commit db35aa7722
10 changed files with 112 additions and 127 deletions

View File

@@ -1,12 +1,13 @@
#include <stdio.h>
#include <stdlib.h>
#include "parser.h"
typedef struct {
uint32_t len;
astNodeIndex lhs, rhs;
AstNodeIndex lhs, rhs;
bool trailing;
} members;
} Members;
typedef struct {
enum {
@@ -17,24 +18,31 @@ typedef struct {
union {
uint32_t end;
} payload;
} field_state;
} FieldState;
static astTokenIndex next_token(parser* p)
int parseRoot(Parser* p)
{
return ++p->tok_i;
p->nodes.tags[p->nodes.len++] = AST_NODE_TAG_ROOT;
p->nodes.main_tokens[p->nodes.len] = 0;
// members root_members = parseContainerMembers(p);
return 0;
}
static astTokenIndex eat_token(parser* p, tokenizerTag tag)
static AstTokenIndex nextToken(Parser* p) { return p->tok_i++; }
static AstTokenIndex eatToken(Parser* p, TokenizerTag tag)
{
return (p->token_tags[p->tok_i] == tag) ? next_token(p) : -1;
return (p->token_tags[p->tok_i] == tag) ? nextToken(p) : -1;
}
static members parse_container_members(parser* p)
static Members parseContainerMembers(Parser* p)
{
const uint32_t scratch_top = p->scratch.len;
members res = (members) {};
Members res = (Members) {};
// ast_token_index last_field;
while (eat_token(p, TOKENIZER_TAG_CONTAINER_DOC_COMMENT) != -1)
while (eatToken(p, TOKENIZER_TAG_CONTAINER_DOC_COMMENT) != -1)
;
// bool trailing = false;
@@ -166,25 +174,15 @@ static members parse_container_members(parser* p)
case TOKENIZER_TAG_KEYWORD_WHILE:;
const char* str = tokenizerTagString[p->token_tags[p->tok_i]];
fprintf(stderr, "keyword %s not implemented\n", str);
goto cleanup;
exit(1);
case TOKENIZER_TAG_KEYWORD_PUB:
p->tok_i++;
// AstNodeIndex top_level_decl = expectTopLevelDecl(*p);
break;
// TODO do work
}
}
cleanup:
p->scratch.len = scratch_top;
return res;
}
int parse_root(parser* p)
{
p->nodes.tags[p->nodes.len++] = AST_NODE_TAG_ROOT;
p->nodes.main_tokens[p->nodes.len] = 0;
// members root_members = parse_container_members(p);
return 0;
}