Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
14 changes: 7 additions & 7 deletions program.c
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@
#include <stdlib.h>

void main() {
float pi = 3.000000;
printf("%d", 5);
printf("%f", 3.000000);
printf("%d", 3);
printf("%s%s%s%s", "hi", "hoo", "aaa", "bbb");
printf("%d", pi);
printf("%d\n", 11+11);
float pi = 3.000000;
printf("%d", 5);
printf("%f", 3.000000);
printf("%d", 3);
printf("%s%s%s%s", "hi", "hoo", "aaa", "bbb");
printf("%d", pi);
printf("%d\n", 11 + 11);
}
9 changes: 5 additions & 4 deletions src/base.h
Original file line number Diff line number Diff line change
Expand Up @@ -52,11 +52,12 @@
#define BRIGHT_CYAN "\033[96m"
#define BRIGHT_WHITE "\033[97m"

#include <stdbool.h> // for bool, true, false
#include <stddef.h> // for size_t
#include <stdio.h> // for printf
#include <stdbool.h> // for bool, true, false
#include <stddef.h> // for size_t
#include <stdio.h> // for printf

#define DEBUG_ME printf(GRAY "DEBUG: %s:%d in %s\n" RESET, __FILE__, __LINE__, __func__)
#define DEBUG_ME \
printf(GRAY "DEBUG: %s:%d in %s\n" RESET, __FILE__, __LINE__, __func__)
// #define DEBUG_ME

#define SALAM_VERSION "0.1"
Expand Down
2 changes: 1 addition & 1 deletion src/base_all.h
Original file line number Diff line number Diff line change
Expand Up @@ -403,4 +403,4 @@
#include <utility/utf8/utf8_is_valid/utf8_is_valid.h>
#include <utility/utf8/utf8_strlen/utf8_strlen.h>

#endif // _BASE_ALL_H_
#endif // _BASE_ALL_H_
3 changes: 1 addition & 2 deletions src/main.c
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
#include "main.h"

