mirror of
https://github.com/RGBCube/serenity
synced 2025-05-30 17:28:10 +00:00
![]() Closes #4283. Heredocs are implemented in a way that makes them feel more like a string (and not a weird redirection, a la bash). There are two tunables, whether the string is dedented (`<<-` vs `<<~`) and whether it allows interpolation (quoted key vs not). To the familiar people, this is how Ruby handles them, and I feel is the most elegant heredoc syntax. Unlike the oddjob that is bash, heredocs are treated exactly as normal strings, and can be used _anywhere_ where a string can be used. They are *required* to appear in the same order as used after a newline is seen when parsing the sequence that the heredoc is used in. For instance: ```sh echo <<-doc1 <<-doc2 | blah blah contents for doc1 doc1 contents for doc2 doc2 ``` The typical nice errors are also implemented :^) |
||
---|---|---|
.. | ||
Tests | ||
AST.cpp | ||
AST.h | ||
Builtin.cpp | ||
CMakeLists.txt | ||
Execution.h | ||
Formatter.cpp | ||
Formatter.h | ||
Forward.h | ||
ImmediateFunctions.cpp | ||
Job.cpp | ||
Job.h | ||
main.cpp | ||
NodeVisitor.cpp | ||
NodeVisitor.h | ||
Parser.cpp | ||
Parser.h | ||
Shell.cpp | ||
Shell.h | ||
SyntaxHighlighter.cpp | ||
SyntaxHighlighter.h |