解析器生成器 LLnextgen

openkk 13年前
     LLnextgen 部分实现了 LLgen 扩展-LL(1) 解析器生成器,是 Amsterdam Compiler Kit 的一部分。使用类 EBNF 的语法描述以及使用 C 作为输入的联合语义行为,并生成 C 代码。生成的代码是严格的 ANSI C,可使用各种流行的 C 编译器进行编译。    <br /> 它提供的一些特性包括:    <ul>     <li> <p><strong>Tracing of conflicts</strong> – LLgen can only indicate where a conflict is detected, but not where it is caused. As the cause may be in a seemingly unrelated rule, conflicts can be very hard to find. LLnextgen can trace the cause of conflicts, making it much easier to resolve them.</p> </li>     <li> <p><strong>Symbol tables</strong> – A symbol table can be auto-generated if the needed information is supplied.</p> </li>     <li> <p><strong>Common code generation</strong> – Generation of code for reporting errors and wrapping the lexical analyser. This code is required by LLnextgen and LLgen, and is similar for all parsers created with LLnextgen/LLgen. The default code can also be used as a starting point for creating one's own code.</p> </li>     <li> <p><strong>Return values</strong> – Return values for non-terminals.</p> </li>    </ul>    <br />    <p><strong>项目主页:</strong><a href="http://www.open-open.com/lib/view/home/1325298254702" target="_blank">http://www.open-open.com/lib/view/home/1325298254702</a></p>