lang: update bluelib api usage

This commit is contained in:
2025-11-06 10:38:32 +00:00
parent b26c37c349
commit 4386965cd9
40 changed files with 351 additions and 271 deletions

View File

@@ -1,9 +1,10 @@
#include <stdio.h>
#include "lex.h"
#include <ivy/lang/lex.h>
#include <ivy/lang/internal.h>
#include <blue/object/number.h>
#include <blue/ds/number.h>
#include <blue/term/print.h>
#include <ivy/lang/internal.h>
#include <ivy/lang/lex.h>
#include <stdio.h>
static void print_symbol_node(struct ivy_lexer_symbol_node *node, int depth)
{
@@ -19,27 +20,31 @@ static void print_symbol_node(struct ivy_lexer_symbol_node *node, int depth)
b_printf("\n");
b_queue_iterator it;
b_queue_foreach (&it, &node->s_children) {
struct ivy_lexer_symbol_node *child = b_unbox(
struct ivy_lexer_symbol_node, it.entry, s_entry);
b_queue_entry *entry = b_queue_first(&node->s_children);
while (entry) {
struct ivy_lexer_symbol_node *child
= b_unbox(struct ivy_lexer_symbol_node, entry, s_entry);
print_symbol_node(child, depth + 1);
entry = b_queue_next(entry);
}
}
void internal_lexer_print_symbol_tree(struct ivy_lexer* lex)
void internal_lexer_print_symbol_tree(struct ivy_lexer *lex)
{
print_symbol_node(lex->lex_sym_tree, -1);
}
void internal_lexer_print_keyword_dict(struct ivy_lexer* lex)
void internal_lexer_print_keyword_dict(struct ivy_lexer *lex)
{
b_dict_iterator it = {0};
b_dict_foreach(&it, lex->lex_keywords) {
const char *kw_name = it.key;
enum ivy_keyword kw_id = b_number_get_int(B_NUMBER(it.value));
b_iterator *it = b_iterator_begin(lex->lex_keywords);
b_foreach_ptr(b_dict_item, item, it)
{
const b_string *kw_name = item->key;
enum ivy_keyword kw_id = b_number_get_int(item->value);
b_printf("([magenta]%s[reset]) = [green]%s[reset]\n", ivy_keyword_to_string(kw_id), kw_name);
b_printf(
"([magenta]%s[reset]) = [green]%s[reset]\n",
ivy_keyword_to_string(kw_id), b_string_ptr(kw_name));
}
}
}