52 lines
1.5 KiB
Plaintext
52 lines
1.5 KiB
Plaintext
#|
|
|
The Java Wizard helps programmers create
|
|
* classes
|
|
* datatypes via classes.
|
|
|
|
The class wizard requests class name, superclass, and field specifications.
|
|
From these, it generates a class, its constructor, and optionally a partial
|
|
template for methods and a toString method.
|
|
|
|
The union wizard requests a union name and specifications for the variants.
|
|
From these, it generates an abstract class (for the union name) and one
|
|
variant class that extends the abstract class per variant specification.
|
|
Again, it optionally adds templates and toString methods.
|
|
|
|
The wizards are added to the Special menu and insert text at the current
|
|
point.
|
|
|
|
At the moment they cannot read back code and help with natural program
|
|
edits and transformations.
|
|
|
|
The two major files are:
|
|
wizard.ss, which is the view and provides the user interaction
|
|
class.scm, which is the model and provides the functions for turning
|
|
a spec into a string that represents a class or a union.
|
|
|
|
At the moment, class.scm does not use the Java implementation to perform
|
|
basic checks on the information. It just leaves this to the programmer.
|
|
So, for example, if a programmer says a field has type "moo" and "moo"
|
|
doesn't exist as a class, then the wizard inserts a buggy program.
|
|
|
|
|#
|
|
|
|
bugs:
|
|
|
|
drawing:
|
|
|
|
* finish drawing unions, recursion
|
|
|
|
model
|
|
|
|
* figure out how to add toString and template flags to the macro version
|
|
|
|
view
|
|
|
|
both
|
|
|
|
* allow common fields in abstract classes
|
|
* parameterize over language level?
|
|
* privacy modifiers
|
|
|
|
|