Releases: ben-marshall/verilog-parser
v0.2.31
Changes to the internal syntax tree which will break compatibility with programs accessing the ast_module_declaration
object's always_blocks
and initial_blocks
members.
- Refactored always and initial block representation to reduce indirection in finding event triggers and statement bodies.
- Removed an awfully annoying print statement which slipped through the net.
- Fixed the ast_list_concat function
- Allowed "parent" build systems to disable the verilog-parser tests.
v0.2.2
Some new features and cleanup
- Added some useful functions:
ast_expression_tostring
ast_primary_tostring
ast_number_tostring
- Fixed some bugs which became apparent while implementing these.
- Added relevant test files too.
- Fixed all compiler warnings (gcc -Wall)
- Only remaining ones come from inside the flex generated code. Nothing to be done about that.
v0.2.1
Lots of changes, features and fixes here!
- Re-written the project workspace script to have separate
release
,debug
andcoverage
build areas.- Automatic coverage reporting with travis and coveralls re-instated.
- Top level makefile for running common tasks like documentation, building and testing.
- Added resolution of all module instantiations to their declarations.
- Fixed almost all memory leaks.
- Remaining leaks are inside flex / bison, and need fixing still
- Future work will allow objects to be released individually, rather than having to do it all at once.
- Added a script for quickly getting a valgrind report.
- Completely re-organised the ast_memory management functions and structures.
- All objects in the AST are now tagged by their source file name and their line number in the
meta
member. - Relaxed the required FLEX version from 2.6 to 2.5.35
v0.2.0
Big changes to the internal AST data structure, but no changes to the API functions.
Changes
- The ast_module_declaration data structure has been redesigned to be much simpler to access.
- All module items are grouped into lists of their own type.
- Added a helper function to print the full name of an identifier.
- All syntactic constructs how have their source line number recorded by default.
- Added a "meta" member to all ast_* constructs, making it easier to store all sorts of bits of info.
Bugfixes
- Fixed problem with
trireg
declarations where accessing their associated list of identifiers caused a segfault. - Fixed bad copying of some identifier names into the AST from the parser.
- Fixed the
ast_list_concat
function
v0.1.1
This contains a bunch of bug fixes for problems found after using the parser and syntax tree "in anger" for the first time. It also make some big changes to the build system.
- The build system is now all CMake, with documentation, coverage and testing all integrated.
- Fixed bug where identifier names were not correctly copied out of the lexer and into the AST
- Fixed bug where module port names were not returned as the correct data type.
- Fixed a dumb buffer overflow which caused travis to error our, rather than cause a fail message.
v0.1.0
First Usable Release
At this point, I feel comfortable saying that the parser is "ready to play with". That is, API stuff might change a little before v1.0.0, but that is very unlikely, and certainly not in a non-backward compatible way. Only new "helper" functions will be added.
Main Points:
- Very clear parser / lexer / pre-processor / syntax tree source files and code separation.
- Full workflow, with CI, coverage checking and documentation publishing is setup.
- Over 800 tests, many from the OpenSPARCT1 Microprocessor are included and are passing.
- These test almost all of the syntatic features of the language.
- All of the code is documented using Doxygen.