如果我定义 aLexical
来提供 a TokenParser
,那么我将无法TokenParser
真正输出EOF
令牌。特别是Parser[T]
( acceptIf
, acceptMatch
, 和phrase
) 中的某些方法直接检查是否Reader
是,因此在返回错误之前atEnd
没有机会将令牌添加到令牌流中。EOF
由于Tokens
特征实际上定义了一个EOF
标记,我确信必须有一些简单的方法来输出它,但在这一点上,我能想到的就是创建我自己的,直到至少一个之后才会Reader
返回输出或向输入添加一个字符,这样直到它发出该字符后才意识到它已经结束。true
atEnd
EOF
'\032'
Reader
请告诉我我错过了一个更简单的方法......