August 2021
Intermediate to advanced
450 pages
9h 36m
Chinese
在程序中的单词应该是什么样的?换句话说,自定义的Token类型是什么样的?Token必须能够表示运算符(如+、-)和数值(如42、3.14),即表示单词是什么类别以及保存单词的数值(如果有的话)。
在C++代码中有很多方式来表示这些类型,下面是最简单实用的一种方式:
Token是一个类型(类似于int或者char),因此可用于定义变量及值。它有两个部分(称为成员):kind和value。关键字class表示定义一个“用户自定义类型”,该类型可以有成员,也可以没有成员。第一个成员kind是一个char字符,因此可以方便地保存‘+’和‘*’表示加法和乘法。我们可以如下方式进行类型定义:
我们使用成员访问符号“object_name.member_name”访问成员,可以将t.kind读作“t’s kind”,将t2.value读作“t2’s value”。此外,可以像复制int型对象一样复制Token对象:
有了Token类型,我们可以将表达式(1.5+4)*11表示为如下7个单词: ...