问题标签 [parsing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 在 Java 中创建自然 DSL 的最佳工具是什么?
几天前,我阅读了一篇博客文章 ( http://ayende.com/Blog/archive/2008/09/08/Implementing-generic-natural-language-DSL.aspx ),其中作者讨论了使用 .NET 的通用自然语言 DSL 解析器。
在我看来,他的想法的绝妙之处在于,文本被解析并与使用与句子同名的类进行匹配。
以下面几行为例:
将使用“已知”对象的集合进行转换,该集合采用解析结果。一些示例对象将是(在我的示例中使用 Java):
因此,在处理第一句时,CreateUser 类将是一个匹配项(显然是因为它是“create user”的串联),并且由于它在构造函数上接受一个参数,因此解析器会将“user1”作为用户参数。
之后,解析器将识别下一部分“with email”也匹配一个方法名称,并且由于该方法带有一个参数,它会将“test@email.com”解析为电子邮件参数。
我想你现在明白了,对吧?至少对我来说,一个非常明确的应用是允许应用程序测试人员用自然语言创建“测试脚本”,然后将句子解析为使用 JUnit 来检查应用程序行为的类。
我想听听关于可以使用 Java 编写此类解析器的工具或资源的想法、提示和意见。如果我们可以避免使用复杂的词法分析器,或者像 ANTLR 这样的框架,我认为这可能会用锤子杀死苍蝇,那就更好了。
不仅如此,如果有人愿意为此启动一个开源项目,我肯定会感兴趣。
c++ - 如何从 INI 文件中读取配置文件条目
我无法使用这些Get*Profile
功能,因为我使用的是旧版本的 Windows CE 平台 SDK,它没有这些功能。它不必太笼统。
我只需要打开文件,检查“section”是否存在,以及与“name”关联的值。首选标准 C++。
c# - 解析浮点数的最佳方法?
在 CSharp 中解析浮点数的最佳方法是什么?我知道 TryParse,但我特别想知道的是点、逗号等。
我的网站有问题。在我的开发服务器上,“,”代表小数,“。” 为分隔符。但是在产品服务器上,情况正好相反。我怎样才能最好地捕捉到这一点?
php - 标记字符串的标准算法,保留分隔符(在 PHP 中)
我想将算术表达式拆分为标记,将其转换为 RPN。
Java 有 StringTokenizer,它可以选择保留分隔符。这样,我可以使用运算符作为分隔符。不幸的是,我需要在具有 strtok 的 PHP 中执行此操作,但这会丢弃分隔符,所以我需要自己酿造一些东西。
这听起来像是 Compiler Design 101 的经典教科书示例,但恐怕我在这里缺乏一些正规教育。您可以指出我的标准算法吗?
我的其他选择是阅读词法分析或使用可用的字符串函数快速汇总一些内容。
parsing - “解析”的反义词是什么?
我有一个函数 parseQuery,它将 SQL 查询解析为该查询的抽象表示。
我即将编写一个函数,该函数采用查询的抽象表示并返回 SQL 查询字符串。
我应该怎么称呼第二个功能?
xml - 我有一个 100+MB 的 XML 文件(sans-DTD/Schema)。XSLT 不会有它。转换/解析的策略?
该 XML 文件包含去年全年的存档新闻报道。我被要求按故事类别[y|ies] 将这些故事分类到新的 XML 文件中。
变成
...等等。
我使用一次性 python 脚本完成了这项工作,但是,我最初尝试使用 XSLT 进行此操作。这让我很沮丧,因为我的 XPATH 选择弄得一团糟。测试文件被完美地转换了,但是将大文件放在我的样式表上导致......什么都没有。
您推荐哪些策略来确保此类文件将通过 XSLT 运行?这是供应商交给我的,所以想象一下,在定义这个文件的结构时,我没有太多的影响力。
如果你们想要代码示例,我会把一些放在一起。
如果有的话,我会对一些使 XML+XSLT 顺利协同工作的技巧感到满意。
@Sklivvz
我正在使用 python 的 libxml2 & libxslt 来处理这个。我现在正在研究 xsltproc。
对于这些一次性情况,它似乎是一个很好的工具。谢谢!
@diomidis-spinellis
它的格式很好,尽管(如前所述)我没有能力发现它的有效性。
至于写一个模式,我喜欢这个主意。
如果这是一次性的事情,我在验证这个文件上投入的时间是不切实际的,尽管我预见到必须从我们的供应商处处理更多这样的文件。
编写一个模式(并将其提交给供应商)将是管理这样的 XML funk 的一个极好的长期策略。谢谢!
c# - 解析性能(If、TryParse、Try-Catch)
我非常了解处理解析文本以获取信息的不同方式。例如,对于解析整数,可以预期什么样的性能。我想知道是否有人知道这方面的任何好的统计数据。我正在从测试过这个的人那里寻找一些真实的数字。
其中哪一个在哪些情况下提供最佳性能?
parsing - 计算机科学教科书进行文本/xml/任何解析的方法
它已经在我的脑海里嗡嗡作响了一段时间。
我对 Compilers/Flex/Byson 等进行了一些调查,但我从未找到详细讨论“解析堆栈”或如何实现一个的好参考。
有谁知道我可以赶上的好的参考资料?
编辑:我非常感谢所有编译器参考,我将列出一些书籍,但我的主要关注点是解析本身,而不是你之后用它做什么。
c# - 在给定 BNF 语法的情况下输出 C# 的解析器生成器?
如果我给它一个 BNF 语法(例如http://savage.net.au/SQL/sql-2003-2.bnf),我正在寻找一个能够构建解析器(在 C# 中)的工具
这样的发电机存在吗?
python - Python中的自定义命令行解析
我正在为我的一个项目编写一个 shell,它通过设计解析如下所示的命令:
COMMAND_NAME ARG1="长值" ARG2=123 ARG3=me@me.com
我的问题是 Python 的命令行解析库(getopt 和 optparse)迫使我在参数前使用“-”或“--”。这种行为不符合我的要求。
任何想法如何解决?任何现有的图书馆?