]> www.ginac.de Git - ginac.git/commit
Wipe out the old (bison/flex generated) parser.
authorAlexei Sheplyakov <varg@theor.jinr.ru>
Sun, 14 Sep 2008 03:13:01 +0000 (07:13 +0400)
committerAlexei Sheplyakov <varg@theor.jinr.ru>
Fri, 19 Sep 2008 09:15:50 +0000 (13:15 +0400)
commit8c732512ca284f2a586694c7c33f1a0a4a68cef7
treeaa374a935219530915528437c818b50c8422ae6b
parentb84032466e31ff23d4be3b81a3f535b2c70202e5
Wipe out the old (bison/flex generated) parser.

Bison generated parser has a number of problems:

1. Bad performance. Parsing a sum seems to be O(N^{2 + a}) (a > 0).
   For example, parsing a sum (actually, a univariate polynomial) of 32768
   terms takes about 90 sec. on my box, parsing a sum of 10^6 terms takes
   "eternity".
2. The user is expected to provide list of all symbols in the expression.
   Often this is very annoying (and useless), sometimes it is not possible
   at all.
3. Parser is not reentrant (bison *can* produce reentrant parsers, but that
   won't solve other problems).
4. Parser is difficult to extend.

Since the new parser handles almost everything (useful) as the old one, let's
remove the latter.
ginac/Makefile.am
ginac/ex.cpp
ginac/input_lexer.h [deleted file]
ginac/input_lexer.ll [deleted file]
ginac/input_parser.yy [deleted file]