Scalc.AstSourcemodule D = Dcalc.Astmodule TopLevelName : sig ... endmodule LocalName : sig ... endtype expr = | EVar of LocalName.t| EFunc of TopLevelName.t| EStruct of expr Utils.Marked.pos list * D.StructName.t| EStructFieldAccess of expr Utils.Marked.pos
* D.StructFieldName.t
* D.StructName.t| EInj of expr Utils.Marked.pos * D.EnumConstructor.t * D.EnumName.t| EArray of expr Utils.Marked.pos list| ELit of L.lit| EApp of expr Utils.Marked.pos * expr Utils.Marked.pos list| EOp of Dcalc.Ast.operatortype stmt = | SInnerFuncDef of LocalName.t Utils.Marked.pos * func| SLocalDecl of LocalName.t Utils.Marked.pos * D.typ Utils.Marked.pos| SLocalDef of LocalName.t Utils.Marked.pos * expr Utils.Marked.pos| STryExcept of block * L.except * block| SRaise of L.except| SIfThenElse of expr Utils.Marked.pos * block * block| SSwitch of expr Utils.Marked.pos * D.EnumName.t * (block * LocalName.t) listEach block corresponds to one case of the enum
*)| SReturn of expr| SAssert of exprand func = {func_params : (LocalName.t Utils.Marked.pos * D.typ Utils.Marked.pos) list;func_body : block;}type scope_body = {scope_body_name : Dcalc.Ast.ScopeName.t;scope_body_var : TopLevelName.t;scope_body_func : func;}