fixes #0002460: Use keyword 'explicit' for Quantity constructor
This commit is contained in:
@@ -813,7 +813,7 @@ public:
|
||||
first = false;
|
||||
}
|
||||
|
||||
virtual Quantity getQuantity() const { return n; }
|
||||
virtual Quantity getQuantity() const { return Quantity(n); }
|
||||
|
||||
private:
|
||||
unsigned int n;
|
||||
@@ -886,7 +886,7 @@ Expression * FunctionExpression::evalAggregate() const
|
||||
if ((qp = freecad_dynamic_cast<PropertyQuantity>(p)) != 0)
|
||||
c->collect(qp->getQuantityValue());
|
||||
else if ((fp = freecad_dynamic_cast<PropertyFloat>(p)) != 0)
|
||||
c->collect(fp->getValue());
|
||||
c->collect(Quantity(fp->getValue()));
|
||||
else
|
||||
throw Exception("Invalid property type for aggregate");
|
||||
} while (range.next());
|
||||
@@ -1358,27 +1358,27 @@ Expression * VariableExpression::eval() const
|
||||
else if (value.type() == typeid(double)) {
|
||||
double dvalue = boost::any_cast<double>(value);
|
||||
|
||||
return new NumberExpression(owner, dvalue);
|
||||
return new NumberExpression(owner, Quantity(dvalue));
|
||||
}
|
||||
else if (value.type() == typeid(float)) {
|
||||
double fvalue = boost::any_cast<float>(value);
|
||||
|
||||
return new NumberExpression(owner, fvalue);
|
||||
return new NumberExpression(owner, Quantity(fvalue));
|
||||
}
|
||||
else if (value.type() == typeid(int)) {
|
||||
int ivalue = boost::any_cast<int>(value);
|
||||
|
||||
return new NumberExpression(owner, ivalue);
|
||||
return new NumberExpression(owner, Quantity(ivalue));
|
||||
}
|
||||
else if (value.type() == typeid(long)) {
|
||||
long lvalue = boost::any_cast<long>(value);
|
||||
|
||||
return new NumberExpression(owner, lvalue);
|
||||
return new NumberExpression(owner, Quantity(lvalue));
|
||||
}
|
||||
else if (value.type() == typeid(bool)) {
|
||||
double bvalue = boost::any_cast<bool>(value) ? 1.0 : 0.0;
|
||||
|
||||
return new NumberExpression(owner, bvalue);
|
||||
return new NumberExpression(owner, Quantity(bvalue));
|
||||
}
|
||||
else if (value.type() == typeid(std::string)) {
|
||||
std::string svalue = boost::any_cast<std::string>(value);
|
||||
@@ -1619,7 +1619,7 @@ int ConstantExpression::priority() const
|
||||
TYPESYSTEM_SOURCE_ABSTRACT(App::BooleanExpression, App::NumberExpression);
|
||||
|
||||
BooleanExpression::BooleanExpression(const DocumentObject *_owner, bool _value)
|
||||
: NumberExpression(_owner, _value ? 1.0 : 0.0)
|
||||
: NumberExpression(_owner, Quantity(_value ? 1.0 : 0.0))
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@@ -1378,13 +1378,13 @@ yyreduce:
|
||||
|
||||
case 8:
|
||||
#line 74 "ExpressionParser.y" /* yacc.c:1646 */
|
||||
{ (yyval.expr) = new OperatorExpression(DocumentObject, (yyvsp[0].expr), OperatorExpression::NEG, new NumberExpression(DocumentObject, -1)); }
|
||||
{ (yyval.expr) = new OperatorExpression(DocumentObject, (yyvsp[0].expr), OperatorExpression::NEG, new NumberExpression(DocumentObject, Quantity(-1))); }
|
||||
#line 1383 "ExpressionParser.tab.c" /* yacc.c:1646 */
|
||||
break;
|
||||
|
||||
case 9:
|
||||
#line 75 "ExpressionParser.y" /* yacc.c:1646 */
|
||||
{ (yyval.expr) = new OperatorExpression(DocumentObject, (yyvsp[0].expr), OperatorExpression::POS, new NumberExpression(DocumentObject, 1)); }
|
||||
{ (yyval.expr) = new OperatorExpression(DocumentObject, (yyvsp[0].expr), OperatorExpression::POS, new NumberExpression(DocumentObject, Quantity(1))); }
|
||||
#line 1389 "ExpressionParser.tab.c" /* yacc.c:1646 */
|
||||
break;
|
||||
|
||||
@@ -1444,25 +1444,25 @@ yyreduce:
|
||||
|
||||
case 19:
|
||||
#line 87 "ExpressionParser.y" /* yacc.c:1646 */
|
||||
{ (yyval.expr) = new NumberExpression(DocumentObject, (yyvsp[0].fvalue)); }
|
||||
{ (yyval.expr) = new NumberExpression(DocumentObject, Quantity((yyvsp[0].fvalue))); }
|
||||
#line 1449 "ExpressionParser.tab.c" /* yacc.c:1646 */
|
||||
break;
|
||||
|
||||
case 20:
|
||||
#line 88 "ExpressionParser.y" /* yacc.c:1646 */
|
||||
{ (yyval.expr) = new NumberExpression(DocumentObject, (yyvsp[0].fvalue)); }
|
||||
{ (yyval.expr) = new NumberExpression(DocumentObject, Quantity((yyvsp[0].fvalue))); }
|
||||
#line 1455 "ExpressionParser.tab.c" /* yacc.c:1646 */
|
||||
break;
|
||||
|
||||
case 21:
|
||||
#line 89 "ExpressionParser.y" /* yacc.c:1646 */
|
||||
{ (yyval.expr) = new NumberExpression(DocumentObject, (double)(yyvsp[0].ivalue)); }
|
||||
{ (yyval.expr) = new NumberExpression(DocumentObject, Quantity((double)(yyvsp[0].ivalue))); }
|
||||
#line 1461 "ExpressionParser.tab.c" /* yacc.c:1646 */
|
||||
break;
|
||||
|
||||
case 22:
|
||||
#line 90 "ExpressionParser.y" /* yacc.c:1646 */
|
||||
{ (yyval.expr) = new ConstantExpression(DocumentObject, (yyvsp[0].constant).name, (yyvsp[0].constant).fvalue); }
|
||||
{ (yyval.expr) = new ConstantExpression(DocumentObject, (yyvsp[0].constant).name, Quantity((yyvsp[0].constant).fvalue)); }
|
||||
#line 1467 "ExpressionParser.tab.c" /* yacc.c:1646 */
|
||||
break;
|
||||
|
||||
@@ -1582,13 +1582,13 @@ yyreduce:
|
||||
|
||||
case 42:
|
||||
#line 117 "ExpressionParser.y" /* yacc.c:1646 */
|
||||
{ (yyval.expr) = new OperatorExpression(DocumentObject, (yyvsp[-2].expr), OperatorExpression::POW, new NumberExpression(DocumentObject, (double)(yyvsp[0].ivalue))); }
|
||||
{ (yyval.expr) = new OperatorExpression(DocumentObject, (yyvsp[-2].expr), OperatorExpression::POW, new NumberExpression(DocumentObject, Quantity((double)(yyvsp[0].ivalue)))); }
|
||||
#line 1587 "ExpressionParser.tab.c" /* yacc.c:1646 */
|
||||
break;
|
||||
|
||||
case 43:
|
||||
#line 118 "ExpressionParser.y" /* yacc.c:1646 */
|
||||
{ (yyval.expr) = new OperatorExpression(DocumentObject, (yyvsp[-3].expr), OperatorExpression::POW, new OperatorExpression(DocumentObject, new NumberExpression(DocumentObject, (double)(yyvsp[0].ivalue)), OperatorExpression::NEG, new NumberExpression(DocumentObject, -1))); }
|
||||
{ (yyval.expr) = new OperatorExpression(DocumentObject, (yyvsp[-3].expr), OperatorExpression::POW, new OperatorExpression(DocumentObject, new NumberExpression(DocumentObject, Quantity((double)(yyvsp[0].ivalue))), OperatorExpression::NEG, new NumberExpression(DocumentObject, Quantity(-1)))); }
|
||||
#line 1593 "ExpressionParser.tab.c" /* yacc.c:1646 */
|
||||
break;
|
||||
|
||||
|
||||
@@ -71,8 +71,8 @@ exp: num { $$ = $1;
|
||||
| num unit_exp %prec NUM_AND_UNIT { $$ = new OperatorExpression(DocumentObject, $1, OperatorExpression::UNIT, $2); }
|
||||
| STRING { $$ = new StringExpression(DocumentObject, $1); }
|
||||
| identifier { $$ = new VariableExpression(DocumentObject, $1); }
|
||||
| MINUSSIGN exp %prec NEG { $$ = new OperatorExpression(DocumentObject, $2, OperatorExpression::NEG, new NumberExpression(DocumentObject, -1)); }
|
||||
| '+' exp %prec POS { $$ = new OperatorExpression(DocumentObject, $2, OperatorExpression::POS, new NumberExpression(DocumentObject, 1)); }
|
||||
| MINUSSIGN exp %prec NEG { $$ = new OperatorExpression(DocumentObject, $2, OperatorExpression::NEG, new NumberExpression(DocumentObject, Quantity(-1))); }
|
||||
| '+' exp %prec POS { $$ = new OperatorExpression(DocumentObject, $2, OperatorExpression::POS, new NumberExpression(DocumentObject, Quantity(1))); }
|
||||
| exp '+' exp { $$ = new OperatorExpression(DocumentObject, $1, OperatorExpression::ADD, $3); }
|
||||
| exp MINUSSIGN exp { $$ = new OperatorExpression(DocumentObject, $1, OperatorExpression::SUB, $3); }
|
||||
| exp '*' exp { $$ = new OperatorExpression(DocumentObject, $1, OperatorExpression::MUL, $3); }
|
||||
@@ -84,10 +84,10 @@ exp: num { $$ = $1;
|
||||
| cond '?' exp ':' exp { $$ = new ConditionalExpression(DocumentObject, $1, $3, $5); }
|
||||
;
|
||||
|
||||
num: ONE { $$ = new NumberExpression(DocumentObject, $1); }
|
||||
| NUM { $$ = new NumberExpression(DocumentObject, $1); }
|
||||
| INTEGER { $$ = new NumberExpression(DocumentObject, (double)$1); }
|
||||
| CONSTANT { $$ = new ConstantExpression(DocumentObject, $1.name, $1.fvalue); }
|
||||
num: ONE { $$ = new NumberExpression(DocumentObject, Quantity($1)); }
|
||||
| NUM { $$ = new NumberExpression(DocumentObject, Quantity($1)); }
|
||||
| INTEGER { $$ = new NumberExpression(DocumentObject, Quantity((double)$1)); }
|
||||
| CONSTANT { $$ = new ConstantExpression(DocumentObject, $1.name, Quantity($1.fvalue)); }
|
||||
|
||||
args: exp { $$.push_back($1); }
|
||||
| range { $$.push_back($1); }
|
||||
@@ -114,8 +114,8 @@ cond: exp EQ exp { $$ = new OperatorExpression(Do
|
||||
unit_exp: UNIT { $$ = new UnitExpression(DocumentObject, $1.scaler, $1.unitStr ); }
|
||||
| unit_exp '/' unit_exp { $$ = new OperatorExpression(DocumentObject, $1, OperatorExpression::DIV, $3); }
|
||||
| unit_exp '*' unit_exp { $$ = new OperatorExpression(DocumentObject, $1, OperatorExpression::MUL, $3); }
|
||||
| unit_exp '^' integer { $$ = new OperatorExpression(DocumentObject, $1, OperatorExpression::POW, new NumberExpression(DocumentObject, (double)$3)); }
|
||||
| unit_exp '^' MINUSSIGN integer { $$ = new OperatorExpression(DocumentObject, $1, OperatorExpression::POW, new OperatorExpression(DocumentObject, new NumberExpression(DocumentObject, (double)$4), OperatorExpression::NEG, new NumberExpression(DocumentObject, -1))); }
|
||||
| unit_exp '^' integer { $$ = new OperatorExpression(DocumentObject, $1, OperatorExpression::POW, new NumberExpression(DocumentObject, Quantity((double)$3))); }
|
||||
| unit_exp '^' MINUSSIGN integer { $$ = new OperatorExpression(DocumentObject, $1, OperatorExpression::POW, new OperatorExpression(DocumentObject, new NumberExpression(DocumentObject, Quantity((double)$4)), OperatorExpression::NEG, new NumberExpression(DocumentObject, Quantity(-1)))); }
|
||||
| '(' unit_exp ')' { $$ = $2; }
|
||||
;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user