# HG changeset patch # User John W. Eaton # Date 1594657846 14400 # Node ID 0ecec070c08697f53a8e4552a7dc25a30a34f540 # Parent 1dd765e54265fcb83350170ddfa33e0cf056f699 return token ID directly from base_lexer::handle_number * lex.h, lex.ll (base_lexer::handle_number): Return token ID. Accept new argument, IMAG, to indicate whether the resulting number will be an imaginary or real constant. Change all uses. diff -r 1dd765e54265 -r 0ecec070c086 libinterp/parse-tree/lex.h --- a/libinterp/parse-tree/lex.h Sat Jul 11 06:36:31 2020 -0400 +++ b/libinterp/parse-tree/lex.h Mon Jul 13 12:30:46 2020 -0400 @@ -661,7 +661,7 @@ bool whitespace_is_significant (void); - void handle_number (void); + int handle_number (bool imag); void handle_continuation (void); diff -r 1dd765e54265 -r 0ecec070c086 libinterp/parse-tree/lex.ll --- a/libinterp/parse-tree/lex.ll Sat Jul 11 06:36:31 2020 -0400 +++ b/libinterp/parse-tree/lex.ll Mon Jul 13 12:30:46 2020 -0400 @@ -1209,10 +1209,7 @@ unput (','); } else - { - curr_lexer->handle_number (); - return curr_lexer->count_token_internal (IMAG_NUM); - } + return curr_lexer->handle_number (true); } } @@ -1244,10 +1241,7 @@ unput (','); } else - { - curr_lexer->handle_number (); - return curr_lexer->count_token_internal (NUM); - } + return curr_lexer->handle_number (false); } } @@ -2935,8 +2929,8 @@ namespace octave { - void - base_lexer::handle_number (void) + int + base_lexer::handle_number (bool imag) { double value = 0.0; int nread = 0; @@ -3003,6 +2997,8 @@ update_token_positions (flex_yyleng ()); push_token (new token (NUM, value, yytxt, m_tok_beg, m_tok_end)); + + return count_token_internal (imag ? IMAG_NUM : NUM); } void