diff options
| -rw-r--r-- | src/parser/index.ts | 5 | ||||
| -rw-r--r-- | tests/parser.spec.ts | 4 |
2 files changed, 4 insertions, 5 deletions
diff --git a/src/parser/index.ts b/src/parser/index.ts index d1da542..a2276bb 100644 --- a/src/parser/index.ts +++ b/src/parser/index.ts @@ -81,12 +81,11 @@ const unsignedNum: Parser<number> = mapTo( ) const numberLiteral: Parser<Literal> = mapTo( - pair(optional(oneOf(['+', '-'])), unsignedNum), + pair(optional(matchChar('-')), unsignedNum), ([signO, n]) => pipe( signO, - Option.getOrElse(() => '+'), - sign => (sign === '-' ? -1 : 1) * n, + negative => (Option.isSome(negative) ? -1 : 1) * n, Literal.Number, ), ) diff --git a/tests/parser.spec.ts b/tests/parser.spec.ts index 8a53faf..0abb1a0 100644 --- a/tests/parser.spec.ts +++ b/tests/parser.spec.ts @@ -117,13 +117,13 @@ describe('Parser', () => { ) // signed numbers - expect(parser(/ +23.025 /.source)).toEqual( + expect(parser(/ 23.025 /.source)).toEqual( wrap(Expr.Literal(Literal.Number(23.025))), ) expect(parser(/ -23.025 /.source)).toEqual( wrap(Expr.Literal(Literal.Number(-23.025))), ) - expect(parser(/ +23 /.source)).toEqual( + expect(parser(/ 23 /.source)).toEqual( wrap(Expr.Literal(Literal.Number(23))), ) expect(parser(/ -23 /.source)).toEqual( |
