Jerome, thanks for sharing your experience and some advice.
There was one project which I had done in Perl:
https://github.com/cloutiy/tmlIt's a typesetting language which generates GROFF code. Meant to make groff a little easier to work with for non-technicical people.
It was kind of a hack and I used regular expressions. It also just generates groff. Ideally I'd like to scan the source files to create an AST, which could generate different targets: latex, groff, html, epub etc...
Regarding parsing techniques, one that I found particularly interesting uses the following approach:
1. Tokens are represented by a single char.
2. Input is scanned
3. If a token is found, the char which represents that token is appended to a char array
4. At the end of scanning what you end up with is a char array (a string)
The interesting bit here is that this string which was created at the end of scanning can be used as a regular expression which represents the grammar. In short:
1. The scanner consumes tokens and generates a regex string.
2. The parser consumes the regex string generated by the scanner and compares against expected grammar patterns (also represented as an array of single chars, each char representing a token type).
I may not be explaining well, but included as an attachment some (ruby) code the author was nice enough to share.
Finally, before I can help with the eC parser/compiler, I need to get my skills up to par. Before you got to the meetup I was telling everyone how although I did CompSci, I never really got to do any programming for any job. This was almost 15 years ago! But I still have an interest and thought what better way than to try to develop some ideas that i've had lying around, or anything really.
I did write a compiler in college, but my Dragon Book days are long gone. For now I found this "Build Your Own Lisp in C" which I'll try to reproduce in eC as a (re)starter project:
http://www.buildyourownlisp.com/ PS. No worry about how long (or not) it takes to reply. I like to use the forum since whatever is posted could be useful for others later on. I know for quick replies I should use the IRC.