kawazoe / haircomb Goto Github PK
View Code? Open in Web Editor NEWA typescript parser combinator library inspired by Pidgin
License: MIT License
A typescript parser combinator library inspired by Pidgin
License: MIT License
Given the current JSON sample parser
When it parses objects and arrays containing whitespaces like [\t ]
or { \t\n}
Or when it parses root objects and arrays surrounded by whitespaces like \n\t{...} \t
Then it should successfully parse the JSON input.
Given a parser like the JSON parser sample
When a parse session fails
Then the expected result that is part of the final error should render the entire Expected tree
But the current version seems to badly render some cases:
AssertionError: Parse error.
Token did not match expected predicate or token list.
Unexpected: " "
Expected:
<Expected: root JObject>
Due to:
<Expected tokens: <{, }>>
<Expected tokens: <{, }>>
<Expected tokens: <{, }>>
<Expected tokens: <{, }>>
<Expected tokens: <{, }>>
<Expected tokens: <{, }>>
<Expected tokens: <{, }>>
<Expected tokens: <{, }>>
<Expected tokens: <{, }>>
<Expected tokens: <{, }>>
<Expected tokens: <{, }>>
<Expected tokens: <{, }>>
<Expected tokens: <{, }>>
<Expected: root JArray>
Due to:
<Expected tokens: <[, ]>>
<Expected tokens: <[, ]>>
<Expected tokens: <[, ]>>
<Expected tokens: <[, ]>>
<Expected tokens: <[, ]>>
<Expected tokens: <[, ]>>
<Expected tokens: <[, ]>>
at line 1, column 1: expected false to be true
Expected :true
Actual :false
<Click to see difference>
at expectJson (lib\parse.specs.ts:13:45)
at Context.<anonymous> (lib\parse.specs.ts:26:19)
The current version of the pipe operator returns a function that takes a parser instead or returning a parser directly.
export function pipe<TToken, T>(...): (parser: Parser<TToken, T>) => Parser<TToken, T>;
// instead of
export function pipe<TToken, T>(parser: Parser<TToken, T>, ...): Parser<TToken, T>;
Which one makes more sense?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.