令牌和文件流

时间:2011-12-28 01:36:48

标签: c++ stream filestream token

我研究了对文件流进行操作的程序源代码(用c ++编写)。但我时不时地偶然发现一种叫做tokens的东西。你可以向我解释一下,令牌是做什么的,为什么它们有用?谢谢。

2 个答案:

答案 0 :(得分:2)

Stream 是指随时间推移可用的一系列数据元素。流中的数据元素可以是任何类型:字符,字符串,专用数据结构等。文本文件可以简单地解释为字符流。

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

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

这是一个例子:考虑这个C ++程序片段:

class MyClass {
public:
    string name;
};

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

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

答案 1 :(得分:1)

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