Menu

Next Milestone: bnf.bnf

2004-12-10
2013-04-09
  • Daniel Cohen

    Daniel Cohen - 2004-12-10

    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

     
    • Daniel Cohen

      Daniel Cohen - 2004-12-29

      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

       
    • Daniel Cohen

      Daniel Cohen - 2005-01-10

      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.

       
    • Daniel Cohen

      Daniel Cohen - 2005-05-21

      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

       

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.