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