Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>Use <strong>TinyPG</strong>! Its an amazing all-in-one <strong>compiler compiler</strong> with a lightweight GUI, where you build your parser with <strong>RegEx</strong>, <strong>EBNF</strong>, and write <strong>C#/VB</strong> code to do something with the <strong>parse tree</strong>!</p> <p>Here's a short and informative summary that I did earlier, which also links you to the downloads.</p> <hr> <p><strong><em>My understandings of TinyPG:</em></strong></p> <p><a href="http://www.codeproject.com/KB/recipes/TinyPG.aspx" rel="noreferrer">TinyPG</a> allows you to write &amp; develop:</p> <ul> <li>Define <strong>Terminals</strong> using <a href="http://www.codeproject.com/KB/dotnet/regextutorial.aspx" rel="noreferrer"><strong>Regular Expressions</strong>.</a></li> <li>Define <strong>Non-terminals</strong> and parser rules in <a href="http://en.wikipedia.org/wiki/EBNF" rel="noreferrer"><strong>Extended BNF</strong> meta-syntax.</a></li> <li>Write <strong>Compiler</strong> code in <strong>C# or VB</strong>, within TinyPG.</li> </ul> <p>It has an in-built IDE, Windows Only <em>(created in C#.NET, open source)</em>.</p> <p>It allows you to try out &amp; preview <strong>Regular Expressions</strong> using the inbuilt <strong>RegEx tool.</strong> RegEx syntax is supported in .NET which means that even your <strong>outputted parser code</strong> uses .NET's Regular Expressions.</p> <p>You write EBNF to describe the <strong>language of your choice</strong> <em>(Here are some freely available <a href="http://www.devincook.com/GOLDParser/grammars/index.htm" rel="noreferrer">BNF Grammers that describe modern programming languages</a> (C, Java, JavaScript, C#, VB.NET, SQL-89)</em></p> <p>Using TinyPG, your <strong>RegEx</strong> along with your <strong>EBNF</strong> outputs a <strong>parse-tree</strong> <a href="http://upload.wikimedia.org/wikipedia/en/a/a9/Parser_Flow.gif" rel="noreferrer"><em>(see this diagram)</em></a>.</p> <p>Now what do you do with the parse-tree? You write <strong>C#/VB code</strong> <em>(within TinyPG, per BNF grammer rule)</em> for your <strong>Compiler/Interpreter/Translator.</strong> <em>(inside TinyPG, open the "simple expression2.tpg" file within the provided Samples to see a demo of a <strong>calculator</strong> 'compiler')</em></p> <p>TinyPG allows you to <strong>Compile and Test</strong> your <strong>tokenizer+parser+complier</strong>, within the TinyPG IDE, and it finally outputs the <strong>parser source code</strong> in C#.NET or VB.NET <em>(your choice)</em>, with <strong>ready-to-use</strong> classes.</p> <p>An excellent <strong>All-in-one Compiler Compiler</strong> for the masses. Enjoy!</p> <p><em>PS: Correct me if I'm wrong on any of this.</em></p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload