Started from buttom go to the sky

This commit is contained in:
Raphaël 2024-04-28 19:59:01 +02:00
parent 96215449bd
commit f811e55dea
4781 changed files with 10121 additions and 1743 deletions

View file

@ -0,0 +1,27 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* constants.h :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: maiboyer <maiboyer@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/04/14 19:17:54 by maiboyer #+# #+# */
/* Updated: 2024/04/14 19:18:20 by maiboyer ### ########.fr */
/* */
/* ************************************************************************** */
#ifndef CONSTANTS_H
# define CONSTANTS_H
# define LANGUAGE_VERSION 14
# define STATE_COUNT 7671
# define LARGE_STATE_COUNT 528
# define SYMBOL_COUNT 280
# define ALIAS_COUNT 0
# define TOKEN_COUNT 175
# define EXTERNAL_TOKEN_COUNT 29
# define FIELD_COUNT 19
# define MAX_ALIAS_SEQUENCE_LENGTH 8
# define PRODUCTION_ID_COUNT 159
#endif // CONSTANTS_H

View file

@ -0,0 +1,48 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* external_scanner_symbol_identifiers.h :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: maiboyer <maiboyer@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/04/14 19:17:54 by maiboyer #+# #+# */
/* Updated: 2024/04/14 19:18:20 by maiboyer ### ########.fr */
/* */
/* ************************************************************************** */
#ifndef EXTERNAL_SCANNER_SYMBOL_IDENTIFIERS_H
# define EXTERNAL_SCANNER_SYMBOL_IDENTIFIERS_H
enum e_external_scanner_symbol_identifiers {
ts_external_token_heredoc_start = 0,
ts_external_token_simple_heredoc_body = 1,
ts_external_token__heredoc_body_beginning = 2,
ts_external_token_heredoc_content = 3,
ts_external_token_heredoc_end = 4,
ts_external_token_file_descriptor = 5,
ts_external_token__empty_value = 6,
ts_external_token__concat = 7,
ts_external_token_variable_name = 8,
ts_external_token_test_operator = 9,
ts_external_token_regex = 10,
ts_external_token__regex_no_slash = 11,
ts_external_token__regex_no_space = 12,
ts_external_token__expansion_word = 13,
ts_external_token_extglob_pattern = 14,
ts_external_token__bare_dollar = 15,
ts_external_token__brace_start = 16,
ts_external_token__immediate_double_hash = 17,
ts_external_token__external_expansion_sym_hash = 18,
ts_external_token__external_expansion_sym_bang = 19,
ts_external_token__external_expansion_sym_equal = 20,
ts_external_token_RBRACE = 21,
ts_external_token_RBRACK = 22,
ts_external_token_LT_LT = 23,
ts_external_token_LT_LT_DASH = 24,
ts_external_token_heredoc_redirect_token1 = 25,
ts_external_token_LPAREN = 26,
ts_external_token_esac = 27,
ts_external_token___error_recovery = 28,
};
#endif // EXTERNAL_SCANNER_SYMBOL_IDENTIFIERS_H

View file

@ -0,0 +1,38 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* field_identifiers.h :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: maiboyer <maiboyer@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/04/14 19:17:54 by maiboyer #+# #+# */
/* Updated: 2024/04/14 19:18:20 by maiboyer ### ########.fr */
/* */
/* ************************************************************************** */
#ifndef FIELD_IDENTIFIERS_H
# define FIELD_IDENTIFIERS_H
enum e_field_identifiers {
field_alternative = 1,
field_argument = 2,
field_body = 3,
field_condition = 4,
field_consequence = 5,
field_descriptor = 6,
field_destination = 7,
field_fallthrough = 8,
field_index = 9,
field_initializer = 10,
field_left = 11,
field_name = 12,
field_operator = 13,
field_redirect = 14,
field_right = 15,
field_termination = 16,
field_update = 17,
field_value = 18,
field_variable = 19,
};
#endif // FIELD_IDENTIFIERS_H

