60 |
return const_cast<VMRealExpr*>( dynamic_cast<const VMRealExpr*>(this) ); |
return const_cast<VMRealExpr*>( dynamic_cast<const VMRealExpr*>(this) ); |
61 |
} |
} |
62 |
|
|
63 |
VMScalarNumberExpr* VMExpr::asScalarNumberExpr() const { |
VMNumberExpr* VMExpr::asNumber() const { |
64 |
return const_cast<VMScalarNumberExpr*>( |
return const_cast<VMNumberExpr*>( |
65 |
dynamic_cast<const VMScalarNumberExpr*>(this) |
dynamic_cast<const VMNumberExpr*>(this) |
66 |
); |
); |
67 |
} |
} |
68 |
|
|
118 |
} |
} |
119 |
|
|
120 |
/////////////////////////////////////////////////////////////////////// |
/////////////////////////////////////////////////////////////////////// |
121 |
// class 'VMScalarNumberExpr' |
// class 'VMNumberExpr' |
122 |
|
|
123 |
vmint VMScalarNumberExpr::evalCastInt() { |
vmint VMNumberExpr::evalCastInt() { |
124 |
if (exprType() == INT_EXPR) |
if (exprType() == INT_EXPR) |
125 |
return asInt()->evalInt(); |
return asInt()->evalInt(); |
126 |
else |
else |
127 |
return vmint( asReal()->evalReal() ); |
return vmint( asReal()->evalReal() ); |
128 |
} |
} |
129 |
|
|
130 |
vmfloat VMScalarNumberExpr::evalCastReal() { |
vmfloat VMNumberExpr::evalCastReal() { |
131 |
if (exprType() == REAL_EXPR) |
if (exprType() == REAL_EXPR) |
132 |
return asReal()->evalReal(); |
return asReal()->evalReal(); |
133 |
else |
else |