Giter VIP home page Giter VIP logo

toml-parser's Introduction

toml-parser

Hackage Build Status

This package provides a complete and light-weight parser for the TOML configuration language. TOML is specified by https://github.com/toml-lang/toml. This language is designed to be easy to understand and unambiguous.

This implementation uses Alex and Happy to generate an efficient lexer and parser. The code is fully commented and should be useful as an example of how to use these tools to parse other languages.

Example

# This is a TOML document.

title = "Example document"

[section]
string    = "hello, world"
integers  = [0, +1, -2, 3_333_333]
float     = 4.2e10
inlinemap = { x = 1, y = 'two' }

[nesting]

  [nesting.first]
  longstring = """multiline "string" syntax"""
  longquote  = '''escapes \not \interpreted'''

  [nesting.second]
  datetime    = 2017-05-04T12:13:14Z
  lookinggood = true

Contact Information

Please contact me via GitHub or on the #haskell IRC channel on irc.freenode.net

toml-parser's People

Contributors

glguy avatar henrytill avatar vmchale avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

toml-parser's Issues

Add renderer or pretty-printer

It's easy to parse .toml files with this package! But there's no function to render Value data type into Text which might be useful.

Specify which version of Toml the parser conforms to

And ideally make an entry at the toml github wiki.

Given how much toml has evolved between 0.1 and 0.5 (most recent as of today), I think it would be valuable information for the user which version files toml-parser will consume.

Add 'aeson-like' interfaces for parsing

Currently, if I want to store and parse my data type inside TOML file, I need to manually pattern-match on the result of parseTOML function which can be awkward sometimes. Check this for example:

What would be good is to have aeson-like interfaces, let's say ToTOML and FromTOML which allows to convert to TOML and from TOML representations. I'm not saying that toml-parser should completely mimic aeson design choices, maybe something better can be invented. But I think it's a useful addition to library.

What do you think?

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.