parser-generator相关内容

解析器组合器可以变得高效吗?

大约 6 年前,我在 OCaml 中对自己的解析器组合器进行了基准测试,发现它们比当时提供的解析器生成器慢约 5 倍.我最近重新审视了这个主题,并对 Haskell 的 Parsec 与一个简单的手动优先级爬升解析器进行了基准测试 用 F# 编写,并惊讶地发现 F# 比 Haskell 快 25 倍. 这是我用来从文件中读取大型数学表达式、解析和评估它的 Haskell 代码: impor ..
发布时间:2022-01-05 10:09:58 其他开发

C# Lua 解析器/分析器

第一件事; 我正在用 C# 编写一个小 LUA-Ide.代码执行由名为 LuaInterface 的程序集完成.代码编辑由 Scintilla-Port & 完成.RAD/UI 界面是通过可扩展的 IDesignSurfaceExt Visual Studio(一种方式代码生成).文件处理由用作项目包文件的小 sql-lite-db 提供. 总而言之,我已经拥有了我需要的一切..... ..
发布时间:2021-12-30 20:30:34 C#/.NET

从 PDF 文件中提取文本数据

是否可以在 R 中解析 PDF 文件中的文本数据?有似乎不是用于此类提取的相关包,但有没有人尝试或见过这是在 R 中完成的吗? 在 Python 中是 PDFMiner,但如果可能的话,我想将此分析全部保留在 R 中. 有什么建议吗? 解决方案 Linux 系统有 pdftotext,我用它取得了合理的成功.默认情况下,它从给定的 foo.pdf 创建 foo.txt. ..
发布时间:2021-12-14 15:53:01 其他开发

我们如何获得 TypeScript 的语法树?

是否有获取编译器语法树的过程.我们被分配到一个需要访问 typescript 语法树的项目(它是开源的,所以我们可以看到整个编译器的代码).但我们不知道如何获得它.我一直在互联网上阅读一些文章,但我真的找不到一篇用户友好的文章,或者用雷曼的术语写的.相信有人提到我们需要做的第一步是找到解析步骤.但在那之后,我们不知道接下来要做什么. 对不起,菜鸟问题.:) 解决方案 TypeScri ..

用 PHP 编写的语言解析器库

我正在寻找用 PHP 编写的语言解析器. 目标是阅读自定义语言,而不是阅读 PHP 代码. 基本上,我想指定一种语言语法,给出一个代码片段并取回一个表示它的结构.然后我可以遍历该结构来执行代码片段.我相信结构将是 AST,但我不知道这是否是唯一的选择(我对解析器及其词汇并不熟悉). 我查看了 Doctrine DQL解析器,但它看起来不像一个通用语言解析器. 解决方案 这 ..
发布时间:2021-11-26 17:46:06 PHP

ANTLR:词法分析器无法识别令牌

