Aaron Gyes
9c1b3d6712
fix cppcheck missing return errors
2022-04-08 17:59:09 -07:00
Aaron Gyes
549fae1400
ast.h: remove unused private member finished()
2021-12-12 13:05:48 -08:00
ridiculousfish
a6010519df
Put ast_t::populator_t into an anonymous namespace
...
This is part of an effort to reduce the number of weak symbols, so we
can help prevent ODR errors. No functional change here.
2021-09-30 11:33:03 -07:00
ridiculousfish
5f7e03ccf4
Introduce noncopyable_t and nonmovable_t
...
These are little helper types that allow us to get rid of lots of
'=delete' declarations.
2021-07-23 11:19:42 -07:00
Fabian Homborg
2e55e34544
Reformat
2020-11-22 14:39:48 +01:00
Johannes Altmanninger
b947e360db
Allow newlines after && and ||
...
We do the same for pipes (#1285 ). This matches POSIX sh behavior.
2020-08-06 21:24:26 +02:00
ridiculousfish
3319e308d0
Make ast::node_t non-virtual
...
Eliminate its vtable to save 8 bytes per node, which is a lot!
2020-07-12 16:57:30 -07:00
ridiculousfish
a8eb2a6813
Make union_ptr_t's constructor statically type safe
...
Ensure it cannot be constructed from the wrong node type.
2020-07-12 16:57:30 -07:00
ridiculousfish
8d37be2916
ast lists to use new[] instead of vector
...
Because the list is not changed after construction, we do not need
the vector's capacity field. This reduces the size of lists from 48
to 32 bytes.
2020-07-12 16:57:30 -07:00
ridiculousfish
c12ab7a674
Rearrange ast::node_t fields to improve packing
2020-07-12 16:57:30 -07:00
ridiculousfish
dfeec433d8
Reduce allocation churn in parse_util_detect_errors
...
Reuse a single string for storage.
2020-07-12 16:57:30 -07:00
ridiculousfish
9ee5075fc3
Reformat CPP files
2020-07-12 12:21:25 -07:00
ridiculousfish
225470493b
Make parse_token_type_t an enum class
...
Improves type safety.
2020-07-09 14:22:04 -07:00
ridiculousfish
35cb449aa1
Make parse_statement_decoration_t a class enum
2020-07-07 16:28:39 -07:00
ridiculousfish
4d4455007d
Introduce a new fish ast
...
This is the first commit of a series intended to replace the existing
"parse tree" machinery. It adds a new abstract syntax tree and uses a more
normal recursive descent parser.
Initially there are no users of the new ast. The following commits will
replace parse_tree -> ast for all usages.
2020-07-04 14:58:02 -07:00