From 8748b3b08efe60d85b4354472d694827563424a5 Mon Sep 17 00:00:00 2001 From: GregRos Date: Sun, 29 Dec 2019 21:01:55 +0200 Subject: [PATCH] Added uniUpper, removed duplicated test code, upped version --- package.json | 6 +++--- src/lib/internal/parsers/char-types.ts | 12 +++++++++++- src/lib/internal/parsers/index.ts | 2 +- src/test/unit/standalone/string.spec.ts | 10 ---------- 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/package.json b/package.json index 7392cdf8..6b71f3bc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "parjs", - "version": "0.12.3", + "version": "0.12.6", "repository": "https://github.com/GregRos/parjs", "homepage": "https://github.com/GregRos/parjs", "typings": "index", @@ -9,7 +9,8 @@ "scripts": { "test": "nyc node ./dist/test/runner.js", "build": "rm -rf dist/ && tsc", - "docs": "node dist/generate-docs/run.js" + "docs": "node dist/generate-docs/run.js", + "do-publish": "yarn run build; node dist/publish.js; cd .tmp/publish; yarn publish" }, "keywords": [ "parser", @@ -28,7 +29,6 @@ "lodash": "^4.17.13" }, "devDependencies": { - "@types/globby": "^9.1.0", "@types/jasmine": "^3.3.0", "@types/lodash": "^4.14.104", "@types/node": "^10.12.9", diff --git a/src/lib/internal/parsers/char-types.ts b/src/lib/internal/parsers/char-types.ts index 94f1e109..4126117c 100644 --- a/src/lib/internal/parsers/char-types.ts +++ b/src/lib/internal/parsers/char-types.ts @@ -14,7 +14,7 @@ import { isHex, isUpper, isLower, - isSpace, isNewline + isSpace, isNewline, uniIsUpper } from "char-info"; import {must} from "../combinators/must"; @@ -102,6 +102,16 @@ export function uniDecimal() { }); } +/** + * Returns a parser that parses a single Unicode upper-case character. + */ +export function uniUpper() { + return charWhere(x => uniIsUpper.char(x) || { + reason: `expecting a Unicode upper-case letter` + }); +} + + /** * Returns a parser that parses a single hex digit. */ diff --git a/src/lib/internal/parsers/index.ts b/src/lib/internal/parsers/index.ts index da98dd25..dce95731 100644 --- a/src/lib/internal/parsers/index.ts +++ b/src/lib/internal/parsers/index.ts @@ -18,4 +18,4 @@ export {state} from "./state"; export {string} from "./string"; export {stringLen} from "./string-len"; export {anyStringOf} from "./string-of"; -export {anyChar, anyCharOf, noCharOf, whitespace, uniLower, uniDecimal, digit, hex, letter, lower, space, spaces1, uniLetter, upper} from "./char-types"; +export {anyChar, anyCharOf, noCharOf, whitespace, uniLower, uniDecimal, uniUpper, digit, hex, letter, lower, space, spaces1, uniLetter, upper} from "./char-types"; diff --git a/src/test/unit/standalone/string.spec.ts b/src/test/unit/standalone/string.spec.ts index 83ca9caa..dfcae8c4 100644 --- a/src/test/unit/standalone/string.spec.ts +++ b/src/test/unit/standalone/string.spec.ts @@ -179,16 +179,6 @@ describe("basic string parsers", () => { expectSuccess(parser.parse(macNewline), macNewline); }); - it("success on all newline string, incl unicode newline", () => { - let unicodeNewline = uniNewline().pipe( - many() - ); - let result = unicodeNewline.parse(allNewlines); - expect(result.kind).toBe(ResultKind.Ok); - if (result.kind !== ResultKind.Ok) return; - expect(result.value.length).toBe(allNewlines.length - 1); - }); - it("fails on empty", () => { expectFailure(parser.parse(empty)); });