From 2b8ceabd93205f2f852aa08d5fcdc4a8151ae131 Mon Sep 17 00:00:00 2001 From: Akshay Nair Date: Sat, 8 Jan 2022 22:16:37 +0530 Subject: feat(eval): one or more (incomplete) --- src/eval/index.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'src/eval') 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 = ([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, }), ) -- cgit v1.3.1