annotate dmd/backend/template_t.d @ 0:10317f0c89a5

Initial commit
author korDen
date Sat, 24 Oct 2009 08:42:06 +0400
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
1 module dmd.backend.template_t;
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
2
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
3 /***********************************
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
4 * Special information for class templates.
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
5 */
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
6
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
7 struct template_t
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
8 {
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
9 /+
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
10 symlist_t TMinstances; // list of Symbols that are instances
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
11 param_t *TMptpl; // template-parameter-list
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
12 struct token_t *TMbody; // tokens making up class body
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
13 unsigned TMsequence; // sequence number at point of definition
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
14 list_t TMmemberfuncs; // templates for member functions (list of TMF's)
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
15 list_t TMexplicit; // list of TME's: primary member template explicit specializations
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
16 list_t TMnestedexplicit; // list of TMNE's: primary member template nested explicit specializations
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
17 Symbol *TMnext; // threaded list of template classes headed
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
18 // up by template_class_list
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
19 enum_TK TMtk; // TKstruct, TKclass or TKunion
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
20 int TMflags; // STRxxx flags
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
21
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
22 symbol *TMprimary; // primary class template
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
23 symbol *TMpartial; // next class template partial specialization
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
24 param_t *TMptal; // template-argument-list for partial specialization
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
25 // (NULL for primary class template)
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
26 list_t TMfriends; // list of Classsym's for which any instantiated
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
27 // classes of this template will be friends of
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
28 list_t TMnestedfriends; // list of TMNF's
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
29 int TMflags2; // !=0 means dummy template created by template_createargtab()
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
30 +/
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
31 }