在代码中查找 RPAREN 的最佳方法是什么?例如,我有这个伪代码:
if(a && (b || "c)"))
| ^---------^| CASE A
^----------------^ CASE B
例如,如果我考虑第一个 LPAREN,它需要与最后一个 RPAREN 匹配(案例 B)。如果我考虑第二个 LPAREN,它需要与最后一个 RPAREN 匹配(案例 A)。
请注意,有些字符串"C)"
具有 RPAREN,但在这种情况下需要忽略它。
嗯......我想到了正则表达式,但我想它会非常复杂(注意需要匹配字符串,正则表达式,然后另一个认为可以包括 RPAREN 或类似的东西)。然后我考虑使用手动扫描(通过代码)来检测每个部分(如手动正则表达式)。
我需要它来解析我正在构建的代码(自己的编程语言)。而且我想忽略阅读一些代码以使其更快。
例如:
function a() { return 1; }
function b() { return 2; }
alert(b());
在这种情况下,只b()
需要被解析,因为a()
从不使用。所以我将按启动器扫描{
并忽略(但存储)直到真正的}
. 如果使用该函数,它将被解析。
我的疑惑:
- 正则表达式还是手动代码?
- 这是好事还是坏事?如果从未使用过代码,请忽略它有助于提高解析器的速度吗?
- 题外话:一些加快解析器速度的技巧?也许是一个“预解析”文件,将语言代码与计算机代码(操作码???)一起存储?