nom-lua 0.0.2

Lua 5.3 parser written in nom
Documentation
# nom-lua [![travis-badge][]][travis] [![appveyor-badge][]][appveyor] [![coveralls-badge][]][coveralls] [![license-badge][]][license] [![docs-badge][]][docs]

Lua 5.3 parser written with nom

# Syntax
- [ ] chunk (needs tests)
- [x] block
- [ ] stat
  - [x] ";"
  - [ ] varlist = explist
  - [ ] functioncall (deps functioncall)
  - [x] label
  - [x] "break"
  - [x] goto
  - [ ] do end
  - [ ] while
  - [ ] repeat until
  - [ ] if
  - [ ] for
  - [ ] for in
  - [ ] function (deps funcname)
  - [ ] local function
  - [ ] local
- [x] retstat  (needs tests)
- [x] label
- [ ] varlist (deps var)
- [x] var
- [x] namelist (needs tests)
- [x] explist (needs tests)
- [x] exp (needs tests)
  - [x] Numeral
  - [x] Nil
  - [x] Bool
  - [x] LiteralString
  - [x] "..."
  - [x] functiondef
  - [x] prefixexp
  - [x] tableconstructor
  - [x] op
- [ ] prefixexp (needs to be finished)
- [ ] functioncall (deps args, prefixexp)
- [ ] args (deps explist, tableconstructor, LiteralString)
- [x] funcname
- [x] functiondef
- [x] funcbody
- [x] parlist
- [x] tableconstructor (needs tests)
- [x] fieldlist (needs tests)
- [x] field
- [x] fieldsep
- [x] Binop (percedence error)
- [x] Unop
- [x] Name
- [x] Numeral
  - [X] Digit
  - [X] Hex Digit
  - [X] Float
  - [ ] Hex Float
- [x] LitrealString
  - [ ] Short Literal
    - [x] linebreaks
    - [ ] byte
    - [x] unicode
    - [x] escape
    - [ ] '\z'
  - [ ] Literal


# TODO
- [ ] Different integer and floating point values (i32, f32)
- [ ] Better syntax errors
- [x] Fallback to floats on overflow
- [ ] Benchmarks
- [ ] Fuzzing
- [ ] Change tests to fail instead of panicking
- [ ] Enforce ASTNodes correctness on more operations
	For example, BinOp could take a BinOp enum instead of ASTNode
- [ ] Build all features on CI


## License

nom-lua is primarily distributed under the terms of both the MIT license
and the Apache License (Version 2.0).

See [LICENSE-APACHE](LICENSE-APACHE) and [LICENSE-MIT](LICENSE-MIT) for details.

[travis-badge]: https://img.shields.io/travis/afonso360/nom-lua/master.svg?style=flat-square
[appveyor-badge]: https://img.shields.io/appveyor/ci/afonso360/nom-lua/master.svg?style=flat-square
[coveralls-badge]: https://img.shields.io/coveralls/afonso360/nom-lua/master.svg?style=flat-square
[license-badge]: https://img.shields.io/badge/license-MIT%20or%20Apache%202.0-blue.svg?style=flat-square
[docs-badge]: https://img.shields.io/badge/docs-0.0.2-blue.svg?style=flat-square
[travis]: https://travis-ci.org/afonso360/nom-lua
[appveyor]: https://ci.appveyor.com/project/afonso360/nom-lua
[coveralls]: https://coveralls.io/github/afonso360/nom-lua
[docs]: https://docs.rs/nom-lua/0.0.2/nom-lua/
[license]: https://github.com/afonso360/nom-lua#license