updated stuff in ast
This commit is contained in:
parent
27067e158e
commit
7ac90bac55
20 changed files with 171 additions and 150 deletions
|
|
@ -1,11 +1,11 @@
|
||||||
SRC_FILES = \
|
SRC_FILES = \
|
||||||
|
_not_done_function \
|
||||||
|
_not_done_print \
|
||||||
ast_alloc/ast_alloc \
|
ast_alloc/ast_alloc \
|
||||||
ast_alloc/ast_alloc_scripting \
|
ast_alloc/ast_alloc_scripting \
|
||||||
ast_free/ast_free \
|
ast_free/ast_free \
|
||||||
ast_free/ast_free_scripting \
|
ast_free/ast_free_scripting \
|
||||||
from_node/from_node \
|
from_node/from_node \
|
||||||
not_done_function \
|
|
||||||
not_done_print \
|
|
||||||
print_ast/ast_print_command \
|
print_ast/ast_print_command \
|
||||||
print_ast/ast_print_global \
|
print_ast/ast_print_global \
|
||||||
print_ast/ast_print_node \
|
print_ast/ast_print_node \
|
||||||
|
|
|
||||||
|
|
@ -1,17 +1,17 @@
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
/* */
|
/* */
|
||||||
/* ::: :::::::: */
|
/* ::: :::::::: */
|
||||||
/* ast_forward_def.h :+: :+: :+: */
|
/* _forward_def.h :+: :+: :+: */
|
||||||
/* +:+ +:+ +:+ */
|
/* +:+ +:+ +:+ */
|
||||||
/* By: maiboyer <maiboyer@student.42.fr> +#+ +:+ +#+ */
|
/* By: maiboyer <maiboyer@student.42.fr> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2024/06/11 14:24:24 by maiboyer #+# #+# */
|
/* Created: 2024/06/11 14:24:24 by maiboyer #+# #+# */
|
||||||
/* Updated: 2024/07/22 16:52:42 by rparodi ### ########.fr */
|
/* Updated: 2024/08/02 17:04:12 by maiboyer ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
#ifndef AST_FORWARD_DEF_H
|
#ifndef _FORWARD_DEF_H
|
||||||
# define AST_FORWARD_DEF_H
|
# define _FORWARD_DEF_H
|
||||||
|
|
||||||
typedef enum e_ast_node_kind t_ast_node_kind;
|
typedef enum e_ast_node_kind t_ast_node_kind;
|
||||||
typedef enum e_ast_word_kind t_ast_word_kind;
|
typedef enum e_ast_word_kind t_ast_word_kind;
|
||||||
128
ast/include/ast/_from_node.h
Normal file
128
ast/include/ast/_from_node.h
Normal file
|
|
@ -0,0 +1,128 @@
|
||||||
|
/* ************************************************************************** */
|
||||||
|
/* */
|
||||||
|
/* ::: :::::::: */
|
||||||
|
/* _from_node.h :+: :+: :+: */
|
||||||
|
/* +:+ +:+ +:+ */
|
||||||
|
/* By: maiboyer <maiboyer@student.42.fr> +#+ +:+ +#+ */
|
||||||
|
/* +#+#+#+#+#+ +#+ */
|
||||||
|
/* Created: 2024/08/02 16:54:31 by maiboyer #+# #+# */
|
||||||
|
/* Updated: 2024/08/02 17:00:38 by maiboyer ### ########.fr */
|
||||||
|
/* */
|
||||||
|
/* ************************************************************************** */
|
||||||
|
|
||||||
|
#ifndef _FROM_NODE_H
|
||||||
|
# define _FROM_NODE_H
|
||||||
|
|
||||||
|
# include "ast/ast.h"
|
||||||
|
# include "me/types.h"
|
||||||
|
# include "parser/api.h"
|
||||||
|
|
||||||
|
void _add_negation(t_ast_node *node);
|
||||||
|
void _append_redirection(t_ast_node node,
|
||||||
|
t_ast_node redirection);
|
||||||
|
t_ast_expansion_operator _extract_exp_op(t_parse_node self);
|
||||||
|
t_str _extract_str(t_parse_node self, t_const_str input);
|
||||||
|
t_ast_redirection_kind _get_redirection_op(t_parse_node self);
|
||||||
|
t_ast_arithmetic_operator _parse_operator(t_parse_node self);
|
||||||
|
t_ast_terminator_kind _select_term(t_parse_node node);
|
||||||
|
t_vec_ast *_vec_command(t_ast_command *val, t_usize i);
|
||||||
|
t_error ast_from_node(t_parse_node node, t_const_str input,
|
||||||
|
t_ast_node *out);
|
||||||
|
void ast_set_term(t_ast_node *node,
|
||||||
|
t_ast_terminator_kind term);
|
||||||
|
t_error build_sym__case_item_last(t_parse_node self,
|
||||||
|
t_const_str input, t_ast_node *out);
|
||||||
|
t_error build_sym_arithmetic_binary_expression(\
|
||||||
|
t_parse_node self, t_const_str input, t_ast_node *out);
|
||||||
|
t_error build_sym_arithmetic_expansion(t_parse_node self,
|
||||||
|
t_const_str input, t_ast_node *out);
|
||||||
|
t_error build_sym_arithmetic_literal(t_parse_node self,
|
||||||
|
t_const_str input, t_ast_node *out);
|
||||||
|
t_error build_sym_arithmetic_parenthesized_expression(\
|
||||||
|
t_parse_node self, t_const_str input, t_ast_node *out);
|
||||||
|
t_error build_sym_arithmetic_postfix_expression(\
|
||||||
|
t_parse_node self, t_const_str input, t_ast_node *out);
|
||||||
|
t_error build_sym_arithmetic_ternary_expression(\
|
||||||
|
t_parse_node self, t_const_str input, t_ast_node *out);
|
||||||
|
t_error build_sym_arithmetic_unary_expression(\
|
||||||
|
t_parse_node self, t_const_str input, t_ast_node *out);
|
||||||
|
t_error build_sym_case_item(t_parse_node self,
|
||||||
|
t_const_str input, t_ast_node *out);
|
||||||
|
t_error build_sym_case_statement(t_parse_node self,
|
||||||
|
t_const_str input, t_ast_node *out);
|
||||||
|
t_error build_sym_command(t_parse_node self,
|
||||||
|
t_const_str input, t_ast_node *out);
|
||||||
|
t_error build_sym_command_name(t_parse_node self,
|
||||||
|
t_const_str input, t_ast_node *out);
|
||||||
|
t_error build_sym_command_substitution(t_parse_node self,
|
||||||
|
t_const_str input, t_ast_node *out);
|
||||||
|
t_error build_sym_comment(t_parse_node self,
|
||||||
|
t_const_str input, t_ast_node *out);
|
||||||
|
t_error build_sym_compound_statement(t_parse_node self,
|
||||||
|
t_const_str input, t_ast_node *out);
|
||||||
|
t_error build_sym_concatenation(t_parse_node self,
|
||||||
|
t_const_str input, t_ast_node *out);
|
||||||
|
t_error build_sym_do_group(t_parse_node self,
|
||||||
|
t_const_str input, t_ast_node *out);
|
||||||
|
t_error build_sym_elif_clause(t_parse_node self,
|
||||||
|
t_const_str input, t_ast_node *out);
|
||||||
|
t_error build_sym_else_clause(t_parse_node self,
|
||||||
|
t_const_str input, t_ast_node *out);
|
||||||
|
t_error build_sym_expansion(t_parse_node self,
|
||||||
|
t_const_str input, t_ast_node *out);
|
||||||
|
t_error build_sym_extglob_pattern(t_parse_node self,
|
||||||
|
t_const_str input, t_ast_node *out);
|
||||||
|
t_error build_sym_file_descriptor(t_parse_node self,
|
||||||
|
t_const_str input, t_ast_node *out);
|
||||||
|
t_error build_sym_file_redirect(t_parse_node self,
|
||||||
|
t_const_str input, t_ast_node *out);
|
||||||
|
t_error build_sym_for_statement(t_parse_node self,
|
||||||
|
t_const_str input, t_ast_node *out);
|
||||||
|
t_error build_sym_function_definition(t_parse_node self,
|
||||||
|
t_const_str input, t_ast_node *out);
|
||||||
|
t_error build_sym_if_statement(t_parse_node self,
|
||||||
|
t_const_str input, t_ast_node *out);
|
||||||
|
t_error build_sym_heredoc_redirect(\
|
||||||
|
t_parse_node self, t_const_str input, t_ast_node *out);
|
||||||
|
t_error build_sym_simple_heredoc_body(\
|
||||||
|
t_parse_node self, t_const_str input, t_ast_node *out);
|
||||||
|
t_error build_sym_heredoc_body(\
|
||||||
|
t_parse_node self, t_const_str input, t_ast_node *out);
|
||||||
|
t_error build_sym_heredoc_content(\
|
||||||
|
t_parse_node self, t_const_str input, t_ast_node *out);
|
||||||
|
t_error build_sym_heredoc_end(\
|
||||||
|
t_parse_node self, t_const_str input, t_ast_node *out);
|
||||||
|
t_error build_sym_heredoc_start(\
|
||||||
|
t_parse_node self, t_const_str input, t_ast_node *out);
|
||||||
|
t_error build_sym_list(t_parse_node self, t_const_str input,
|
||||||
|
t_ast_node *out);
|
||||||
|
t_error build_sym_negated_command(t_parse_node self,
|
||||||
|
t_const_str input, t_ast_node *out);
|
||||||
|
t_error build_sym_number(t_parse_node self,
|
||||||
|
t_const_str input, t_ast_node *out);
|
||||||
|
t_error build_sym_pipeline(t_parse_node self,
|
||||||
|
t_const_str input, t_ast_node *out);
|
||||||
|
t_error build_sym_program(t_parse_node self,
|
||||||
|
t_const_str input, t_ast_node *out);
|
||||||
|
t_error build_sym_raw_string(t_parse_node self,
|
||||||
|
t_const_str input, t_ast_node *out);
|
||||||
|
t_error build_sym_redirected_statement(t_parse_node self,
|
||||||
|
t_const_str input, t_ast_node *out);
|
||||||
|
t_error build_sym_regex(t_parse_node self,
|
||||||
|
t_const_str input, t_ast_node *out);
|
||||||
|
t_error build_sym_simple_expansion(t_parse_node self,
|
||||||
|
t_const_str input, t_ast_node *out);
|
||||||
|
t_error build_sym_string(t_parse_node self,
|
||||||
|
t_const_str input, t_ast_node *out);
|
||||||
|
t_error build_sym_string_content(t_parse_node self,
|
||||||
|
t_const_str input, t_ast_node *out);
|
||||||
|
t_error build_sym_subshell(t_parse_node self,
|
||||||
|
t_const_str input, t_ast_node *out);
|
||||||
|
t_error build_sym_variable_assignment(t_parse_node self,
|
||||||
|
t_const_str input, t_ast_node *out);
|
||||||
|
t_error build_sym_while_statement(t_parse_node self,
|
||||||
|
t_const_str input, t_ast_node *out);
|
||||||
|
t_error build_sym_word(t_parse_node self, t_const_str input,
|
||||||
|
t_ast_node *out);
|
||||||
|
|
||||||
|
#endif /* _FROM_NODE_H */
|
||||||
|
|
@ -1,17 +1,17 @@
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
/* */
|
/* */
|
||||||
/* ::: :::::::: */
|
/* ::: :::::::: */
|
||||||
/* _function_declaration.h :+: :+: :+: */
|
/* _print_ast.h :+: :+: :+: */
|
||||||
/* +:+ +:+ +:+ */
|
/* +:+ +:+ +:+ */
|
||||||
/* By: rparodi <rparodi@student.42.fr> +#+ +:+ +#+ */
|
/* By: rparodi <rparodi@student.42.fr> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2024/07/26 11:30:24 by rparodi #+# #+# */
|
/* Created: 2024/07/26 11:30:24 by rparodi #+# #+# */
|
||||||
/* Updated: 2024/07/30 16:59:21 by maiboyer ### ########.fr */
|
/* Updated: 2024/08/02 17:04:04 by maiboyer ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
#ifndef _FUNCTION_DECLARATION_H
|
#ifndef _PRINT_AST_H
|
||||||
# define _FUNCTION_DECLARATION_H
|
# define _PRINT_AST_H
|
||||||
|
|
||||||
# include "ast/ast.h"
|
# include "ast/ast.h"
|
||||||
# include "me/types.h"
|
# include "me/types.h"
|
||||||
|
|
@ -1,19 +1,19 @@
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
/* */
|
/* */
|
||||||
/* ::: :::::::: */
|
/* ::: :::::::: */
|
||||||
/* ast_raw_structs.h :+: :+: :+: */
|
/* _raw_structs.h :+: :+: :+: */
|
||||||
/* +:+ +:+ +:+ */
|
/* +:+ +:+ +:+ */
|
||||||
/* By: maiboyer <maiboyer@student.42.fr> +#+ +:+ +#+ */
|
/* By: maiboyer <maiboyer@student.42.fr> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2024/06/14 17:46:58 by maiboyer #+# #+# */
|
/* Created: 2024/06/14 17:46:58 by maiboyer #+# #+# */
|
||||||
/* Updated: 2024/08/01 09:34:59 by maiboyer ### ########.fr */
|
/* Updated: 2024/08/02 17:03:50 by maiboyer ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
#ifndef AST_RAW_STRUCTS_H
|
#ifndef _RAW_STRUCTS_H
|
||||||
# define AST_RAW_STRUCTS_H
|
# define _RAW_STRUCTS_H
|
||||||
|
|
||||||
# include "ast/ast_forward_def.h"
|
# include "ast/_forward_def.h"
|
||||||
# include "me/types.h"
|
# include "me/types.h"
|
||||||
# include "me/vec/vec_ast.h"
|
# include "me/vec/vec_ast.h"
|
||||||
|
|
||||||
|
|
@ -6,15 +6,15 @@
|
||||||
/* By: maiboyer <maiboyer@student.42.fr> +#+ +:+ +#+ */
|
/* By: maiboyer <maiboyer@student.42.fr> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2024/06/11 14:23:40 by maiboyer #+# #+# */
|
/* Created: 2024/06/11 14:23:40 by maiboyer #+# #+# */
|
||||||
/* Updated: 2024/07/30 18:41:40 by maiboyer ### ########.fr */
|
/* Updated: 2024/08/02 17:02:03 by maiboyer ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
#ifndef AST_H
|
#ifndef AST_H
|
||||||
# define AST_H
|
# define AST_H
|
||||||
|
|
||||||
# include "ast/ast_forward_def.h" // IWYU pragma: keep
|
# include "ast/_forward_def.h" // IWYU pragma: keep
|
||||||
# include "ast/ast_raw_structs.h" // IWYU pragma: keep
|
# include "ast/_raw_structs.h" // IWYU pragma: keep
|
||||||
|
|
||||||
enum e_ast_node_kind
|
enum e_ast_node_kind
|
||||||
{
|
{
|
||||||
|
|
@ -93,5 +93,6 @@ struct s_ast_node
|
||||||
};
|
};
|
||||||
|
|
||||||
void ast_free(t_ast_node self);
|
void ast_free(t_ast_node self);
|
||||||
|
t_ast_node ast_alloc(t_ast_node_kind kind);
|
||||||
|
|
||||||
#endif /* AST_H */
|
#endif /* AST_H */
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
#include "ast/_function_declaration.h"
|
#include "ast/_print_ast.h"
|
||||||
|
|
||||||
void ast_print_node_if(t_ast_node self)
|
void ast_print_node_if(t_ast_node self)
|
||||||
{
|
{
|
||||||
|
|
@ -6,11 +6,21 @@
|
||||||
/* By: rparodi <rparodi@student.42.fr> +#+ +:+ +#+ */
|
/* By: rparodi <rparodi@student.42.fr> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2024/07/26 10:55:52 by rparodi #+# #+# */
|
/* Created: 2024/07/26 10:55:52 by rparodi #+# #+# */
|
||||||
/* Updated: 2024/08/02 15:48:33 by rparodi ### ########.fr */
|
/* Updated: 2024/08/02 16:58:13 by maiboyer ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
#include "./from_node.h"
|
#include "ast/_from_node.h"
|
||||||
|
#include "ast/ast.h"
|
||||||
|
#include "gmr/field_identifiers.h"
|
||||||
|
#include "gmr/field_identifiers.h"
|
||||||
|
#include "gmr/symbols.h"
|
||||||
|
#include "gmr/symbols.h"
|
||||||
|
#include "me/str/str.h"
|
||||||
|
#include "me/types.h"
|
||||||
|
#include "me/vec/vec_ast.h"
|
||||||
|
#include "parser/api.h"
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
sym_arithmetic_binary_expression
|
sym_arithmetic_binary_expression
|
||||||
|
|
|
||||||
|
|
@ -1,118 +0,0 @@
|
||||||
/* ************************************************************************** */
|
|
||||||
/* */
|
|
||||||
/* ::: :::::::: */
|
|
||||||
/* from_node.h :+: :+: :+: */
|
|
||||||
/* +:+ +:+ +:+ */
|
|
||||||
/* By: rparodi <rparodi@student.42.fr> +#+ +:+ +#+ */
|
|
||||||
/* +#+#+#+#+#+ +#+ */
|
|
||||||
/* Created: 2024/08/02 14:47:50 by rparodi #+# #+# */
|
|
||||||
/* Updated: 2024/08/02 15:47:55 by rparodi ### ########.fr */
|
|
||||||
/* */
|
|
||||||
/* ************************************************************************** */
|
|
||||||
|
|
||||||
#ifndef FROM_NODE_H
|
|
||||||
# define FROM_NODE_H
|
|
||||||
|
|
||||||
# include "ast/ast.h"
|
|
||||||
# include "gmr/field_identifiers.h"
|
|
||||||
# include "gmr/symbols.h"
|
|
||||||
# include "me/mem/mem.h"
|
|
||||||
# include "me/str/str.h"
|
|
||||||
# include "me/types.h"
|
|
||||||
# include "me/vec/vec_ast.h"
|
|
||||||
# include "parser/api.h"
|
|
||||||
# include <inttypes.h>
|
|
||||||
# include <stdio.h>
|
|
||||||
|
|
||||||
t_ast_node ast_alloc(t_ast_node_kind kind);
|
|
||||||
t_error build_sym_case_item(\
|
|
||||||
t_parse_node self, t_const_str input, t_ast_node *out);
|
|
||||||
t_error build_sym_case_statement(\
|
|
||||||
t_parse_node self, t_const_str input, t_ast_node *out);
|
|
||||||
t_error build_sym_command(\
|
|
||||||
t_parse_node self, t_const_str input, t_ast_node *out);
|
|
||||||
t_error build_sym_command_name(\
|
|
||||||
t_parse_node self, t_const_str input, t_ast_node *out);
|
|
||||||
t_error build_sym_comment(\
|
|
||||||
t_parse_node self, t_const_str input, t_ast_node *out);
|
|
||||||
t_error build_sym_compound_statement(\
|
|
||||||
t_parse_node self, t_const_str input, t_ast_node *out);
|
|
||||||
t_error build_sym_elif_clause(\
|
|
||||||
t_parse_node self, t_const_str input, t_ast_node *out);
|
|
||||||
t_error build_sym_else_clause(\
|
|
||||||
t_parse_node self, t_const_str input, t_ast_node *out);
|
|
||||||
t_error build_sym_extglob_pattern(\
|
|
||||||
t_parse_node self, t_const_str input, t_ast_node *out);
|
|
||||||
t_error build_sym_file_redirect(\
|
|
||||||
t_parse_node self, t_const_str input, t_ast_node *out);
|
|
||||||
t_error build_sym_for_statement(\
|
|
||||||
t_parse_node self, t_const_str input, t_ast_node *out);
|
|
||||||
t_error build_sym_function_definition(\
|
|
||||||
t_parse_node self, t_const_str input, t_ast_node *out);
|
|
||||||
t_error build_sym_if_statement(\
|
|
||||||
t_parse_node self, t_const_str input, t_ast_node *out);
|
|
||||||
t_error build_sym_list(\
|
|
||||||
t_parse_node self, t_const_str input, t_ast_node *out);
|
|
||||||
t_error build_sym_negated_command(\
|
|
||||||
t_parse_node self, t_const_str input, t_ast_node *out);
|
|
||||||
t_error build_sym_number(\
|
|
||||||
t_parse_node self, t_const_str input, t_ast_node *out);
|
|
||||||
t_error build_sym_pipeline(\
|
|
||||||
t_parse_node self, t_const_str input, t_ast_node *out);
|
|
||||||
t_error build_sym_program(\
|
|
||||||
t_parse_node self, t_const_str input, t_ast_node *out);
|
|
||||||
t_error build_sym_raw_string(\
|
|
||||||
t_parse_node self, t_const_str input, t_ast_node *out);
|
|
||||||
t_error build_sym_redirected_statement(\
|
|
||||||
t_parse_node self, t_const_str input, t_ast_node *out);
|
|
||||||
t_error build_sym_regex(\
|
|
||||||
t_parse_node self, t_const_str input, t_ast_node *out);
|
|
||||||
t_error build_sym_simple_expansion(\
|
|
||||||
t_parse_node self, t_const_str input, t_ast_node *out);
|
|
||||||
t_error build_sym_string_content(\
|
|
||||||
t_parse_node self, t_const_str input, t_ast_node *out);
|
|
||||||
t_error build_sym_subshell(\
|
|
||||||
t_parse_node self, t_const_str input, t_ast_node *out);
|
|
||||||
t_error build_sym_variable_assignment(\
|
|
||||||
t_parse_node self, t_const_str input, t_ast_node *out);
|
|
||||||
t_error build_sym_while_statement(\
|
|
||||||
t_parse_node self, t_const_str input, t_ast_node *out);
|
|
||||||
t_error build_sym_word(\
|
|
||||||
t_parse_node self, t_const_str input, t_ast_node *out);
|
|
||||||
t_error build_sym_expansion(\
|
|
||||||
t_parse_node self, t_const_str input, t_ast_node *out);
|
|
||||||
t_error build_sym_command_substitution(\
|
|
||||||
t_parse_node self, t_const_str input, t_ast_node *out);
|
|
||||||
|
|
||||||
/* FUNCTION DONE BUT BY RAPH */
|
|
||||||
t_error build_sym_arithmetic_binary_expression(\
|
|
||||||
t_parse_node self, t_const_str input, t_ast_node *out);
|
|
||||||
t_error build_sym_arithmetic_literal(\
|
|
||||||
t_parse_node self, t_const_str input, t_ast_node *out);
|
|
||||||
t_error build_sym_arithmetic_parenthesized_expression(\
|
|
||||||
t_parse_node self, t_const_str input, t_ast_node *out);
|
|
||||||
t_error build_sym_arithmetic_postfix_expression(\
|
|
||||||
t_parse_node self, t_const_str input, t_ast_node *out);
|
|
||||||
t_error build_sym_arithmetic_ternary_expression(\
|
|
||||||
t_parse_node self, t_const_str input, t_ast_node *out);
|
|
||||||
t_error build_sym_arithmetic_unary_expression(\
|
|
||||||
t_parse_node self, t_const_str input, t_ast_node *out);
|
|
||||||
t_error build_sym_arithmetic_expansion(\
|
|
||||||
t_parse_node self, t_const_str input, t_ast_node *out);
|
|
||||||
|
|
||||||
// TODO: This is my homework,
|
|
||||||
// it'll need to be handled in a special way I feel...
|
|
||||||
t_error build_sym_heredoc_redirect(\
|
|
||||||
t_parse_node self, t_const_str input, t_ast_node *out);
|
|
||||||
t_error build_sym_simple_heredoc_body(\
|
|
||||||
t_parse_node self, t_const_str input, t_ast_node *out);
|
|
||||||
t_error build_sym_heredoc_body(\
|
|
||||||
t_parse_node self, t_const_str input, t_ast_node *out);
|
|
||||||
t_error build_sym_heredoc_content(\
|
|
||||||
t_parse_node self, t_const_str input, t_ast_node *out);
|
|
||||||
t_error build_sym_heredoc_end(\
|
|
||||||
t_parse_node self, t_const_str input, t_ast_node *out);
|
|
||||||
t_error build_sym_heredoc_start(\
|
|
||||||
t_parse_node self, t_const_str input, t_ast_node *out);
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
@ -10,7 +10,7 @@
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
#include "ast/_function_declaration.h"
|
#include "ast/_print_ast.h"
|
||||||
|
|
||||||
void ast_print_node_command_substitution(t_ast_node self)
|
void ast_print_node_command_substitution(t_ast_node self)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
#include "ast/_function_declaration.h"
|
#include "ast/_print_ast.h"
|
||||||
|
|
||||||
void ast_print_node_empty(t_ast_node self)
|
void ast_print_node_empty(t_ast_node self)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
#include "ast/_function_declaration.h"
|
#include "ast/_print_ast.h"
|
||||||
|
|
||||||
void ast_print_node_variable_assignment(t_ast_node self)
|
void ast_print_node_variable_assignment(t_ast_node self)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
#include "ast/_function_declaration.h"
|
#include "ast/_print_ast.h"
|
||||||
|
|
||||||
void ast_print_node_file_redirection_heredoc(t_ast_node self)
|
void ast_print_node_file_redirection_heredoc(t_ast_node self)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
#include "ast/_function_declaration.h"
|
#include "ast/_print_ast.h"
|
||||||
|
|
||||||
void ast_print_node_subshell(t_ast_node self)
|
void ast_print_node_subshell(t_ast_node self)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
#include "ast/_function_declaration.h"
|
#include "ast/_print_ast.h"
|
||||||
|
|
||||||
void _print_term(t_ast_terminator_kind term)
|
void _print_term(t_ast_terminator_kind term)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
#include "ast/_function_declaration.h"
|
#include "ast/_print_ast.h"
|
||||||
|
|
||||||
void ast_print_node_arithmetic_expansion(t_ast_node self)
|
void ast_print_node_arithmetic_expansion(t_ast_node self)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
#include "ast/_function_declaration.h"
|
#include "ast/_print_ast.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
t_ast_arithmetic_expansion arithmetic_expansion;
|
t_ast_arithmetic_expansion arithmetic_expansion;
|
||||||
|
|
|
||||||
|
|
@ -60,7 +60,7 @@ replace.C__PREFIXUP__ = "ENV"
|
||||||
sources_output = "src/vec/C__PREFIX__/"
|
sources_output = "src/vec/C__PREFIX__/"
|
||||||
headers_output = "include/me/vec/"
|
headers_output = "include/me/vec/"
|
||||||
replace.C__TYPENAME__ = "t_ast_node"
|
replace.C__TYPENAME__ = "t_ast_node"
|
||||||
replace.C__TYPEHEADER__ = '#include "ast/ast_forward_def.h"'
|
replace.C__TYPEHEADER__ = '#include "ast/_forward_def.h"'
|
||||||
replace.C__PREFIX__ = "ast"
|
replace.C__PREFIX__ = "ast"
|
||||||
replace.C__PREFIXUP__ = "AST"
|
replace.C__PREFIXUP__ = "AST"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@
|
||||||
#ifndef VEC_AST_H
|
#ifndef VEC_AST_H
|
||||||
#define VEC_AST_H
|
#define VEC_AST_H
|
||||||
|
|
||||||
#include "ast/ast_forward_def.h"
|
#include "ast/_forward_def.h"
|
||||||
#include "me/types.h"
|
#include "me/types.h"
|
||||||
|
|
||||||
/// @brief A function that takes two t_ast_node and compare them
|
/// @brief A function that takes two t_ast_node and compare them
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue