Написание компилятора хоть чуть-чуть, но сдвинулось с мертвой точки. Теперь, помимо создания AST, производится еще и типизация. Правда там кругом stub'ы. Типизация простых выражений (констант) работает. Также работает type checker.
if 1 then 2 else 3
>>> Fatal error: exception Failure("Can't unify: expected bool, but found int")
666
>>> impl_file:
>>> 7.0 - 7.3: 4>int: VE_int: 666
1.0
>>> impl_file:
>>> 7.0 - 7.3: 4>float: VE_float: 1.000000e+00
(666)
>>> impl_file:
>>> 7.0 - 7.5: 4>int: VE_paren:
>>> 7.1 - 7.4: 4>int: VE_int: 666
Теперь нужно сделать нормальный typing environment... ужас. :[]
Комментариев нет:
Отправить комментарий