package ast
Ordering
- Alphabetic
Visibility
- Public
- Protected
Type Members
- sealed trait BaseType extends TypeNode with FieldType
- case class BoolLiteral(value: Boolean) extends Literal with Product with Serializable
- case class ConstDefinition(sid: SimpleID, fieldType: FieldType, value: RHS, docstring: Option[String]) extends Definition with Product with Serializable
- sealed abstract class ContainerType extends TypeNode with FieldType
- case class CppInclude(file: String) extends Header with Product with Serializable
- sealed abstract class Definition extends DefinitionNode
- abstract class DefinitionNode extends Node
- case class Document(headers: Seq[Header], defs: Seq[Definition]) extends DocumentNode with Product with Serializable
- abstract class DocumentNode extends Node
- case class DoubleLiteral(value: Double) extends Literal with Product with Serializable
- case class Enum(sid: SimpleID, values: Seq[EnumField], docstring: Option[String], annotations: Map[String, String] = Map.empty) extends Definition with Product with Serializable
- case class EnumField(sid: SimpleID, value: Int, docstring: Option[String], annotations: Map[String, String] = Map.empty) extends Definition with Product with Serializable
- case class EnumRHS(enum: Enum, value: EnumField) extends RHS with Product with Serializable
- case class EnumType(enum: Enum, scopePrefix: Option[Identifier] = None) extends TypeNode with NamedType with Product with Serializable
- 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
- 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
- sealed trait FieldType extends TypeNode with FunctionType
- case class Function(funcName: SimpleID, originalName: String, funcType: FunctionType, args: Seq[Field], throws: Seq[Field], docstring: Option[String], annotations: Map[String, String] = Map.empty) extends Node with Product with Serializable
- case class FunctionArgs(sid: SimpleID, originalName: String, fields: Seq[Field]) extends StructLike with Product with Serializable
- case class FunctionResult(sid: SimpleID, originalName: String, success: Option[Field], exceptions: Seq[Field]) extends StructLike with Product with Serializable
- sealed trait FunctionType extends TypeNode
- sealed abstract class Header extends HeaderNode
- abstract class HeaderNode extends Node
- abstract class IdNode extends Node
- case class IdRHS(id: Identifier) extends RHS with Product with Serializable
- sealed abstract class Identifier extends IdNode
- case class Include(filePath: String, document: Document) extends Header with Product with Serializable
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.
- case class IntLiteral(value: Long) extends Literal with Product with Serializable
- case class ListRHS(elems: Seq[RHS]) extends RHS with Product with Serializable
- case class ListType(eltType: FieldType, cppType: Option[String]) extends ContainerType with Product with Serializable
- sealed abstract class Literal extends RHS
- case class MapRHS(elems: Seq[(RHS, RHS)]) extends RHS with Product with Serializable
- case class MapType(keyType: FieldType, valueType: FieldType, cppType: Option[String]) extends ContainerType with Product with Serializable
- sealed trait NamedType extends TypeNode with FieldType
- case class Namespace(language: String, id: Identifier) extends Header with Product with Serializable
- sealed abstract class Node extends Positional
- case class QualifiedID(names: Seq[String]) extends Identifier with Product with Serializable
- sealed abstract class RHS extends ValueNode
- case class ReferenceType(id: Identifier) extends TypeNode with FieldType with Product with Serializable
ReferenceType is generated by ThriftParser in the frontend and resolved by TypeResolver.
ReferenceType is generated by ThriftParser in the frontend and resolved by TypeResolver. There will only ReferenceTypes after resolution seen by the backend when self-reference structs, mutually recursive structs, or references to further definitions (structs/enums) are present in the Document.
- sealed abstract class Requiredness extends Node
- case class Senum(sid: SimpleID, values: Seq[String], annotations: Map[String, String] = Map.empty) extends Definition with Product with Serializable
- case class Service(sid: SimpleID, parent: Option[ServiceParent], functions: Seq[Function], docstring: Option[String], annotations: Map[String, String] = Map.empty, options: Set[ServiceOption] = Set.empty) extends Definition with Product with Serializable
- case class ServiceParent(sid: SimpleID, filename: Option[SimpleID]) extends Product with Serializable
Identifier for the parent service.
Identifier for the parent service.
- filename
Set if the parent service is imported from another file
- case class SetRHS(elems: Set[RHS]) extends RHS with Product with Serializable
- case class SetType(eltType: FieldType, cppType: Option[String]) extends ContainerType with Product with Serializable
- case class SimpleID(name: String, origName: Option[String] = None) extends Identifier with Product with Serializable
- case class StringLiteral(value: String) extends Literal with Product with Serializable
- 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
- sealed abstract class StructLike extends Definition
- case class StructRHS(sid: SimpleID, elems: Map[Field, RHS]) extends RHS with Product with Serializable
- case class StructType(struct: StructLike, scopePrefix: Option[Identifier] = None) extends TypeNode with NamedType with Product with Serializable
- abstract class TypeNode extends Node
- case class Typedef(sid: SimpleID, fieldType: FieldType, referentAnnotations: Map[String, String] = Map.empty, aliasAnnotations: Map[String, String] = Map.empty) extends Definition with Product with Serializable
- 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
- case class UnionRHS(sid: SimpleID, field: Field, initializer: RHS) extends RHS with Product with Serializable
- abstract class ValueNode extends Node
Value Members
- object Identifier
- object NullLiteral extends Literal with Product with Serializable
- object OnewayVoid extends TypeNode with FunctionType with Product with Serializable
- object Requiredness
- object TBinary extends TypeNode with BaseType with Product with Serializable
- object TBool extends TypeNode with BaseType with Product with Serializable
- object TByte extends TypeNode with BaseType with Product with Serializable
- object TDouble extends TypeNode with BaseType with Product with Serializable
- object TI16 extends TypeNode with BaseType with Product with Serializable
- object TI32 extends TypeNode with BaseType with Product with Serializable
- object TI64 extends TypeNode with BaseType with Product with Serializable
- object TString extends TypeNode with BaseType with Product with Serializable
- object Void extends TypeNode with FunctionType with Product with Serializable