Skip to content

Commit 9c9ea36

Browse files
committed
AST WIP
1 parent 11536b0 commit 9c9ea36

8 files changed

Lines changed: 136 additions & 117 deletions

File tree

include/ps_ast.h

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -219,19 +219,17 @@ extern "C"
219219
// clang-format off
220220
ps_ast_block *ps_ast_create_block (uint16_t line, uint16_t column, ps_ast_node_kind kind, char *name );
221221
ps_ast_statement_list *ps_ast_create_statement_list (uint16_t line, uint16_t column, size_t count );
222-
ps_ast_assignment *ps_ast_create_assignment (uint16_t line, uint16_t column, ps_ast_node_kind kind, ps_ast_node *variable,ps_ast_node *expression );
222+
ps_ast_assignment *ps_ast_create_assignment (uint16_t line, uint16_t column, ps_ast_node *lvalue,ps_ast_node *expression );
223223
ps_ast_if *ps_ast_create_if (uint16_t line, uint16_t column, ps_ast_node_kind kind, ps_ast_node *condition, ps_ast_statement_list *then_branch, ps_ast_statement_list *else_branch );
224224
ps_ast_while *ps_ast_create_while (uint16_t line, uint16_t column, ps_ast_node_kind kind, ps_ast_node *condition, ps_ast_statement_list *body );
225225
ps_ast_repeat *ps_ast_create_repeat (uint16_t line, uint16_t column, ps_ast_statement_list *body, ps_ast_node *condition );
226226
ps_ast_for *ps_ast_create_for (uint16_t line, uint16_t column, ps_ast_node_group group, ps_ast_node_kind kind, ps_ast_node *variable, ps_ast_node *start, ps_ast_node *end, int step, ps_ast_statement_list *body );
227-
ps_ast_call *ps_ast_create_call (uint16_t line, uint16_t column, ps_ast_node_kind kind, ps_symbol *executable, size_t n_args, ps_ast_argument *args[] );
227+
ps_ast_call *ps_ast_create_call (uint16_t line, uint16_t column, ps_ast_node_kind kind, ps_symbol *executable, size_t n_args, ps_ast_argument *args[] );
228228
ps_ast_unary_operation *ps_ast_create_unary_operation (uint16_t line, uint16_t column, ps_operator_unary operator, ps_ast_node * operand );
229229
ps_ast_binary_operation *ps_ast_create_binary_operation (uint16_t line, uint16_t column, ps_operator_binary operator, ps_ast_node * left, ps_ast_node *right );
230230
ps_ast_value *ps_ast_create_rvalue_const (uint16_t line, uint16_t column, ps_value value );
231-
ps_ast_variable_simple *ps_ast_create_variable_simple (uint16_t line, uint16_t column, ps_symbol *variable );
232-
ps_ast_variable_array *ps_ast_create_variable_array (uint16_t line, uint16_t column, ps_symbol *symbol, size_t n_indexes, ps_ast_node *indexes );
233-
ps_ast_variable_simple *ps_ast_create_lvalue_simple (uint16_t line, uint16_t column, ps_symbol *variable );
234-
ps_ast_variable_array *ps_ast_create_lvalue_array (uint16_t line, uint16_t column, ps_symbol *symbol, size_t n_indexes, ps_ast_node *indexes );
231+
ps_ast_variable_simple *ps_ast_create_variable_simple (uint16_t line, uint16_t column, ps_ast_node_kind kind, ps_symbol *variable );
232+
ps_ast_variable_array *ps_ast_create_variable_array (uint16_t line, uint16_t column, ps_ast_node_kind kind, ps_symbol *symbol, size_t n_indexes, ps_ast_node *indexes );
235233
// clang-format on
236234

237235
/** @brief Free an AST node and all its children */

include/ps_interpreter.h

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111

1212
#include "ps_environment.h"
1313
#include "ps_error.h"
14-
#include "ps_parser.h"
1514
#include "ps_string_heap.h"
1615
#include "ps_value.h"
1716

@@ -27,13 +26,6 @@ extern "C"
2726
#define PS_INTERPRETER_ENVIRONMENT_SYSTEM 0u
2827
#define PS_INTERPRETER_ENVIRONMENT_PROGRAM 1u
2928

30-
typedef enum e_ps_interpreter_mode
31-
{
32-
MODE_EXEC, /** @brief Execute instructions */
33-
MODE_SKIP, /** @brief Skip execution but parse declarations */
34-
MODE_CODE, /** @brief *FUTURE* Output AST / intermediate language / whatever */
35-
} ps_interpreter_mode;
36-
3729
typedef enum e_ps_interpreter_debug
3830
{
3931
DEBUG_NONE, /** @brief No debug */

0 commit comments

Comments
 (0)