Lines Matching refs:Emitter
31 template <class Emitter> class LocalScope;
32 template <class Emitter> class DestructorScope;
33 template <class Emitter> class RecordScope;
34 template <class Emitter> class VariableScope;
35 template <class Emitter> class DeclScope;
36 template <class Emitter> class OptionScope;
37 template <class Emitter> class ArrayIndexScope;
38 template <class Emitter> class SourceLocScope;
41 template <class Emitter>
42 class ByteCodeExprGen : public ConstStmtVisitor<ByteCodeExprGen<Emitter>, bool>,
43 public Emitter {
46 using LabelTy = typename Emitter::LabelTy;
47 using AddrTy = typename Emitter::AddrTy;
58 : Emitter(Ctx, P, Args...), Ctx(Ctx), P(P) {} in ByteCodeExprGen()
219 friend class VariableScope<Emitter>;
220 friend class LocalScope<Emitter>;
221 friend class DestructorScope<Emitter>;
222 friend class RecordScope<Emitter>;
223 friend class DeclScope<Emitter>;
224 friend class OptionScope<Emitter>;
225 friend class ArrayIndexScope<Emitter>;
226 friend class SourceLocScope<Emitter>;
307 VariableScope<Emitter> *VarScope = nullptr;
330 template <class Emitter> class VariableScope {
332 VariableScope(ByteCodeExprGen<Emitter> *Ctx) in VariableScope()
362 ByteCodeExprGen<Emitter> *Ctx;
368 template <class Emitter> class LocalScope : public VariableScope<Emitter> {
370 LocalScope(ByteCodeExprGen<Emitter> *Ctx) : VariableScope<Emitter>(Ctx) {} in LocalScope()
417 template <class Emitter> class DestructorScope final {
419 DestructorScope(LocalScope<Emitter> &OtherScope) : OtherScope(OtherScope) {} in DestructorScope()
424 LocalScope<Emitter> &OtherScope;
429 template <class Emitter> class AutoScope : public LocalScope<Emitter> {
431 AutoScope(ByteCodeExprGen<Emitter> *Ctx) in AutoScope()
432 : LocalScope<Emitter>(Ctx), DS(*this) {} in AutoScope()
435 DestructorScope<Emitter> DS;
439 template <class Emitter> class BlockScope final : public AutoScope<Emitter> {
441 BlockScope(ByteCodeExprGen<Emitter> *Ctx) : AutoScope<Emitter>(Ctx) {} in BlockScope()
453 template <class Emitter> class ExprScope final : public AutoScope<Emitter> {
455 ExprScope(ByteCodeExprGen<Emitter> *Ctx) : AutoScope<Emitter>(Ctx) {} in ExprScope()
463 template <class Emitter> class ArrayIndexScope final {
465 ArrayIndexScope(ByteCodeExprGen<Emitter> *Ctx, uint64_t Index) : Ctx(Ctx) { in ArrayIndexScope()
473 ByteCodeExprGen<Emitter> *Ctx;
477 template <class Emitter> class SourceLocScope final {
479 SourceLocScope(ByteCodeExprGen<Emitter> *Ctx, const Expr *DefaultExpr) in SourceLocScope()
495 ByteCodeExprGen<Emitter> *Ctx;