fix(lexer): recongize OR as PIPE
This commit is contained in:
parent
30e30f55e7
commit
fd59d63c47
1 changed files with 12 additions and 8 deletions
|
|
@ -94,39 +94,43 @@ static void set_token_operator(struct token *tok, char *begin, ssize_t size)
|
||||||
if (tok->type != TOKEN_NULL)
|
if (tok->type != TOKEN_NULL)
|
||||||
return;
|
return;
|
||||||
if (strncmp(begin, "&&", size) == 0 && size == 2)
|
if (strncmp(begin, "&&", size) == 0 && size == 2)
|
||||||
|
{
|
||||||
tok->type = TOKEN_AND;
|
tok->type = TOKEN_AND;
|
||||||
|
}
|
||||||
else if (strncmp(begin, "||", size) == 0 && size == 2)
|
else if (strncmp(begin, "||", size) == 0 && size == 2)
|
||||||
|
{
|
||||||
tok->type = TOKEN_OR;
|
tok->type = TOKEN_OR;
|
||||||
|
}
|
||||||
|
|
||||||
else if (strncmp(begin, ">", size) == 0)
|
else if (strncmp(begin, ">", size) == 0 && size == 1)
|
||||||
{
|
{
|
||||||
tok->type = TOKEN_REDIR_RIGHT;
|
tok->type = TOKEN_REDIR_RIGHT;
|
||||||
}
|
}
|
||||||
else if (strncmp(begin, "<", size) == 0)
|
else if (strncmp(begin, "<", size) == 0 && size == 1)
|
||||||
{
|
{
|
||||||
tok->type = TOKEN_REDIR_LEFT;
|
tok->type = TOKEN_REDIR_LEFT;
|
||||||
}
|
}
|
||||||
else if (strncmp(begin, ">>", size) == 0)
|
else if (strncmp(begin, ">>", size) == 0 && size == 2)
|
||||||
{
|
{
|
||||||
tok->type = TOKEN_REDIR_DOUBLE_RIGHT;
|
tok->type = TOKEN_REDIR_DOUBLE_RIGHT;
|
||||||
}
|
}
|
||||||
else if (strncmp(begin, ">&", size) == 0)
|
else if (strncmp(begin, ">&", size) == 0 && size == 2)
|
||||||
{
|
{
|
||||||
tok->type = TOKEN_REDIR_RIGHT_AMP;
|
tok->type = TOKEN_REDIR_RIGHT_AMP;
|
||||||
}
|
}
|
||||||
else if (strncmp(begin, ">|", size) == 0)
|
else if (strncmp(begin, ">|", size) == 0 && size == 2)
|
||||||
{
|
{
|
||||||
tok->type = TOKEN_REDIR_RIGHT_PIPE;
|
tok->type = TOKEN_REDIR_RIGHT_PIPE;
|
||||||
}
|
}
|
||||||
else if (strncmp(begin, "<&", size) == 0)
|
else if (strncmp(begin, "<&", size) == 0 && size == 2)
|
||||||
{
|
{
|
||||||
tok->type = TOKEN_REDIR_LEFT_AMP;
|
tok->type = TOKEN_REDIR_LEFT_AMP;
|
||||||
}
|
}
|
||||||
else if (strncmp(begin, "<>", size) == 0)
|
else if (strncmp(begin, "<>", size) == 0 && size == 2)
|
||||||
{
|
{
|
||||||
tok->type = TOKEN_REDIR_LEFT_RIGHT;
|
tok->type = TOKEN_REDIR_LEFT_RIGHT;
|
||||||
}
|
}
|
||||||
else if (strncmp(begin, "|", size) == 0)
|
else if (strncmp(begin, "|", size) == 0 && size == 1)
|
||||||
{
|
{
|
||||||
tok->type = TOKEN_PIPE;
|
tok->type = TOKEN_PIPE;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue