>>384
http://minnie.tuhs.org/UnixTree/V6/usr/source/yacc/source/y2.c.html
> else if( (c>='a'&&c<='z')||(c>='A'&&c<='Z')||c=='_'||c=='.'||c=='$'){

http://minnie.tuhs.org/UnixTree/V7/usr/src/cmd/yacc/y2.c.html
> else if( islower(c) || isupper(c) || c=='_' || c=='.' || c=='$' ){

どっちも内部的に状態として管理して出力時にオミット
するみたいだ。やっぱり BSD 版のバグっぽい?

$ grep isalpha reader.c
> if (isalpha(c))
> if (isalpha(c))
> if (!isalpha(c) && c != '_' && c != '$')
> if (isalpha(c) || c == '_' || c == '.' || c == '$')
> else if (c == '\n' || isalpha(c) || !isspace(c))
> if (isalpha(c) || c == '_' || c == '.' || c == '$')
> if (!isalpha(c) && c != '_' && c != '.' && c != '$')
> if (!isalpha(c) && c != '_' && c != '.' && c != '_') // 問題の行
> if (isalpha(c) || c == '_' || c == '$')
> if (isalpha(c) || c == '_' || c == '.' || c == '$')
> if (isalpha(c) || c == '_' || c == '.' || c == '$' || c == '\'' ||