All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Completing chapter 13
- Inheritance works, circular inheritance is catched, calling super
- Added some warnings for super outside a class
0.0.9 - 2020-10-25
- Completing chapter 12
- Class can be printed, instantiated, get, set expression, methods on classes, implement
this
, init() - YaploxClass created, and YaploxCallable
- Use poetry-dynamic-versioning to generate version numbers
- In generate_ast.py use
from __future__ import annotations
in generated files
0.0.8 - 2020-10-14
- Completing chapter 11
- Create resolver
- Create function_type.py enum
- Create pytest fixtures to run a block of code, or an list of lines
- Removed welcome statement during startup.
- Bumped version in
pyproject.toml
, this wasn't done in previous releases
0.0.7 - 2020-09-11
- Completing chapter 10
- Implement functions
- Create the Clock function
- Functions return stuff
- Closures work, see
test_closures
for an example
- Print statement now works correctly with floats. Long floats would print in scientific notation.
- Pre-commit hooks now use the projects directly instead of using
tox -e linters
. This would give random errors on windows about files in use.
0.0.6 - 2020-09-05
- Completing chapter 9
- Errors in yaplox are printed to stderr
- generate_ast.py now converts CamelCase fieldnames to snake_case
- Add while loops
- Add for loops
- Changed parser._match to accept an arbitrary number of tokens. A list is no longer required.
0.0.5 - 2020-09-03
- Completing chapter 8
- Added Stmt class
- Add isort to ast generator
- Create a config with classyconf
- Make imports configurable in ast generator
- Create Environment
- Variables work!
0.0.4 - 2020-08-23
- Completing chapter 7
- Added Interpreter, with tests
- Created YaploxRuntimeError. Yaplox calls this a RuntimeError, but python already defines one.
- Added github actions for automated CI, automerge
- Added badges to the readme
0.0.3 - 2020-08-10
- Completing chapter 6
- Completed the parser
0.0.2 - 2020-08-06
- Completing chapter 5
- Created
tools/generate_ast.py
, added Visitor class - Added the generated
expr.py
- Not implemented methods in ABC base classes will raise an
NotImplementedError
that is ignored by coverage tests
- CTRL-D now works in the OSX terminal
- Refactor: Exit method is called in a single place
0.0.1 - 2020-08-01
- Completing chapter 4
- Created CHANGELOG.md, README.md, STATUS.md
- Created first structure of the project, including tox, flake8, mypy, black and other utilities
- Implemented
run
,run_file
andrun_prompt
methods - Added
Token
,Scanner
,TokenType
- Support
strings
,numbers
andidentifiers