Skip to content

Releases: mrLSD/semantic-analyzer-rs

v0.4.4

04 Aug 19:40
v0.4.4
b936463
Compare
Choose a tag to compare

🚀 Improvements and refactoring.

⏫ Updated AST String types.
➡️ Changed String tests.
⏫ Increased test-coverage

Contribution

  • #34 Feat: Updated Ast String types. Changed tests. Increase test-coverage @mrLSD

v0.4.3

02 Aug 09:29
73c7f40
Compare
Choose a tag to compare

➡️ Minor updates with refactoring

v0.4.2

30 Jun 14:56
v0.4.2
e34402d
Compare
Choose a tag to compare

➡️ Refactored Primitive types: removed String as a primitive type.

  • #32 Feat: Remove String type @mrLSD
  • #31 Remove String from PromitiveTypes

v0.4.1

26 Mar 17:50
76126a5
Compare
Choose a tag to compare

➡️ 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.

  • #30 - Feat: refactore extend expression - @mrLSD .

v0.4.0

16 Jan 16:00
fb7afaa
Compare
Choose a tag to compare

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

  • #27 [Feature] Add extensibility to Expression Value
  • #26 Feat: refactor tests structure organization - @mrLSD
  • #25 Feat: Extend ExpressionValue with a custom generic extensible field - @mrLSD

v0.3.3

12 Dec 16:55
2e702b1
Compare
Choose a tag to compare

➡️ 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

  • #23 Feat: add Serde as codec feature - @mrLSD
  • #21 [Feature]: Implement Serde serializer

v0.3.2

02 Dec 23:33
177e077
Compare
Choose a tag to compare

🍰 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 🍾.

  • #20 - Feat: Function parameters init as variables @mrLSD
  • #18 - Feature: Function parameters init as variables

v0.3.1

24 Nov 10:02
v0.3.1
eea35c6
Compare
Choose a tag to compare

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's BlockState 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.

  • #19 - Feat: flatten tree BlockState for SemanticStackContext - @mrLSD
  • #16 - Feature: flatten root BlockState for SemanticStackContext

v0.3.0

18 Nov 16:45
ef93e56
Compare
Choose a tag to compare

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

  • #17 Feat: extend SemanticStack with registers (@mrLSD)
  • #13 Add registers number to SemanticStackContext definitions

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)