demolish external expression value
This commit is contained in:
parent
f0ba68f64a
commit
af4070a34f
|
@ -1,37 +0,0 @@
|
|||
open ForTS_Types_
|
||||
|
||||
@module("ForTS_InternalValue_tag") @scope("InternalValueTag")
|
||||
external ivtVoid_: int = "IvtVoid"
|
||||
@module("ForTS_InternalValue_tag") @scope("InternalValueTag")
|
||||
external ivtString_: int = "IvtString"
|
||||
@module("ForTS_InternalValue_tag") @scope("InternalValueTag")
|
||||
external ivtRecordLike_: int = "IvtRecordLike"
|
||||
|
||||
@genType
|
||||
let getTag = (variant: internalValue) =>
|
||||
switch variant {
|
||||
| IvVoid(_) => ivtVoid_
|
||||
| IvString(_) => ivtString_
|
||||
| IvRecordLike(_) => ivtRecordLike_
|
||||
}
|
||||
|
||||
@genType
|
||||
let getVoid = (variant: internalValue): option<internalVoid> =>
|
||||
switch variant {
|
||||
| IvVoid(v) => Some(v)
|
||||
| _ => None
|
||||
}
|
||||
|
||||
@genType
|
||||
let getString = (variant: internalValue): option<string> =>
|
||||
switch variant {
|
||||
| IvString(s) => Some(s)
|
||||
| _ => None
|
||||
}
|
||||
|
||||
@genType
|
||||
let getRecordLike = (variant: internalValue): option<recordLike> =>
|
||||
switch variant {
|
||||
| IvRecordLike(r) => Some(r)
|
||||
| _ => None
|
||||
}
|
|
@ -1,8 +0,0 @@
|
|||
open ForTS_Types_
|
||||
|
||||
@genType
|
||||
let toString = (v: recordLike): string =>
|
||||
MyInterface_InternalValue_RecordLike.toString(v, MyInterface_InternalValue.toString)
|
||||
@genType
|
||||
let toArray = (v: recordLike): array<(string, internalValue)> =>
|
||||
MyInterface_InternalValue_RecordLike.toArray(v)
|
|
@ -1 +0,0 @@
|
|||
@genType let toString = (value: string): string => value
|
|
@ -1,3 +0,0 @@
|
|||
open ForTS_Types_
|
||||
|
||||
@genType let toString = (_value: internalVoid): string => MyInterface_InternalValue_Void.toString
|
|
@ -1,7 +0,0 @@
|
|||
enum InternalValueTag {
|
||||
IvtVoid,
|
||||
IvtString,
|
||||
IvtRecordLike
|
||||
}
|
||||
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
open ForTS_Types_
|
||||
|
||||
@genType
|
||||
let getResult = (_p: myProject): option<result_<internalValue, errorValue>> =>
|
||||
My_ErrorValue.EError->Error->Some
|
|
@ -1,18 +0,0 @@
|
|||
open ForTS_Types_
|
||||
|
||||
@genType let isError = (r: result_<'a, 'e>): bool => Belt.Result.isError(r)
|
||||
@genType let isOk = (r: result_<'a, 'e>): bool => Belt.Result.isOk(r)
|
||||
|
||||
@genType
|
||||
let getError = (r: result_<'a, 'e>): option<'e> =>
|
||||
switch r {
|
||||
| Ok(_) => None
|
||||
| Error(e) => Some(e)
|
||||
}
|
||||
|
||||
@genType
|
||||
let getValue = (r: result_<'a, 'e>): option<'a> =>
|
||||
switch r {
|
||||
| Ok(v) => Some(v)
|
||||
| Error(_) => None
|
||||
}
|
|
@ -1,12 +0,0 @@
|
|||
/*
|
||||
Group all opaque types together for TS.
|
||||
All other modules for TS should use this module
|
||||
*/
|
||||
@genType.opaque type internalValue = MyInterface_InternalValue_T.t
|
||||
@genType.opaque type recordLike = MyInterface_InternalValue_RecordLike.t
|
||||
@genType.opaque type internalVoid = int
|
||||
@genType.opaque type errorValue = My_ErrorValue.t
|
||||
@genType.opaque type result_<'a, 'e> = result<'a, 'e>
|
||||
@genType.opaque type myProject = {name: string}
|
||||
|
||||
//There is no need to map option<> as it becomes nullable
|
|
@ -1,10 +0,0 @@
|
|||
type errorValue = EError | EErrorString(string) | EErrorNumber(float)
|
||||
type t = errorValue
|
||||
|
||||
let toString = (e: errorValue): string => {
|
||||
switch e {
|
||||
| EError => "Error"
|
||||
| EErrorString(s) => s
|
||||
| EErrorNumber(f) => Js.Float.toString(f)
|
||||
}
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
open MyInterface_InternalValue_T
|
||||
|
||||
let rec toString = (v: internalValue): string => {
|
||||
switch v {
|
||||
| IvString(s) => MyInterface_InternalValue_String.toString(s)
|
||||
| IvRecordLike(m) => MyInterface_InternalValue_RecordLike.toString(m, toString)
|
||||
| IvVoid(_v) => MyInterface_InternalValue_Void.toString
|
||||
}
|
||||
}
|
|
@ -1,12 +0,0 @@
|
|||
type t = MyInterface_InternalValue_T.recordLike
|
||||
let toString = (value: t, recToString) => {
|
||||
let contents =
|
||||
Belt.Map.String.mapWithKey(value, (key, value) => {
|
||||
`${key}: ${recToString(value)}`
|
||||
})
|
||||
->Belt.Map.String.toArray
|
||||
->Js.Array2.joinWith(", ")
|
||||
`{${contents}}`
|
||||
}
|
||||
|
||||
let toArray = (value: t) => Belt.Map.String.toArray(value)
|
|
@ -1 +0,0 @@
|
|||
let toString = v => v
|
|
@ -1 +0,0 @@
|
|||
let toString = "Void"
|
|
@ -1,7 +0,0 @@
|
|||
type rec internalValue =
|
||||
| IvString(string)
|
||||
| IvRecordLike(recordLike)
|
||||
| IvVoid(int)
|
||||
and recordLike = Belt.Map.String.t<internalValue>
|
||||
|
||||
type t = internalValue
|
|
@ -1 +0,0 @@
|
|||
To be trashed. Experimental code
|
|
@ -129,7 +129,7 @@ let getRunOrderFor = (project: reducerProject, sourceId: string) =>
|
|||
Parse includes so that you can load them before running.
|
||||
Load includes by calling getIncludes which returns the includes that have been parsed.
|
||||
It is your responsibility to load the includes before running.
|
||||
*/module Topology = ReducerProject_Topology
|
||||
*/ module Topology = ReducerProject_Topology
|
||||
|
||||
let parseIncludes = (project: reducerProject, sourceId: string): unit =>
|
||||
project->T.Private.castToInternalProject->Private.parseIncludes(sourceId)
|
||||
|
|
|
@ -1 +1,6 @@
|
|||
|
||||
open ForTS__Types
|
||||
/*
|
||||
Global variables, functions, helpers, etc.
|
||||
*/
|
||||
@genType
|
||||
let defaultEnvironment: environment = DistributionOperation.defaultEnv
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
@genType.opaque type result_<'a, 'e> = result<'a, 'e>
|
||||
|
||||
/*
|
||||
The reason this is not ExpressionValue is that ExpressionValue is becoming a parametric type
|
||||
to allow expressions for different domains.
|
||||
So we rename it right away not cause a compatibility problem
|
||||
*/
|
||||
@genType.opaque type result_<'a, 'e> = result<'a, 'e>
|
||||
|
||||
@genType.opaque type squiggleValue = ReducerInterface_InternalExpressionValue.t
|
||||
@genType.opaque type squiggleValue_Array = ReducerInterface_InternalExpressionValue.squiggleArray
|
||||
@genType.opaque
|
||||
|
@ -17,7 +17,8 @@ type squiggleValue_Declaration = ReducerInterface_InternalExpressionValue.lambda
|
|||
|
||||
@genType.opaque type reducerProject = ReducerProject_T.t
|
||||
|
||||
// From now on one should introduce any new types as opaque types
|
||||
// From now on one should introduce any new types as opaque types.
|
||||
// Exception: The intended type is really a JavaScript type or record. Not by coincidence
|
||||
// Already existing open types we cannot dive in now
|
||||
@genType type environment = GenericDist.env
|
||||
@genType type squiggleValue_Distribution = DistributionTypes.genericDist
|
||||
|
|
Loading…
Reference in New Issue
Block a user