diff options
author | 2014-03-25 00:34:22 -0700 | |
---|---|---|
committer | 2014-03-25 00:34:22 -0700 | |
commit | a4cafaad2e2eabcf3262ae503d616d767c9d0f4d (patch) | |
tree | 9bb4a8e00ad3929355e5db153d24348d85322720 | |
parent | 0d64bbed46f07f78a24449139d11e7fafe968e4e (diff) |
Turn on the new "ast" parser by default for execution.
This change replaces fish's execution model, and obviates much of
parser_t. Instead of parsing fish code into a sequence of
commands-arguments, this reifies syntactic constructs into a grammar,
builds a parse tree, and executes that. This provides a big
simplification and (sometimes) performance boost. fish while loops
become C++ while loops, etc.
There are some known regressions in error reporting, which ought to be
fixed in the soon-to-be-merged parser_cleanup branch. There's also
legitimate changes in edge cases. For example, `command builtin ...` now
executes a command called "builtin" instead of doing something else
weird. The most significant change is that syntactic elements must be
unexpected: for example, single quoting 'command' will now cause it to
not be recognized. This should be fixed soon.
Please open issues for any regressions you find!
-rw-r--r-- | parser.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -3145,7 +3145,7 @@ bool parser_use_ast(void) env_var_t var = env_get_string(L"fish_new_parser"); if (var.missing_or_empty()) { - return 0; + return 1; } else { |