From 4e800c3dc55720c476bc6bdbc4fdcf3f63481060 Mon Sep 17 00:00:00 2001 From: Benny van Reeven Date: Sat, 9 Dec 2017 17:05:11 +0100 Subject: [PATCH] Add tests for createLanguage and fix Rule --- types/parsimmon/index.d.ts | 4 ++-- types/parsimmon/parsimmon-tests.ts | 15 ++++++++++++++- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/types/parsimmon/index.d.ts b/types/parsimmon/index.d.ts index 26ed383daf..a65be6de03 100644 --- a/types/parsimmon/index.d.ts +++ b/types/parsimmon/index.d.ts @@ -6,7 +6,7 @@ // Benny van Reeven // Leonard Thieu // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped -// TypeScript Version: 2.1 +// TypeScript Version: 2.2 /** * **NOTE:** You probably will never need to use this function. Most parsing @@ -75,7 +75,7 @@ declare namespace Parsimmon { } interface Rule { - [key: string]: (r?: Language) => Parser; + [key: string]: (r: Language) => Parser; } interface Language { diff --git a/types/parsimmon/parsimmon-tests.ts b/types/parsimmon/parsimmon-tests.ts index 3a3049121a..a923364aad 100644 --- a/types/parsimmon/parsimmon-tests.ts +++ b/types/parsimmon/parsimmon-tests.ts @@ -1,5 +1,5 @@ import P = require('parsimmon'); -import { Parser, Mark, Result, Index, Reply } from "parsimmon"; +import { Parser, Mark, Result, Index, Reply, Language } from "parsimmon"; // -- -- -- -- -- -- -- -- -- -- -- -- -- @@ -191,3 +191,16 @@ strArrPar = P.sepBy1(P.string('foo'), P.string('bar')); strPar = P.test((a: string) => false); strPar = P.takeWhile((a: string) => true); + +// -- -- -- -- -- -- -- -- -- -- -- -- -- + +let language: Language; + +language = P.createLanguage({ + SomeRule: r => P.alt(P.string(""), r.AnotherRule), + AnotherRule: () => P.string(""), +}); + +anyPar = language.SomeRule; +anyPar = language.AnotherRule; +anyPar = language.UndefinedRule;