首页> 外文学位 >PSLR(1): Pseudo-scannerless minimal LR(1) for the deterministic parsing of composite languages.
【24h】

PSLR(1): Pseudo-scannerless minimal LR(1) for the deterministic parsing of composite languages.

机译:PSLR(1):用于确定性分析复合语言的无伪扫描最小LR(1)。

获取原文
获取原文并翻译 | 示例

摘要

Composite languages are composed of multiple sub-languages. Examples include the parser specification languages read by parser generators like Yacc, modern extensible languages with complex layers of domain-specific sub-languages, and even traditional programming languages like C and C++. In this dissertation, we describe PSLR(1), a new scanner-based LR(1) parser generation system that automatically eliminates scanner conflicts typically caused by language composition. The fundamental premise of PSLR(1) is the pseudo-scanner, a scanner that only recognizes tokens accepted by the current parser state. However, use of the pseudo-scanner raises several unique challenges, for which we describe a novel set of solutions. One major challenge is that practical LR(1) parser table generation algorithms merge parser states, sometimes inducing incorrect pseudoscanner behavior including new conflicts. Our solution is a new extension of IELR(1), an algorithm we have previously described for generating minimal LR(1) parser tables. Other contributions of our work include a robust system for handling the remaining scanner conflicts, a correction for syntax error handling mechanisms that are also corrupted by parser state merging, and a mechanism to enable scoping of syntactic declarations in order to further improve the modularity of sub-language specifications. While the premise of the pseudo-scanner has been described by other researchers independently, we expect our improvements to distinguish PSLR(1) as a significantly more robust scanner-based parser generation system for traditional and modern composite languages.
机译:复合语言由多种子语言组成。示例包括由解析器生成器(如Yacc)读取的解析器规范语言,具有特定领域子语言的复杂层的现代可扩展语言,甚至是诸如C和C ++的传统编程语言。在本文中,我们描述了PSLR(1),这是一个新的基于扫描仪的LR(1)解析器生成系统,它可以自动消除通常由语言组成引起的扫描仪冲突。 PSLR(1)的基本前提是伪扫描程序,即仅识别当前解析器状态接受的令牌的扫描程序。但是,伪扫描器的使用提出了一些独特的挑战,为此我们描述了一套新颖的解决方案。一个主要的挑战是实用的LR(1)解析器表生成算法会合并解析器状态,有时会导致错误的伪扫描器行为,包括新的冲突。我们的解决方案是IELR(1)的新扩展,IELR(1)是我们先前描述的用于生成最小LR(1)解析器表的算法。我们工作的其他贡献包括一个强大的系统,用于处理剩余的扫描程序冲突,对语法错误处理机制的更正,该机制也被解析器状态合并破坏,以及一种能够对语法声明进行范围界定以进一步改善sub的模块化的机制。语言规范。尽管其他研究者已经独立描述了伪扫描器的前提,但我们希望我们的改进能够使PSLR(1)区别于传统和现代复合语言的基于扫描器的解析器生成系统,其功能更加强大。

著录项

  • 作者

    Denny, Joel E.;

  • 作者单位

    Clemson University.;

  • 授予单位 Clemson University.;
  • 学科 Computer Science.
  • 学位 Ph.D.
  • 年度 2010
  • 页码 122 p.
  • 总页数 122
  • 原文格式 PDF
  • 正文语种 eng
  • 中图分类
  • 关键词

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号