mixfix

0.0.2 • Public • Published

mixfix

mixfix expression parser

Build Status NPM version Dependency Status devDependency Status Code Climate

Based on: Parsing Mixfix Operators

parser

Parser a = List token → Error ∨ NonEmptyList (a × List token)

Parsers are functions taking list of tokens and returning either error or possible parse results. In actual implementation List token is represented by an array of tokens and an index into it.

  • parser.parse(@: Parser a, tokens: List token): a

    Parse tokens. Returns first parse result.

  • parser.map(@: Parser a, f: a -> b): Parser b

  • parser.uniq(@: Parser a): Parser a

  • parser.satisfy(@: Parser a, predicate: a -> Boolean): Parser a

  • parser.end(@: Parser a): Parser a

  • parser.many(@: Parser a): Parser (Array a)

  • parser.some(@: Parser a): Parser (Array a)

  • parser.left(@: Parser a, other: Parser b): Parser a

  • parser.right(@: Parser a, other: Parser b): Parser b

  • pure(x: a): Parser a

  • fail(error: Err): Parser a

  • any: Parser a

  • combine(p: Parser a..., f: a... -> b): Parser b

  • choice(p: Parser a | List (Parser a)...): Parser a

  • lazy(f: => Parser a): Parser a

lexer

A very simple lexer.

  • lexer.create(specification: List (String | RegExp)): String -> List String

    Creates a tokenizer function.

Release History

  • 0.0.22015-01-07 — Simple lexer
  • 0.0.12014-11-23 — Parser combinators

Contributing

  • README.md is generated from the source with ljs
  • Before creating a pull request run make test, yet travis will do it for you.

/mixfix/

    Package Sidebar

    Install

    npm i mixfix

    Weekly Downloads

    1

    Version

    0.0.2

    License

    none

    Last publish

    Collaborators

    • phadej