aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar ridiculousfish <corydoras@ridiculousfish.com>2014-03-25 00:34:22 -0700
committerGravatar ridiculousfish <corydoras@ridiculousfish.com>2014-03-25 00:34:22 -0700
commita4cafaad2e2eabcf3262ae503d616d767c9d0f4d (patch)
tree9bb4a8e00ad3929355e5db153d24348d85322720
parent0d64bbed46f07f78a24449139d11e7fafe968e4e (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.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/parser.cpp b/parser.cpp
index d512f77e..077d7874 100644
--- a/parser.cpp
+++ b/parser.cpp
@@ -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
{