155 [[nodiscard]] std::unique_ptr<shell_node_command_expression>
176 void parse_command_group_oper(
177 std::vector<evaluable_ptr> &vExpressions,
286 std::size_t m_nDepth = 0;
A class for input stream behavior with a character type.
Definition fakestream.h:70
Parses tokens into an evaluable shell AST.
Definition shell_parser.h:53
std::unique_ptr< shell_node_evaluable > evaluable_ptr
Unique pointer to an evaluable shell node (sugar syntax).
Definition shell_parser.h:58
void increase_depth(std::size_t nPos)
Increase the nesting depth and check limits.
Definition shell_parser.cpp:104
static evaluable_ptr parse(ifakestream &oIstream)
Parse input into an evaluable AST.
Definition shell_parser.cpp:80
static constexpr std::size_t MAX_DEPTH
Maximum recursion depth allowed for nested constructs.
Definition shell_parser.h:62
void decrease_depth()
Decrease the current nesting depth.
Definition shell_parser.cpp:114
std::unique_ptr< shell_node_expandable > expandable_ptr
Unique pointer to an expandable shell node (sugar syntax).
Definition shell_parser.h:56
static constexpr std::size_t MAX_DEPTH
Maximum depth the command interpreter can reach.
Definition shell.h:66
A class that manages a collection of shell tokens for processing.
Definition token_holder.h:47
Generic input and output stream classes with character types.
BashSpark main namespace.
Definition command.h:39
shell_token_type
Enumeration of types of tokens that can be parsed from shell commands.
Definition shell_tokenizer.h:44
shell_node_type
Types of nodes recognized by the shell parser.
Definition shell_node.h:56
parse_mode
Enumeration for different parsing modes.
Definition shell_keyword.h:65
shell_keyword
Enumeration of shell keywords for scripting.
Definition shell_keyword.h:39
Defines the bs::shell interface and built-in shell functionality.
Defines enum bs::shell_keyword.
Defines the shell node hierarchy used by the parser.
Defines class bs::shell_tokenizer.