From 53ce7d5c1caf2bb82c47a3d9460aa09665129604 Mon Sep 17 00:00:00 2001 From: "ariard@student.42.fr" Date: Fri, 10 Feb 2017 17:00:52 +0100 Subject: [PATCH] grammar --- 42sh/grammar/linebreak | 87 +++++++++++++++++++++++++++++++++++++ 42sh/grammar/newline_list | 87 +++++++++++++++++++++++++++++++++++++ 42sh/grammar/rules | 21 +++++++++ 42sh/grammar/separator | 87 +++++++++++++++++++++++++++++++++++++ 42sh/grammar/separator_op | 87 +++++++++++++++++++++++++++++++++++++ 42sh/grammar/sequential_sep | 87 +++++++++++++++++++++++++++++++++++++ 6 files changed, 456 insertions(+) create mode 100644 42sh/grammar/linebreak create mode 100644 42sh/grammar/newline_list create mode 100644 42sh/grammar/rules create mode 100644 42sh/grammar/separator create mode 100644 42sh/grammar/separator_op create mode 100644 42sh/grammar/sequential_sep diff --git a/42sh/grammar/linebreak b/42sh/grammar/linebreak new file mode 100644 index 00000000..4e8becad --- /dev/null +++ b/42sh/grammar/linebreak @@ -0,0 +1,87 @@ +#LINEBREAK# + + linebreak - linebreak : NOTHING +linebreak - sequential_sep : 0 + linebreak - separator_op : AGGREGATION, k = 1, new = separator +linebreak - separator : 0 +linebreak - newline_list : 0 +linebreak - here_end : 0 +linebreak - io_here : 0 +linebreak - filename : 0 +linebreak - io_file : 0 +linebreak - io_redirect : 0 +linebreak - redirect_list : 0 +linebreak - cmd_suffix : 0 +linebreak - cmd_prefix : 0 +linebreak - cmd_word : 0 +linebreak - cmd_name : 0 +linebreak - simple_commound : 0 +linebreak - do_group : 0 +linebreak - brace_group : 0 +linebreak - fname : 0 +linebreak - function_body : 0 +linebreak - function_definition : 0 +linebreak - until_clause : 0 +linebreak - while_clause : 0 +linebreak - else_part : 0 +linebreak - if_clause : 0 +linebreak - pattern : 0 +linebreak - case_item : 0 +linebreak - case_item_ns : 0 +linebreak - case_list : 0 +linebreak - case_list_ns : 0 +linebreak - case_clause : 0 +linebreak - wordlist : 0 + linebreak - in : VALID + linebreak - name : VALID +linebreak - term : 0 + linebreak - compound_list : VALID +linebreak - subshell : 0 +linebreak - compound_command : 0 +linebreak - command : 0 +linebreak - pipe_sequence : 0 +linebreak - pipeline : 0 +linebreak - and_or : 0 +linebreak - list : 0 +linebreak - complete_command : 0 + linebreak - complete_commands : VALID +linebreak - program : 0 +linebreak - In : 0 +#linebreak - Lbrace : 0 +#linebreak - Rbrace : 0 +#linebreak - Bang : 0 +linebreak - case : 0 +linebreak - esac : 0 +linebreak - while : 0 +linebreak - until : 0 +linebreak - for : 0 +linebreak - if : 0 +linebreak - then : 0 +linebreak - else : 0 +linebreak - elif : 0 +linebreak - fi : 0 +linebreak - do : 0 +linebreak - done : 0 +linebreak - CLOBBER : 0 +linebreak - DLESS : 0 +linebreak - DGREAT : 0 +linebreak - LESSAND : 0 +linebreak - GREATAND : 0 +linebreak - LESSGREAT : 0 +linebreak - DLESSDAH : 0 +i linebreak - AND_IF : VALID + linebreak - OR_IF : VALID +linebreak - DSEMI : 0 + linebreak - WORD : VALID +linebreak - ASSIGNEMENT_WORD : 0 +linebreak - NAME : 0 +linebreak - NEWLINE : 0 +linebreak - IO_NUMER : 0 + linebreak - SEMI : AGGREGATION, k = 1 new = sequential_sep +linebreak - AMP : 0 + linebreak - EMPTY : VALID +linebreak - GREAT : 0 +linebreak - LESS : 0 +linebreak - PAREN_OPEN : 0 +linebreak - PIPE : 0 + linebreak - PAREN_CLOSE : VALID diff --git a/42sh/grammar/newline_list b/42sh/grammar/newline_list new file mode 100644 index 00000000..daabf0af --- /dev/null +++ b/42sh/grammar/newline_list @@ -0,0 +1,87 @@ +#NEWLINE_LIST + +newline_list - newline_list : 0 +newline_list - sequential_sep : 0 +newline_list - separator_op : 0 +newline_list - separator : 0 +newline_list - newline_list : 0 +newline_list - here_end : 0 +newline_list - io_here : 0 +newline_list - filename : 0 +newline_list - io_file : 0 +newline_list - io_redirect : 0 +newline_list - redirect_list : 0 +newline_list - cmd_suffix : 0 +newline_list - cmd_prefix : 0 +newline_list - cmd_word : 0 +newline_list - cmd_name : 0 +newline_list - simple_commound : 0 +newline_list - do_group : 0 +newline_list - brace_group : 0 +newline_list - fname : 0 +newline_list - function_body : 0 +newline_list - function_definition : 0 +newline_list - until_clause : 0 +newline_list - while_clause : 0 +newline_list - else_part : 0 +newline_list - if_clause : 0 +newline_list - pattern : 0 +newline_list - case_item : 0 +newline_list - case_item_ns : 0 +newline_list - case_list : 0 +newline_list - case_list_ns : 0 +newline_list - case_clause : 0 +newline_list - wordlist : 0 +newline_list - in : 0 +newline_list - name : 0 +newline_list - term : 0 +newline_list - compound_list : 0 +newline_list - subshell : 0 +newline_list - compound_command : 0 +newline_list - command : 0 +newline_list - pipe_sequence : 0 +newline_list - pipeline : 0 +newline_list - and_or : 0 +newline_list - list : 0 +newline_list - complete_command : 0 +newline_list - complete_commands : 0 +newline_list - program : 0 +newline_list - In : 0 +#newline_list - Lbrace : 0 +#newline_list - Rbrace : 0 +#newline_list - Bang : 0 +newline_list - case : 0 +newline_list - esac : 0 +newline_list - while : 0 +newline_list - until : 0 +newline_list - for : 0 +newline_list - if : 0 +newline_list - then : 0 +newline_list - else : 0 +newline_list - elif : 0 +newline_list - fi : 0 +newline_list - do : 0 +newline_list - done : 0 +newline_list - CLOBBER : 0 +newline_list - DLESS : 0 +newline_list - DGREAT : 0 +newline_list - LESSAND : 0 +newline_list - GREATAND : 0 +newline_list - LESSGREAT : 0 +newline_list - DLESSDAH : 0 +newline_list - AND_IF : 0 +newline_list - OR_IF : 0 +newline_list - DSEMI : 0 +newline_list - WORD : 0 +newline_list - ASSIGNEMENT_WORD : 0 +newline_list - NAME : 0 +newline_list - NEWLINE : 0 +newline_list - IO_NUMER : 0 +newline_list - SEMI : 0 +newline_list - AMP : 0 + newline_list - EMPTY : VALID +newline_list - GREAT : 0 +newline_list - LESS : 0 +newline_list - PAREN_OPEN : 0 +newline_list - PIPE : 0 + newline_list - PAREN_CLOSE : VALID diff --git a/42sh/grammar/rules b/42sh/grammar/rules new file mode 100644 index 00000000..266c6214 --- /dev/null +++ b/42sh/grammar/rules @@ -0,0 +1,21 @@ +sequential_sep - wordlist : VALID +sequential_sep - in : VALID +sequential_sep - name : VALID + +separator - term : VALID +separator - compound_list : NOTHING !!!!! + +separator_op - complete_commands : NOTHING !!!! + +linebreak - linebreak : NOTHING +linebreak - separator_op : ASSIGNATION, k = 1, new = separator +linebreak - in : VALID +linebreak - name : VALID +linebreak - compound_list : VALID +linebreak - complete_commands : VALID +linebreak - AND_IF : VALID +linebreak - OR_IF : VALID +linebreak - WORD : VALID +linebreak - SEMI : AGGREGATION k - 1, new = sequential_sep +linebreak - EMPTY : VALID +linebreak - PAREN_CLOSE : VALID diff --git a/42sh/grammar/separator b/42sh/grammar/separator new file mode 100644 index 00000000..b5d7c30a --- /dev/null +++ b/42sh/grammar/separator @@ -0,0 +1,87 @@ +#SEPARATOR + +separator - separator : 0 +separator - sequential_sep : 0 +separator - separator_op : 0 +separator - linebreak : 0 +separator - newline_list : 0 +separator - here_end : 0 +separator - io_here : 0 +separator - filename : 0 +separator - io_file : 0 +separator - io_redirect : 0 +separator - redirect_list : 0 +separator - cmd_suffix : 0 +separator - cmd_prefix : 0 +separator - cmd_word : 0 +separator - cmd_name : 0 +separator - simple_commound : 0 +separator - do_group : 0 +separator - brace_group : 0 +separator - fname : 0 +separator - function_body : 0 +separator - function_definition : 0 +separator - until_clause : 0 +separator - while_clause : 0 +separator - else_part : 0 +separator - if_clause : 0 +separator - pattern : 0 +separator - case_item : 0 +separator - case_item_ns : 0 +separator - case_list : 0 +separator - case_list_ns : 0 +separator - case_clause : 0 +separator - wordlist : 0 +separator - in : 0 +separator - name : 0 + separator - term : VALID + separator - compound_list : NOTHING !!!!!! +separator - subshell : 0 +separator - compound_command : 0 +separator - command : 0 +separator - pipe_sequence : 0 +separator - pipeline : 0 +separator - and_or : 0 +separator - list : 0 +separator - complete_command : 0 +separator - complete_commands : 0 +separator - program : 0 +separator - In : 0 +#separator - Lbrace : 0 +#separator - Rbrace : 0 +#separator - Bang : 0 +separator - case : 0 +separator - esac : 0 +separator - while : 0 +separator - until : 0 +separator - for : 0 +separator - if : 0 +separator - then : 0 +separator - else : 0 +separator - elif : 0 +separator - fi : 0 +separator - do : 0 +separator - done : 0 +separator - CLOBBER : 0 +separator - DLESS : 0 +separator - DGREAT : 0 +separator - LESSAND : 0 +separator - GREATAND : 0 +separator - LESSGREAT : 0 +separator - DLESSDAH : 0 +separator - AND_IF : 0 +separator - OR_IF : 0 +separator - DSEMI : 0 +separator - WORD : 0 +separator - ASSIGNEMENT_WORD : 0 +separator - NAME : 0 +separator - NEWLINE : 0 +separator - IO_NUMER : 0 +separator - SEMI : 0 +separator - AMP : 0 +separator - EMPTY : 0 +separator - GREAT : 0 +separator - LESS : 0 +separator - PAREN_OPEN : 0 +separator - PIPE : 0 +separator - PAREN_CLOSE : 0 diff --git a/42sh/grammar/separator_op b/42sh/grammar/separator_op new file mode 100644 index 00000000..398998b4 --- /dev/null +++ b/42sh/grammar/separator_op @@ -0,0 +1,87 @@ +#SEPARATOR_OP + +separator_op - separator_op : 0 +separator_op - sequential_sep : 0 +separator_op - separator_op_op : 0 +separator_op - linebreak : 0 +separator_op - newline_list : 0 +separator_op - here_end : 0 +separator_op - io_here : 0 +separator_op - filename : 0 +separator_op - io_file : 0 +separator_op - io_redirect : 0 +separator_op - redirect_list : 0 +separator_op - cmd_suffix : 0 +separator_op - cmd_prefix : 0 +separator_op - cmd_word : 0 +separator_op - cmd_name : 0 +separator_op - simple_commound : 0 +separator_op - do_group : 0 +separator_op - brace_group : 0 +separator_op - fname : 0 +separator_op - function_body : 0 +separator_op - function_definition : 0 +separator_op - until_clause : 0 +separator_op - while_clause : 0 +separator_op - else_part : 0 +separator_op - if_clause : 0 +separator_op - pattern : 0 +separator_op - case_item : 0 +separator_op - case_item_ns : 0 +separator_op - case_list : 0 +separator_op - case_list_ns : 0 +separator_op - case_clause : 0 +separator_op - wordlist : 0 +separator_op - in : 0 +separator_op - name : 0 +separator_op - term : 0 +separator_op - compound_list : 0 +separator_op - subshell : 0 +separator_op - compound_command : 0 +separator_op - command : 0 +separator_op - pipe_sequence : 0 +separator_op - pipeline : 0 +separator_op - and_or : 0 + separator_op - list : 0 !!!!! +separator_op - complete_command : 0 +separator_op - complete_commands : 0 +separator_op - program : 0 +separator_op - In : 0 + #separator_op - Lbrace : 0 + #separator_op - Rbrace : 0 + #separator_op - Bang : 0 +separator_op - case : 0 +separator_op - esac : 0 +separator_op - while : 0 +separator_op - until : 0 +separator_op - for : 0 +separator_op - if : 0 +separator_op - then : 0 +separator_op - else : 0 +separator_op - elif : 0 +separator_op - fi : 0 +separator_op - do : 0 +separator_op - done : 0 +separator_op - CLOBBER : 0 +separator_op - DLESS : 0 +separator_op - DGREAT : 0 +separator_op - LESSAND : 0 +separator_op - GREATAND : 0 +separator_op - LESSGREAT : 0 +separator_op - DLESSDAH : 0 +separator_op - AND_IF : 0 +separator_op - OR_IF : 0 +separator_op - DSEMI : 0 +separator_op - WORD : 0 +separator_op - ASSIGNEMENT_WORD : 0 +separator_op - NAME : 0 +separator_op - NEWLINE : 0 +separator_op - IO_NUMER : 0 +separator_op - SEMI : 0 +separator_op - AMP : 0 +separator_op - EMPTY : 0 +separator_op - GREAT : 0 +separator_op - LESS : 0 +separator_op - PAREN_OPEN : 0 +separator_op - PIPE : 0 +separator_op - PAREN_CLOSE : 0 diff --git a/42sh/grammar/sequential_sep b/42sh/grammar/sequential_sep new file mode 100644 index 00000000..7b3ac7cc --- /dev/null +++ b/42sh/grammar/sequential_sep @@ -0,0 +1,87 @@ +#SEQUENTIAL_SEP + +sequential_sep - sequential_sep : 0 +sequential_sep - separator : 0 +sequential_sep - separator_op : 0 +sequential_sep - linebreak : 0 +sequential_sep - newline_list : 0 +sequential_sep - here_end : 0 +sequential_sep - io_here : 0 +sequential_sep - filename : 0 +sequential_sep - io_file : 0 +sequential_sep - io_redirect : 0 +sequential_sep - redirect_list : 0 +sequential_sep - cmd_suffix : 0 +sequential_sep - cmd_prefix : 0 +sequential_sep - cmd_word : 0 +sequential_sep - cmd_name : 0 +sequential_sep - simple_commound : 0 +sequential_sep - do_group : 0 +sequential_sep - brace_group : 0 +sequential_sep - fname : 0 +sequential_sep - function_body : 0 +sequential_sep - function_definition : 0 +sequential_sep - until_clause : 0 +sequential_sep - while_clause : 0 +sequential_sep - else_part : 0 +sequential_sep - if_clause : 0 +sequential_sep - pattern : 0 +sequential_sep - case_item : 0 +sequential_sep - case_item_ns : 0 +sequential_sep - case_list : 0 +sequential_sep - case_list_ns : 0 +sequential_sep - case_clause : 0 + sequential_sep - wordlist : VALID + sequential_sep - in : VALID + sequential_sep - name : VALID +sequential_sep - term : 0 +sequential_sep - compound_list : 0 +sequential_sep - subshell : 0 +sequential_sep - compound_command : 0 +sequential_sep - command : 0 +sequential_sep - pipe_sequence : 0 +sequential_sep - pipeline : 0 +sequential_sep - and_or : 0 +sequential_sep - list : 0 +sequential_sep - complete_command : 0 +sequential_sep - complete_commands : 0 +sequential_sep - program : 0 +sequential_sep - In : 0 +#sequential_sep - Lbrace : 0 +#sequential_sep - Rbrace : 0 +#sequential_sep - Bang : 0 +sequential_sep - case : 0 +sequential_sep - esac : 0 +sequential_sep - while : 0 +sequential_sep - until : 0 +sequential_sep - for : 0 +sequential_sep - if : 0 +sequential_sep - then : 0 +sequential_sep - else : 0 +sequential_sep - elif : 0 +sequential_sep - fi : 0 +sequential_sep - do : 0 +sequential_sep - done : 0 +sequential_sep - CLOBBER : 0 +sequential_sep - DLESS : 0 +sequential_sep - DGREAT : 0 +sequential_sep - LESSAND : 0 +sequential_sep - GREATAND : 0 +sequential_sep - LESSGREAT : 0 +sequential_sep - DLESSDAH : 0 +sequential_sep - AND_IF : 0 +sequential_sep - OR_IF : 0 +sequential_sep - DSEMI : 0 +sequential_sep - WORD : 0 +sequential_sep - ASSIGNEMENT_WORD : 0 +sequential_sep - NAME : 0 +sequential_sep - NEWLINE : 0 +sequential_sep - IO_NUMER : 0 +sequential_sep - SEMI : 0 +sequential_sep - AMP : 0 +sequential_sep - EMPTY : 0 +sequential_sep - GREAT : 0 +sequential_sep - LESS : 0 +sequential_sep - PAREN_OPEN : 0 +sequential_sep - PIPE : 0 +sequential_sep - PAREN_CLOSE : 0