renamed *.st files to *.moo
This commit is contained in:
50
moo/kernel/Class.moo
Normal file
50
moo/kernel/Class.moo
Normal file
@ -0,0 +1,50 @@
|
||||
##
|
||||
## the Class object should be a variable-pointer object because
|
||||
## it needs to accomodate class instance variables.
|
||||
##
|
||||
class(#pointer) Class(Apex)
|
||||
{
|
||||
dcl spec selfspec superclass subclasses name instvars classvars classinstvars pooldics instmthdic classmthdic.
|
||||
|
||||
method(#class) basicNew
|
||||
{
|
||||
## you must not instantiate a new class this way.
|
||||
self cannotInstantiate.
|
||||
}
|
||||
|
||||
method(#class) initialize
|
||||
{
|
||||
^self.
|
||||
}
|
||||
|
||||
(* most of the following methods can actually become class methods of Apex.
|
||||
* if the instance varibles can be made accessible from the Apex class. *)
|
||||
|
||||
method name
|
||||
{
|
||||
^self.name
|
||||
}
|
||||
|
||||
method superclass
|
||||
{
|
||||
^self.superclass
|
||||
}
|
||||
|
||||
method specNumInstVars
|
||||
{
|
||||
## shift right by 7 bits.
|
||||
## see moo-prv.h for details.
|
||||
^self.spec bitShift: -7
|
||||
}
|
||||
|
||||
(*method inheritsFrom: aSuperclass
|
||||
{
|
||||
| c |
|
||||
c := self superclass.
|
||||
[c notNil] whileTrue: [
|
||||
[ c == aSuperclass ] ifTrue: [^true].
|
||||
c := c superclass.
|
||||
].
|
||||
^false
|
||||
}*)
|
||||
}
|
Reference in New Issue
Block a user