nac3-spec/toy-impl
pca006132 ee7c1713a5 main script 2020-12-23 10:34:56 +08:00
..
examples main script 2020-12-23 10:34:56 +08:00
README.md main script 2020-12-23 10:34:56 +08:00
helper.py main script 2020-12-23 10:34:56 +08:00
inference.py virtual class 2020-12-21 13:53:59 +08:00
inheritance.py class check 2020-12-22 16:53:44 +08:00
main.py main script 2020-12-23 10:34:56 +08:00
parse_expr.py main script 2020-12-23 10:34:56 +08:00
parse_stmt.py better error message 2020-12-22 16:53:33 +08:00
primitives.py primitive types 2020-12-22 16:53:53 +08:00
test_expr.py added name clash check 2020-12-21 15:08:55 +08:00
test_inference.py fixed variables 2020-12-18 13:09:15 +08:00
test_stmt.py implemented basic statements 2020-12-22 15:14:34 +08:00
test_subst.py implementing function call check 2020-12-18 13:03:36 +08:00
test_top_level.py implementing function call check 2020-12-18 13:03:36 +08:00
top_level.py main script 2020-12-23 10:34:56 +08:00
type_def.py class check 2020-12-22 16:53:44 +08:00

README.md

Toy Implementation

Currently the rough implementation is done, works remain are the code for checking a real python script, getting the type variables, some implementation details etc.

These features are considered in the proposal, but would not be implemented here for simplicity reasons:

  • Referencing Python Variables.
  • Most of the types, only the following types are implemented:
    • int32
    • int64
    • float
    • bool
    • list[T]
    • tuple[T1,...]
    • virtual[T]
  • Storing large constants as uint32, int64 or uint64.
  • AugAssign, a += b etc.
  • with, try except, etc.
  • const indexing with tuple.
  • method override check modulo variable renaming.

These features are currently not implemented, and would be added in due course:

  • Type guards.

Type Check Implementation

Variable Scoping

Operator Override