我尝试实现解析器,并且应该找到以下语句
if @loglevel < 1 or
@loglevel > 3
begin
dothis
dothat
end
else
foo
makethis
end
解析器应该使用正则表达式并返回
条件 (=&gt; @loglevel&lt; 1或@loglevel&gt; 3)
然后部分 (=&gt;在dotthe dothat结束之间开始)
其他部分 (=&gt;在其他之间开始......结束)
当然,代码可能不包含else部分
是否可以使用一个或多个reqex表达式执行此操作,还是应该实现一个顺序“readline解析器”
答案 0 :(得分:0)
评论是正确的,你不应该使用正则表达式进行解析,here是一篇描述为什么这是一个坏主意的文章。
您可以查看ANTLR以获取有关解析器的帮助。这里有一个问题with some info