确定性地解析独立的 if 和 if-else 语句并添加到总计数中 c#

问题描述 投票:0回答:1

我希望创建一个方法,该方法将在 c# .cs 源文件上启动阅读器(可能是 StreamReader),并且它将能够解析并找到“if”语句的所有实例,通过独立的 if 对它们进行排序,或者如果有一个else。然后它会将其添加到各自的列表中(一个用于独立 if,一个用于 if-else),并以行号作为唯一标识符。

简单地解析出“if(”、“if (”)的所有实例,然后将行号添加到列表中是非常容易的,但是区分 if 与 else 以及独立被证明是非常困难的.

我能想到的就是使用前导大括号作为参考点。当找到“if”语句时,尝试找到尾随的“}”,那么如果后面的 reader.nextLine 包含 else,则可以将其添加到 else 列表中。然而,让这变得困难的是嵌套 if 需要某种递归或单独的后台工作者,以及根本没有“{}”的可能性,因为它在 C# 中在语法上不是必需的。

c# parsing streamreader
1个回答
0
投票

您是否考虑过使用 Roslyn IfStatement 而不是经历解析文本的所有痛苦? – 榛树

这是正确答案。

© www.soinside.com 2019 - 2024. All rights reserved.