]> www.ginac.de Git - ginac.git/blobdiff - ginsh/ginsh_lexer.ll
pgcd(): detect relatively prime polynomials properly...
[ginac.git] / ginsh / ginsh_lexer.ll
index 896c28d34a3ae38eb91fce11cd2b95eb619dfda9..f44a95c10b95ae57b3908f6cbdc6d165b267ae51 100644 (file)
@@ -4,7 +4,7 @@
  *  This file must be processed with flex. */
 
 /*
- *  GiNaC Copyright (C) 1999-2004 Johannes Gutenberg University Mainz, Germany
+ *  GiNaC Copyright (C) 1999-2009 Johannes Gutenberg University Mainz, Germany
  *
  *  This program is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
@@ -18,7 +18,7 @@
  *
  *  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
  */
 
 
@@ -26,6 +26,8 @@
  *  Definitions
  */
 
+%pointer
+
 %{
 #include "config.h"
 
@@ -38,7 +40,7 @@
 sym_tab syms;
 
 // Type of symbols to generate (real or complex)
-unsigned symboltype = symbol_options::complex;
+unsigned symboltype = domain::complex;
 
 // lex input function
 static int ginsh_input(char *buf, int max_size);
@@ -110,10 +112,14 @@ real_symbols    return T_REAL_SYMBOLS;
 {A}{AN}*               {
                                sym_tab::const_iterator i = syms.find(yytext);
                                if (i == syms.end()) {
-                                       if (symboltype == symbol_options::complex) {
-                                               yylval = syms[yytext] = *(new symbol(yytext));
+                                       if (symboltype == domain::complex) {
+                                               symbol tmp(yytext);
+                                               syms[yytext] = tmp;
+                                               yylval = tmp;
                                        } else {
-                                               yylval = syms[yytext] = *(new symbol(yytext, symbol_options::real));
+                                               realsymbol tmp(yytext);
+                                               syms[yytext] = tmp;
+                                               yylval = tmp;
                                        }
                                } else
                                        yylval = i->second;