Skip to content
This repository has been archived by the owner on Aug 9, 2024. It is now read-only.

v1.0.0

Latest
Compare
Choose a tag to compare
@joerivanarkel joerivanarkel released this 09 Nov 10:01
· 154 commits to master since this release
36858a5

(#39) New Lexer, Parser and Interpreter

  • Completely remade Parser
    • Using a Factory pattern get a Parser per token type. This is using the LL parser pattern.
    • Creates a Scope, which consits of a List of Nodes.
  • Completely remade Interpreter
    • Using a Factory pattern get a Interpreter for each node.
    • Returns a BaseValue foreach node.
  • Partially Rewrote Lexer, to simplify.
  • Created a Object serializer, which takes a Scope and serializes it to binary.

(#49) Semicolons

  • Added Semicolon token to parser.

(#51) Error Handling and Validation

  • Created Custom exceptions for Type Conversion and Parsing Exceptions
  • Added validation for type conversions
  • Replaced null return with errors
  • Created base class constructors

(#53) Fixing Float and Chaarcter issues

  • Moved Logger and Factory to BaseInterpeter
  • Moved Logger and Value to BaseVaule
  • Added more possible nodes to variables
  • Started on Validation methods per entity. #60
  • Fixed Float and Character lexing errors

(#62) Command Rework

  • Refined and Refactored commands
  • Added a dependency injection container, from Application to the Parser and Lexer
  • Moved constant variable parameters to variables.json and added new EnvironmentVariables class to get these variables
  • Created repl command shell
  • Fixed lexer for multiple inputs
  • Move common interfaces to Common.Interfaces

(#66) Implicit usings

  • Removed unnecessary usings.
  • Added implicit using in Usings.g.cs

(#68) Lexer Rewrite

  • Completely rewrote lexer to remove the static methods and fields.
  • Renamed Lexer, Parser and Interpreter to PirateLexer, PirateParser and PirateInterpreter

(#69) FileHandlers

  • Added a two filehandlers for writing and reading

(#70) Unit Tests

  • Created Unit Tests for Lexer, Parser, Interpreter projects