Lines Matching defs:EvalResult

67     EvalResult LHSResult;
77 EvalResult RHSResult;
119 class EvalResult {
121 EvalResult() : Value(0) {}
122 EvalResult(uint64_t Value) : Value(Value) {}
123 EvalResult(std::string ErrorMsg)
152 EvalResult unexpectedToken(StringRef TokenStart, StringRef SubExpr,
165 return EvalResult(std::move(ErrorMsg));
168 bool handleError(StringRef Expr, const EvalResult &R) const {
207 EvalResult computeBinOpResult(BinOpToken Op, const EvalResult &LHSResult,
208 const EvalResult &RHSResult) const {
213 return EvalResult(LHSResult.getValue() + RHSResult.getValue());
215 return EvalResult(LHSResult.getValue() - RHSResult.getValue());
217 return EvalResult(LHSResult.getValue() & RHSResult.getValue());
219 return EvalResult(LHSResult.getValue() | RHSResult.getValue());
221 return EvalResult(LHSResult.getValue() << RHSResult.getValue());
223 return EvalResult(LHSResult.getValue() >> RHSResult.getValue());
244 std::pair<EvalResult, StringRef> evalDecodeOperand(StringRef Expr) const {
253 EvalResult(("Cannot decode unknown symbol '" + Symbol + "'").str()),
262 EvalResult Number;
281 EvalResult OpIdxExpr;
295 EvalResult(("Couldn't decode instruction at '" + Symbol + "'").str()),
307 return std::make_pair(EvalResult(ErrMsgStream.str()), "");
310 return std::make_pair(EvalResult(ErrMsgStream.str()), "");
335 return std::make_pair(EvalResult(Op.getImm()), RemainingExpr);
344 std::pair<EvalResult, StringRef> evalNextPC(StringRef Expr,
354 EvalResult(("Cannot decode unknown symbol '" + Symbol + "'").str()),
366 EvalResult(("Couldn't decode instruction at '" + Symbol + "'").str()),
380 return std::make_pair(EvalResult(NextPC), RemainingExpr);
388 std::pair<EvalResult, StringRef>
430 return std::make_pair(EvalResult(ErrorMsg), "");
432 return std::make_pair(EvalResult(StubAddr), RemainingExpr);
435 std::pair<EvalResult, StringRef> evalSectionAddr(StringRef Expr,
469 return std::make_pair(EvalResult(ErrorMsg), "");
471 return std::make_pair(EvalResult(StubAddr), RemainingExpr);
477 std::pair<EvalResult, StringRef> evalIdentifierExpr(StringRef Expr,
503 return std::make_pair(EvalResult(ErrMsg), "");
513 return std::make_pair(EvalResult(Value), RemainingExpr);
536 std::pair<EvalResult, StringRef> evalNumberExpr(StringRef Expr) const {
546 return std::make_pair(EvalResult(Value), RemainingExpr);
552 std::pair<EvalResult, StringRef> evalParensExpr(StringRef Expr,
555 EvalResult SubExprResult;
572 std::pair<EvalResult, StringRef> evalLoadExpr(StringRef Expr) const {
578 return std::make_pair(EvalResult("Expected '{' following '*'."), "");
580 EvalResult ReadSizeExpr;
586 return std::make_pair(EvalResult("Invalid size for dereference."), "");
588 return std::make_pair(EvalResult("Missing '}' for dereference."), "");
593 EvalResult LoadAddrExprResult;
608 EvalResult(Checker.readMemoryAtAddr(LoadAddr, ReadSize)),
619 std::pair<EvalResult, StringRef> evalSimpleExpr(StringRef Expr,
621 EvalResult SubExprResult;
625 return std::make_pair(EvalResult("Unexpected end of expression"), "");
658 std::pair<EvalResult, StringRef>
659 evalSliceExpr(const std::pair<EvalResult, StringRef> &Ctx) const {
660 EvalResult SubExprResult;
667 EvalResult HighBitExpr;
678 EvalResult LowBitExpr;
693 return std::make_pair(EvalResult(SlicedValue), RemainingExpr);
702 std::pair<EvalResult, StringRef>
703 evalComplexExpr(const std::pair<EvalResult, StringRef> &LHSAndRemaining,
705 EvalResult LHSResult;
723 EvalResult RHSResult;
732 EvalResult ThisResult(computeBinOpResult(BinOp, LHSResult, RHSResult));