通常词法解析器就是完成某种语法的解析,所要处理的语法解析规则是和解析器代码糅合在一起的。这样写通常很快。而生成的数据类型通常是词法单元的字符串数组。
而将语法从词法解析器中分离出来,可以简化解析器的模型,让解析计算机语言代码成为语法树,成为一种通用的算法,二不同的,只是分离出来的语法数据。
这种通用算法让语言解释器变得简单。而语法文件同样可以作为编译器的后端,将一种代码转换成另外一种代码。
这种技术可以用于语言的转换,不同的语言模型之间,没有对应的语法模型,只能进行算法的变化,才需要使用模板技术。
可以将一种用某种语言编写的应用,移植到另外一的平台上,转换的效率要比人工转换要高很多。
因为要转换的代码所需要的语言解析器模型大大简化,只需要完成对语言的语法描述,就能完成语言的转换。