DEVELOPER_NOTES 1.1 KB
Newer Older
1 2
the top of the pushdown store:
  the top of the pushdown store is on the left meaning that transition function (r, xyz) \in (q, 0, abc) will pop symbol a first than symbol b and then symbol c, push symbol z then symbol y and finally symbol x. The typical representation is a vector of symbols so for the pop part forward iterators begin and end should be used and for the push part reversed iterators rbegin and rend should be used. This is very much similar to grammars where context free grammars generating a string or a sentential from a rules say A -> aBb| c product a^ncb^n. First b is pushed then B and finally a.
3 4

String parsers cannot process correctly text files with more than 4096 characters on a single line at least on some systems. There is a bug in unget and putback function on istream.
5 6

Measuring memory allocations with library compiled by g++ is not working. The overload of operator new does not work properly.
7 8

All grammars with rules not allowing epsilon on the right hand side have special boolean flag generatesEpsilon. Thanks to this flag no other special handling of generating epsilon is needed.