Closed kjcjohnson closed 2 years ago
Source generators are a no-go for now, so backing those changes out. My attempt is saved at the kjcjohnson/source-generator-attempt tag. Basically, the tooling does not seem to be mature enough at this point to give a maintainable development experience going forward. I'm sure I could get it to work, but it doesn't seem like the best use of my time.
Re-opening this pull request to solve the same problems, but with going back to hard-coding the SMT definitions.
Lot of stuff changing here...but tests all pass!
The goal of this change is to allow specifying theory and logic functions in a separate DSL instead of hard-coding everything in source. This will additionally allow us to handle
:chainable
and related declarations (e.g.,and
, closing #76), as well as "sugar" definitions likebvxor
.As a part of this, the S-Expressions project is being re-targeted to .NET Standard 2.0 and used in a source generator that consumes the new DSL and generates C# source files.