0.10.0.0 (2016-09-25) ===================== - Breaking: Consolidate struct, union, and exception AST types into a single data type: `Struct`. Whether the object is a struct, union, or exception is now determined by the `StructKind` attribute. - Breaking: Deprecated module `Language.Thrift.Types` has now been removed. 0.9.0.2 (2016-08-31) ==================== - Disallow reserved keywords from being used as identifier names. 0.9.0.1 (2016-05-26) ==================== - Build with GHC 8. 0.9.0.0 (2016-05-15) ==================== - Deprecate the `Language.Thrift.Types` in favor of `Language.Thrift.AST`. - Upgrade to `megaparsec` 5.0. 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.