令牌和文件流

tokens and file streams

本文关键字:文件 令牌      更新时间:2023-10-16

我学习操作文件流的程序源代码(用c++写的)。但我偶尔会偶然发现一种叫做tokens的东西。你能给我解释一下,代币有什么用,为什么有用吗?谢谢你。

指的是一段时间内可用的数据元素序列。流中的数据元素可以是任何类型的:字符、字符串、特殊用途的数据结构等。文本文件可以简单地解释为一个字符流。

在编程语言的上下文中,单词标记通常是指字符流中一个或多个相关字符的序列。令牌在字符流之上提供了一个抽象级别,并且通常将它们自己分组在流中以供进一步处理。

编程语言的编译器中通常的处理顺序从词法分析器开始,将字符流转换为令牌流,然后传递给解析器。令牌的典型表示由类型指示符和令牌的内容组成。

下面是一个例子:考虑下面的c++程序片段:
class MyClass {
public:
    string name;
};

词法分析器将此程序分组为十个令牌的流:

'class' (keyword)
'MyClass' (identifier)
'{' (opening brace)
'public' (keyword)
':' (colon)
'string' (identifier)
'name' (identifier)
';' (semicolon)
'}' (closing brace)
';' (semicolon)

令牌可以被认为是"占位符"。令牌代表一个特定的实体(字符串),通常是两个等价物之间的某种中间步骤。例如,在解析器中经常使用标记,它们表示给定语言的语法。