使用正则表达式解析代码

时间:2014-04-16 07:08:48

标签: regex parsing

我尝试实现解析器,并且应该找到以下语句

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解析器”

1 个答案:

答案 0 :(得分:0)

评论是正确的,你不应该使用正则表达式进行解析,here是一篇描述为什么这是一个坏主意的文章。

您可以查看ANTLR以获取有关解析器的帮助。这里有一个问题with some info