Lines Matching refs:Emitter

26 template <class Emitter> class LabelScope {
31 LabelScope(ByteCodeStmtGen<Emitter> *Ctx) : Ctx(Ctx) {} in LabelScope()
33 ByteCodeStmtGen<Emitter> *Ctx;
37 template <class Emitter> class LoopScope final : public LabelScope<Emitter> {
39 using LabelTy = typename ByteCodeStmtGen<Emitter>::LabelTy;
40 using OptLabelTy = typename ByteCodeStmtGen<Emitter>::OptLabelTy;
42 LoopScope(ByteCodeStmtGen<Emitter> *Ctx, LabelTy BreakLabel, in LoopScope()
44 : LabelScope<Emitter>(Ctx), OldBreakLabel(Ctx->BreakLabel), in LoopScope()
61 template <class Emitter> class SwitchScope final : public LabelScope<Emitter> {
63 using LabelTy = typename ByteCodeStmtGen<Emitter>::LabelTy;
64 using OptLabelTy = typename ByteCodeStmtGen<Emitter>::OptLabelTy;
65 using CaseMap = typename ByteCodeStmtGen<Emitter>::CaseMap;
67 SwitchScope(ByteCodeStmtGen<Emitter> *Ctx, CaseMap &&CaseLabels, in SwitchScope()
69 : LabelScope<Emitter>(Ctx), OldBreakLabel(Ctx->BreakLabel), in SwitchScope()
92 template <class Emitter>
93 bool ByteCodeStmtGen<Emitter>::visitFunc(const FunctionDecl *F) { in visitFunc()
112 template <class Emitter>
113 bool ByteCodeStmtGen<Emitter>::visitStmt(const Stmt *S) { in visitStmt()
133 template <class Emitter>
134 bool ByteCodeStmtGen<Emitter>::visitCompoundStmt( in visitCompoundStmt()
136 BlockScope<Emitter> Scope(this); in visitCompoundStmt()
143 template <class Emitter>
144 bool ByteCodeStmtGen<Emitter>::visitDeclStmt(const DeclStmt *DS) { in visitDeclStmt()
162 template <class Emitter>
163 bool ByteCodeStmtGen<Emitter>::visitReturnStmt(const ReturnStmt *RS) { in visitReturnStmt()
165 ExprScope<Emitter> RetScope(this); in visitReturnStmt()
188 template <class Emitter>
189 bool ByteCodeStmtGen<Emitter>::visitIfStmt(const IfStmt *IS) { in visitIfStmt()
190 BlockScope<Emitter> IfScope(this); in visitIfStmt()
233 template <class Emitter>
234 bool ByteCodeStmtGen<Emitter>::visitVarDecl(const VarDecl *VD) { in visitVarDecl()
247 ExprScope<Emitter> Scope(this); in visitVarDecl()