diff options
| author | Akshay Nair <phenax5@gmail.com> | 2022-01-25 00:21:15 +0530 |
|---|---|---|
| committer | Akshay Nair <phenax5@gmail.com> | 2022-01-25 00:21:15 +0530 |
| commit | 4c478c76679a35da0819fde112a7fdc680f28863 (patch) | |
| tree | 7f7ce7c8e2d080bc6799ad4df6b73e530d3ae230 /src/parser | |
| parent | 35930fd49039ec48680c9240cfdb39b6e1101bfa (diff) | |
| download | elxr-4c478c76679a35da0819fde112a7fdc680f28863.tar.gz elxr-4c478c76679a35da0819fde112a7fdc680f28863.zip | |
chore: formatter
Diffstat (limited to 'src/parser')
| -rw-r--r-- | src/parser/index.ts | 7 | ||||
| -rw-r--r-- | src/parser/utils.ts | 29 |
2 files changed, 23 insertions, 13 deletions
diff --git a/src/parser/index.ts b/src/parser/index.ts index 7f0e945..ac5c8ed 100644 --- a/src/parser/index.ts +++ b/src/parser/index.ts @@ -135,8 +135,11 @@ const regexLiteral: Parser<Literal> = mapTo( prefixed( regexDelimiter, pair( - manyTill(satisfyChar(_ => true), regexDelimiter), - many0(satisfyChar(c => REGEX_FLAGS.includes(c))) + manyTill( + satisfyChar(_ => true), + regexDelimiter, + ), + many0(satisfyChar(c => REGEX_FLAGS.includes(c))), ), ), ([rs, flags]) => Literal.RegExp(new RegExp(rs.join(''), flags.join(''))), diff --git a/src/parser/utils.ts b/src/parser/utils.ts index 564d97c..c2c6300 100644 --- a/src/parser/utils.ts +++ b/src/parser/utils.ts @@ -29,17 +29,23 @@ export const sepBy1 = <T>(sep: Parser<any>, parser: Parser<T>): Parser<T[]> => ), ) -export const not = (parser: Parser<any>): Parser<never> => (input: string) => - pipe( - input, - parser, - Either.fold( - ([_left, inp]) => Either.right([null as never, inp]), - ([_right, inp]) => Either.left(['`not` parser failed. Match found', inp]) - ), - ) +export const not = + (parser: Parser<any>): Parser<never> => + (input: string) => + pipe( + input, + parser, + Either.fold( + ([_left, inp]) => Either.right([null as never, inp]), + ([_right, inp]) => + Either.left(['`not` parser failed. Match found', inp]), + ), + ) -export const manyTill = <T>(parser: Parser<T>, end: Parser<any>): Parser<T[]> => { +export const manyTill = <T>( + parser: Parser<T>, + end: Parser<any>, +): Parser<T[]> => { const p = pair(many0(suffixed(parser, not(end))), suffixed(parser, end)) return mapTo(p, ([xs, l]) => xs.concat([l])) } @@ -99,7 +105,8 @@ export const delimited = <T>( export const satisfyChar = (f: (c: char) => boolean): Parser<char> => (input: string) => { - if (input.length === 0) return Either.left(['Unexpected end of input', input]) + if (input.length === 0) + return Either.left(['Unexpected end of input', input]) const c = input.charAt(0) if (f(c)) return Either.right([c, input.slice(1)]) return Either.left([`Expected to satisfy ${f}, got "${c}"`, input]) |
