Lines Matching refs:Emitter
31 template <class Emitter> class LocalScope;
32 template <class Emitter> class RecordScope;
33 template <class Emitter> class VariableScope;
34 template <class Emitter> class DeclScope;
35 template <class Emitter> class OptionScope;
36 template <class Emitter> class ArrayIndexScope;
39 template <class Emitter>
40 class ByteCodeExprGen : public ConstStmtVisitor<ByteCodeExprGen<Emitter>, bool>,
41 public Emitter {
44 using LabelTy = typename Emitter::LabelTy;
45 using AddrTy = typename Emitter::AddrTy;
56 : Emitter(Ctx, P, Args...), Ctx(Ctx), P(P) {} in ByteCodeExprGen()
179 friend class VariableScope<Emitter>;
180 friend class LocalScope<Emitter>;
181 friend class RecordScope<Emitter>;
182 friend class DeclScope<Emitter>;
183 friend class OptionScope<Emitter>;
184 friend class ArrayIndexScope<Emitter>;
244 VariableScope<Emitter> *VarScope = nullptr;
257 template <class Emitter> class VariableScope {
259 VariableScope(ByteCodeExprGen<Emitter> *Ctx) in VariableScope()
289 ByteCodeExprGen<Emitter> *Ctx;
298 template <class Emitter> class LocalScope : public VariableScope<Emitter> {
300 LocalScope(ByteCodeExprGen<Emitter> *Ctx) : VariableScope<Emitter>(Ctx) {} in LocalScope()
325 template <class Emitter> class BlockScope final : public LocalScope<Emitter> {
327 BlockScope(ByteCodeExprGen<Emitter> *Ctx) : LocalScope<Emitter>(Ctx) {} in BlockScope()
336 template <class Emitter> class ExprScope final : public LocalScope<Emitter> {
338 ExprScope(ByteCodeExprGen<Emitter> *Ctx) : LocalScope<Emitter>(Ctx) {} in ExprScope()
346 template <class Emitter> class ArrayIndexScope final {
348 ArrayIndexScope(ByteCodeExprGen<Emitter> *Ctx, uint64_t Index) : Ctx(Ctx) { in ArrayIndexScope()
356 ByteCodeExprGen<Emitter> *Ctx;