以编程语言考虑此表达式:
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
, *
现在,我需要标记一段文本,并且程序应将输出作为标记返回。 我试图将输出作为令牌返回,但是没有用。
答案 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