   Context Free Parsing Algorithms
  Hi Everyone,I am trying to write a general context free parser in Java and I was wondering where I could find information on specific algorithms. The goal is to create a parser that can read a file giving the description of a grammar in extended BNF. From their the parser can then determine whether a string is in the language as well as generate a parse tree.# Example Extended BNF Input<statement> ::= "()" | "(" {<statement>}* ")"The tree generated by the string "(()())" would be:    +-------------+    | <statement> |    +-------------+ /   |  "("   |   ")"|    +-------------+    | <statement> |    +-------------+ /    +-------------+  +-------------+ | <statement> |  | <statement> | +-------------+  +-------------+    /  \   /"("  ")"    "("   ")"In addition I would like to know how much of a performance hit a program would take by allowing context free grammars in general.The reason I would like to be able to generate context free grammars is so that I can store complex data in strings. For example a complex tree structure "((node-0, "some data", (node-1, "branch of node-0", node-2), (node-2, "branch of node-1 and node-0", node-0))".Thank you for your help!   
  A quick google turned up This which is a listing of premade gramer-parser generators.Importantly, The SLK Parser Generator seems like something you may be able to use.In C/C++ you would be looking for Flex / Bison, and Yacc. So, you can try to look for other Java ports of these programs.;  Might I also suggest Boost.Spirit if you're using C++   