Thanks, it is
really annoying that you have to recompile the
scanner and parser. Currently I know no other workaround than
recompiling. I send the problem to a guy here at the university
that is looking for strange bugs using his implementation of an
omniscent debugger, so maybe he can find out about the real
problem.
anyway, it's quite simple to compile it with the interface... but
maybe as a workaround to wait for a better solution, is it
possible to do that manipulation through the install ? (in a
class initialize...or even by writing some lines of code in the
workspace...)
| parserCompiler |
parserCompiler := SmaCCGrammarCompiler new.
parserCompiler
buildScanner: PRDocumentScanner scannerDefinitionComment ???
andParser: PRDocumentParser parserDefinitionComment. ???
parserCompiler compileInto: PRDocumentScanner andParser:
PRDocumentParser.
Yeah, the only problem here is that if I want to recompile the
parsers after installing I need to load the Refactoring-Browser
and SmaCC-Development as prerequisite. Both are pretty big
packages that are not needed otherwise, however if I can find a
solution to that problem, that will be the only workaround.
Ok, this was like to live or to die ... :-(
After digging in Squeak for more than 3 hours I found the bug and
reported it to Mantis:
The SmaCC scanner-compiler uses #storeOn: to put the characters it
is matching for into the source-code. The original implementation
of Character>>storeOn: only prints a dollar and the respective
character. This works well for all printable characters but not for
others such as 'Character lf' or 'Character cr', since Monticello
is converting all the source-code to a standard form destroying
some special character-literals and breaking the SmaCC scanner.
Uff, this is it ;-)
Lukas
PS: I will soon commit a new version of Pier to SqueakMap that will
run out of the box ...
--
Lukas Renggli