aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Builtin: Implement unset array supportAndré Aparício2012-07-081-0/+1
|
* Builtin: Implement set builtinAndré Aparício2012-07-031-0/+3
|
* Builtin: implement read builtinAndré Aparício2012-07-031-0/+3
|
* Test: move test_coverage.sh to test/Mu Qiao2011-08-041-2/+2
|
* Doc: create a doc folder for libbash documentationMu Qiao2011-08-041-1/+1
|
* Build: add ABI versionMu Qiao2011-08-041-0/+1
|
* Build: rename libcppbash to libbashMu Qiao2011-08-041-67/+67
| | | | | It's weird if we have one name for our project and another name for the .so file. Now the name is unified.
* Build: add libbash.pc.inMu Qiao2011-08-041-1/+4
|
* Build: install public headersMu Qiao2011-08-031-11/+23
| | | | We need to put all public headers into the include directory.
* Builtin: reimplement the local built-inMu Qiao2011-08-021-0/+2
| | | | | | | 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".
* Utility: add isolated functions for instruoMu Qiao2011-08-021-2/+6
|
* Parser: fix here document startMu Qiao2011-08-021-0/+4
| | | | | The solution is not ideal but we can not generate metadata without it. We can improve it in future when we have better approach.
* Parser&Walker: reimplement export built-inMu Qiao2011-08-021-0/+2
| | | | | Now export built-in will call back to parser grammar in order to support array definition.
* Parser: add back more testsMu Qiao2011-08-021-0/+2
|
* Walker: reimplement the runtime for case statementMu Qiao2011-07-211-0/+1
| | | | Now the test for compound statement is added back.
* Parser: fix builtin/keyword testMu Qiao2011-07-201-0/+2
| | | | Now more tests are uncommented or added.
* Walker: reimplement runtime for parameter expansionMu Qiao2011-07-201-0/+1
|
* Build: remove the time limit optionMu Qiao2011-07-201-1/+1
| | | | Now our parser is simplified and this option is not necessary any more.
* Parser: remove global backtrackingMu Qiao2011-07-201-6/+0
| | | | | | | Now several tests are not working: var_expansion.bash, isolated_functions.bash, compound_command.bash, test_expr.bash, test/ast_printer_test.sh, and test/verify_bashs_test.sh. We will fix them in later commits.
* Build: add antlr flagsMu Qiao2011-07-201-1/+1
|
* Build: use bash to verify test scriptsMu Qiao2011-07-181-13/+11
| | | | | We keep the old style for some tests that behave differently depending on different bash versions.
* Merge branch 'multithreading'Mu Qiao2011-07-051-2/+2
|\
| * Merge remote branch 'betelgeuse/multithread' into multithreadingMu Qiao2011-07-051-2/+2
| |\ | | | | | | | | | | | | | | | | | | | | | Conflicts: src/builtins/source_builtin.cpp src/core/bash_ast.cpp src/core/bash_ast.h utils/instruo.cpp
| | * multithreadPetteri Räty2011-05-181-2/+2
| | |
* | | Builtin: support shift built-inMu Qiao2011-07-031-0/+3
|/ /
* | Utility: improve token printingMu Qiao2011-06-261-0/+1
| | | | | | | | | | 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).
* | Build: relax antlr timeout limitMu Qiao2011-06-261-1/+1
| | | | | | | | | | The CI server cannot do k=1 for some decisions in less than 1 second. Now the limit is relaxed.
* | Build: apply the md5 trick for libbashWalker.hMu Qiao2011-06-261-0/+10
| |
* | Merge branch 'mu/native_code'Mu Qiao2011-06-261-14/+41
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: Makefile.am bashast/features_script/features.sh.ast bashast/gunit/simp_command.gunit scripts/command_execution.bash test/verify_error_output_test.sh
| * | Parser: support writing C++ code in the grammarMu Qiao2011-06-211-16/+41
| | |
* | | Merge remote-tracking branch 'mu/fix_arithmetic'Petteri Räty2011-06-251-0/+1
|\ \ \
| * | | Utility: support printing tokens received by walkerMu Qiao2011-06-221-0/+1
| |/ / | | | | | | | | | | | | It's helpful if ast_printer can print tokens received by walker grammar. Now this is supported with the -w option.
* | | Merge remote-tracking branch 'mu/break_builtin'Petteri Räty2011-06-251-0/+3
|\ \ \ | | | | | | | | | | | | | | | | Conflicts: src/builtins/builtin_exceptions.h
| * | | Builtin: implement break built-inMu Qiao2011-06-231-0/+3
| |/ /
* | | Core: improve current exception usageMu Qiao2011-06-221-1/+0
| | |
* | | Core: add more exceptionsMu Qiao2011-06-221-0/+7
|/ / | | | | | | | | We don't want to use only one exception everywhere. Now more exceptions are added to improve the exception hierarchy.
* | Builtin: support printf built-inMu Qiao2011-06-111-0/+3
| | | | | | | | | | Note that we use boost::format to implement printf so it's not completely the same as bash printf.
* | Build: rebuild libbashWalker.g less oftenPetteri Räty2011-06-101-1/+7
| | | | | | | | | | | | libbashWalker.g must be rebuild only when the set of tokens changes. Now we use a md5 trick to check if the tokens file has really changed instead of relying on modification times.
* | Test: add test for Portage functionsMu Qiao2011-06-091-0/+2
| |
* | Core: fix function handlingMu Qiao2011-06-091-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | When there handle multiple input files (for example, source built-in is called while interpreting), there will be multiple token streams. Then the function index might not be correct as we don't know which stream the function belongs to. Now both the AST and the function index are stored to execute the function at the right index in the right stream. Using single libbashWalker and changing the pointer of the ctns is not working. The reason might be the internal data structures of libbashWalker are broken after the function call. So a new libbashWalker is created every time a function call is made. The current AST is saved in std::stack because new functions may be defined during a function call.
* | Build: turn on -Wconversion -Wsign-conversionMu Qiao2011-06-031-0/+5
| | | | | | | | | | | | -Wconversion -Wsign-conversion is turned on only for our library as Paludis cannot get compiled with them. Code is fixed to respect these flags.
* | Builtin: support eval built-inMu Qiao2011-06-021-0/+2
| |
* | Builtin: fix a bug in inherit built-inMu Qiao2011-06-011-0/+1
| | | | | | | | | | We should use space to separate each value of the global variables. Now this is fixed.
* | Builtin: support continue built-inMu Qiao2011-05-291-0/+3
| |
* | Builtin: support unset built-inMu Qiao2011-05-271-0/+2
| | | | | | | | | | | | | | | | We do not support unsetting array indexes currently. In addition, read-only functions can be unset for now. Note that if no options are supplied, or the -v option is given, each name refers to a shell variable(This behavior is supported by bash 3.2, bash-4.1 tries to unset function if the name doesn't match a variable).
* | Core: adjust interpreter to support unsetMu Qiao2011-05-271-0/+1
| | | | | | | | | | | | | | We didn't not handle local variables and the interface was not helpful. Now the implementation is adjusted to support unset built-in. As we don't support read only functions, unsetting functions will always return true.
* | Builtin: first support for the shopt built-inMu Qiao2011-05-251-0/+3
| | | | | | | | | | No logic is implemented for the built-in. Now it's just used for the detection of shell option usage.
* | Merge remote-tracking branch 'mu/declare_builtin' into reviewPetteri Räty2011-05-241-0/+3
|\ \ | | | | | | | | | | | | | | | | | | | | | Conflicts: scripts/command_execution.bash scripts/command_execution.bash.result scripts/function_def.bash scripts/function_def.bash.result
| * | Builtin: support the declare built-in syntaxMu Qiao2011-05-241-0/+3
| |/ | | | | | | | | There's no actual logic for the built-in right now. Multiple options to the built-in is not supported for now.
* | Core: improve error reportingMu Qiao2011-05-241-1/+2
| | | | | | | | | | Now the script name, line number and char position will be printed out when error occurs. This improvement doesn't cover all cases.