aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'bashast/libbashWalker.g')
-rw-r--r--bashast/libbashWalker.g7
1 files changed, 4 insertions, 3 deletions
diff --git a/bashast/libbashWalker.g b/bashast/libbashWalker.g
index 9157574..0c21ccd 100644
--- a/bashast/libbashWalker.g
+++ b/bashast/libbashWalker.g
@@ -736,18 +736,19 @@ argument[std::vector<std::string>& args, bool split]
}
};
-logic_command_list
+logic_command
@declarations {
bool logic_and;
}
- :command
- |^((LOGICAND { logic_and = true; } | LOGICOR { logic_and = false; }) command {
+ : ^((LOGICAND { logic_and = true; } | LOGICOR { logic_and = false; }) logic_command_list {
if(logic_and ? !walker->get_status() : walker->get_status())
command(ctx);
else
seek_to_next_tree(ctx);
});
+logic_command_list: command | logic_command;
+
command_list: ^(LIST logic_command_list+);
compound_command