0.8.0.2 (2016-08-31)
====================
- Disallow reserved keywords from being used as identifier names.
0.8.0.1 (2016-05-24)
====================
- Build with GHC 8.
0.8.0.0 (2016-02-09)
====================
This release contains breaking changes. The number of transitive dependencies
has been reduced significantly.
- Switched parser to `megaparsec`. `trifecta` and `parsers` bring too many
dependencies with them.
- Drop support for `wl-pprint`. Only `ansi-wl-pprint` is supported now.
- Drop dependency on `lens`. Lenses for fields of the AST elements are still
provided but prisms are not. Use `Control.Lens.makePrisms` to derive your
own if needed.
0.7.0.1 (2016-01-27)
====================
- Drop use of `TemplateHaskell`.
0.7.0.0 (2016-01-15)
====================
- Added source annotations to all `TypeReference` and
`ConstValue` constructors.
- Added `name` and `srcAnnot` lenses for `Type` and `Definition`.
0.6.2.0 (2016-01-05)
====================
- Use more concrete types for lenses which don't need overloading.
0.6.1.0 (2016-01-03)
====================
- Output generated by the `ansi-wl-pprint` pretty printer will be colored
using ANSI escape codes.
0.6.0.1 (2016-01-02)
====================
- Export `Pretty` instances from `Language.Thrift.Types` instead of requiring
a separate import of the corresponding `Pretty` module.
0.6.0.0 (2016-01-02)
====================
- Added a pretty printer based on `ansi-wl-pprint`.
- Both pretty printing modules now export instances of `Pretty` for relevant
elements of the AST. These instances use `defaultConfig` for printing.
0.5.0.0 (2015-12-27)
====================
The AST representation has been overhauled to be more consistent and
accessible. As a result, this release contains a number of breaking changes:
- Moved `Header` records into `Include` and `Namespace` types.
- Moved `ConstDefinition` record into separate type, `Const`.
- Moved `ServiceDefinition` record into separate type, `Service`.
- Moved `Type` records into separate types: `Typedef`, `Enum`, `Struct`,
`Union`, `Exception`, `Senum`.
- Renamed `FieldType` to `TypeReference`.
- Renamed parser and pretty printer for `TypeReference` to `typeReference`.
- Renamed the following record fields: `constType` to `constValueType`,
`typedefType` to `typedefTargetType`, `fieldType` to `fieldValueType`, and
`fieldDefault` to `fieldDefaultValue`.
- Hide `function` parser and pretty printer.
- Moved type annotations for defined types into the records for the
types themselves.
Other changes:
- Added lenses and prisms for AST types where appropriate.
- Parsing will fail if the end of the document is not reached when the
parser stops. This fixes the bug where the parser would stop half way
through a file when it saw a recoverable error.
- Added source annotations to headers, type references (`DefinedType`) and
constant value references (`ConstIdentifer`).
- Added `i8` as an alias for `byte`.
- Type annotations are now allowed to have no associated value.
- Expose parsers and pretty printers for different headers and definitions.
- Fixed a bug which would cause parsing to fail if a definition ended with a
semicolon or a comma.
- Drop dependency on mtl.
0.4.0.0 (2015-08-02)
====================
- Add pretty printing module.
- Parsers of different constructors are no longer exported by the parsing
module; instead only the parsers for their corresponding types
are exported.
- Rename record for field requiredness from `fieldRequiredNess` to
`fieldRequiredness`.
0.3.0.0 (2015-07-31)
====================
- Allow changing the underlying parser to any parser that implements the
`TokenParsing` class from `parsers`.
- Add `thriftIDLParser` for standard use cases.
- Add `Language.Thrift.Parser.Trifecta` with a standard
Trifecta-based parser.
0.2.0.0 (2015-06-12)
====================
- Track starting positions in source annotations.
- Move docs to a separate field.
0.1.0.1 (2015-06-02)
====================
- Allow `base` 4.9.
0.1.0.0 (2015-04-05)
====================
- Initial release.