changeset 28565:0ecec070c086

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.
author John W. Eaton <jwe@octave.org>
date Mon, 13 Jul 2020 12:30:46 -0400
parents 1dd765e54265
children 20ee8aa92897
files libinterp/parse-tree/lex.h libinterp/parse-tree/lex.ll
diffstat 2 files changed, 7 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- 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);
 
--- 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