Home
last modified time | relevance | path

Searched refs:LabelTarget (Results 1 – 18 of 18) sorted by relevance

/arkcompiler/ets_frontend/ts2panda/src/statement/
DlabelTarget.ts22 export class LabelTarget { class
23 private static name2LabelTarget: Map<string, LabelTarget> = new Map<string, LabelTarget>();
24 private static labelTargetStack: LabelTarget[] = [];
25 private static curLoopLabelTarget: LabelTarget | undefined = undefined;
29 private preLoopLabelTarget: LabelTarget | undefined = undefined;
42 this.preLoopLabelTarget = LabelTarget.curLoopLabelTarget;
43 LabelTarget.curLoopLabelTarget = this;
67 getPreLoopLabelTarget(): LabelTarget {
84 if (LabelTarget.labelTargetStack.length === 0) {
90 static getCloseLabelTarget(): LabelTarget | undefined {
[all …]
DloopStatement.ts33 import { LabelTarget } from "./labelTarget";
45 let labelTarget = new LabelTarget(stmt, loopEndLabel, conditionLabel, needCreateLoopEnv);
46 LabelTarget.pushLabelTarget(labelTarget);
47 LabelTarget.updateName2LabelTarget(stmt.parent, labelTarget);
71 LabelTarget.popLabelTarget();
84 let labelTarget = new LabelTarget(stmt, loopEndLabel, loopStartLabel, needCreateLoopEnv);
85 LabelTarget.pushLabelTarget(labelTarget);
86 LabelTarget.updateName2LabelTarget(stmt.parent, labelTarget);
108 LabelTarget.popLabelTarget();
134 let labelTarget = new LabelTarget(stmt, loopEndLabel, incLabel, needCreateLoopEnv);
[all …]
DforOfStatement.ts22 import { LabelTarget } from "./labelTarget";
89 let labelTarget = new LabelTarget(stmt, endLabel, nextLabel, needCreateLoopEnv);
90 LabelTarget.pushLabelTarget(labelTarget);
91 LabelTarget.updateName2LabelTarget(stmt.parent, labelTarget);
99 LabelTarget.popLabelTarget();
DswitchStatement.ts27 import { LabelTarget } from "./labelTarget";
44 let labelTarget = new LabelTarget(stmt, switchEndLabel, undefined);
45 LabelTarget.pushLabelTarget(labelTarget);
46 LabelTarget.updateName2LabelTarget(stmt.parent, labelTarget);
132 LabelTarget.popLabelTarget();
DtryStatement.ts23 import { LabelTarget } from "./labelTarget";
257 private labelTarget: LabelTarget;
264 labelTarget: LabelTarget, hasLoopEnv: boolean, loopEnv?: VReg) {
/arkcompiler/ets_frontend/es2panda/compiler/core/
DlabelTarget.h31 class LabelTarget; variable
39 class LabelTarget : public LabelPair {
41 explicit LabelTarget(PandaGen *pg);
42 explicit LabelTarget(const util::StringView &label) : LabelTarget(nullptr, label) {} in LabelTarget() function
43 explicit LabelTarget(Label *target, const util::StringView &label) in LabelTarget() function
47 LabelTarget() : LabelPair(nullptr, nullptr) {}; in LabelTarget() function
49 ~LabelTarget() = default;
50 DEFAULT_COPY_SEMANTIC(LabelTarget);
51 DEFAULT_MOVE_SEMANTIC(LabelTarget);
DlabelTarget.cpp22 LabelTarget::LabelTarget(PandaGen *pg) in LabelTarget() function in panda::es2panda::compiler::LabelTarget
DdynamicContext.h72 const LabelTarget &Target() const in Target()
78 explicit DynamicContext(PandaGen *pg, LabelTarget target);
81 LabelTarget target_;
87 explicit LabelContext(PandaGen *pg, LabelTarget target) : DynamicContext(pg, target) {} in LabelContext()
105 explicit LexEnvContext(LoopEnvScope *envScope, PandaGen *pg, LabelTarget target);
126 explicit IteratorContext(PandaGen *pg, const Iterator &iterator, LabelTarget target);
DswitchBuilder.cpp29 …: pg_(pg), end_(pg->AllocLabel()), labelCtx_(pg, LabelTarget(end_, LabelTarget::BREAK_LABEL)), stm… in SwitchBuilder()
DdynamicContext.cpp26 DynamicContext::DynamicContext(PandaGen *pg, LabelTarget target) : pg_(pg), target_(target), prev_(… in DynamicContext()
37 : DynamicContext(pg, LabelTarget(labelledStmt->Ident()->Name())), labelledStmt_(labelledStmt) in LabelContext()
56 LexEnvContext::LexEnvContext(LoopEnvScope *envScope, PandaGen *pg, LabelTarget target) in LexEnvContext()
109 IteratorContext::IteratorContext(PandaGen *pg, const Iterator &iterator, LabelTarget target) in IteratorContext()
DenvScope.h71 explicit LoopEnvScope(PandaGen *pg, binder::LoopScope *scope, LabelTarget target) in LoopEnvScope()
77 explicit LoopEnvScope(PandaGen *pg, LabelTarget target, binder::LoopScope *scope) in LoopEnvScope()
Dpandagen.cpp749 util::StringView labelName = label ? label->Name() : LabelTarget::BREAK_LABEL; in ControlFlowChangeBreak()
774 util::StringView labelName = label ? label->Name() : LabelTarget::CONTINUE_LABEL; in ControlFlowChangeContinue()
800 iter->AbortContext(ControlFlowChange::BREAK, LabelTarget::RETURN_LABEL); in ControlFlowChangeReturn()
/arkcompiler/ets_frontend/es2panda/ir/statements/
DwhileStatement.cpp43 compiler::LabelTarget labelTarget(pg); in Compile()
DdoWhileStatement.cpp43 compiler::LabelTarget labelTarget(pg); in Compile()
DforUpdateStatement.cpp58 compiler::LabelTarget labelTarget(pg); in Compile()
DforInStatement.cpp81 compiler::LabelTarget labelTarget(pg); in Compile()
DforOfStatement.cpp74 compiler::LabelTarget labelTarget(pg); in Compile()
/arkcompiler/ets_frontend/ts2panda/src/
Dcompiler.ts95 import { LabelTarget } from "./statement/labelTarget";
523 private popLoopEnvWhenContinueOrBreak(labelTarget: LabelTarget, isContinue: boolean): void {
557 let continueLabelTarget = LabelTarget.getLabelTarget(stmt);
574 let breakLabelTarget = LabelTarget.getLabelTarget(stmt);
599 let labelTarget = new LabelTarget(stmt, blockEndLabel, undefined);
601 LabelTarget.updateName2LabelTarget(stmt, labelTarget);
611 LabelTarget.deleteName2LabelTarget(labelName);