update: WIP changed from token output to ast

This commit is contained in:
maix0 2024-10-08 15:33:47 +02:00
parent e6f0f49e84
commit d8700f45f3
28 changed files with 23 additions and 2286 deletions

View file

@ -1,129 +0,0 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* _from_node.h :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: maiboyer <maiboyer@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/08/02 16:54:31 by maiboyer #+# #+# */
/* Updated: 2024/09/26 18:06:39 by maiboyer ### ########.fr */
/* */
/* ************************************************************************** */
#ifndef _FROM_NODE_H
# define _FROM_NODE_H
# include "ast/ast.h"
# include "me/types.h"
# include "gmr/symbols.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_node self);
t_str _extract_str(t_node self, t_const_str input);
t_ast_redirection_kind _get_redirection_op(t_node self);
t_ast_arithmetic_operator _parse_operator(t_node self);
t_ast_terminator_kind _select_term(t_node node);
t_vec_ast *_vec_command(t_ast_command *val, t_usize i);
t_error ast_from_node(t_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_node self,
t_const_str input, t_ast_node *out);
t_error build_sym_arithmetic_binary_expression(\
t_node self, t_const_str input, t_ast_node *out);
t_error build_sym_arithmetic_expansion(t_node self,
t_const_str input, t_ast_node *out);
t_error build_sym_arithmetic_literal(t_node self,
t_const_str input, t_ast_node *out);
t_error build_sym_arithmetic_parenthesized_expression(\
t_node self, t_const_str input, t_ast_node *out);
t_error build_sym_arithmetic_postfix_expression(\
t_node self, t_const_str input, t_ast_node *out);
t_error build_sym_arithmetic_ternary_expression(\
t_node self, t_const_str input, t_ast_node *out);
t_error build_sym_arithmetic_unary_expression(\
t_node self, t_const_str input, t_ast_node *out);
t_error build_sym_case_item(t_node self,
t_const_str input, t_ast_node *out);
t_error build_sym_case_statement(t_node self,
t_const_str input, t_ast_node *out);
t_error build_sym_command(t_node self,
t_const_str input, t_ast_node *out);
t_error build_sym_command_name(t_node self,
t_const_str input, t_ast_node *out);
t_error build_sym_command_substitution(t_node self,
t_const_str input, t_ast_node *out);
t_error build_sym_comment(t_node self,
t_const_str input, t_ast_node *out);
t_error build_sym_compound_statement(t_node self,
t_const_str input, t_ast_node *out);
t_error build_sym_concatenation(t_node self,
t_const_str input, t_ast_node *out);
t_error build_sym_do_group(t_node self,
t_const_str input, t_ast_node *out);
t_error build_sym_elif_clause(t_node self,
t_const_str input, t_ast_node *out);
t_error build_sym_else_clause(t_node self,
t_const_str input, t_ast_node *out);
t_error build_sym_expansion(t_node self,
t_const_str input, t_ast_node *out);
t_error build_sym_extglob_pattern(t_node self,
t_const_str input, t_ast_node *out);
t_error build_sym_file_descriptor(t_node self,
t_const_str input, t_ast_node *out);
t_error build_sym_file_redirect(t_node self,
t_const_str input, t_ast_node *out);
t_error build_sym_for_statement(t_node self,
t_const_str input, t_ast_node *out);
t_error build_sym_function_definition(t_node self,
t_const_str input, t_ast_node *out);
t_error build_sym_if_statement(t_node self,
t_const_str input, t_ast_node *out);
t_error build_sym_heredoc_redirect(\
t_node self, t_const_str input, t_ast_node *out);
t_error build_sym_simple_heredoc_body(\
t_node self, t_const_str input, t_ast_node *out);
t_error build_sym_heredoc_body(\
t_node self, t_const_str input, t_ast_node *out);
t_error build_sym_heredoc_content(\
t_node self, t_const_str input, t_ast_node *out);
t_error build_sym_heredoc_end(\
t_node self, t_const_str input, t_ast_node *out);
t_error build_sym_heredoc_start(\
t_node self, t_const_str input, t_ast_node *out);
t_error build_sym_list(t_node self, t_const_str input,
t_ast_node *out);
t_error build_sym_negated_command(t_node self,
t_const_str input, t_ast_node *out);
t_error build_sym_number(t_node self,
t_const_str input, t_ast_node *out);
t_error build_sym_pipeline(t_node self,
t_const_str input, t_ast_node *out);
t_error build_sym_program(t_node self,
t_const_str input, t_ast_node *out);
t_error build_sym_raw_string(t_node self,
t_const_str input, t_ast_node *out);
t_error build_sym_redirected_statement(t_node self,
t_const_str input, t_ast_node *out);
t_error build_sym_regex(t_node self,
t_const_str input, t_ast_node *out);
t_error build_sym_simple_expansion(t_node self,
t_const_str input, t_ast_node *out);
t_error build_sym_string(t_node self,
t_const_str input, t_ast_node *out);
t_error build_sym_string_content(t_node self,
t_const_str input, t_ast_node *out);
t_error build_sym_subshell(t_node self,
t_const_str input, t_ast_node *out);
t_error build_sym_variable_assignment(t_node self,
t_const_str input, t_ast_node *out);
t_error build_sym_while_statement(t_node self,
t_const_str input, t_ast_node *out);
t_error build_sym_word(t_node self, t_const_str input,
t_ast_node *out);
t_vec_ast *_append_scripting(t_ast_node node);
#endif /* _FROM_NODE_H */