第十三章解析文本
结构化的文本格式,对我和机器来说,都具有可读性,在计算机界几乎从开始就流行,编程语言就是一个很好的示例,当然还有其他许多应用。解析文本,与前面一章“面向语言编程”是相关联的,因为,如果想要实现一种语言,不嵌入在 F# 中,那么,第一步就是要为这种格式创建解析器。然而,解析已有文本格式是有许多原因的,因此,,没有把它限制在解析语言这一章中。[ 也是这一章从原来第十二章中分出来的原因]
简单的文本格式,比如逗号分隔(comma separated values,CSV)格式,通常很容易解析,尽管逗号分隔格式可能有挑战,如正确地处理转义字符。随着语言变得越来越复杂,解析语言的挑战也在增加。即使是看起来很简单的语言,像 HTML,解析起来也有难度;这在一定程度上推动了 XML 的普及,因为解析器被打包成软件组件,节省了解析 XML 的工作。由于 XML 的某些限制,需要写解析器的其他文本格式仍然很流行;对特定域语言的重新兴起,也导致了在文本解析的重新兴起,因此,新的脱离编程语言的特定域语言可能已经产生。
很幸运,F# 提供了几个不同的文本解析工具,本章我们讨论其中的两个:
fslex.exe 和 fsyacc.exe 的使用
开源库FParsec 的使用
原文地址:http://blog.csdn.net/hadstj/article/details/29593911