Giter VIP home page Giter VIP logo

haircomb's People

Contributors

dependabot[bot] avatar kawazoe avatar

Stargazers

 avatar

Watchers

 avatar  avatar

haircomb's Issues

JSON sample should better handle whitespaces

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.

Failed parse sessions does not provide meaningful expected results

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)

Should the pipe operator be a high-ordered function

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?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.