hydra-java-0.17.0: src/main/haskell/Hydra/Java/Syntax.hs
-- Note: this is an automatically generated file. Do not edit.
-- | A Java syntax module. Tracks the Oracle Java SE 21 BNF:
-- | https://docs.oracle.com/javase/specs/jls/se21/html/jls-19.html
-- | Note: all *WithComments types were added manually, rather than derived from the BNF, which does not allow for comments.
module Hydra.Java.Syntax where
import qualified Hydra.Core as Core
import Prelude hiding (Enum, Ordering, decodeFloat, encodeFloat, fail, map, pure, sum)
import qualified Data.Scientific as Sci
newtype Identifier =
Identifier {
unIdentifier :: String}
deriving (Eq, Ord, Read, Show)
_Identifier = Core.Name "hydra.java.syntax.Identifier"
newtype TypeIdentifier =
TypeIdentifier {
unTypeIdentifier :: Identifier}
deriving (Eq, Ord, Read, Show)
_TypeIdentifier = Core.Name "hydra.java.syntax.TypeIdentifier"
data Literal =
LiteralNull |
LiteralInteger IntegerLiteral |
LiteralFloatingPoint FloatingPointLiteral |
LiteralBoolean Bool |
LiteralCharacter Int |
LiteralString StringLiteral |
LiteralTextBlock TextBlock
deriving (Eq, Ord, Read, Show)
_Literal = Core.Name "hydra.java.syntax.Literal"
_Literal_null = Core.Name "null"
_Literal_integer = Core.Name "integer"
_Literal_floatingPoint = Core.Name "floatingPoint"
_Literal_boolean = Core.Name "boolean"
_Literal_character = Core.Name "character"
_Literal_string = Core.Name "string"
_Literal_textBlock = Core.Name "textBlock"
-- | Note: this is an approximation which ignores encoding
newtype IntegerLiteral =
IntegerLiteral {
unIntegerLiteral :: Integer}
deriving (Eq, Ord, Read, Show)
_IntegerLiteral = Core.Name "hydra.java.syntax.IntegerLiteral"
-- | Note: this is an approximation which ignores encoding
newtype FloatingPointLiteral =
FloatingPointLiteral {
unFloatingPointLiteral :: Double}
deriving (Eq, Ord, Read, Show)
_FloatingPointLiteral = Core.Name "hydra.java.syntax.FloatingPointLiteral"
-- | Note: this is an approximation which ignores encoding
newtype StringLiteral =
StringLiteral {
unStringLiteral :: String}
deriving (Eq, Ord, Read, Show)
_StringLiteral = Core.Name "hydra.java.syntax.StringLiteral"
-- | Note: this is an approximation which ignores encoding and incidental whitespace stripping
newtype TextBlock =
TextBlock {
unTextBlock :: String}
deriving (Eq, Ord, Read, Show)
_TextBlock = Core.Name "hydra.java.syntax.TextBlock"
data Type =
TypePrimitive PrimitiveTypeWithAnnotations |
TypeReference ReferenceType
deriving (Eq, Ord, Read, Show)
_Type = Core.Name "hydra.java.syntax.Type"
_Type_primitive = Core.Name "primitive"
_Type_reference = Core.Name "reference"
data PrimitiveTypeWithAnnotations =
PrimitiveTypeWithAnnotations {
primitiveTypeWithAnnotationsType :: PrimitiveType,
primitiveTypeWithAnnotationsAnnotations :: [Annotation]}
deriving (Eq, Ord, Read, Show)
_PrimitiveTypeWithAnnotations = Core.Name "hydra.java.syntax.PrimitiveTypeWithAnnotations"
_PrimitiveTypeWithAnnotations_type = Core.Name "type"
_PrimitiveTypeWithAnnotations_annotations = Core.Name "annotations"
data PrimitiveType =
PrimitiveTypeNumeric NumericType |
PrimitiveTypeBoolean
deriving (Eq, Ord, Read, Show)
_PrimitiveType = Core.Name "hydra.java.syntax.PrimitiveType"
_PrimitiveType_numeric = Core.Name "numeric"
_PrimitiveType_boolean = Core.Name "boolean"
data NumericType =
NumericTypeIntegral IntegralType |
NumericTypeFloatingPoint FloatingPointType
deriving (Eq, Ord, Read, Show)
_NumericType = Core.Name "hydra.java.syntax.NumericType"
_NumericType_integral = Core.Name "integral"
_NumericType_floatingPoint = Core.Name "floatingPoint"
data IntegralType =
IntegralTypeByte |
IntegralTypeShort |
IntegralTypeInt |
IntegralTypeLong |
IntegralTypeChar
deriving (Eq, Ord, Read, Show)
_IntegralType = Core.Name "hydra.java.syntax.IntegralType"
_IntegralType_byte = Core.Name "byte"
_IntegralType_short = Core.Name "short"
_IntegralType_int = Core.Name "int"
_IntegralType_long = Core.Name "long"
_IntegralType_char = Core.Name "char"
data FloatingPointType =
FloatingPointTypeFloat |
FloatingPointTypeDouble
deriving (Eq, Ord, Read, Show)
_FloatingPointType = Core.Name "hydra.java.syntax.FloatingPointType"
_FloatingPointType_float = Core.Name "float"
_FloatingPointType_double = Core.Name "double"
data ReferenceType =
ReferenceTypeClassOrInterface ClassOrInterfaceType |
ReferenceTypeVariable TypeVariable |
ReferenceTypeArray ArrayType
deriving (Eq, Ord, Read, Show)
_ReferenceType = Core.Name "hydra.java.syntax.ReferenceType"
_ReferenceType_classOrInterface = Core.Name "classOrInterface"
_ReferenceType_variable = Core.Name "variable"
_ReferenceType_array = Core.Name "array"
data ClassOrInterfaceType =
ClassOrInterfaceTypeClass ClassType |
ClassOrInterfaceTypeInterface InterfaceType
deriving (Eq, Ord, Read, Show)
_ClassOrInterfaceType = Core.Name "hydra.java.syntax.ClassOrInterfaceType"
_ClassOrInterfaceType_class = Core.Name "class"
_ClassOrInterfaceType_interface = Core.Name "interface"
data ClassType =
ClassType {
classTypeAnnotations :: [Annotation],
classTypeQualifier :: ClassTypeQualifier,
classTypeIdentifier :: TypeIdentifier,
classTypeArguments :: [TypeArgument]}
deriving (Eq, Ord, Read, Show)
_ClassType = Core.Name "hydra.java.syntax.ClassType"
_ClassType_annotations = Core.Name "annotations"
_ClassType_qualifier = Core.Name "qualifier"
_ClassType_identifier = Core.Name "identifier"
_ClassType_arguments = Core.Name "arguments"
data ClassTypeQualifier =
ClassTypeQualifierNone |
ClassTypeQualifierPackage PackageName |
ClassTypeQualifierParent ClassOrInterfaceType
deriving (Eq, Ord, Read, Show)
_ClassTypeQualifier = Core.Name "hydra.java.syntax.ClassTypeQualifier"
_ClassTypeQualifier_none = Core.Name "none"
_ClassTypeQualifier_package = Core.Name "package"
_ClassTypeQualifier_parent = Core.Name "parent"
newtype InterfaceType =
InterfaceType {
unInterfaceType :: ClassType}
deriving (Eq, Ord, Read, Show)
_InterfaceType = Core.Name "hydra.java.syntax.InterfaceType"
data TypeVariable =
TypeVariable {
typeVariableAnnotations :: [Annotation],
typeVariableIdentifier :: TypeIdentifier}
deriving (Eq, Ord, Read, Show)
_TypeVariable = Core.Name "hydra.java.syntax.TypeVariable"
_TypeVariable_annotations = Core.Name "annotations"
_TypeVariable_identifier = Core.Name "identifier"
data ArrayType =
ArrayType {
arrayTypeDims :: Dims,
arrayTypeVariant :: ArrayType_Variant}
deriving (Eq, Ord, Read, Show)
_ArrayType = Core.Name "hydra.java.syntax.ArrayType"
_ArrayType_dims = Core.Name "dims"
_ArrayType_variant = Core.Name "variant"
data ArrayType_Variant =
ArrayType_VariantPrimitive PrimitiveTypeWithAnnotations |
ArrayType_VariantClassOrInterface ClassOrInterfaceType |
ArrayType_VariantVariable TypeVariable
deriving (Eq, Ord, Read, Show)
_ArrayType_Variant = Core.Name "hydra.java.syntax.ArrayType_Variant"
_ArrayType_Variant_primitive = Core.Name "primitive"
_ArrayType_Variant_classOrInterface = Core.Name "classOrInterface"
_ArrayType_Variant_variable = Core.Name "variable"
newtype Dims =
Dims {
unDims :: [[Annotation]]}
deriving (Eq, Ord, Read, Show)
_Dims = Core.Name "hydra.java.syntax.Dims"
data TypeParameter =
TypeParameter {
typeParameterModifiers :: [TypeParameterModifier],
typeParameterIdentifier :: TypeIdentifier,
typeParameterBound :: (Maybe TypeBound)}
deriving (Eq, Ord, Read, Show)
_TypeParameter = Core.Name "hydra.java.syntax.TypeParameter"
_TypeParameter_modifiers = Core.Name "modifiers"
_TypeParameter_identifier = Core.Name "identifier"
_TypeParameter_bound = Core.Name "bound"
newtype TypeParameterModifier =
TypeParameterModifier {
unTypeParameterModifier :: Annotation}
deriving (Eq, Ord, Read, Show)
_TypeParameterModifier = Core.Name "hydra.java.syntax.TypeParameterModifier"
data TypeBound =
TypeBoundVariable TypeVariable |
TypeBoundClassOrInterface TypeBound_ClassOrInterface
deriving (Eq, Ord, Read, Show)
_TypeBound = Core.Name "hydra.java.syntax.TypeBound"
_TypeBound_variable = Core.Name "variable"
_TypeBound_classOrInterface = Core.Name "classOrInterface"
data TypeBound_ClassOrInterface =
TypeBound_ClassOrInterface {
typeBound_ClassOrInterfaceType :: ClassOrInterfaceType,
typeBound_ClassOrInterfaceAdditional :: [AdditionalBound]}
deriving (Eq, Ord, Read, Show)
_TypeBound_ClassOrInterface = Core.Name "hydra.java.syntax.TypeBound_ClassOrInterface"
_TypeBound_ClassOrInterface_type = Core.Name "type"
_TypeBound_ClassOrInterface_additional = Core.Name "additional"
newtype AdditionalBound =
AdditionalBound {
unAdditionalBound :: InterfaceType}
deriving (Eq, Ord, Read, Show)
_AdditionalBound = Core.Name "hydra.java.syntax.AdditionalBound"
data TypeArgument =
TypeArgumentReference ReferenceType |
TypeArgumentWildcard Wildcard
deriving (Eq, Ord, Read, Show)
_TypeArgument = Core.Name "hydra.java.syntax.TypeArgument"
_TypeArgument_reference = Core.Name "reference"
_TypeArgument_wildcard = Core.Name "wildcard"
data Wildcard =
Wildcard {
wildcardAnnotations :: [Annotation],
wildcardWildcard :: (Maybe WildcardBounds)}
deriving (Eq, Ord, Read, Show)
_Wildcard = Core.Name "hydra.java.syntax.Wildcard"
_Wildcard_annotations = Core.Name "annotations"
_Wildcard_wildcard = Core.Name "wildcard"
data WildcardBounds =
WildcardBoundsExtends ReferenceType |
WildcardBoundsSuper ReferenceType
deriving (Eq, Ord, Read, Show)
_WildcardBounds = Core.Name "hydra.java.syntax.WildcardBounds"
_WildcardBounds_extends = Core.Name "extends"
_WildcardBounds_super = Core.Name "super"
data ModuleName =
ModuleName {
moduleNameIdentifier :: Identifier,
moduleNameName :: (Maybe ModuleName)}
deriving (Eq, Ord, Read, Show)
_ModuleName = Core.Name "hydra.java.syntax.ModuleName"
_ModuleName_identifier = Core.Name "identifier"
_ModuleName_name = Core.Name "name"
newtype PackageName =
PackageName {
unPackageName :: [Identifier]}
deriving (Eq, Ord, Read, Show)
_PackageName = Core.Name "hydra.java.syntax.PackageName"
data TypeName =
TypeName {
typeNameIdentifier :: TypeIdentifier,
typeNameQualifier :: (Maybe PackageOrTypeName)}
deriving (Eq, Ord, Read, Show)
_TypeName = Core.Name "hydra.java.syntax.TypeName"
_TypeName_identifier = Core.Name "identifier"
_TypeName_qualifier = Core.Name "qualifier"
data ExpressionName =
ExpressionName {
expressionNameQualifier :: (Maybe AmbiguousName),
expressionNameIdentifier :: Identifier}
deriving (Eq, Ord, Read, Show)
_ExpressionName = Core.Name "hydra.java.syntax.ExpressionName"
_ExpressionName_qualifier = Core.Name "qualifier"
_ExpressionName_identifier = Core.Name "identifier"
newtype MethodName =
MethodName {
unMethodName :: Identifier}
deriving (Eq, Ord, Read, Show)
_MethodName = Core.Name "hydra.java.syntax.MethodName"
newtype PackageOrTypeName =
PackageOrTypeName {
unPackageOrTypeName :: [Identifier]}
deriving (Eq, Ord, Read, Show)
_PackageOrTypeName = Core.Name "hydra.java.syntax.PackageOrTypeName"
newtype AmbiguousName =
AmbiguousName {
unAmbiguousName :: [Identifier]}
deriving (Eq, Ord, Read, Show)
_AmbiguousName = Core.Name "hydra.java.syntax.AmbiguousName"
data CompilationUnit =
CompilationUnitOrdinary OrdinaryCompilationUnit |
CompilationUnitModular ModularCompilationUnit
deriving (Eq, Ord, Read, Show)
_CompilationUnit = Core.Name "hydra.java.syntax.CompilationUnit"
_CompilationUnit_ordinary = Core.Name "ordinary"
_CompilationUnit_modular = Core.Name "modular"
data OrdinaryCompilationUnit =
OrdinaryCompilationUnit {
ordinaryCompilationUnitPackage :: (Maybe PackageDeclaration),
ordinaryCompilationUnitImports :: [ImportDeclaration],
ordinaryCompilationUnitTypes :: [TopLevelClassOrInterfaceDeclarationWithComments]}
deriving (Eq, Ord, Read, Show)
_OrdinaryCompilationUnit = Core.Name "hydra.java.syntax.OrdinaryCompilationUnit"
_OrdinaryCompilationUnit_package = Core.Name "package"
_OrdinaryCompilationUnit_imports = Core.Name "imports"
_OrdinaryCompilationUnit_types = Core.Name "types"
data ModularCompilationUnit =
ModularCompilationUnit {
modularCompilationUnitImports :: [ImportDeclaration],
modularCompilationUnitModule :: ModuleDeclaration}
deriving (Eq, Ord, Read, Show)
_ModularCompilationUnit = Core.Name "hydra.java.syntax.ModularCompilationUnit"
_ModularCompilationUnit_imports = Core.Name "imports"
_ModularCompilationUnit_module = Core.Name "module"
data PackageDeclaration =
PackageDeclaration {
packageDeclarationModifiers :: [PackageModifier],
packageDeclarationIdentifiers :: [Identifier]}
deriving (Eq, Ord, Read, Show)
_PackageDeclaration = Core.Name "hydra.java.syntax.PackageDeclaration"
_PackageDeclaration_modifiers = Core.Name "modifiers"
_PackageDeclaration_identifiers = Core.Name "identifiers"
newtype PackageModifier =
PackageModifier {
unPackageModifier :: Annotation}
deriving (Eq, Ord, Read, Show)
_PackageModifier = Core.Name "hydra.java.syntax.PackageModifier"
data ImportDeclaration =
ImportDeclarationSingleType SingleTypeImportDeclaration |
ImportDeclarationTypeImportOnDemand TypeImportOnDemandDeclaration |
ImportDeclarationSingleStaticImport SingleStaticImportDeclaration |
ImportDeclarationStaticImportOnDemand StaticImportOnDemandDeclaration
deriving (Eq, Ord, Read, Show)
_ImportDeclaration = Core.Name "hydra.java.syntax.ImportDeclaration"
_ImportDeclaration_singleType = Core.Name "singleType"
_ImportDeclaration_typeImportOnDemand = Core.Name "typeImportOnDemand"
_ImportDeclaration_singleStaticImport = Core.Name "singleStaticImport"
_ImportDeclaration_staticImportOnDemand = Core.Name "staticImportOnDemand"
newtype SingleTypeImportDeclaration =
SingleTypeImportDeclaration {
unSingleTypeImportDeclaration :: TypeName}
deriving (Eq, Ord, Read, Show)
_SingleTypeImportDeclaration = Core.Name "hydra.java.syntax.SingleTypeImportDeclaration"
newtype TypeImportOnDemandDeclaration =
TypeImportOnDemandDeclaration {
unTypeImportOnDemandDeclaration :: PackageOrTypeName}
deriving (Eq, Ord, Read, Show)
_TypeImportOnDemandDeclaration = Core.Name "hydra.java.syntax.TypeImportOnDemandDeclaration"
data SingleStaticImportDeclaration =
SingleStaticImportDeclaration {
singleStaticImportDeclarationTypeName :: TypeName,
singleStaticImportDeclarationIdentifier :: Identifier}
deriving (Eq, Ord, Read, Show)
_SingleStaticImportDeclaration = Core.Name "hydra.java.syntax.SingleStaticImportDeclaration"
_SingleStaticImportDeclaration_typeName = Core.Name "typeName"
_SingleStaticImportDeclaration_identifier = Core.Name "identifier"
newtype StaticImportOnDemandDeclaration =
StaticImportOnDemandDeclaration {
unStaticImportOnDemandDeclaration :: TypeName}
deriving (Eq, Ord, Read, Show)
_StaticImportOnDemandDeclaration = Core.Name "hydra.java.syntax.StaticImportOnDemandDeclaration"
data TopLevelClassOrInterfaceDeclaration =
TopLevelClassOrInterfaceDeclarationClass ClassDeclaration |
TopLevelClassOrInterfaceDeclarationInterface InterfaceDeclaration |
TopLevelClassOrInterfaceDeclarationNone
deriving (Eq, Ord, Read, Show)
_TopLevelClassOrInterfaceDeclaration = Core.Name "hydra.java.syntax.TopLevelClassOrInterfaceDeclaration"
_TopLevelClassOrInterfaceDeclaration_class = Core.Name "class"
_TopLevelClassOrInterfaceDeclaration_interface = Core.Name "interface"
_TopLevelClassOrInterfaceDeclaration_none = Core.Name "none"
data TopLevelClassOrInterfaceDeclarationWithComments =
TopLevelClassOrInterfaceDeclarationWithComments {
topLevelClassOrInterfaceDeclarationWithCommentsValue :: TopLevelClassOrInterfaceDeclaration,
topLevelClassOrInterfaceDeclarationWithCommentsComments :: (Maybe String)}
deriving (Eq, Ord, Read, Show)
_TopLevelClassOrInterfaceDeclarationWithComments =
Core.Name "hydra.java.syntax.TopLevelClassOrInterfaceDeclarationWithComments"
_TopLevelClassOrInterfaceDeclarationWithComments_value = Core.Name "value"
_TopLevelClassOrInterfaceDeclarationWithComments_comments = Core.Name "comments"
data ModuleDeclaration =
ModuleDeclaration {
moduleDeclarationAnnotations :: [Annotation],
moduleDeclarationOpen :: Bool,
moduleDeclarationIdentifiers :: [Identifier],
moduleDeclarationDirectives :: [ModuleDirective]}
deriving (Eq, Ord, Read, Show)
_ModuleDeclaration = Core.Name "hydra.java.syntax.ModuleDeclaration"
_ModuleDeclaration_annotations = Core.Name "annotations"
_ModuleDeclaration_open = Core.Name "open"
_ModuleDeclaration_identifiers = Core.Name "identifiers"
_ModuleDeclaration_directives = Core.Name "directives"
data ModuleDirective =
ModuleDirectiveRequires ModuleDirective_Requires |
ModuleDirectiveExports ModuleDirective_ExportsOrOpens |
ModuleDirectiveOpens ModuleDirective_ExportsOrOpens |
ModuleDirectiveUses TypeName |
ModuleDirectiveProvides ModuleDirective_Provides
deriving (Eq, Ord, Read, Show)
_ModuleDirective = Core.Name "hydra.java.syntax.ModuleDirective"
_ModuleDirective_requires = Core.Name "requires"
_ModuleDirective_exports = Core.Name "exports"
_ModuleDirective_opens = Core.Name "opens"
_ModuleDirective_uses = Core.Name "uses"
_ModuleDirective_provides = Core.Name "provides"
data ModuleDirective_Requires =
ModuleDirective_Requires {
moduleDirective_RequiresModifiers :: [RequiresModifier],
moduleDirective_RequiresModule :: ModuleName}
deriving (Eq, Ord, Read, Show)
_ModuleDirective_Requires = Core.Name "hydra.java.syntax.ModuleDirective_Requires"
_ModuleDirective_Requires_modifiers = Core.Name "modifiers"
_ModuleDirective_Requires_module = Core.Name "module"
data ModuleDirective_ExportsOrOpens =
ModuleDirective_ExportsOrOpens {
moduleDirective_ExportsOrOpensPackage :: PackageName,
-- | At least one module
moduleDirective_ExportsOrOpensModules :: [ModuleName]}
deriving (Eq, Ord, Read, Show)
_ModuleDirective_ExportsOrOpens = Core.Name "hydra.java.syntax.ModuleDirective_ExportsOrOpens"
_ModuleDirective_ExportsOrOpens_package = Core.Name "package"
_ModuleDirective_ExportsOrOpens_modules = Core.Name "modules"
data ModuleDirective_Provides =
ModuleDirective_Provides {
moduleDirective_ProvidesTo :: TypeName,
-- | At least one type
moduleDirective_ProvidesWith :: [TypeName]}
deriving (Eq, Ord, Read, Show)
_ModuleDirective_Provides = Core.Name "hydra.java.syntax.ModuleDirective_Provides"
_ModuleDirective_Provides_to = Core.Name "to"
_ModuleDirective_Provides_with = Core.Name "with"
data RequiresModifier =
RequiresModifierTransitive |
RequiresModifierStatic
deriving (Eq, Ord, Read, Show)
_RequiresModifier = Core.Name "hydra.java.syntax.RequiresModifier"
_RequiresModifier_transitive = Core.Name "transitive"
_RequiresModifier_static = Core.Name "static"
data ClassDeclaration =
ClassDeclarationNormal NormalClassDeclaration |
ClassDeclarationEnum EnumDeclaration |
ClassDeclarationRecord RecordDeclaration
deriving (Eq, Ord, Read, Show)
_ClassDeclaration = Core.Name "hydra.java.syntax.ClassDeclaration"
_ClassDeclaration_normal = Core.Name "normal"
_ClassDeclaration_enum = Core.Name "enum"
_ClassDeclaration_record = Core.Name "record"
data NormalClassDeclaration =
NormalClassDeclaration {
normalClassDeclarationModifiers :: [ClassModifier],
normalClassDeclarationIdentifier :: TypeIdentifier,
normalClassDeclarationParameters :: [TypeParameter],
normalClassDeclarationExtends :: (Maybe ClassType),
normalClassDeclarationImplements :: [InterfaceType],
normalClassDeclarationPermits :: [TypeName],
normalClassDeclarationBody :: ClassBody}
deriving (Eq, Ord, Read, Show)
_NormalClassDeclaration = Core.Name "hydra.java.syntax.NormalClassDeclaration"
_NormalClassDeclaration_modifiers = Core.Name "modifiers"
_NormalClassDeclaration_identifier = Core.Name "identifier"
_NormalClassDeclaration_parameters = Core.Name "parameters"
_NormalClassDeclaration_extends = Core.Name "extends"
_NormalClassDeclaration_implements = Core.Name "implements"
_NormalClassDeclaration_permits = Core.Name "permits"
_NormalClassDeclaration_body = Core.Name "body"
data ClassModifier =
ClassModifierAnnotation Annotation |
ClassModifierPublic |
ClassModifierProtected |
ClassModifierPrivate |
ClassModifierAbstract |
ClassModifierStatic |
ClassModifierFinal |
ClassModifierSealed |
ClassModifierNonSealed |
ClassModifierStrictfp
deriving (Eq, Ord, Read, Show)
_ClassModifier = Core.Name "hydra.java.syntax.ClassModifier"
_ClassModifier_annotation = Core.Name "annotation"
_ClassModifier_public = Core.Name "public"
_ClassModifier_protected = Core.Name "protected"
_ClassModifier_private = Core.Name "private"
_ClassModifier_abstract = Core.Name "abstract"
_ClassModifier_static = Core.Name "static"
_ClassModifier_final = Core.Name "final"
_ClassModifier_sealed = Core.Name "sealed"
_ClassModifier_nonSealed = Core.Name "nonSealed"
_ClassModifier_strictfp = Core.Name "strictfp"
newtype ClassBody =
ClassBody {
unClassBody :: [ClassBodyDeclarationWithComments]}
deriving (Eq, Ord, Read, Show)
_ClassBody = Core.Name "hydra.java.syntax.ClassBody"
data ClassBodyDeclaration =
ClassBodyDeclarationClassMember ClassMemberDeclaration |
ClassBodyDeclarationInstanceInitializer InstanceInitializer |
ClassBodyDeclarationStaticInitializer StaticInitializer |
ClassBodyDeclarationConstructorDeclaration ConstructorDeclaration
deriving (Eq, Ord, Read, Show)
_ClassBodyDeclaration = Core.Name "hydra.java.syntax.ClassBodyDeclaration"
_ClassBodyDeclaration_classMember = Core.Name "classMember"
_ClassBodyDeclaration_instanceInitializer = Core.Name "instanceInitializer"
_ClassBodyDeclaration_staticInitializer = Core.Name "staticInitializer"
_ClassBodyDeclaration_constructorDeclaration = Core.Name "constructorDeclaration"
data ClassBodyDeclarationWithComments =
ClassBodyDeclarationWithComments {
classBodyDeclarationWithCommentsValue :: ClassBodyDeclaration,
classBodyDeclarationWithCommentsComments :: (Maybe String)}
deriving (Eq, Ord, Read, Show)
_ClassBodyDeclarationWithComments = Core.Name "hydra.java.syntax.ClassBodyDeclarationWithComments"
_ClassBodyDeclarationWithComments_value = Core.Name "value"
_ClassBodyDeclarationWithComments_comments = Core.Name "comments"
data ClassMemberDeclaration =
ClassMemberDeclarationField FieldDeclaration |
ClassMemberDeclarationMethod MethodDeclaration |
ClassMemberDeclarationClass ClassDeclaration |
ClassMemberDeclarationInterface InterfaceDeclaration |
ClassMemberDeclarationNone
deriving (Eq, Ord, Read, Show)
_ClassMemberDeclaration = Core.Name "hydra.java.syntax.ClassMemberDeclaration"
_ClassMemberDeclaration_field = Core.Name "field"
_ClassMemberDeclaration_method = Core.Name "method"
_ClassMemberDeclaration_class = Core.Name "class"
_ClassMemberDeclaration_interface = Core.Name "interface"
_ClassMemberDeclaration_none = Core.Name "none"
data FieldDeclaration =
FieldDeclaration {
fieldDeclarationModifiers :: [FieldModifier],
fieldDeclarationUnannType :: UnannType,
fieldDeclarationVariableDeclarators :: [VariableDeclarator]}
deriving (Eq, Ord, Read, Show)
_FieldDeclaration = Core.Name "hydra.java.syntax.FieldDeclaration"
_FieldDeclaration_modifiers = Core.Name "modifiers"
_FieldDeclaration_unannType = Core.Name "unannType"
_FieldDeclaration_variableDeclarators = Core.Name "variableDeclarators"
data FieldModifier =
FieldModifierAnnotation Annotation |
FieldModifierPublic |
FieldModifierProtected |
FieldModifierPrivate |
FieldModifierStatic |
FieldModifierFinal |
FieldModifierTransient |
FieldModifierVolatile
deriving (Eq, Ord, Read, Show)
_FieldModifier = Core.Name "hydra.java.syntax.FieldModifier"
_FieldModifier_annotation = Core.Name "annotation"
_FieldModifier_public = Core.Name "public"
_FieldModifier_protected = Core.Name "protected"
_FieldModifier_private = Core.Name "private"
_FieldModifier_static = Core.Name "static"
_FieldModifier_final = Core.Name "final"
_FieldModifier_transient = Core.Name "transient"
_FieldModifier_volatile = Core.Name "volatile"
data VariableDeclarator =
VariableDeclarator {
variableDeclaratorId :: VariableDeclaratorId,
variableDeclaratorInitializer :: (Maybe VariableInitializer)}
deriving (Eq, Ord, Read, Show)
_VariableDeclarator = Core.Name "hydra.java.syntax.VariableDeclarator"
_VariableDeclarator_id = Core.Name "id"
_VariableDeclarator_initializer = Core.Name "initializer"
data VariableDeclaratorId =
VariableDeclaratorId {
variableDeclaratorIdIdentifier :: Identifier,
variableDeclaratorIdDims :: (Maybe Dims)}
deriving (Eq, Ord, Read, Show)
_VariableDeclaratorId = Core.Name "hydra.java.syntax.VariableDeclaratorId"
_VariableDeclaratorId_identifier = Core.Name "identifier"
_VariableDeclaratorId_dims = Core.Name "dims"
data VariableInitializer =
VariableInitializerExpression Expression |
VariableInitializerArrayInitializer ArrayInitializer
deriving (Eq, Ord, Read, Show)
_VariableInitializer = Core.Name "hydra.java.syntax.VariableInitializer"
_VariableInitializer_expression = Core.Name "expression"
_VariableInitializer_arrayInitializer = Core.Name "arrayInitializer"
-- | A Type which does not allow annotations
newtype UnannType =
UnannType {
unUnannType :: Type}
deriving (Eq, Ord, Read, Show)
_UnannType = Core.Name "hydra.java.syntax.UnannType"
-- | A ClassType which does not allow annotations
newtype UnannClassType =
UnannClassType {
unUnannClassType :: ClassType}
deriving (Eq, Ord, Read, Show)
_UnannClassType = Core.Name "hydra.java.syntax.UnannClassType"
data MethodDeclaration =
MethodDeclaration {
-- | Note: simple methods cannot have annotations
methodDeclarationAnnotations :: [Annotation],
methodDeclarationModifiers :: [MethodModifier],
methodDeclarationHeader :: MethodHeader,
methodDeclarationBody :: MethodBody}
deriving (Eq, Ord, Read, Show)
_MethodDeclaration = Core.Name "hydra.java.syntax.MethodDeclaration"
_MethodDeclaration_annotations = Core.Name "annotations"
_MethodDeclaration_modifiers = Core.Name "modifiers"
_MethodDeclaration_header = Core.Name "header"
_MethodDeclaration_body = Core.Name "body"
data MethodModifier =
MethodModifierAnnotation Annotation |
MethodModifierPublic |
MethodModifierProtected |
MethodModifierPrivate |
MethodModifierAbstract |
MethodModifierStatic |
MethodModifierFinal |
MethodModifierSynchronized |
MethodModifierNative |
MethodModifierStrictfp
deriving (Eq, Ord, Read, Show)
_MethodModifier = Core.Name "hydra.java.syntax.MethodModifier"
_MethodModifier_annotation = Core.Name "annotation"
_MethodModifier_public = Core.Name "public"
_MethodModifier_protected = Core.Name "protected"
_MethodModifier_private = Core.Name "private"
_MethodModifier_abstract = Core.Name "abstract"
_MethodModifier_static = Core.Name "static"
_MethodModifier_final = Core.Name "final"
_MethodModifier_synchronized = Core.Name "synchronized"
_MethodModifier_native = Core.Name "native"
_MethodModifier_strictfp = Core.Name "strictfp"
data MethodHeader =
MethodHeader {
methodHeaderParameters :: [TypeParameter],
methodHeaderResult :: Result,
methodHeaderDeclarator :: MethodDeclarator,
methodHeaderThrows :: (Maybe Throws)}
deriving (Eq, Ord, Read, Show)
_MethodHeader = Core.Name "hydra.java.syntax.MethodHeader"
_MethodHeader_parameters = Core.Name "parameters"
_MethodHeader_result = Core.Name "result"
_MethodHeader_declarator = Core.Name "declarator"
_MethodHeader_throws = Core.Name "throws"
data Result =
ResultType UnannType |
ResultVoid
deriving (Eq, Ord, Read, Show)
_Result = Core.Name "hydra.java.syntax.Result"
_Result_type = Core.Name "type"
_Result_void = Core.Name "void"
data MethodDeclarator =
MethodDeclarator {
methodDeclaratorIdentifier :: Identifier,
methodDeclaratorReceiverParameter :: (Maybe ReceiverParameter),
methodDeclaratorFormalParameters :: [FormalParameter]}
deriving (Eq, Ord, Read, Show)
_MethodDeclarator = Core.Name "hydra.java.syntax.MethodDeclarator"
_MethodDeclarator_identifier = Core.Name "identifier"
_MethodDeclarator_receiverParameter = Core.Name "receiverParameter"
_MethodDeclarator_formalParameters = Core.Name "formalParameters"
data ReceiverParameter =
ReceiverParameter {
receiverParameterAnnotations :: [Annotation],
receiverParameterUnannType :: UnannType,
receiverParameterIdentifier :: (Maybe Identifier)}
deriving (Eq, Ord, Read, Show)
_ReceiverParameter = Core.Name "hydra.java.syntax.ReceiverParameter"
_ReceiverParameter_annotations = Core.Name "annotations"
_ReceiverParameter_unannType = Core.Name "unannType"
_ReceiverParameter_identifier = Core.Name "identifier"
data FormalParameter =
FormalParameterSimple FormalParameter_Simple |
FormalParameterVariableArity VariableArityParameter
deriving (Eq, Ord, Read, Show)
_FormalParameter = Core.Name "hydra.java.syntax.FormalParameter"
_FormalParameter_simple = Core.Name "simple"
_FormalParameter_variableArity = Core.Name "variableArity"
data FormalParameter_Simple =
FormalParameter_Simple {
formalParameter_SimpleModifiers :: [VariableModifier],
formalParameter_SimpleType :: UnannType,
formalParameter_SimpleId :: VariableDeclaratorId}
deriving (Eq, Ord, Read, Show)
_FormalParameter_Simple = Core.Name "hydra.java.syntax.FormalParameter_Simple"
_FormalParameter_Simple_modifiers = Core.Name "modifiers"
_FormalParameter_Simple_type = Core.Name "type"
_FormalParameter_Simple_id = Core.Name "id"
data VariableArityParameter =
VariableArityParameter {
variableArityParameterModifiers :: [VariableModifier],
variableArityParameterType :: UnannType,
variableArityParameterAnnotations :: [Annotation],
variableArityParameterIdentifier :: Identifier}
deriving (Eq, Ord, Read, Show)
_VariableArityParameter = Core.Name "hydra.java.syntax.VariableArityParameter"
_VariableArityParameter_modifiers = Core.Name "modifiers"
_VariableArityParameter_type = Core.Name "type"
_VariableArityParameter_annotations = Core.Name "annotations"
_VariableArityParameter_identifier = Core.Name "identifier"
data VariableModifier =
VariableModifierAnnotation Annotation |
VariableModifierFinal
deriving (Eq, Ord, Read, Show)
_VariableModifier = Core.Name "hydra.java.syntax.VariableModifier"
_VariableModifier_annotation = Core.Name "annotation"
_VariableModifier_final = Core.Name "final"
newtype Throws =
Throws {
unThrows :: [ExceptionType]}
deriving (Eq, Ord, Read, Show)
_Throws = Core.Name "hydra.java.syntax.Throws"
data ExceptionType =
ExceptionTypeClass ClassType |
ExceptionTypeVariable TypeVariable
deriving (Eq, Ord, Read, Show)
_ExceptionType = Core.Name "hydra.java.syntax.ExceptionType"
_ExceptionType_class = Core.Name "class"
_ExceptionType_variable = Core.Name "variable"
data MethodBody =
MethodBodyBlock Block |
MethodBodyNone
deriving (Eq, Ord, Read, Show)
_MethodBody = Core.Name "hydra.java.syntax.MethodBody"
_MethodBody_block = Core.Name "block"
_MethodBody_none = Core.Name "none"
newtype InstanceInitializer =
InstanceInitializer {
unInstanceInitializer :: Block}
deriving (Eq, Ord, Read, Show)
_InstanceInitializer = Core.Name "hydra.java.syntax.InstanceInitializer"
newtype StaticInitializer =
StaticInitializer {
unStaticInitializer :: Block}
deriving (Eq, Ord, Read, Show)
_StaticInitializer = Core.Name "hydra.java.syntax.StaticInitializer"
data ConstructorDeclaration =
ConstructorDeclaration {
constructorDeclarationModifiers :: [ConstructorModifier],
constructorDeclarationConstructor :: ConstructorDeclarator,
constructorDeclarationThrows :: (Maybe Throws),
constructorDeclarationBody :: ConstructorBody}
deriving (Eq, Ord, Read, Show)
_ConstructorDeclaration = Core.Name "hydra.java.syntax.ConstructorDeclaration"
_ConstructorDeclaration_modifiers = Core.Name "modifiers"
_ConstructorDeclaration_constructor = Core.Name "constructor"
_ConstructorDeclaration_throws = Core.Name "throws"
_ConstructorDeclaration_body = Core.Name "body"
data ConstructorModifier =
ConstructorModifierAnnotation Annotation |
ConstructorModifierPublic |
ConstructorModifierProtected |
ConstructorModifierPrivate
deriving (Eq, Ord, Read, Show)
_ConstructorModifier = Core.Name "hydra.java.syntax.ConstructorModifier"
_ConstructorModifier_annotation = Core.Name "annotation"
_ConstructorModifier_public = Core.Name "public"
_ConstructorModifier_protected = Core.Name "protected"
_ConstructorModifier_private = Core.Name "private"
data ConstructorDeclarator =
ConstructorDeclarator {
constructorDeclaratorParameters :: [TypeParameter],
constructorDeclaratorName :: SimpleTypeName,
constructorDeclaratorReceiverParameter :: (Maybe ReceiverParameter),
constructorDeclaratorFormalParameters :: [FormalParameter]}
deriving (Eq, Ord, Read, Show)
_ConstructorDeclarator = Core.Name "hydra.java.syntax.ConstructorDeclarator"
_ConstructorDeclarator_parameters = Core.Name "parameters"
_ConstructorDeclarator_name = Core.Name "name"
_ConstructorDeclarator_receiverParameter = Core.Name "receiverParameter"
_ConstructorDeclarator_formalParameters = Core.Name "formalParameters"
newtype SimpleTypeName =
SimpleTypeName {
unSimpleTypeName :: TypeIdentifier}
deriving (Eq, Ord, Read, Show)
_SimpleTypeName = Core.Name "hydra.java.syntax.SimpleTypeName"
data ConstructorBody =
ConstructorBody {
constructorBodyInvocation :: (Maybe ExplicitConstructorInvocation),
constructorBodyStatements :: [BlockStatement]}
deriving (Eq, Ord, Read, Show)
_ConstructorBody = Core.Name "hydra.java.syntax.ConstructorBody"
_ConstructorBody_invocation = Core.Name "invocation"
_ConstructorBody_statements = Core.Name "statements"
data ExplicitConstructorInvocation =
ExplicitConstructorInvocation {
explicitConstructorInvocationTypeArguments :: [TypeArgument],
explicitConstructorInvocationArguments :: [Expression],
explicitConstructorInvocationVariant :: ExplicitConstructorInvocation_Variant}
deriving (Eq, Ord, Read, Show)
_ExplicitConstructorInvocation = Core.Name "hydra.java.syntax.ExplicitConstructorInvocation"
_ExplicitConstructorInvocation_typeArguments = Core.Name "typeArguments"
_ExplicitConstructorInvocation_arguments = Core.Name "arguments"
_ExplicitConstructorInvocation_variant = Core.Name "variant"
data ExplicitConstructorInvocation_Variant =
ExplicitConstructorInvocation_VariantThis |
ExplicitConstructorInvocation_VariantSuper (Maybe ExpressionName) |
ExplicitConstructorInvocation_VariantPrimary Primary
deriving (Eq, Ord, Read, Show)
_ExplicitConstructorInvocation_Variant = Core.Name "hydra.java.syntax.ExplicitConstructorInvocation_Variant"
_ExplicitConstructorInvocation_Variant_this = Core.Name "this"
_ExplicitConstructorInvocation_Variant_super = Core.Name "super"
_ExplicitConstructorInvocation_Variant_primary = Core.Name "primary"
data EnumDeclaration =
EnumDeclaration {
enumDeclarationModifiers :: [ClassModifier],
enumDeclarationIdentifier :: TypeIdentifier,
enumDeclarationImplements :: [InterfaceType],
enumDeclarationBody :: EnumBody}
deriving (Eq, Ord, Read, Show)
_EnumDeclaration = Core.Name "hydra.java.syntax.EnumDeclaration"
_EnumDeclaration_modifiers = Core.Name "modifiers"
_EnumDeclaration_identifier = Core.Name "identifier"
_EnumDeclaration_implements = Core.Name "implements"
_EnumDeclaration_body = Core.Name "body"
newtype EnumBody =
EnumBody {
unEnumBody :: [EnumBody_Element]}
deriving (Eq, Ord, Read, Show)
_EnumBody = Core.Name "hydra.java.syntax.EnumBody"
data EnumBody_Element =
EnumBody_Element {
enumBody_ElementConstants :: [EnumConstant],
enumBody_ElementBodyDeclarations :: [ClassBodyDeclaration]}
deriving (Eq, Ord, Read, Show)
_EnumBody_Element = Core.Name "hydra.java.syntax.EnumBody_Element"
_EnumBody_Element_constants = Core.Name "constants"
_EnumBody_Element_bodyDeclarations = Core.Name "bodyDeclarations"
data EnumConstant =
EnumConstant {
enumConstantModifiers :: [EnumConstantModifier],
enumConstantIdentifier :: Identifier,
enumConstantArguments :: (Maybe [Expression]),
enumConstantBody :: (Maybe ClassBody)}
deriving (Eq, Ord, Read, Show)
_EnumConstant = Core.Name "hydra.java.syntax.EnumConstant"
_EnumConstant_modifiers = Core.Name "modifiers"
_EnumConstant_identifier = Core.Name "identifier"
_EnumConstant_arguments = Core.Name "arguments"
_EnumConstant_body = Core.Name "body"
newtype EnumConstantModifier =
EnumConstantModifier {
unEnumConstantModifier :: Annotation}
deriving (Eq, Ord, Read, Show)
_EnumConstantModifier = Core.Name "hydra.java.syntax.EnumConstantModifier"
data RecordDeclaration =
RecordDeclaration {
recordDeclarationModifiers :: [ClassModifier],
recordDeclarationIdentifier :: TypeIdentifier,
recordDeclarationParameters :: [TypeParameter],
recordDeclarationHeader :: RecordHeader,
recordDeclarationImplements :: [InterfaceType],
recordDeclarationBody :: RecordBody}
deriving (Eq, Ord, Read, Show)
_RecordDeclaration = Core.Name "hydra.java.syntax.RecordDeclaration"
_RecordDeclaration_modifiers = Core.Name "modifiers"
_RecordDeclaration_identifier = Core.Name "identifier"
_RecordDeclaration_parameters = Core.Name "parameters"
_RecordDeclaration_header = Core.Name "header"
_RecordDeclaration_implements = Core.Name "implements"
_RecordDeclaration_body = Core.Name "body"
newtype RecordHeader =
RecordHeader {
unRecordHeader :: [RecordComponent]}
deriving (Eq, Ord, Read, Show)
_RecordHeader = Core.Name "hydra.java.syntax.RecordHeader"
data RecordComponent =
RecordComponentSimple RecordComponent_Simple |
RecordComponentVariableArity VariableArityRecordComponent
deriving (Eq, Ord, Read, Show)
_RecordComponent = Core.Name "hydra.java.syntax.RecordComponent"
_RecordComponent_simple = Core.Name "simple"
_RecordComponent_variableArity = Core.Name "variableArity"
data RecordComponent_Simple =
RecordComponent_Simple {
recordComponent_SimpleModifiers :: [RecordComponentModifier],
recordComponent_SimpleType :: UnannType,
recordComponent_SimpleIdentifier :: Identifier}
deriving (Eq, Ord, Read, Show)
_RecordComponent_Simple = Core.Name "hydra.java.syntax.RecordComponent_Simple"
_RecordComponent_Simple_modifiers = Core.Name "modifiers"
_RecordComponent_Simple_type = Core.Name "type"
_RecordComponent_Simple_identifier = Core.Name "identifier"
data VariableArityRecordComponent =
VariableArityRecordComponent {
variableArityRecordComponentModifiers :: [RecordComponentModifier],
variableArityRecordComponentType :: UnannType,
variableArityRecordComponentAnnotations :: [Annotation],
variableArityRecordComponentIdentifier :: Identifier}
deriving (Eq, Ord, Read, Show)
_VariableArityRecordComponent = Core.Name "hydra.java.syntax.VariableArityRecordComponent"
_VariableArityRecordComponent_modifiers = Core.Name "modifiers"
_VariableArityRecordComponent_type = Core.Name "type"
_VariableArityRecordComponent_annotations = Core.Name "annotations"
_VariableArityRecordComponent_identifier = Core.Name "identifier"
newtype RecordComponentModifier =
RecordComponentModifier {
unRecordComponentModifier :: Annotation}
deriving (Eq, Ord, Read, Show)
_RecordComponentModifier = Core.Name "hydra.java.syntax.RecordComponentModifier"
newtype RecordBody =
RecordBody {
unRecordBody :: [RecordBodyDeclaration]}
deriving (Eq, Ord, Read, Show)
_RecordBody = Core.Name "hydra.java.syntax.RecordBody"
data RecordBodyDeclaration =
RecordBodyDeclarationClassBody ClassBodyDeclaration |
RecordBodyDeclarationCompactConstructor CompactConstructorDeclaration
deriving (Eq, Ord, Read, Show)
_RecordBodyDeclaration = Core.Name "hydra.java.syntax.RecordBodyDeclaration"
_RecordBodyDeclaration_classBody = Core.Name "classBody"
_RecordBodyDeclaration_compactConstructor = Core.Name "compactConstructor"
data CompactConstructorDeclaration =
CompactConstructorDeclaration {
compactConstructorDeclarationModifiers :: [ConstructorModifier],
compactConstructorDeclarationName :: SimpleTypeName,
compactConstructorDeclarationBody :: ConstructorBody}
deriving (Eq, Ord, Read, Show)
_CompactConstructorDeclaration = Core.Name "hydra.java.syntax.CompactConstructorDeclaration"
_CompactConstructorDeclaration_modifiers = Core.Name "modifiers"
_CompactConstructorDeclaration_name = Core.Name "name"
_CompactConstructorDeclaration_body = Core.Name "body"
data InterfaceDeclaration =
InterfaceDeclarationNormalInterface NormalInterfaceDeclaration |
InterfaceDeclarationAnnotationInterface AnnotationInterfaceDeclaration
deriving (Eq, Ord, Read, Show)
_InterfaceDeclaration = Core.Name "hydra.java.syntax.InterfaceDeclaration"
_InterfaceDeclaration_normalInterface = Core.Name "normalInterface"
_InterfaceDeclaration_annotationInterface = Core.Name "annotationInterface"
data NormalInterfaceDeclaration =
NormalInterfaceDeclaration {
normalInterfaceDeclarationModifiers :: [InterfaceModifier],
normalInterfaceDeclarationIdentifier :: TypeIdentifier,
normalInterfaceDeclarationParameters :: [TypeParameter],
normalInterfaceDeclarationExtends :: [InterfaceType],
normalInterfaceDeclarationPermits :: [TypeName],
normalInterfaceDeclarationBody :: InterfaceBody}
deriving (Eq, Ord, Read, Show)
_NormalInterfaceDeclaration = Core.Name "hydra.java.syntax.NormalInterfaceDeclaration"
_NormalInterfaceDeclaration_modifiers = Core.Name "modifiers"
_NormalInterfaceDeclaration_identifier = Core.Name "identifier"
_NormalInterfaceDeclaration_parameters = Core.Name "parameters"
_NormalInterfaceDeclaration_extends = Core.Name "extends"
_NormalInterfaceDeclaration_permits = Core.Name "permits"
_NormalInterfaceDeclaration_body = Core.Name "body"
data InterfaceModifier =
InterfaceModifierAnnotation Annotation |
InterfaceModifierPublic |
InterfaceModifierProtected |
InterfaceModifierPrivate |
InterfaceModifierAbstract |
InterfaceModifierStatic |
InterfaceModifierSealed |
InterfaceModifierNonSealed |
InterfaceModifierStrictfp
deriving (Eq, Ord, Read, Show)
_InterfaceModifier = Core.Name "hydra.java.syntax.InterfaceModifier"
_InterfaceModifier_annotation = Core.Name "annotation"
_InterfaceModifier_public = Core.Name "public"
_InterfaceModifier_protected = Core.Name "protected"
_InterfaceModifier_private = Core.Name "private"
_InterfaceModifier_abstract = Core.Name "abstract"
_InterfaceModifier_static = Core.Name "static"
_InterfaceModifier_sealed = Core.Name "sealed"
_InterfaceModifier_nonSealed = Core.Name "nonSealed"
_InterfaceModifier_strictfp = Core.Name "strictfp"
newtype InterfaceBody =
InterfaceBody {
unInterfaceBody :: [InterfaceMemberDeclarationWithComments]}
deriving (Eq, Ord, Read, Show)
_InterfaceBody = Core.Name "hydra.java.syntax.InterfaceBody"
data InterfaceMemberDeclaration =
InterfaceMemberDeclarationConstant ConstantDeclaration |
InterfaceMemberDeclarationInterfaceMethod InterfaceMethodDeclaration |
InterfaceMemberDeclarationClass ClassDeclaration |
InterfaceMemberDeclarationInterface InterfaceDeclaration
deriving (Eq, Ord, Read, Show)
_InterfaceMemberDeclaration = Core.Name "hydra.java.syntax.InterfaceMemberDeclaration"
_InterfaceMemberDeclaration_constant = Core.Name "constant"
_InterfaceMemberDeclaration_interfaceMethod = Core.Name "interfaceMethod"
_InterfaceMemberDeclaration_class = Core.Name "class"
_InterfaceMemberDeclaration_interface = Core.Name "interface"
data InterfaceMemberDeclarationWithComments =
InterfaceMemberDeclarationWithComments {
interfaceMemberDeclarationWithCommentsValue :: InterfaceMemberDeclaration,
interfaceMemberDeclarationWithCommentsComments :: (Maybe String)}
deriving (Eq, Ord, Read, Show)
_InterfaceMemberDeclarationWithComments = Core.Name "hydra.java.syntax.InterfaceMemberDeclarationWithComments"
_InterfaceMemberDeclarationWithComments_value = Core.Name "value"
_InterfaceMemberDeclarationWithComments_comments = Core.Name "comments"
data ConstantDeclaration =
ConstantDeclaration {
constantDeclarationModifiers :: [ConstantModifier],
constantDeclarationType :: UnannType,
constantDeclarationVariables :: [VariableDeclarator]}
deriving (Eq, Ord, Read, Show)
_ConstantDeclaration = Core.Name "hydra.java.syntax.ConstantDeclaration"
_ConstantDeclaration_modifiers = Core.Name "modifiers"
_ConstantDeclaration_type = Core.Name "type"
_ConstantDeclaration_variables = Core.Name "variables"
data ConstantModifier =
ConstantModifierAnnotation Annotation |
ConstantModifierPublic |
ConstantModifierStatic |
ConstantModifierFinal
deriving (Eq, Ord, Read, Show)
_ConstantModifier = Core.Name "hydra.java.syntax.ConstantModifier"
_ConstantModifier_annotation = Core.Name "annotation"
_ConstantModifier_public = Core.Name "public"
_ConstantModifier_static = Core.Name "static"
_ConstantModifier_final = Core.Name "final"
data InterfaceMethodDeclaration =
InterfaceMethodDeclaration {
interfaceMethodDeclarationModifiers :: [InterfaceMethodModifier],
interfaceMethodDeclarationHeader :: MethodHeader,
interfaceMethodDeclarationBody :: MethodBody}
deriving (Eq, Ord, Read, Show)
_InterfaceMethodDeclaration = Core.Name "hydra.java.syntax.InterfaceMethodDeclaration"
_InterfaceMethodDeclaration_modifiers = Core.Name "modifiers"
_InterfaceMethodDeclaration_header = Core.Name "header"
_InterfaceMethodDeclaration_body = Core.Name "body"
data InterfaceMethodModifier =
InterfaceMethodModifierAnnotation Annotation |
InterfaceMethodModifierPublic |
InterfaceMethodModifierPrivate |
InterfaceMethodModifierAbstract |
InterfaceMethodModifierDefault |
InterfaceMethodModifierStatic |
InterfaceMethodModifierStrictfp
deriving (Eq, Ord, Read, Show)
_InterfaceMethodModifier = Core.Name "hydra.java.syntax.InterfaceMethodModifier"
_InterfaceMethodModifier_annotation = Core.Name "annotation"
_InterfaceMethodModifier_public = Core.Name "public"
_InterfaceMethodModifier_private = Core.Name "private"
_InterfaceMethodModifier_abstract = Core.Name "abstract"
_InterfaceMethodModifier_default = Core.Name "default"
_InterfaceMethodModifier_static = Core.Name "static"
_InterfaceMethodModifier_strictfp = Core.Name "strictfp"
data AnnotationInterfaceDeclaration =
AnnotationInterfaceDeclaration {
annotationInterfaceDeclarationModifiers :: [InterfaceModifier],
annotationInterfaceDeclarationIdentifier :: TypeIdentifier,
annotationInterfaceDeclarationBody :: AnnotationInterfaceBody}
deriving (Eq, Ord, Read, Show)
_AnnotationInterfaceDeclaration = Core.Name "hydra.java.syntax.AnnotationInterfaceDeclaration"
_AnnotationInterfaceDeclaration_modifiers = Core.Name "modifiers"
_AnnotationInterfaceDeclaration_identifier = Core.Name "identifier"
_AnnotationInterfaceDeclaration_body = Core.Name "body"
newtype AnnotationInterfaceBody =
AnnotationInterfaceBody {
unAnnotationInterfaceBody :: [AnnotationInterfaceMemberDeclaration]}
deriving (Eq, Ord, Read, Show)
_AnnotationInterfaceBody = Core.Name "hydra.java.syntax.AnnotationInterfaceBody"
data AnnotationInterfaceMemberDeclaration =
AnnotationInterfaceMemberDeclarationAnnotationInterface AnnotationInterfaceElementDeclaration |
AnnotationInterfaceMemberDeclarationConstant ConstantDeclaration |
AnnotationInterfaceMemberDeclarationClass ClassDeclaration |
AnnotationInterfaceMemberDeclarationInterface InterfaceDeclaration
deriving (Eq, Ord, Read, Show)
_AnnotationInterfaceMemberDeclaration = Core.Name "hydra.java.syntax.AnnotationInterfaceMemberDeclaration"
_AnnotationInterfaceMemberDeclaration_annotationInterface = Core.Name "annotationInterface"
_AnnotationInterfaceMemberDeclaration_constant = Core.Name "constant"
_AnnotationInterfaceMemberDeclaration_class = Core.Name "class"
_AnnotationInterfaceMemberDeclaration_interface = Core.Name "interface"
data AnnotationInterfaceElementDeclaration =
AnnotationInterfaceElementDeclaration {
annotationInterfaceElementDeclarationModifiers :: [AnnotationInterfaceElementModifier],
annotationInterfaceElementDeclarationType :: UnannType,
annotationInterfaceElementDeclarationIdentifier :: Identifier,
annotationInterfaceElementDeclarationDims :: (Maybe Dims),
annotationInterfaceElementDeclarationDefault :: (Maybe DefaultValue)}
deriving (Eq, Ord, Read, Show)
_AnnotationInterfaceElementDeclaration = Core.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"
_AnnotationInterfaceElementDeclaration_modifiers = Core.Name "modifiers"
_AnnotationInterfaceElementDeclaration_type = Core.Name "type"
_AnnotationInterfaceElementDeclaration_identifier = Core.Name "identifier"
_AnnotationInterfaceElementDeclaration_dims = Core.Name "dims"
_AnnotationInterfaceElementDeclaration_default = Core.Name "default"
data AnnotationInterfaceElementModifier =
AnnotationInterfaceElementModifierAnnotation Annotation |
AnnotationInterfaceElementModifierPublic |
AnnotationInterfaceElementModifierAbstract
deriving (Eq, Ord, Read, Show)
_AnnotationInterfaceElementModifier = Core.Name "hydra.java.syntax.AnnotationInterfaceElementModifier"
_AnnotationInterfaceElementModifier_annotation = Core.Name "annotation"
_AnnotationInterfaceElementModifier_public = Core.Name "public"
_AnnotationInterfaceElementModifier_abstract = Core.Name "abstract"
newtype DefaultValue =
DefaultValue {
unDefaultValue :: ElementValue}
deriving (Eq, Ord, Read, Show)
_DefaultValue = Core.Name "hydra.java.syntax.DefaultValue"
data Annotation =
AnnotationNormal NormalAnnotation |
AnnotationMarker MarkerAnnotation |
AnnotationSingleElement SingleElementAnnotation
deriving (Eq, Ord, Read, Show)
_Annotation = Core.Name "hydra.java.syntax.Annotation"
_Annotation_normal = Core.Name "normal"
_Annotation_marker = Core.Name "marker"
_Annotation_singleElement = Core.Name "singleElement"
data NormalAnnotation =
NormalAnnotation {
normalAnnotationTypeName :: TypeName,
normalAnnotationPairs :: [ElementValuePair]}
deriving (Eq, Ord, Read, Show)
_NormalAnnotation = Core.Name "hydra.java.syntax.NormalAnnotation"
_NormalAnnotation_typeName = Core.Name "typeName"
_NormalAnnotation_pairs = Core.Name "pairs"
data ElementValuePair =
ElementValuePair {
elementValuePairKey :: Identifier,
elementValuePairValue :: ElementValue}
deriving (Eq, Ord, Read, Show)
_ElementValuePair = Core.Name "hydra.java.syntax.ElementValuePair"
_ElementValuePair_key = Core.Name "key"
_ElementValuePair_value = Core.Name "value"
data ElementValue =
ElementValueConditionalExpression ConditionalExpression |
ElementValueElementValueArrayInitializer ElementValueArrayInitializer |
ElementValueAnnotation Annotation
deriving (Eq, Ord, Read, Show)
_ElementValue = Core.Name "hydra.java.syntax.ElementValue"
_ElementValue_conditionalExpression = Core.Name "conditionalExpression"
_ElementValue_elementValueArrayInitializer = Core.Name "elementValueArrayInitializer"
_ElementValue_annotation = Core.Name "annotation"
newtype ElementValueArrayInitializer =
ElementValueArrayInitializer {
unElementValueArrayInitializer :: [ElementValue]}
deriving (Eq, Ord, Read, Show)
_ElementValueArrayInitializer = Core.Name "hydra.java.syntax.ElementValueArrayInitializer"
newtype MarkerAnnotation =
MarkerAnnotation {
unMarkerAnnotation :: TypeName}
deriving (Eq, Ord, Read, Show)
_MarkerAnnotation = Core.Name "hydra.java.syntax.MarkerAnnotation"
data SingleElementAnnotation =
SingleElementAnnotation {
singleElementAnnotationName :: TypeName,
singleElementAnnotationValue :: (Maybe ElementValue)}
deriving (Eq, Ord, Read, Show)
_SingleElementAnnotation = Core.Name "hydra.java.syntax.SingleElementAnnotation"
_SingleElementAnnotation_name = Core.Name "name"
_SingleElementAnnotation_value = Core.Name "value"
newtype ArrayInitializer =
ArrayInitializer {
unArrayInitializer :: [[VariableInitializer]]}
deriving (Eq, Ord, Read, Show)
_ArrayInitializer = Core.Name "hydra.java.syntax.ArrayInitializer"
newtype Block =
Block {
unBlock :: [BlockStatement]}
deriving (Eq, Ord, Read, Show)
_Block = Core.Name "hydra.java.syntax.Block"
data BlockStatement =
BlockStatementLocalVariableDeclaration LocalVariableDeclarationStatement |
BlockStatementLocalClassOrInterface LocalClassOrInterfaceDeclaration |
BlockStatementStatement Statement
deriving (Eq, Ord, Read, Show)
_BlockStatement = Core.Name "hydra.java.syntax.BlockStatement"
_BlockStatement_localVariableDeclaration = Core.Name "localVariableDeclaration"
_BlockStatement_localClassOrInterface = Core.Name "localClassOrInterface"
_BlockStatement_statement = Core.Name "statement"
data LocalClassOrInterfaceDeclaration =
LocalClassOrInterfaceDeclarationClass ClassDeclaration |
LocalClassOrInterfaceDeclarationNormalInterface NormalInterfaceDeclaration
deriving (Eq, Ord, Read, Show)
_LocalClassOrInterfaceDeclaration = Core.Name "hydra.java.syntax.LocalClassOrInterfaceDeclaration"
_LocalClassOrInterfaceDeclaration_class = Core.Name "class"
_LocalClassOrInterfaceDeclaration_normalInterface = Core.Name "normalInterface"
newtype LocalVariableDeclarationStatement =
LocalVariableDeclarationStatement {
unLocalVariableDeclarationStatement :: LocalVariableDeclaration}
deriving (Eq, Ord, Read, Show)
_LocalVariableDeclarationStatement = Core.Name "hydra.java.syntax.LocalVariableDeclarationStatement"
data LocalVariableDeclaration =
LocalVariableDeclaration {
localVariableDeclarationModifiers :: [VariableModifier],
localVariableDeclarationType :: LocalVariableType,
localVariableDeclarationDeclarators :: [VariableDeclarator]}
deriving (Eq, Ord, Read, Show)
_LocalVariableDeclaration = Core.Name "hydra.java.syntax.LocalVariableDeclaration"
_LocalVariableDeclaration_modifiers = Core.Name "modifiers"
_LocalVariableDeclaration_type = Core.Name "type"
_LocalVariableDeclaration_declarators = Core.Name "declarators"
data LocalVariableType =
LocalVariableTypeType UnannType |
LocalVariableTypeVar
deriving (Eq, Ord, Read, Show)
_LocalVariableType = Core.Name "hydra.java.syntax.LocalVariableType"
_LocalVariableType_type = Core.Name "type"
_LocalVariableType_var = Core.Name "var"
data Statement =
StatementWithoutTrailing StatementWithoutTrailingSubstatement |
StatementLabeled LabeledStatement |
StatementIfThen IfThenStatement |
StatementIfThenElse IfThenElseStatement |
StatementWhile WhileStatement |
StatementFor ForStatement
deriving (Eq, Ord, Read, Show)
_Statement = Core.Name "hydra.java.syntax.Statement"
_Statement_withoutTrailing = Core.Name "withoutTrailing"
_Statement_labeled = Core.Name "labeled"
_Statement_ifThen = Core.Name "ifThen"
_Statement_ifThenElse = Core.Name "ifThenElse"
_Statement_while = Core.Name "while"
_Statement_for = Core.Name "for"
data StatementNoShortIf =
StatementNoShortIfWithoutTrailing StatementWithoutTrailingSubstatement |
StatementNoShortIfLabeled LabeledStatementNoShortIf |
StatementNoShortIfIfThenElse IfThenElseStatementNoShortIf |
StatementNoShortIfWhile WhileStatementNoShortIf |
StatementNoShortIfFor ForStatementNoShortIf
deriving (Eq, Ord, Read, Show)
_StatementNoShortIf = Core.Name "hydra.java.syntax.StatementNoShortIf"
_StatementNoShortIf_withoutTrailing = Core.Name "withoutTrailing"
_StatementNoShortIf_labeled = Core.Name "labeled"
_StatementNoShortIf_ifThenElse = Core.Name "ifThenElse"
_StatementNoShortIf_while = Core.Name "while"
_StatementNoShortIf_for = Core.Name "for"
data StatementWithoutTrailingSubstatement =
StatementWithoutTrailingSubstatementBlock Block |
StatementWithoutTrailingSubstatementEmpty |
StatementWithoutTrailingSubstatementExpression ExpressionStatement |
StatementWithoutTrailingSubstatementAssert AssertStatement |
StatementWithoutTrailingSubstatementSwitch SwitchStatement |
StatementWithoutTrailingSubstatementDo DoStatement |
StatementWithoutTrailingSubstatementBreak BreakStatement |
StatementWithoutTrailingSubstatementContinue ContinueStatement |
StatementWithoutTrailingSubstatementReturn ReturnStatement |
StatementWithoutTrailingSubstatementSynchronized SynchronizedStatement |
StatementWithoutTrailingSubstatementThrow ThrowStatement |
StatementWithoutTrailingSubstatementTry TryStatement |
StatementWithoutTrailingSubstatementYield YieldStatement
deriving (Eq, Ord, Read, Show)
_StatementWithoutTrailingSubstatement = Core.Name "hydra.java.syntax.StatementWithoutTrailingSubstatement"
_StatementWithoutTrailingSubstatement_block = Core.Name "block"
_StatementWithoutTrailingSubstatement_empty = Core.Name "empty"
_StatementWithoutTrailingSubstatement_expression = Core.Name "expression"
_StatementWithoutTrailingSubstatement_assert = Core.Name "assert"
_StatementWithoutTrailingSubstatement_switch = Core.Name "switch"
_StatementWithoutTrailingSubstatement_do = Core.Name "do"
_StatementWithoutTrailingSubstatement_break = Core.Name "break"
_StatementWithoutTrailingSubstatement_continue = Core.Name "continue"
_StatementWithoutTrailingSubstatement_return = Core.Name "return"
_StatementWithoutTrailingSubstatement_synchronized = Core.Name "synchronized"
_StatementWithoutTrailingSubstatement_throw = Core.Name "throw"
_StatementWithoutTrailingSubstatement_try = Core.Name "try"
_StatementWithoutTrailingSubstatement_yield = Core.Name "yield"
data LabeledStatement =
LabeledStatement {
labeledStatementIdentifier :: Identifier,
labeledStatementStatement :: Statement}
deriving (Eq, Ord, Read, Show)
_LabeledStatement = Core.Name "hydra.java.syntax.LabeledStatement"
_LabeledStatement_identifier = Core.Name "identifier"
_LabeledStatement_statement = Core.Name "statement"
data LabeledStatementNoShortIf =
LabeledStatementNoShortIf {
labeledStatementNoShortIfIdentifier :: Identifier,
labeledStatementNoShortIfStatement :: StatementNoShortIf}
deriving (Eq, Ord, Read, Show)
_LabeledStatementNoShortIf = Core.Name "hydra.java.syntax.LabeledStatementNoShortIf"
_LabeledStatementNoShortIf_identifier = Core.Name "identifier"
_LabeledStatementNoShortIf_statement = Core.Name "statement"
newtype ExpressionStatement =
ExpressionStatement {
unExpressionStatement :: StatementExpression}
deriving (Eq, Ord, Read, Show)
_ExpressionStatement = Core.Name "hydra.java.syntax.ExpressionStatement"
data StatementExpression =
StatementExpressionAssignment Assignment |
StatementExpressionPreIncrement PreIncrementExpression |
StatementExpressionPreDecrement PreDecrementExpression |
StatementExpressionPostIncrement PostIncrementExpression |
StatementExpressionPostDecrement PostDecrementExpression |
StatementExpressionMethodInvocation MethodInvocation |
StatementExpressionClassInstanceCreation ClassInstanceCreationExpression
deriving (Eq, Ord, Read, Show)
_StatementExpression = Core.Name "hydra.java.syntax.StatementExpression"
_StatementExpression_assignment = Core.Name "assignment"
_StatementExpression_preIncrement = Core.Name "preIncrement"
_StatementExpression_preDecrement = Core.Name "preDecrement"
_StatementExpression_postIncrement = Core.Name "postIncrement"
_StatementExpression_postDecrement = Core.Name "postDecrement"
_StatementExpression_methodInvocation = Core.Name "methodInvocation"
_StatementExpression_classInstanceCreation = Core.Name "classInstanceCreation"
data IfThenStatement =
IfThenStatement {
ifThenStatementExpression :: Expression,
ifThenStatementStatement :: Statement}
deriving (Eq, Ord, Read, Show)
_IfThenStatement = Core.Name "hydra.java.syntax.IfThenStatement"
_IfThenStatement_expression = Core.Name "expression"
_IfThenStatement_statement = Core.Name "statement"
data IfThenElseStatement =
IfThenElseStatement {
ifThenElseStatementCond :: (Maybe Expression),
ifThenElseStatementThen :: StatementNoShortIf,
ifThenElseStatementElse :: Statement}
deriving (Eq, Ord, Read, Show)
_IfThenElseStatement = Core.Name "hydra.java.syntax.IfThenElseStatement"
_IfThenElseStatement_cond = Core.Name "cond"
_IfThenElseStatement_then = Core.Name "then"
_IfThenElseStatement_else = Core.Name "else"
data IfThenElseStatementNoShortIf =
IfThenElseStatementNoShortIf {
ifThenElseStatementNoShortIfCond :: (Maybe Expression),
ifThenElseStatementNoShortIfThen :: StatementNoShortIf,
ifThenElseStatementNoShortIfElse :: StatementNoShortIf}
deriving (Eq, Ord, Read, Show)
_IfThenElseStatementNoShortIf = Core.Name "hydra.java.syntax.IfThenElseStatementNoShortIf"
_IfThenElseStatementNoShortIf_cond = Core.Name "cond"
_IfThenElseStatementNoShortIf_then = Core.Name "then"
_IfThenElseStatementNoShortIf_else = Core.Name "else"
data AssertStatement =
AssertStatementSingle Expression |
AssertStatementPair AssertStatement_Pair
deriving (Eq, Ord, Read, Show)
_AssertStatement = Core.Name "hydra.java.syntax.AssertStatement"
_AssertStatement_single = Core.Name "single"
_AssertStatement_pair = Core.Name "pair"
data AssertStatement_Pair =
AssertStatement_Pair {
assertStatement_PairFirst :: Expression,
assertStatement_PairSecond :: Expression}
deriving (Eq, Ord, Read, Show)
_AssertStatement_Pair = Core.Name "hydra.java.syntax.AssertStatement_Pair"
_AssertStatement_Pair_first = Core.Name "first"
_AssertStatement_Pair_second = Core.Name "second"
data SwitchStatement =
SwitchStatement {
switchStatementCond :: Expression,
switchStatementBlock :: SwitchBlock}
deriving (Eq, Ord, Read, Show)
_SwitchStatement = Core.Name "hydra.java.syntax.SwitchStatement"
_SwitchStatement_cond = Core.Name "cond"
_SwitchStatement_block = Core.Name "block"
data SwitchBlock =
SwitchBlockRules [SwitchRule] |
SwitchBlockLegacy SwitchBlock_Legacy
deriving (Eq, Ord, Read, Show)
_SwitchBlock = Core.Name "hydra.java.syntax.SwitchBlock"
_SwitchBlock_rules = Core.Name "rules"
_SwitchBlock_legacy = Core.Name "legacy"
data SwitchBlock_Legacy =
SwitchBlock_Legacy {
switchBlock_LegacyGroups :: [SwitchBlockStatementGroup],
switchBlock_LegacyTrailingLabels :: [SwitchLabel]}
deriving (Eq, Ord, Read, Show)
_SwitchBlock_Legacy = Core.Name "hydra.java.syntax.SwitchBlock_Legacy"
_SwitchBlock_Legacy_groups = Core.Name "groups"
_SwitchBlock_Legacy_trailingLabels = Core.Name "trailingLabels"
data SwitchRule =
SwitchRule {
switchRuleLabel :: SwitchLabel,
switchRuleBody :: SwitchRule_Body}
deriving (Eq, Ord, Read, Show)
_SwitchRule = Core.Name "hydra.java.syntax.SwitchRule"
_SwitchRule_label = Core.Name "label"
_SwitchRule_body = Core.Name "body"
data SwitchRule_Body =
SwitchRule_BodyExpression Expression |
SwitchRule_BodyBlock Block |
SwitchRule_BodyThrow ThrowStatement
deriving (Eq, Ord, Read, Show)
_SwitchRule_Body = Core.Name "hydra.java.syntax.SwitchRule_Body"
_SwitchRule_Body_expression = Core.Name "expression"
_SwitchRule_Body_block = Core.Name "block"
_SwitchRule_Body_throw = Core.Name "throw"
data SwitchBlockStatementGroup =
SwitchBlockStatementGroup {
switchBlockStatementGroupLabels :: [SwitchLabel],
switchBlockStatementGroupStatements :: [BlockStatement]}
deriving (Eq, Ord, Read, Show)
_SwitchBlockStatementGroup = Core.Name "hydra.java.syntax.SwitchBlockStatementGroup"
_SwitchBlockStatementGroup_labels = Core.Name "labels"
_SwitchBlockStatementGroup_statements = Core.Name "statements"
data SwitchLabel =
SwitchLabelCase [CaseConstant] |
SwitchLabelNull Bool |
SwitchLabelCasePattern CasePattern |
SwitchLabelDefault
deriving (Eq, Ord, Read, Show)
_SwitchLabel = Core.Name "hydra.java.syntax.SwitchLabel"
_SwitchLabel_case = Core.Name "case"
_SwitchLabel_null = Core.Name "null"
_SwitchLabel_casePattern = Core.Name "casePattern"
_SwitchLabel_default = Core.Name "default"
newtype CaseConstant =
CaseConstant {
unCaseConstant :: ConditionalExpression}
deriving (Eq, Ord, Read, Show)
_CaseConstant = Core.Name "hydra.java.syntax.CaseConstant"
data CasePattern =
CasePattern {
casePatternPattern :: Pattern,
casePatternGuard :: (Maybe Guard)}
deriving (Eq, Ord, Read, Show)
_CasePattern = Core.Name "hydra.java.syntax.CasePattern"
_CasePattern_pattern = Core.Name "pattern"
_CasePattern_guard = Core.Name "guard"
newtype Guard =
Guard {
unGuard :: Expression}
deriving (Eq, Ord, Read, Show)
_Guard = Core.Name "hydra.java.syntax.Guard"
data Pattern =
PatternType TypePattern |
PatternRecord RecordPattern
deriving (Eq, Ord, Read, Show)
_Pattern = Core.Name "hydra.java.syntax.Pattern"
_Pattern_type = Core.Name "type"
_Pattern_record = Core.Name "record"
newtype TypePattern =
TypePattern {
unTypePattern :: LocalVariableDeclaration}
deriving (Eq, Ord, Read, Show)
_TypePattern = Core.Name "hydra.java.syntax.TypePattern"
data RecordPattern =
RecordPattern {
recordPatternType :: ReferenceType,
recordPatternPatterns :: [Pattern]}
deriving (Eq, Ord, Read, Show)
_RecordPattern = Core.Name "hydra.java.syntax.RecordPattern"
_RecordPattern_type = Core.Name "type"
_RecordPattern_patterns = Core.Name "patterns"
data WhileStatement =
WhileStatement {
whileStatementCond :: (Maybe Expression),
whileStatementBody :: Statement}
deriving (Eq, Ord, Read, Show)
_WhileStatement = Core.Name "hydra.java.syntax.WhileStatement"
_WhileStatement_cond = Core.Name "cond"
_WhileStatement_body = Core.Name "body"
data WhileStatementNoShortIf =
WhileStatementNoShortIf {
whileStatementNoShortIfCond :: (Maybe Expression),
whileStatementNoShortIfBody :: StatementNoShortIf}
deriving (Eq, Ord, Read, Show)
_WhileStatementNoShortIf = Core.Name "hydra.java.syntax.WhileStatementNoShortIf"
_WhileStatementNoShortIf_cond = Core.Name "cond"
_WhileStatementNoShortIf_body = Core.Name "body"
data DoStatement =
DoStatement {
doStatementBody :: Statement,
doStatementCond :: Expression}
deriving (Eq, Ord, Read, Show)
_DoStatement = Core.Name "hydra.java.syntax.DoStatement"
_DoStatement_body = Core.Name "body"
_DoStatement_cond = Core.Name "cond"
data ForStatement =
ForStatementBasic BasicForStatement |
ForStatementEnhanced EnhancedForStatement
deriving (Eq, Ord, Read, Show)
_ForStatement = Core.Name "hydra.java.syntax.ForStatement"
_ForStatement_basic = Core.Name "basic"
_ForStatement_enhanced = Core.Name "enhanced"
data ForStatementNoShortIf =
ForStatementNoShortIfBasic BasicForStatementNoShortIf |
ForStatementNoShortIfEnhanced EnhancedForStatementNoShortIf
deriving (Eq, Ord, Read, Show)
_ForStatementNoShortIf = Core.Name "hydra.java.syntax.ForStatementNoShortIf"
_ForStatementNoShortIf_basic = Core.Name "basic"
_ForStatementNoShortIf_enhanced = Core.Name "enhanced"
data BasicForStatement =
BasicForStatement {
basicForStatementCond :: ForCond,
basicForStatementBody :: Statement}
deriving (Eq, Ord, Read, Show)
_BasicForStatement = Core.Name "hydra.java.syntax.BasicForStatement"
_BasicForStatement_cond = Core.Name "cond"
_BasicForStatement_body = Core.Name "body"
data ForCond =
ForCond {
forCondInit :: (Maybe ForInit),
forCondCond :: (Maybe Expression),
forCondUpdate :: (Maybe ForUpdate)}
deriving (Eq, Ord, Read, Show)
_ForCond = Core.Name "hydra.java.syntax.ForCond"
_ForCond_init = Core.Name "init"
_ForCond_cond = Core.Name "cond"
_ForCond_update = Core.Name "update"
data BasicForStatementNoShortIf =
BasicForStatementNoShortIf {
basicForStatementNoShortIfCond :: ForCond,
basicForStatementNoShortIfBody :: StatementNoShortIf}
deriving (Eq, Ord, Read, Show)
_BasicForStatementNoShortIf = Core.Name "hydra.java.syntax.BasicForStatementNoShortIf"
_BasicForStatementNoShortIf_cond = Core.Name "cond"
_BasicForStatementNoShortIf_body = Core.Name "body"
data ForInit =
ForInitStatements [StatementExpression] |
ForInitLocalVariable LocalVariableDeclaration
deriving (Eq, Ord, Read, Show)
_ForInit = Core.Name "hydra.java.syntax.ForInit"
_ForInit_statements = Core.Name "statements"
_ForInit_localVariable = Core.Name "localVariable"
newtype ForUpdate =
ForUpdate {
unForUpdate :: [StatementExpression]}
deriving (Eq, Ord, Read, Show)
_ForUpdate = Core.Name "hydra.java.syntax.ForUpdate"
data EnhancedForStatement =
EnhancedForStatement {
enhancedForStatementCond :: EnhancedForCond,
enhancedForStatementBody :: Statement}
deriving (Eq, Ord, Read, Show)
_EnhancedForStatement = Core.Name "hydra.java.syntax.EnhancedForStatement"
_EnhancedForStatement_cond = Core.Name "cond"
_EnhancedForStatement_body = Core.Name "body"
data EnhancedForCond =
EnhancedForCond {
enhancedForCondDeclaration :: LocalVariableDeclaration,
enhancedForCondExpression :: Expression}
deriving (Eq, Ord, Read, Show)
_EnhancedForCond = Core.Name "hydra.java.syntax.EnhancedForCond"
_EnhancedForCond_declaration = Core.Name "declaration"
_EnhancedForCond_expression = Core.Name "expression"
data EnhancedForStatementNoShortIf =
EnhancedForStatementNoShortIf {
enhancedForStatementNoShortIfCond :: EnhancedForCond,
enhancedForStatementNoShortIfBody :: StatementNoShortIf}
deriving (Eq, Ord, Read, Show)
_EnhancedForStatementNoShortIf = Core.Name "hydra.java.syntax.EnhancedForStatementNoShortIf"
_EnhancedForStatementNoShortIf_cond = Core.Name "cond"
_EnhancedForStatementNoShortIf_body = Core.Name "body"
newtype BreakStatement =
BreakStatement {
unBreakStatement :: (Maybe Identifier)}
deriving (Eq, Ord, Read, Show)
_BreakStatement = Core.Name "hydra.java.syntax.BreakStatement"
newtype YieldStatement =
YieldStatement {
unYieldStatement :: Expression}
deriving (Eq, Ord, Read, Show)
_YieldStatement = Core.Name "hydra.java.syntax.YieldStatement"
newtype ContinueStatement =
ContinueStatement {
unContinueStatement :: (Maybe Identifier)}
deriving (Eq, Ord, Read, Show)
_ContinueStatement = Core.Name "hydra.java.syntax.ContinueStatement"
newtype ReturnStatement =
ReturnStatement {
unReturnStatement :: (Maybe Expression)}
deriving (Eq, Ord, Read, Show)
_ReturnStatement = Core.Name "hydra.java.syntax.ReturnStatement"
newtype ThrowStatement =
ThrowStatement {
unThrowStatement :: Expression}
deriving (Eq, Ord, Read, Show)
_ThrowStatement = Core.Name "hydra.java.syntax.ThrowStatement"
data SynchronizedStatement =
SynchronizedStatement {
synchronizedStatementExpression :: Expression,
synchronizedStatementBlock :: Block}
deriving (Eq, Ord, Read, Show)
_SynchronizedStatement = Core.Name "hydra.java.syntax.SynchronizedStatement"
_SynchronizedStatement_expression = Core.Name "expression"
_SynchronizedStatement_block = Core.Name "block"
data TryStatement =
TryStatementSimple TryStatement_Simple |
TryStatementWithFinally TryStatement_WithFinally |
TryStatementWithResources TryWithResourcesStatement
deriving (Eq, Ord, Read, Show)
_TryStatement = Core.Name "hydra.java.syntax.TryStatement"
_TryStatement_simple = Core.Name "simple"
_TryStatement_withFinally = Core.Name "withFinally"
_TryStatement_withResources = Core.Name "withResources"
data TryStatement_Simple =
TryStatement_Simple {
tryStatement_SimpleBlock :: Block,
tryStatement_SimpleCatches :: Catches}
deriving (Eq, Ord, Read, Show)
_TryStatement_Simple = Core.Name "hydra.java.syntax.TryStatement_Simple"
_TryStatement_Simple_block = Core.Name "block"
_TryStatement_Simple_catches = Core.Name "catches"
data TryStatement_WithFinally =
TryStatement_WithFinally {
tryStatement_WithFinallyBlock :: Block,
tryStatement_WithFinallyCatches :: (Maybe Catches),
tryStatement_WithFinallyFinally :: Finally}
deriving (Eq, Ord, Read, Show)
_TryStatement_WithFinally = Core.Name "hydra.java.syntax.TryStatement_WithFinally"
_TryStatement_WithFinally_block = Core.Name "block"
_TryStatement_WithFinally_catches = Core.Name "catches"
_TryStatement_WithFinally_finally = Core.Name "finally"
newtype Catches =
Catches {
unCatches :: [CatchClause]}
deriving (Eq, Ord, Read, Show)
_Catches = Core.Name "hydra.java.syntax.Catches"
data CatchClause =
CatchClause {
catchClauseParameter :: (Maybe CatchFormalParameter),
catchClauseBlock :: Block}
deriving (Eq, Ord, Read, Show)
_CatchClause = Core.Name "hydra.java.syntax.CatchClause"
_CatchClause_parameter = Core.Name "parameter"
_CatchClause_block = Core.Name "block"
data CatchFormalParameter =
CatchFormalParameter {
catchFormalParameterModifiers :: [VariableModifier],
catchFormalParameterType :: CatchType,
catchFormalParameterId :: VariableDeclaratorId}
deriving (Eq, Ord, Read, Show)
_CatchFormalParameter = Core.Name "hydra.java.syntax.CatchFormalParameter"
_CatchFormalParameter_modifiers = Core.Name "modifiers"
_CatchFormalParameter_type = Core.Name "type"
_CatchFormalParameter_id = Core.Name "id"
data CatchType =
CatchType {
catchTypeType :: UnannClassType,
catchTypeTypes :: [ClassType]}
deriving (Eq, Ord, Read, Show)
_CatchType = Core.Name "hydra.java.syntax.CatchType"
_CatchType_type = Core.Name "type"
_CatchType_types = Core.Name "types"
newtype Finally =
Finally {
unFinally :: Block}
deriving (Eq, Ord, Read, Show)
_Finally = Core.Name "hydra.java.syntax.Finally"
data TryWithResourcesStatement =
TryWithResourcesStatement {
tryWithResourcesStatementResourceSpecification :: ResourceSpecification,
tryWithResourcesStatementBlock :: Block,
tryWithResourcesStatementCatches :: (Maybe Catches),
tryWithResourcesStatementFinally :: (Maybe Finally)}
deriving (Eq, Ord, Read, Show)
_TryWithResourcesStatement = Core.Name "hydra.java.syntax.TryWithResourcesStatement"
_TryWithResourcesStatement_resourceSpecification = Core.Name "resourceSpecification"
_TryWithResourcesStatement_block = Core.Name "block"
_TryWithResourcesStatement_catches = Core.Name "catches"
_TryWithResourcesStatement_finally = Core.Name "finally"
newtype ResourceSpecification =
ResourceSpecification {
unResourceSpecification :: [Resource]}
deriving (Eq, Ord, Read, Show)
_ResourceSpecification = Core.Name "hydra.java.syntax.ResourceSpecification"
data Resource =
ResourceLocal Resource_Local |
ResourceVariable VariableAccess
deriving (Eq, Ord, Read, Show)
_Resource = Core.Name "hydra.java.syntax.Resource"
_Resource_local = Core.Name "local"
_Resource_variable = Core.Name "variable"
data Resource_Local =
Resource_Local {
resource_LocalModifiers :: [VariableModifier],
resource_LocalType :: LocalVariableType,
resource_LocalIdentifier :: Identifier,
resource_LocalExpression :: Expression}
deriving (Eq, Ord, Read, Show)
_Resource_Local = Core.Name "hydra.java.syntax.Resource_Local"
_Resource_Local_modifiers = Core.Name "modifiers"
_Resource_Local_type = Core.Name "type"
_Resource_Local_identifier = Core.Name "identifier"
_Resource_Local_expression = Core.Name "expression"
data VariableAccess =
VariableAccessExpressionName ExpressionName |
VariableAccessFieldAccess FieldAccess
deriving (Eq, Ord, Read, Show)
_VariableAccess = Core.Name "hydra.java.syntax.VariableAccess"
_VariableAccess_expressionName = Core.Name "expressionName"
_VariableAccess_fieldAccess = Core.Name "fieldAccess"
data Primary =
PrimaryNoNewArray PrimaryNoNewArrayExpression |
PrimaryArrayCreation ArrayCreationExpression
deriving (Eq, Ord, Read, Show)
_Primary = Core.Name "hydra.java.syntax.Primary"
_Primary_noNewArray = Core.Name "noNewArray"
_Primary_arrayCreation = Core.Name "arrayCreation"
data PrimaryNoNewArrayExpression =
PrimaryNoNewArrayExpressionLiteral Literal |
PrimaryNoNewArrayExpressionClassLiteral ClassLiteral |
PrimaryNoNewArrayExpressionThis |
PrimaryNoNewArrayExpressionDotThis TypeName |
PrimaryNoNewArrayExpressionParens Expression |
PrimaryNoNewArrayExpressionClassInstance ClassInstanceCreationExpression |
PrimaryNoNewArrayExpressionFieldAccess FieldAccess |
PrimaryNoNewArrayExpressionArrayAccess ArrayAccess |
PrimaryNoNewArrayExpressionMethodInvocation MethodInvocation |
PrimaryNoNewArrayExpressionMethodReference MethodReference
deriving (Eq, Ord, Read, Show)
_PrimaryNoNewArrayExpression = Core.Name "hydra.java.syntax.PrimaryNoNewArrayExpression"
_PrimaryNoNewArrayExpression_literal = Core.Name "literal"
_PrimaryNoNewArrayExpression_classLiteral = Core.Name "classLiteral"
_PrimaryNoNewArrayExpression_this = Core.Name "this"
_PrimaryNoNewArrayExpression_dotThis = Core.Name "dotThis"
_PrimaryNoNewArrayExpression_parens = Core.Name "parens"
_PrimaryNoNewArrayExpression_classInstance = Core.Name "classInstance"
_PrimaryNoNewArrayExpression_fieldAccess = Core.Name "fieldAccess"
_PrimaryNoNewArrayExpression_arrayAccess = Core.Name "arrayAccess"
_PrimaryNoNewArrayExpression_methodInvocation = Core.Name "methodInvocation"
_PrimaryNoNewArrayExpression_methodReference = Core.Name "methodReference"
data ClassLiteral =
ClassLiteralType TypeNameArray |
ClassLiteralNumericType NumericTypeArray |
ClassLiteralBoolean BooleanArray |
ClassLiteralVoid
deriving (Eq, Ord, Read, Show)
_ClassLiteral = Core.Name "hydra.java.syntax.ClassLiteral"
_ClassLiteral_type = Core.Name "type"
_ClassLiteral_numericType = Core.Name "numericType"
_ClassLiteral_boolean = Core.Name "boolean"
_ClassLiteral_void = Core.Name "void"
data TypeNameArray =
TypeNameArraySimple TypeName |
TypeNameArrayArray TypeNameArray
deriving (Eq, Ord, Read, Show)
_TypeNameArray = Core.Name "hydra.java.syntax.TypeNameArray"
_TypeNameArray_simple = Core.Name "simple"
_TypeNameArray_array = Core.Name "array"
data NumericTypeArray =
NumericTypeArraySimple NumericType |
NumericTypeArrayArray NumericTypeArray
deriving (Eq, Ord, Read, Show)
_NumericTypeArray = Core.Name "hydra.java.syntax.NumericTypeArray"
_NumericTypeArray_simple = Core.Name "simple"
_NumericTypeArray_array = Core.Name "array"
data BooleanArray =
BooleanArraySimple |
BooleanArrayArray BooleanArray
deriving (Eq, Ord, Read, Show)
_BooleanArray = Core.Name "hydra.java.syntax.BooleanArray"
_BooleanArray_simple = Core.Name "simple"
_BooleanArray_array = Core.Name "array"
data ClassInstanceCreationExpression =
ClassInstanceCreationExpression {
classInstanceCreationExpressionQualifier :: (Maybe ClassInstanceCreationExpression_Qualifier),
classInstanceCreationExpressionExpression :: UnqualifiedClassInstanceCreationExpression}
deriving (Eq, Ord, Read, Show)
_ClassInstanceCreationExpression = Core.Name "hydra.java.syntax.ClassInstanceCreationExpression"
_ClassInstanceCreationExpression_qualifier = Core.Name "qualifier"
_ClassInstanceCreationExpression_expression = Core.Name "expression"
data ClassInstanceCreationExpression_Qualifier =
ClassInstanceCreationExpression_QualifierExpression ExpressionName |
ClassInstanceCreationExpression_QualifierPrimary Primary
deriving (Eq, Ord, Read, Show)
_ClassInstanceCreationExpression_Qualifier = Core.Name "hydra.java.syntax.ClassInstanceCreationExpression_Qualifier"
_ClassInstanceCreationExpression_Qualifier_expression = Core.Name "expression"
_ClassInstanceCreationExpression_Qualifier_primary = Core.Name "primary"
data UnqualifiedClassInstanceCreationExpression =
UnqualifiedClassInstanceCreationExpression {
unqualifiedClassInstanceCreationExpressionTypeArguments :: [TypeArgument],
unqualifiedClassInstanceCreationExpressionClassOrInterface :: ClassOrInterfaceTypeToInstantiate,
unqualifiedClassInstanceCreationExpressionArguments :: [Expression],
unqualifiedClassInstanceCreationExpressionBody :: (Maybe ClassBody)}
deriving (Eq, Ord, Read, Show)
_UnqualifiedClassInstanceCreationExpression = Core.Name "hydra.java.syntax.UnqualifiedClassInstanceCreationExpression"
_UnqualifiedClassInstanceCreationExpression_typeArguments = Core.Name "typeArguments"
_UnqualifiedClassInstanceCreationExpression_classOrInterface = Core.Name "classOrInterface"
_UnqualifiedClassInstanceCreationExpression_arguments = Core.Name "arguments"
_UnqualifiedClassInstanceCreationExpression_body = Core.Name "body"
data ClassOrInterfaceTypeToInstantiate =
ClassOrInterfaceTypeToInstantiate {
classOrInterfaceTypeToInstantiateIdentifiers :: [AnnotatedIdentifier],
classOrInterfaceTypeToInstantiateTypeArguments :: (Maybe TypeArgumentsOrDiamond)}
deriving (Eq, Ord, Read, Show)
_ClassOrInterfaceTypeToInstantiate = Core.Name "hydra.java.syntax.ClassOrInterfaceTypeToInstantiate"
_ClassOrInterfaceTypeToInstantiate_identifiers = Core.Name "identifiers"
_ClassOrInterfaceTypeToInstantiate_typeArguments = Core.Name "typeArguments"
data AnnotatedIdentifier =
AnnotatedIdentifier {
annotatedIdentifierAnnotations :: [Annotation],
annotatedIdentifierIdentifier :: Identifier}
deriving (Eq, Ord, Read, Show)
_AnnotatedIdentifier = Core.Name "hydra.java.syntax.AnnotatedIdentifier"
_AnnotatedIdentifier_annotations = Core.Name "annotations"
_AnnotatedIdentifier_identifier = Core.Name "identifier"
data TypeArgumentsOrDiamond =
TypeArgumentsOrDiamondArguments [TypeArgument] |
TypeArgumentsOrDiamondDiamond
deriving (Eq, Ord, Read, Show)
_TypeArgumentsOrDiamond = Core.Name "hydra.java.syntax.TypeArgumentsOrDiamond"
_TypeArgumentsOrDiamond_arguments = Core.Name "arguments"
_TypeArgumentsOrDiamond_diamond = Core.Name "diamond"
data FieldAccess =
FieldAccess {
fieldAccessQualifier :: FieldAccess_Qualifier,
fieldAccessIdentifier :: Identifier}
deriving (Eq, Ord, Read, Show)
_FieldAccess = Core.Name "hydra.java.syntax.FieldAccess"
_FieldAccess_qualifier = Core.Name "qualifier"
_FieldAccess_identifier = Core.Name "identifier"
data FieldAccess_Qualifier =
FieldAccess_QualifierPrimary Primary |
FieldAccess_QualifierSuper |
FieldAccess_QualifierTyped TypeName
deriving (Eq, Ord, Read, Show)
_FieldAccess_Qualifier = Core.Name "hydra.java.syntax.FieldAccess_Qualifier"
_FieldAccess_Qualifier_primary = Core.Name "primary"
_FieldAccess_Qualifier_super = Core.Name "super"
_FieldAccess_Qualifier_typed = Core.Name "typed"
data ArrayAccess =
ArrayAccess {
arrayAccessExpression :: (Maybe Expression),
arrayAccessVariant :: ArrayAccess_Variant}
deriving (Eq, Ord, Read, Show)
_ArrayAccess = Core.Name "hydra.java.syntax.ArrayAccess"
_ArrayAccess_expression = Core.Name "expression"
_ArrayAccess_variant = Core.Name "variant"
data ArrayAccess_Variant =
ArrayAccess_VariantName ExpressionName |
ArrayAccess_VariantPrimary PrimaryNoNewArrayExpression |
ArrayAccess_VariantArrayCreationWithInitializer ArrayCreationExpressionWithInitializer
deriving (Eq, Ord, Read, Show)
_ArrayAccess_Variant = Core.Name "hydra.java.syntax.ArrayAccess_Variant"
_ArrayAccess_Variant_name = Core.Name "name"
_ArrayAccess_Variant_primary = Core.Name "primary"
_ArrayAccess_Variant_arrayCreationWithInitializer = Core.Name "arrayCreationWithInitializer"
data MethodInvocation =
MethodInvocation {
methodInvocationHeader :: MethodInvocation_Header,
methodInvocationArguments :: [Expression]}
deriving (Eq, Ord, Read, Show)
_MethodInvocation = Core.Name "hydra.java.syntax.MethodInvocation"
_MethodInvocation_header = Core.Name "header"
_MethodInvocation_arguments = Core.Name "arguments"
data MethodInvocation_Header =
MethodInvocation_HeaderSimple MethodName |
MethodInvocation_HeaderComplex MethodInvocation_Complex
deriving (Eq, Ord, Read, Show)
_MethodInvocation_Header = Core.Name "hydra.java.syntax.MethodInvocation_Header"
_MethodInvocation_Header_simple = Core.Name "simple"
_MethodInvocation_Header_complex = Core.Name "complex"
data MethodInvocation_Complex =
MethodInvocation_Complex {
methodInvocation_ComplexVariant :: MethodInvocation_Variant,
methodInvocation_ComplexTypeArguments :: [TypeArgument],
methodInvocation_ComplexIdentifier :: Identifier}
deriving (Eq, Ord, Read, Show)
_MethodInvocation_Complex = Core.Name "hydra.java.syntax.MethodInvocation_Complex"
_MethodInvocation_Complex_variant = Core.Name "variant"
_MethodInvocation_Complex_typeArguments = Core.Name "typeArguments"
_MethodInvocation_Complex_identifier = Core.Name "identifier"
data MethodInvocation_Variant =
MethodInvocation_VariantType TypeName |
MethodInvocation_VariantExpression ExpressionName |
MethodInvocation_VariantPrimary Primary |
MethodInvocation_VariantSuper |
MethodInvocation_VariantTypeSuper TypeName
deriving (Eq, Ord, Read, Show)
_MethodInvocation_Variant = Core.Name "hydra.java.syntax.MethodInvocation_Variant"
_MethodInvocation_Variant_type = Core.Name "type"
_MethodInvocation_Variant_expression = Core.Name "expression"
_MethodInvocation_Variant_primary = Core.Name "primary"
_MethodInvocation_Variant_super = Core.Name "super"
_MethodInvocation_Variant_typeSuper = Core.Name "typeSuper"
data MethodReference =
MethodReferenceExpression MethodReference_Expression |
MethodReferencePrimary MethodReference_Primary |
MethodReferenceReferenceType MethodReference_ReferenceType |
MethodReferenceSuper MethodReference_Super |
MethodReferenceNew MethodReference_New |
MethodReferenceArray MethodReference_Array
deriving (Eq, Ord, Read, Show)
_MethodReference = Core.Name "hydra.java.syntax.MethodReference"
_MethodReference_expression = Core.Name "expression"
_MethodReference_primary = Core.Name "primary"
_MethodReference_referenceType = Core.Name "referenceType"
_MethodReference_super = Core.Name "super"
_MethodReference_new = Core.Name "new"
_MethodReference_array = Core.Name "array"
data MethodReference_Expression =
MethodReference_Expression {
methodReference_ExpressionName :: ExpressionName,
methodReference_ExpressionTypeArguments :: [TypeArgument],
methodReference_ExpressionIdentifier :: Identifier}
deriving (Eq, Ord, Read, Show)
_MethodReference_Expression = Core.Name "hydra.java.syntax.MethodReference_Expression"
_MethodReference_Expression_name = Core.Name "name"
_MethodReference_Expression_typeArguments = Core.Name "typeArguments"
_MethodReference_Expression_identifier = Core.Name "identifier"
data MethodReference_Primary =
MethodReference_Primary {
methodReference_PrimaryPrimary :: Primary,
methodReference_PrimaryTypeArguments :: [TypeArgument],
methodReference_PrimaryIdentifier :: Identifier}
deriving (Eq, Ord, Read, Show)
_MethodReference_Primary = Core.Name "hydra.java.syntax.MethodReference_Primary"
_MethodReference_Primary_primary = Core.Name "primary"
_MethodReference_Primary_typeArguments = Core.Name "typeArguments"
_MethodReference_Primary_identifier = Core.Name "identifier"
data MethodReference_ReferenceType =
MethodReference_ReferenceType {
methodReference_ReferenceTypeReferenceType :: ReferenceType,
methodReference_ReferenceTypeTypeArguments :: [TypeArgument],
methodReference_ReferenceTypeIdentifier :: Identifier}
deriving (Eq, Ord, Read, Show)
_MethodReference_ReferenceType = Core.Name "hydra.java.syntax.MethodReference_ReferenceType"
_MethodReference_ReferenceType_referenceType = Core.Name "referenceType"
_MethodReference_ReferenceType_typeArguments = Core.Name "typeArguments"
_MethodReference_ReferenceType_identifier = Core.Name "identifier"
data MethodReference_Super =
MethodReference_Super {
methodReference_SuperTypeArguments :: [TypeArgument],
methodReference_SuperIdentifier :: Identifier,
methodReference_SuperSuper :: Bool}
deriving (Eq, Ord, Read, Show)
_MethodReference_Super = Core.Name "hydra.java.syntax.MethodReference_Super"
_MethodReference_Super_typeArguments = Core.Name "typeArguments"
_MethodReference_Super_identifier = Core.Name "identifier"
_MethodReference_Super_super = Core.Name "super"
data MethodReference_New =
MethodReference_New {
methodReference_NewClassType :: ClassType,
methodReference_NewTypeArguments :: [TypeArgument]}
deriving (Eq, Ord, Read, Show)
_MethodReference_New = Core.Name "hydra.java.syntax.MethodReference_New"
_MethodReference_New_classType = Core.Name "classType"
_MethodReference_New_typeArguments = Core.Name "typeArguments"
newtype MethodReference_Array =
MethodReference_Array {
unMethodReference_Array :: ArrayType}
deriving (Eq, Ord, Read, Show)
_MethodReference_Array = Core.Name "hydra.java.syntax.MethodReference_Array"
data ArrayCreationExpression =
ArrayCreationExpressionWithoutInitializer_ ArrayCreationExpressionWithoutInitializer |
ArrayCreationExpressionWithInitializer_ ArrayCreationExpressionWithInitializer
deriving (Eq, Ord, Read, Show)
_ArrayCreationExpression = Core.Name "hydra.java.syntax.ArrayCreationExpression"
_ArrayCreationExpression_withoutInitializer = Core.Name "withoutInitializer"
_ArrayCreationExpression_withInitializer = Core.Name "withInitializer"
data ArrayCreationExpressionWithoutInitializer =
ArrayCreationExpressionWithoutInitializerPrimitive ArrayCreationExpressionWithoutInitializer_Primitive |
ArrayCreationExpressionWithoutInitializerClassOrInterface ArrayCreationExpressionWithoutInitializer_ClassOrInterface
deriving (Eq, Ord, Read, Show)
_ArrayCreationExpressionWithoutInitializer = Core.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer"
_ArrayCreationExpressionWithoutInitializer_primitive = Core.Name "primitive"
_ArrayCreationExpressionWithoutInitializer_classOrInterface = Core.Name "classOrInterface"
data ArrayCreationExpressionWithoutInitializer_Primitive =
ArrayCreationExpressionWithoutInitializer_Primitive {
arrayCreationExpressionWithoutInitializer_PrimitiveType :: PrimitiveTypeWithAnnotations,
arrayCreationExpressionWithoutInitializer_PrimitiveDimExprs :: [DimExpr],
arrayCreationExpressionWithoutInitializer_PrimitiveDims :: (Maybe Dims)}
deriving (Eq, Ord, Read, Show)
_ArrayCreationExpressionWithoutInitializer_Primitive =
Core.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_Primitive"
_ArrayCreationExpressionWithoutInitializer_Primitive_type = Core.Name "type"
_ArrayCreationExpressionWithoutInitializer_Primitive_dimExprs = Core.Name "dimExprs"
_ArrayCreationExpressionWithoutInitializer_Primitive_dims = Core.Name "dims"
data ArrayCreationExpressionWithoutInitializer_ClassOrInterface =
ArrayCreationExpressionWithoutInitializer_ClassOrInterface {
arrayCreationExpressionWithoutInitializer_ClassOrInterfaceType :: ClassOrInterfaceType,
arrayCreationExpressionWithoutInitializer_ClassOrInterfaceDimExprs :: [DimExpr],
arrayCreationExpressionWithoutInitializer_ClassOrInterfaceDims :: (Maybe Dims)}
deriving (Eq, Ord, Read, Show)
_ArrayCreationExpressionWithoutInitializer_ClassOrInterface =
Core.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface"
_ArrayCreationExpressionWithoutInitializer_ClassOrInterface_type = Core.Name "type"
_ArrayCreationExpressionWithoutInitializer_ClassOrInterface_dimExprs = Core.Name "dimExprs"
_ArrayCreationExpressionWithoutInitializer_ClassOrInterface_dims = Core.Name "dims"
data ArrayCreationExpressionWithInitializer =
ArrayCreationExpressionWithInitializerPrimitive ArrayCreationExpressionWithInitializer_Primitive |
ArrayCreationExpressionWithInitializerClassOrInterface ArrayCreationExpressionWithInitializer_ClassOrInterface
deriving (Eq, Ord, Read, Show)
_ArrayCreationExpressionWithInitializer = Core.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer"
_ArrayCreationExpressionWithInitializer_primitive = Core.Name "primitive"
_ArrayCreationExpressionWithInitializer_classOrInterface = Core.Name "classOrInterface"
data ArrayCreationExpressionWithInitializer_Primitive =
ArrayCreationExpressionWithInitializer_Primitive {
arrayCreationExpressionWithInitializer_PrimitiveType :: PrimitiveTypeWithAnnotations,
arrayCreationExpressionWithInitializer_PrimitiveDims :: [Dims],
arrayCreationExpressionWithInitializer_PrimitiveArray :: ArrayInitializer}
deriving (Eq, Ord, Read, Show)
_ArrayCreationExpressionWithInitializer_Primitive =
Core.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer_Primitive"
_ArrayCreationExpressionWithInitializer_Primitive_type = Core.Name "type"
_ArrayCreationExpressionWithInitializer_Primitive_dims = Core.Name "dims"
_ArrayCreationExpressionWithInitializer_Primitive_array = Core.Name "array"
data ArrayCreationExpressionWithInitializer_ClassOrInterface =
ArrayCreationExpressionWithInitializer_ClassOrInterface {
arrayCreationExpressionWithInitializer_ClassOrInterfaceType :: ClassOrInterfaceType,
arrayCreationExpressionWithInitializer_ClassOrInterfaceDims :: [Dims],
arrayCreationExpressionWithInitializer_ClassOrInterfaceArray :: ArrayInitializer}
deriving (Eq, Ord, Read, Show)
_ArrayCreationExpressionWithInitializer_ClassOrInterface =
Core.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface"
_ArrayCreationExpressionWithInitializer_ClassOrInterface_type = Core.Name "type"
_ArrayCreationExpressionWithInitializer_ClassOrInterface_dims = Core.Name "dims"
_ArrayCreationExpressionWithInitializer_ClassOrInterface_array = Core.Name "array"
data DimExpr =
DimExpr {
dimExprAnnotations :: [Annotation],
dimExprExpression :: (Maybe Expression)}
deriving (Eq, Ord, Read, Show)
_DimExpr = Core.Name "hydra.java.syntax.DimExpr"
_DimExpr_annotations = Core.Name "annotations"
_DimExpr_expression = Core.Name "expression"
data Expression =
ExpressionLambda LambdaExpression |
ExpressionAssignment AssignmentExpression
deriving (Eq, Ord, Read, Show)
_Expression = Core.Name "hydra.java.syntax.Expression"
_Expression_lambda = Core.Name "lambda"
_Expression_assignment = Core.Name "assignment"
data LambdaExpression =
LambdaExpression {
lambdaExpressionParameters :: LambdaParameters,
lambdaExpressionBody :: LambdaBody}
deriving (Eq, Ord, Read, Show)
_LambdaExpression = Core.Name "hydra.java.syntax.LambdaExpression"
_LambdaExpression_parameters = Core.Name "parameters"
_LambdaExpression_body = Core.Name "body"
data LambdaParameters =
LambdaParametersTuple [LambdaParameters] |
LambdaParametersSingle Identifier
deriving (Eq, Ord, Read, Show)
_LambdaParameters = Core.Name "hydra.java.syntax.LambdaParameters"
_LambdaParameters_tuple = Core.Name "tuple"
_LambdaParameters_single = Core.Name "single"
data LambdaParameter =
LambdaParameterNormal LambdaParameter_Normal |
LambdaParameterVariableArity VariableArityParameter
deriving (Eq, Ord, Read, Show)
_LambdaParameter = Core.Name "hydra.java.syntax.LambdaParameter"
_LambdaParameter_normal = Core.Name "normal"
_LambdaParameter_variableArity = Core.Name "variableArity"
data LambdaParameter_Normal =
LambdaParameter_Normal {
lambdaParameter_NormalModifiers :: [VariableModifier],
lambdaParameter_NormalType :: LambdaParameterType,
lambdaParameter_NormalId :: VariableDeclaratorId}
deriving (Eq, Ord, Read, Show)
_LambdaParameter_Normal = Core.Name "hydra.java.syntax.LambdaParameter_Normal"
_LambdaParameter_Normal_modifiers = Core.Name "modifiers"
_LambdaParameter_Normal_type = Core.Name "type"
_LambdaParameter_Normal_id = Core.Name "id"
data LambdaParameterType =
LambdaParameterTypeType UnannType |
LambdaParameterTypeVar
deriving (Eq, Ord, Read, Show)
_LambdaParameterType = Core.Name "hydra.java.syntax.LambdaParameterType"
_LambdaParameterType_type = Core.Name "type"
_LambdaParameterType_var = Core.Name "var"
data LambdaBody =
LambdaBodyExpression Expression |
LambdaBodyBlock Block
deriving (Eq, Ord, Read, Show)
_LambdaBody = Core.Name "hydra.java.syntax.LambdaBody"
_LambdaBody_expression = Core.Name "expression"
_LambdaBody_block = Core.Name "block"
data AssignmentExpression =
AssignmentExpressionConditional ConditionalExpression |
AssignmentExpressionAssignment Assignment
deriving (Eq, Ord, Read, Show)
_AssignmentExpression = Core.Name "hydra.java.syntax.AssignmentExpression"
_AssignmentExpression_conditional = Core.Name "conditional"
_AssignmentExpression_assignment = Core.Name "assignment"
data Assignment =
Assignment {
assignmentLhs :: LeftHandSide,
assignmentOp :: AssignmentOperator,
assignmentExpression :: Expression}
deriving (Eq, Ord, Read, Show)
_Assignment = Core.Name "hydra.java.syntax.Assignment"
_Assignment_lhs = Core.Name "lhs"
_Assignment_op = Core.Name "op"
_Assignment_expression = Core.Name "expression"
data LeftHandSide =
LeftHandSideExpressionName ExpressionName |
LeftHandSideFieldAccess FieldAccess |
LeftHandSideArrayAccess ArrayAccess
deriving (Eq, Ord, Read, Show)
_LeftHandSide = Core.Name "hydra.java.syntax.LeftHandSide"
_LeftHandSide_expressionName = Core.Name "expressionName"
_LeftHandSide_fieldAccess = Core.Name "fieldAccess"
_LeftHandSide_arrayAccess = Core.Name "arrayAccess"
data AssignmentOperator =
AssignmentOperatorSimple |
AssignmentOperatorTimes |
AssignmentOperatorDiv |
AssignmentOperatorMod |
AssignmentOperatorPlus |
AssignmentOperatorMinus |
AssignmentOperatorShiftLeft |
AssignmentOperatorShiftRight |
AssignmentOperatorShiftRightZeroFill |
AssignmentOperatorAnd |
AssignmentOperatorXor |
AssignmentOperatorOr
deriving (Eq, Ord, Read, Show)
_AssignmentOperator = Core.Name "hydra.java.syntax.AssignmentOperator"
_AssignmentOperator_simple = Core.Name "simple"
_AssignmentOperator_times = Core.Name "times"
_AssignmentOperator_div = Core.Name "div"
_AssignmentOperator_mod = Core.Name "mod"
_AssignmentOperator_plus = Core.Name "plus"
_AssignmentOperator_minus = Core.Name "minus"
_AssignmentOperator_shiftLeft = Core.Name "shiftLeft"
_AssignmentOperator_shiftRight = Core.Name "shiftRight"
_AssignmentOperator_shiftRightZeroFill = Core.Name "shiftRightZeroFill"
_AssignmentOperator_and = Core.Name "and"
_AssignmentOperator_xor = Core.Name "xor"
_AssignmentOperator_or = Core.Name "or"
data ConditionalExpression =
ConditionalExpressionSimple ConditionalOrExpression |
ConditionalExpressionTernaryCond ConditionalExpression_TernaryCond |
ConditionalExpressionTernaryLambda ConditionalExpression_TernaryLambda
deriving (Eq, Ord, Read, Show)
_ConditionalExpression = Core.Name "hydra.java.syntax.ConditionalExpression"
_ConditionalExpression_simple = Core.Name "simple"
_ConditionalExpression_ternaryCond = Core.Name "ternaryCond"
_ConditionalExpression_ternaryLambda = Core.Name "ternaryLambda"
data ConditionalExpression_TernaryCond =
ConditionalExpression_TernaryCond {
conditionalExpression_TernaryCondCond :: ConditionalOrExpression,
conditionalExpression_TernaryCondIfTrue :: Expression,
conditionalExpression_TernaryCondIfFalse :: ConditionalExpression}
deriving (Eq, Ord, Read, Show)
_ConditionalExpression_TernaryCond = Core.Name "hydra.java.syntax.ConditionalExpression_TernaryCond"
_ConditionalExpression_TernaryCond_cond = Core.Name "cond"
_ConditionalExpression_TernaryCond_ifTrue = Core.Name "ifTrue"
_ConditionalExpression_TernaryCond_ifFalse = Core.Name "ifFalse"
data ConditionalExpression_TernaryLambda =
ConditionalExpression_TernaryLambda {
conditionalExpression_TernaryLambdaCond :: ConditionalOrExpression,
conditionalExpression_TernaryLambdaIfTrue :: Expression,
conditionalExpression_TernaryLambdaIfFalse :: LambdaExpression}
deriving (Eq, Ord, Read, Show)
_ConditionalExpression_TernaryLambda = Core.Name "hydra.java.syntax.ConditionalExpression_TernaryLambda"
_ConditionalExpression_TernaryLambda_cond = Core.Name "cond"
_ConditionalExpression_TernaryLambda_ifTrue = Core.Name "ifTrue"
_ConditionalExpression_TernaryLambda_ifFalse = Core.Name "ifFalse"
newtype ConditionalOrExpression =
ConditionalOrExpression {
unConditionalOrExpression :: [ConditionalAndExpression]}
deriving (Eq, Ord, Read, Show)
_ConditionalOrExpression = Core.Name "hydra.java.syntax.ConditionalOrExpression"
newtype ConditionalAndExpression =
ConditionalAndExpression {
unConditionalAndExpression :: [InclusiveOrExpression]}
deriving (Eq, Ord, Read, Show)
_ConditionalAndExpression = Core.Name "hydra.java.syntax.ConditionalAndExpression"
newtype InclusiveOrExpression =
InclusiveOrExpression {
unInclusiveOrExpression :: [ExclusiveOrExpression]}
deriving (Eq, Ord, Read, Show)
_InclusiveOrExpression = Core.Name "hydra.java.syntax.InclusiveOrExpression"
newtype ExclusiveOrExpression =
ExclusiveOrExpression {
unExclusiveOrExpression :: [AndExpression]}
deriving (Eq, Ord, Read, Show)
_ExclusiveOrExpression = Core.Name "hydra.java.syntax.ExclusiveOrExpression"
newtype AndExpression =
AndExpression {
unAndExpression :: [EqualityExpression]}
deriving (Eq, Ord, Read, Show)
_AndExpression = Core.Name "hydra.java.syntax.AndExpression"
data EqualityExpression =
EqualityExpressionUnary RelationalExpression |
EqualityExpressionEqual EqualityExpression_Binary |
EqualityExpressionNotEqual EqualityExpression_Binary
deriving (Eq, Ord, Read, Show)
_EqualityExpression = Core.Name "hydra.java.syntax.EqualityExpression"
_EqualityExpression_unary = Core.Name "unary"
_EqualityExpression_equal = Core.Name "equal"
_EqualityExpression_notEqual = Core.Name "notEqual"
data EqualityExpression_Binary =
EqualityExpression_Binary {
equalityExpression_BinaryLhs :: EqualityExpression,
equalityExpression_BinaryRhs :: RelationalExpression}
deriving (Eq, Ord, Read, Show)
_EqualityExpression_Binary = Core.Name "hydra.java.syntax.EqualityExpression_Binary"
_EqualityExpression_Binary_lhs = Core.Name "lhs"
_EqualityExpression_Binary_rhs = Core.Name "rhs"
data RelationalExpression =
RelationalExpressionSimple ShiftExpression |
RelationalExpressionLessThan RelationalExpression_LessThan |
RelationalExpressionGreaterThan RelationalExpression_GreaterThan |
RelationalExpressionLessThanEqual RelationalExpression_LessThanEqual |
RelationalExpressionGreaterThanEqual RelationalExpression_GreaterThanEqual |
RelationalExpressionInstanceofExpression InstanceofExpression
deriving (Eq, Ord, Read, Show)
_RelationalExpression = Core.Name "hydra.java.syntax.RelationalExpression"
_RelationalExpression_simple = Core.Name "simple"
_RelationalExpression_lessThan = Core.Name "lessThan"
_RelationalExpression_greaterThan = Core.Name "greaterThan"
_RelationalExpression_lessThanEqual = Core.Name "lessThanEqual"
_RelationalExpression_greaterThanEqual = Core.Name "greaterThanEqual"
_RelationalExpression_instanceofExpression = Core.Name "instanceofExpression"
data RelationalExpression_LessThan =
RelationalExpression_LessThan {
relationalExpression_LessThanLhs :: RelationalExpression,
relationalExpression_LessThanRhs :: ShiftExpression}
deriving (Eq, Ord, Read, Show)
_RelationalExpression_LessThan = Core.Name "hydra.java.syntax.RelationalExpression_LessThan"
_RelationalExpression_LessThan_lhs = Core.Name "lhs"
_RelationalExpression_LessThan_rhs = Core.Name "rhs"
data RelationalExpression_GreaterThan =
RelationalExpression_GreaterThan {
relationalExpression_GreaterThanLhs :: RelationalExpression,
relationalExpression_GreaterThanRhs :: ShiftExpression}
deriving (Eq, Ord, Read, Show)
_RelationalExpression_GreaterThan = Core.Name "hydra.java.syntax.RelationalExpression_GreaterThan"
_RelationalExpression_GreaterThan_lhs = Core.Name "lhs"
_RelationalExpression_GreaterThan_rhs = Core.Name "rhs"
data RelationalExpression_LessThanEqual =
RelationalExpression_LessThanEqual {
relationalExpression_LessThanEqualLhs :: RelationalExpression,
relationalExpression_LessThanEqualRhs :: ShiftExpression}
deriving (Eq, Ord, Read, Show)
_RelationalExpression_LessThanEqual = Core.Name "hydra.java.syntax.RelationalExpression_LessThanEqual"
_RelationalExpression_LessThanEqual_lhs = Core.Name "lhs"
_RelationalExpression_LessThanEqual_rhs = Core.Name "rhs"
data RelationalExpression_GreaterThanEqual =
RelationalExpression_GreaterThanEqual {
relationalExpression_GreaterThanEqualLhs :: RelationalExpression,
relationalExpression_GreaterThanEqualRhs :: ShiftExpression}
deriving (Eq, Ord, Read, Show)
_RelationalExpression_GreaterThanEqual = Core.Name "hydra.java.syntax.RelationalExpression_GreaterThanEqual"
_RelationalExpression_GreaterThanEqual_lhs = Core.Name "lhs"
_RelationalExpression_GreaterThanEqual_rhs = Core.Name "rhs"
data InstanceofExpression =
InstanceofExpression {
instanceofExpressionLhs :: RelationalExpression,
instanceofExpressionRhs :: InstanceofExpression_Rhs}
deriving (Eq, Ord, Read, Show)
_InstanceofExpression = Core.Name "hydra.java.syntax.InstanceofExpression"
_InstanceofExpression_lhs = Core.Name "lhs"
_InstanceofExpression_rhs = Core.Name "rhs"
data InstanceofExpression_Rhs =
InstanceofExpression_RhsReferenceType ReferenceType |
InstanceofExpression_RhsPattern Pattern
deriving (Eq, Ord, Read, Show)
_InstanceofExpression_Rhs = Core.Name "hydra.java.syntax.InstanceofExpression_Rhs"
_InstanceofExpression_Rhs_referenceType = Core.Name "referenceType"
_InstanceofExpression_Rhs_pattern = Core.Name "pattern"
data ShiftExpression =
ShiftExpressionUnary AdditiveExpression |
ShiftExpressionShiftLeft ShiftExpression_Binary |
ShiftExpressionShiftRight ShiftExpression_Binary |
ShiftExpressionShiftRightZeroFill ShiftExpression_Binary
deriving (Eq, Ord, Read, Show)
_ShiftExpression = Core.Name "hydra.java.syntax.ShiftExpression"
_ShiftExpression_unary = Core.Name "unary"
_ShiftExpression_shiftLeft = Core.Name "shiftLeft"
_ShiftExpression_shiftRight = Core.Name "shiftRight"
_ShiftExpression_shiftRightZeroFill = Core.Name "shiftRightZeroFill"
data ShiftExpression_Binary =
ShiftExpression_Binary {
shiftExpression_BinaryLhs :: ShiftExpression,
shiftExpression_BinaryRhs :: AdditiveExpression}
deriving (Eq, Ord, Read, Show)
_ShiftExpression_Binary = Core.Name "hydra.java.syntax.ShiftExpression_Binary"
_ShiftExpression_Binary_lhs = Core.Name "lhs"
_ShiftExpression_Binary_rhs = Core.Name "rhs"
data AdditiveExpression =
AdditiveExpressionUnary MultiplicativeExpression |
AdditiveExpressionPlus AdditiveExpression_Binary |
AdditiveExpressionMinus AdditiveExpression_Binary
deriving (Eq, Ord, Read, Show)
_AdditiveExpression = Core.Name "hydra.java.syntax.AdditiveExpression"
_AdditiveExpression_unary = Core.Name "unary"
_AdditiveExpression_plus = Core.Name "plus"
_AdditiveExpression_minus = Core.Name "minus"
data AdditiveExpression_Binary =
AdditiveExpression_Binary {
additiveExpression_BinaryLhs :: AdditiveExpression,
additiveExpression_BinaryRhs :: MultiplicativeExpression}
deriving (Eq, Ord, Read, Show)
_AdditiveExpression_Binary = Core.Name "hydra.java.syntax.AdditiveExpression_Binary"
_AdditiveExpression_Binary_lhs = Core.Name "lhs"
_AdditiveExpression_Binary_rhs = Core.Name "rhs"
data MultiplicativeExpression =
MultiplicativeExpressionUnary UnaryExpression |
MultiplicativeExpressionTimes MultiplicativeExpression_Binary |
MultiplicativeExpressionDivide MultiplicativeExpression_Binary |
MultiplicativeExpressionMod MultiplicativeExpression_Binary
deriving (Eq, Ord, Read, Show)
_MultiplicativeExpression = Core.Name "hydra.java.syntax.MultiplicativeExpression"
_MultiplicativeExpression_unary = Core.Name "unary"
_MultiplicativeExpression_times = Core.Name "times"
_MultiplicativeExpression_divide = Core.Name "divide"
_MultiplicativeExpression_mod = Core.Name "mod"
data MultiplicativeExpression_Binary =
MultiplicativeExpression_Binary {
multiplicativeExpression_BinaryLhs :: MultiplicativeExpression,
multiplicativeExpression_BinaryRhs :: UnaryExpression}
deriving (Eq, Ord, Read, Show)
_MultiplicativeExpression_Binary = Core.Name "hydra.java.syntax.MultiplicativeExpression_Binary"
_MultiplicativeExpression_Binary_lhs = Core.Name "lhs"
_MultiplicativeExpression_Binary_rhs = Core.Name "rhs"
data UnaryExpression =
UnaryExpressionPreIncrement PreIncrementExpression |
UnaryExpressionPreDecrement PreDecrementExpression |
UnaryExpressionPlus UnaryExpression |
UnaryExpressionMinus UnaryExpression |
UnaryExpressionOther UnaryExpressionNotPlusMinus
deriving (Eq, Ord, Read, Show)
_UnaryExpression = Core.Name "hydra.java.syntax.UnaryExpression"
_UnaryExpression_preIncrement = Core.Name "preIncrement"
_UnaryExpression_preDecrement = Core.Name "preDecrement"
_UnaryExpression_plus = Core.Name "plus"
_UnaryExpression_minus = Core.Name "minus"
_UnaryExpression_other = Core.Name "other"
newtype PreIncrementExpression =
PreIncrementExpression {
unPreIncrementExpression :: UnaryExpression}
deriving (Eq, Ord, Read, Show)
_PreIncrementExpression = Core.Name "hydra.java.syntax.PreIncrementExpression"
newtype PreDecrementExpression =
PreDecrementExpression {
unPreDecrementExpression :: UnaryExpression}
deriving (Eq, Ord, Read, Show)
_PreDecrementExpression = Core.Name "hydra.java.syntax.PreDecrementExpression"
data UnaryExpressionNotPlusMinus =
UnaryExpressionNotPlusMinusPostfix PostfixExpression |
UnaryExpressionNotPlusMinusTilde UnaryExpression |
UnaryExpressionNotPlusMinusNot UnaryExpression |
UnaryExpressionNotPlusMinusCast CastExpression |
UnaryExpressionNotPlusMinusSwitchExpression SwitchExpression
deriving (Eq, Ord, Read, Show)
_UnaryExpressionNotPlusMinus = Core.Name "hydra.java.syntax.UnaryExpressionNotPlusMinus"
_UnaryExpressionNotPlusMinus_postfix = Core.Name "postfix"
_UnaryExpressionNotPlusMinus_tilde = Core.Name "tilde"
_UnaryExpressionNotPlusMinus_not = Core.Name "not"
_UnaryExpressionNotPlusMinus_cast = Core.Name "cast"
_UnaryExpressionNotPlusMinus_switchExpression = Core.Name "switchExpression"
data PostfixExpression =
PostfixExpressionPrimary Primary |
PostfixExpressionName ExpressionName |
PostfixExpressionPostIncrement PostIncrementExpression |
PostfixExpressionPostDecrement PostDecrementExpression
deriving (Eq, Ord, Read, Show)
_PostfixExpression = Core.Name "hydra.java.syntax.PostfixExpression"
_PostfixExpression_primary = Core.Name "primary"
_PostfixExpression_name = Core.Name "name"
_PostfixExpression_postIncrement = Core.Name "postIncrement"
_PostfixExpression_postDecrement = Core.Name "postDecrement"
newtype PostIncrementExpression =
PostIncrementExpression {
unPostIncrementExpression :: PostfixExpression}
deriving (Eq, Ord, Read, Show)
_PostIncrementExpression = Core.Name "hydra.java.syntax.PostIncrementExpression"
newtype PostDecrementExpression =
PostDecrementExpression {
unPostDecrementExpression :: PostfixExpression}
deriving (Eq, Ord, Read, Show)
_PostDecrementExpression = Core.Name "hydra.java.syntax.PostDecrementExpression"
data CastExpression =
CastExpressionPrimitive CastExpression_Primitive |
CastExpressionNotPlusMinus CastExpression_NotPlusMinus |
CastExpressionLambda CastExpression_Lambda
deriving (Eq, Ord, Read, Show)
_CastExpression = Core.Name "hydra.java.syntax.CastExpression"
_CastExpression_primitive = Core.Name "primitive"
_CastExpression_notPlusMinus = Core.Name "notPlusMinus"
_CastExpression_lambda = Core.Name "lambda"
data CastExpression_Primitive =
CastExpression_Primitive {
castExpression_PrimitiveType :: PrimitiveTypeWithAnnotations,
castExpression_PrimitiveExpression :: UnaryExpression}
deriving (Eq, Ord, Read, Show)
_CastExpression_Primitive = Core.Name "hydra.java.syntax.CastExpression_Primitive"
_CastExpression_Primitive_type = Core.Name "type"
_CastExpression_Primitive_expression = Core.Name "expression"
data CastExpression_NotPlusMinus =
CastExpression_NotPlusMinus {
castExpression_NotPlusMinusRefAndBounds :: CastExpression_RefAndBounds,
castExpression_NotPlusMinusExpression :: UnaryExpression}
deriving (Eq, Ord, Read, Show)
_CastExpression_NotPlusMinus = Core.Name "hydra.java.syntax.CastExpression_NotPlusMinus"
_CastExpression_NotPlusMinus_refAndBounds = Core.Name "refAndBounds"
_CastExpression_NotPlusMinus_expression = Core.Name "expression"
data CastExpression_Lambda =
CastExpression_Lambda {
castExpression_LambdaRefAndBounds :: CastExpression_RefAndBounds,
castExpression_LambdaExpression :: LambdaExpression}
deriving (Eq, Ord, Read, Show)
_CastExpression_Lambda = Core.Name "hydra.java.syntax.CastExpression_Lambda"
_CastExpression_Lambda_refAndBounds = Core.Name "refAndBounds"
_CastExpression_Lambda_expression = Core.Name "expression"
data CastExpression_RefAndBounds =
CastExpression_RefAndBounds {
castExpression_RefAndBoundsType :: ReferenceType,
castExpression_RefAndBoundsBounds :: [AdditionalBound]}
deriving (Eq, Ord, Read, Show)
_CastExpression_RefAndBounds = Core.Name "hydra.java.syntax.CastExpression_RefAndBounds"
_CastExpression_RefAndBounds_type = Core.Name "type"
_CastExpression_RefAndBounds_bounds = Core.Name "bounds"
data SwitchExpression =
SwitchExpression {
switchExpressionCond :: Expression,
switchExpressionBlock :: SwitchBlock}
deriving (Eq, Ord, Read, Show)
_SwitchExpression = Core.Name "hydra.java.syntax.SwitchExpression"
_SwitchExpression_cond = Core.Name "cond"
_SwitchExpression_block = Core.Name "block"
newtype ConstantExpression =
ConstantExpression {
unConstantExpression :: Expression}
deriving (Eq, Ord, Read, Show)
_ConstantExpression = Core.Name "hydra.java.syntax.ConstantExpression"