Luma 0.1.0
A low-level compiled alternative to C, C++, and more!
Loading...
Searching...
No Matches
Classes | Functions
formatter.h File Reference
#include <stdio.h>
#include "../../c_libs/memory/memory.h"
#include "../../ast/ast.h"
Include dependency graph for formatter.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  FormatterConfig
 
struct  FormatterContext
 

Functions

void write_indent (FormatterContext *ctx)
 
void write_string (FormatterContext *ctx, const char *str)
 
void write_newline (FormatterContext *ctx)
 
void write_space (FormatterContext *ctx)
 
void increase_indent (FormatterContext *ctx)
 
void decrease_indent (FormatterContext *ctx)
 
void format_node (FormatterContext *ctx, AstNode *node)
 
void format_stmt (FormatterContext *ctx, Stmt *stmt)
 
void format_expr (FormatterContext *ctx, Expr *expr)
 
void format_type (FormatterContext *ctx, Type *type)
 
void format_program (FormatterContext *ctx, Stmt *stmt)
 
void format_module_prep (FormatterContext *ctx, Stmt *module)
 
void format_use_prep (FormatterContext *ctx, Stmt *use)
 
void format_function_definition (FormatterContext *ctx, Stmt *stmt)
 
void format_variable_declaration (FormatterContext *ctx, Stmt *stmt)
 
void format_struct_definition (FormatterContext *ctx, Stmt *stmt)
 
void format_field_definition (FormatterContext *ctx, Stmt *stmt)
 
void format_enum_definition (FormatterContext *ctx, Stmt *stmt)
 
void format_if_statement (FormatterContext *ctx, Stmt *stmt)
 
void format_loop_statement (FormatterContext *ctx, Stmt *stmt)
 
void format_switch_statement (FormatterContext *ctx, Stmt *stmt)
 
void format_defer_statement (FormatterContext *ctx, Stmt *stmt)
 
void format_block_statement (FormatterContext *ctx, Stmt *stmt)
 
void format_return_statement (FormatterContext *ctx, Stmt *stmt)
 
void format_break_continue_statement (FormatterContext *ctx, Stmt *stmt)
 
void format_output_statement (FormatterContext *ctx, Stmt *stmt)
 
void format_expr_stmt (FormatterContext *ctx, Stmt *stmt)
 
void format_binary_expression (FormatterContext *ctx, Expr *expr)
 
void format_unary_expression (FormatterContext *ctx, Expr *expr)
 
void format_function_call (FormatterContext *ctx, Expr *expr)
 
void format_literal_expression (FormatterContext *ctx, Expr *expr)
 
void format_identifier_expression (FormatterContext *ctx, Expr *expr)
 
void format_index_expression (FormatterContext *ctx, Expr *expr)
 
void format_grouping_expression (FormatterContext *ctx, Expr *expr)
 
void format_deref_expression (FormatterContext *ctx, Expr *expr)
 
void format_addr_expression (FormatterContext *ctx, Expr *expr)
 
void format_alloc_expression (FormatterContext *ctx, Expr *expr)
 
void format_memcpy_expression (FormatterContext *ctx, Expr *expr)
 
void format_free_expression (FormatterContext *ctx, Expr *expr)
 
void format_cast_expression (FormatterContext *ctx, Expr *expr)
 
void format_sizeof_expression (FormatterContext *ctx, Expr *expr)
 
void format_array (FormatterContext *ctx, Expr *expr)
 
void format_member (FormatterContext *ctx, Expr *expr)
 
bool format_luma_code (const char *input_path, const char *output_path, FormatterConfig config, ArenaAllocator *allocator)
 
bool check_formatting (const char *filepath, FormatterConfig config, ArenaAllocator *allocator)
 
void print_usage (const char *program_name)
 

Function Documentation

◆ check_formatting()

bool check_formatting ( const char *  filepath,
FormatterConfig  config,
ArenaAllocator allocator 
)

◆ decrease_indent()

void decrease_indent ( FormatterContext ctx)

◆ format_addr_expression()

void format_addr_expression ( FormatterContext ctx,
Expr expr 
)

◆ format_alloc_expression()

void format_alloc_expression ( FormatterContext ctx,
Expr expr 
)

◆ format_array()

void format_array ( FormatterContext ctx,
Expr expr 
)

◆ format_binary_expression()

void format_binary_expression ( FormatterContext ctx,
Expr expr 
)

◆ format_block_statement()

void format_block_statement ( FormatterContext ctx,
Stmt stmt 
)

◆ format_break_continue_statement()

void format_break_continue_statement ( FormatterContext ctx,
Stmt stmt 
)

◆ format_cast_expression()

void format_cast_expression ( FormatterContext ctx,
Expr expr 
)

◆ format_defer_statement()

void format_defer_statement ( FormatterContext ctx,
Stmt stmt 
)

◆ format_deref_expression()

void format_deref_expression ( FormatterContext ctx,
Expr expr 
)

◆ format_enum_definition()

void format_enum_definition ( FormatterContext ctx,
Stmt stmt 
)

◆ format_expr()

void format_expr ( FormatterContext ctx,
Expr expr 
)

◆ format_expr_stmt()

void format_expr_stmt ( FormatterContext ctx,
Stmt stmt 
)

◆ format_field_definition()

void format_field_definition ( FormatterContext ctx,
Stmt stmt 
)

◆ format_free_expression()

void format_free_expression ( FormatterContext ctx,
Expr expr 
)

◆ format_function_call()

void format_function_call ( FormatterContext ctx,
Expr expr 
)

◆ format_function_definition()

void format_function_definition ( FormatterContext ctx,
Stmt stmt 
)

◆ format_grouping_expression()

void format_grouping_expression ( FormatterContext ctx,
Expr expr 
)

◆ format_identifier_expression()

void format_identifier_expression ( FormatterContext ctx,
Expr expr 
)

◆ format_if_statement()

void format_if_statement ( FormatterContext ctx,
Stmt stmt 
)

◆ format_index_expression()

void format_index_expression ( FormatterContext ctx,
Expr expr 
)

◆ format_literal_expression()

void format_literal_expression ( FormatterContext ctx,
Expr expr 
)

◆ format_loop_statement()

void format_loop_statement ( FormatterContext ctx,
Stmt stmt 
)

◆ format_luma_code()

bool format_luma_code ( const char *  input_path,
const char *  output_path,
FormatterConfig  config,
ArenaAllocator allocator 
)

◆ format_member()

void format_member ( FormatterContext ctx,
Expr expr 
)

◆ format_memcpy_expression()

void format_memcpy_expression ( FormatterContext ctx,
Expr expr 
)

◆ format_module_prep()

void format_module_prep ( FormatterContext ctx,
Stmt module 
)

◆ format_node()

void format_node ( FormatterContext ctx,
AstNode node 
)

◆ format_output_statement()

void format_output_statement ( FormatterContext ctx,
Stmt stmt 
)

◆ format_program()

void format_program ( FormatterContext ctx,
Stmt stmt 
)

◆ format_return_statement()

void format_return_statement ( FormatterContext ctx,
Stmt stmt 
)

◆ format_sizeof_expression()

void format_sizeof_expression ( FormatterContext ctx,
Expr expr 
)

◆ format_stmt()

void format_stmt ( FormatterContext ctx,
Stmt stmt 
)

◆ format_struct_definition()

void format_struct_definition ( FormatterContext ctx,
Stmt stmt 
)

◆ format_switch_statement()

void format_switch_statement ( FormatterContext ctx,
Stmt stmt 
)

◆ format_type()

void format_type ( FormatterContext ctx,
Type type 
)

◆ format_unary_expression()

void format_unary_expression ( FormatterContext ctx,
Expr expr 
)

◆ format_use_prep()

void format_use_prep ( FormatterContext ctx,
Stmt use 
)

◆ format_variable_declaration()

void format_variable_declaration ( FormatterContext ctx,
Stmt stmt 
)

◆ increase_indent()

void increase_indent ( FormatterContext ctx)

◆ print_usage()

void print_usage ( const char *  program_name)

◆ write_indent()

void write_indent ( FormatterContext ctx)

◆ write_newline()

void write_newline ( FormatterContext ctx)

◆ write_space()

void write_space ( FormatterContext ctx)

◆ write_string()

void write_string ( FormatterContext ctx,
const char *  str 
)