The problem was that the lexer preferred to match ".*" as a word since
the matched pattern was longer than the explicit pattern matching ".".
The word pattern is now amended so that it does not compete with the
single-character patterns.
yylval = SCM_UNSPECIFIED;
return YYText ()[0];
}
- [^$#{}\"\\ \t\n\r\f0-9]+ {
+ [^|*.=$#{}\"\\ \t\n\r\f0-9][^$#{}\"\\ \t\n\r\f0-9]* {
/* ugr. This sux. */
string s (YYText_utf8 ());
yylval = SCM_UNSPECIFIED;