使用Flex解​​析器解析Javascript代码

时间:2015-10-13 09:31:35

标签: javascript parsing bison flex-lexer

我的动机是修改变量和函数名称,并加密javascript文件中的字符串。

为此,我只需要分隔字符串,注释和变量/函数名称。

我已经尝试了UglifyJs2,但我需要对自己进行更多控制,所以我尝试使用Flex自己写一个词法分析器。

我能够处理评论和引用字符串。

但是我坚持使用正则表达式格式,例如 /"/ - 一个包含引号的正则表达式,导致正确的解析失败。

看起来正确识别正则表达式我需要使用语法规则的Bison解析器,否则注释,字符串和正则表达式会混淆。 我不想那么远并使用Bison。

一种方法是将所有正则表达式代码移动到函数中的另一个文件中。

还有其他选择,以便我可以在Flex中处理这个问题吗?

1 个答案:

答案 0 :(得分:1)

如果您可以运行JavaScript,则可以使用Esprima,一种用JavaScript编码的JavaScript解析器。它甚至可以在您的浏览器或任何运行时运行,如NodeJS。

它只能输出令牌或抽象语法树。我相信这对你来说应该足够了。