diff options
Diffstat (limited to 'parsing/lexer.sh')
-rw-r--r-- | parsing/lexer.sh | 40 |
1 files changed, 29 insertions, 11 deletions
diff --git a/parsing/lexer.sh b/parsing/lexer.sh index 1f40138..bf6ad7d 100644 --- a/parsing/lexer.sh +++ b/parsing/lexer.sh @@ -113,24 +113,42 @@ next_io() case "${c}" in '<') pgetc - case "${c}" in '<') - pgetc - case "${c}" in '-') + case "${c}" in + '<') + pgetc + case "${c}" in '-') + pgetc + tok=T_DLESSDASH + ;; + esac + tok=T_DLESS + ;; + '&') pgetc - tok=T_DLESSDASH + tok=T_LESSAND + ;; + '>') + pgetc + tok=T_LESSGREAT ;; - esac - tok=T_DLESS - ;; esac tok=T_LESS ;; '>') pgetc - case "${c}" in '>') - pgetc - tok=T_DGREAT - ;; + case "${c}" in + '>') + pgetc + tok=T_DGREAT + ;; + '&') + pgetc + tok=T_GREATAND + ;; + '|') + pgetc + tok=T_CLOBBER + ;; esac tok=T_GREAT ;; |