0.7.0.0 ======= - Added source annotations to all `TypeReference` and `ConstValue` constructors. - Added a `name` and `srcAnnot` lenses for `Type` and `Definition`. 0.6.2.0 ======= - Use more concrete types for lenses which don't need overloading. 0.6.1.0 ======= - Output generated by the `ansi-wl-pprint` pretty printer will be colored using ANSI escape codes. 0.6.0.1 ======= - Export `Pretty` instances from `Language.Thrift.Types` instead of requiring a separate import of the corresponding `Pretty` module. 0.6.0.0 ======= - 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 ======= 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 ======= - 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 ======= - 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 ======= - Track starting positions in source annotations. - Move docs to a separate field. 0.1.0.1 ======= - Allow `base` 4.9. 0.1.0.0 ======= - Initial release.