是的,通常在处理空白字符时,主要关注这三种:
空格( ):最常见的分隔符,用于在词法分析中分隔标识符、关键字、数字等。
换行符(\n):用于标识行的结束,通常在多行文本中作为行分隔符。
制表符(\t):用于水平缩进,通常在格式化文本中用作对齐。
在许多编程语言和解析器中,除了这些常见的空白字符外,还可能处理其他空白字符,比如回车符(\r)和其他Unicode空白字符,但空格、换行符和制表符是最常见的需要处理的空白字符。
如果你在构建一个语法解析器时不需要空白字符(比如在关键字之间没有实际意义),你可以选择忽略它们。在你的Lexer中,可以通过定义空白字符的规则来跳过它们,通常会使用像nom的multispace0或space1这样的解析器,来处理这些空白字符并让解析器跳过它们。