[Date Prev][Date Next][Thread Prev][Thread Next][Author Index][Date Index][Thread Index]
removal of translator hack
- To: <tribble>
- Subject: removal of translator hack
- From: Hugh Hoover <heh>
- Date: Mon, 20 Nov 89 13:18:02 PST
- Cc: <xtech>
I fixed up the self proclaimed translator hack which allowed for the
invokation of superclass constructors (base class initializers) using the
: (argument) notation.
I fixed this in two ways. First, I added the base class name to help
human recognition, and I also allow for the initialization of member
variables with the : variableName (expr) notation.
Now, the following smalltalk
create: baseMember with: localConstMember with: localReferenceMember
super create: baseMember.
localConstMemberInternal := localConstMember.
localReferenceMemberInternal := localReferenceMember.
is translated to:
Classname::Classname (...arguments...)
: Baseclass (baseMember),
localConstMemberInternal (localConstMember),
localReferenceMemberInternal (localReferenceMember) {
}
I even think I did this in a fashion which you might approve :-}
returnType is no longer used for this, instead, I pull out the statements
that are going to be converted and store them in a collection (in an
instance variable of MethodNode). Later, the collection is passed to
printConstructorPattern, which uses the statements to create the proper
constructor.
I think I'm getting the hang of this Translator thing! :->
--Hugh