mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 12:48:10 +00:00
Shell: Start implementing a POSIX-compliant parser
The parser is still very much a work-in-progress, but it can currently parse most of the basic bits, the only *completely* unimplemented things in the parser are: - heredocs (io_here) - alias expansion - arithmetic expansion There are a whole suite of bugs, and syntax highlighting is unreliable at best. For now, this is not attached anywhere, a future commit will enable it for /bin/sh or a `Shell --posix` invocation.
This commit is contained in:
parent
2dc1682274
commit
2a276c86d4
14 changed files with 3444 additions and 28 deletions
|
@ -7,6 +7,7 @@
|
|||
#include "Formatter.h"
|
||||
#include "AST.h"
|
||||
#include "Parser.h"
|
||||
#include "PosixParser.h"
|
||||
#include <AK/Hex.h>
|
||||
#include <AK/ScopedValueRollback.h>
|
||||
#include <AK/TemporaryChange.h>
|
||||
|
@ -15,7 +16,7 @@ namespace Shell {
|
|||
|
||||
DeprecatedString Formatter::format()
|
||||
{
|
||||
auto node = m_root_node ? m_root_node : Parser(m_source).parse();
|
||||
auto node = m_root_node ?: (m_parse_as_posix ? Posix::Parser(m_source).parse() : Parser(m_source).parse());
|
||||
if (m_cursor >= 0)
|
||||
m_output_cursor = m_cursor;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue