blob: acce4493b518e58f97a37b7bbf2ab79a0b29dbbe [file] [log] [blame]
David Greenebeb31a52009-05-14 22:23:47 +00001// RUN: tblgen %s | grep {Jr} | count 2
2// RUN: tblgen %s | grep {Sr} | count 2
David Greene7a572142009-05-14 23:21:40 +00003// RUN: tblgen %s | grep {NAME} | count 1
David Greenebeb31a52009-05-14 22:23:47 +00004
5// Variables for foreach
6class decls {
7 string name;
8}
9
10def Decls : decls;
11
12class A<list<string> names> {
13 list<string> Names = names;
14}
15
16class B<list<string> names> : A<!foreach(Decls.name, names, !strconcat(Decls.name, ", Sr."))>;
17
18class C<list<string> names> : A<!foreach(Decls.name, names, !strconcat(Decls.name, ", Jr."))>;
19
20class D<list<string> names> : A<!foreach(Decls.name, names, !subst("NAME", "John Smith", Decls.name))>;
21
22class Names {
23 list<string> values = ["Ken Griffey", "Seymour Cray"];
24}
25
26def People : Names;
27
28def Seniors : B<People.values>;
29def Juniors : C<People.values>;
30def Smiths : D<["NAME", "Jane Smith"]>;
31def Unprocessed : D<People.values>;