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
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright (C) 2001 Gerwin Klein <lsf@jflex.de> *
* Copyright (C) 2001 Bernhard Rumpe <rumpe@in.tum.de> *
* All rights reserved. *
* *
* License: BSD *
* *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/**
* AST node for declaration lists of functions
*/
class Tdekllist implements AST {
Tdekllist dekllist; // rest list (optional null)
Tdekl dekl; // declaration
public Tdekllist(Tdekllist p, Tdekl e) {
dekllist=p;
dekl=e;
}
public Tdekllist(Tdekl e) {
dekllist=null;
dekl=e;
}
public String toString() {
if (dekllist!=null)
return(dekllist+",\n"+dekl);
else
return(dekl.toString());
}
public void setSymtab(SymTab st) {
if (dekllist!=null)
dekllist.setSymtab(st);
dekl.setSymtab(st);
}
public void printSymtabs() {
if (dekllist!=null)
dekllist.printSymtabs();
dekl.printSymtabs();
}
public void checkcontext() {
if (dekllist!=null)
dekllist.checkcontext();
dekl.checkcontext(); // CoCo (DefFun,DefVar,Arity)
} // in function body
public void prepInterp(SymTab st) { // set pointers and indices
dekl.prepInterp(st);
if (dekllist!=null) dekllist.prepInterp(st);
}
}
|