package diffast-langs-java-parsing

  1. Overview
  2. Docs
module Ast_base = Langs_common.Ast_base
module Loc = Langs_common.Astloc
type loc = Loc.t
type identifier = string
type simple_name = identifier
type dims = int
type expr_kind =
  1. | EKunknown
  2. | EKfacc
  3. | EKname
type identifier_attribute =
  1. | IApackage
  2. | IAclass of string
  3. | IAinterface of string
  4. | IAtypename of string
  5. | IAmethod
  6. | IAfield
  7. | IAconstructor
  8. | IAparameter
  9. | IAvariable
  10. | IAlabel
  11. | IAstatic of string
  12. | IAtypeparameter
  13. | IAexpression of expr_kind
  14. | IAarray
val expr_kind_to_str : expr_kind -> string
val iattr_to_str : identifier_attribute -> string
type frame_kind =
  1. | FKclass of string * bool ref
  2. | FKtypeparameter
  3. | FKmethod of string * bool ref
  4. | FKother
val frame_kind_to_string : frame_kind -> string
val is_class_frame : frame_kind -> bool
val is_method_frame : frame_kind -> bool
class frame : frame_kind -> object ... end
type resolve_result =
  1. | R_resolved of string
  2. | R_deferred of string * frame Stack.t * string
val resolve_result_to_str : resolve_result -> string
val mkresolved : string -> resolve_result
val is_resolved : resolve_result -> bool
val is_inner : string -> bool
val split_inner : string -> string * string
type name_attribute =
  1. | NApackage
  2. | NAtype of resolve_result
  3. | NAexpression of expr_kind
  4. | NAmethod
  5. | NApackageOrType
  6. | NAstatic of resolve_result
  7. | NAambiguous of resolve_result
  8. | NAunknown
val is_expr_attr : name_attribute -> bool
val iattr_to_nattr : identifier_attribute -> name_attribute
val get_resolved_name : name_attribute -> string
val set1 : name_attribute ref -> name_attribute -> unit
val is_capitalized : string -> bool
val is_all_capitalized : string -> bool
type literal =
  1. | Linteger of string
  2. | LfloatingPoint of string
  3. | Ltrue
  4. | Lfalse
  5. | Lcharacter of string
  6. | Lstring of string
  7. | LtextBlock of string
  8. | Lnull
type assignment_operator = {
  1. ao_desc : assignment_operator_desc;
  2. ao_loc : loc;
}
and assignment_operator_desc =
  1. | AOeq
  2. | AOmulEq
  3. | AOdivEq
  4. | AOmodEq
  5. | AOaddEq
  6. | AOsubEq
  7. | AOshiftLEq
  8. | AOshiftREq
  9. | AOshiftRUEq
  10. | AOandEq
  11. | AOxorEq
  12. | AOorEq
type unary_operator =
  1. | UOpostIncrement
  2. | UOpostDecrement
  3. | UOpreIncrement
  4. | UOpreDecrement
  5. | UOpositive
  6. | UOnegative
  7. | UOcomplement
  8. | UOnot
type binary_operator =
  1. | BOmul
  2. | BOdiv
  3. | BOmod
  4. | BOadd
  5. | BOsub
  6. | BOshiftL
  7. | BOshiftR
  8. | BOshiftRU
  9. | BOeq
  10. | BOneq
  11. | BOlt
  12. | BOgt
  13. | BOle
  14. | BOge
  15. | BObitAnd
  16. | BObitOr
  17. | BObitXor
  18. | BOand
  19. | BOor
type name = {
  1. n_desc : name_desc;
  2. n_loc : loc;
}
and name_desc =
  1. | Nsimple of name_attribute ref * identifier
  2. | Nqualified of name_attribute ref * name * annotation list * identifier
  3. | Nerror of string
and javatype = {
  1. ty_desc : javatype_desc;
  2. ty_loc : loc;
}
and primitive_type =
  1. | PTbyte
  2. | PTshort
  3. | PTint
  4. | PTlong
  5. | PTchar
  6. | PTfloat
  7. | PTdouble
  8. | PTboolean
and javatype_desc =
  1. | Tprimitive of annotation list * primitive_type
  2. | TclassOrInterface of type_spec list
  3. | Tclass of type_spec list
  4. | Tinterface of type_spec list
  5. | Tarray of javatype * annot_dim list
  6. | Tvoid
and type_spec =
  1. | TSname of annotation list * name
  2. | TSapply of annotation list * name * type_arguments
and type_argument = {
  1. ta_desc : type_argument_desc;
  2. ta_loc : loc;
}
and type_argument_desc =
  1. | TAreferenceType of javatype
  2. | TAwildcard of wildcard
and wildcard_bounds = {
  1. wb_desc : wildcard_bounds_desc;
  2. wb_loc : loc;
}
and wildcard_bounds_desc =
  1. | WBextends of javatype
  2. | WBsuper of javatype
and wildcard = annotation list * wildcard_bounds option
and type_arguments = {
  1. tas_type_arguments : type_argument list;
  2. tas_loc : loc;
}
and variable_declarator_id = (loc * identifier) * annot_dim list
and throws = {
  1. th_exceptions : javatype list;
  2. th_loc : loc;
}
and extends_class = {
  1. exc_class : javatype;
  2. exc_loc : loc;
}
and extends_interfaces = {
  1. exi_interfaces : javatype list;
  2. exi_loc : loc;
}
and implements = {
  1. im_interfaces : javatype list;
  2. im_loc : loc;
}
and permits = {
  1. pm_type_names : name list;
  2. pm_loc : loc;
}
and formal_parameter = {
  1. fp_modifiers : modifiers option;
  2. fp_type : javatype;
  3. fp_variable_declarator_id : variable_declarator_id;
  4. fp_variable_arity : bool;
  5. fp_loc : loc;
  6. fp_receiver : identifier option;
}
and modifiers = {
  1. ms_modifiers : modifier list;
  2. ms_loc : loc;
}
and modifier = {
  1. m_desc : modifier_desc;
  2. m_loc : loc;
}
and modifier_desc =
  1. | Mpublic
  2. | Mprotected
  3. | Mprivate
  4. | Mstatic
  5. | Mabstract
  6. | Mfinal
  7. | Mnative
  8. | Msynchronized
  9. | Mtransient
  10. | Mvolatile
  11. | Mstrictfp
  12. | Mannotation of annotation
  13. | Mdefault
  14. | Mtransitive
  15. | Msealed
  16. | Mnon_sealed
  17. | Merror of string
and variable_initializer = {
  1. vi_desc : variable_initializer_desc;
  2. vi_loc : loc;
}
and variable_initializer_desc =
  1. | VIexpression of expression
  2. | VIarray of array_initializer
  3. | VIerror of string
and array_initializer = variable_initializer list
and variable_declarator = {
  1. vd_variable_declarator_id : variable_declarator_id;
  2. vd_variable_initializer : variable_initializer option;
  3. vd_is_local : bool ref;
  4. vd_loc : loc;
}
and variable_declarators = variable_declarator list
and class_declaration_head = {
  1. ch_modifiers : modifiers option;
  2. ch_identifier : identifier;
  3. ch_identifier_loc : loc;
  4. ch_type_parameters : type_parameters option;
  5. ch_extends_class : extends_class option;
  6. ch_implements : implements option;
  7. ch_permits : permits option;
  8. ch_loc : loc;
}
and record_declaration_head = {
  1. rh_modifiers : modifiers option;
  2. rh_identifier : identifier;
  3. rh_identifier_loc : loc;
  4. rh_type_parameters : type_parameters option;
  5. rh_record_header : formal_parameter list;
  6. rh_implements : implements option;
  7. rh_loc : loc;
}
and module_declaration = {
  1. mod_head : module_declaration_head;
  2. mod_body : module_body;
  3. mod_loc : loc;
}
and module_declaration_head = {
  1. mdh_annotations : annotation list;
  2. mdh_open : loc option;
  3. mdh_name : name;
  4. mdh_loc : loc;
}
and module_name = {
  1. mn_name : name;
  2. mn_loc : loc;
}
and module_body = {
  1. mb_module_directives : module_directive list;
  2. mb_loc : loc;
}
and module_directive = {
  1. md_desc : module_directive_desc;
  2. md_loc : loc;
}
and module_directive_desc =
  1. | MDrequires of modifier list * name
  2. | MDexports of name * module_name list
  3. | MDopens of name * module_name list
  4. | MDuses of name
  5. | MDprovides of name * module_name list
and class_declaration = {
  1. cd_desc : class_declaration_desc;
  2. cd_loc : loc;
}
and class_declaration_desc =
  1. | CDclass of class_declaration_head * class_body
  2. | CDenum of class_declaration_head * enum_body
  3. | CDrecord of record_declaration_head * record_body
  4. | CDaspect of class_declaration_head * aspect_body
and type_parameters = {
  1. tps_type_parameters : type_parameter list;
  2. tps_loc : loc;
}
and type_variable = identifier
and type_parameter = {
  1. tp_type_variable : type_variable;
  2. tp_annotations : annotation list;
  3. tp_type_bound : type_bound option;
  4. tp_loc : loc;
}
and type_bound = {
  1. tb_reference_type : javatype;
  2. tb_additional_bounds : additional_bound list;
  3. tb_loc : loc;
}
and additional_bound = {
  1. ab_interface : javatype;
  2. ab_loc : loc;
}
and enum_body = {
  1. eb_enum_constants : enum_constant list;
  2. eb_class_body_declarations : class_body_declaration list;
  3. eb_loc : loc;
}
and enum_constant = {
  1. ec_annotations : annotations;
  2. ec_identifier : identifier;
  3. ec_arguments : arguments option;
  4. ec_class_body : class_body option;
  5. ec_loc : loc;
}
and class_body = {
  1. cb_class_body_declarations : class_body_declaration list;
  2. cb_loc : loc;
}
and class_body_declaration = {
  1. cbd_desc : class_body_declaration_desc;
  2. cbd_loc : loc;
}
and class_body_declaration_desc =
  1. | CBDfield of field_declaration
  2. | CBDmethod of method_header * block option
  3. | CBDclass of class_declaration
  4. | CBDinterface of interface_declaration
  5. | CBDstaticInitializer of block
  6. | CBDinstanceInitializer of block
  7. | CBDconstructor of constructor_declaration
  8. | CBDempty
  9. | CBDerror of string
  10. | CBDpointcut of pointcut_declaration
  11. | CBDdeclare of declare_declaration
and record_body = {
  1. rb_record_body_declarations : record_body_declaration list;
  2. rb_loc : loc;
}
and record_body_declaration = {
  1. rbd_desc : record_body_declaration_desc;
  2. rbd_loc : loc;
}
and record_body_declaration_desc =
  1. | RBDclass_body_decl of class_body_declaration
  2. | RBDcompact_ctor_decl of compact_constructor_declaration
and declare_declaration = {
  1. dd_desc : declare_declaration_desc;
  2. dd_loc : loc;
}
and declare_declaration_desc =
  1. | DDparents of string * classname_pattern_expr * extends_class option * implements option
  2. | DDmessage of string * pointcut_expr * primary
  3. | DDsoft of string * pointcut_expr
  4. | DDprecedence of string * classname_pattern_expr list
and pointcut_declaration = {
  1. pcd_modifiers : modifiers option;
  2. pcd_name : identifier;
  3. pcd_parameters_loc : loc;
  4. pcd_parameters : formal_parameter list;
  5. pcd_pointcut_expr : pointcut_expr option;
  6. pcd_loc : loc;
}
and pointcut_expr = {
  1. pe_desc : pointcut_expr_desc;
  2. pe_loc : loc;
}
and pointcut_expr_desc =
  1. | PEand of pointcut_expr * pointcut_expr
  2. | PEor of pointcut_expr * pointcut_expr
  3. | PEnot of pointcut_expr
  4. | PEparen of pointcut_expr
  5. | PEwithin of classname_pattern_expr
and classname_pattern_expr = {
  1. cpe_desc : classname_pattern_expr_desc;
  2. cpe_loc : loc;
}
and classname_pattern_expr_desc =
  1. | CPEand of classname_pattern_expr * classname_pattern_expr
  2. | CPEor of classname_pattern_expr * classname_pattern_expr
  3. | CPEnot of classname_pattern_expr
  4. | CPEparen of classname_pattern_expr
  5. | CPEname of string
  6. | CPEnamePlus of string
and field_declaration = {
  1. fd_modifiers : modifiers option;
  2. fd_type : javatype;
  3. fd_variable_declarators : variable_declarators;
  4. fd_loc : loc;
}
and method_header = {
  1. mh_modifiers : modifiers option;
  2. mh_type_parameters : type_parameters option;
  3. mh_annotations : annotation list;
  4. mh_return_type : javatype;
  5. mh_name : identifier;
  6. mh_name_loc : loc;
  7. mh_parameters_loc : loc;
  8. mh_parameters : formal_parameter list;
  9. mh_dims : annot_dim list;
  10. mh_throws : throws option;
  11. mh_loc : loc;
}
and constructor_declaration = {
  1. cnd_modifiers : modifiers option;
  2. cnd_type_parameters : type_parameters option;
  3. cnd_name : simple_name;
  4. cnd_parameters_loc : loc;
  5. cnd_parameters : formal_parameter list;
  6. cnd_throws : throws option;
  7. cnd_body : constructor_body;
  8. cnd_loc : loc;
}
and compact_constructor_declaration = {
  1. ccnd_modifiers : modifiers option;
  2. ccnd_name : identifier;
  3. ccnd_body : constructor_body;
  4. ccnd_loc : loc;
}
and constructor_body = {
  1. cnb_explicit_constructor_invocation : explicit_constructor_invocation option;
  2. cnb_block : block_statement list;
  3. cnb_loc : loc;
}
and arguments = {
  1. as_arguments : argument list;
  2. as_loc : loc;
}
and explicit_constructor_invocation = {
  1. eci_desc : explicit_constructor_invocation_desc;
  2. eci_loc : loc;
}
and explicit_constructor_invocation_desc =
  1. | ECIthis of type_arguments option * arguments
  2. | ECIsuper of type_arguments option * arguments
  3. | ECIprimary of primary * type_arguments option * arguments
  4. | ECIname of name * type_arguments option * arguments
  5. | ECIerror of string
and interface_declaration_head = {
  1. ifh_modifiers : modifiers option;
  2. ifh_identifier : identifier;
  3. ifh_type_parameters : type_parameters option;
  4. ifh_extends_interfaces : extends_interfaces option;
  5. ifh_permits : permits option;
  6. ifh_loc : loc;
}
and interface_declaration = {
  1. ifd_desc : interface_declaration_desc;
  2. ifd_loc : loc;
}
and interface_declaration_desc =
  1. | IFDnormal of interface_declaration_head * interface_body
  2. | IFDannotation of interface_declaration_head * annotation_type_body
and annotation_type_body = {
  1. atb_member_declarations : annotation_type_member_declaration list;
  2. atb_loc : loc;
}
and constant_declaration = field_declaration
and default_value = element_value
and annotation_type_member_declaration = {
  1. atmd_desc : annotation_type_member_declaration_desc;
  2. atmd_loc : loc;
}
and annotation_type_member_declaration_desc =
  1. | ATMDconstant of constant_declaration
  2. | ATMDelement of modifiers option * javatype * identifier * annot_dim list * default_value option
  3. | ATMDclass of class_declaration
  4. | ATMDinterface of interface_declaration
  5. | ATMDempty
and annot_dim = {
  1. ad_annotations : annotations;
  2. ad_loc : loc;
  3. ad_ellipsis : bool;
}
and interface_body = {
  1. ib_member_declarations : interface_member_declaration list;
  2. ib_loc : loc;
}
and interface_method_declaration = {
  1. amd_method_header : method_header;
  2. amd_body : block option;
  3. amd_loc : loc;
}
and interface_member_declaration = {
  1. imd_desc : interface_member_declaration_desc;
  2. imd_loc : loc;
}
and interface_member_declaration_desc =
  1. | IMDconstant of field_declaration
  2. | IMDinterfaceMethod of interface_method_declaration
  3. | IMDclass of class_declaration
  4. | IMDinterface of interface_declaration
  5. | IMDempty
and aspect_body = {
  1. abd_aspect_body_declarations : class_body_declaration list;
  2. abd_loc : loc;
}
and block_statement = {
  1. bs_desc : block_statement_desc;
  2. bs_loc : loc;
}
and block_statement_desc =
  1. | BSlocal of local_variable_declaration
  2. | BSclass of class_declaration
  3. | BSstatement of statement
  4. | BSerror of string
and local_variable_declaration = {
  1. lvd_modifiers : modifiers option;
  2. lvd_type : javatype;
  3. lvd_variable_declarators : variable_declarators;
  4. lvd_loc : loc;
}
and block = {
  1. b_block_statements : block_statement list;
  2. b_loc : loc;
}
and statement = {
  1. s_desc : statement_desc;
  2. s_loc : loc;
  3. s_extra_loc : loc option;
}
and statement_desc =
  1. | Sblock of block
  2. | Sempty
  3. | Sexpression of statement_expression
  4. | Sswitch of expression * switch_block
  5. | Sdo of statement * expression
  6. | Sbreak of identifier option
  7. | Scontinue of identifier option
  8. | Sreturn of expression option
  9. | Ssynchronized of expression * block
  10. | Sthrow of expression
  11. | Stry of resource_spec option * block * catches option * finally option
  12. | Syield of expression
  13. | Slabeled of identifier * statement
  14. | SifThen of expression * statement
  15. | SifThenElse of expression * statement * statement
  16. | Swhile of expression * statement
  17. | Sfor of for_init option * expression option * statement_expression list * statement
  18. | SforEnhanced of formal_parameter * expression * statement
  19. | Sassert1 of expression
  20. | Sassert2 of expression * expression
  21. | Serror of string
and statement_expression = {
  1. se_desc : statement_expression_desc;
  2. se_loc : loc;
}
and statement_expression_desc =
  1. | SEassignment of assignment
  2. | SEpreIncrement of expression
  3. | SEpreDecrement of expression
  4. | SEpostIncrement of expression
  5. | SEpostDecrement of expression
  6. | SEmethodInvocation of method_invocation
  7. | SEclassInstanceCreation of class_instance_creation
  8. | SEerror of string
and for_init = {
  1. fi_desc : for_init_desc;
  2. fi_loc : loc;
}
and for_init_desc =
  1. | FIstatement of statement_expression list
  2. | FIlocal of local_variable_declaration
and primary = {
  1. mutable p_desc : primary_desc;
  2. p_loc : loc;
}
and primary_desc =
  1. | Pname of name
  2. | Pliteral of literal
  3. | PclassLiteral of javatype
  4. | PclassLiteralVoid
  5. | Pthis
  6. | PqualifiedThis of name
  7. | Pparen of expression
  8. | PclassInstanceCreation of class_instance_creation
  9. | PfieldAccess of field_access
  10. | PmethodInvocation of method_invocation
  11. | ParrayAccess of array_access
  12. | ParrayCreationExpression of array_creation_expression
  13. | PmethodReference of method_reference
  14. | Perror of string
and method_reference = {
  1. mr_desc : method_reference_desc;
  2. mr_loc : loc;
}
and method_reference_desc =
  1. | MRname of name * type_arguments option * identifier
  2. | MRprimary of primary * type_arguments option * identifier
  3. | MRsuper of type_arguments option * identifier
  4. | MRtypeSuper of name * type_arguments option * identifier
  5. | MRtypeNew of javatype * type_arguments option
and array_creation_expression =
  1. | ACEtype of javatype * dim_expr list * annot_dim list
  2. | ACEtypeInit of javatype * annot_dim list * array_initializer
and dim_expr = {
  1. de_desc : expression;
  2. de_loc : loc;
}
and class_instance_creation = {
  1. cic_desc : class_instance_creation_desc;
  2. cic_loc : loc;
}
and class_instance_creation_desc =
  1. | CICunqualified of type_arguments option * javatype * arguments * class_body option
  2. | CICqualified of primary * type_arguments option * identifier * type_arguments option * arguments * class_body option
  3. | CICnameQualified of name * type_arguments option * identifier * type_arguments option * arguments * class_body option
and field_access =
  1. | FAprimary of primary * identifier
  2. | FAsuper of identifier
  3. | FAclassSuper of name * identifier
  4. | FAimplicit of name
and method_invocation = {
  1. mutable mi_desc : method_invocation_desc;
  2. mi_loc : loc;
}
and method_invocation_desc =
  1. | MImethodName of name * arguments
  2. | MIprimary of primary * type_arguments option * identifier * arguments
  3. | MItypeName of name * type_arguments option * identifier * arguments
  4. | MIsuper of loc * type_arguments option * identifier * arguments
  5. | MIclassSuper of loc * loc * name * type_arguments option * identifier * arguments
and array_access = {
  1. aa_desc : array_access_desc;
  2. aa_loc : loc;
}
and array_access_desc =
  1. | AAname of name * expression
  2. | AAprimary of primary * expression
and argument = expression
and expression = {
  1. e_desc : expression_desc;
  2. e_loc : loc;
}
and expression_desc =
  1. | Eprimary of primary
  2. | Eunary of unary_operator * expression
  3. | Ebinary of binary_operator * expression * expression
  4. | Ecast of javatype * expression
  5. | Einstanceof of expression * javatype
  6. | EinstanceofP of expression * local_variable_declaration
  7. | Econd of expression * expression * expression
  8. | Eassignment of assignment
  9. | Elambda of lambda_params * lambda_body
  10. | Eswitch of expression * switch_block
  11. | Eerror of string
and lambda_params = {
  1. lp_desc : lambda_params_desc;
  2. lp_loc : loc;
}
and lambda_params_desc =
  1. | LPident of identifier
  2. | LPformal of formal_parameter list
  3. | LPinferred of (loc * identifier) list
and lambda_body =
  1. | LBexpr of expression
  2. | LBblock of block
and annotation = {
  1. a_desc : annotation_desc;
  2. a_loc : loc;
}
and annotation_desc =
  1. | Anormal of name * element_value_pair list
  2. | Amarker of name
  3. | AsingleElement of name * element_value
and annotations = annotation list
and element_value = {
  1. ev_desc : element_value_desc;
  2. ev_loc : loc;
}
and element_value_desc =
  1. | EVconditional of expression
  2. | EVannotation of annotation
  3. | EVarrayInit of element_value list
and element_value_pair = {
  1. evp_desc : element_value_pair_desc;
  2. evp_loc : loc;
}
and element_value_pair_desc = identifier * element_value
and left_hand_side = expression
and constant_expression = expression
and switch_label_desc =
  1. | SLconstant of constant_expression list
  2. | SLdefault
and switch_label = {
  1. sl_desc : switch_label_desc;
  2. sl_loc : loc;
}
and switch_block_stmt_grp = switch_label list * block_statement list
and switch_rule_label = {
  1. srl_desc : switch_label_desc;
  2. srl_loc : loc;
}
and switch_rule_body = {
  1. srb_desc : switch_rule_body_desc;
  2. srb_loc : loc;
}
and switch_rule_body_desc =
  1. | SRBexpr of expression
  2. | SRBblock of block
  3. | SRBthrow of statement
and switch_block = {
  1. sb_switch_block_stmt_grps : switch_block_stmt_grp list;
  2. sb_switch_rules : switch_rule list;
  3. sb_loc : loc;
}
and catch = {
  1. c_formal_parameter : catch_formal_parameter;
  2. c_block : block;
  3. c_loc : loc;
}
and catches = catch list
and finally = {
  1. f_block : block;
  2. f_loc : loc;
}
and catch_formal_parameter = {
  1. cfp_modifiers : modifiers option;
  2. cfp_type_list : javatype list;
  3. cfp_variable_declarator_id : variable_declarator_id;
  4. cfp_loc : loc;
}
and resource_spec = {
  1. rs_resources : resource list;
  2. rs_loc : loc;
}
and resource = {
  1. r_desc : resource_desc;
  2. r_loc : loc;
}
and resource_desc =
  1. | RlocalVarDecl of local_variable_declaration
  2. | RfieldAccess of field_access
  3. | Rname of name
val set_name_attribute : ?force:bool -> name_attribute -> name -> unit
val set_attribute : name_attribute -> name_attribute -> name -> unit
val set_attribute_PT_T : resolve_result -> name -> unit
val set_attribute_P_T : resolve_result -> name -> unit
val set_attribute_PT_PT : name -> unit
val set_attribute_P_P : name -> unit
val get_name_attribute : name -> name_attribute
val compose_name : ?attr:name_attribute ref -> name -> identifier -> name
val decompose_name : name -> name * identifier
val iter_id : (identifier -> unit) -> name -> unit
val leftmost_of_name : name -> name_attribute ref * identifier
val leftmost_identifier : name -> identifier
val leftmost_name : name -> name
val is_leftmost_id_capitalized : name -> bool
val rightmost_identifier : name -> identifier
val is_rightmost_id_capitalized : name -> bool
val is_rightmost_id_all_capitalized : name -> bool
val rightmost_name : name -> name
val get_qualifier : name -> name
val is_rightmost_qualifier_capitalized : name -> bool
val qualifier_contains_capitalized : name -> bool
val is_all_qualifier_lowercase : name -> bool
val get_length : name -> int
val is_simple : name -> bool
val is_qualified : name -> bool
val is_ambiguous_name : name -> bool
val is_type_name : name -> bool
val is_type : name -> bool
val is_static : name -> bool
val is_package_or_type_name : name -> bool
val is_expression : name -> bool
val is_unknown_expression : name -> bool
val is_unknown_name : name -> bool
val dummy_name : name
type package_declaration = {
  1. pd_annotations : annotations;
  2. pd_name : name;
  3. pd_loc : loc;
}
type import_declaration = {
  1. id_desc : import_declaration_desc;
  2. id_loc : loc;
}
and import_declaration_desc =
  1. | IDsingle of name
  2. | IDtypeOnDemand of name
  3. | IDsingleStatic of name * identifier
  4. | IDstaticOnDemand of name
  5. | IDerror of string
type type_declaration = {
  1. td_desc : type_declaration_desc;
  2. td_loc : loc;
}
and type_declaration_desc =
  1. | TDclass of class_declaration
  2. | TDinterface of interface_declaration
  3. | TDempty
  4. | TDerror of string
  5. | TDorphan of class_body_declaration
type compilation_unit = {
  1. cu_package : package_declaration option;
  2. cu_imports : import_declaration list;
  3. cu_tydecls : type_declaration list;
  4. cu_modecl : module_declaration option;
}
val _mkprim : loc -> primary_desc -> primary
val mh_is_generic : method_header -> bool
val get_modifiers_from_mh : method_header -> modifier list
val get_annot_dims_from_type : javatype -> annot_dim list
val annot_exists : annot_dim list -> bool
val proc_op : ('a -> 'b -> unit) -> 'a -> 'b option -> unit
val proc_element_value : (name -> unit) -> default_value -> unit
val proc_annotation : (name -> unit) -> annotation -> unit
val proc_type : (name -> unit) -> javatype -> unit
val proc_type_spec : (name -> unit) -> type_spec -> unit
val proc_expression : (name -> unit) -> left_hand_side -> unit
val proc_lambda_block : (name -> unit) -> lambda_body -> unit
val _name_to_facc : name -> primary_desc
val name_to_facc : name -> primary
val proc_primary : (name -> unit) -> primary -> unit
val proc_class_instance_creation : (name -> unit) -> class_instance_creation -> unit
val proc_class_body_declaration : (name -> unit) -> class_body_declaration -> unit
val proc_record_body_declaration : (name -> unit) -> record_body_declaration -> unit
val proc_compact_ctor_decl : (name -> unit) -> compact_constructor_declaration -> unit
val proc_type_bound : (name -> unit) -> type_bound -> unit
val proc_type_parameter : (name -> unit) -> type_parameter -> unit
val proc_type_parameters : (name -> unit) -> type_parameters -> unit
val proc_method_header : (name -> unit) -> method_header -> unit
val proc_formal_parameter : (name -> unit) -> formal_parameter -> unit
val proc_throws : (name -> unit) -> throws -> unit
val proc_array_initializer : (name -> unit) -> array_initializer -> unit
val proc_variable_initializer : (name -> unit) -> variable_initializer -> unit
val proc_variable_declarator : (name -> unit) -> variable_declarator -> unit
val proc_local_variable_declaration : (name -> unit) -> local_variable_declaration -> unit
val proc_statement_expression : (name -> unit) -> statement_expression -> unit
val proc_switch_label : (name -> unit) -> switch_label -> unit
val proc_statement : (name -> unit) -> statement -> unit
val proc_resource_spec : (name -> unit) -> resource_spec -> unit
val proc_resource : (name -> unit) -> resource -> unit
val proc_catch : (name -> unit) -> catch -> unit
val proc_catch_formal_parameter : (name -> unit) -> catch_formal_parameter -> unit
val proc_for_init : (name -> unit) -> for_init -> unit
val proc_block_statement : (name -> unit) -> block_statement -> unit
val proc_block : (name -> unit) -> block -> unit
val proc_extends_class : (name -> unit) -> extends_class -> unit
val proc_implements : (name -> unit) -> implements -> unit
val proc_permits : (name -> unit) -> permits -> unit
val proc_class_declaration_head : (name -> unit) -> class_declaration_head -> unit
val proc_record_declaration_head : (name -> unit) -> record_declaration_head -> unit
val proc_class_declaration : (name -> unit) -> class_declaration -> unit
val proc_aspect_body : (name -> unit) -> aspect_body -> unit
val proc_enum_body : (name -> unit) -> enum_body -> unit
val proc_enum_constant : (name -> unit) -> enum_constant -> unit
val proc_interface_declaration_head : (name -> unit) -> interface_declaration_head -> unit
val proc_interface_declaration : (name -> unit) -> interface_declaration -> unit
val proc_annotation_type_member_declaration : (name -> unit) -> annotation_type_member_declaration -> unit
val proc_interface_body : (name -> unit) -> interface_body -> unit
val proc_interface_member_declaration : (name -> unit) -> interface_member_declaration -> unit
val proc_modifiers : (name -> unit) -> modifiers -> unit
val proc_modifier : (name -> unit) -> modifier -> unit
val proc_field_declaration : (name -> unit) -> constant_declaration -> unit
val proc_interface_method_declaration : (name -> unit) -> interface_method_declaration -> unit
val proc_constructor_declaration : (name -> unit) -> constructor_declaration -> unit
val proc_constructor_body : (name -> unit) -> constructor_body -> unit
val proc_explicit_constructor_invocation : (name -> unit) -> explicit_constructor_invocation -> unit
val proc_method_reference : (name -> unit) -> method_reference -> unit
val proc_class_body : (name -> unit) -> class_body -> unit
val proc_record_body : (name -> unit) -> record_body -> unit
val proc_arguments : (name -> unit) -> arguments -> unit
val proc_type_argument : (name -> unit) -> type_argument -> unit
val proc_wildcard : (name -> unit) -> wildcard -> unit
val proc_wildcard_bounds : (name -> unit) -> wildcard_bounds -> unit
val proc_type_arguments : (name -> unit) -> type_arguments -> unit
val proc_field_access : (name -> unit) -> field_access -> unit
val name_attribute_to_string : name_attribute -> string
val name_to_simple_string : name -> identifier
val name_to_string : name -> string
val prim_to_string : primary -> string
val proc_method_invocation : (name -> unit) -> method_invocation -> unit
val proc_array_access : (name -> unit) -> array_access -> unit
val proc_array_creation_expression : (name -> unit) -> array_creation_expression -> unit
val proc_type_declaration : (name -> unit) -> type_declaration -> unit
val proc_import_declaration : (name -> unit) -> import_declaration -> unit
class c : compilation_unit -> object ... end
val dummy_type : javatype
type declaration =
  1. | D_import of import_declaration
  2. | D_type of type_declaration
val partition_declarations : declaration list -> import_declaration list * type_declaration list
OCaml

Innovation. Community. Security.