Skip to content

Releases: mrLSD/semantic-analyzer-rs

v0.2.6

11 Nov 10:41
5ad44c2
Compare
Choose a tag to compare

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.

  • #15 - Feat: after termination instructions return, break, continue do not allow other instructions (@mrLSD)
  • #10 - Feature: after termination instructions return, break, continue do not allow other instructions (@mrLSD)

v0.2.5

08 Nov 09:15
7e8883a
Compare
Choose a tag to compare

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.

  • #9 - Improve return logic for function-body and if-body state (@mrLSD)
  • #14 Feat: refactor if-end jump logic (@mrLSD)

v0.2.4

05 Nov 20:59
b25203d
Compare
Choose a tag to compare

Fixed issues with SemanticStackContext :atom: 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 the loop.
  • Fixed issue #11 and only one if-end label exists for the if-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

  • #7 Feat: fix multiple return issues and extend analyzer tests @mrLSD
  • #8 For semantic function body state return can call multiple times
  • #11 Fix if-end label instruction for IfStatement: if-else, else-if statements
  • #12 Fix loop-begin label for the loop-statement

v0.2.3

20 Oct 21:24
2992080
Compare
Choose a tag to compare

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

04 Oct 23:51
0490a1b
Compare
Choose a tag to compare
  • 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 for BlockState. 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

  • #5 Feat: Extended Expression Operations (@mrLSD)

v0.2.1

01 Oct 11:36
db460f3
Compare
Choose a tag to compare

Features

  • Extended tests and added tets coverage for grcov
  • Added Codecov tests coverage report
  • Extended source code documentation
  • Fixed Semantic generation for expressions SemanticValue

Contribution

  • #4 - Feat: extend tests for Expressions and FunctionCall - (@mrLSD)

v0.2.0

27 Sep 21:28
v0.2.0
602dd1e
Compare
Choose a tag to compare

v0.2.0

Extended semantic. Started tests implementations and test coverage.

  • #3 Feat: extend tests and extended Semantic (@mrLSD)

v0.1.1

15 Sep 07:12
fa28620
Compare
Choose a tag to compare

Release v0.1.1

Refactored types structures and modules for a more granular approach.

v0.1.0

10 Sep 12:54
Compare
Choose a tag to compare

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.

  • #1 - State Stack context and Codegen refactoring (@mrLSD)