Fable

所属分类:collect
开发工具:F#
文件大小:0KB
下载次数:0
上传日期:2022-12-09 14:37:44
上 传 者sh-1993
说明:  Parsimmon解析器组合器库的寓言绑定,
(Fable binding for the Parsimmon parser combinator library,)

文件列表:
.paket/ (0, 2022-02-05)
.paket/Paket.Restore.targets (32044, 2022-02-05)
.paket/paket.exe (64296, 2022-02-05)
.paket/paket.targets (3855, 2022-02-05)
.travis.yml (533, 2022-02-05)
.vscode/ (0, 2022-02-05)
.vscode/tasks.json (1277, 2022-02-05)
Fable.Parsimmon.Tests/ (0, 2022-02-05)
Fable.Parsimmon.Tests/Fable.Parsimmon.Tests.fsproj (405, 2022-02-05)
Fable.Parsimmon.Tests/Parsimmon.Tests.fs (16408, 2022-02-05)
Fable.Parsimmon.Tests/QUnit.fs (7116, 2022-02-05)
Fable.Parsimmon.Tests/paket.references (23, 2022-02-05)
Fable.Parsimmon.sln (2025, 2022-02-05)
Fable.Parsimmon/ (0, 2022-02-05)
Fable.Parsimmon/Fable.Parsimmon.fsproj (961, 2022-02-05)
Fable.Parsimmon/Parsimmon.fs (9691, 2022-02-05)
Fable.Parsimmon/Parsimmon.js (30123, 2022-02-05)
Fable.Parsimmon/paket.references (22, 2022-02-05)
LICENSE (1066, 2022-02-05)
Nuget.Config (355, 2022-02-05)
build.cmd (194, 2022-02-05)
build.fsx (2471, 2022-02-05)
build.sh (603, 2022-02-05)
package.json (560, 2022-02-05)
paket.dependencies (221, 2022-02-05)
paket.lock (48982, 2022-02-05)
public/ (0, 2022-02-05)
public/favicon-16x16.png (514, 2022-02-05)
public/favicon-32x32.png (1010, 2022-02-05)
public/index.html (710, 2022-02-05)
webpack.config.js (1135, 2022-02-05)
yarn.lock (215053, 2022-02-05)

# Fable.Parsimmon [![Build Status](https://travis-ci.org/Zaid-Ajaj/Fable.Parsimmon.svg?branch=master)](https://travis-ci.org/Zaid-Ajaj/Fable.Parsimmon) [Fable](http://fable.io/) binding and helpers for the [Parsimmon](https://github.com/jneen/parsimmon) parser combinator library. ### Nuget Packages | Fable version | Package | | ------------- | ------------- | | 2.0 | [![Nuget](https://img.shields.io/nuget/v/Fable.Parsimmon.svg?maxAge=0&colorB=brightgreen)](https://www.nuget.org/packages/Fable.Parsimmon) | # Installation You can install the library from Nuget using Paket: ``` paket add nuget Fable.Parsimmon --project path/to/YourProject.fsproj ``` It includes the javascript dependency [(this file)](https://github.com/Zaid-Ajaj/Fable.Parsimmon/blob/master/Fable.Parsimmon/Parsimmon.js) in the Nuget package so there no need to install anything else using `npm` Make sure the references are added to your paket files ``` // paket.dependencies (solution-wide dependencies) nuget Fable.Parsimmon // paket.refernces (project-specific dependencies) Fable.Parsimmon ``` To understand how to use it, refer to the project `Fable.Parsimmon.Tests` where most of the combinators are tested, for example: ```fs open Fable.Parsimmon QUnit.test "Parsing list of numbers works" <| fun test -> let comma = Parsimmon.str "," let commaSeperatedNumbers = Parsimmon.digit |> Parsimmon.many |> Parsimmon.concat |> Parsimmon.map int |> Parsimmon.seperateBy comma let leftBracket = Parsimmon.str "[" let rightBracket = Parsimmon.str "]" commaSeperatedNumbers |> Parsimmon.between leftBracket rightBracket |> Parsimmon.parse "[5,10,15,20,25]" |> function | Some [| 5; 10; 15; 20; 25 |] -> test.pass() | otherwise -> test.fail() ``` Recursive parsers as values such as [this one](https://github.com/jneen/parsimmon/blob/master/API.md#parsimmonlazyfn) are also supported: ```fs QUnit.test "Parsimmon.ofLazy works" <| fun test -> let rec lazyValue = Parsimmon.ofLazy <| fun () -> [ Parsimmon.str "X" Parsimmon.str "(" |> Parsimmon.chain lazyValue |> Parsimmon.skip (Parsimmon.str ")") ] |> Parsimmon.choose ["X"; "(X)"; "((X))"] |> List.map (fun token -> Parsimmon.parse token lazyValue) |> function | [ Some "X"; Some "X"; Some "X" ] -> test.pass() | otherwise -> test.fail() ```

近期下载者

相关文件


收藏者