|
|
Go to the documentation of this file.
14 #define For(par1, par2, par3) glc.setprintassign(0); std::cout << glc.getmargin() << "for (" << flush; std::cout << (par1).getname() << "; " << flush; glc.setprintassign(0); std::cout << (par2).getname() << "; " << flush; glc.setprintassign(0); std::cout << (par3).getname(); std::cout << ") " << flush; glc.setprintassign(1); glc.enablemargin(0);
16 #define For(par1, par2, par3) for ((par1); ((par2).getbool()); (par3))
20 #define If(par) glc.setprintassign(0); std::cout << glc.getmargin() << "if (" << flush; std::cout << (par).getname(); std::cout << ") " << flush; glc.setprintassign(1); glc.enablemargin(0);
22 #define If(par) if ((par).getbool())
26 #define Else std::cout << glc.getmargin() << "else " << flush; glc.enablemargin(0);
31 #define begin vbegin()
33 #define vbegin() glc.enablemargin(1); std::cout << "\n" << glc.getmargin() << "begin\n" << flush; glc.Indent();
35 #define vbegin() { glc.alwayspush();
40 #define vend() glc.Outdent(); std::cout << glc.getmargin() << "end\n" << flush;
42 #define vend() glc.alwayspop(); }
46 #define always(par) std::cout << glc.getmargin() << "always @(" << (par).getorname() << ") " << flush; glc.enablemargin(0);
48 #define always(par) glc.alwaysstart(); if ((par).getchange())
52 #define assign std::cout << glc.getmargin() << "assign " << flush; glc.enablemargin(0);
58 #define deassign(par) std::cout << glc.getmargin() << "deassign " << flush; std::cout << (par).getname() << ";\n" << flush; glc.enablemargin(1);
60 #define deassign(par) ;
64 #define begincase(par) glc.setprintassign(0); std::cout << glc.getmargin() << "case (" << flush; std::cout << (par).getcatname() << flush; std::cout << ")\n" << flush; glc.setprintassign(1); glc.Indent();
66 #define begincase(par) pushswitch((par)); if (0) {}
69 #define endcase vendcase()
71 #define vendcase() glc.Outdent(); std::cout << glc.getmargin() << "endcase\n" << flush;
73 #define vendcase() popswitch();
78 cout << glc.getmargin(); \
79 glc.setprintassign(0); std::cout << ((Signal)(par)).getcatname(); \
80 cout << " : " << flush; glc.setprintassign(1); glc.enablemargin(0);
82 #define case1(par) else if ((getswitch() == (par)).getbool())
86 #define case2(par1, par2) \
87 glc.setprintassign(0); \
88 cout << glc.getmargin(); \
89 glc.setprintassign(0); std::cout << ((Signal)(par1)).getcatname(); std::cout << ", "; \
90 glc.setprintassign(0); std::cout << ((Signal)(par2)).getcatname();\
91 cout << " : " << flush; glc.setprintassign(1); glc.enablemargin(0);
93 #define case2(par1, par2) else if ( (getswitch() == (par1)).getbool() || (getswitch() == (par2)).getbool())
97 #define case3(par1, par2, par3) \
98 glc.setprintassign(0); \
99 cout << glc.getmargin(); \
100 glc.setprintassign(0); std::cout << ((Signal)(par1)).getcatname(); std::cout << ", "; \
101 glc.setprintassign(0); std::cout << ((Signal)(par2)).getcatname(); std::cout << ", "; \
102 glc.setprintassign(0); std::cout << ((Signal)(par3)).getcatname(); \
103 cout << " : " << flush; glc.setprintassign(1); glc.enablemargin(0);
105 #define case3(par1, par2, par3) else if ( (getswitch() == (par1)).getbool() || (getswitch() == (par2)).getbool() || (getswitch() == (par3)).getbool())
109 #define Default vdefault()
111 #define vdefault() std::cout << glc.getmargin(); std::cout << "default : " << flush; glc.enablemargin(0);
113 #define vdefault() else
116 #define beginmodule vbeginmodule();
117 #define endmodule vendmodule();
123 if (glc.getpassn() != passn) \
128 passn = glc.getpassn(); \
129 if (!glc.getparent()->getchange()) \
141 #define beginfunction vbeginfunction();
142 #define endfunction vendfunction(); return (result);
152 #if (__GNUC__==2)||defined(_MSC_VER)
157 #define endperiod glc.ResetEvents();
160 #define comment(par) if (glc.getFileOpen()) {std::cout << glc.getmargin(); std::cout << (par) << "\n" << flush;} else glc.AddComment((string)(par));
166 #define printv(par) std::cout << (par) << flush;
173 #define initio glc.setparent(this); glc.setFileOpen(0);
175 #define initio glc.setparent(this); glc.getparent()->setchange(0);
181 #define Reg(cl) cl.reg(#cl)
182 #define Reg_(cl, h, l) cl.reg(h, l, #cl)
183 #define Reg__(cl, h, l, t, b) cl.reg(h, l, t, b, #cl);
185 #define Wire(cl) cl.wire(#cl)
186 #define Wire_(cl, h, l) cl.wire(h, l, #cl)
187 #define Wire__(cl, h, l, t, b) for (int __wi__ = b; __wi__ <= t; __wi__++) cl[__wi__].wire(h, l, #cl, __wi__)
189 #define Input(cl) cl.input(#cl)
190 #define Input_(cl, h, l) cl.input(h, l, #cl)
191 #define Clock(cl) cl.clock(#cl)
193 #define Output(cl) cl.output(#cl)
194 #define Output_(cl, h, l) cl.output(h, l, #cl)
196 #define OutReg(cl) cl.output(#cl, makereg)
197 #define OutReg_(cl, h, l) cl.output(h, l, #cl, makereg)
199 #define Inout(cl) cl.inout(#cl)
200 #define Inout_(cl, h, l) cl.inout(h, l, #cl)
202 #define Module(md) md.init(#md, #md)
203 #define Module_(md, fn) md.init(#md, #fn)
205 #define cns(b,v) glc.constant(b,v)