This commit is contained in:
ariard@student.42.fr 2017-02-10 17:00:52 +01:00
parent 1358c367e6
commit 53ce7d5c1c
6 changed files with 456 additions and 0 deletions

87
42sh/grammar/linebreak Normal file
View file

@ -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

87
42sh/grammar/newline_list Normal file
View file

@ -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

21
42sh/grammar/rules Normal file
View file

@ -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

87
42sh/grammar/separator Normal file
View file

@ -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

87
42sh/grammar/separator_op Normal file
View file

@ -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

View file

@ -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