X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=exp%2Fexpression-parser.y;h=04a6e07a38ae924ed04cbb6736b87894eeceee61;hb=4d1bc43e9f495459f03b32a53002e1526d06dea6;hp=e4373d4db53d4ee2efe90367c61e0c842e36733b;hpb=3b0d05e8e48d43ee3cf3fe86fcdffb35a8813e63;p=fio.git diff --git a/exp/expression-parser.y b/exp/expression-parser.y index e4373d4d..04a6e07a 100644 --- a/exp/expression-parser.y +++ b/exp/expression-parser.y @@ -14,13 +14,14 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * */ #include #include #include + struct parser_value_type { double dval; long long ival; @@ -42,6 +43,7 @@ int yyerror(__attribute__((unused)) long long *result, extern int yylex(void); extern void yyrestart(FILE *file); +extern int lexer_value_is_time; %} @@ -186,7 +188,7 @@ expression: expression '+' expression { static int lexer_read_offset = 0; static char lexer_input_buffer[1000]; -int lexer_input(char* buffer, int *bytes_read, int bytes_requested) +int lexer_input(char* buffer, unsigned int *bytes_read, int bytes_requested) { int bytes_left = strlen(lexer_input_buffer) - lexer_read_offset; @@ -213,10 +215,11 @@ static void setup_to_parse_string(const char *string) } int evaluate_arithmetic_expression(const char *buffer, long long *ival, double *dval, - double implied_units) + double implied_units, int is_time) { int rc, units_specified = 0, has_error = 0; + lexer_value_is_time = is_time; setup_to_parse_string(buffer); rc = yyparse(ival, dval, &has_error, &units_specified); yyrestart(NULL);