module Sast: sig .. end
Types for the semantic abstract syntax tree
type refine_switch =
| |
Switch of string * (string * string) list * string |
| |
Test of string * string list * string |
A switch for refinment or refinable checks
type varkind =
| |
Instance of string |
| |
Local |
The type of a variable in the environment
type environment = (string * varkind) Map.Make(String).t
The environment at any given statement.
type funcid =
| |
BuiltIn of string |
| |
FuncId of string |
| |
ArrayAlloc of string |
The ID can be built in (and so won't get mangled) or an array allocator.
type expr_detail =
An expression value -- like in AST
type expr = string * expr_detail
An expression with a type tag
type sstmt =
A statement tagged with an environment
type func_def = {
|
returns : string option; |
|
host : string option; |
|
name : string; |
|
static : bool; |
|
formals : Ast.var_def list; |
|
body : sstmt list; |
|
section : Ast.class_section; |
|
inklass : string; |
|
uid : string; |
|
builtin : bool; |
}
A function definition
type member_def =
type class_sections_def = {
}
type class_def = {
}
type program = class_def list