certain useful whitespace regexps not supported
This is the regexp for a Go comment
/\*([^*]|\*+[^*/])*\*+/|//.*| |\t|\n|\r.
Currently for egg we must write it like
(/\*([^*]|\*+[^*/])*\*+/|//.*| |\t|\n|\r)+
or
(/\*([^*]|\*+[^*/])*\*+/|//.*| |\t|\n|\r)*.
But both those forms trip the rec compiler, because it seemingly does not properly handle the combination of the inner trailing .* and the outer *. rec is a bit dark art-ish and written long enough ago that I don't want to even try fixing it right now. But we can probably resolve the problem in LL1() by generating a loop in scanSep instead.
I hope the problem applies to the white space production only.
Update before posting:
white_space =
`(/\*([^*]|\*+[^*/])*\*+/| |\t|\n|\r|//\n|//[^\n]*\n|#\n|#[^\n]*\n)*` .
The monster above seems to work and do what is needed. The fix in LL1() will be however better.