ExprResult Parser::ParseExpression() {
ExprResult LHS(ParseAssignmentExpression());
return ParseRHSOfBinaryExpression(move(LHS), prec::Comma);
}
って書いてあるだけなんだけど、ExprResult.h なんかない。これが、
ExprResult という型を持つ LHS 変数
と読むのは僕は苦痛。ただでさえ分かりにくいのに何故、関数呼び出しと間違うような書き方にした。
ExprResult *LHS = new ExprResult(ParseAssignmentExpression());
と同じだと思うのだけど。で、ExprResult は、
typedef ActionResult<Expr*> ExprResult;
で、ActionResult は、
template<typename PtrTy>
class ActionResult<PtrTy, true> {
ですか。gdb で、ExprResult を表示してみて中にある
uintptr_t PtrWithInvalid;
を頼りに探し当てました。typedef でgrepするという手はあったな。
困ったものだ。まぁ、でも Parser は楽勝なはずです。
No comments:
Post a Comment