summaryrefslogtreecommitdiff
path: root/sources/scalac/symtab/EntryTags.java
blob: 71df3f73ff4840defcf3077afb1041d150d1b90b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
/*     ____ ____  ____ ____  ______                                     *\
**    / __// __ \/ __// __ \/ ____/    SOcos COmpiles Scala             **
**  __\_ \/ /_/ / /__/ /_/ /\_ \       (c) 2002, LAMP/EPFL              **
** /_____/\____/\___/\____/____/                                        **
\*                                                                      */

// $Id: EntryTags.java

package scalac.symtab;

public interface EntryTags {

/***************************************************
 * Symbol table attribute format:
 *   Symtab         = nentries_Nat {Entry}
 *   Entry          = 1 TERMNAME len_Nat NameInfo
 *                  | 2 TYPENAME len_Nat NameInfo
 *                  | 3 NONEsym len_Nat
 *                  | 4 TYPEsym len_Nat SymbolInfo lobound_Ref
 *                  | 5 ALIASsym len_Nat SymbolInfo constrsym_Ref
 *                  | 6 CLASSsym len_Nat SymbolInfo thistype_Ref constrsym_Ref
 *                  | 7 VALsym len_Nat SymbolInfo [classsym_Ref]
 *                  | 8 EXTref len_Nat name_Ref [owner_Ref]
 *                  | 9 EXTMODCLASSref len_Nat name_Ref [owner_Ref]
 *                  | 10 NOtpe len_Nat
 *                  | 11 THIStpe len_Nat sym_Ref
 *                  | 12 SINGLEtpe len_Nat type_Ref sym_Ref
 *                  | 13 TYPEREFtpe len_Nat type_Ref sym_Ref {targ_Ref}
 *                  | 14 COMPOUNDtpe len_Nat classsym_Ref {tpe_Ref}
 *                  | 15 METHODtpe len_Nat tpe_Ref {tpe_Ref}
 *                  | 16 POLYTtpe len_Nat tpe_Ref {sym_Ref}
 *                  | 17 OVERLOADEDtpe len_Nat {sym_Ref} {tpe_Ref}
 *                  | 20 FLAGGEDtpe len_Nat flags_Nat tpe_Ref
 *   SymbolInfo     = name_Ref owner_Ref flags_Nat info_Ref
 *   NameInfo       = <character sequence of length len_Nat in Utf8 format>
 *   Ref            = Nat
 *
 *   len is remaining length after `len'.
 */

    int TERMname = 1,
	TYPEname = 2,
	NONEsym = 3,
	TYPEsym = 4,
	ALIASsym = 5,
	CLASSsym = 6,
	VALsym = 7,
	EXTref = 8,
	EXTMODCLASSref = 9,
	NOtpe = 10,
	THIStpe = 11,
	SINGLEtpe = 12,
	TYPEREFtpe = 13,
	COMPOUNDtpe = 14,
	METHODtpe = 15,
	POLYtpe = 16,
	OVERLOADEDtpe = 17,
	UNBOXEDtpe = 18,
        UNBOXEDARRAYtpe = 19,
	FLAGGEDtpe = 20,
	ERRORtpe = 21;

    int firstSymTag = NONEsym, lastSymTag = VALsym;
    int firstTypeTag = NOtpe, lastTypeTag = FLAGGEDtpe;

// flag encodings

    int REPEATEDflag = 4, DEFflag = 8;
}