View file

@ -0,0 +1,298 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* symbols.h :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: maiboyer <maiboyer@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/04/14 19:17:54 by maiboyer #+# #+# */
/* Updated: 2024/04/14 19:18:20 by maiboyer ### ########.fr */
/* */
/* ************************************************************************** */
#ifndef SYMBOLS_H
# define SYMBOLS_H
enum e_symbols {
sym_word = 1,
anon_sym_for = 2,
anon_sym_select = 3,
anon_sym_in = 4,
anon_sym_LPAREN_LPAREN = 5,
anon_sym_RPAREN_RPAREN = 6,
anon_sym_SEMI = 7,
anon_sym_COMMA = 8,
anon_sym_EQ = 9,
anon_sym_PLUS_PLUS = 10,
anon_sym_DASH_DASH = 11,
anon_sym_PLUS_EQ = 12,
anon_sym_DASH_EQ = 13,
anon_sym_STAR_EQ = 14,
anon_sym_SLASH_EQ = 15,
anon_sym_PERCENT_EQ = 16,
anon_sym_STAR_STAR_EQ = 17,
anon_sym_LT_LT_EQ = 18,
anon_sym_GT_GT_EQ = 19,
anon_sym_AMP_EQ = 20,
anon_sym_CARET_EQ = 21,
anon_sym_PIPE_EQ = 22,
anon_sym_PIPE_PIPE = 23,
anon_sym_DASHo = 24,
anon_sym_AMP_AMP = 25,
anon_sym_DASHa = 26,
anon_sym_PIPE = 27,
anon_sym_CARET = 28,
anon_sym_AMP = 29,
anon_sym_EQ_EQ = 30,
anon_sym_BANG_EQ = 31,
anon_sym_LT = 32,
anon_sym_GT = 33,
anon_sym_LT_EQ = 34,
anon_sym_GT_EQ = 35,
anon_sym_LT_LT = 36,
anon_sym_GT_GT = 37,
anon_sym_PLUS = 38,
anon_sym_DASH = 39,
anon_sym_STAR = 40,
anon_sym_SLASH = 41,
anon_sym_PERCENT = 42,
anon_sym_STAR_STAR = 43,
anon_sym_LPAREN = 44,
anon_sym_RPAREN = 45,
aux_sym__c_word_token1 = 46,
anon_sym_while = 47,
anon_sym_until = 48,
anon_sym_do = 49,
anon_sym_done = 50,
anon_sym_if = 51,
anon_sym_then = 52,
anon_sym_fi = 53,
anon_sym_elif = 54,
anon_sym_else = 55,
anon_sym_case = 56,
anon_sym_esac = 57,
anon_sym_SEMI_SEMI = 58,
anon_sym_SEMI_AMP = 59,
anon_sym_SEMI_SEMI_AMP = 60,
anon_sym_function = 61,
anon_sym_LBRACE = 62,
anon_sym_RBRACE = 63,
anon_sym_PIPE_AMP = 64,
anon_sym_BANG = 65,
anon_sym_LBRACK = 66,
anon_sym_RBRACK = 67,
anon_sym_LBRACK_LBRACK = 68,
anon_sym_RBRACK_RBRACK = 69,
anon_sym_declare = 70,
anon_sym_typeset = 71,
anon_sym_export = 72,
anon_sym_readonly = 73,
anon_sym_local = 74,
anon_sym_unset = 75,
anon_sym_unsetenv = 76,
anon_sym_EQ_TILDE = 77,
anon_sym_AMP_GT = 78,
anon_sym_AMP_GT_GT = 79,
anon_sym_LT_AMP = 80,
anon_sym_GT_AMP = 81,
anon_sym_GT_PIPE = 82,
anon_sym_LT_AMP_DASH = 83,
anon_sym_GT_AMP_DASH = 84,
anon_sym_LT_LT_DASH = 85,
aux_sym_heredoc_redirect_token1 = 86,
anon_sym_LT_LT_LT = 87,
anon_sym_QMARK = 88,
anon_sym_COLON = 89,
anon_sym_PLUS_PLUS2 = 90,
anon_sym_DASH_DASH2 = 91,
anon_sym_DASH2 = 92,
anon_sym_PLUS2 = 93,
anon_sym_TILDE = 94,
anon_sym_DOLLAR_LPAREN_LPAREN = 95,
anon_sym_DOLLAR_LBRACK = 96,
aux_sym_brace_expression_token1 = 97,
anon_sym_DOT_DOT = 98,
anon_sym_RBRACE2 = 99,
aux_sym_concatenation_token1 = 100,
anon_sym_DOLLAR = 101,
sym__special_character = 102,
anon_sym_DQUOTE = 103,
sym_string_content = 104,
sym_raw_string = 105,
sym_ansi_c_string = 106,
aux_sym_number_token1 = 107,
aux_sym_number_token2 = 108,
anon_sym_POUND = 109,
anon_sym_DOLLAR_LBRACE = 110,
anon_sym_RBRACE3 = 111,
anon_sym_BANG2 = 112,
anon_sym_AT = 113,
anon_sym_STAR2 = 114,
anon_sym_POUND2 = 115,
anon_sym_EQ2 = 116,
anon_sym_COLON_EQ = 117,
anon_sym_DASH3 = 118,
anon_sym_COLON_DASH = 119,
anon_sym_PLUS3 = 120,
anon_sym_COLON_PLUS = 121,
anon_sym_QMARK2 = 122,
anon_sym_COLON_QMARK = 123,
anon_sym_PERCENT_PERCENT = 124,
aux_sym__expansion_regex_token1 = 125,
anon_sym_SLASH_SLASH = 126,
anon_sym_SLASH_POUND = 127,
anon_sym_SLASH_PERCENT = 128,
anon_sym_COMMA_COMMA = 129,
anon_sym_CARET_CARET = 130,
anon_sym_U = 131,
anon_sym_u = 132,
anon_sym_L = 133,
anon_sym_Q = 134,
anon_sym_E = 135,
anon_sym_P = 136,
anon_sym_A = 137,
anon_sym_K = 138,
anon_sym_a = 139,
anon_sym_k = 140,
anon_sym_DOLLAR_LPAREN = 141,
anon_sym_BQUOTE = 142,
anon_sym_DOLLAR_BQUOTE = 143,
anon_sym_LT_LPAREN = 144,
anon_sym_GT_LPAREN = 145,
sym_comment = 146,
sym__comment_word = 147,
aux_sym__simple_variable_name_token1 = 148,
aux_sym__multiline_variable_name_token1 = 149,
anon_sym_AT2 = 150,
anon_sym_0 = 151,
anon_sym__ = 152,
sym_heredoc_start = 153,
sym_simple_heredoc_body = 154,
sym__heredoc_body_beginning = 155,
sym_heredoc_content = 156,
sym_heredoc_end = 157,
sym_file_descriptor = 158,
sym__empty_value = 159,
sym__concat = 160,
sym_variable_name = 161,
sym_test_operator = 162,
sym_regex = 163,
sym__regex_no_slash = 164,
sym__regex_no_space = 165,
sym__expansion_word = 166,
sym_extglob_pattern = 167,
sym__bare_dollar = 168,
sym__brace_start = 169,
sym__immediate_double_hash = 170,
sym__external_expansion_sym_hash = 171,
sym__external_expansion_sym_bang = 172,
sym__external_expansion_sym_equal = 173,
sym___error_recovery = 174,
sym_program = 175,
sym__statements = 176,
aux_sym__terminated_statement = 177,
sym__statement_not_pipeline = 178,
sym_redirected_statement = 179,
sym_for_statement = 180,
sym_c_style_for_statement = 181,
sym__for_body = 182,
sym__c_expression = 183,
sym__c_expression_not_assignment = 184,
sym__c_variable_assignment = 185,
sym__c_unary_expression = 186,
sym__c_binary_expression = 187,
sym__c_postfix_expression = 188,
sym__c_parenthesized_expression = 189,
sym_while_statement = 190,
sym_do_group = 191,
sym_if_statement = 192,
sym_elif_clause = 193,
sym_else_clause = 194,
sym_case_statement = 195,
sym_case_item = 196,
sym_last_case_item = 197,
sym_function_definition = 198,
sym_compound_statement = 199,
sym_subshell = 200,
sym_pipeline = 201,
sym_list = 202,
sym_negated_command = 203,
sym_test_command = 204,
sym__test_command_binary_expression = 205,
sym_declaration_command = 206,
sym_unset_command = 207,
sym_command = 208,
sym_command_name = 209,
sym_variable_assignment = 210,
sym_variable_assignments = 211,
sym_subscript = 212,
sym_file_redirect = 213,
sym_heredoc_redirect = 214,
sym__heredoc_pipeline = 215,
sym__heredoc_expression = 216,
aux_sym__heredoc_command = 217,
sym__heredoc_body = 218,
sym_heredoc_body = 219,
sym__simple_heredoc_body = 220,
sym_herestring_redirect = 221,
sym__expression = 222,
sym_binary_expression = 223,
sym_ternary_expression = 224,
sym_unary_expression = 225,
sym_postfix_expression = 226,
sym_parenthesized_expression = 227,
sym_arithmetic_expansion = 228,
sym_brace_expression = 229,
sym__arithmetic_expression = 230,
sym__arithmetic_literal = 231,
sym__arithmetic_binary_expression = 232,
sym__arithmetic_ternary_expression = 233,
sym__arithmetic_unary_expression = 234,
sym__arithmetic_postfix_expression = 235,
sym__arithmetic_parenthesized_expression = 236,
sym_concatenation = 237,
sym_string = 238,
sym_translated_string = 239,
sym_array = 240,
sym_number = 241,
sym_simple_expansion = 242,
sym_expansion = 243,
sym__expansion_body = 244,
sym__expansion_expression = 245,
sym__expansion_regex = 246,
sym__expansion_regex_replacement = 247,
sym__expansion_regex_removal = 248,
sym__expansion_max_length = 249,
sym__expansion_max_length_expression = 250,
sym__expansion_max_length_binary_expression = 251,
sym__expansion_operator = 252,
sym__concatenation_in_expansion = 253,
sym_command_substitution = 254,
sym_process_substitution = 255,
sym__extglob_blob = 256,
sym__c_terminator = 257,
aux_sym__statements_repeat1 = 258,
aux_sym_redirected_statement_repeat1 = 259,
aux_sym_redirected_statement_repeat2 = 260,
aux_sym_for_statement_repeat1 = 261,
aux_sym__for_body_repeat1 = 262,
aux_sym_if_statement_repeat1 = 263,
aux_sym_case_statement_repeat1 = 264,
aux_sym_case_item_repeat1 = 265,
aux_sym_pipeline_repeat1 = 266,
aux_sym_declaration_command_repeat1 = 267,
aux_sym_unset_command_repeat1 = 268,
aux_sym_command_repeat1 = 269,
aux_sym_command_repeat2 = 270,
aux_sym_variable_assignments_repeat1 = 271,
aux_sym_heredoc_body_repeat1 = 272,
aux_sym__literal_repeat1 = 273,
aux_sym_arithmetic_expansion_repeat1 = 274,
aux_sym_concatenation_repeat1 = 275,
aux_sym_string_repeat1 = 276,
aux_sym__expansion_body_repeat1 = 277,
aux_sym__expansion_regex_repeat1 = 278,
aux_sym__concatenation_in_expansion_repeat1 = 279,
};
#endif // SYMBOLS_H