aboutsummaryrefslogtreecommitdiffhomepage
path: root/parse_util.cpp
Commit message (Collapse)AuthorAge
* Remove a redundant implementation of append_syntax_errorGravatar ridiculousfish2015-04-29
|
* Rework error messages to be shorter and to handle more special bash-ismsGravatar ridiculousfish2015-04-29
| | | | | | Example: we can point $* to argv Fixes #1288
* Fix job_or_process_extent with command substitutionGravatar Daniel K2015-01-17
|
* Disallow backgrounding in conditionals and before and/or bool statementsGravatar ridiculousfish2014-11-02
| | | | Fixes #1136
* Remove a bunch of dead code identified by cppcheckGravatar ridiculousfish2014-10-31
|
* Set of fixes for issues identified by cppcheckGravatar ridiculousfish2014-10-30
|
* Improve error reporting for unclosed blocksGravatar ridiculousfish2014-10-14
|
* Clean up string handling in parse_util_detect_errors_in_argumentGravatar ridiculousfish2014-10-05
|
* Use ENV_USER with vars set via `function -a`Gravatar Kevin Ballard2014-10-02
| | | | | | | | ENV_USER is intended to be used when setting any variable whose name is controlled by the user. The names given to `function -a` certainly qualifies. This wasn't an issue in practice because the only restriction ENV_USER imposes is also imposed on ENV_LOCAL, but the rules may change in the future.
* Fix to indent comments in blocks properly (#1710)Gravatar ridiculousfish2014-09-29
| | | | | | | | | | | | | | | | | | | | This makes two changes to parse trees: 1. Unmaterialized nodes no longer have an invalid source location For example, with the code `while false;end` there are no tokens associated with the while loop's job_list, and therefore it is unmaterialized. Previously it would have had a SOURCE_OFFSET_INVALID. But now it has a zero source length, but an offset equal to the end of the while loop (i.e. the semicolon), and a zero length. Correspondingly, the has_source function now checks the length instead of the offset. 2. Special (comment and error) nodes have always been "disconnected," meaning they are not the child of any other node. However, they now have their parent offsets set to whatever the top of the node stack was when the node was encountered. This gives us a sense of which node the comment is "in", e.g. if we are constructing a job list then the comment's parent will be the job list. This lets us determine the comment's indent.
* Allow running executables with $ in their name.Gravatar ridiculousfish2014-09-21
| | | | Fixes #1686
* Allow parse_util_detect_errors to treat incomplete strings as errorsGravatar ridiculousfish2014-07-24
| | | | | Fixes bug where sourcing a file with an unclosed quote would not have a backtrace
* Remove errant debug lineGravatar ridiculousfish2014-07-07
|
* Rename lock_t to mutex_lock_t to fix Solaris compilationGravatar ridiculousfish2014-07-07
| | | | Fixes #1510
* Run restyle.sh to enforce style rules.Gravatar ridiculousfish2014-03-31
|
* Teach parse_util_detect_errors to report invalid builtins, as found inGravatar ridiculousfish2014-03-26
| | | | issue #1252
* Excise use of parser_t's error() functionality. Thread aGravatar ridiculousfish2014-03-21
| | | | | | parse_error_list_t through all of the expand functions, enabling them to report errors more directly. Improve aspects of error reporting for expansion failures.
* Remove additional dead code from old parserGravatar ridiculousfish2014-03-20
|
* Rewrite parser_t::test_args and parser_t::eval_args to use new parserGravatar ridiculousfish2014-03-20
|
* Add some tests for parse_util_detect_errors_in_argumentGravatar ridiculousfish2014-03-20
|
* Fixed various Undefined Behavior occurrences.Gravatar Daniel J. Hofmann2014-03-07
| | | | | | | | | | | | | | | | | Conditionally uninitialized: - builtin_commandline.cpp:577 - expand.cpp:869 - parse_util.cpp:1036 Initialization of POD structs: - event.cpp:61 - autoload.cpp:22 References used with va_start: - common.cpp:608:18 Found with clang-3.4's awesome -Wconditional-uninitialized, -Wmissing-field-initializers and -Wvarargs.
* Support for error detection in arguments in new parser. Restores errorGravatar ridiculousfish2014-03-04
| | | | reporting for bad arguments (e.g. with bad variable names)
* Revert "Merge pull request #1317 from pullreq/cpp"Gravatar ridiculousfish2014-02-28
| | | | | | | This reverts commit 74135c0600d5dcc40d396d0e7293c17b8d4bdaa7, reversing changes made to 6d749789ce240a3e6f1447777db63fd8e7525560. See discussion in #1317
* Fixes .c -> .cpp in comments. For doxygen.Gravatar Geoff Nixon2014-02-27
|
* Reimplement exec parsing. Instead of special-casing exec as a command,Gravatar ridiculousfish2014-02-13
| | | | | | promote it to a decoration (like 'command' or 'builtin'). This makes tab completion and syntax highlighting treat exec's first argument as a command and is otherwise a nice simplification. Fixes #1300
* Highlight the entire variable name, not just the dollar sign. Fixes #1201Gravatar ridiculousfish2014-02-03
|
* Update style and formatting to conform to fish style guide.Gravatar ridiculousfish2014-01-15
|
* Fix for issue where unterminated quotes would attempt to be executed,Gravatar ridiculousfish2014-01-14
| | | | instead of continuing edit onto the next line.
* Correctly report errors for 'and' and 'or' in pipelines with new parserGravatar ridiculousfish2014-01-13
|
* Improve the 'This command can not be used in a pipeline' message toGravatar ridiculousfish2014-01-13
| | | | actually name the command
* Eliminate class parse_tGravatar ridiculousfish2014-01-12
|
* Hook up for statements, if statements, and function definition in newGravatar ridiculousfish2013-12-27
| | | | parser
* Clean up some error messages. Don't show the line in the error messageGravatar ridiculousfish2013-12-16
| | | | if it's the first line and we're interactive, since then it's obvious
* Initial work on backtrace support with new parserGravatar ridiculousfish2013-12-15
|
* Better support for parse errors in indentingGravatar ridiculousfish2013-12-08
|
* Rewriting indenting functionality to use new parserGravatar ridiculousfish2013-12-08
|
* Merge branch 'master' into astGravatar ridiculousfish2013-10-27
|\ | | | | | | | | Conflicts: complete.cpp
| * Fix formattingGravatar ridiculousfish2013-10-26
| |
* | Merge branch 'master' into astGravatar ridiculousfish2013-10-16
|\| | | | | | | | | Conflicts: parse_util.cpp
| * Fix for buffer overflows identified by libgmallocGravatar ridiculousfish2013-10-16
| |
* | Syntax highlighting for command substitutionsGravatar ridiculousfish2013-10-08
| |
* | Merge branch 'master' into ast_no_templatesGravatar ridiculousfish2013-10-06
|\| | | | | | | | | | | Conflicts: configure.ac exec.cpp
| * Make tok_last_type return an enum token_type instead of intGravatar ridiculousfish2013-09-30
| |
| * Fix for parse_util_token_extent doing the wrong thing inside a commandGravatar ridiculousfish2013-09-21
| | | | | | | | substitution. Fixes https://github.com/fish-shell/fish-shell/issues/833
* | Improvements to new parser. All functions and completions now parse.Gravatar ridiculousfish2013-07-22
|/
* Next stab at abbreviations. Highlighting should work.Gravatar ridiculousfish2013-07-19
|
* Make parse_util_locate_cmdsubst return the innermost command substitution ↵Gravatar ridiculousfish2013-07-17
| | | | | | instead of the outermost. Fixes https://github.com/fish-shell/fish-shell/issues/913
* More cleanup based on static analysisGravatar ridiculousfish2013-02-16
| | | | https://github.com/fish-shell/fish-shell/issues/575
* Remove tok_destroyGravatar ridiculousfish2012-11-21
|
* Work towards refactoring tokenizer to be a real objectGravatar ridiculousfish2012-11-21
|