Javascript 词法分析器/分词器(在 Python 中?)

标签 javascript python yacc lex tokenize

有人知道 Javascript 词法分析器或分词器(最好是 Python 吗?)

基本上,给定一个任意的 Javascript 文件,我想获取 token 。

例如

富 = 1

变成这样:

  1. 变量名:“foo”
  2. 空格
  3. 运算符:等于
  4. 空格
  5. 整数:1

最佳答案

http://code.google.com/p/pynarcissus/有一个。

我也做了一个,但它不支持自动分号插入,所以它对你无法控制的 javascript 毫无用处(因为几乎所有现实生活中的 javascript 程序都至少缺少一个分号):) 这是我的:

http://bitbucket.org/santagada/jaspyon/src/tip/jaspyon/

语法在 jsgrammar.txt 中,它由 PyPy 解析库(您必须从 pypy 源下载并提取)解析,并构建一个解析树,我在 astbuilder.py 上行走

但如果您没有许可问题,我会选择 pynarcissus。这是查看代码的直接链接(从 narcissus 移植):

http://code.google.com/p/pynarcissus/source/browse/trunk/jsparser.py

关于Javascript 词法分析器/分词器(在 Python 中?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2001796/

相关文章:

javascript - 当我调用该函数时,我没有看到任何文本

python - 接收 "ValueError: setting an array element with a sequence."

bison - YACC/Bison 中的错误检测/恢复

javascript - 如果其他 div 不可见,则淡入 div

javascript - 如何在具有 z 索引的 div 内的列表项上触发 mouseenter(或任何鼠标)事件?

python - 循环遍历列表时获取下一个元素

Yacc/Bison,通过对数学操作进行分组来最小化数量

linux - `...' 的 $1 在 Bison/Yacc 中没有声明类型

javascript - for...in 语句 - 任意顺序是什么意思

python - 无法通过存储过程mysql使用Python插入blob图像