package diffast-langs-java-parsing
Module Java_parsing.AstSource
module Ast_base = Langs_common.Ast_basemodule Loc = Langs_common.AstlocSource
type name_attribute = | NApackage| NAtype of resolve_result| NAexpression of expr_kind| NAmethod| NApackageOrType| NAstatic of resolve_result| NAambiguous of resolve_result| NAunknown
Source
and name_desc = | Nsimple of name_attribute ref * identifier| Nqualified of name_attribute ref * name * annotation list * identifier| Nerror of string
Source
and javatype_desc = | Tprimitive of annotation list * primitive_type| TclassOrInterface of type_spec list| Tclass of type_spec list| Tinterface of type_spec list| Tarray of javatype * annot_dim list| Tvoid
Source
and type_spec = | TSname of annotation list * name| TSapply of annotation list * name * type_arguments
Source
and formal_parameter = {fp_modifiers : modifiers option;fp_type : javatype;fp_variable_declarator_id : variable_declarator_id;fp_variable_arity : bool;fp_loc : loc;fp_receiver : identifier option;
}Source
and modifier_desc = | Mpublic| Mprotected| Mprivate| Mstatic| Mabstract| Mfinal| Mnative| Msynchronized| Mtransient| Mvolatile| Mstrictfp| Mannotation of annotation| Mdefault| Mtransitive| Msealed| Mnon_sealed| Merror of string
Source
and variable_initializer_desc = | VIexpression of expression| VIarray of array_initializer| VIerror of string
Source
and variable_declarator = {vd_variable_declarator_id : variable_declarator_id;vd_variable_initializer : variable_initializer option;vd_is_local : bool ref;vd_loc : loc;
}Source
and class_declaration_head = {ch_modifiers : modifiers option;ch_identifier : identifier;ch_identifier_loc : loc;ch_type_parameters : type_parameters option;ch_extends_class : extends_class option;ch_implements : implements option;ch_permits : permits option;ch_loc : loc;
}Source
and record_declaration_head = {rh_modifiers : modifiers option;rh_identifier : identifier;rh_identifier_loc : loc;rh_type_parameters : type_parameters option;rh_record_header : formal_parameter list;rh_implements : implements option;rh_loc : loc;
}Source
and module_declaration = {mod_head : module_declaration_head;mod_body : module_body;mod_loc : loc;
}Source
and module_declaration_head = {mdh_annotations : annotation list;mdh_open : loc option;mdh_name : name;mdh_loc : loc;
}Source
and module_directive_desc = | MDrequires of modifier list * name| MDexports of name * module_name list| MDopens of name * module_name list| MDuses of name| MDprovides of name * module_name list
Source
and class_declaration_desc = | CDclass of class_declaration_head * class_body| CDenum of class_declaration_head * enum_body| CDrecord of record_declaration_head * record_body| CDaspect of class_declaration_head * aspect_body
Source
and type_parameter = {tp_type_variable : type_variable;tp_annotations : annotation list;tp_type_bound : type_bound option;tp_loc : loc;
}Source
and type_bound = {tb_reference_type : javatype;tb_additional_bounds : additional_bound list;tb_loc : loc;
}Source
and enum_body = {eb_enum_constants : enum_constant list;eb_class_body_declarations : class_body_declaration list;eb_loc : loc;
}Source
and enum_constant = {ec_annotations : annotations;ec_identifier : identifier;ec_arguments : arguments option;ec_class_body : class_body option;ec_loc : loc;
}Source
and class_body_declaration_desc = | CBDfield of field_declaration| CBDmethod of method_header * block option| CBDclass of class_declaration| CBDinterface of interface_declaration| CBDstaticInitializer of block| CBDinstanceInitializer of block| CBDconstructor of constructor_declaration| CBDempty| CBDerror of string| CBDpointcut of pointcut_declaration| CBDdeclare of declare_declaration
Source
and record_body_declaration_desc = | RBDclass_body_decl of class_body_declaration| RBDcompact_ctor_decl of compact_constructor_declaration
Source
and declare_declaration_desc = | DDparents of string * classname_pattern_expr * extends_class option * implements option| DDmessage of string * pointcut_expr * primary| DDsoft of string * pointcut_expr| DDprecedence of string * classname_pattern_expr list
Source
and pointcut_declaration = {pcd_modifiers : modifiers option;pcd_name : identifier;pcd_parameters_loc : loc;pcd_parameters : formal_parameter list;pcd_pointcut_expr : pointcut_expr option;pcd_loc : loc;
}Source
and pointcut_expr_desc = | PEand of pointcut_expr * pointcut_expr| PEor of pointcut_expr * pointcut_expr| PEnot of pointcut_expr| PEparen of pointcut_expr| PEwithin of classname_pattern_expr
Source
and classname_pattern_expr_desc = | CPEand of classname_pattern_expr * classname_pattern_expr| CPEor of classname_pattern_expr * classname_pattern_expr| CPEnot of classname_pattern_expr| CPEparen of classname_pattern_expr| CPEname of string| CPEnamePlus of string
Source
and field_declaration = {fd_modifiers : modifiers option;fd_type : javatype;fd_variable_declarators : variable_declarators;fd_loc : loc;
}Source
and method_header = {mh_modifiers : modifiers option;mh_type_parameters : type_parameters option;mh_annotations : annotation list;mh_return_type : javatype;mh_name : identifier;mh_name_loc : loc;mh_parameters_loc : loc;mh_parameters : formal_parameter list;mh_dims : annot_dim list;mh_throws : throws option;mh_loc : loc;
}Source
and constructor_declaration = {cnd_modifiers : modifiers option;cnd_type_parameters : type_parameters option;cnd_name : simple_name;cnd_parameters_loc : loc;cnd_parameters : formal_parameter list;cnd_throws : throws option;cnd_body : constructor_body;cnd_loc : loc;
}Source
and compact_constructor_declaration = {ccnd_modifiers : modifiers option;ccnd_name : identifier;ccnd_body : constructor_body;ccnd_loc : loc;
}Source
and constructor_body = {cnb_explicit_constructor_invocation : explicit_constructor_invocation option;cnb_block : block_statement list;cnb_loc : loc;
}Source
and explicit_constructor_invocation = {eci_desc : explicit_constructor_invocation_desc;eci_loc : loc;
}Source
and explicit_constructor_invocation_desc = | ECIthis of type_arguments option * arguments| ECIsuper of type_arguments option * arguments| ECIprimary of primary * type_arguments option * arguments| ECIname of name * type_arguments option * arguments| ECIerror of string
Source
and interface_declaration_head = {ifh_modifiers : modifiers option;ifh_identifier : identifier;ifh_type_parameters : type_parameters option;ifh_extends_interfaces : extends_interfaces option;ifh_permits : permits option;ifh_loc : loc;
}Source
and interface_declaration_desc = | IFDnormal of interface_declaration_head * interface_body| IFDannotation of interface_declaration_head * annotation_type_body
Source
and annotation_type_body = {atb_member_declarations : annotation_type_member_declaration list;atb_loc : loc;
}Source
and annotation_type_member_declaration = {atmd_desc : annotation_type_member_declaration_desc;atmd_loc : loc;
}Source
and annotation_type_member_declaration_desc = | ATMDconstant of constant_declaration| ATMDelement of modifiers option * javatype * identifier * annot_dim list * default_value option| ATMDclass of class_declaration| ATMDinterface of interface_declaration| ATMDempty
Source
and interface_body = {ib_member_declarations : interface_member_declaration list;ib_loc : loc;
}Source
and interface_method_declaration = {amd_method_header : method_header;amd_body : block option;amd_loc : loc;
}Source
and interface_member_declaration = {imd_desc : interface_member_declaration_desc;imd_loc : loc;
}Source
and interface_member_declaration_desc = | IMDconstant of field_declaration| IMDinterfaceMethod of interface_method_declaration| IMDclass of class_declaration| IMDinterface of interface_declaration| IMDempty
Source
and block_statement_desc = | BSlocal of local_variable_declaration| BSclass of class_declaration| BSstatement of statement| BSerror of string
Source
and local_variable_declaration = {lvd_modifiers : modifiers option;lvd_type : javatype;lvd_variable_declarators : variable_declarators;lvd_loc : loc;
}Source
and statement_desc = | Sblock of block| Sempty| Sexpression of statement_expression| Sswitch of expression * switch_block| Sdo of statement * expression| Sbreak of identifier option| Scontinue of identifier option| Sreturn of expression option| Ssynchronized of expression * block| Sthrow of expression| Stry of resource_spec option * block * catches option * finally option| Syield of expression| Slabeled of identifier * statement| SifThen of expression * statement| SifThenElse of expression * statement * statement| Swhile of expression * statement| Sfor of for_init option * expression option * statement_expression list * statement| SforEnhanced of formal_parameter * expression * statement| Sassert1 of expression| Sassert2 of expression * expression| Serror of string
Source
and statement_expression_desc = | SEassignment of assignment| SEpreIncrement of expression| SEpreDecrement of expression| SEpostIncrement of expression| SEpostDecrement of expression| SEmethodInvocation of method_invocation| SEclassInstanceCreation of class_instance_creation| SEerror of string
Source
and for_init_desc = | FIstatement of statement_expression list| FIlocal of local_variable_declaration
Source
and primary_desc = | Pname of name| Pliteral of literal| PclassLiteral of javatype| PclassLiteralVoid| Pthis| PqualifiedThis of name| Pparen of expression| PclassInstanceCreation of class_instance_creation| PfieldAccess of field_access| PmethodInvocation of method_invocation| ParrayAccess of array_access| ParrayCreationExpression of array_creation_expression| PmethodReference of method_reference| Perror of string
Source
and method_reference_desc = | MRname of name * type_arguments option * identifier| MRprimary of primary * type_arguments option * identifier| MRsuper of type_arguments option * identifier| MRtypeSuper of name * type_arguments option * identifier| MRtypeNew of javatype * type_arguments option
Source
and class_instance_creation_desc = | CICunqualified of type_arguments option * javatype * arguments * class_body option| CICqualified of primary * type_arguments option * identifier * type_arguments option * arguments * class_body option| CICnameQualified of name * type_arguments option * identifier * type_arguments option * arguments * class_body option
Source
and field_access = | FAprimary of primary * identifier| FAsuper of identifier| FAclassSuper of name * identifier| FAimplicit of name
Source
and method_invocation_desc = | MImethodName of name * arguments| MIprimary of primary * type_arguments option * identifier * arguments| MItypeName of name * type_arguments option * identifier * arguments| MIsuper of loc * type_arguments option * identifier * arguments| MIclassSuper of loc * loc * name * type_arguments option * identifier * arguments
Source
and expression_desc = | Eprimary of primary| Eunary of unary_operator * expression| Ebinary of binary_operator * expression * expression| Ecast of javatype * expression| Einstanceof of expression * javatype| EinstanceofP of expression * local_variable_declaration| Econd of expression * expression * expression| Eassignment of assignment| Elambda of lambda_params * lambda_body| Eswitch of expression * switch_block| Eerror of string
Source
and lambda_params_desc = | LPident of identifier| LPformal of formal_parameter list| LPinferred of (loc * identifier) list
Source
and annotation_desc = | Anormal of name * element_value_pair list| Amarker of name| AsingleElement of name * element_value
Source
and element_value_desc = | EVconditional of expression| EVannotation of annotation| EVarrayInit of element_value list
Source
and switch_block = {sb_switch_block_stmt_grps : switch_block_stmt_grp list;sb_switch_rules : switch_rule list;sb_loc : loc;
}Source
and catch_formal_parameter = {cfp_modifiers : modifiers option;cfp_type_list : javatype list;cfp_variable_declarator_id : variable_declarator_id;cfp_loc : loc;
}Source
and resource_desc = | RlocalVarDecl of local_variable_declaration| RfieldAccess of field_access| Rname of name
Source
and type_declaration_desc = | TDclass of class_declaration| TDinterface of interface_declaration| TDempty| TDerror of string| TDorphan of type_declaration option * class_body_declaration
Source
type compilation_unit = {cu_package : package_declaration option;cu_imports : import_declaration list;cu_tydecls : type_declaration list;cu_modecl : module_declaration option;
}Source
val proc_annotation_type_member_declaration :
(name -> unit) ->
annotation_type_member_declaration ->
unitSource
val proc_interface_member_declaration :
(name -> unit) ->
interface_member_declaration ->
unitSource
val proc_interface_method_declaration :
(name -> unit) ->
interface_method_declaration ->
unitSource
val proc_explicit_constructor_invocation :
(name -> unit) ->
explicit_constructor_invocation ->
unitSource
val partition_declarations :
declaration list ->
import_declaration list * type_declaration list