/Falka

A tool for using fsyacc and parser-combinators together.

Primary LanguageF#

The main purpose of this tool is to  recover grammar definition from 
parser-combinators and generate for some parser functions another
parser (LALR, recursive descent or something else).

Maybe using this new parser will speedup parsing.

An internal realization of grammar types was adopted from project 
[Recursive-ascent](http://code.google.com/p/recursive-ascent/).
It is a tool similar to yacc but with more features.

Directories description

Unquote&Utils 
       was adopted from Unquote project (http://code.google.com/p/unquote/). The code 
       was a little bit adopted for my needs. Now my changes are already merged with upstream.

Common contains parser-combinator functions to build your parser 
       and some attributes which you should use to specify information about parser in the class 

Test  directory contains examples of parsers built with parser-combinators.
Falka contains analyzer of parser-functions' bodies and codegenarator of 
      FsYacc's realizations of some parser-functions. It can generate hybrid parser by analyzing 
      parsers in Test dir.
TushieTest3, TushieTest
      Falka generates source files for hybrid parser in this directories.
      TushieTest3 is for a little sql parser. TishieTest for simple arithmetic. 
      
dlls  contains FParsec and Yard DLLs which will be linked  to this project