'From Cuis 1.0 of 28 November 2009 [latest update: #337] on 19 December 2009 at 1:03:13 am'!

!Object methodsFor: 'as yet unclassified' stamp: 'jmv 12/19/2009 00:47'!
isMethodProperties
"sacar, y poner #is:"
	^false! !


!AbstractEvent methodsFor: 'testing' stamp: 'rw 7/14/2003 10:15'!
isDoIt

	^false! !


!CompiledMethod methodsFor: 'printing' stamp: 'jmv 12/19/2009 01:02'!
who
	"Answer an Array of the class in which the receiver is defined and the 
	selector to which it corresponds."
"Todavia mejor: sacar senders e implementors. Ver trunk. pocos senders (2)"
	^{self methodClass. self selector}! !

!CompiledMethod methodsFor: 'literals'!
literalAt: index put: value 
	"Replace the literal indexed by the first argument with the second 
	argument. Answer the second argument."

	^self objectAt: index + 1 put: value! !

!CompiledMethod methodsFor: 'literals'!
objectAt: index put: value 
	"Primitive. Store the value argument into a literal in the receiver. An 
	index of 2 corresponds to the first literal. Fails if the index is less than 2 
	or greater than the number of literals. Answer the value as the result. 
	Normally only the compiler sends this message, because only the 
	compiler stores values in CompiledMethods. Essential. See Object 
	documentation whatIsAPrimitive."

	<primitive: 69>
	self primitiveFailed! !


!LazyListMorph methodsFor: 'list management' stamp: 'ls 7/5/2000 18:21'!
drawBoundsForRow: row
	"calculate the bounds that row should be drawn at.  This might be outside our bounds!!"
	| topLeft drawBounds |
	topLeft := self topLeft x @ (self topLeft y + ((row - 1) * (font height))).
	drawBounds := topLeft extent: self width @ font height.
	^drawBounds! !


!Scanner methodsFor: 'multi-character scans' stamp: 'jmv 12/19/2009 00:41'!
xIllegal
	"An illegal character was encountered"
	self notify: 'Illegal character (char code ' , hereChar asciiValue , ' 16r' , hereChar asciiValue hex , ')' at: mark! !


!Parser methodsFor: 'expression types' stamp: 'jmv 12/19/2009 00:36'!
messagePart: level repeat: repeat

	| start receiver selector args precedence words keywordStart |
	[receiver := parseNode.
	(hereType == #keyword and: [level >= 3])
		ifTrue: 
			[start := self startOfNextToken.
			selector := WriteStream on: (String new: 32).
			args := OrderedCollection new.
			words := OrderedCollection new.
			[hereType == #keyword]
				whileTrue: 
					[keywordStart := self startOfNextToken + requestorOffset.
					selector nextPutAll: self advance.
					words addLast: (keywordStart to: self endOfLastToken + requestorOffset).
					self primaryExpression ifFalse: [^self expected: 'Argument'].
					self messagePart: 2 repeat: true.
					args addLast: parseNode].
			(Symbol hasInterned: selector contents ifTrue: [ :sym | selector := sym])
				ifFalse: [ selector := self correctSelector: selector contents
										wordIntervals: words
										exprInterval: (start to: self endOfLastToken)
										ifAbort: [ ^ self fail ] ].
			precedence := 3]
		ifFalse: [((hereType == #binary or: [hereType == #verticalBar])
				and: [level >= 2])
				ifTrue: 
					[start := self startOfNextToken.
					selector := self advance asSymbol.
					self primaryExpression ifFalse: [^self expected: 'Argument'].
					self messagePart: 1 repeat: true.
					args := Array with: parseNode.
					precedence := 2]
				ifFalse: [hereType == #word
						ifTrue: 
							[start := self startOfNextToken.
							selector := self advance.
							args := #().
							words := OrderedCollection with: (start  + requestorOffset to: self endOfLastToken + requestorOffset).
							(Symbol hasInterned: selector ifTrue: [ :sym | selector := sym])
								ifFalse: [ selector := self correctSelector: selector
													wordIntervals: words
													exprInterval: (start to: self endOfLastToken)
													ifAbort: [ ^ self fail ] ].
							precedence := 1]
						ifFalse: [^args notNil]]].
	parseNode := MessageNode new
				receiver: receiver
				selector: selector
				arguments: args
				precedence: precedence
				from: encoder
				sourceRange: (start to: self endOfLastToken).
	repeat]
		whileTrue: [].
	^true! !


!UndefinedObject methodsFor: 'as yet unclassified' stamp: 'jmv 12/19/2009 00:38'!
environment
	"Necessary to support disjoint class hierarchies."

	^"self class environment" Smalltalk		"No environments in Cuis..."! !

String removeSelector: #asOctetString!
MethodNode removeSelector: #prepareForRegeneration!
Character removeSelector: #charCode!
AbstractEvent class removeSelector: #isModified!
