sutori-0.2.4: Sutori language compiler
Please see the README on GitHub at https://github.com/MathiasSM/Sutori#readme
- Sutori
- Sutori.AST Defines an API for accessing the different data types
for nodes of the AST, along with a couple of functions
to work with them.
- Sutori.AST.Logger Provides
ShowSut
instances for Sutori.AST - Sutori.AST.Nodes Defines the data types for nodes of the AST
- Sutori.AST.Utils Defines extractor functions for AST nodes, and transformations
- Sutori.AST.Logger Provides
- Sutori.CLI Defines the API to access CLI functionality. Router and options.
- Sutori.CLI.Router Defines a
route
function to decide for an execution mode of the compiler
- Sutori.CLI.Router Defines a
- Sutori.Error API for error handling (internal or user-facing errors)
- Sutori.Error.Error Definition for error codes and other error-related data.
- Sutori.Error.Logger Provides
ShowSut
instances for Sutori.Errors - Sutori.Error.Report Provides error-reporting functions
- Sutori.Lexer API for the alex-generated lexer for Sutori language tokens
- Sutori.Lexer.Internals Defines internal functions to mimic Alex wrappers while using SutMonad as the lexer monad
- Sutori.Lexer.Lexer Alex-generated lexer for Sutori language
- Sutori.Lexer.Logger Provides
ShowSut
instances for Sutori.Lexer - Sutori.Lexer.Posn Defines a positin to keep track of in the scanner
- Sutori.Lexer.Tokens Defines all the different tokens of the languages
- Sutori.Logger Provides API for logging information, errors and the like
- Sutori.Logger.Log Defines ways to log information, errors and the like
- Sutori.Logger.Writer Defines ways to log information, errors and the like
- Sutori.MIPS Final representation of the code: MIPS
- Sutori.Monad Defines the Compiler Monad, the compilation state and general functions
- Sutori.Monad.Actions General-use monadic actions for
SutMonad
- Sutori.Monad.Logger Provides
ShowSut
instances for Sutori.Monad. Right now: none. - Sutori.Monad.Monad The compilation monad
- Sutori.Monad.State The compilation state
- Sutori.Monad.Actions General-use monadic actions for
- Sutori.Options Options for running modes and tweaks. Used by CLI
- Sutori.Options.Logger Provides
ShowSut
instances for Sutori.Options - Sutori.Options.Options Defines the different CLI options and a parser function to get them
- Sutori.Options.Logger Provides
- Sutori.Parser Defines API for Happy-generated parser for Sutori language
- Sutori.Parser.Definitions Provides definition functions that add the appropiate symbols to the table, given that all checks passed and the definition is legal. TODO: Refactor code. all these functions use mostly repeated code
- Sutori.Parser.Expressions Defines all AST expression monadic constructors, that check for all kind of possible errors to log.
- Sutori.Parser.Parser Happy-generated parser for Sutori language
- Sutori.Parser.Symbols Defines finder functions for symbols: Most assume the symbol exist, so an error for undefined symbol is logged if they can't find it
- Sutori.Parser.TypeCheck Provides functions that check an expression, issue type errors if necessary, and return the (maybe modified as a type error) expressions
- Sutori.SymTable Defines the SymTable structure and functions to deal with it.
- Sutori.SymTable.Logger Provides
ShowSut
instances for Sutori.SymTable - Sutori.SymTable.Symbol Defines symbols as understood by Sutori language.
- Sutori.SymTable.Table Defines the symbol table and common functions to handle it
- Sutori.SymTable.Logger Provides
- Sutori.TAC Intermediate representation of the code: Three TACAddress Code
- Sutori.TAC.CodeGen Intermediate (TAC) code generation rules
- Sutori.TAC.ControlFlow Control Flow Graph builder
- Sutori.TAC.Logger Provides
ShowSut
instances for Sutori.TAC - Sutori.TAC.TAC Intermediate representation of the code: Three TACAddress Code
- Sutori.Types API for handling Sutori type system.
- Sutori.Types.Constructors Defines the diferent type constructors for the language and some functions for coersion and generalization
- Sutori.Types.Graph Provides a graph of types that allows a bijection
between generated
SutTypeID
s andSutType
s - Sutori.Types.Logger Provides
ShowSut
instances for Sutori.Types - Sutori.Types.Primitives Defines Sutori primitive types, build a generalization graph fro them and provides functions to get the most general type of two primitives
- Sutori.Utils Provide common type definitions and functions missing in the snapshot
- Sutori.Utils.List Some useful functions not available on the used LTS
- Sutori.AST Defines an API for accessing the different data types
for nodes of the AST, along with a couple of functions
to work with them.