error value
This commit is contained in:
parent
e9c55fe802
commit
975b1ffda8
|
@ -1 +1,11 @@
|
|||
open ForTS__Types
|
||||
|
||||
@genType
|
||||
let toString = (e: reducerErrorValue): string => Reducer_ErrorValue.errorToString(e)
|
||||
|
||||
@genType
|
||||
let getLocation = (e: reducerErrorValue): option<syntaxErrorLocation> =>
|
||||
switch e {
|
||||
| RESyntaxError(_, optionalLocation) => optionalLocation
|
||||
| _ => None
|
||||
}
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
@genType.opaque type result_<'a, 'e> = result<'a, 'e>
|
||||
@genType.opaque type reducerErrorValue = Reducer_ErrorValue.errorValue
|
||||
@genType type syntaxErrorLocation = Reducer_ErrorValue.syntaxErrorLocation
|
||||
|
||||
/*
|
||||
The reason this is not ExpressionValue is that ExpressionValue is becoming a parametric type
|
||||
|
@ -13,7 +15,6 @@ type squiggleValue_Declaration = ReducerInterface_InternalExpressionValue.lambda
|
|||
@genType.opaque type squiggleValue_Lambda = ReducerInterface_InternalExpressionValue.lambdaValue
|
||||
@genType.opaque type squiggleValue_Record = ReducerInterface_InternalExpressionValue.map
|
||||
@genType.opaque type squiggleValue_Type = ReducerInterface_InternalExpressionValue.map
|
||||
@genType.opaque type reducerErrorValue = Reducer_ErrorValue.errorValue
|
||||
|
||||
@genType.opaque type reducerProject = ReducerProject_T.t
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
//FIXME: Move this under ForTS
|
||||
//TODO: Do not export here but in ForTS__Types
|
||||
@gentype.import("peggy") @genType.as("LocationRange")
|
||||
type location
|
||||
type syntaxErrorLocation
|
||||
|
||||
type errorValue =
|
||||
| REArityError(option<string>, int, int)
|
||||
|
@ -17,7 +17,7 @@ type errorValue =
|
|||
| REOperationError(Operation.operationError)
|
||||
| RERecordPropertyNotFound(string, string)
|
||||
| RESymbolNotFound(string)
|
||||
| RESyntaxError(string, option<location>)
|
||||
| RESyntaxError(string, option<syntaxErrorLocation>)
|
||||
| RETodo(string) // To do
|
||||
| REUnitNotFound(string)
|
||||
|
||||
|
|
|
@ -5,10 +5,10 @@ type node = {"type": string}
|
|||
|
||||
@module("./Reducer_Peggy_GeneratedParser.js") external parse__: string => node = "parse"
|
||||
|
||||
type withLocation = {"location": Reducer_ErrorValue.location}
|
||||
type withLocation = {"location": Reducer_ErrorValue.syntaxErrorLocation}
|
||||
external castWithLocation: Js.Exn.t => withLocation = "%identity"
|
||||
|
||||
let syntaxErrorToLocation = (error: Js.Exn.t): Reducer_ErrorValue.location =>
|
||||
let syntaxErrorToLocation = (error: Js.Exn.t): Reducer_ErrorValue.syntaxErrorLocation =>
|
||||
castWithLocation(error)["location"]
|
||||
|
||||
let parse = (expr: string): result<node, errorValue> =>
|
||||
|
|
Loading…
Reference in New Issue
Block a user