aboutsummaryrefslogtreecommitdiff
path: root/src/utils/parser-comb.ts
diff options
context:
space:
mode:
authorAkshay Nair <phenax5@gmail.com>2023-08-10 22:45:00 +0530
committerAkshay Nair <phenax5@gmail.com>2023-08-10 22:45:00 +0530
commite01cb693bc5737792e2b37abfd98d2d8f81bac4d (patch)
tree894d367e14f5a7edac5a80fb7caf9f9a84727d1e /src/utils/parser-comb.ts
parent2102e7608b1b3634a651cb40508d2f560f3eeb05 (diff)
downloadcss-everything-e01cb693bc5737792e2b37abfd98d2d8f81bac4d.tar.gz
css-everything-e01cb693bc5737792e2b37abfd98d2d8f81bac4d.zip
feat: adds simple evaluator
Diffstat (limited to '')
-rw-r--r--src/utils/parser-comb.ts15
1 files changed, 2 insertions, 13 deletions
diff --git a/src/utils/parser-comb.ts b/src/utils/parser-comb.ts
index 49f633e..e0665f6 100644
--- a/src/utils/parser-comb.ts
+++ b/src/utils/parser-comb.ts
@@ -1,16 +1,5 @@
-import { Enum, constructors, match } from './adt';
-
-export type Result<V, E> = Enum<{ Ok: V, Err: E }>
-export const Result = constructors<Result<any, any>>()
-
-export const mapResult = <A, B, E>(res: Result<A, E>, fn: (_: A) => B): Result<B, E> =>
- chainResult(res, a => Result.Ok(fn(a)))
-
-export const chainResult = <A, B, E>(res: Result<A, E>, fn: (_: A) => Result<B, E>): Result<B, E> =>
- match(res, {
- Ok: a => fn(a),
- Err: e => Result.Err(e),
- });
+import { match } from './adt';
+import { Result, mapResult, chainResult } from './result';
export type ParseResult<T> = Result<{ value: T, input: string }, { error: string, input: string }>;