Changelog of @hackage/language-thrift 0.7.0.0

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.