]> www.ginac.de Git - ginac.git/blobdiff - ginac/input_lexer.ll
- Corrected use of macro AM_PATH_GINAC.
[ginac.git] / ginac / input_lexer.ll
index 04b71e832b2f17bd17b17090811d357607541ba5..18f78818746e0bbd82fd31b2650d1be3b2cb6417 100644 (file)
@@ -69,7 +69,7 @@ struct sym_def {
        ex sym;
        bool predefined;        // true = user supplied symbol, false = lexer generated symbol
 };
-typedef map<string, sym_def> sym_tab;
+typedef std::map<std::string, sym_def> sym_tab;
 static sym_tab syms;
 
 // lex input function
@@ -111,6 +111,10 @@ Digits                     ginac_yylval = (long)Digits; return T_DIGITS;
 
                        /* numbers */
 {D}+                   |
+"#"{D}+"R"{AN}+                |
+"#b"([01])+            |
+"#o"[0-7]+             |
+"#x"[0-9a-fA-F]+       |
 {D}+"."{D}*({E})?      |
 {D}*"."{D}+({E})?      |
 {D}+{E}                        ginac_yylval = numeric(yytext); return T_NUMBER;
@@ -121,7 +125,7 @@ Digits                      ginac_yylval = (long)Digits; return T_DIGITS;
                                if (i == syms.end()) {
                                        syms[yytext] = sym_def(ginac_yylval = *(new symbol(yytext)), false);
                                } else
-                                       ginac_yylval = i->second.sym;
+                                       ginac_yylval = (*i).second.sym;
                                return T_SYMBOL;
                        }
 
@@ -136,7 +140,7 @@ Digits                      ginac_yylval = (long)Digits; return T_DIGITS;
  */
 
 // The string from which we will read
-static string lexer_string;
+static std::string lexer_string;
 
 // The current position within the string
 static int curr_pos = 0;
@@ -165,7 +169,7 @@ namespace GiNaC {
 #endif // ndef NO_NAMESPACE_GINAC
 
 // Set the input string
-void set_lexer_string(const string &s)
+void set_lexer_string(const std::string &s)
 {
        lexer_string = s;
        curr_pos = 0;
@@ -190,7 +194,7 @@ bool is_lexer_symbol_predefined(const ex &s)
        if (i == syms.end())
                return false;
        else
-               return i->second.predefined;
+               return (*i).second.predefined;
 }
 
 #ifndef NO_NAMESPACE_GINAC