flitter/h_program-lang/entity_code.mli
Joey Yakimowich-Payne fa600b98f7 Add poc files
2018-05-26 10:55:38 +09:00

60 lines
1.4 KiB
OCaml

type entity_kind =
(* very high level entities *)
| Package | Dir
| Module | File
(* toplevel entities *)
| Function
| Class (* used also for struct, interfaces, traits, see class_kind below *)
| Type
| Constant
| Global
| Macro
| Exception
| TopStmts
(* class member entities *)
| Field
| Method
| ClassConstant
(* ocaml variants (not oo ctor, see Method for that *)
| Constructor
(* misc *)
| Prototype | GlobalExtern
| MultiDirs (* computed on the fly from many Dir by codemap *)
| Other of string
val string_of_entity_kind: entity_kind -> string
val entity_kind_of_string: string -> entity_kind
type property =
(* mostly for Function|Method kind, for codemap to highlight! *)
| ContainDynamicCall | ContainReflectionCall
| TakeArgNByRef of int (* the argument position taken by ref *)
| UseGlobal of string
| ContainDeadStatements
| DeadCode (* the function itself is dead, e.g. never called *)
| CodeCoverage of int list (* e.g. covered lines by unit tests *)
(* for class *)
| ClassKind of class_kind
| Privacy of privacy
| Abstract | Final
| Static
(* facebook specific: used for the xhp @required fields for now *)
| Required | Async
and privacy = Public | Protected | Private
and class_kind =
| Struct | Class_ | Interface
| Trait
(* in Scala, Java, and now PHP enums are actually closer to class
* than C enums.
*)
| Enum