Math.NET Numerics
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

112 lines
4.2 KiB

// (c) Microsoft Corporation. All rights reserved
#light
/// Code to pickle out quotations in the quotation binary format.
module (* internal *) Microsoft.FSharp.Compiler.Sreflect
open Internal.Utilities
open Internal.Utilities.Pervasives
open Microsoft.FSharp.Compiler.AbstractIL
open Microsoft.FSharp.Compiler.AbstractIL.Internal
open Microsoft.FSharp.Compiler
open Microsoft.FSharp.Compiler.Lib
open Bytes
type TypeData
type TypeVarData = { tvName: string }
type NamedTypeData = { tcName: string; tcAssembly: string }
val mkVarTy : int -> TypeData
val mkFunTy : (TypeData * TypeData) -> TypeData
val mkArrayTy : (int * TypeData ) -> TypeData
val mkNamedTy : (NamedTypeData * TypeData list) -> TypeData
type ExprData
type VarData
type CtorData =
{ ctorParent: NamedTypeData;
ctorArgTypes: TypeData list; }
type MethodData =
{ methParent: NamedTypeData;
methName: string;
methArgTypes: TypeData list;
methRetType: TypeData;
numGenericArgs: int }
type ModuleDefnData =
{ Module: NamedTypeData;
Name: string;
IsProperty: bool }
type MethodBaseData =
| ModuleDefn of ModuleDefnData
| Method of MethodData
| Ctor of CtorData
type FieldData = NamedTypeData * string
type RecdFieldData = NamedTypeData * string
type PropInfoData = NamedTypeData * string * TypeData * TypeData list
val mkVar : int -> ExprData
val mkHole : TypeData * int -> ExprData
val mkApp : ExprData * ExprData -> ExprData
val mkLambda : VarData * ExprData -> ExprData
val mkQuote : ExprData -> ExprData
val mkCond : ExprData * ExprData * ExprData -> ExprData
val mkModuleValueApp : NamedTypeData * string * bool * TypeData list * ExprData list list -> ExprData
val mkLetRec : (VarData * ExprData) list * ExprData -> ExprData
val mkLet : (VarData * ExprData) * ExprData -> ExprData
val mkRecdMk : NamedTypeData * TypeData list * ExprData list -> ExprData
val mkRecdGet : RecdFieldData * TypeData list * ExprData list -> ExprData
val mkRecdSet : RecdFieldData * TypeData list * ExprData list -> ExprData
val mkSum : (NamedTypeData * string) * TypeData list * ExprData list -> ExprData
val mkSumFieldGet : (NamedTypeData * string * int) * TypeData list * ExprData -> ExprData
val mkSumTagTest : (NamedTypeData * string) * TypeData list * ExprData -> ExprData
val mkTuple : TypeData * ExprData list -> ExprData
val mkTupleGet : TypeData * int * ExprData -> ExprData
val mkCoerce : TypeData * ExprData -> ExprData
val mkNewArray : TypeData * ExprData list -> ExprData
val mkTypeTest : TypeData * ExprData -> ExprData
val mkAddressSet : ExprData * ExprData -> ExprData
val mkUnit : unit -> ExprData
val mkNull : TypeData -> ExprData
val mkBool : bool -> ExprData
val mkString : string -> ExprData
val mkSingle : float32 -> ExprData
val mkDouble : float -> ExprData
val mkChar : char -> ExprData
val mkSByte : sbyte -> ExprData
val mkByte : byte -> ExprData
val mkInt16 : int16 -> ExprData
val mkUInt16 : uint16 -> ExprData
val mkInt32 : int32 -> ExprData
val mkUInt32 : uint32 -> ExprData
val mkInt64 : int64 -> ExprData
val mkUInt64 : uint64 -> ExprData
val mkAddressOf : ExprData -> ExprData
val mkSequential : ExprData * ExprData -> ExprData
val mkForLoop : ExprData * ExprData * ExprData -> ExprData
val mkWhileLoop : ExprData * ExprData -> ExprData
val mkTryFinally : ExprData * ExprData -> ExprData
val mkTryWith : ExprData * VarData * ExprData * VarData * ExprData -> ExprData
val mkDelegate : TypeData * ExprData -> ExprData
val mkPropGet : PropInfoData * TypeData list * ExprData list -> ExprData
val mkPropSet : PropInfoData * TypeData list * ExprData list -> ExprData
val mkFieldGet : FieldData * TypeData list * ExprData list -> ExprData
val mkFieldSet : FieldData * TypeData list * ExprData list -> ExprData
val mkCtorCall : CtorData * TypeData list * ExprData list -> ExprData
val mkMethodCall : MethodData * TypeData list * ExprData list -> ExprData
val mkAttributedExpression : ExprData * ExprData -> ExprData
val pickle : (ExprData -> byte[])
val PickleDefns : ((MethodBaseData * ExprData) list -> byte[])
val pickledDefinitionsResourceNameBase : string
val freshVar : string * TypeData -> VarData