Skip to content

Latest commit

 

History

History
42 lines (30 loc) · 930 Bytes

File metadata and controls

42 lines (30 loc) · 930 Bytes

Store in the AST the position of the symbols

  • Why? Because we need to provide good error messages and, in order to show the error location, we need this information.

  • How? Each node must have the following additional information:

type SourceMappable :- %{
    start: number,
    end: number,
    loc: %{
        start: %{ line: number, column: number },
        end: %{ line: number, column: number }
    }
}

Create an AST viewer

  • Why? Because currently is very hard to debug AST nodes

  • How? We can generate JSON from the AST and use a formatter tool. Requires research.

Implement return type getter for imperative blocks of code

  • Why? Because we currently are able to infer only types from pure expressions

Implement FromStmt

  • Why? Because we need to allow importing modules and types

Implement parametric polymorphism

Implement algebraic data types

Improve pattern matching parser