diff --git a/src/Core/DataFilter.cpp b/src/Core/DataFilter.cpp index 0e1a81da7..7f58fa6df 100644 --- a/src/Core/DataFilter.cpp +++ b/src/Core/DataFilter.cpp @@ -2705,6 +2705,7 @@ Result Leaf::eval(DataFilterRuntime *df, Leaf *leaf, float x, long it, RideItem returning.vector[1]=calc.b; returning.vector[2]=calc.r2; returning.vector[3]=calc.see; + returning.number = calc.m + calc.b + calc.r2 + calc.see; // sum return returning; } diff --git a/src/Core/DataFilter.y b/src/Core/DataFilter.y index 3767e7347..a7206003a 100644 --- a/src/Core/DataFilter.y +++ b/src/Core/DataFilter.y @@ -297,7 +297,17 @@ lexpr: } ; -array: expr '[' expr ']' { +array: + symbol '[' expr ']' { // reduce/reduce conflict, but added here so gets resolved + // first (order appeared in this file. + // e.g. a+b[1] is resolved as a+(b[1]) rather than (a+b)[1] + $$ = new Leaf(@1.first_column, @4.last_column); + $$->type = Leaf::Index; + $$->lvalue.l = $1; + $$->fparms << $3; + $$->op = 0; + } + | expr '[' expr ']' { $$ = new Leaf(@1.first_column, @4.last_column); $$->type = Leaf::Index; $$->lvalue.l = $1;