我们如何使用javascript标记一段文本?

时间:2018-09-23 06:34:24

标签: javascript

以编程语言考虑此表达式:

outline = sPolygon(zip(x,y)).buffer(.01)

对该表达式的词法分析产生以下标记序列:

x = a + b * 2;

简而言之,我们将数学方程式分解为诸如[ (identifier, x), (operator, =), (identifier, a), (operator, +), (identifier, b), (operator, *), (literal, 2), (separator, ;) ] x=a+b*

现在,我需要标记一段文本,并且程序应将输出作为标记返回。 我试图将输出作为令牌返回,但是没有用。

1 个答案:

答案 0 :(得分:1)

那里有几个提供javascript标记器功能的模块。

例如,使用esprima模块,您可以这样做:

var esprima = require('esprima')

esprima.tokenize('answer = 42')

[ 
  { type: 'Identifier', value: 'answer' },
  { type: 'Punctuator', value: '=' },
  { type: 'Numeric', value: '42' } 
]

还检查了有人写的这个代码段:https://gist.github.com/shalvah/2a4c6e34353c26f8ab6d26fcd2bcca8f#file-tokenizer-js