解析器生成器 LLnextgen
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>
本文由用户 openkk 自行上传分享,仅供网友学习交流。所有权归原作者,若您的权利被侵害,请联系管理员。
转载本站原创文章,请注明出处,并保留原始链接、图片水印。
本站是一个以用户分享为主的开源技术平台,欢迎各类分享!