给定以下词法分析器语法: 词法分析器语法 CodeTableLexer;CodeTabHeader : '[代码表 1.0]';代码:'代码';表:'表';结束:'结束';行:'行';命名:'命名';dfltlang : 'dfltlang';语言 : '英语' |'德国' |'法语' |'意大利人' |'西班牙语';空:'空';数字: int ('.' 数字*)?;标识符: ('a'..'z' ..
发布时间:2021-11-11 03:49:05 其他开发

ANTLR:如何跳过多行注释

给定以下词法分析器: 词法分析器语法 CodeTableLexer;@header {包 ch.bsource.ice.parsers;}CodeTabHeader : OBracket 代码''表''版本CBracket;代码表:代码''*表;EndCodeTable : 'end' ' '* Code ' '* Table;代码:'代码';表:'表';版本:'1.0';行:'行';Tabde ..
发布时间:2021-11-11 03:47:52 其他开发

用于在 C++ 中解析许多小文本的最佳解析器生成器?

出于性能原因,我将 C# 库移植到 C++.在正常运行期间,该库需要解析大约 150'000 个平均长度小于 150 个字符的数学表达式(想想 excel 公式). 在C#版本中,我使用GOLD解析器生成解析代码.它可以在一秒内解析所有 150'000 个表达式. 因为我们正在考虑扩展我们的语言,所以我认为转向 C++ 可能是改用 ANTLR 的好机会.我已将(简单)语法移植到 ANT ..
发布时间:2021-11-11 03:46:16 C/C++开发

ANTLR 解析器挂在 proxy.handshake 调用中

我正在尝试让基本的 ECMAScript 解析器正常工作,并为 ECMAScript 3,它似乎可以正常编译并生成适当的 Lexer/Parser/Walker Java 文件. (在 Eclipse 3.5 的 ANTLR IDE 插件 内运行) 但是,当实际尝试将它与一些简单的测试代码一起使用时(遵循 ANTLR wiki 上的指南),它在尝试创建解析器时挂起: CharStream ..
发布时间:2021-11-11 03:44:04 其他开发

解析不完整的语法

是否有任何常见的解决方案如何使用不完整的语法?就我而言,我只想检测 Delphi (Pascal) 文件中的方法,这意味着 procedures 和 functions.以下第一次尝试有效 方法:( 过程 | 函数 | . )+; 但这真的是一个解决方案吗?有没有更好的解决方案?是否可以通过操作停止解析(例如,在检测到 implementation 之后).使用预处理器有意义吗?当是时 - ..
发布时间:2021-11-11 03:42:09 其他开发

编程语言解析器的来源?

我正在清理我的一个旧项目,该项目计算有关大型软件项目的许多简单指标.指标之一是文件/类/方法的长度.目前,我的代码“猜测"其中的类/方法边界基于一个非常粗略的算法(遍历文件,保持“当前深度"并在遇到未加引号的括号时对其进行调整;当你返回到一个类或方法开始的级别时,认为它已退出).但是,此过程存在许多问题,检测深度何时发生变化的“简单"方法并不总是有效. 为了使这给出准确的结果,我需要使用规范 ..
发布时间:2021-11-11 03:41:47 其他开发

XText 不提供的 ANTLR 有哪些功能?

我刚刚遇到了非常好的工具 Xtext 来创建 DSL 以及用于编辑的 IDE.我在网上进行了一些搜索,发现有人说它没有提供 ANTLR 的所有功能.我使用 ANTLR 作为我的解析器生成器. 我什至不确定 ANTLR 的哪些功能我需要为我的语言编写完整的解析器,但 ANTLR 已经存在了很长时间,并且可能支持比 Xtext 更多的功能. 谁能举例说明不能在 Xtext 语法中指定的内容 ..
发布时间:2021-11-11 03:37:33 Java开发

否定词法分析器和解析器规则

如何在 ANTLR 的词法分析器和解析器规则中使用否定元字符 ~? 解决方案 否定可能发生在 词法分析器和解析器规则. 在词法分析器规则中,您可以否定字符,在解析器规则中,您可以否定标记(词法分析器规则).但是词法分析器规则和解析器规则只能分别否定单个字符或单个标记. 举几个例子: 词法规则 要匹配除小写ascii字母以外的一个或多个字符,您可以: NO_LOWE ..
发布时间:2021-11-11 03:33:02 其他开发

最好的解析器生成器,用于解析C ++中的许多小文本?

出于性能原因,我将C#库移植到C ++.在正常运行期间,该库尤其需要解析平均长度少于150个字符的大约150'000个数学表达式(认为是excel公式). 在C#版本中,我使用了GOLD解析器来生成解析代码.它可以在一秒钟内解析所有150'000个表达式. 因为我们正在考虑扩展语言,所以我认为转向C ++可能是转换为ANTLR的好机会.我已经将(简单)语法移植到ANTLR并从中生成了C ..
发布时间:2020-09-02 23:15:06 C/C++开发