#, Message Pattern (Parser>>pattern:inContext:)
Lantz Rowland
lantz at aabysgallery.com
Mon Dec 11 08:18:40 UTC 2000
My Squeak image has decided that #, (#comma) is not a valid message
anymore. I hope that someone has an idea or a line of attack on this, as I
would like to see the mystery solved.
Squeakers ... I have a problem...
Still flying ... but I just noticed the wings are missing.
The Issue
#, is not being considered a valid Message pattern by the Parser
There 6 Implementations including SequenceableCollection
I didn't touch it. No really! I was not even looking down there.
Parser>>pattern:inContext:
"hereType = #comma"
"cs: 2402ColanFreeSyntax dan 4/5/2000"
My only recent change to a Squeak class is a fix I submitted to list
Dec 1st
Morph>>buildDebugMenu:
I've been working with my own subclasses mostly in Network-Kernel ,
Mysql-Driver and Morph-*
#, was definitely working in my image prior to Dec 1st
- prior to Dec 1st 2000
Version stamp on one of my messages
I was building a string with #, to send to Transcript
Proof that #, was working on Nov 30th
- prior to cs 2989TmfFixes-ar
I had promoted the project with the Nov30 change to top of Changes
Then did the upgrade that brought in 2989 and the others since then
Observations
This seems to be only a Parser Issue and not compiled Methods
'Print ' Nothing more expected ->, 'It' .
Can not save any method trying to use a #, message
The Recent Versions Browser acts different than other method browsers
It does not complain about syntax errors, with or without diffs showing
I have not yet tried saving a change through this browser
Change Sorters get Very Confused displaying a method with a SyntaxError
Must close the Change Sorter window first
Then the SyntaxError windows
Lotsa Senders of #, <chuckle> Lots!
ChangeSet 2989 through 3077
I can not see any real obvious candidate as causing this.
NewSymbolTable (3045-3051) changes seem the most ... scary.
ParseScript (2991,3004) relate to Syntax but they seem constrained to Morph
Current plans
I'll keep studying the ChangeList and Parser and Symbol code
I have not yet started backing out ChangeSets
I will start to rebuild a new 2.9a image
= = = = = = = = = = = = = = = = = = = =
=== Details ===
SyntaxError selecting SequenceableCollection>>,
Message pattern expected ->, otherCollection
[Complaint that #comma is not a valid message pattern --zL ]
Same SyntaxError occurs with all Implementors of #,
Implementors of , [6]
Abstract Sound , {composition}
LastChg: nil
Exception class , {exceptionSelector}
LastChg: 6/4/1999
ExceptionSet , {exceptionSelector}
LastChg: 6/4/1999
RunArray . {copying}
LastChg: nil
SequenceableCollection , {copying}
LastChg: 1/6/1998
SequentialSound , {composition}
LastChg: nil
= = = = = = = = = = = = = = = = = = = =
=== Parser - Syntax Error Stack ===
SyntaxError class>>errorInClass:withCode:doitFlag:
Parser>>notify:at:
Parser>>expected:
"Ok ... expected: uses #comma to build the notify:at string"
"^ self notify: aString End of block expected ->,
' expected' at: hereMark + requestorOffset "
"However, the #comma is another SyntaxError ... <sigh>
I believe that the compiled method is actually working fine."
Parser>>pattern:inContext:
"hereType = #comma"
"cs: 2402ColanFreeSyntax dan 4/5/2000"
Parser>>method:context:encoder:
[] in Parser>>parse:class:noPattern:context:notifying:ifFail:
BlockContext>>on:do:
Parser>>parse:class:noPattern:context:notifying:ifFail:
Compiler>>format:noPattern:ifFail:
Compiler>>format:in:notifying:decorated:
[] in MessageSet>>selectedMessage
"Preferences browseWithPrettyPrint == true"
MessageSet class>>parse:toClassAndSelector:
MessageSet>>setClassAndSelectorIn:
MessageSet>>selectedMessage
"class = SequenceableCollection selector = #, "
MessageSet>>messageListIndex:
PluggableListMorph>>changeModelSelection:
PluggableListMorph>>setSelectedMorph:
PluggableListMorph>>mouseUp:onItem:
EventHandler>>send:to:withEvent:fromMorph:
EventHandler>>mouseUp:fromMorph:
= = = = = = = = = = = = = = = = = = = =
=== Parser - Object ===
SyntaxError class>>errorInClass:withCode:doitFlag:
Instance variables (Scanner):
source: a ReadStream
mark: 3
hereChar: $
aheadChar: $
token: 'otherCollection'
tokenType: #word
currentComment: nil
buffer: a WriteStream
typeTable: #(#xBinary "Snip a bunch of entries -- zL"
#rightParenthesis #xBinary #xBinary #comma #xBinary #period
"Snip till end -- zL"
#xBinary)
Instance variables (Parser):
here: #,
hereType: #comma
hereMark: 1
prevToken: 0
prevMark: 1
encoder: {an Encoder}
requestor: nil
parseNode: nil
failBlock: [] in Compiler>>format:noPattern:ifFail:
requestorOffset: 0
tempsMark: nil
doitFlag: false
= = = = = = = = = = = = = = = = = = = =
=== SqueakVersionInfo ===
Smalltalk version .
"=> 'Squeak2.9alpha of 16 June 2000' "
Smalltalk lastUpdateString .
"=> 'latest update: #3077' "
Smalltalk vmVersion .
"=> 'Squeak2.9alpha of 13 June 2000 [latest update: #2944]' "
Smalltalk platformName .
"=> 'Win32' "
= = = = = = = = = = = = = = = = = = = =
Please let me know either by the list or direct if you have any questions
or thoughts.
Thanks,
Lantz
--
Lantz Rowland <lantz at aabysgallery.com> PgpKey: 0x67E5DFA5
Think Different! Think YottaHertz!
zL - Lantz's Scriptible Web <http://Lantz.EditThisPage.com/>
----------------------------------------------------------------------
More information about the Squeak-dev
mailing list
|