通俗地讲, 解析文本有哪些方式, 怎样进行的?

题叶
  • 17.3k

以前稍微接触了想, 工作以后朋友给补了一些知识, 但没有很清晰了解过,
因为前边写的一些练习, 加上上周写 Pygments 插件看的抽象的思路, 突然有点感悟,

Pygments 的方式这这样的, 简单地假想:
先有一个数组, 作为存放各种状态的栈, 从 root 栈开始,
随后定义一个系列状态, 以及匹配到各种字符串状态怎样切换,
比如遇到 " 往状态里 push 一个 'string',
随后用正则匹配内容, 适当往 'string' 栈里记录数据,
直到再次遇到关闭的 " 标记, 退出 'string' 这个栈, 继续后边的匹配,
看起来非常清晰.

我想知道是否有其他的方案也能对字符串进行解析呢, 简单的思路是怎样的?

回复
阅读 3k
1 个回答

简单的讲,实现一个语法分析器,可参见antlr,你写出文法描述文档,然后用antlr工具,生成语法解析器。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