updated stuff in ast
This commit is contained in:
parent
27067e158e
commit
7ac90bac55
20 changed files with 171 additions and 150 deletions
|
|
@ -1,17 +1,17 @@
|
|||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* ::: :::::::: */
|
||||
/* ast_forward_def.h :+: :+: :+: */
|
||||
/* _forward_def.h :+: :+: :+: */
|
||||
/* +:+ +:+ +:+ */
|
||||
/* By: maiboyer <maiboyer@student.42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* 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
|
||||
# define AST_FORWARD_DEF_H
|
||||
#ifndef _FORWARD_DEF_H
|
||||
# define _FORWARD_DEF_H
|
||||
|
||||
typedef enum e_ast_node_kind t_ast_node_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> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* 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
|
||||
# define _FUNCTION_DECLARATION_H
|
||||
#ifndef _PRINT_AST_H
|
||||
# define _PRINT_AST_H
|
||||
|
||||
# include "ast/ast.h"
|
||||
# include "me/types.h"
|
||||
|
|
@ -1,19 +1,19 @@
|
|||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* ::: :::::::: */
|
||||
/* ast_raw_structs.h :+: :+: :+: */
|
||||
/* _raw_structs.h :+: :+: :+: */
|
||||
/* +:+ +:+ +:+ */
|
||||
/* By: maiboyer <maiboyer@student.42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* 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
|
||||
# define AST_RAW_STRUCTS_H
|
||||
#ifndef _RAW_STRUCTS_H
|
||||
# define _RAW_STRUCTS_H
|
||||
|
||||
# include "ast/ast_forward_def.h"
|
||||
# include "ast/_forward_def.h"
|
||||
# include "me/types.h"
|
||||
# include "me/vec/vec_ast.h"
|
||||
|
||||
|
|
@ -6,15 +6,15 @@
|
|||
/* By: maiboyer <maiboyer@student.42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* 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
|
||||
# define AST_H
|
||||
|
||||
# include "ast/ast_forward_def.h" // IWYU pragma: keep
|
||||
# include "ast/ast_raw_structs.h" // IWYU pragma: keep
|
||||
# include "ast/_forward_def.h" // IWYU pragma: keep
|
||||
# include "ast/_raw_structs.h" // IWYU pragma: keep
|
||||
|
||||
enum e_ast_node_kind
|
||||
{
|
||||
|
|
@ -92,6 +92,7 @@ struct s_ast_node
|
|||
t_ast_node_data data;
|
||||
};
|
||||
|
||||
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 */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue