JavaFrontend.JSourceFileInfo
module Array : sig ... end
classic Ocamllex function to update current lexbuf line at each end of line
return the exact position start of the suffix classname
in lexbuf
We traverse the structure of the source file by recording the encompassing blocks in a stack of frame. We use the stack to recover the full inner class name at bytecode level
type frame = {
short_class_name : string;
is_enum : bool;
next_anonymous_class : int;
opened_blocks : int;
exprs : expr list;
}
type state = {
stack : frame list;
record_location : classname:string -> col:int -> line:int -> unit;
}
val in_field_declaration_area : state -> bool
val get_opened_blocks : state -> int
val is_enum : state -> bool
val get_next_anonymous_class : state -> string
val long_class_name : string -> state -> string
val class_scan : state -> Stdlib.Lexing.lexbuf -> unit
val __ocaml_lex_class_scan_rec : state -> Stdlib.Lexing.lexbuf -> int -> unit
val search_anonymous_class_body : state -> Stdlib.Lexing.lexbuf -> unit
val __ocaml_lex_search_anonymous_class_body_rec :
state ->
Stdlib.Lexing.lexbuf ->
int ->
unit
val found_entrance_of_anonymous_class : state -> Stdlib.Lexing.lexbuf -> unit
val __ocaml_lex_found_entrance_of_anonymous_class_rec :
state ->
Stdlib.Lexing.lexbuf ->
int ->
unit
val collect_class_location : JProgramDesc.t -> IBase.SourceFile.t -> Base.unit
We scan source file file
and record location of each class declaration