summaryrefslogtreecommitdiffstats
path: root/parsing/lexer.sh
diff options
context:
space:
mode:
Diffstat (limited to 'parsing/lexer.sh')
-rw-r--r--parsing/lexer.sh40
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
;;