#, Message Pattern (Parser>>pattern:inContext:)

Bob Arning arning at charm.net
Tue Dec 12 15:25:29 UTC 2000


On Mon, 11 Dec 2000 20:32:50 -0800 Lantz Rowland <lantz at aabysgallery.com> wrote:
>Ok, while in my Scanner class , TypeTable also had #comma at :44, matching 
>all my Parser objects, Scanner>>initialize sets it to #xBinary like you 
>were seeing in your image.
>
>The culprit, though I am not sure how, was LParser which is a class from 
>the Prolog package. LParser is a subclass of Parser and Scanner. It 
>modifies it's own typeTable instance variable with #comma and 
>#exclamationMark  for it's special needs on parsing of Prolog.
>
>I am not  sure yet how LParser pulled this off, I had zero instances of 
>LParser, but the Scanner class variable TypeTable and all the Parser 
>instances had the LParser symbols. Prolog has been part of my image for 
>over a year without this ... feature surfacing, but that is a different 
>mystery to solve.

Lantz,

It may not be much of a mystery. If LParser is like Scanner, it simply does something like

	typeTable := TypeTable.

If LParser then does something like

	typeTable at: asciiVal put: #funkySymbol.

it is not only modifying its own instance variable, but the class variable as well, since they are one and the same.

Cheers,
Bob





More information about the Squeak-dev mailing list