lambdaclass / concrete

Concrete is a simple programming language specifically crafted for creating highly scalable systems that are reliable, efficient, and easy to maintain.
Apache License 2.0
123 stars 11 forks source link

add error handling to lowering, use it to report errors #94

Closed edg-l closed 6 months ago

edg-l commented 6 months ago

Adds error handling to the lowering (although it's not complete). And uses the errors to make a report. So concrete_check now doesn't act on the AST but on the lowering errors, since there is where missing types and such will be found.

image

This is needed before adding structs because the previous checker didn't have good information about types, so it failed to find the struct type when it was there.