| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
When a variable expansion applies some string operation like replace on
the whole array, apply the operation to every element in the array.
|
|
|
|
|
|
|
| |
The order of the arguments for commands in the AST was changed, it was
'command_atom redirection', and now it's 'redirection command_atom'.
This is due to the need of having the redirection set before evaluating
the expression.
|
| |
|
| |
|
|
|
|
|
| |
const std::unique_ptr provides everything that boost::scoped_ptr does so
no need to rely on it.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
We need to put all public headers into the include directory.
|
| |
|
|
|
|
|
|
|
| |
Now the local built-in is not handled only in parser grammar so that
expansions can happen for the arguments. '=' is not checked in the local
and export built-in anymore because we do not generate empty AST for
"export foo".
|
|
|
|
| |
$* can be shifted so it's not read-only.
|
|
|
|
|
| |
Now export built-in will call back to parser grammar in order to support
array definition.
|
| |
|
|
|
|
|
|
|
|
| |
The \newline is treated as a line continuation. Handling \newline in
the hidden channel is not ideal as it might break tokens. For example,
" \newline " will emit two BLANK tokens, which is not what we want.
Now \newline is erased before parsing. The drawback is it might not be
right when handling single quoted string and comments.
|
| |
|
|
|
|
|
| |
We keep the old style for some tests that behave differently depending
on different bash versions.
|
|
|
|
|
| |
Backtracking is reduced by left refactoring function definition and bash
command.
|
|\ |
|
| |\
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/builtins/source_builtin.cpp
src/core/bash_ast.cpp
src/core/bash_ast.h
utils/instruo.cpp
|
| | |
| | |
| | |
| | |
| | | |
bash_ast::interpret_with was leaking memory when return_exception was
thrown when interpreting.
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
|/ /
| |
| |
| |
| |
| | |
Now make doxygen-doc doesn't show so many warnings. The documentation
for following things is not fixed: unit tests, private members, some
built-in constructors.
|
| |
| |
| |
| |
| | |
Now the ast_printer -t will print out the tokens if the file can be
lexed properly (previously it required the file to be parsed properly).
|
| |
| |
| |
| |
| |
| |
| | |
POSIX requires signed long integer for arithmetic expansion. $? is
implemented in the interpreter class now because POSIX doesn't require
the type of $? to be long. It would cause conversion in many places if
we used long for $?.
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | | |
It's helpful if ast_printer can print tokens received by walker grammar.
Now this is supported with the -w option.
|
|\ \ \
| | | |
| | | |
| | | |
| | | | |
Conflicts:
src/builtins/builtin_exceptions.h
|
| | | | |
|
| |/ / |
|
| | | |
|
| | | |
|
|/ /
| |
| |
| |
| | |
We don't want to use only one exception everywhere. Now more exceptions
are added to improve the exception hierarchy.
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
bashast/libbashWalker.g
src/core/interpreter.cpp
src/core/tests/interpreter_test.cpp
|
| | |
| | |
| | |
| | |
| | | |
This commit is intended to support $- so no method for changing bash
options is added.
|
| | |
| | |
| | |
| | |
| | | |
The shopt built-in only changes additional shell optional behavior. So
we change the name to avoid conflicts with the set built-in.
|
| | | |
|
|/ /
| |
| |
| |
| | |
The interpreter_exception is part of our public API so we put it under
libbash namespace.
|
| |
| |
| |
| |
| | |
Note that we use boost::format to implement printf so it's not
completely the same as bash printf.
|