Package

com.rouesnel.thrifty

ast

Permalink

package ast

Visibility
  1. Public
  2. All

Type Members

  1. sealed trait BaseType extends TypeNode with FieldType

    Permalink
  2. case class BoolLiteral(value: Boolean) extends Literal with Product with Serializable

    Permalink
  3. case class ConstDefinition(sid: SimpleID, fieldType: FieldType, value: RHS, docstring: Option[String]) extends Definition with Product with Serializable

    Permalink
  4. sealed abstract class ContainerType extends TypeNode with FieldType

    Permalink
  5. case class CppInclude(file: String) extends Header with Product with Serializable

    Permalink
  6. sealed abstract class Definition extends DefinitionNode

    Permalink
  7. abstract class DefinitionNode extends Node

    Permalink
  8. case class Document(headers: Seq[Header], defs: Seq[Definition]) extends DocumentNode with Product with Serializable

    Permalink
  9. abstract class DocumentNode extends Node

    Permalink
  10. case class DoubleLiteral(value: Double) extends Literal with Product with Serializable

    Permalink
  11. case class Enum(sid: SimpleID, values: Seq[EnumField], docstring: Option[String], annotations: Map[String, String] = Map.empty) extends Definition with Product with Serializable

    Permalink
  12. case class EnumField(sid: SimpleID, value: Int, docstring: Option[String]) extends Definition with Product with Serializable

    Permalink
  13. case class EnumRHS(enum: Enum, value: EnumField) extends RHS with Product with Serializable

    Permalink
  14. case class EnumType(enum: Enum, scopePrefix: Option[SimpleID] = None) extends TypeNode with NamedType with Product with Serializable

    Permalink
  15. case class Exception_(sid: SimpleID, originalName: String, fields: Seq[Field], docstring: Option[String], annotations: Map[String, String] = Map.empty) extends StructLike with Product with Serializable

    Permalink
  16. case class Field(index: Int, sid: SimpleID, originalName: String, fieldType: FieldType, default: Option[RHS] = None, requiredness: Requiredness = Requiredness.Default, typeAnnotations: Map[String, String] = Map.empty, fieldAnnotations: Map[String, String] = Map.empty, docstring: Option[String] = None) extends Node with Product with Serializable

    Permalink
  17. sealed trait FieldType extends TypeNode with FunctionType

    Permalink
  18. case class Function(funcName: SimpleID, originalName: String, funcType: FunctionType, args: Seq[Field], throws: Seq[Field], docstring: Option[String]) extends Node with Product with Serializable

    Permalink
  19. case class FunctionArgs(sid: SimpleID, originalName: String, fields: Seq[Field]) extends StructLike with Product with Serializable

    Permalink
  20. case class FunctionResult(sid: SimpleID, originalName: String, success: Option[Field], exceptions: Seq[Field]) extends StructLike with Product with Serializable

    Permalink
  21. sealed trait FunctionType extends TypeNode

    Permalink
  22. sealed abstract class Header extends HeaderNode

    Permalink
  23. abstract class HeaderNode extends Node

    Permalink
  24. abstract class IdNode extends Node

    Permalink
  25. case class IdRHS(id: Identifier) extends RHS with Product with Serializable

    Permalink
  26. sealed abstract class Identifier extends IdNode

    Permalink
  27. case class Include(filePath: String, document: Document) extends Header with Product with Serializable

    Permalink

    Process include statement.

    Process include statement.

    filePath

    the path of the file to be included. It can be a relative path, an absolute path or simply a file name

    document

    the content of the file to be included.

  28. case class IntLiteral(value: Long) extends Literal with Product with Serializable

    Permalink
  29. case class ListRHS(elems: Seq[RHS]) extends RHS with Product with Serializable

    Permalink
  30. case class ListType(eltType: FieldType, cppType: Option[String]) extends ContainerType with Product with Serializable

    Permalink
  31. sealed abstract class Literal extends RHS

    Permalink
  32. case class MapRHS(elems: Seq[(RHS, RHS)]) extends RHS with Product with Serializable

    Permalink
  33. case class MapType(keyType: FieldType, valueType: FieldType, cppType: Option[String]) extends ContainerType with Product with Serializable

    Permalink
  34. sealed trait NamedType extends TypeNode with FieldType

    Permalink
  35. case class Namespace(language: String, id: Identifier) extends Header with Product with Serializable

    Permalink
  36. sealed abstract class Node extends Positional

    Permalink
  37. case class QualifiedID(names: Seq[String]) extends Identifier with Product with Serializable

    Permalink
  38. sealed abstract class RHS extends ValueNode

    Permalink
  39. case class ReferenceType(id: Identifier) extends TypeNode with FieldType with Product with Serializable

    Permalink

    ReferenceType is generated by ThriftParser in the thrift.frontend and resolved by TypeResolver.

    ReferenceType is generated by ThriftParser in the thrift.frontend and resolved by TypeResolver. There should be no references to ReferenceType in the backend.

  40. sealed abstract class Requiredness extends Node

    Permalink
  41. case class Senum(sid: SimpleID, values: Seq[String]) extends Definition with Product with Serializable

    Permalink
  42. case class Service(sid: SimpleID, parent: Option[ServiceParent], functions: Seq[Function], docstring: Option[String]) extends Definition with Product with Serializable

    Permalink
  43. case class ServiceParent(sid: SimpleID, filename: Option[SimpleID]) extends Product with Serializable

    Permalink

    Identifier for the parent service.

    Identifier for the parent service.

    filename

    Set if the parent service is imported from another file

  44. case class SetRHS(elems: Set[RHS]) extends RHS with Product with Serializable

    Permalink
  45. case class SetType(eltType: FieldType, cppType: Option[String]) extends ContainerType with Product with Serializable

    Permalink
  46. case class SimpleID(name: String, origName: Option[String] = None) extends Identifier with Product with Serializable

    Permalink
  47. case class StringLiteral(value: String) extends Literal with Product with Serializable

    Permalink
  48. case class Struct(sid: SimpleID, originalName: String, fields: Seq[Field], docstring: Option[String], annotations: Map[String, String] = Map.empty) extends StructLike with Product with Serializable

    Permalink
  49. sealed abstract class StructLike extends Definition

    Permalink
  50. case class StructRHS(sid: SimpleID, elems: Map[Field, RHS]) extends RHS with Product with Serializable

    Permalink
  51. case class StructType(struct: StructLike, scopePrefix: Option[SimpleID] = None) extends TypeNode with NamedType with Product with Serializable

    Permalink
  52. abstract class TypeNode extends Node

    Permalink
  53. case class Typedef(sid: SimpleID, fieldType: FieldType, annotations: Map[String, String] = Map.empty) extends Definition with Product with Serializable

    Permalink
  54. case class Union(sid: SimpleID, originalName: String, fields: Seq[Field], docstring: Option[String], annotations: Map[String, String] = Map.empty) extends StructLike with Product with Serializable

    Permalink
  55. case class UnionRHS(sid: SimpleID, field: Field, initializer: RHS) extends RHS with Product with Serializable

    Permalink
  56. abstract class ValueNode extends Node

    Permalink

Value Members

  1. object Identifier

    Permalink
  2. object NullLiteral extends Literal with Product with Serializable

    Permalink
  3. object OnewayVoid extends TypeNode with FunctionType with Product with Serializable

    Permalink
  4. object Requiredness

    Permalink
  5. object TBinary extends TypeNode with BaseType with Product with Serializable

    Permalink
  6. object TBool extends TypeNode with BaseType with Product with Serializable

    Permalink
  7. object TByte extends TypeNode with BaseType with Product with Serializable

    Permalink
  8. object TDouble extends TypeNode with BaseType with Product with Serializable

    Permalink
  9. object TI16 extends TypeNode with BaseType with Product with Serializable

    Permalink
  10. object TI32 extends TypeNode with BaseType with Product with Serializable

    Permalink
  11. object TI64 extends TypeNode with BaseType with Product with Serializable

    Permalink
  12. object TString extends TypeNode with BaseType with Product with Serializable

    Permalink
  13. object Void extends TypeNode with FunctionType with Product with Serializable

    Permalink

Ungrouped