ridiculousfish
c53ee263d8
Improve parse tree type safety
...
This merges a set of changes to improve the type safety of the fish parse
tree, in preparation for modifying fish grammar in 3.0. It expresses the
fish grammar via a new file parse_grammar.h. It then adds a new type
tnode_t parametrized on grammar elements, with typesafe access to its
children.
The idea here is to make it easy to change the fish grammar, and have the
compiler report code locations that must to be updated.
Merge branch 'threeparse'
2018-01-20 14:02:44 -08:00
ridiculousfish
0f8e8d1cea
Migrate tnode implementation to tnode.cpp
...
Also improve commenting.
2018-01-20 13:33:09 -08:00
ridiculousfish
094e853a20
Migrate tnode_t into new header tnode.h
2018-01-20 12:15:28 -08:00
ridiculousfish
1c2943bd8b
Make statement_is_in_pipeline a free typesafe function
2018-01-20 11:45:43 -08:00
ridiculousfish
194f7f34d9
Eliminate parse_node_tree::find_nodes
2018-01-20 11:45:43 -08:00
ridiculousfish
242512f0df
Migrate argument_list_is_root out of parse_node_tree_t
2018-01-20 11:45:43 -08:00
ridiculousfish
c1b60fa8e1
Remove header_node_for_block_statement
2018-01-20 11:45:43 -08:00
ridiculousfish
d7c28c9316
Eliminate job_should_be_backgrounded
2018-01-20 11:45:43 -08:00
ridiculousfish
3e7e92dfff
Remove specific_statements_for_job
2018-01-20 11:45:43 -08:00
ridiculousfish
05e8cf13f7
Eliminate parse_execution_context_t::get_child
2018-01-20 11:45:43 -08:00
ridiculousfish
5e4e0dab2c
Convert run_job_list to tnode_T
2018-01-20 11:45:43 -08:00
ridiculousfish
4c93cece58
Convert run_1_job to tnode_t
2018-01-20 11:45:43 -08:00
ridiculousfish
fa0f552fe9
Convert populate_block_process to tnode_t
2018-01-20 11:45:43 -08:00
ridiculousfish
2bf96493fc
Continued adoption of tnode in parse_execution.cpp
2018-01-20 11:45:43 -08:00
ridiculousfish
9c88d71e2f
Convert handle_command_not_found to tnode_t
2018-01-20 11:45:43 -08:00
ridiculousfish
298db6e11a
Convert populate_plain_process to tnode_t
2018-01-20 11:45:43 -08:00
ridiculousfish
8a14a4a5ff
Continued adoption of tnode_t in parse_execution
...
Migrate boolean statements
2018-01-20 11:45:43 -08:00
ridiculousfish
7a3d5ddeae
Convert run_begin_statement to tnode_t
2018-01-20 11:45:43 -08:00
ridiculousfish
6f99c9a904
Adopt tnode_t in run_function_statement
2018-01-20 11:45:43 -08:00
ridiculousfish
edc3d92eda
Adopt tnode in run_while_statement
2018-01-20 11:45:43 -08:00
ridiculousfish
554bef93ba
Switch run_switch_statement to tnode_t
2018-01-20 11:45:43 -08:00
ridiculousfish
3981accf05
Adopt tnode_t in run_if_statement
2018-01-20 11:45:43 -08:00
ridiculousfish
ce173e86b5
Adopt tnode_t in run_for_statement
2018-01-20 11:45:43 -08:00
ridiculousfish
b23c6ebcba
Migrate run_block_statement to tnode_t
2018-01-20 11:45:43 -08:00
ridiculousfish
cdc0167ba1
Switching symbol_job to use tnode_t in parse_execution.cpp
2018-01-20 11:45:43 -08:00
ridiculousfish
4768c42f5d
Early adoption of tnode_t in parse_execution.cpp
2018-01-20 11:45:40 -08:00
ridiculousfish
6f4db9f8ad
Add type safety to tnode_t::try_get_child
...
Detect when no options in an alternation type match the requested type,
and ensure such cases do not compile.
2018-01-20 11:31:40 -08:00
ridiculousfish
f0f56a6910
Teach decoration_for_plain_statement about tnode, rename it get_decoration
2018-01-20 11:31:40 -08:00
ridiculousfish
84dcb24682
Namespace alias grammar to 'g' in highlight.cpp
2018-01-20 11:31:40 -08:00
ridiculousfish
d4f9fcc7c7
Adopt tnode_t in detect_errors_in_backgrounded_job
2018-01-20 11:31:40 -08:00
ridiculousfish
539e9bf970
Continued adoption of tnode_t in highlight.cpp
2018-01-20 11:31:40 -08:00
ridiculousfish
b0c892d26f
More tnode_t adoption in highlight.cpp
2018-01-20 11:31:40 -08:00
ridiculousfish
18a120d00e
Migrate command_for_plain_statement to tnode_t
2018-01-20 11:31:40 -08:00
ridiculousfish
f16ae9348f
Continued adoption of tnode_t in complete.cpp and highlight.cpp
2018-01-20 11:31:40 -08:00
ridiculousfish
baa0c73d81
Adopt tnode_t in autosuggest_parse_command()
2018-01-20 11:31:40 -08:00
ridiculousfish
55fc10ea6e
Migrate parse_util_detect_errors_in_argument to tnode_t
2018-01-20 11:31:40 -08:00
ridiculousfish
f69055b5e9
Adopt tnode_t in parse_util_detect_errors
2018-01-20 11:31:40 -08:00
ridiculousfish
4d68877f51
tnode_t adoption of find_nodes
2018-01-20 11:31:40 -08:00
ridiculousfish
618996a166
Some adopton of tnode_t in complete.cpp
2018-01-20 11:31:40 -08:00
ridiculousfish
cfe355554c
Adopt tnode in reader_expand_abbreviation_in_command
2018-01-20 11:31:40 -08:00
ridiculousfish
3d4dd4abef
Introduce tnode
2018-01-20 11:31:40 -08:00
ridiculousfish
cf116e4880
Rejigger alts
...
Messing around
2018-01-20 11:31:40 -08:00
ridiculousfish
a012320a9a
Add grammar in type system
2018-01-20 11:31:40 -08:00
David Adam
0a4883a6b8
Xcode build: use the same files as the CMake build for versioning
...
Closes #4671 .
2018-01-19 22:31:08 +08:00
Ivan Trubach
6066e243e0
Fixed suspend --force conditions
2018-01-19 11:23:55 +01:00
Birger J. Nordølum
fde647214d
brew.fish: added cask completion & tweaks
2018-01-18 18:05:14 +01:00
Thom Chiovoloni
7b88187310
Add ability to autosave functions at the end of funced
2018-01-18 18:03:52 +01:00
David Adam
b6202c3c86
[cmake] actually use libintil headers/libraries if detected
...
Closes #4663 .
2018-01-17 07:50:42 +08:00
Thom Chiovoloni
42fa841573
Fix #4480 by using a temporary file with a redirect to the correct location.
2018-01-16 18:38:20 +01:00
Thom Chiovoloni
7dae40a240
Revert "Work around OS X issue with dropped #fragment in launched URLs"
...
This reverts commit 80b658e247
.
2018-01-16 18:38:20 +01:00