C ++で簡単なプログラムインタープリターを書いています。プログラムの内部表現を構築しているときに break ステートメントを取得した場合、どのように囲んでいるループのターゲット位置を決定すればよいですか?
void Imp::whilestmt()
{
Expr *pExpr;
accept(Token::WHILE);
expr(pExpr);
WhileStmt *pwhilestmt = new WhileStmt(pExpr,vm.getLocationCounter);
vm.add(pwhilestmt);
accept(Token::LOOP);
stmtlist();
pwhilestmt->setTarget(vm.getLocationCounter);
accept(Token::END);
accept(Token::LOOP);
vm.add(new EndLoopStmt);
}
私の break ステートメント オブジェクトは、while ステートメントのターゲットをパラメーターとして受け取ります。これを決定するにはどうすればよいですか?