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