Releases: mrLSD/semantic-analyzer-rs
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)
v0.2.2
-
Extended Expression operations.
-
Fixed fetch priority operations for expressions operations: case when last branch of AST was not packed to Expression leaf to reorganized expressions priority
-
Returned
Register
counter logic forBlockState
. But not included to Expressions (TBD). -
Extended Expressions
SturctValues
attributes analyzing -
Extended Expressions
SturctValues
tests -
Extended Expressions
Operations
tests-many cases for priority expressions check -
Improved tests coverage
v0.2.1
v0.2.0
v0.1.1
v0.1.0
Release v0.1.0
Changed basic semantic analyzer concepts to Semantic Stack
and Semantic Stack Context
as Block State
trees. It means semantic results (context) depend only on concrete Semantic blocks, basic of it is function
as root Semantic and Semantic State entity. Removed Codegen as a flat result of Semantic analyses.