34#include <nlohmann/json.hpp>
61 nlohmann::basic_json<nlohmann::ordered_map>
Logical AND operator node (executes right only if left succeeded).
Definition shell_node.h:1159
Extract positional argument from the session (e.g. $1, $2).
Definition shell_node.h:536
Evaluates a subcommand in background semantics (implementation-specific).
Definition shell_node.h:1002
Represents a break statement inside a loop.
Definition shell_node.h:1466
Command block executed in a subshell (may isolate environment changes).
Definition shell_node.h:960
A sequence of evaluable nodes executed in order (a block).
Definition shell_node.h:920
Represents a command expression composed of expandable children.
Definition shell_node.h:229
Wraps a command expression and executes it as a command.
Definition shell_node.h:885
Represents a continue statement inside a loop.
Definition shell_node.h:1418
Dollar-argument with "double-hop" semantics (implementation-specific).
Definition shell_node.h:696
Extract an argument referenced with a leading $ (e.g. $@, $* or $1).
Definition shell_node.h:657
Command-substitution node used in $() or backticks when appearing inside other contexts.
Definition shell_node.h:776
Special dollar items such as $?, $#, $$, etc. (implementation-specific).
Definition shell_node.h:816
Dollar-variable with double-hop lookup semantics.
Definition shell_node.h:735
Dollar-prefixed variable node (may have different semantics).
Definition shell_node.h:618
Iterative 'for' loop node that iterates over an expandable sequence.
Definition shell_node.h:1513
Create function and adds to the shell session.
Definition shell_node.h:1702
Conditional execution node (if-then-else).
Definition shell_node.h:1345
Represents a no-op command node (useful as placeholder).
Definition shell_node.h:856
Logical OR operator node (executes right only if left failed).
Definition shell_node.h:1247
Pipe operator node (connects stdout of left to stdin of right).
Definition shell_node.h:1203
Command-substitution string node (backticks or $(...)).
Definition shell_node.h:362
Double-quoted string node.
Definition shell_node.h:339
Simple (unquoted) string node.
Definition shell_node.h:317
Node that evaluates an expandable expression as a test/condition.
Definition shell_node.h:1296
A single Unicode codepoint node.
Definition shell_node.h:450
'Until' loop node that executes the iterative block until the condition succeeds.
Definition shell_node.h:1646
Extract a named shell variable from the session environment.
Definition shell_node.h:577
Visitor that converts shell nodes into JSON.
Definition shell_node_visitor_json.h:48
nlohmann::basic_json< nlohmann::ordered_map > visit_node(shell_session &oSession, const shell_node *pRawNode) override
Visit a generic shell node and return its JSON representation.
Definition shell_node_visitor_json.cpp:42
Generic visitor for shell AST nodes.
Definition shell_node_visitor.h:46
nlohmann::ordered_json visit_type
Type of data resulting of visit.
Definition shell_node_visitor.h:52
While-loop node executing the iterative block while the condition succeeds.
Definition shell_node.h:1586
A plain word token node.
Definition shell_node.h:404
Base class for all parser nodes.
Definition shell_node.h:116
Represents an execution environment for a shell instance.
Definition shell_session.h:57
BashSpark main namespace.
Definition command.h:39
Defines template bs::shell_node_visitor