klee
ExprEvaluator.h
Go to the documentation of this file.
1//===-- ExprEvaluator.h -----------------------------------------*- C++ -*-===//
2//
3// The KLEE Symbolic Virtual Machine
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10#ifndef KLEE_EXPREVALUATOR_H
11#define KLEE_EXPREVALUATOR_H
12
13#include "klee/Expr/Expr.h"
15
16namespace klee {
17 class ExprEvaluator : public ExprVisitor {
18 protected:
19 Action evalRead(const UpdateList &ul, unsigned index);
20 Action visitRead(const ReadExpr &re);
21 Action visitExpr(const Expr &e);
22
24 Action visitUDiv(const UDivExpr &e);
25 Action visitSDiv(const SDivExpr &e);
26 Action visitURem(const URemExpr &e);
27 Action visitSRem(const SRemExpr &e);
28 Action visitExprPost(const Expr& e);
29
30 public:
32
38 virtual ref<Expr> getInitialValue(const Array& os, unsigned index) = 0;
39 };
40}
41
42#endif /* KLEE_EXPREVALUATOR_H */
Action protectedDivOperation(const BinaryExpr &e)
virtual ref< Expr > getInitialValue(const Array &os, unsigned index)=0
Action evalRead(const UpdateList &ul, unsigned index)
Action visitRead(const ReadExpr &re)
Action visitExpr(const Expr &e)
Action visitExprPost(const Expr &e)
Action visitSRem(const SRemExpr &e)
Action visitSDiv(const SDivExpr &e)
Action visitURem(const URemExpr &e)
Action visitUDiv(const UDivExpr &e)
Class representing symbolic expressions.
Definition: Expr.h:91
Class representing a one byte read from an array.
Definition: Expr.h:565
Class representing a complete list of updates into an array.
Definition: Expr.h:539
Definition: main.cpp:291