From b5426dcc3f42a2c94f5db137a843b888ab1d8e4f Mon Sep 17 00:00:00 2001 From: me Date: Thu, 8 Jan 2026 00:24:21 +0200 Subject: [PATCH] small renaming --- first-interpreter/src/ast.h | 2 +- first-interpreter/src/interpreter.c | 10 +++---- first-interpreter/src/{lexer.c => lex.c} | 29 ++++++++++++--------- first-interpreter/src/{lexer.h => lex.h} | 4 +-- first-interpreter/src/{parser.c => parse.c} | 4 +-- first-interpreter/src/parse.h | 9 +++++++ first-interpreter/src/parser.h | 9 ------- 7 files changed, 34 insertions(+), 33 deletions(-) rename first-interpreter/src/{lexer.c => lex.c} (85%) rename first-interpreter/src/{lexer.h => lex.h} (84%) rename first-interpreter/src/{parser.c => parse.c} (98%) create mode 100644 first-interpreter/src/parse.h delete mode 100644 first-interpreter/src/parser.h diff --git a/first-interpreter/src/ast.h b/first-interpreter/src/ast.h index 38a3c13..1fb9a11 100644 --- a/first-interpreter/src/ast.h +++ b/first-interpreter/src/ast.h @@ -6,7 +6,7 @@ typedef struct { unsigned length; } Array; -typedef struct Expr { +typedef struct { enum { LITERAL, VARIABLE, diff --git a/first-interpreter/src/interpreter.c b/first-interpreter/src/interpreter.c index 09f3515..fd436a4 100644 --- a/first-interpreter/src/interpreter.c +++ b/first-interpreter/src/interpreter.c @@ -1,18 +1,18 @@ #include #include -#include "lexer.h" -#include "parser.h" -#include "execute.h" #include "ast.h" +#include "lex.h" +#include "parse.h" +#include "execute.h" void run(char* code, unsigned length) { - TokenArray tokens = scan(code, length); + TokenArray tokens = lex(code, length); puts("Tokens:\n"); print_TokenArray(tokens); puts("\n"); - StmtArray program = parse_program(tokens); + StmtArray program = parse(tokens); puts("\nProgram:\n"); print_ast(program); diff --git a/first-interpreter/src/lexer.c b/first-interpreter/src/lex.c similarity index 85% rename from first-interpreter/src/lexer.c rename to first-interpreter/src/lex.c index 5962b10..f2d4457 100644 --- a/first-interpreter/src/lexer.c +++ b/first-interpreter/src/lex.c @@ -1,8 +1,11 @@ #include #include -#include "lexer.h" +#include "lex.h" -TokenArray scan(char* txt, unsigned length) { +int is_identifier_char(char); +int is_numeric(char); + +TokenArray lex(char* txt, unsigned length) { unsigned txt_index = 0; Token* tokens = (Token*)malloc(length * sizeof(Token)); unsigned tokens_index = 0; @@ -53,10 +56,10 @@ TokenArray scan(char* txt, unsigned length) { break; } default: { - if (is_alpha(txt[txt_index])) { + if (is_identifier_char(txt[txt_index])) { char* word = malloc(128); unsigned word_index = 0; - while (txt_index < length && txt[txt_index] != '\0' && is_alpha(txt[txt_index]) && word_index < 128) { + while (txt_index < length && txt[txt_index] != '\0' && is_identifier_char(txt[txt_index]) && word_index < 128) { word[word_index] = txt[txt_index]; ++word_index; ++txt_index; @@ -84,7 +87,7 @@ TokenArray scan(char* txt, unsigned length) { return (TokenArray){ .tokens = tokens, .length = tokens_index }; } -int is_alpha(char c) { +int is_identifier_char(char c) { return c == '_' || ('a' <= c && c <= 'z'); } @@ -99,28 +102,28 @@ void print_TokenArray(TokenArray tokens) { ++token_index; switch (token.tag) { case IDENTIFIER: - printf("'%s' ", token.data.identifier); + printf("IDENTIFIER '%s'\n", token.data.identifier); break; case INTEGER: - printf("%d ", token.data.integer); + printf("NUMBER %d\n", token.data.integer); break; case OPENPAREN: - printf("( "); + printf("OPENPAREN\n"); break; case CLOSEPAREN: - printf(") "); + printf("CLOSEPAREN\n"); break; case OPENCURLY: - printf("{ "); + printf("OPENCURLY\n"); break; case CLOSECURLY: - printf("} "); + printf("CLOSECURLY\n"); break; case EQUALS: - printf("= "); + printf("EQUALS\n"); break; case COMMA: - printf(", "); + printf("COMMA\n"); break; } } diff --git a/first-interpreter/src/lexer.h b/first-interpreter/src/lex.h similarity index 84% rename from first-interpreter/src/lexer.h rename to first-interpreter/src/lex.h index fc468d3..8c794b5 100644 --- a/first-interpreter/src/lexer.h +++ b/first-interpreter/src/lex.h @@ -25,9 +25,7 @@ typedef struct { unsigned length; } TokenArray; -TokenArray scan(char*, unsigned); -int is_alpha(char); -int is_numeric(char); +TokenArray lex(char*, unsigned); void print_TokenArray(TokenArray); diff --git a/first-interpreter/src/parser.c b/first-interpreter/src/parse.c similarity index 98% rename from first-interpreter/src/parser.c rename to first-interpreter/src/parse.c index e39cf8f..cbb7ed5 100644 --- a/first-interpreter/src/parser.c +++ b/first-interpreter/src/parse.c @@ -1,4 +1,4 @@ -#include "parser.h" +#include "parse.h" #include #include #include @@ -154,7 +154,7 @@ StmtArray parse_block(TokenArray tokens, unsigned* tokens_index) { } -StmtArray parse_program(TokenArray tokens) { +StmtArray parse(TokenArray tokens) { unsigned tokens_index = 0; unsigned stmt_index = 0; Stmt* stmts = (Stmt*)malloc(tokens.length * sizeof(Stmt)); diff --git a/first-interpreter/src/parse.h b/first-interpreter/src/parse.h new file mode 100644 index 0000000..efa1a5f --- /dev/null +++ b/first-interpreter/src/parse.h @@ -0,0 +1,9 @@ +#ifndef PARSER_H +#define PARSER_H + +#include "ast.h" +#include "lex.h" + +StmtArray parse(TokenArray tokens); + +#endif diff --git a/first-interpreter/src/parser.h b/first-interpreter/src/parser.h deleted file mode 100644 index c832692..0000000 --- a/first-interpreter/src/parser.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef PARSER_H -#define PARSER_H - -#include "lexer.h" -#include "ast.h" - -StmtArray parse_program(TokenArray tokens); - -#endif