diff options
| author | Akshay Nair <phenax5@gmail.com> | 2022-01-08 22:16:37 +0530 |
|---|---|---|
| committer | Akshay Nair <phenax5@gmail.com> | 2022-01-08 22:18:00 +0530 |
| commit | 2b8ceabd93205f2f852aa08d5fcdc4a8151ae131 (patch) | |
| tree | 131d84fd80a34b0c416bc24e384b408a2372ef1d /src | |
| parent | f9544958194efb54e2c4f211a632964c488456e8 (diff) | |
| download | elxr-2b8ceabd93205f2f852aa08d5fcdc4a8151ae131.tar.gz elxr-2b8ceabd93205f2f852aa08d5fcdc4a8151ae131.zip | |
feat(eval): one or more (incomplete)
Diffstat (limited to '')
| -rw-r--r-- | src/eval/index.ts | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/eval/index.ts b/src/eval/index.ts index b4dcf48..d5c56c2 100644 --- a/src/eval/index.ts +++ b/src/eval/index.ts @@ -1,4 +1,5 @@ import { pipe } from 'fp-ts/function' +import {takeLeftWhile} from 'fp-ts/lib/Array' import { Expr, ListExpr } from '../types' import { match } from '../utils' @@ -18,6 +19,16 @@ export const find = <T>([startO, exprs, endO]: ListExpr, list: T[]): any => { Group: ({ exprs }) => exprs.every(e => check(e)(x, i, ls)), PropertyMatch: ({ name, exprs }) => name in x && exprs.every(e => check(e)(x[name], i, ls)), + OneOrMore: ({ expr }) => { + // TODO: Nested quantified expression + const x = pipe( + list.slice(i), + takeLeftWhile(x => check(expr)(x, i, list)), + ) + console.log(x) + + return true + }, _: _ => false, }), ) |
