initial
[prop.git] / prop-src / list.pcc
blobe3820ceabbcc6c959a8dd710c38f107cfbc287e3
1 ###ifdef __GNUG__
2 ###pragma implementation "listimpl.h"
3 ###endif
5 #include "basics.ph"
6 #include "listimpl.h"
7 #include "ast.h"
8 #include "ir.h"
9 #include "parsegen.h"
10 //#include "logicgen.h"
11 //#include "constraint.h"
13 #define NO_TEMPLATE_KEYWORD
14 #ifndef NO_TEMPLATE_KEYWORD
16 template int length(List<Exp>);
17 template int length(List<Ty>);
18 template int length(List<Pat>);
19 template int length(List<Id>);
20 template int length(List<Inherit>);
21 template int length(List<ProductionSymbol>);
22 template int length(List<List<ProductionSymbol> >);
23 template int length(List<LabPat>);
24 template int length(List<TermDef>);
25 template int length(List<DatatypeDef>);
26 template int length(List<MatchExp>);
27 template int length(List<InferenceRule>);
28 template int length(List<MatchRule>);
30 template List<Id> append(List<Id>, List<Id>);
31 template List<Decl> append(List<Decl>, List<Decl>);
32 template List<Inherit> append(List<Inherit>, List<Inherit>);
33 template List<TermDef> append(List<TermDef>, List<TermDef>);
35 template List<MatchRule> rev (List<MatchRule>);
36 template List<Exp> rev (List<Exp>);
37 template List<.[Id, Ty]> rev (List<.[Id, Ty]>);
38 template List<.[Id, Pat]> rev (List<.[Id, Pat]>);
39 //template List<.[Id, Pats, Determinism]> rev (List<.[Id, Pats, Determinism]>);
40 //template List<ConstraintRule> rev (List<ConstraintRule>);
42 #else
44 static void dummy()
46 length((List<Exp>)#[]);
47 length((List<Ty>)#[]);
48 length((List<Pat>)#[]);
49 length((List<Id>)#[]);
50 length((List<Inherit>)#[]);
51 length((List<ProductionSymbol>)#[]);
52 length((List<List<ProductionSymbol> >)#[]);
53 length((List<LabPat>)#[]);
54 length((List<TermDef>)#[]);
55 length((List<DatatypeDef>)#[]);
56 length((List<MatchExp>)#[]);
57 length((List<InferenceRule>)#[]);
58 length((List<MatchRule>)#[]);
60 append((List<Id>)#[],      (List<Id>)#[]);
61 append((List<Decl>)#[],    (List<Decl>)#[]);
62 append((List<Inherit>)#[], (List<Inherit>)#[]);
63 append((List<TermDef>)#[], (List<TermDef>)#[]);
65 rev ((List<MatchRule>)#[]);
66 rev ((List<Exp>)#[]);
67 rev ((List<ProductionSymbol>)#[]);
68 rev ((List<.[Id, Ty]>)#[]);
69 rev ((List<.[Id, Pat]>)#[]);
70 //rev ((List<ConstraintRule>)#[]);
71 //rev ((List<.[Id, Pats, Determinism]>)#[]);
73 #endif