Age | Commit message (Collapse) | Author |
|
There are multiple subtle errors in the previous version, both in the
codes and in the description of the BNF format. This version should
fix some problems now.
This version can successfully parse the grammar of its own grammar
format, which is quite nice. See test/check_reader.c for parsing this
format.
|
|
Now we have a working implementation of predicates. It now only
remains to write the parser of grammars. Of course we shall generate
this parser by this parser generator itself, because why not. ;-P
|
|
Previously I used hash tables, which consume too much memory. Now the
critical parts are replaced by a new hand-written library called
"tuple.h". Now we can easily parse larger inputs. I haven't tested
its limits, though.
|
|
Hash tables take too much space!
If I use hash tables, the length of the input will be severely
limited, to an unacceptable extent. So we have to use arrays
instead.
|
|
Now we need to implement predicates, in order to have practical
applications.
|
|
I now have a working algorithm in test/check_cnp. It can correctly
parse the grammar for an esoteric language called "Brainfuck". This
language does not matter. What matters is that it contains
parentheses. So this shows that at least for grammars as complex as
parentheses, this parser works well. Haha.
|
|
A prototype of BSR is roughly finished.
|
|
Just to save some work.
|
|
Now we have the potential to recognize character classes. But the
most important task for us now is to experiment with ((B)RN)GLR
algorithms, so we leave the character classes at the present state for
a moment.
|
|
Now we can read grammars from a file.
But we need to check if it works for reading strings still.
|
|
The current representation of the grammar is the most primitive BNF.
This is the simplest to implement, but is difficult to cope with user
requirements. Moreover, I find another paper describing the GLR
algorithm, so I need to think about the representation of the grammar
more. In particular, I would like the generation of the grammar to be
incremental, so per chance its data type should be adapted
accordingly.
|
|
Now the rough framework is established and the grammar class is sort
of ready.
It remains to write a general input reading mechanism.
|