|
Zen-C
|
#include "parser.h"#include <ctype.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include "../ast/ast.h"#include "../plugins/plugin_manager.h"#include "../zen/zen_facts.h"#include "zprep_plugin.h"#include "../codegen/codegen.h"
Macros | |
| #define | APPEND_STMT(node) |
Functions | |
| char * | run_comptime_block (ParserContext *ctx, Lexer *l) |
| ASTNode * | parse_match (ParserContext *ctx, Lexer *l) |
| Parses a match statement. | |
| ASTNode * | parse_loop (ParserContext *ctx, Lexer *l) |
| Parses a loop. | |
| ASTNode * | parse_repeat (ParserContext *ctx, Lexer *l) |
| Parses a repeat loop. | |
| ASTNode * | parse_unless (ParserContext *ctx, Lexer *l) |
| Parses an unless statement. | |
| ASTNode * | parse_guard (ParserContext *ctx, Lexer *l) |
| Parses a guard statement. | |
| ASTNode * | parse_defer (ParserContext *ctx, Lexer *l) |
| Parses a defer statement. | |
| ASTNode * | parse_asm (ParserContext *ctx, Lexer *l) |
| Parses an asm statement. | |
| ASTNode * | parse_test (ParserContext *ctx, Lexer *l) |
| Parses a test definition. | |
| ASTNode * | parse_assert (ParserContext *ctx, Lexer *l) |
| Parses an assert statement. | |
| ASTNode * | parse_return (ParserContext *ctx, Lexer *l) |
| Parses a return statement. | |
| ASTNode * | parse_if (ParserContext *ctx, Lexer *l) |
| Parses an if statement. | |
| ASTNode * | parse_while (ParserContext *ctx, Lexer *l) |
| Parses a while loop. | |
| ASTNode * | parse_for (ParserContext *ctx, Lexer *l) |
| Parses a for loop. | |
| char * | process_printf_sugar (ParserContext *ctx, const char *content, int newline, const char *target, char ***used_syms, int *count, int check_symbols) |
| Processes a formatted string. | |
| ASTNode * | parse_macro_call (ParserContext *ctx, Lexer *l, char *macro_name) |
| Parses a macro call. | |
| ASTNode * | parse_statement (ParserContext *ctx, Lexer *l) |
| Parses a statement. | |
| ASTNode * | parse_block (ParserContext *ctx, Lexer *l) |
| Parses a block of statements { ... }. | |
| ASTNode * | parse_include (ParserContext *ctx, Lexer *l) |
| Parses an include statement. | |
| ASTNode * | parse_import (ParserContext *ctx, Lexer *l) |
| Parses an import statement. | |
| ASTNode * | parse_comptime (ParserContext *ctx, Lexer *l) |
| Parses a comptime statement. | |
| ASTNode * | parse_plugin (ParserContext *ctx, Lexer *l) |
| Parses a plugin statement. | |
Variables | |
| char * | curr_func_ret = NULL |
| char * | g_current_filename |
| #define APPEND_STMT | ( | node | ) |
| ASTNode * parse_asm | ( | ParserContext * | ctx, |
| Lexer * | l | ||
| ) |
Parses an asm statement.


| ASTNode * parse_assert | ( | ParserContext * | ctx, |
| Lexer * | l | ||
| ) |
Parses an assert statement.


| ASTNode * parse_block | ( | ParserContext * | ctx, |
| Lexer * | l | ||
| ) |
Parses a block of statements { ... }.


| ASTNode * parse_comptime | ( | ParserContext * | ctx, |
| Lexer * | l | ||
| ) |
Parses a comptime statement.


| ASTNode * parse_defer | ( | ParserContext * | ctx, |
| Lexer * | l | ||
| ) |
Parses a defer statement.


| ASTNode * parse_for | ( | ParserContext * | ctx, |
| Lexer * | l | ||
| ) |
Parses a for loop.


| ASTNode * parse_guard | ( | ParserContext * | ctx, |
| Lexer * | l | ||
| ) |
Parses a guard statement.


| ASTNode * parse_if | ( | ParserContext * | ctx, |
| Lexer * | l | ||
| ) |
Parses an if statement.


| ASTNode * parse_import | ( | ParserContext * | ctx, |
| Lexer * | l | ||
| ) |
Parses an import statement.


| ASTNode * parse_include | ( | ParserContext * | ctx, |
| Lexer * | l | ||
| ) |
Parses an include statement.


| ASTNode * parse_loop | ( | ParserContext * | ctx, |
| Lexer * | l | ||
| ) |
Parses a loop.


| ASTNode * parse_macro_call | ( | ParserContext * | ctx, |
| Lexer * | l, | ||
| char * | macro_name | ||
| ) |
Parses a macro call.


| ASTNode * parse_match | ( | ParserContext * | ctx, |
| Lexer * | l | ||
| ) |
Parses a match statement.


| ASTNode * parse_plugin | ( | ParserContext * | ctx, |
| Lexer * | l | ||
| ) |
Parses a plugin statement.


| ASTNode * parse_repeat | ( | ParserContext * | ctx, |
| Lexer * | l | ||
| ) |
Parses a repeat loop.


| ASTNode * parse_return | ( | ParserContext * | ctx, |
| Lexer * | l | ||
| ) |
Parses a return statement.


| ASTNode * parse_statement | ( | ParserContext * | ctx, |
| Lexer * | l | ||
| ) |
Parses a statement.


| ASTNode * parse_test | ( | ParserContext * | ctx, |
| Lexer * | l | ||
| ) |
Parses a test definition.


| ASTNode * parse_unless | ( | ParserContext * | ctx, |
| Lexer * | l | ||
| ) |
Parses an unless statement.


| ASTNode * parse_while | ( | ParserContext * | ctx, |
| Lexer * | l | ||
| ) |
Parses a while loop.


| char * process_printf_sugar | ( | ParserContext * | ctx, |
| const char * | content, | ||
| int | newline, | ||
| const char * | target, | ||
| char *** | used_syms, | ||
| int * | count, | ||
| int | check_symbols | ||
| ) |
Processes a formatted string.


| char * run_comptime_block | ( | ParserContext * | ctx, |
| Lexer * | l | ||
| ) |


| char* curr_func_ret = NULL |
|
extern |