BNF for Java is a "compiler-compiler". The syntax analyzer is in place and it works. Now it needs a "compiler object" that embodies the BNF syntax itself. The project becomes a "self-compiler".
I have started work on coding the BNF grammar object. The logic is conceptually easy, following the standard BNF syntax rules. But the implementation is clunky, chunky, error-prone, and boring. I also must write the "Emitter" classes for code output.
When this milestone is reached, I will announce "Alpha" release.
Wish me luck!
-- Dan Cohen in Calgary
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
The project's BNF grammar object is complete, and seems to work. The syntax package needed some fixing. So my focus has shifted to the Parse Tree generator.
That is, the "parser" is moving ahead, and that will be a minor milestone.
But the "code emitter" extensions are still waiting for more work. When the emitters can actually produce a new "grammar object" that works, we can announce a "major milestone".
-- Dan Cohen in Calgary
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
The "code emitter" is a critical part of the compiler, and now the parser, the grammar-object, and the Parse Tree all work.
Now, it should be straight-forward to design the Code Emitter.
But there are too many files in a project! For example, the HelloWorld project uses:
- HelloWorld.xml ( The project)
- HelloWorld.bnf ( a grammar )
- HelloWorld.bnfgo ( its grammar object )
- HelloWorld.txt ( sample source text )
- SpellAWord.java ( a code emitter )
- SpellAWord.class ( compiled )
I want visual now! I want a Visual GUI.
So I've started a Swing application that reads all the files in a BNF Project, and shows them, each in its own TextArea. The Project file drives the windows, and helps to keep
I'm still designing the presentation and actions, and in a few days I'll get this uploaded to the CVS. I'll also upload the design document for the app -- it's not complete by any any means.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I pre-announced the "Next Milestone" five months ago. That was optimistic. The "Extensions" feature needed more work at the design level, and my up-and-down personal life has been busy.
Now, five months later, I have the groundwork to create extension classes.
My first extensions, "Echo" and "Spell A Word", are functional in "Hello World" project.
The next project to complete is "XREF", a grammar to analyze you BNF program, pick out the statement labels, and produce a summary report. These extensions will be useful building-blocks for the "BNF.BNF" milestone.
Bye for now,
-- Dan Cohen in Calgar
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
BNF for Java is a "compiler-compiler". The syntax analyzer is in place and it works. Now it needs a "compiler object" that embodies the BNF syntax itself. The project becomes a "self-compiler".
I have started work on coding the BNF grammar object. The logic is conceptually easy, following the standard BNF syntax rules. But the implementation is clunky, chunky, error-prone, and boring. I also must write the "Emitter" classes for code output.
When this milestone is reached, I will announce "Alpha" release.
Wish me luck!
-- Dan Cohen in Calgary
The project's BNF grammar object is complete, and seems to work. The syntax package needed some fixing. So my focus has shifted to the Parse Tree generator.
That is, the "parser" is moving ahead, and that will be a minor milestone.
But the "code emitter" extensions are still waiting for more work. When the emitters can actually produce a new "grammar object" that works, we can announce a "major milestone".
-- Dan Cohen in Calgary
The "code emitter" is a critical part of the compiler, and now the parser, the grammar-object, and the Parse Tree all work.
Now, it should be straight-forward to design the Code Emitter.
But there are too many files in a project! For example, the HelloWorld project uses:
- HelloWorld.xml ( The project)
- HelloWorld.bnf ( a grammar )
- HelloWorld.bnfgo ( its grammar object )
- HelloWorld.txt ( sample source text )
- SpellAWord.java ( a code emitter )
- SpellAWord.class ( compiled )
I want visual now! I want a Visual GUI.
So I've started a Swing application that reads all the files in a BNF Project, and shows them, each in its own TextArea. The Project file drives the windows, and helps to keep
I'm still designing the presentation and actions, and in a few days I'll get this uploaded to the CVS. I'll also upload the design document for the app -- it's not complete by any any means.
I pre-announced the "Next Milestone" five months ago. That was optimistic. The "Extensions" feature needed more work at the design level, and my up-and-down personal life has been busy.
Now, five months later, I have the groundwork to create extension classes.
My first extensions, "Echo" and "Spell A Word", are functional in "Hello World" project.
The next project to complete is "XREF", a grammar to analyze you BNF program, pick out the statement labels, and produce a summary report. These extensions will be useful building-blocks for the "BNF.BNF" milestone.
Bye for now,
-- Dan Cohen in Calgar