aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/parser/index.ts5
-rw-r--r--tests/parser.spec.ts4
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(