解析是指将工件分解为其构成元素并捕获这些元素之间的关系。此标记不是关于自托管Parse平台(使用[parse-platform]标记)或解析特定编程语言中的错误的问题(而是使用相应的语言标记)。
我使用 WinSck 创建了一个 C++ 应用程序,它实现了一个小型(仅处理我需要的一些功能)http 服务器。这是用来使用http req与外界进行通信的...
使用 BeautifulSoup 将 HTML 中编码的 JSON 转换为 JSON
我知道这里也有人问过类似的问题,但我仍在努力寻找解决方案。我可以使用 Beautiful Soup 解析 bandintown 网站上的原始 HTML,但我的最终目标是
如果同一行中存在无效用户名,则用于解析 Telegram 用户名的正则表达式将停止解析有效用户名
下午好,我这里有一个问题,我有一个正则表达式,可以提取 Telegram 链接中的用户名,从简单的“@”开始到 username.t.me 链接 问题是如果我输入@a...
我有一个简单的 EBNF: ::= ::= int ( ) { } ::= 返回 ; ::= 我有一个简单的 EBNF: <program> ::= <function> <function> ::= int <id> ( ) { <statement> } <statement> ::= return <expr> ; <expr> ::= <int> 我正在编写纯 C 语言并针对 Linux(目前)。答案不必用 C 语言编写。 我有一个 Lexer,它只是索引源文件并创建 token 结构的链接列表。 token 仅携带 char* 和 size_t 以及引用下一个标记。这就是它的全部了。 struct Token { char *ndx; size_t length; struct Token *next; } Lexer仅用两个基本条件对源进行索引,遵循这两个基本条件来辨别 - 或区分 - 一个标记与另一个标记: 空格分隔标记 符号是记号 - ( ) [ ] { } ; ...等等 我开始使用的源文件如下所示: int main() { return 2; } 我正在尝试弄清楚如何从 EBNF 到与成员的 ProgramExpr - FunctionExpr 和 StatementExpr。由于我有代表源文件的标记,因此解析器需要解析这些标记 - 即发现它们是什么。根据产生式规则,解析器将构建一个抽象语法树(我也称之为ExpressionNode。) 如何从 EBNF 转到 Expression Node? 我想我会有一个类似的结构: struct ExprNode { enum ExprType { PROG, FUNC, IDNT, STMT, EXPR, INT_LIT } type; char *term; int pos; int line; struct ExprNode* left; struct ExprNode* right; }; 解析的程序顺序是什么?由于我的 EBNF 以 <program> 开头,我的第一个解析函数是在寻找 程序 - 即 <function> 吗?如果我们还没有 function,解析器是否会陷入寻找 函数? 当我问时,每个人都只是说“使用 ANTLR”。但我有一个问题,我想在开始使用别人的黑匣子之前了解如何解决它。 我读过 Nora Sandler 的文章,编写编译器。虽然一篇好文章,但似乎跳过了一些内容,我只是不明白。我还意识到我可能会混淆 Parser Generator 和 Parser Combinator。 附注- 有人推荐了龙书...它在我的必读清单上。 由于我的 EBNF 以 <program> 开头,这是我寻找程序的第一个解析函数 - 即 <function>? 是的,所以你可能有一个函数 look_for_a_program() 调用 look_for_a_function()。 如果我们还没有该函数,解析器是否会陷入寻找函数的过程? look_for_a_function()会更有趣。首先,它会期望关键字 int(即指向输入中文本“int”的 Token)。如果成功,它需要一个 <id>(指向输入中类似单词的文本的 Token)。依此类推,反映 EBNF 中 <function> 规则的结构。 (当它到达<statement>部分时,它不会寻找令牌,而是调用look_for_a_statement。)如果您可以成功识别规则末尾的右大括号,那么您可以创建一个 ExprNode 代表您刚刚识别的 <function>。 (处理错误是另一回事。) 这是一种特殊类型的解析器,称为“递归下降解析器”,您可以在网络上找到吨的帮助。 (非常粗略地说,ANTLR 是一个解析器生成器,它将采用您的 EBNF 并为您创建类似上述代码的内容。) 一些想法: 您可能希望向 Token 结构添加一个字段来传达词法分析器已识别的标记类型。 (例如,整数文字与类似单词的东西与标点符号)这并不是绝对必要的,但它会让解析器变得更容易。 left结构的right和ExprNode字段表明你的AST将是一个二叉树。这可能一开始会起作用,但最终(当您扩大 EBNF 时)您可能会希望允许任意数量的“子节点”。
如何删除“www”。从原始 URL 通过 python 中的 [urllib] 解析?
原网址 ▶ https://www.exeam.org/index.html 我想从原始 URL 中提取 exeam.org/ 或 exeam.org。 为此,我使用了 urllib,这是我所知道的 Python 中最强大的解析器, 但不幸的是...
ActionScript中有类似getElementById的东西吗? 我正在尝试制作一个 Flash 页面的原型,该页面从 xhtml 文件获取数据。我想要两个可访问的 html 版本(对于
我正在尝试使用 C++ 解析 NASDAQ ITCH 协议数据转储。这些文件很大,任何有兴趣的人都可以在这里找到: ftp://emi.nasdaq.com/ITCH/ 这些文件的规格归结为......
任何人都知道可以将时间字符串(例如“30min”或“2h 15min”或“2d 15h 30min”)解析为毫秒(或某种 Duration 对象)的 Java 库。 Joda-Time 可以做这样的事情吗? (...
我想通过PHP解析以下HTML:https://pastebin.com/raw/5Z59HTcW 问题是并不总是应该解析一行,而是应该在一个前面解析所有 3 个跨度元素......
为什么 C/C++ 不扫描我的代码文件夹而只扫描我的 Visual Studio 文件夹?
当我在*.c中使用“Go To Definition”时,它总是跳转到.h,而不是*.c中的函数代码。 调试后,我发现根本原因是 C/C++ 不扫描我的代码文件夹,而是只扫描我的 Visual ...
解析 biblatex (.bib) 文件并将其转换为所需的 vec 需要大量时间
我想拓宽我在编程语言方面的视野,因此,正在尝试构建一个小助手应用程序来管理 Rust 中的 .bib 文件。 现在我陷入了一个我无法解决的问题......
假设我有绳子 “[1,2,[3,4,[5,6]],7]” 我如何将其解析到数组中 [1,2,[3,4,[5,6]],7] ? 在我的用例中,嵌套结构和模式是完全任意的。 我的当前...
我有一个 Apache 日志文件,如下所示: 64.242.88.10 - - [08/Mar/2004:07:56:34 -0800]“GET /twiki/bin/search/Main/SearchResult?scope=text®ex=on&search=Web%20*Index[^A-Za- z] ...
我正在尝试解析mp4并能够解析moov,但不知道如何使用moov信息来解析mdat。 我的目标是从 mdat 获取元数据等轨道信息(如果可能的话),因为它与...
Rust FromStr,其中要解析的类型具有通用字段,并且在尝试解析之前你不会知道类型
假设您有一个想要解析的具体类型(您创建/拥有的),但该类型有一个通用字段,在本例中,我们会说可能的类型只有 u8、u16 和 u32,让我们
我需要解析一个大的csv文件(1Gb),其中包含天气数据。文件本身在这里: ftp://ftp.ncdc.noaa.gov/pub/data/ghcn/daily/by_year/2014.csv.gz 附加信息(车站代码和文件......
我对 ANTLR 语法相当陌生。这是我的 g4 文件中的内容: tptp_文件:tptp_输入* EOF; tptp_input : 带注释的公式 |包括; 带注释的公式:
给定一个月份字符串,例如: “二月” 或者 “二月” 是否有任何核心 Java 或第三方库功能可以让您将此字符串转换为相应的月份数字...
我正在Python中寻找一种安全机制来执行来自用户的潜在不安全脚本代码。 代码示例: 定义公共(v): print('允许用 '+v 触发此操作) def Secret():...
我正在开发发票解析器,它从 pdf 或图像格式的发票中提取数据。它适用于具有非表格数据的简单 pdf,但提供大量输出数据以使用包含