语法验证器

时间:2013-11-18 18:58:03

标签: javascript syntax computer-science interpreter

我有一个文件存储,我正在用Javascript阅读它。 问题是我想模拟一个语法验证器,但我无法获得好的结果。

syntax.txt:

class foo {
}

问题是我无法获得课程内容。 我所做的是验证是否有类声明:

fileString.match(\^class\g);

这会让我回复:["class"],但我希望得到foo { }并且内心充实。

这可能吗?

如果文件发生变化会发生什么?就像是: syntax.txt:

class foo {
}
class bar {
}

谢谢!

1 个答案:

答案 0 :(得分:2)

由于同样的原因you can't validate HTML with regex,您无法使用正则表达式验证编程语言。它不是常规

想象一下(伪代码):

class foo {
    function barbar() {
        if(foobar) {
            case(bar) {
                'x': ... break;
                'y':
                    if(foofoo) {
                        ...
                        return "}";
                    }
            }
        }
    }
}

你永远无法处理正则表达式中的所有场景。你需要一个真正的解析器。你可以自己编写或使用库,但你绝对不能依赖正则表达式。