Hello, This question is rather intended to people who have some knowledge on parser generation and/or on self-compiling languages. I have a custom PEG parser generator in python, called 'pijnu', just bootstrapped. Meaning it's a kind of specific language which generator (compiler) is able to produce itself by parsing its own meta-grammar, written in itself. Here is a picture that tries to illustrate how this works:
text.lang [langParser.py] ==> textTree [process.py] ==> <result> ^ | +---------------------------------------------------+ | ^ lang.pijnu [pijnuParser.py] ==> langTree [generator.py] ==> <langParser> ^ | +---------------------------------------------------+ | | v ^ pijnu.pijnu [pijnuParser.py] ==> pijnuTree [generator.py] ==> <pijnuParser> * level 1: use of a parser generated by pijnu to parse a user text, then process further * level 2: use of pijnu to generate a parser for a user language (or any other format) * level 3: use of pijnu to generate its own parser I'm an amateur and it's the first time I do such a thing. I thought a main advantage of bootstrapping was the ability to produce a compiler of next generation by feeding the present parser/generator with a modified grammar. Actually, this does not work for me. The reason I guess is that a feature addition or modification (semantic level) usually comes with a change in the language itself (syntactic, or rather grammatical, level). This latter change will prevent the current parser to accept the modified grammar: I need then to introduce the change in the current parser itself instead of only in the grammar. Is there anything wrong in my method and/or reflexion? [I still find it worthful anyway to recursively produce the generator by itself, not only for intellectual satisfaction, but also as way to validate the change.] Denis ------ la vita e estrany _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor