Merge remote-tracking branch 'origin/master'

master
pca006132 2021-01-27 16:00:47 +08:00
commit 65d9b620fe
1 changed files with 15 additions and 4 deletions

View File

@ -12,12 +12,23 @@ Errors:
- Incorrect number of parameters
Symbol Resolution:
- Add all files with annotated class/functions.
- Find class references, load them all in TopLevelContext.
- Find unbounded identifiers/functions in functions.
- `inspect.getmodule(x)` every unknown `x` if not primitive/list of primitives,
check their files recursively by getting their file path, cache with
(normalized) path as key.
- Find unbounded identifiers in the functions.
- If it is a function/class name, record its object ID.
- Otherwise, load its value. (check to see if specified with `global`)
(Function implemented in python, with rust binding to add value to global
variable dictionary)
Global variable dictionary:
- Primitives, including integers, floats, bools, etc.
- Primitive lists.
- Numpy multi-dimensional array, with value + dimension vectors.
- Reference array, with integer index referring to other things.
- Symbol table: python id -> reference id.
TopLevelContext/InferenceContext:
- Restrict visibility by user defined function.