int main(int argc, char** argv)
{
int main(int argc, char** argv) {
if (argc < 2) {
log_fatal("Error: please run ./salam <filename>\n");
}
Expand Down
22 changes: 11 additions & 11 deletions src/main.h
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
#ifndef _MAIN_H_
#define _MAIN_H_

#include <stdio.h> // for printf
#include <stdio.h> // for printf

// ---------- utility
// file
#include <utility/file/file_reads/file_reads.h>
#include <utility/file/file_exists/file_exists.h>
#include <utility/file/file_reads/file_reads.h>
#include <utility/file/file_write/file_write.h>

// memory
Expand All @@ -20,30 +20,30 @@

// ---------- stage
// scanner
#include <stage/scanner/type.h>
#include <stage/scanner/scanner_create/scanner_create.h>
#include <stage/scanner/scanner_destroy/scanner_destroy.h>
#include <stage/scanner/scanner_json/scanner_json.h>
#include <stage/scanner/scanner_log/scanner_log.h>
#include <stage/scanner/scanner_set/scanner_set.h>
#include <stage/scanner/scanner_scan/scanner_scan.h>
#include <stage/scanner/scanner_json/scanner_json.h>
#include <stage/scanner/scanner_set/scanner_set.h>
#include <stage/scanner/type.h>

// parser
#include <stage/parser/type.h>
#include <stage/parser/parser_create/parser_create.h>
#include <stage/parser/parser_log/parser_log.h>
#include <stage/parser/parser_destroy/parser_destroy.h>
#include <stage/parser/parser_log/parser_log.h>
#include <stage/parser/parser_parse/parser_parse_all/parser_parse_all.h>
#include <stage/parser/type.h>

// ast
#include <stage/ast/type.h>
#include <stage/ast/ast_create/ast_create.h>
#include <stage/ast/ast_log/ast_log.h>
#include <stage/ast/ast_json/ast_json.h>
#include <stage/ast/ast_destroy/ast_destroy.h>
#include <stage/ast/ast_json/ast_json.h>
#include <stage/ast/ast_log/ast_log.h>
#include <stage/ast/type.h>

// generator

int main(int argc, char** argv);

#endif // _MAIN_H_
#endif // _MAIN_H_
3 changes: 1 addition & 2 deletions src/stage/ast/ast_alloc/ast_alloc.c
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
#include <stage/ast/ast_alloc/ast_alloc.h>

ast_t* ast_alloc(ast_node_type_t type)
{
ast_t* ast_alloc(ast_node_type_t type) {
ast_t* ast = memory_calloc(1, sizeof(ast_t));
ast->base.type = type;
return ast;
Expand Down
2 changes: 1 addition & 1 deletion src/stage/ast/ast_alloc/ast_alloc.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,4 @@

ast_t* ast_alloc(ast_node_type_t type);

#endif // _STAGE_AST_AST_ALLOC_AST_ALLOC_H_
#endif // _STAGE_AST_AST_ALLOC_AST_ALLOC_H_
3 changes: 1 addition & 2 deletions src/stage/ast/ast_create/ast_create.c
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
#include <stage/ast/ast_create/ast_create.h>

ast_t* ast_create()
{
ast_t* ast_create() {
ast_t* ast = memory_allocation(sizeof(ast_t));
return ast;
}
2 changes: 1 addition & 1 deletion src/stage/ast/ast_create/ast_create.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,4 @@

ast_t* ast_create();

#endif // _STAGE_AST_AST_CREATE_AST_CREATE_H_
#endif // _STAGE_AST_AST_CREATE_AST_CREATE_H_
27 changes: 17 additions & 10 deletions src/stage/ast/ast_destroy/ast_destroy.c
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
#include <stage/ast/ast_destroy/ast_destroy.h>

void ast_destroy(ast_t* ast)
{
void ast_destroy(ast_t* ast) {
DEBUG_ME;
if (!ast) return;

Expand Down Expand Up @@ -139,31 +138,36 @@ void ast_destroy(ast_t* ast)
break;

case AST_TYPE_EXPRESSION_LITERAL:
ast_expression_literal_direct_destroy(ast->raw.expression_literal_value);
ast_expression_literal_direct_destroy(
ast->raw.expression_literal_value);
memory_destroy(ast);
return;
break;

case AST_TYPE_EXPRESSION_IDENTIFIER:
ast_expression_identifier_direct_destroy(ast->raw.expression_identifier_value);
ast_expression_identifier_direct_destroy(
ast->raw.expression_identifier_value);
memory_destroy(ast);
return;
break;

case AST_TYPE_EXPRESSION_BINARY:
ast_expression_binary_direct_destroy(ast->raw.expression_binary_value);
ast_expression_binary_direct_destroy(
ast->raw.expression_binary_value);
memory_destroy(ast);
return;
break;

case AST_TYPE_EXPRESSION_UNARY:
ast_expression_unary_direct_destroy(ast->raw.expression_unary_value);
ast_expression_unary_direct_destroy(
ast->raw.expression_unary_value);
memory_destroy(ast);
return;
break;

case AST_TYPE_EXPRESSION_INDEX:
ast_expression_index_direct_destroy(ast->raw.expression_index_value);
ast_expression_index_direct_destroy(
ast->raw.expression_index_value);
memory_destroy(ast);
return;
break;
Expand All @@ -187,7 +191,8 @@ void ast_destroy(ast_t* ast)
break;

case AST_TYPE_STATEMENT_FOREACH:
ast_statement_foreach_direct_destroy(ast->raw.statement_foreach_value);
ast_statement_foreach_direct_destroy(
ast->raw.statement_foreach_value);
memory_destroy(ast);
return;
break;
Expand All @@ -211,13 +216,15 @@ void ast_destroy(ast_t* ast)
break;

case AST_TYPE_STATEMENT_VARIABLE_DECL:
ast_statement_variable_decl_direct_destroy(ast->raw.statement_variable_decl_value);
ast_statement_variable_decl_direct_destroy(
ast->raw.statement_variable_decl_value);
memory_destroy(ast);
return;
break;

case AST_TYPE_STATEMENT_EXPRESSION:
ast_statement_expression_direct_destroy(ast->raw.statement_expression_value);
ast_statement_expression_direct_destroy(
ast->raw.statement_expression_value);
memory_destroy(ast);
return;
break;
Expand Down
51 changes: 23 additions & 28 deletions src/stage/ast/ast_destroy/ast_destroy.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,44 +11,39 @@
#include <utility/log/log_fatal/log_fatal.h>

// ast
#include <stage/ast/type.h>

#include <stage/ast/asts/ast_variable_decl/ast_variable_decl_direct_destroy/ast_variable_decl_direct_destroy.h>
#include <stage/ast/asts/ast_function_decl/ast_function_decl_direct_destroy/ast_function_decl_direct_destroy.h>
#include <stage/ast/asts/ast_block/ast_block_direct_destroy/ast_block_direct_destroy.h>
#include <stage/ast/asts/ast_program/ast_program_direct_destroy/ast_program_direct_destroy.h>
#include <stage/ast/asts/ast_parameter/ast_parameter_item/ast_parameter_item_direct_destroy/ast_parameter_item_direct_destroy.h>
#include <stage/ast/asts/ast_parameter/ast_parameters/ast_parameters_direct_destroy/ast_parameters_direct_destroy.h>
#include <stage/ast/asts/ast_attribute/ast_attribute_item/ast_attribute_item_direct_destroy/ast_attribute_item_direct_destroy.h>
#include <stage/ast/asts/ast_attribute/ast_attributes/ast_attributes_direct_destroy/ast_attributes_direct_destroy.h>
#include <stage/ast/asts/ast_argument/ast_argument_item/ast_argument_item_direct_destroy/ast_argument_item_direct_destroy.h>
#include <stage/ast/asts/ast_argument/ast_arguments/ast_arguments_direct_destroy/ast_arguments_direct_destroy.h>

#include <stage/ast/asts/ast_package/ast_package_direct_destroy/ast_package_direct_destroy.h>
#include <stage/ast/asts/ast_attribute/ast_attribute_item/ast_attribute_item_direct_destroy/ast_attribute_item_direct_destroy.h>
#include <stage/ast/asts/ast_attribute/ast_attributes/ast_attributes_direct_destroy/ast_attributes_direct_destroy.h>
#include <stage/ast/asts/ast_block/ast_block_direct_destroy/ast_block_direct_destroy.h>
#include <stage/ast/asts/ast_expression/ast_expression_binary/ast_expression_binary_direct_destroy/ast_expression_binary_direct_destroy.h>
#include <stage/ast/asts/ast_expression/ast_expression_call/ast_expression_call_direct_destroy/ast_expression_call_direct_destroy.h>
#include <stage/ast/asts/ast_expression/ast_expression_identifier/ast_expression_identifier_direct_destroy/ast_expression_identifier_direct_destroy.h>
#include <stage/ast/asts/ast_expression/ast_expression_index/ast_expression_index_direct_destroy/ast_expression_index_direct_destroy.h>
#include <stage/ast/asts/ast_expression/ast_expression_item/ast_expression_item_direct_destroy/ast_expression_item_direct_destroy.h>
#include <stage/ast/asts/ast_expression/ast_expression_literal/ast_expression_literal_direct_destroy/ast_expression_literal_direct_destroy.h>
#include <stage/ast/asts/ast_expression/ast_expression_unary/ast_expression_unary_direct_destroy/ast_expression_unary_direct_destroy.h>
#include <stage/ast/asts/ast_expression/ast_expressions/ast_expressions_direct_destroy/ast_expressions_direct_destroy.h>
#include <stage/ast/asts/ast_function_decl/ast_function_decl_direct_destroy/ast_function_decl_direct_destroy.h>
#include <stage/ast/asts/ast_import/ast_import_direct_destroy/ast_import_direct_destroy.h>

#include <stage/ast/asts/ast_kind/ast_kind_decl/ast_kind_decl_direct_destroy/ast_kind_decl_direct_destroy.h>
#include <stage/ast/asts/ast_kind/ast_kind_struct/ast_kind_struct_direct_destroy/ast_kind_struct_direct_destroy.h>
#include <stage/ast/asts/ast_kind/ast_kind_enum/ast_kind_enum_direct_destroy/ast_kind_enum_direct_destroy.h>
#include <stage/ast/asts/ast_kind/ast_kind_struct/ast_kind_struct_direct_destroy/ast_kind_struct_direct_destroy.h>
#include <stage/ast/asts/ast_kind/ast_kind_union/ast_kind_union_direct_destroy/ast_kind_union_direct_destroy.h>

#include <stage/ast/asts/ast_expression/ast_expressions/ast_expressions_direct_destroy/ast_expressions_direct_destroy.h>
#include <stage/ast/asts/ast_expression/ast_expression_item/ast_expression_item_direct_destroy/ast_expression_item_direct_destroy.h>
#include <stage/ast/asts/ast_expression/ast_expression_literal/ast_expression_literal_direct_destroy/ast_expression_literal_direct_destroy.h>
#include <stage/ast/asts/ast_expression/ast_expression_identifier/ast_expression_identifier_direct_destroy/ast_expression_identifier_direct_destroy.h>
#include <stage/ast/asts/ast_expression/ast_expression_binary/ast_expression_binary_direct_destroy/ast_expression_binary_direct_destroy.h>
#include <stage/ast/asts/ast_expression/ast_expression_unary/ast_expression_unary_direct_destroy/ast_expression_unary_direct_destroy.h>
#include <stage/ast/asts/ast_expression/ast_expression_index/ast_expression_index_direct_destroy/ast_expression_index_direct_destroy.h>
#include <stage/ast/asts/ast_expression/ast_expression_call/ast_expression_call_direct_destroy/ast_expression_call_direct_destroy.h>

#include <stage/ast/asts/ast_statement/ast_statement_if/ast_statement_if_direct_destroy/ast_statement_if_direct_destroy.h>
#include <stage/ast/asts/ast_package/ast_package_direct_destroy/ast_package_direct_destroy.h>
#include <stage/ast/asts/ast_parameter/ast_parameter_item/ast_parameter_item_direct_destroy/ast_parameter_item_direct_destroy.h>
#include <stage/ast/asts/ast_parameter/ast_parameters/ast_parameters_direct_destroy/ast_parameters_direct_destroy.h>
#include <stage/ast/asts/ast_program/ast_program_direct_destroy/ast_program_direct_destroy.h>
#include <stage/ast/asts/ast_statement/ast_statement_expression/ast_statement_expression_direct_destroy/ast_statement_expression_direct_destroy.h>
#include <stage/ast/asts/ast_statement/ast_statement_for/ast_statement_for_direct_destroy/ast_statement_for_direct_destroy.h>
#include <stage/ast/asts/ast_statement/ast_statement_foreach/ast_statement_foreach_direct_destroy/ast_statement_foreach_direct_destroy.h>
#include <stage/ast/asts/ast_statement/ast_statement_return/ast_statement_return_direct_destroy/ast_statement_return_direct_destroy.h>
#include <stage/ast/asts/ast_statement/ast_statement_if/ast_statement_if_direct_destroy/ast_statement_if_direct_destroy.h>
#include <stage/ast/asts/ast_statement/ast_statement_print/ast_statement_print_direct_destroy/ast_statement_print_direct_destroy.h>
#include <stage/ast/asts/ast_statement/ast_statement_return/ast_statement_return_direct_destroy/ast_statement_return_direct_destroy.h>
#include <stage/ast/asts/ast_statement/ast_statement_variable_decl/ast_statement_variable_decl_direct_destroy/ast_statement_variable_decl_direct_destroy.h>
#include <stage/ast/asts/ast_statement/ast_statement_expression/ast_statement_expression_direct_destroy/ast_statement_expression_direct_destroy.h>
#include <stage/ast/asts/ast_variable_decl/ast_variable_decl_direct_destroy/ast_variable_decl_direct_destroy.h>
#include <stage/ast/type.h>

void ast_destroy(ast_t* ast);

#endif // _STAGE_AST_AST_DESTROY_AST_DESTROY_H_
#endif // _STAGE_AST_AST_DESTROY_AST_DESTROY_H_
Loading
Loading