spotted a big issue with the lexer with the way we handle the parsing errors.
The lexer parses everything and does not stop early in the case of operators following each other like "<><>><><<>><<><>>><><>><<>".
Bash stops early, but we normally would not care except for here_docs, if the lexer picks up "<<" among the garbage, it will start the process of creating a heredoc, taking the prompt away from the user.
Once the heredoc is create, an exception is thrown and the loop in main() goes to the next iteration, but we still have a garbage heredoc we created
spotted a big issue with the lexer with the way we handle the parsing errors. The lexer parses everything and does not stop early in the case of operators following each other like "<><>><><<>><<><>>><><>><<>". Bash stops early, but we normally would not care except for here_docs, if the lexer picks up "<<" among the garbage, it will start the process of creating a heredoc, taking the prompt away from the user. Once the heredoc is create, an exception is thrown and the loop in main() goes to the next iteration, but we still have a garbage heredoc we created