<feed xmlns='http://www.w3.org/2005/Atom'>
<title>eps.git, branch master</title>
<subtitle>A parser generator written for Emacs
</subtitle>
<link rel='alternate' type='text/html' href='https://git.jsdurand.xyz/eps.git/'/>
<entry>
<title>fix errors</title>
<updated>2022-02-08T04:33:05+00:00</updated>
<author>
<name>JSDurand</name>
<email>mmemmew@gmail.com</email>
</author>
<published>2022-02-07T16:29:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.jsdurand.xyz/eps.git/commit/?id=5426d9e2a6b820e34809d639838b26643df9ab17'/>
<id>5426d9e2a6b820e34809d639838b26643df9ab17</id>
<content type='text'>
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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</content>
</entry>
<entry>
<title>dfa: add the type of "ranged dfas"</title>
<updated>2022-02-06T15:50:22+00:00</updated>
<author>
<name>JSDurand</name>
<email>mmemmew@gmail.com</email>
</author>
<published>2022-02-06T15:35:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.jsdurand.xyz/eps.git/commit/?id=aaa12504c6095b2cdfa213a3d4b269bbd5e7038a'/>
<id>aaa12504c6095b2cdfa213a3d4b269bbd5e7038a</id>
<content type='text'>
Strictly speaking, they are not DFA's at all.  They contain ranges
which can determine whether or not a character belongs to the
specified predicate terminal.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Strictly speaking, they are not DFA's at all.  They contain ranges
which can determine whether or not a character belongs to the
specified predicate terminal.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add a script to build for debugging purposes</title>
<updated>2022-02-06T10:11:03+00:00</updated>
<author>
<name>JSDurand</name>
<email>mmemmew@gmail.com</email>
</author>
<published>2022-02-06T10:11:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.jsdurand.xyz/eps.git/commit/?id=3d709982b66314b23b5957041580dd4918561a53'/>
<id>3d709982b66314b23b5957041580dd4918561a53</id>
<content type='text'>
I think this is a better practice than the previously used hard-coded
configure option.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
I think this is a better practice than the previously used hard-coded
configure option.
</pre>
</div>
</content>
</entry>
<entry>
<title>predicates start working now</title>
<updated>2022-02-05T15:23:03+00:00</updated>
<author>
<name>JSDurand</name>
<email>mmemmew@gmail.com</email>
</author>
<published>2022-02-05T15:23:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.jsdurand.xyz/eps.git/commit/?id=1c8cbfd09ff9dd02f6d8d938c45e3f29a35f6f32'/>
<id>1c8cbfd09ff9dd02f6d8d938c45e3f29a35f6f32</id>
<content type='text'>
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
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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
</pre>
</div>
</content>
</entry>
<entry>
<title>replace some hash table usage by tuples</title>
<updated>2022-02-05T09:30:11+00:00</updated>
<author>
<name>JSDurand</name>
<email>mmemmew@gmail.com</email>
</author>
<published>2022-02-05T09:30:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.jsdurand.xyz/eps.git/commit/?id=510b10b96b546fcc6c6b6be85050305ddd192a41'/>
<id>510b10b96b546fcc6c6b6be85050305ddd192a41</id>
<content type='text'>
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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</content>
</entry>
<entry>
<title>need to stop abusing hash tables</title>
<updated>2022-02-01T04:22:34+00:00</updated>
<author>
<name>JSDurand</name>
<email>mmemmew@gmail.com</email>
</author>
<published>2022-02-01T04:22:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.jsdurand.xyz/eps.git/commit/?id=3fb5430080199a6d92a63f8259fe4a88df9b83ba'/>
<id>3fb5430080199a6d92a63f8259fe4a88df9b83ba</id>
<content type='text'>
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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</content>
</entry>
<entry>
<title>cnp: save point</title>
<updated>2022-01-31T07:59:11+00:00</updated>
<author>
<name>JSDurand</name>
<email>mmemmew@gmail.com</email>
</author>
<published>2022-01-31T07:59:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.jsdurand.xyz/eps.git/commit/?id=eb007d554251456a2a508849edf91b15aab1333e'/>
<id>eb007d554251456a2a508849edf91b15aab1333e</id>
<content type='text'>
Now we need to implement predicates, in order to have practical
applications.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Now we need to implement predicates, in order to have practical
applications.
</pre>
</div>
</content>
</entry>
<entry>
<title>test/check_cnp: working algorithm</title>
<updated>2022-01-31T01:23:20+00:00</updated>
<author>
<name>JSDurand</name>
<email>mmemmew@gmail.com</email>
</author>
<published>2022-01-31T01:23:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.jsdurand.xyz/eps.git/commit/?id=a8bd5e9d85ac9928bd29add82e887f82642af893'/>
<id>a8bd5e9d85ac9928bd29add82e887f82642af893</id>
<content type='text'>
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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</content>
</entry>
<entry>
<title>rename cnp to crf</title>
<updated>2022-01-28T15:22:22+00:00</updated>
<author>
<name>JSDurand</name>
<email>mmemmew@gmail.com</email>
</author>
<published>2022-01-28T15:21:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.jsdurand.xyz/eps.git/commit/?id=e555c88b8107caf886da229444c2bed1aaef6c2c'/>
<id>e555c88b8107caf886da229444c2bed1aaef6c2c</id>
<content type='text'>
THat file implements support functions for the CNP algorithm, not the
algorithm itself.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
THat file implements support functions for the CNP algorithm, not the
algorithm itself.
</pre>
</div>
</content>
</entry>
<entry>
<title>CNP save point</title>
<updated>2022-01-28T11:27:54+00:00</updated>
<author>
<name>JSDurand</name>
<email>mmemmew@gmail.com</email>
</author>
<published>2022-01-28T03:17:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.jsdurand.xyz/eps.git/commit/?id=8ace61933130416a0b8a6b250de681a606439f48'/>
<id>8ace61933130416a0b8a6b250de681a606439f48</id>
<content type='text'>
CRF and process descriptors seem to work now.  It only remains to
implement the set of pending actions before I can work on the driver
program.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
CRF and process descriptors seem to work now.  It only remains to
implement the set of pending actions before I can work on the driver
program.
</pre>
</div>
</content>
</entry>
</feed>
