【发布时间】:2013-01-31 05:44:08
【问题描述】:
在Java中,我想写一个语法匹配器。
对于string1: a = a+b, and string2: c = c+d, syntax_matcher(string1,string2) = true.
但是,if string1 : a > 0; string2 : c == 0, syntax_matcher(string1,string2) = false.
任何想法,如何有效地做到这一点?
【问题讨论】:
-
用你的匹配器方法创建一个自定义类,根据你的要求重写 equals 方法。
-
@PremGenError 正则表达式无法解决其 CFG 问题。
-
你匹配语句的“程序结构”吗?如果是,那么您可能需要将文本解析为抽象语法树并进行比较。不过可能有点矫枉过正。
-
@PremGenError 上下文无关语法。可能是:/
-
@PremGenError 上下文无关语法:)
标签: java string syntax string-matching