4
/** This object provides constants for pickling attributes.
6
* If you extend the format, be sure to increase the
7
* version minor number.
9
* @author Martin Odersky
12
@deprecated("scala.reflect.generic will be removed", "2.9.1") object PickleFormat {
14
/***************************************************
15
* Symbol table attribute format:
16
* Symtab = nentries_Nat {Entry}
17
* Entry = 1 TERMNAME len_Nat NameInfo
18
* | 2 TYPENAME len_Nat NameInfo
20
* | 4 TYPEsym len_Nat SymbolInfo
21
* | 5 ALIASsym len_Nat SymbolInfo
22
* | 6 CLASSsym len_Nat SymbolInfo [thistype_Ref]
23
* | 7 MODULEsym len_Nat SymbolInfo
24
* | 8 VALsym len_Nat [defaultGetter_Ref /* no longer needed*/] SymbolInfo [alias_Ref]
25
* | 9 EXTref len_Nat name_Ref [owner_Ref]
26
* | 10 EXTMODCLASSref len_Nat name_Ref [owner_Ref]
28
* | 12 NOPREFIXtpe len_Nat
29
* | 13 THIStpe len_Nat sym_Ref
30
* | 14 SINGLEtpe len_Nat type_Ref sym_Ref
31
* | 15 CONSTANTtpe len_Nat constant_Ref
32
* | 16 TYPEREFtpe len_Nat type_Ref sym_Ref {targ_Ref}
33
* | 17 TYPEBOUNDStpe len_Nat tpe_Ref tpe_Ref
34
* | 18 REFINEDtpe len_Nat classsym_Ref {tpe_Ref}
35
* | 19 CLASSINFOtpe len_Nat classsym_Ref {tpe_Ref}
36
* | 20 METHODtpe len_Nat tpe_Ref {sym_Ref}
37
* | 21 POLYTtpe len_Nat tpe_Ref {sym_Ref}
38
* | 22 IMPLICITMETHODtpe len_Nat tpe_Ref {sym_Ref} /* no longer needed */
39
* | 52 SUPERtpe len_Nat tpe_Ref tpe_Ref
40
* | 24 LITERALunit len_Nat
41
* | 25 LITERALboolean len_Nat value_Long
42
* | 26 LITERALbyte len_Nat value_Long
43
* | 27 LITERALshort len_Nat value_Long
44
* | 28 LITERALchar len_Nat value_Long
45
* | 29 LITERALint len_Nat value_Long
46
* | 30 LITERALlong len_Nat value_Long
47
* | 31 LITERALfloat len_Nat value_Long
48
* | 32 LITERALdouble len_Nat value_Long
49
* | 33 LITERALstring len_Nat name_Ref
50
* | 34 LITERALnull len_Nat
51
* | 35 LITERALclass len_Nat tpe_Ref
52
* | 36 LITERALenum len_Nat sym_Ref
53
* | 40 SYMANNOT len_Nat sym_Ref AnnotInfoBody
54
* | 41 CHILDREN len_Nat sym_Ref {sym_Ref}
55
* | 42 ANNOTATEDtpe len_Nat [sym_Ref /* no longer needed */] tpe_Ref {annotinfo_Ref}
56
* | 43 ANNOTINFO len_Nat AnnotInfoBody
57
* | 44 ANNOTARGARRAY len_Nat {constAnnotArg_Ref}
58
* | 47 DEBRUIJNINDEXtpe len_Nat level_Nat index_Nat
59
* | 48 EXISTENTIALtpe len_Nat type_Ref {symbol_Ref}
60
* | 49 TREE len_Nat 1 EMPTYtree
61
* | 49 TREE len_Nat 2 PACKAGEtree type_Ref sym_Ref mods_Ref name_Ref {tree_Ref}
62
* | 49 TREE len_Nat 3 CLASStree type_Ref sym_Ref mods_Ref name_Ref tree_Ref {tree_Ref}
63
* | 49 TREE len_Nat 4 MODULEtree type_Ref sym_Ref mods_Ref name_Ref tree_Ref
64
* | 49 TREE len_Nat 5 VALDEFtree type_Ref sym_Ref mods_Ref name_Ref tree_Ref tree_Ref
65
* | 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
66
* | 49 TREE len_Nat 7 TYPEDEFtree type_Ref sym_Ref mods_Ref name_Ref tree_Ref {tree_Ref}
67
* | 49 TREE len_Nat 8 LABELtree type_Ref sym_Ref tree_Ref {tree_Ref}
68
* | 49 TREE len_Nat 9 IMPORTtree type_Ref sym_Ref tree_Ref {name_Ref name_Ref}
69
* | 49 TREE len_Nat 11 DOCDEFtree type_Ref sym_Ref string_Ref tree_Ref
70
* | 49 TREE len_Nat 12 TEMPLATEtree type_Ref sym_Ref numparents_Nat {tree_Ref} tree_Ref {tree_Ref}
71
* | 49 TREE len_Nat 13 BLOCKtree type_Ref tree_Ref {tree_Ref}
72
* | 49 TREE len_Nat 14 CASEtree type_Ref tree_Ref tree_Ref tree_Ref
73
* | 49 TREE len_Nat 15 SEQUENCEtree type_Ref {tree_Ref}
74
* | 49 TREE len_Nat 16 ALTERNATIVEtree type_Ref {tree_Ref}
75
* | 49 TREE len_Nat 17 STARtree type_Ref {tree_Ref}
76
* | 49 TREE len_Nat 18 BINDtree type_Ref sym_Ref name_Ref tree_Ref
77
* | 49 TREE len_Nat 19 UNAPPLYtree type_Ref tree_Ref {tree_Ref}
78
* | 49 TREE len_Nat 20 ARRAYVALUEtree type_Ref tree_Ref {tree_Ref}
79
* | 49 TREE len_Nat 21 FUNCTIONtree type_Ref sym_Ref tree_Ref {tree_Ref}
80
* | 49 TREE len_Nat 22 ASSIGNtree type_Ref tree_Ref tree_Ref
81
* | 49 TREE len_Nat 23 IFtree type_Ref tree_Ref tree_Ref tree_Ref
82
* | 49 TREE len_Nat 24 MATCHtree type_Ref tree_Ref {tree_Ref}
83
* | 49 TREE len_Nat 25 RETURNtree type_Ref sym_Ref tree_Ref
84
* | 49 TREE len_Nat 26 TREtree type_Ref tree_Ref tree_Ref {tree_Ref}
85
* | 49 TREE len_Nat 27 THROWtree type_Ref tree_Ref
86
* | 49 TREE len_Nat 28 NEWtree type_Ref tree_Ref
87
* | 49 TREE len_Nat 29 TYPEDtree type_Ref tree_Ref tree_Ref
88
* | 49 TREE len_Nat 30 TYPEAPPLYtree type_Ref tree_Ref {tree_Ref}
89
* | 49 TREE len_Nat 31 APPLYtree type_Ref tree_Ref {tree_Ref}
90
* | 49 TREE len_Nat 32 APPLYDYNAMICtree type_Ref sym_Ref tree_Ref {tree_Ref}
91
* | 49 TREE len_Nat 33 SUPERtree type_Ref sym_Ref tree_Ref name_Ref
92
* | 49 TREE len_Nat 34 THIStree type_Ref sym_Ref name_Ref
93
* | 49 TREE len_Nat 35 SELECTtree type_Ref sym_Ref tree_Ref name_Ref
94
* | 49 TREE len_Nat 36 IDENTtree type_Ref sym_Ref name_Ref
95
* | 49 TREE len_Nat 37 LITERALtree type_Ref constant_Ref
96
* | 49 TREE len_Nat 38 TYPEtree type_Ref
97
* | 49 TREE len_Nat 39 ANNOTATEDtree type_Ref tree_Ref tree_Ref
98
* | 49 TREE len_Nat 40 SINGLETONTYPEtree type_Ref tree_Ref
99
* | 49 TREE len_Nat 41 SELECTFROMTYPEtree type_Ref tree_Ref name_Ref
100
* | 49 TREE len_Nat 42 COMPOUNDTYPEtree type_Ref tree_Ref
101
* | 49 TREE len_Nat 43 APPLIEDTYPEtree type_Ref tree_Ref {tree_Ref}
102
* | 49 TREE len_Nat 44 TYPEBOUNDStree type_Ref tree_Ref tree_Ref
103
* | 49 TREE len_Nat 45 EXISTENTIALTYPEtree type_Ref tree_Ref {tree_Ref}
104
* | 50 MODIFIERS len_Nat flags_Long privateWithin_Ref
105
* SymbolInfo = name_Ref owner_Ref flags_LongNat [privateWithin_Ref] info_Ref
106
* NameInfo = <character sequence of length len_Nat in Utf8 format>
107
* NumInfo = <len_Nat-byte signed number in big endian format>
109
* AnnotInfoBody = info_Ref {annotArg_Ref} {name_Ref constAnnotArg_Ref}
110
* AnnotArg = Tree | Constant
111
* ConstAnnotArg = Constant | AnnotInfo | AnnotArgArray
113
* len is remaining length after `len'.
117
def VersionString = "V" + MajorVersion + "." + MinorVersion
119
final val TERMname = 1
120
final val TYPEname = 2
121
final val NONEsym = 3
122
final val TYPEsym = 4
123
final val ALIASsym = 5
124
final val CLASSsym = 6
125
final val MODULEsym = 7
128
final val EXTMODCLASSref = 10
130
final val NOPREFIXtpe = 12
131
final val THIStpe = 13
132
final val SINGLEtpe = 14
133
final val CONSTANTtpe = 15
134
final val TYPEREFtpe = 16
135
final val TYPEBOUNDStpe = 17
136
final val REFINEDtpe = 18
137
final val CLASSINFOtpe = 19
138
final val METHODtpe = 20
139
final val POLYtpe = 21
140
final val IMPLICITMETHODtpe = 22 // no longer generated
142
final val LITERAL = 23 // base line for literals
143
final val LITERALunit = 24
144
final val LITERALboolean = 25
145
final val LITERALbyte = 26
146
final val LITERALshort = 27
147
final val LITERALchar = 28
148
final val LITERALint = 29
149
final val LITERALlong = 30
150
final val LITERALfloat = 31
151
final val LITERALdouble = 32
152
final val LITERALstring = 33
153
final val LITERALnull = 34
154
final val LITERALclass = 35
155
final val LITERALenum = 36
156
final val SYMANNOT = 40
157
final val CHILDREN = 41
158
final val ANNOTATEDtpe = 42
159
final val ANNOTINFO = 43
160
final val ANNOTARGARRAY = 44
162
final val SUPERtpe = 46
163
final val DEBRUIJNINDEXtpe = 47
164
final val EXISTENTIALtpe = 48
166
final val TREE = 49 // prefix code that means a tree is coming
167
final val EMPTYtree = 1
168
final val PACKAGEtree = 2
169
final val CLASStree = 3
170
final val MODULEtree = 4
171
final val VALDEFtree = 5
172
final val DEFDEFtree = 6
173
final val TYPEDEFtree = 7
174
final val LABELtree = 8
175
final val IMPORTtree = 9
176
final val DOCDEFtree = 11
177
final val TEMPLATEtree = 12
178
final val BLOCKtree = 13
179
final val CASEtree = 14
180
// This node type has been removed.
181
// final val SEQUENCEtree = 15
182
final val ALTERNATIVEtree = 16
183
final val STARtree = 17
184
final val BINDtree = 18
185
final val UNAPPLYtree = 19
186
final val ARRAYVALUEtree = 20
187
final val FUNCTIONtree = 21
188
final val ASSIGNtree = 22
189
final val IFtree = 23
190
final val MATCHtree = 24
191
final val RETURNtree = 25
192
final val TREtree = 26
193
final val THROWtree = 27
194
final val NEWtree = 28
195
final val TYPEDtree = 29
196
final val TYPEAPPLYtree = 30
197
final val APPLYtree = 31
198
final val APPLYDYNAMICtree = 32
199
final val SUPERtree = 33
200
final val THIStree = 34
201
final val SELECTtree = 35
202
final val IDENTtree = 36
203
final val LITERALtree = 37
204
final val TYPEtree = 38
205
final val ANNOTATEDtree = 39
206
final val SINGLETONTYPEtree = 40
207
final val SELECTFROMTYPEtree = 41
208
final val COMPOUNDTYPEtree = 42
209
final val APPLIEDTYPEtree = 43
210
final val TYPEBOUNDStree = 44
211
final val EXISTENTIALTYPEtree = 45
213
final val MODIFIERS = 50
215
final val firstSymTag = NONEsym
216
final val lastSymTag = VALsym
217
final val lastExtSymTag = EXTMODCLASSref
220
//The following two are no longer accurate, because ANNOTATEDtpe,
221
//SUPERtpe, ... are not in the same range as the other types
222
//final val firstTypeTag = NOtpe
223
//final val lastTypeTag = POLYtpe