Releases: mrLSD/semantic-analyzer-rs
v0.4.1
➡️ Generic Expression value: custom Expression value with custom instruction as result for Semantic Stack Context. Extended generalized solution for Semantic Stack Context instructions including codec
feature for serialization extended expressions.
➡️ Extended tests for Generic Expression value: custom Expression instructions.
v0.4.0
Introduced a new awesome possibility - extensibility 🔋.
➡️ Generic Expression value: custom Expression value with custom instruction as result for Semantic Stack Context. It's bring possibility to extend AST for the custom needs of compilers and extends additional generic custom instructions for the next step of code generation.
➡️ Refactored tests structure
v0.3.3
➡️ Added Serde
serializer, which can be enabled via the codec
feature flag.
➡️ Extended README.
➡️ Extended tests.
💠 It's most useful for:
-
AST
- AST can be presented with (se/dese)rialization. -
State
- whole state as serialization result -
SematicStack
- serialized instructions set
Contribution
v0.3.2
🍰 Added function parameters as variables to BlockState
with 🌷 additional instruction FunctionArg
to SemanticStack
for allocation 🎇 and bind explicitly in Codegen
backend.
💡 Tests
Extended tests, that covers new instructions and func-params
additions.
🍏 Clippy
Increased clippy level to most maximum and fixed all clippy-related issues 🍾.
v0.3.1
Introduced extended 🌴 BlockState context:
🔦 To simplify the fetching process for Codegen backends, there is added the changes:
- for the parent BlockState "flatten" all children's contexts. It means parent context will also include children's contexts. And it has linear representations. At the same time, it has children
BlockState
with their own context - root
BlockState
contains flattened linear context related to all children'sBlockState
context.
🔦 Tests
- Added additional tests for all related flattened
BoclState
contexts. - Added tests for
BlockState
parent invokation.
🏦 BlockState
changes
🔦 Added traits:
SemanticContext
GlobalSemanticContext
For BlockState
trait SemanticContext
implementation added invokcation for all parent BlockState
nodes in context. It's guaranteed, that all parent context nodes have the same leaves as children. And root
contains full representation of children's instructions.
v0.3.0
The release contains several improvements and breaking changes. Extended documentations and tests. Added reference to example usage with mrLSD/toy-codegen project.
🥇 Registers
Implemented register numbers for expressions and assignment operations.
The main point is to track correct expressions, values, and function parameters.
🥈 Toy Codegen
As an example of usage for semantic-alalyzer-rs
is implemented as a separate project toy-codegen. It shows how to use SemanticStack
for Codegen generation. Added to README.md.
📝 Documentation
- Extended README docs
- Extended code documentation for
SemanticStack
functions generator.
Contribution
v0.2.6
After termination instructions return
, break
, and continue
, if other instructions presented added errors to state.
This applies to statements
-
function-body
-
if-body
-
else-if-body
-
if-loop-body
-
else-if-loop-body
-
loop-body
Loops
🏁 Checked if the return
instruction was present, then removed extra jump-to
: loop-end
, and set-label
: loop-end
. And added the tests.
v0.2.5
Refactored if-end
jump logic for if-condition
state.
If-body
block state
For the if-body
block state, when called return
anyway after this the JumpTo if-end
instruction is called. It's redundant, refactored, and added an additional check for label instruction JumpTo
is manual-return
for the current block state. If manual-return
is set JumpTo
context instruction is removed.
v0.2.4
Fixed issues with SemanticStackContext
generation, improved semantic analyzer, covered with 💯% tests coverage.
Fixes
- Fixed issue #8 with multiple returns for the
function-body
semantic analysis. - Fixed
If-loop
label parameters fail when missing label parameters for theloop
. - Fixed issue #11 and only one
if-end
label exists for theif-condition
. - Fixed issue #12 for loop-body repeatition and extended tests for that.
Tests
Extended semantic analyzer tests:
- if-conditions
- loops
- function-body
- main-run
- covered with tests all
SemanticStackContext
instructions
Coverage
💯 100% tests coverage
v0.2.3
Added tests and increased tests coverage ⬆️. Significantly improved Github CI 🤖.
- ☑️ Extended tests for
function-declaration
- ☑️ Extended tests for
function-call
- ☑️ Extended tests for
let-binding
- ☑️ Extended tests for
binding
- ☑️ Extended CI
- #6 - Extend tests and CI for let-binding, function-declarations, bindings. Extend CI (@mrLSD)