让XML和YAML进行分析工作
时间:2012-6-20
如果你觉得需要一个分析器,那么还有另外一个吸引人的实现方法就是,采用XML或者是YAML来定义你的新语言。如果你选择这种做法的话,就可以使用Ruby安装时自带的XML或YAML解析库来处理分析工作,这个主意听上去近乎完美,你能获得一个完整的解释器的民有灵活性和可扩展性,而又不需要担心分析器的细节,那谁会抱怨这种实现手段呢?
遗憾的是,你的用户可能会抱怨,虽然XML和YAML是用于表达数据的首选方式,但是它们都无法完美地来表达程序,必须牢记构建一个解释器的目的是,为了向你的用户提供一个用于表达处理过程的自然途径。如果分析器的工作核心是可以自然而然地通过XML或YAML来表达,那就无须犹豫,直接使用这些数据格式并享用现成的分析器所提供的所有优势,但是如果你设计的语言无法被XML或YAML自然表达(我认为大多数的解释器模式语言无法通过数据模型自然表达),那么请不要勉强,不要为了省下一点编码时间而南辕北辙。