tokenize

阅读 / 问答 / 标签

怎么理解token,tokenize,tokenizer.

在编写词法分析器(Lexer)或语法分析器(Parser)的时候,除了Lexer和Parser这两个词会经常使用外,tokenize和tokenizer也会经常出现,基本上所有涉及到词法解析的源码都会用到tokenize。 它的命名来源于使用英文的开发者,否则让我这个习惯使用中文的人去想这个命名,我可能会用其它简单的词来代替,不会这么形象化,所以啊,语言文化的不同,可能会导致思维方式的不同啊,所以中国人的思维方式和西方人的思维方式肯定是不同的,让他们来理解我们的语言可能也很费解。 不管怎么说,好的东西是应该学习和借鉴的,tokenize这个词使用得如此频繁,肯定有它的意义,那到底这个词怎么翻译?怎么理解?在邱仲潘译的《Mastering Java 2》有这儿一段: StreamTokenizer类根据用户定义的规则,从输入流中提取可识别的子串和标记符号,这个过程称为令牌化 ([i]tokenizing[/i]),因为流简化为了令牌符号。令牌([i]token[/i])通常代表关键字、变量名、字符串、直接量和大括号等 语法标点。参考邱仲潘的这段译文,可以这样翻译:token:令牌tokenize:令牌化tokenizer:令牌解析器而我看到的另一种翻译是:token可以翻译为“标记”,tokenize可以翻译为“标记解析”或“解析标记”,tokenizer可以翻译为“标记解析器” 我的理解是tokenize是负责把代码解析为一个个的“串”,而Paser是根据这些“串”的前后序列关系来生成相应的语法结构。用令牌好像更形象一些,不过总觉得听起来很生硬,而翻译成“标记”,范围又狭窄了一些。我也找不到一个更适合的词来翻译了,总之理解意思最重要。 不知道各位是怎么理解的,怎么翻译的。

Python分割字符串 有无和c++中的tokenizer同样功能的用法?

回楼主。在tokenize里,这里有英文的参考文档import tokenizeimport StringIOs = StringIO.StringIO( "21.3e-5*-.1234/81.7" )g = tokenize.generate_tokens( s.readline )for tokenum, tokeval, _, _, _ in g: if tokenum == tokenize.NUMBER and "." in tokeval: result.extend( [( tokenize.NAME, "Decimal" ), ( tokenize.OP, "(" ), ( tokenize.STRING, repr( tokeval ) ), ( tokenize.OP, ")" )] ) else: result.append( ( tokenum, tokeval ) )print result这是我临时照抄的一个例子

Jenkins 失败: Cannot invoke method tokenize() on null object

tokenize(arg)传递的参数 arg == null 判断arg == null 时,为其赋默认值,或不能调用tokenize。

怎么理解token,tokenize,tokenizer?

1、一种解释token:令牌tokenize:令牌化tokenizer:令牌解析器2、另一种翻译是:token可以翻译为“标记”,tokenize可以翻译为“标记解析”或“解析标记”,tokenizer可以翻译为“标记解析器”。在编写词法分析器(Lexer)或语法分析器(Parser)的时候,除了Lexer和Parser这两个词会经常使用外,tokenize和tokenizer也会经常出现,基本上所有涉及到词法解析的源码都会用到tokenize。在邱仲潘译的《Mastering Java 2》有这儿一段:StreamTokenizer类根据用户定义的规则,从输入流中提取可识别的子串和标记符号,这个过程称为令牌化 ([i]tokenizing[/i]),因为流简化为了令牌符号。令牌([i]token[/i])通常代表关键字、变量名、字符串、直接量和大括号等 语法标点。