Module Contents alltypes
      Module Contents data class ActorDeclaration : Declaration
        Module Contents ActorDeclaration(name: String, keyType: ActorKeyType = ActorKeyType.NO_KEY, methods: List<ActorMethod> = emptyList())
        val keyType: ActorKeyType
        val methods: List<ActorMethod>
        val name: String
      enum class ActorKeyType
        Module Contents GUID
        INT32
        INT64
        NO_KEY
        STRING
      data class ActorMethod : AstNode
        Module Contents ActorMethod(name: String, returnType: Type, params: List<MethodParameter> = emptyList())
        val name: String
        val params: List<MethodParameter>
        val returnType: Type
      interface AstNode
      abstract class AstVisitor
        Module Contents AstVisitor()
        open fun visitActorDeclaration(actor: ActorDeclaration): Unit
        open fun visitActorMethod(method: ActorMethod): Unit
        open fun visitCompilationUnit(cu: CompilationUnit): Unit
        open fun visitDataDeclaration(data: DataDeclaration): Unit
        open fun visitDataField(field: DataField): Unit
        open fun visitDeclaration(declaration: Declaration): Unit
        open fun visitEnumDeclaration(enum: EnumDeclaration): Unit
        open fun visitEnumMember(member: EnumMember): Unit
        open fun visitNode(node: AstNode): Unit
      data class CompilationUnit
        Module Contents CompilationUnit(packageName: String, enums: List<EnumDeclaration> = emptyList(), data: List<DataDeclaration> = emptyList(), actors: List<ActorDeclaration> = emptyList())
        val actors: List<ActorDeclaration>
        val data: List<DataDeclaration>
        val enums: List<EnumDeclaration>
        val packageName: String
      data class DataDeclaration : Declaration
        Module Contents DataDeclaration(name: String, fields: List<DataField> = emptyList())
        val fields: List<DataField>
        val name: String
      data class DataField : AstNode
        Module Contents DataField(name: String, type: Type, index: Int)
        val index: Int
        val name: String
        val type: Type
      interface Declaration : AstNode
        Module Contents abstract val name: String
      data class EnumDeclaration : Declaration
        Module Contents EnumDeclaration(name: String, members: List<EnumMember> = emptyList())
        val members: List<EnumMember>
        val name: String
      data class EnumMember : AstNode
        Module Contents EnumMember(name: String, index: Int)
        val index: Int
        val name: String
      data class MethodParameter : AstNode
        Module Contents MethodParameter(name: String, type: Type)
        val name: String
        val type: Type
      data class Type : AstNode
        Module Contents Type(name: String, of: List<Type> = emptyList())
        val isGeneric: Boolean
        val name: String
        val of: List<Type>
    package cloud.orbit.dsl.ast
      Module Contents data class ActorDeclaration : Declaration
        Module Contents ActorDeclaration(name: String, keyType: ActorKeyType = ActorKeyType.NO_KEY, methods: List<ActorMethod> = emptyList())
        val keyType: ActorKeyType
        val methods: List<ActorMethod>
        val name: String
      enum class ActorKeyType
        Module Contents GUID
        INT32
        INT64
        NO_KEY
        STRING
      data class ActorMethod : AstNode
        Module Contents ActorMethod(name: String, returnType: Type, params: List<MethodParameter> = emptyList())
        val name: String
        val params: List<MethodParameter>
        val returnType: Type
      interface AstNode
      abstract class AstVisitor
        Module Contents AstVisitor()
        open fun visitActorDeclaration(actor: ActorDeclaration): Unit
        open fun visitActorMethod(method: ActorMethod): Unit
        open fun visitCompilationUnit(cu: CompilationUnit): Unit
        open fun visitDataDeclaration(data: DataDeclaration): Unit
        open fun visitDataField(field: DataField): Unit
        open fun visitDeclaration(declaration: Declaration): Unit
        open fun visitEnumDeclaration(enum: EnumDeclaration): Unit
        open fun visitEnumMember(member: EnumMember): Unit
        open fun visitNode(node: AstNode): Unit
      data class CompilationUnit
        Module Contents CompilationUnit(packageName: String, enums: List<EnumDeclaration> = emptyList(), data: List<DataDeclaration> = emptyList(), actors: List<ActorDeclaration> = emptyList())
        val actors: List<ActorDeclaration>
        val data: List<DataDeclaration>
        val enums: List<EnumDeclaration>
        val packageName: String
      data class DataDeclaration : Declaration
        Module Contents DataDeclaration(name: String, fields: List<DataField> = emptyList())
        val fields: List<DataField>
        val name: String
      data class DataField : AstNode
        Module Contents DataField(name: String, type: Type, index: Int)
        val index: Int
        val name: String
        val type: Type
      interface Declaration : AstNode
        Module Contents abstract val name: String
      data class EnumDeclaration : Declaration
        Module Contents EnumDeclaration(name: String, members: List<EnumMember> = emptyList())
        val members: List<EnumMember>
        val name: String
      data class EnumMember : AstNode
        Module Contents EnumMember(name: String, index: Int)
        val index: Int
        val name: String
      data class MethodParameter : AstNode
        Module Contents MethodParameter(name: String, type: Type)
        val name: String
        val type: Type
      data class Type : AstNode
        Module Contents Type(name: String, of: List<Type> = emptyList())
        val isGeneric: Boolean
        val name: String
        val of: List<Type>