Module Linkst


module Linkst: sig .. end
Bombs-Must-Detonate: Linker Syntax Tree
Author(s): Brian Go


type link_type =
| LnkInt
| LnkFloat
| LnkString
| LnkBool
| LnkVoid
| LnkAnything
| LnkTemplate of string
| LnkEnumType of string * int
| LnkEnum of string * int
| LnkStruct of string * link_type list
| LnkArray of link_type
| LnkList of link_type
| LnkFunction of link_type list * link_type
| LnkRef of link_type
Link type is similar to Bmdtc.bmdtype, but we have an "anything" type, since certain VM functions can take any argument (i.e. print, println)

type link_expr =
| LnkProvide of string * link_type (*Indicates a remotable function named (string) of type (link_type) is provided by this file*)
| LnkRequire of string * link_type (*Indicates a remotable function named (string) of (inferred) type (link_type) is required by this file*)
| LnkCode of string (*The assembler code after the header*)
Linker header expression
type link_st = link_expr list