Luma 0.1.0
A low-level compiled alternative to C, C++, and more!
Loading...
Searching...
No Matches
doc_generator.h
Go to the documentation of this file.
1
6#pragma once
7
8#include "../ast/ast.h"
9#include "../c_libs/memory/memory.h"
10#include <stdbool.h>
11#include <stdio.h>
12
16typedef struct {
17 const char *output_dir; // Directory to write documentation files
18 const char *format; // Output format: "markdown", "html", "json"
19 bool include_private; // Include private members in documentation
20 bool include_source_links; // Include links to source code
21 ArenaAllocator *arena; // Arena for memory allocation
23
27DocGenConfig create_doc_config(ArenaAllocator *arena, const char *output_dir);
28
36bool generate_documentation(AstNode *program, DocGenConfig config);
37
46bool generate_module_docs(AstNode *module, DocGenConfig config,
47 FILE *output_file);
bool generate_documentation(AstNode *program, DocGenConfig config)
Generate documentation for an entire program.
Definition doc_generator.c:652
DocGenConfig create_doc_config(ArenaAllocator *arena, const char *output_dir)
Initialize documentation generator configuration.
Definition doc_generator.c:723
bool generate_module_docs(AstNode *module, DocGenConfig config, FILE *output_file)
Generate documentation for a single module.
Definition doc_generator.c:521
Arena allocator structure.
Definition memory.h:101
Definition ast.h:142
Configuration for documentation generation.
Definition doc_generator.h:16
const char * output_dir
Definition doc_generator.h:17
bool include_private
Definition doc_generator.h:19
bool include_source_links
Definition doc_generator.h:20
ArenaAllocator * arena
Definition doc_generator.h:21
const char * format
Definition doc_generator.h:18