further streamile grammar around pipe
This commit is contained in:
parent
6ce2a1ec14
commit
af311380f4
5 changed files with 92 additions and 67 deletions
|
|
@ -149,6 +149,7 @@ enum e_sym
|
||||||
FUNC,
|
FUNC,
|
||||||
PIPE_SEMI_SEQUENCE,
|
PIPE_SEMI_SEQUENCE,
|
||||||
CMD_SUPERIOR,
|
CMD_SUPERIOR,
|
||||||
|
SEQUENCE,
|
||||||
AND_OR_MAJOR,
|
AND_OR_MAJOR,
|
||||||
AND_OR_MINOR,
|
AND_OR_MINOR,
|
||||||
END_COMMAND,
|
END_COMMAND,
|
||||||
|
|
|
||||||
|
|
@ -24,8 +24,9 @@ t_aggrematch g_aggrematch[] =
|
||||||
{TK_PAREN_OPEN, CASE_LIST_NS, PATTERN_CASE, 0},
|
{TK_PAREN_OPEN, CASE_LIST_NS, PATTERN_CASE, 0},
|
||||||
{TK_PAREN_OPEN, CMD_SUPERIOR, FUNC_NAME, CMD_SUPERIOR},
|
{TK_PAREN_OPEN, CMD_SUPERIOR, FUNC_NAME, CMD_SUPERIOR},
|
||||||
{TK_ASSIGNEMENT_WORD, CMD_PREFIX,CMD_PREFIX, 0},
|
{TK_ASSIGNEMENT_WORD, CMD_PREFIX,CMD_PREFIX, 0},
|
||||||
{TK_PIPE, CMD_SUPERIOR, SIMPLE_COMMAND, CMD_SUPERIOR},
|
{TK_PIPE, CMD_SUPERIOR, SEQUENCE, CMD_SUPERIOR},
|
||||||
{TK_PIPE, PIPE_SEMI_SEQUENCE, PIPE_SEMI_SEQUENCE, PIPE_SEMI_SEQUENCE},
|
{TK_PIPE, PIPE_SEMI_SEQUENCE, SEQUENCE, PIPE_SEMI_SEQUENCE},
|
||||||
|
// {TK_PIPE, PIPE_SEMI_SEQUENCE, PIPE_SEMI_SEQUENCE, PIPE_SEMI_SEQUENCE},
|
||||||
{TK_FI, ELSE_PART, IF_CLAUSE, TK_IF},
|
{TK_FI, ELSE_PART, IF_CLAUSE, TK_IF},
|
||||||
{TK_FI, COMPOUND_LIST, IF_CLAUSE, COMPLETE_CONDITION},
|
{TK_FI, COMPOUND_LIST, IF_CLAUSE, COMPLETE_CONDITION},
|
||||||
{TK_FI, COMPLETE_CONDITION, IF_CLAUSE, COMPLETE_CONDITION},
|
{TK_FI, COMPLETE_CONDITION, IF_CLAUSE, COMPLETE_CONDITION},
|
||||||
|
|
@ -61,7 +62,6 @@ t_aggrematch g_aggrematch[] =
|
||||||
//to abstract TK_ESAC
|
//to abstract TK_ESAC
|
||||||
{LINEBREAK, TK_PAREN_CLOSE, FUNC, FNAME},
|
{LINEBREAK, TK_PAREN_CLOSE, FUNC, FNAME},
|
||||||
//paren open
|
//paren open
|
||||||
{LINEBREAK, TK_PIPE, PIPE_SEMI_SEQUENCE, PIPE_SEQUENCE},
|
|
||||||
{LINEBREAK, COMPLETE_COMMANDS, PROGRAM, LINEBREAK},
|
{LINEBREAK, COMPLETE_COMMANDS, PROGRAM, LINEBREAK},
|
||||||
{LINEBREAK, CMD_SUPERIOR, SEPARATOR_OP, 0},
|
{LINEBREAK, CMD_SUPERIOR, SEPARATOR_OP, 0},
|
||||||
{LINEBREAK, PIPE_SEMI_SEQUENCE, PIPE_SEQUENCE, PIPE_SEMI_SEQUENCE},
|
{LINEBREAK, PIPE_SEMI_SEQUENCE, PIPE_SEQUENCE, PIPE_SEMI_SEQUENCE},
|
||||||
|
|
@ -126,7 +126,7 @@ t_aggrematch g_aggrematch[] =
|
||||||
{REDIRECT_LIST, COMPOUND_COMMAND, COMPOUND_COMMAND, COMPOUND_COMMAND},
|
{REDIRECT_LIST, COMPOUND_COMMAND, COMPOUND_COMMAND, COMPOUND_COMMAND},
|
||||||
{CMD_SUFFIX, CMD_WORD, SIMPLE_COMMAND, CMD_PREFIX},
|
{CMD_SUFFIX, CMD_WORD, SIMPLE_COMMAND, CMD_PREFIX},
|
||||||
{CMD_SUFFIX, CMD_NAME, SIMPLE_COMMAND, CMD_NAME},
|
{CMD_SUFFIX, CMD_NAME, SIMPLE_COMMAND, CMD_NAME},
|
||||||
{CMD_SUFFIX, CMD_SUPERIOR, SIMPLE_COMMAND, CMD_SUPERIOR},
|
{CMD_SUFFIX, CMD_SUPERIOR, CMD_SUPERIOR, CMD_SUPERIOR},
|
||||||
//to abstract
|
//to abstract
|
||||||
{CMD_PREFIX, LINEBREAK, SIMPLE_COMMAND, 0},
|
{CMD_PREFIX, LINEBREAK, SIMPLE_COMMAND, 0},
|
||||||
{CMD_PREFIX, TK_PAREN_OPEN, SIMPLE_COMMAND, 0},
|
{CMD_PREFIX, TK_PAREN_OPEN, SIMPLE_COMMAND, 0},
|
||||||
|
|
@ -157,8 +157,10 @@ t_aggrematch g_aggrematch[] =
|
||||||
{CMD_NAME, CASE_LIST_NS, CMD_SUPERIOR, 0},
|
{CMD_NAME, CASE_LIST_NS, CMD_SUPERIOR, 0},
|
||||||
{CMD_NAME, COMPLETE_CONDITION, CMD_SUPERIOR, 0},
|
{CMD_NAME, COMPLETE_CONDITION, CMD_SUPERIOR, 0},
|
||||||
{CMD_NAME, TK_PIPE, CMD_SUPERIOR, 0},
|
{CMD_NAME, TK_PIPE, CMD_SUPERIOR, 0},
|
||||||
{CMD_NAME, PIPE_SEMI_SEQUENCE, CMD_SUPERIOR, 0},
|
{CMD_NAME, SEQUENCE, CMD_SUPERIOR, 0},
|
||||||
|
// {CMD_NAME, PIPE_SEMI_SEQUENCE, CMD_SUPERIOR, 0},
|
||||||
{CMD_NAME, AND_OR_MAJOR, CMD_SUPERIOR, 0},
|
{CMD_NAME, AND_OR_MAJOR, CMD_SUPERIOR, 0},
|
||||||
|
{CMD_SUPERIOR, SEQUENCE, PIPE_SEMI_SEQUENCE, SEQUENCE},
|
||||||
{SIMPLE_COMMAND, ALL, COMMAND, 0},
|
{SIMPLE_COMMAND, ALL, COMMAND, 0},
|
||||||
{DO_GROUP, NAME, FOR_CLAUSE, TK_FOR},
|
{DO_GROUP, NAME, FOR_CLAUSE, TK_FOR},
|
||||||
{DO_GROUP, IN, FOR_CLAUSE, TK_FOR},
|
{DO_GROUP, IN, FOR_CLAUSE, TK_FOR},
|
||||||
|
|
@ -197,7 +199,9 @@ t_aggrematch g_aggrematch[] =
|
||||||
{AND_OR_MINOR, TK_LBRACE, AND_OR_MAJOR, 0},
|
{AND_OR_MINOR, TK_LBRACE, AND_OR_MAJOR, 0},
|
||||||
{AND_OR_MINOR, COMPLETE_COMMANDS, AND_OR_MAJOR, 0},
|
{AND_OR_MINOR, COMPLETE_COMMANDS, AND_OR_MAJOR, 0},
|
||||||
{AND_OR_MINOR, AND_OR_MAJOR, AND_OR_MAJOR, 0},
|
{AND_OR_MINOR, AND_OR_MAJOR, AND_OR_MAJOR, 0},
|
||||||
{COMMAND, PIPE_SEMI_SEQUENCE, PIPE_SEMI_SEQUENCE, PIPE_SEMI_SEQUENCE},
|
{COMMAND, SEQUENCE, PIPE_SEMI_SEQUENCE, 0},
|
||||||
|
// {COMMAND, PIPE_SEMI_SEQUENCE, PIPE_SEMI_SEQUENCE, PIPE_SEMI_SEQUENCE},
|
||||||
|
// watch
|
||||||
{COMMAND, COMPOUND_LIST, PIPE_SEMI_SEQUENCE, 0},
|
{COMMAND, COMPOUND_LIST, PIPE_SEMI_SEQUENCE, 0},
|
||||||
{COMMAND, CASE_LIST_NS, PIPE_SEMI_SEQUENCE, 0},
|
{COMMAND, CASE_LIST_NS, PIPE_SEMI_SEQUENCE, 0},
|
||||||
{COMMAND, TK_WHILE, PIPE_SEMI_SEQUENCE, 0},
|
{COMMAND, TK_WHILE, PIPE_SEMI_SEQUENCE, 0},
|
||||||
|
|
@ -217,6 +221,7 @@ t_aggrematch g_aggrematch[] =
|
||||||
{COMMAND, COMPLETE_COMMANDS, PIPE_SEMI_SEQUENCE, 0},
|
{COMMAND, COMPLETE_COMMANDS, PIPE_SEMI_SEQUENCE, 0},
|
||||||
{COMMAND, AND_OR_MAJOR, PIPE_SEMI_SEQUENCE, 0},
|
{COMMAND, AND_OR_MAJOR, PIPE_SEMI_SEQUENCE, 0},
|
||||||
{COMMAND, COMPLETE_CONDITION, PIPE_SEMI_SEQUENCE, 0},
|
{COMMAND, COMPLETE_CONDITION, PIPE_SEMI_SEQUENCE, 0},
|
||||||
|
{END_COMMAND, SEQUENCE, PIPE_SEQUENCE, SEQUENCE},
|
||||||
{END_COMMAND, PIPE_SEMI_SEQUENCE, PIPE_SEQUENCE, PIPE_SEMI_SEQUENCE},
|
{END_COMMAND, PIPE_SEMI_SEQUENCE, PIPE_SEQUENCE, PIPE_SEMI_SEQUENCE},
|
||||||
{END_COMMAND, AND_OR_MAJOR, LIST, AND_OR_MAJOR},
|
{END_COMMAND, AND_OR_MAJOR, LIST, AND_OR_MAJOR},
|
||||||
{END_COMMAND, TK_WHILE, PIPE_SEQUENCE, 0},
|
{END_COMMAND, TK_WHILE, PIPE_SEQUENCE, 0},
|
||||||
|
|
@ -235,6 +240,7 @@ t_aggrematch g_aggrematch[] =
|
||||||
{END_COMMAND, COMPLETE_CONDITION, PIPE_SEQUENCE, 0},
|
{END_COMMAND, COMPLETE_CONDITION, PIPE_SEQUENCE, 0},
|
||||||
{END_COMMAND, COMPOUND_LIST, COMPOUND_LIST, COMPOUND_LIST},
|
{END_COMMAND, COMPOUND_LIST, COMPOUND_LIST, COMPOUND_LIST},
|
||||||
{END_COMMAND, CASE_LIST_NS, CASE_LIST_NS, CASE_LIST_NS},
|
{END_COMMAND, CASE_LIST_NS, CASE_LIST_NS, CASE_LIST_NS},
|
||||||
|
{PIPE_SEMI_SEQUENCE, SEQUENCE, PIPE_SEMI_SEQUENCE, PIPE_SEMI_SEQUENCE},
|
||||||
{PIPE_SEQUENCE, TK_WHILE, PIPELINE, 0},
|
{PIPE_SEQUENCE, TK_WHILE, PIPELINE, 0},
|
||||||
{PIPE_SEQUENCE, TK_UNTIL, PIPELINE, 0},
|
{PIPE_SEQUENCE, TK_UNTIL, PIPELINE, 0},
|
||||||
{PIPE_SEQUENCE, TK_BANG, PIPELINE, TK_BANG},
|
{PIPE_SEQUENCE, TK_BANG, PIPELINE, TK_BANG},
|
||||||
|
|
|
||||||
|
|
@ -37,6 +37,8 @@ t_stackmatch g_stackmatch[] =
|
||||||
{TK_IO_NUMBER, SEPARATOR_OP},
|
{TK_IO_NUMBER, SEPARATOR_OP},
|
||||||
{TK_IO_NUMBER, NEWLINE_LIST},
|
{TK_IO_NUMBER, NEWLINE_LIST},
|
||||||
{TK_IO_NUMBER, PIPE_SEMI_SEQUENCE},
|
{TK_IO_NUMBER, PIPE_SEMI_SEQUENCE},
|
||||||
|
{TK_IO_NUMBER, SEQUENCE},
|
||||||
|
// watch!
|
||||||
{TK_IO_NUMBER, CMD_SUPERIOR},
|
{TK_IO_NUMBER, CMD_SUPERIOR},
|
||||||
{TK_IO_NUMBER, AND_OR_MAJOR},
|
{TK_IO_NUMBER, AND_OR_MAJOR},
|
||||||
{TK_AND_IF, AND_OR},
|
{TK_AND_IF, AND_OR},
|
||||||
|
|
@ -49,6 +51,8 @@ t_stackmatch g_stackmatch[] =
|
||||||
{TK_DSEMI, COMPOUND_LIST},
|
{TK_DSEMI, COMPOUND_LIST},
|
||||||
{TK_DSEMI, CASE_LIST_NS},
|
{TK_DSEMI, CASE_LIST_NS},
|
||||||
{TK_DSEMI, PIPE_SEMI_SEQUENCE},
|
{TK_DSEMI, PIPE_SEMI_SEQUENCE},
|
||||||
|
{TK_DSEMI, SEQUENCE},
|
||||||
|
// watch!
|
||||||
{TK_LESS, TK_IO_NUMBER},
|
{TK_LESS, TK_IO_NUMBER},
|
||||||
{TK_LESS, REDIRECT_LIST},
|
{TK_LESS, REDIRECT_LIST},
|
||||||
{TK_LESS, CMD_SUFFIX},
|
{TK_LESS, CMD_SUFFIX},
|
||||||
|
|
@ -63,6 +67,8 @@ t_stackmatch g_stackmatch[] =
|
||||||
{TK_LESS, SEPARATOR_OP},
|
{TK_LESS, SEPARATOR_OP},
|
||||||
{TK_LESS, NEWLINE_LIST},
|
{TK_LESS, NEWLINE_LIST},
|
||||||
{TK_LESS, PIPE_SEMI_SEQUENCE},
|
{TK_LESS, PIPE_SEMI_SEQUENCE},
|
||||||
|
{TK_LESS, SEQUENCE},
|
||||||
|
// watch !
|
||||||
{TK_LESS, CMD_SUPERIOR},
|
{TK_LESS, CMD_SUPERIOR},
|
||||||
{TK_LESS, AND_OR_MAJOR},
|
{TK_LESS, AND_OR_MAJOR},
|
||||||
{TK_GREAT, TK_IO_NUMBER},
|
{TK_GREAT, TK_IO_NUMBER},
|
||||||
|
|
@ -79,6 +85,8 @@ t_stackmatch g_stackmatch[] =
|
||||||
{TK_GREAT, SEPARATOR_OP},
|
{TK_GREAT, SEPARATOR_OP},
|
||||||
{TK_GREAT, NEWLINE_LIST},
|
{TK_GREAT, NEWLINE_LIST},
|
||||||
{TK_GREAT, PIPE_SEMI_SEQUENCE},
|
{TK_GREAT, PIPE_SEMI_SEQUENCE},
|
||||||
|
{TK_GREAT, SEQUENCE},
|
||||||
|
// watch !
|
||||||
//duplicate and extend
|
//duplicate and extend
|
||||||
{TK_GREAT, CMD_SUPERIOR},
|
{TK_GREAT, CMD_SUPERIOR},
|
||||||
{TK_GREAT, AND_OR_MAJOR},
|
{TK_GREAT, AND_OR_MAJOR},
|
||||||
|
|
@ -97,6 +105,8 @@ t_stackmatch g_stackmatch[] =
|
||||||
{TK_DLESS, SEPARATOR_OP},
|
{TK_DLESS, SEPARATOR_OP},
|
||||||
{TK_DLESS, NEWLINE_LIST},
|
{TK_DLESS, NEWLINE_LIST},
|
||||||
{TK_DLESS, PIPE_SEMI_SEQUENCE},
|
{TK_DLESS, PIPE_SEMI_SEQUENCE},
|
||||||
|
{TK_DLESS, SEQUENCE},
|
||||||
|
// watch !
|
||||||
{TK_DLESS, CMD_SUPERIOR},
|
{TK_DLESS, CMD_SUPERIOR},
|
||||||
{TK_DLESS, AND_OR_MAJOR},
|
{TK_DLESS, AND_OR_MAJOR},
|
||||||
|
|
||||||
|
|
@ -115,6 +125,8 @@ t_stackmatch g_stackmatch[] =
|
||||||
{TK_DLESSDASH, SEPARATOR_OP},
|
{TK_DLESSDASH, SEPARATOR_OP},
|
||||||
{TK_DLESSDASH, NEWLINE_LIST},
|
{TK_DLESSDASH, NEWLINE_LIST},
|
||||||
{TK_DLESSDASH, PIPE_SEMI_SEQUENCE},
|
{TK_DLESSDASH, PIPE_SEMI_SEQUENCE},
|
||||||
|
{TK_DLESSDASH, SEQUENCE},
|
||||||
|
// watch !
|
||||||
{TK_DLESSDASH, CMD_SUPERIOR},
|
{TK_DLESSDASH, CMD_SUPERIOR},
|
||||||
{TK_DLESSDASH, AND_OR_MAJOR},
|
{TK_DLESSDASH, AND_OR_MAJOR},
|
||||||
|
|
||||||
|
|
@ -133,6 +145,8 @@ t_stackmatch g_stackmatch[] =
|
||||||
{TK_DGREAT, SEPARATOR_OP},
|
{TK_DGREAT, SEPARATOR_OP},
|
||||||
{TK_DGREAT, NEWLINE_LIST},
|
{TK_DGREAT, NEWLINE_LIST},
|
||||||
{TK_DGREAT, PIPE_SEMI_SEQUENCE},
|
{TK_DGREAT, PIPE_SEMI_SEQUENCE},
|
||||||
|
{TK_DGREAT, SEQUENCE},
|
||||||
|
// watch !
|
||||||
{TK_DGREAT, CMD_SUPERIOR},
|
{TK_DGREAT, CMD_SUPERIOR},
|
||||||
{TK_DGREAT, AND_OR_MAJOR},
|
{TK_DGREAT, AND_OR_MAJOR},
|
||||||
|
|
||||||
|
|
@ -151,6 +165,8 @@ t_stackmatch g_stackmatch[] =
|
||||||
{TK_LESSAND, SEPARATOR_OP},
|
{TK_LESSAND, SEPARATOR_OP},
|
||||||
{TK_LESSAND, NEWLINE_LIST},
|
{TK_LESSAND, NEWLINE_LIST},
|
||||||
{TK_LESSAND, PIPE_SEMI_SEQUENCE},
|
{TK_LESSAND, PIPE_SEMI_SEQUENCE},
|
||||||
|
{TK_LESSAND, SEQUENCE},
|
||||||
|
// watch !
|
||||||
{TK_LESSAND, CMD_SUPERIOR},
|
{TK_LESSAND, CMD_SUPERIOR},
|
||||||
{TK_LESSAND, AND_OR_MAJOR},
|
{TK_LESSAND, AND_OR_MAJOR},
|
||||||
|
|
||||||
|
|
@ -169,44 +185,11 @@ t_stackmatch g_stackmatch[] =
|
||||||
{TK_GREATAND, SEPARATOR_OP},
|
{TK_GREATAND, SEPARATOR_OP},
|
||||||
{TK_GREATAND, NEWLINE_LIST},
|
{TK_GREATAND, NEWLINE_LIST},
|
||||||
{TK_GREATAND, PIPE_SEMI_SEQUENCE},
|
{TK_GREATAND, PIPE_SEMI_SEQUENCE},
|
||||||
|
{TK_GREATAND, SEQUENCE},
|
||||||
|
// watch !
|
||||||
{TK_GREATAND, CMD_SUPERIOR},
|
{TK_GREATAND, CMD_SUPERIOR},
|
||||||
{TK_GREATAND, AND_OR_MAJOR},
|
{TK_GREATAND, AND_OR_MAJOR},
|
||||||
|
|
||||||
{TK_LESSGREAT, TK_IO_NUMBER},
|
|
||||||
{TK_LESSGREAT, REDIRECT_LIST},
|
|
||||||
{TK_LESSGREAT, CMD_SUFFIX},
|
|
||||||
{TK_LESSGREAT, CMD_PREFIX},
|
|
||||||
{TK_LESSGREAT, CMD_WORD},
|
|
||||||
{TK_LESSGREAT, CMD_NAME},
|
|
||||||
{TK_LESSGREAT, LINEBREAK},
|
|
||||||
{TK_LESSGREAT, TK_PAREN_OPEN},
|
|
||||||
{TK_LESSGREAT, TK_LBRACE},
|
|
||||||
{TK_LESSGREAT, COMPLETE_COMMANDS},
|
|
||||||
{TK_LESSGREAT, TK_BANG},
|
|
||||||
{TK_LESSGREAT, TK_BANG},
|
|
||||||
{TK_LESSGREAT, SEPARATOR_OP},
|
|
||||||
{TK_LESSGREAT, NEWLINE_LIST},
|
|
||||||
{TK_LESSGREAT, PIPE_SEMI_SEQUENCE},
|
|
||||||
{TK_LESSGREAT, CMD_SUPERIOR},
|
|
||||||
{TK_LESSGREAT, AND_OR_MAJOR},
|
|
||||||
|
|
||||||
{TK_CLOBBER, TK_IO_NUMBER},
|
|
||||||
{TK_CLOBBER, REDIRECT_LIST},
|
|
||||||
{TK_CLOBBER, CMD_SUFFIX},
|
|
||||||
{TK_CLOBBER, CMD_PREFIX},
|
|
||||||
{TK_CLOBBER, CMD_WORD},
|
|
||||||
{TK_CLOBBER, CMD_NAME},
|
|
||||||
{TK_CLOBBER, LINEBREAK},
|
|
||||||
{TK_CLOBBER, TK_PAREN_OPEN},
|
|
||||||
{TK_CLOBBER, TK_LBRACE},
|
|
||||||
{TK_CLOBBER, COMPLETE_COMMANDS},
|
|
||||||
{TK_CLOBBER, TK_BANG},
|
|
||||||
{TK_CLOBBER, TK_BANG},
|
|
||||||
{TK_CLOBBER, SEPARATOR_OP},
|
|
||||||
{TK_CLOBBER, NEWLINE_LIST},
|
|
||||||
{TK_CLOBBER, PIPE_SEMI_SEQUENCE},
|
|
||||||
{TK_CLOBBER, CMD_SUPERIOR},
|
|
||||||
{TK_CLOBBER, AND_OR_MAJOR},
|
|
||||||
|
|
||||||
{TK_IF, LINEBREAK},
|
{TK_IF, LINEBREAK},
|
||||||
{TK_IF, TK_PAREN_OPEN},
|
{TK_IF, TK_PAREN_OPEN},
|
||||||
|
|
@ -216,7 +199,8 @@ t_stackmatch g_stackmatch[] =
|
||||||
{TK_IF, TK_BANG},
|
{TK_IF, TK_BANG},
|
||||||
{TK_IF, SEPARATOR_OP},
|
{TK_IF, SEPARATOR_OP},
|
||||||
{TK_IF, NEWLINE_LIST},
|
{TK_IF, NEWLINE_LIST},
|
||||||
{TK_IF, PIPE_SEMI_SEQUENCE},
|
{TK_IF, SEQUENCE},
|
||||||
|
// watch !
|
||||||
{TK_IF, TK_WHILE},
|
{TK_IF, TK_WHILE},
|
||||||
{TK_IF, TK_UNTIL},
|
{TK_IF, TK_UNTIL},
|
||||||
{TK_IF, TK_IF},
|
{TK_IF, TK_IF},
|
||||||
|
|
@ -267,7 +251,8 @@ t_stackmatch g_stackmatch[] =
|
||||||
{TK_CASE, COMPOUND_LIST},
|
{TK_CASE, COMPOUND_LIST},
|
||||||
{TK_CASE, NEWLINE_LIST},
|
{TK_CASE, NEWLINE_LIST},
|
||||||
{TK_CASE, SEPARATOR_OP},
|
{TK_CASE, SEPARATOR_OP},
|
||||||
{TK_CASE, PIPE_SEMI_SEQUENCE},
|
{TK_CASE, SEQUENCE},
|
||||||
|
// watch !
|
||||||
{TK_IN, TK_WORD},
|
{TK_IN, TK_WORD},
|
||||||
{TK_IN, NAME},
|
{TK_IN, NAME},
|
||||||
{TK_ESAC, CASE_LIST_NS},
|
{TK_ESAC, CASE_LIST_NS},
|
||||||
|
|
@ -280,7 +265,8 @@ t_stackmatch g_stackmatch[] =
|
||||||
{TK_WHILE, TK_BANG},
|
{TK_WHILE, TK_BANG},
|
||||||
{TK_WHILE, SEPARATOR_OP},
|
{TK_WHILE, SEPARATOR_OP},
|
||||||
{TK_WHILE, NEWLINE_LIST},
|
{TK_WHILE, NEWLINE_LIST},
|
||||||
{TK_WHILE, PIPE_SEMI_SEQUENCE},
|
{TK_WHILE, SEQUENCE},
|
||||||
|
// watch !
|
||||||
{TK_WHILE, TK_DO},
|
{TK_WHILE, TK_DO},
|
||||||
{TK_WHILE, TK_PAREN_CLOSE},
|
{TK_WHILE, TK_PAREN_CLOSE},
|
||||||
{TK_WHILE, TK_WHILE},
|
{TK_WHILE, TK_WHILE},
|
||||||
|
|
@ -299,7 +285,8 @@ t_stackmatch g_stackmatch[] =
|
||||||
{TK_UNTIL, TK_BANG},
|
{TK_UNTIL, TK_BANG},
|
||||||
{TK_UNTIL, SEPARATOR_OP},
|
{TK_UNTIL, SEPARATOR_OP},
|
||||||
{TK_UNTIL, NEWLINE_LIST},
|
{TK_UNTIL, NEWLINE_LIST},
|
||||||
{TK_UNTIL, PIPE_SEMI_SEQUENCE},
|
{TK_UNTIL, SEQUENCE},
|
||||||
|
// watch !
|
||||||
{TK_UNTIL, TK_DO},
|
{TK_UNTIL, TK_DO},
|
||||||
{TK_UNTIL, TK_PAREN_CLOSE},
|
{TK_UNTIL, TK_PAREN_CLOSE},
|
||||||
{TK_UNTIL, TK_WHILE},
|
{TK_UNTIL, TK_WHILE},
|
||||||
|
|
@ -319,7 +306,8 @@ t_stackmatch g_stackmatch[] =
|
||||||
{TK_FOR, TK_BANG},
|
{TK_FOR, TK_BANG},
|
||||||
{TK_FOR, SEPARATOR_OP},
|
{TK_FOR, SEPARATOR_OP},
|
||||||
{TK_FOR, NEWLINE_LIST},
|
{TK_FOR, NEWLINE_LIST},
|
||||||
{TK_FOR, PIPE_SEMI_SEQUENCE},
|
{TK_FOR, SEQUENCE},
|
||||||
|
// watch !
|
||||||
{TK_FOR, TK_DO},
|
{TK_FOR, TK_DO},
|
||||||
{TK_FOR, TK_PAREN_CLOSE},
|
{TK_FOR, TK_PAREN_CLOSE},
|
||||||
{TK_FOR, TK_WHILE},
|
{TK_FOR, TK_WHILE},
|
||||||
|
|
@ -337,7 +325,8 @@ t_stackmatch g_stackmatch[] =
|
||||||
{TK_LBRACE, TK_BANG},
|
{TK_LBRACE, TK_BANG},
|
||||||
{TK_LBRACE, SEPARATOR_OP},
|
{TK_LBRACE, SEPARATOR_OP},
|
||||||
{TK_LBRACE, NEWLINE_LIST},
|
{TK_LBRACE, NEWLINE_LIST},
|
||||||
{TK_LBRACE, PIPE_SEMI_SEQUENCE},
|
{TK_LBRACE, SEQUENCE},
|
||||||
|
// watch !
|
||||||
{TK_LBRACE, AND_OR_MAJOR},
|
{TK_LBRACE, AND_OR_MAJOR},
|
||||||
{TK_LBRACE, TK_WHILE},
|
{TK_LBRACE, TK_WHILE},
|
||||||
{TK_LBRACE, TK_UNTIL},
|
{TK_LBRACE, TK_UNTIL},
|
||||||
|
|
@ -402,7 +391,8 @@ t_stackmatch g_stackmatch[] =
|
||||||
{TK_PAREN_OPEN, TK_BANG},
|
{TK_PAREN_OPEN, TK_BANG},
|
||||||
{TK_PAREN_OPEN, SEPARATOR_OP},
|
{TK_PAREN_OPEN, SEPARATOR_OP},
|
||||||
{TK_PAREN_OPEN, NEWLINE_LIST},
|
{TK_PAREN_OPEN, NEWLINE_LIST},
|
||||||
{TK_PAREN_OPEN, PIPE_SEMI_SEQUENCE},
|
{TK_PAREN_OPEN, SEQUENCE},
|
||||||
|
// watch !
|
||||||
{TK_PAREN_OPEN, AND_OR_MAJOR},
|
{TK_PAREN_OPEN, AND_OR_MAJOR},
|
||||||
{TK_PAREN_OPEN, TK_WHILE},
|
{TK_PAREN_OPEN, TK_WHILE},
|
||||||
{TK_PAREN_OPEN, TK_UNTIL},
|
{TK_PAREN_OPEN, TK_UNTIL},
|
||||||
|
|
@ -420,6 +410,7 @@ t_stackmatch g_stackmatch[] =
|
||||||
{SEQUENTIAL_SEP, NAME},
|
{SEQUENTIAL_SEP, NAME},
|
||||||
{SEQUENTIAL_SEP, IN},
|
{SEQUENTIAL_SEP, IN},
|
||||||
{SEQUENTIAL_SEP, WORDLIST},
|
{SEQUENTIAL_SEP, WORDLIST},
|
||||||
|
{END_COMMAND, SEQUENCE},
|
||||||
{END_COMMAND, PIPE_SEMI_SEQUENCE},
|
{END_COMMAND, PIPE_SEMI_SEQUENCE},
|
||||||
{END_COMMAND, AND_OR_MAJOR},
|
{END_COMMAND, AND_OR_MAJOR},
|
||||||
{END_COMMAND, TK_WHILE},
|
{END_COMMAND, TK_WHILE},
|
||||||
|
|
@ -532,6 +523,8 @@ t_stackmatch g_stackmatch[] =
|
||||||
{IO_HERE, SEPARATOR_OP},
|
{IO_HERE, SEPARATOR_OP},
|
||||||
{IO_HERE, NEWLINE_LIST},
|
{IO_HERE, NEWLINE_LIST},
|
||||||
{IO_HERE, PIPE_SEMI_SEQUENCE},
|
{IO_HERE, PIPE_SEMI_SEQUENCE},
|
||||||
|
{IO_HERE, SEQUENCE},
|
||||||
|
// watch !
|
||||||
{FILENAME, TK_LESS},
|
{FILENAME, TK_LESS},
|
||||||
{FILENAME, TK_LESSAND},
|
{FILENAME, TK_LESSAND},
|
||||||
{FILENAME, TK_GREAT},
|
{FILENAME, TK_GREAT},
|
||||||
|
|
@ -553,6 +546,8 @@ t_stackmatch g_stackmatch[] =
|
||||||
{IO_FILE, SEPARATOR_OP},
|
{IO_FILE, SEPARATOR_OP},
|
||||||
{IO_FILE, NEWLINE_LIST},
|
{IO_FILE, NEWLINE_LIST},
|
||||||
{IO_FILE, PIPE_SEMI_SEQUENCE},
|
{IO_FILE, PIPE_SEMI_SEQUENCE},
|
||||||
|
{IO_FILE, SEQUENCE},
|
||||||
|
// watch !
|
||||||
{IO_REDIRECT, REDIRECT_LIST},
|
{IO_REDIRECT, REDIRECT_LIST},
|
||||||
{IO_REDIRECT, CMD_SUPERIOR},
|
{IO_REDIRECT, CMD_SUPERIOR},
|
||||||
{IO_REDIRECT, CMD_SUFFIX},
|
{IO_REDIRECT, CMD_SUFFIX},
|
||||||
|
|
@ -568,6 +563,8 @@ t_stackmatch g_stackmatch[] =
|
||||||
{IO_REDIRECT, SEPARATOR_OP},
|
{IO_REDIRECT, SEPARATOR_OP},
|
||||||
{IO_REDIRECT, NEWLINE_LIST},
|
{IO_REDIRECT, NEWLINE_LIST},
|
||||||
{IO_REDIRECT, PIPE_SEMI_SEQUENCE},
|
{IO_REDIRECT, PIPE_SEMI_SEQUENCE},
|
||||||
|
{IO_REDIRECT, SEQUENCE},
|
||||||
|
// watch !/
|
||||||
{REDIRECT_LIST, COMPOUND_COMMAND},
|
{REDIRECT_LIST, COMPOUND_COMMAND},
|
||||||
{CMD_SUFFIX, CMD_WORD},
|
{CMD_SUFFIX, CMD_WORD},
|
||||||
{CMD_SUFFIX, CMD_NAME},
|
{CMD_SUFFIX, CMD_NAME},
|
||||||
|
|
@ -580,7 +577,8 @@ t_stackmatch g_stackmatch[] =
|
||||||
{CMD_PREFIX, TK_BANG},
|
{CMD_PREFIX, TK_BANG},
|
||||||
{CMD_PREFIX, SEPARATOR_OP},
|
{CMD_PREFIX, SEPARATOR_OP},
|
||||||
{CMD_PREFIX, NEWLINE_LIST},
|
{CMD_PREFIX, NEWLINE_LIST},
|
||||||
{CMD_PREFIX, PIPE_SEMI_SEQUENCE},
|
{CMD_PREFIX, SEQUENCE},
|
||||||
|
// watch !
|
||||||
{CMD_WORD, CMD_PREFIX},
|
{CMD_WORD, CMD_PREFIX},
|
||||||
{CMD_NAME, COMPLETE_COMMANDS},
|
{CMD_NAME, COMPLETE_COMMANDS},
|
||||||
{CMD_NAME, LINEBREAK},
|
{CMD_NAME, LINEBREAK},
|
||||||
|
|
@ -590,7 +588,8 @@ t_stackmatch g_stackmatch[] =
|
||||||
{CMD_NAME, TK_BANG},
|
{CMD_NAME, TK_BANG},
|
||||||
{CMD_NAME, SEPARATOR_OP},
|
{CMD_NAME, SEPARATOR_OP},
|
||||||
{CMD_NAME, NEWLINE_LIST},
|
{CMD_NAME, NEWLINE_LIST},
|
||||||
{CMD_NAME, PIPE_SEMI_SEQUENCE},
|
{CMD_NAME, SEQUENCE},
|
||||||
|
// watch !
|
||||||
{CMD_NAME, AND_OR_MAJOR},
|
{CMD_NAME, AND_OR_MAJOR},
|
||||||
{CMD_NAME, TK_WHILE},
|
{CMD_NAME, TK_WHILE},
|
||||||
{CMD_NAME, TK_UNTIL},
|
{CMD_NAME, TK_UNTIL},
|
||||||
|
|
@ -624,7 +623,8 @@ t_stackmatch g_stackmatch[] =
|
||||||
{CMD_SUPERIOR, SEPARATOR_OP},
|
{CMD_SUPERIOR, SEPARATOR_OP},
|
||||||
{CMD_SUPERIOR, NEWLINE_LIST},
|
{CMD_SUPERIOR, NEWLINE_LIST},
|
||||||
{CMD_SUPERIOR, TK_PIPE},
|
{CMD_SUPERIOR, TK_PIPE},
|
||||||
{CMD_SUPERIOR, PIPE_SEMI_SEQUENCE},
|
{CMD_SUPERIOR, SEQUENCE},
|
||||||
|
// watch !
|
||||||
{CMD_SUPERIOR, AND_OR_MAJOR},
|
{CMD_SUPERIOR, AND_OR_MAJOR},
|
||||||
|
|
||||||
{SIMPLE_COMMAND, TK_WHILE},
|
{SIMPLE_COMMAND, TK_WHILE},
|
||||||
|
|
@ -646,7 +646,8 @@ t_stackmatch g_stackmatch[] =
|
||||||
{SIMPLE_COMMAND, TK_BANG},
|
{SIMPLE_COMMAND, TK_BANG},
|
||||||
{SIMPLE_COMMAND, SEPARATOR_OP},
|
{SIMPLE_COMMAND, SEPARATOR_OP},
|
||||||
{SIMPLE_COMMAND, NEWLINE_LIST},
|
{SIMPLE_COMMAND, NEWLINE_LIST},
|
||||||
{SIMPLE_COMMAND, PIPE_SEMI_SEQUENCE},
|
{SIMPLE_COMMAND, SEQUENCE},
|
||||||
|
// watch !
|
||||||
{SIMPLE_COMMAND, AND_OR_MAJOR},
|
{SIMPLE_COMMAND, AND_OR_MAJOR},
|
||||||
{DO_GROUP, CMD_SUPERIOR},
|
{DO_GROUP, CMD_SUPERIOR},
|
||||||
{DO_GROUP, COMPOUND_LIST},
|
{DO_GROUP, COMPOUND_LIST},
|
||||||
|
|
@ -675,7 +676,8 @@ t_stackmatch g_stackmatch[] =
|
||||||
{BRACE_GROUP, TK_BANG},
|
{BRACE_GROUP, TK_BANG},
|
||||||
{BRACE_GROUP, SEPARATOR_OP},
|
{BRACE_GROUP, SEPARATOR_OP},
|
||||||
{BRACE_GROUP, NEWLINE_LIST},
|
{BRACE_GROUP, NEWLINE_LIST},
|
||||||
{BRACE_GROUP, PIPE_SEMI_SEQUENCE},
|
{BRACE_GROUP, SEQUENCE},
|
||||||
|
// watch !
|
||||||
{FNAME, LINEBREAK},
|
{FNAME, LINEBREAK},
|
||||||
{FNAME, TK_PAREN_OPEN},
|
{FNAME, TK_PAREN_OPEN},
|
||||||
{FNAME, TK_LBRACE},
|
{FNAME, TK_LBRACE},
|
||||||
|
|
@ -684,7 +686,8 @@ t_stackmatch g_stackmatch[] =
|
||||||
{FNAME, TK_BANG},
|
{FNAME, TK_BANG},
|
||||||
{FNAME, SEPARATOR_OP},
|
{FNAME, SEPARATOR_OP},
|
||||||
{FNAME, NEWLINE_LIST},
|
{FNAME, NEWLINE_LIST},
|
||||||
{FNAME, PIPE_SEMI_SEQUENCE},
|
{FNAME, SEQUENCE},
|
||||||
|
// watch !
|
||||||
{FUNCTION_BODY, FUNC},
|
{FUNCTION_BODY, FUNC},
|
||||||
{FUNCTION_DEFINITION, LINEBREAK},
|
{FUNCTION_DEFINITION, LINEBREAK},
|
||||||
{FUNCTION_DEFINITION, TK_PAREN_OPEN},
|
{FUNCTION_DEFINITION, TK_PAREN_OPEN},
|
||||||
|
|
@ -694,7 +697,8 @@ t_stackmatch g_stackmatch[] =
|
||||||
{FUNCTION_DEFINITION, TK_BANG},
|
{FUNCTION_DEFINITION, TK_BANG},
|
||||||
{FUNCTION_DEFINITION, SEPARATOR_OP},
|
{FUNCTION_DEFINITION, SEPARATOR_OP},
|
||||||
{FUNCTION_DEFINITION, NEWLINE_LIST},
|
{FUNCTION_DEFINITION, NEWLINE_LIST},
|
||||||
{FUNCTION_DEFINITION, PIPE_SEMI_SEQUENCE},
|
{FUNCTION_DEFINITION, SEQUENCE},
|
||||||
|
// watch !
|
||||||
{UNTIL_CLAUSE, LINEBREAK},
|
{UNTIL_CLAUSE, LINEBREAK},
|
||||||
{UNTIL_CLAUSE, TK_PAREN_OPEN},
|
{UNTIL_CLAUSE, TK_PAREN_OPEN},
|
||||||
{UNTIL_CLAUSE, TK_LBRACE},
|
{UNTIL_CLAUSE, TK_LBRACE},
|
||||||
|
|
@ -702,7 +706,8 @@ t_stackmatch g_stackmatch[] =
|
||||||
{UNTIL_CLAUSE, TK_BANG},
|
{UNTIL_CLAUSE, TK_BANG},
|
||||||
{UNTIL_CLAUSE, SEPARATOR_OP},
|
{UNTIL_CLAUSE, SEPARATOR_OP},
|
||||||
{UNTIL_CLAUSE, NEWLINE_LIST},
|
{UNTIL_CLAUSE, NEWLINE_LIST},
|
||||||
{UNTIL_CLAUSE, PIPE_SEMI_SEQUENCE},
|
{UNTIL_CLAUSE, SEQUENCE},
|
||||||
|
// watch !
|
||||||
{UNTIL_CLAUSE, TK_DO},
|
{UNTIL_CLAUSE, TK_DO},
|
||||||
{UNTIL_CLAUSE, TK_PAREN_CLOSE},
|
{UNTIL_CLAUSE, TK_PAREN_CLOSE},
|
||||||
{UNTIL_CLAUSE, TK_WHILE},
|
{UNTIL_CLAUSE, TK_WHILE},
|
||||||
|
|
@ -720,7 +725,8 @@ t_stackmatch g_stackmatch[] =
|
||||||
{WHILE_CLAUSE, TK_BANG},
|
{WHILE_CLAUSE, TK_BANG},
|
||||||
{WHILE_CLAUSE, SEPARATOR_OP},
|
{WHILE_CLAUSE, SEPARATOR_OP},
|
||||||
{WHILE_CLAUSE, NEWLINE_LIST},
|
{WHILE_CLAUSE, NEWLINE_LIST},
|
||||||
{WHILE_CLAUSE, PIPE_SEMI_SEQUENCE},
|
{WHILE_CLAUSE, SEQUENCE},
|
||||||
|
// watch !
|
||||||
{WHILE_CLAUSE, TK_DO},
|
{WHILE_CLAUSE, TK_DO},
|
||||||
{WHILE_CLAUSE, TK_PAREN_CLOSE},
|
{WHILE_CLAUSE, TK_PAREN_CLOSE},
|
||||||
{WHILE_CLAUSE, TK_WHILE},
|
{WHILE_CLAUSE, TK_WHILE},
|
||||||
|
|
@ -742,7 +748,8 @@ t_stackmatch g_stackmatch[] =
|
||||||
{IF_CLAUSE, TK_BANG},
|
{IF_CLAUSE, TK_BANG},
|
||||||
{IF_CLAUSE, SEPARATOR_OP},
|
{IF_CLAUSE, SEPARATOR_OP},
|
||||||
{IF_CLAUSE, NEWLINE_LIST},
|
{IF_CLAUSE, NEWLINE_LIST},
|
||||||
{IF_CLAUSE, PIPE_SEMI_SEQUENCE},
|
{IF_CLAUSE, SEQUENCE},
|
||||||
|
// watch !
|
||||||
{IF_CLAUSE, TK_DO},
|
{IF_CLAUSE, TK_DO},
|
||||||
{IF_CLAUSE, TK_PAREN_CLOSE},
|
{IF_CLAUSE, TK_PAREN_CLOSE},
|
||||||
{IF_CLAUSE, TK_WHILE},
|
{IF_CLAUSE, TK_WHILE},
|
||||||
|
|
@ -763,7 +770,8 @@ t_stackmatch g_stackmatch[] =
|
||||||
{BRACE_CLAUSE, TK_BANG},
|
{BRACE_CLAUSE, TK_BANG},
|
||||||
{BRACE_CLAUSE, SEPARATOR_OP},
|
{BRACE_CLAUSE, SEPARATOR_OP},
|
||||||
{BRACE_CLAUSE, NEWLINE_LIST},
|
{BRACE_CLAUSE, NEWLINE_LIST},
|
||||||
{BRACE_CLAUSE, PIPE_SEMI_SEQUENCE},
|
{BRACE_CLAUSE, SEQUENCE},
|
||||||
|
// watch !
|
||||||
{BRACE_CLAUSE, TK_DO},
|
{BRACE_CLAUSE, TK_DO},
|
||||||
{BRACE_CLAUSE, TK_PAREN_CLOSE},
|
{BRACE_CLAUSE, TK_PAREN_CLOSE},
|
||||||
{BRACE_CLAUSE, TK_WHILE},
|
{BRACE_CLAUSE, TK_WHILE},
|
||||||
|
|
@ -788,7 +796,8 @@ t_stackmatch g_stackmatch[] =
|
||||||
{CASE_CLAUSE, TK_BANG},
|
{CASE_CLAUSE, TK_BANG},
|
||||||
{CASE_CLAUSE, SEPARATOR_OP},
|
{CASE_CLAUSE, SEPARATOR_OP},
|
||||||
{CASE_CLAUSE, NEWLINE_LIST},
|
{CASE_CLAUSE, NEWLINE_LIST},
|
||||||
{CASE_CLAUSE, PIPE_SEMI_SEQUENCE},
|
{CASE_CLAUSE, SEQUENCE},
|
||||||
|
// watch !
|
||||||
{CASE_CLAUSE, TK_PAREN_CLOSE},
|
{CASE_CLAUSE, TK_PAREN_CLOSE},
|
||||||
{CASE_CLAUSE, CASE_LIST_NS},
|
{CASE_CLAUSE, CASE_LIST_NS},
|
||||||
{CASE_CLAUSE, TK_DO},
|
{CASE_CLAUSE, TK_DO},
|
||||||
|
|
@ -815,7 +824,8 @@ t_stackmatch g_stackmatch[] =
|
||||||
{FOR_CLAUSE, TK_BANG},
|
{FOR_CLAUSE, TK_BANG},
|
||||||
{FOR_CLAUSE, SEPARATOR_OP},
|
{FOR_CLAUSE, SEPARATOR_OP},
|
||||||
{FOR_CLAUSE, NEWLINE_LIST},
|
{FOR_CLAUSE, NEWLINE_LIST},
|
||||||
{FOR_CLAUSE, PIPE_SEMI_SEQUENCE},
|
{FOR_CLAUSE, SEQUENCE},
|
||||||
|
// watch !
|
||||||
{FOR_CLAUSE, TK_DO},
|
{FOR_CLAUSE, TK_DO},
|
||||||
{FOR_CLAUSE, TK_PAREN_CLOSE},
|
{FOR_CLAUSE, TK_PAREN_CLOSE},
|
||||||
{FOR_CLAUSE, TK_WHILE},
|
{FOR_CLAUSE, TK_WHILE},
|
||||||
|
|
@ -849,10 +859,10 @@ t_stackmatch g_stackmatch[] =
|
||||||
{SUBSHELL, TK_BANG},
|
{SUBSHELL, TK_BANG},
|
||||||
{SUBSHELL, SEPARATOR_OP},
|
{SUBSHELL, SEPARATOR_OP},
|
||||||
{SUBSHELL, NEWLINE_LIST},
|
{SUBSHELL, NEWLINE_LIST},
|
||||||
{SUBSHELL, PIPE_SEMI_SEQUENCE},
|
{SUBSHELL, SEQUENCE},
|
||||||
|
// watch !
|
||||||
{SUBSHELL, SEPARATOR_OP},
|
{SUBSHELL, SEPARATOR_OP},
|
||||||
{SUBSHELL, NEWLINE_LIST},
|
{SUBSHELL, NEWLINE_LIST},
|
||||||
{SUBSHELL, PIPE_SEMI_SEQUENCE},
|
|
||||||
{SUBSHELL, TK_DO},
|
{SUBSHELL, TK_DO},
|
||||||
{SUBSHELL, TK_PAREN_CLOSE},
|
{SUBSHELL, TK_PAREN_CLOSE},
|
||||||
{SUBSHELL, TK_WHILE},
|
{SUBSHELL, TK_WHILE},
|
||||||
|
|
@ -873,7 +883,8 @@ t_stackmatch g_stackmatch[] =
|
||||||
{COMPOUND_COMMAND, TK_BANG},
|
{COMPOUND_COMMAND, TK_BANG},
|
||||||
{COMPOUND_COMMAND, SEPARATOR_OP},
|
{COMPOUND_COMMAND, SEPARATOR_OP},
|
||||||
{COMPOUND_COMMAND, NEWLINE_LIST},
|
{COMPOUND_COMMAND, NEWLINE_LIST},
|
||||||
{COMPOUND_COMMAND, PIPE_SEMI_SEQUENCE},
|
{COMPOUND_COMMAND, SEQUENCE},
|
||||||
|
// watch !
|
||||||
{COMPOUND_COMMAND, FUNC},
|
{COMPOUND_COMMAND, FUNC},
|
||||||
{COMPOUND_COMMAND, TK_DO},
|
{COMPOUND_COMMAND, TK_DO},
|
||||||
{COMPOUND_COMMAND, TK_PAREN_CLOSE},
|
{COMPOUND_COMMAND, TK_PAREN_CLOSE},
|
||||||
|
|
@ -905,9 +916,10 @@ t_stackmatch g_stackmatch[] =
|
||||||
{COMMAND, TK_BANG},
|
{COMMAND, TK_BANG},
|
||||||
{COMMAND, SEPARATOR_OP},
|
{COMMAND, SEPARATOR_OP},
|
||||||
{COMMAND, NEWLINE_LIST},
|
{COMMAND, NEWLINE_LIST},
|
||||||
{COMMAND, PIPE_SEMI_SEQUENCE},
|
{COMMAND, SEQUENCE},
|
||||||
{COMMAND, AND_OR_MAJOR},
|
{COMMAND, AND_OR_MAJOR},
|
||||||
{AND_OR_MINOR, PIPE_SEMI_SEQUENCE},
|
{AND_OR_MINOR, SEQUENCE},
|
||||||
|
// watch !
|
||||||
{AND_OR_MINOR, LINEBREAK},
|
{AND_OR_MINOR, LINEBREAK},
|
||||||
{AND_OR_MINOR, TK_PAREN_OPEN},
|
{AND_OR_MINOR, TK_PAREN_OPEN},
|
||||||
{AND_OR_MINOR, TK_LBRACE},
|
{AND_OR_MINOR, TK_LBRACE},
|
||||||
|
|
@ -953,6 +965,8 @@ t_stackmatch g_stackmatch[] =
|
||||||
{PIPE_SEMI_SEQUENCE, SEPARATOR_OP},
|
{PIPE_SEMI_SEQUENCE, SEPARATOR_OP},
|
||||||
{PIPE_SEMI_SEQUENCE, NEWLINE_LIST},
|
{PIPE_SEMI_SEQUENCE, NEWLINE_LIST},
|
||||||
{PIPE_SEMI_SEQUENCE, AND_OR_MAJOR},
|
{PIPE_SEMI_SEQUENCE, AND_OR_MAJOR},
|
||||||
|
{SEQUENCE, PIPE_SEMI_SEQUENCE},
|
||||||
|
{SEQUENCE, SEQUENCE},
|
||||||
{PIPELINE, TK_WHILE},
|
{PIPELINE, TK_WHILE},
|
||||||
{PIPELINE, TK_UNTIL},
|
{PIPELINE, TK_UNTIL},
|
||||||
{PIPELINE, TK_DO},
|
{PIPELINE, TK_DO},
|
||||||
|
|
|
||||||
|
|
@ -26,6 +26,7 @@ t_prodmatch g_prodmatch[] =
|
||||||
{TK_WORD, CMD_WORD, CMD_SUFFIX},
|
{TK_WORD, CMD_WORD, CMD_SUFFIX},
|
||||||
{TK_WORD, CMD_NAME, CMD_SUFFIX},
|
{TK_WORD, CMD_NAME, CMD_SUFFIX},
|
||||||
{TK_WORD, CMD_SUPERIOR, CMD_SUFFIX},
|
{TK_WORD, CMD_SUPERIOR, CMD_SUFFIX},
|
||||||
|
{TK_WORD, PIPE_SEMI_SEQUENCE, CMD_SUFFIX},
|
||||||
{TK_WORD, LINEBREAK, CMD_NAME},
|
{TK_WORD, LINEBREAK, CMD_NAME},
|
||||||
{TK_WORD, TK_PIPE, CMD_NAME},
|
{TK_WORD, TK_PIPE, CMD_NAME},
|
||||||
{TK_WORD, AND_OR, CMD_NAME},
|
{TK_WORD, AND_OR, CMD_NAME},
|
||||||
|
|
@ -43,7 +44,7 @@ t_prodmatch g_prodmatch[] =
|
||||||
{TK_WORD, COMPLETE_CONDITION, CMD_NAME},
|
{TK_WORD, COMPLETE_CONDITION, CMD_NAME},
|
||||||
{TK_WORD, NEWLINE_LIST, CMD_NAME},
|
{TK_WORD, NEWLINE_LIST, CMD_NAME},
|
||||||
{TK_WORD, TK_BANG, CMD_NAME},
|
{TK_WORD, TK_BANG, CMD_NAME},
|
||||||
{TK_WORD, PIPE_SEMI_SEQUENCE, CMD_NAME},
|
{TK_WORD, SEQUENCE, CMD_NAME},
|
||||||
{TK_WORD, SEPARATOR_OP, CMD_NAME},
|
{TK_WORD, SEPARATOR_OP, CMD_NAME},
|
||||||
{TK_WORD, TK_PAREN_OPEN, CMD_NAME},
|
{TK_WORD, TK_PAREN_OPEN, CMD_NAME},
|
||||||
{TK_WORD, TK_LBRACE, CMD_NAME},
|
{TK_WORD, TK_LBRACE, CMD_NAME},
|
||||||
|
|
@ -81,6 +82,7 @@ t_prodmatch g_prodmatch[] =
|
||||||
{TK_NEWLINE, TK_LBRACE, NEWLINE_LIST},
|
{TK_NEWLINE, TK_LBRACE, NEWLINE_LIST},
|
||||||
{TK_NEWLINE, CMD_SUPERIOR, LINEBREAK},
|
{TK_NEWLINE, CMD_SUPERIOR, LINEBREAK},
|
||||||
{TK_NEWLINE, PIPE_SEMI_SEQUENCE, LINEBREAK},
|
{TK_NEWLINE, PIPE_SEMI_SEQUENCE, LINEBREAK},
|
||||||
|
{TK_NEWLINE, SEQUENCE, LINEBREAK},
|
||||||
{TK_NEWLINE, CASE_LIST_NS, NEWLINE_LIST},
|
{TK_NEWLINE, CASE_LIST_NS, NEWLINE_LIST},
|
||||||
{TK_NEWLINE, COMPOUND_LIST, NEWLINE_LIST},
|
{TK_NEWLINE, COMPOUND_LIST, NEWLINE_LIST},
|
||||||
{TK_NEWLINE, COMPLETE_CONDITION, NEWLINE_LIST},
|
{TK_NEWLINE, COMPLETE_CONDITION, NEWLINE_LIST},
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,8 @@
|
||||||
|
|
||||||
char *read_state(t_sym current)
|
char *read_state(t_sym current)
|
||||||
{
|
{
|
||||||
|
if (current == SEQUENCE)
|
||||||
|
return ("SEQUENCE");
|
||||||
if (current == LINEBREAK)
|
if (current == LINEBREAK)
|
||||||
return ("LINEBREAK");
|
return ("LINEBREAK");
|
||||||
if (current == CLOSE_LIST)
|
if (current == CLOSE_LIST)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue