Releases: kingletbv/carburetta
Carburetta v0.8.28
- #line is emitted by default, substantially improving the usability of carburetta (compilers will now jump to the .cbrt location and not the generated code, whenever there is a compilation error.)
- You can generate an internal "symbol_names_" name table for all the symbol ordinals.
- Will now read from stdin if '-' is specified for the input grammar filename.
Carburetta v0.8.26
%visitand%visit_paramsdirectives, allowing users to visit all symbol (tokens and non-terminals) currently inside a stack, executing a custom snippet of code depending on the type.
Carburetta v0.8.24
-
Fixed a bug where the generated parser would not correctly handle
%type with no %constructor, %destructor or %move (so a plain %type
with no initialization, destruction, nor any special data moving
operation).
This would cause the parser not to correctly move the data when
resizing buffers. This did not impact %class which defines these
operations implicitly. -
Disabled the address sanitizer (ASAN) on MSVC for the x86 debug
build, it trips a bug that appears to be unrelated to Carburetta
itself. ASAN is still enabled for the x64 build. -
Added the "kc" C99 compiler front-end and interpreter as an example.
Currently only builds on the MSVC build for x64 because the interpeter
uses x64 assembly to build a trampoline for function pointers, which
is both platform and machine specific (hence MSVC x64). The build
currently only builds a library and not yet a test program, and so is
a work in progress.
Carburetta v0.8.22
- Fixes and a substantial ease-of-life change on %move; if you are on C (%type) and were having issues with needing
%move to explicitly null out the source, this will help immensely. - %on_scan_token snippet, $set_token(token-id) special function.
- For a more complete OpenGL ES 2.0 GLSL implementation example: https://github.com/kingletbv/aex-gl
- Substantial updates to the Tilly machine code instruction tile matcher. Still work in progress.
Carburetta v0.8.20
- C++ generated code should rely on <utility> for std::move and not assume <type_traits> pulls it in (crit fix; gcc recent versions won't complete
the build otherwise.)
Carburetta v0.8.18
- UTF-8 is now the default encoding breaking change
Use --x-raw to specify the old raw behavior. - Plain %type with no %constructor, %destructor or %move
now fixed. - Fix for %% .. %% code snippets inside { ... }
- New Tilly example (work in progress)
Carburetta v0.8.16
%header%section directive%externcand%no_externcdirectives- New default behavior on when to generate
extern "C"in the header - Critical fixes
- Test case t4 improved
See CHANGES.txt for details, or examine the manual at https://carburetta.com/manual.html
Carburetta v0.8.14
-
%common_classdirective -
<prefix>token_common_data()function -
important fixes, in particular if you were using
%common_typewith%movebefore. -
test cases t12, t13, t14, t15
See CHANGES.txt for details, or examine the manual at https://carburetta.com/manual.html
Carburetta v0.8.12
-
%class directive (C++ specific)
-
%move directive
-
t9/t10/t11 test cases
-
fixed unwanted whitespace injection in generated code
Please see CHANGES.txt for details, or examine the manual at https://carburetta.com/manual.html
Carburetta v0.8.10
-
bring C++ back up from regressions - please be careful to read
about the limitations in the manual. -
add t8 C++ simple calculator test case
-
added GNU style --version and --help flags
-
clear warnings across MSVC, GCC and Clang on C and C++.
-
various important fixes.