C++解析代码(手写)

标签 c++ parsing

我需要解析一种类似于 Java 的最小化版本的语言。由于效率是最重要的因素,所以我选择手写解析器而不是像 GOLD、bison 和 yacc 这样的 LRAR 解析器生成器。

但是我找不到优秀的手写解析器背后的理论。似乎只有关于这些生成器及其背后机制的教程。

我必须放弃使用正则表达式吗?因为我可以想象它们比手写的 tokiners 慢。

有人知道手写解析的好类(class)或教程吗?

最佳答案

如果有帮助,这里是(不是类(class)或教程,而是)手写解析器的示例:https://github.com/tabatkins/css-parser (然而,它被明确编码为与规范正确/简单对应,而不是为高性能而优化)。

我预计,更大的问题是制定解析规范。解析器规范的示例包括 http://dev.w3.org/csswg/css3-syntax/以及用于解析 HTML5 的类似方法。

使用解析器生成器的先决条件是语言语法已由语法定义(解析器生成器支持语法格式),而不是由解析算法定义。

关于C++解析代码(手写),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13858866/

相关文章:

java - 解析带有端口的连接字符串

.net - 可以从非托管 C++ 调用托管 DLL 吗?

c++ - 无法将类型转换为类型* - C++ 编译错误

c++ - 强制 cpp_dec_float 向下舍入

c# - 在 Windows CE 的托管 C# 代码中加载 native DLL 作为调试模块

parsing - Antlr解析匹配固定字符串长度而不是规则

python - 将文本文件内容解析为Python对象并将对象写回到可解析的文本文件中

parsing - Rust 编译器如何标记泛型中的 '>' 与 '>>'?

c - 使用 C 中的 strtok 解析配置中的字符串

c++ - 数组和最小值