All the changes for Ceetah, the C AST builder interface, will be kept in this file.
This project follows semantic versioning.
Nothing yet.
- Conditional expression and statement support
- Block support
- Array type support (e.g.
int[9]
) - More binary operations added:
- Equality (
==
) - Inequality (
!=
) - Greater than (
>
) - Less than (
<
) - Greater than or equal to (
>=
) - Less than or equal to (
<=
)
- Equality (
- [project change] Add CI integration
- Build artificats are now put into their own folders in the build directory:
bin
for executables andlib
for libraries
- Fixed Linux builds by including the
<memory>
header when necessary
- String literals
- Function calls
- Type definitions
- Function pointer type support 👍
- Binary operations (
+
,-
,*
,/
) - Multi expressions (a.k.a. commma-sequenced expressions; e.g.
someExpression, someOtherExpression
) - Preprocessor undefinitions (e.g.
#undef FOOBAR
)
- Smart pointers here, smart pointers there, smart pointers everywhere
- We've switched to smart pointers for, well, everything, because Ceetah needs to create many nodes and it usually can't keep track of them all
- Plus, laziness
- Expression indirection/pointer creation
- Expression dereference/lookup creation
- Assignment expressions
- Variable declarations should be using
extern
---otherwise, they're just definitions without initiailzers. Whoops! - Builders should now properly enter and exit insertion points
- Basic preprocessor directives
if
directivedefine
directiveinclude
directive
- Integer literals
- Variable declaration and definition
- Function declaration and definition
- Type creation
return
support- BUILDERS! (honestly, they're great)
- Simple expression creation using the various
create*
methods - Automatic insertion point management (builders must still be notified when you want to exit the current block, though)
- Insertion point hopping (basically, you can insert nodes wherever the heck you want)
- Easy code stringification
- (for more on why builders are great, check out the comment on the
Builder
class inbuilder.hpp
)
- Simple expression creation using the various