blob: e192d15fd6dbf30c836eecd9304180eb72539420 [file] [log] [blame]
Yifan Hong52165692016-08-12 18:06:40 -07001#include "ConstantExpression.h"
2
3#include <utils/String8.h>
4
5namespace android {
6
7ConstantExpression::ConstantExpression(const char *value)
8 : mValue(value) {
9}
10
11ConstantExpression::ConstantExpression(const ConstantExpression *lval, const char *op, const ConstantExpression* rval)
12 : mValue(android::String8::format("(%s %s %s)", lval->c_str(), op, rval->c_str()).string()) {
13}
14ConstantExpression::ConstantExpression(const char *op, const ConstantExpression *value)
15 : mValue(android::String8::format("(%s%s)", op, value->c_str()).string()) {
16}
17ConstantExpression::ConstantExpression(const ConstantExpression *cond,
18 const ConstantExpression *trueVal,
19 const ConstantExpression *falseVal)
20 : mValue(android::String8::format("(%s?%s:%s)",
21 cond->c_str(), trueVal->c_str(), falseVal->c_str()).string()) {
22}
23
24const char *ConstantExpression::c_str() const {
25 return mValue.c_str();
26}
27const char *ConstantExpression::value() const {
28 return mValue.c_str();
29}
30
31} // namespace android
32