简单解析器的实现与应用
1. 引言
在处理文本解析时,一个完整的解释器通常需要一个解析器来辅助工作。本文将介绍一个简单的面向对象解析器,它可与特定的解释器协同工作,帮助我们将文本语句分解为有意义的部分,并构建相应的语法规则。
2. 扫描器(Scanner)
2.1 扫描器的作用
为了解析语句,首先需要将其分解为一组单词和字符,即标记(tokens)。扫描器的主要任务就是完成这个分解工作,并提供一个方便的结果栈用于后续处理。
2.2 扫描器类的实现
// listing 24.01
class Scanner
{
// token types
public const WORD = 1;
public const QUOTE = 2;
public const APOS = 3;
public const WHITESPACE = 6;
public const EOL = 8;
public const CHAR = 9;
public const EOF = 0;
public const SOF = -1;
protected int $line_no = 1;
protected int $char_no = 0;
protected ?string $token = null;
protected int $to
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



