Diagram rendering is done with Graphviz tool. It should be installed and available in command line.
There are two demo classes (TestClass1, TestClass2) provided. In order to generate diagrams for them you can use run-demo.sh script.
run.sh classpath class_name
Information taken from scala.reflect.PickleFormat.
Code | Tag | Data |
---|---|---|
1 | TERMNAME | len_Nat NameInfo |
2 | TYPENAME | len_Nat NameInfo |
3 | NONEsym | len_Nat |
4 | TYPEsym | len_Nat SymbolInfo |
5 | ALIASsym | len_Nat SymbolInfo |
6 | CLASSsym | len_Nat SymbolInfo [thistype_Ref] |
7 | MODULEsym | len_Nat SymbolInfo |
8 | VALsym | len_Nat [defaultGetter_Ref /* no longer needed*/] SymbolInfo [alias_Ref] |
9 | EXTref | len_Nat name_Ref [owner_Ref] |
10 | EXTMODCLASSref | len_Nat name_Ref [owner_Ref] |
11 | NOtpe | len_Nat |
12 | NOPREFIXtpe | len_Nat |
13 | THIStpe | len_Nat sym_Ref |
14 | SINGLEtpe | len_Nat type_Ref sym_Ref |
15 | CONSTANTtpe | len_Nat constant_Ref |
16 | TYPEREFtpe | len_Nat type_Ref sym_Ref {targ_Ref} |
17 | TYPEBOUNDStpe | len_Nat tpe_Ref tpe_Ref |
18 | REFINEDtpe | len_Nat classsym_Ref {tpe_Ref} |
19 | CLASSINFOtpe | len_Nat classsym_Ref {tpe_Ref} |
20 | METHODtpe | len_Nat tpe_Ref {sym_Ref} |
21 | POLYTtpe | len_Nat tpe_Ref {sym_Ref} |
22 | IMPLICITMETHODtpe | len_Nat tpe_Ref {sym_Ref} /* no longer needed */ |
52 | SUPERtpe | len_Nat tpe_Ref tpe_Ref |
24 | LITERALunit | len_Nat |
25 | LITERALboolean | len_Nat value_Long |
26 | LITERALbyte | len_Nat value_Long |
27 | LITERALshort | len_Nat value_Long |
28 | LITERALchar | len_Nat value_Long |
29 | LITERALint | len_Nat value_Long |
30 | LITERALlong | len_Nat value_Long |
31 | LITERALfloat | len_Nat value_Long |
32 | LITERALdouble | len_Nat value_Long |
33 | LITERALstring | len_Nat name_Ref |
34 | LITERALnull | len_Nat |
35 | LITERALclass | len_Nat tpe_Ref |
36 | LITERALenum | len_Nat sym_Ref |
40 | SYMANNOT | len_Nat sym_Ref AnnotInfoBody |
41 | CHILDREN | len_Nat sym_Ref {sym_Ref} |
42 | ANNOTATEDtpe | len_Nat [sym_Ref /* no longer needed */] tpe_Ref {annotinfo_Ref} |
43 | ANNOTINFO | len_Nat AnnotInfoBody |
44 | ANNOTARGARRAY | len_Nat {constAnnotArg_Ref} |
47 | DEBRUIJNINDEXtpe | len_Nat level_Nat index_Nat |
48 | EXISTENTIALtpe | len_Nat type_Ref {symbol_Ref} |
49 | TREE | len_Nat 1 EMPTYtree |
49 | TREE | len_Nat 2 PACKAGEtree type_Ref sym_Ref mods_Ref name_Ref {tree_Ref} |
49 | TREE | len_Nat 3 CLASStree type_Ref sym_Ref mods_Ref name_Ref tree_Ref {tree_Ref} |
49 | TREE | len_Nat 4 MODULEtree type_Ref sym_Ref mods_Ref name_Ref tree_Ref |
49 | TREE | len_Nat 5 VALDEFtree type_Ref sym_Ref mods_Ref name_Ref tree_Ref tree_Ref |
49 | TREE | len_Nat 6 DEFDEFtree type_Ref sym_Ref mods_Ref name_Ref numtparams_Nat {tree_Ref} numparamss_Nat {numparams_Nat {tree_Ref}} tree_Ref tree_Ref |
49 | TREE | len_Nat 7 TYPEDEFtree type_Ref sym_Ref mods_Ref name_Ref tree_Ref {tree_Ref} |
49 | TREE | len_Nat 8 LABELtree type_Ref sym_Ref tree_Ref {tree_Ref} |
49 | TREE | len_Nat 9 IMPORTtree type_Ref sym_Ref tree_Ref {name_Ref name_Ref} |
49 | TREE | len_Nat 11 DOCDEFtree type_Ref sym_Ref string_Ref tree_Ref |
49 | TREE | len_Nat 12 TEMPLATEtree type_Ref sym_Ref numparents_Nat {tree_Ref} tree_Ref {tree_Ref} |
49 | TREE | len_Nat 13 BLOCKtree type_Ref tree_Ref {tree_Ref} |
49 | TREE | len_Nat 14 CASEtree type_Ref tree_Ref tree_Ref tree_Ref |
49 | TREE | len_Nat 15 SEQUENCEtree type_Ref {tree_Ref} |
49 | TREE | len_Nat 16 ALTERNATIVEtree type_Ref {tree_Ref} |
49 | TREE | len_Nat 17 STARtree type_Ref {tree_Ref} |
49 | TREE | len_Nat 18 BINDtree type_Ref sym_Ref name_Ref tree_Ref |
49 | TREE | len_Nat 19 UNAPPLYtree type_Ref tree_Ref {tree_Ref} |
49 | TREE | len_Nat 20 ARRAYVALUEtree type_Ref tree_Ref {tree_Ref} |
49 | TREE | len_Nat 21 FUNCTIONtree type_Ref sym_Ref tree_Ref {tree_Ref} |
49 | TREE | len_Nat 22 ASSIGNtree type_Ref tree_Ref tree_Ref |
49 | TREE | len_Nat 23 IFtree type_Ref tree_Ref tree_Ref tree_Ref |
49 | TREE | len_Nat 24 MATCHtree type_Ref tree_Ref {tree_Ref} |
49 | TREE | len_Nat 25 RETURNtree type_Ref sym_Ref tree_Ref |
49 | TREE | len_Nat 26 TREtree type_Ref tree_Ref tree_Ref {tree_Ref} |
49 | TREE | len_Nat 27 THROWtree type_Ref tree_Ref |
49 | TREE | len_Nat 28 NEWtree type_Ref tree_Ref |
49 | TREE | len_Nat 29 TYPEDtree type_Ref tree_Ref tree_Ref |
49 | TREE | len_Nat 30 TYPEAPPLYtree type_Ref tree_Ref {tree_Ref} |
49 | TREE | len_Nat 31 APPLYtree type_Ref tree_Ref {tree_Ref} |
49 | TREE | len_Nat 32 APPLYDYNAMICtree type_Ref sym_Ref tree_Ref {tree_Ref} |
49 | TREE | len_Nat 33 SUPERtree type_Ref sym_Ref tree_Ref name_Ref |
49 | TREE | len_Nat 34 THIStree type_Ref sym_Ref name_Ref |
49 | TREE | len_Nat 35 SELECTtree type_Ref sym_Ref tree_Ref name_Ref |
49 | TREE | len_Nat 36 IDENTtree type_Ref sym_Ref name_Ref |
49 | TREE | len_Nat 37 LITERALtree type_Ref constant_Ref |
49 | TREE | len_Nat 38 TYPEtree type_Ref |
49 | TREE | len_Nat 39 ANNOTATEDtree type_Ref tree_Ref tree_Ref |
49 | TREE | len_Nat 40 SINGLETONTYPEtree type_Ref tree_Ref |
49 | TREE | len_Nat 41 SELECTFROMTYPEtree type_Ref tree_Ref name_Ref |
49 | TREE | len_Nat 42 COMPOUNDTYPEtree type_Ref tree_Ref |
49 | TREE | len_Nat 43 APPLIEDTYPEtree type_Ref tree_Ref {tree_Ref} |
49 | TREE | len_Nat 44 TYPEBOUNDStree type_Ref tree_Ref tree_Ref |
49 | TREE | len_Nat 45 EXISTENTIALTYPEtree type_Ref tree_Ref {tree_Ref} |
50 | MODIFIERS | len_Nat flags_Long privateWithin_Ref |
Name | Data | |
---|---|---|
SymbolInfo | name_Ref owner_Ref flags_LongNat [privateWithin_Ref] info_Ref | |
NameInfo | character sequence of length len_Nat in Utf8 format | |
NumInfo | len_Nat-byte signed number in big endian format | |
Ref | Nat | |
AnnotInfoBody | info_Ref {annotArg_Ref} {name_Ref constAnnotArg_Ref} | |
AnnotArg | Tree OR Constant | |
ConstAnnotArg | Constant OR AnnotInfo OR AnnotArgArray |