1
0
Fork
You've already forked sdt
0
Scheme 48 Development Tools (SDT)
  • Java 97%
  • GAP 3%
2013年10月24日 10:40:37 +02:00
sdt Use ,show-structures-in-config-package instead of ,show-known-packages. 2013年10月24日 10:40:37 +02:00
sdt.feature Add name and url for update site. 2012年01月13日 18:40:06 +01:00
sdt.update-site Add name and url for update site, replace datetime string with "qualifier". 2012年01月13日 18:41:14 +01:00
.hgignore Add .hgignore. 2012年01月13日 18:39:36 +01:00
README Another attempt to describe the deployment process. 2012年01月14日 11:58:47 +01:00

Scheme 48 Development Tools (SDT)
SDT is an Eclipse-based IDE for Scheme 48 written by Sebastian
Rheinnecker for his Master's thesis. See
	 http://www-pu.informatik.uni-tuebingen.de/sdt
for details.
-----
The SDT root directory is organized as follows (not all files are
listed here):
 README this file
 sdt/ plugin source files
 sdt.feature/ feature packages all plugins that form SDT
 (currently, SDT consists of one plugin)
 META-INF/MANIFEST.MF bundle manifest
 build.properties plugin-specific build settings
 icons/ toolbar icons
 lib/ third party libraries that SDT uses
 plugin.xml plugin manifest
 src/ contains Java packages that form SDT, see below
 templates/ predefined code templates
 sdt.update-site/ meta-information for creating an distribution of SDT
 that works via Eclipse's "Install New Software"
The SDT plugin consists of various packages (not all packages are
listed here):
 sdt 
 The main plugins life-cycle activator class
 (Scheme48Plugin.java) and some main information about the plugin,
 such as the nature and meta-information for DLTK (LanguageToolkit
 and UILanguageToolkit). Also contains the plugin perspective
 class that defines the layout and visible items of the SDT user
 interface. sdt.actions - Two global actions, start and restart
 interpreter.
 sdt.dialogs
 Various classes extending JFace dialog. These are used in the New
 Module Wizard and in the Set Default Package and Eval/Load with
 context actions.
 sdt.editor 
 The main editor class as well as a DocumentSetupParticipant that
 configures an IDocument for the use in the SourceViewer and two
 classes responsible for setting up the outline.
 sdt.editor.actions 
 Actions related to the editor and files that are currently edited.
 sdt.editor.autoeditstrategies 
 Classes that perform changes to the editing of files, like
 auto-closing matching brackets or selecting a whole clause when
 double-clicking in an s-expression.
 sdt.editor.autoeditstrategies.indent 
 Classes for adding indentation when the user creates a new line.
 sdt.editor.completion 
 Implementation of the DLTK provided completion engine. The
 computing of the actual proposals happen in the *ComputionEngine
 classes.
 sdt.editor.templates 
 Implementation of the DLTK provided code template system. 
 sdt.interpreter 
 Launching and Managing the scheme 48 interpreter
 process. Scheme48LaunchConfigurationDelegate starts the process
 using the Eclipse Process API and Scheme48Interpreter provides all
 methods for interacting with the process.
 sdt.interpreter.query 
 Queries are interactions with the Scheme 48 process. When the IDE
 calls a method in Scheme48Interpreter, it creates an instance of
 an apropiate query, which does the actual communication via the
 streams proxy of the process.
 sdt.language.clause 
 Representation of important clauses in the Configuration Language
 (OPEN and FILES).
 sdt.language.definition 
 Representation of the definition of interfaces and structures in
 CL.
 sdt.language.modifier 
 Representation of the modifier system of CL.
 sdt.library 
 Representations of Scheme- and Configuration-Language-Files and
 the three libraries in SDT: CLLibrary, SchemeLibrary and
 DefaultPackageLibrary.
 sdt.parser 
 Provides the main functionality of the parser. First of all the
 SourceParser that gets an Inputfile, invokes the appropiate
 parser, gathers errors and reports them and returns a container
 for the AST. Besides of that, there are several auxiliary classes
 like the ContentModel and ISourceRange, providing Offsets for
 Tokens and Trees, DLTKTokenConverter and Scheme48ErrorReporter for
 automatically reporting syntax errors and a visitor for the AST.
 sdt.parser.antlr.r5rs 
 Contains all R5RS-specific parsing classes like the ANTLR
 grammars, lexer, parser, the treewalker for the parser output and
 the treewalker for expanded macros. Also contains some auxiliary
 classes like a class with a list of all keywords and an
 ASTNodeFactory for the treewalker.
 sdt.parser.antlr.scheme48 
 Contains all Configuration-Language-specific parsing classes like
 ANTLR grammars, lexer, parser and treewalker. Also contains some
 auxiliary classes like a class with a list of all keywords and an
 ASTNodeFactory for the treewalker.
 sdt.parser.declarations 
 Declarations are the actual AST Nodes that are created by the
 tree walkers and returned by the SourceParser. These nodes
 represent top-level elements like bindings, structures or
 interfaces. The visitor in sdt.parser visits those classes by
 calling methods, which produce JDT-AST equivalents to populate the
 outline and enable the search provided by DLTK.
 sdt.parser.interfaces 
 A model of CL-interfaces. 
 sdt.parser.problems 
 Various errors that can occur in a Scheme- or CL-file. Each
 problem class has a method to return an instance of
 DefaultProblem, which annotates an error in the editor.
 sdt.parser.scope 
 Implementations of scopes for Scheme and CL. IScope, EmptyScope
 and Scope are used for Scheme-files, IScheme48Scope, ModuleScope
 and Structure(s)Scope for CL-files. Each scope is responsible for
 checking bindings and reporting related errors.
 sdt.parser.structures 
 A model of CL-structures. Distinguishes between a structure itself
 and the import of a structure.
 sdt.preferences 
 Responsible for content and initialization of the scheme 48
 preferences pages.
 sdt.tests 
 Some JUnit tests.
 sdt.text 
 Provides all functionality for enriched presentation of source
 code: Scan an IDocument, devide it into partitions and present the
 text according to the syntax highlighting rules. Main class is
 Scheme48SourceViewerConfiguration, which provides the settings for
 a SourceViewer (like the one in the editor or the expansion
 viewer)
 sdt.text.search 
 The search dialogue.
 sdt.util 
 Auxiliary classes and methods for general purpose.
 sdt.views 
 The views contributed by the plugin. Currently the only
 contributed view is the expansion viewer that has a SourceViewer
 to display the expanded form of a macro.
 sdt.wizards 
 The wizards contributed by the plugin. Wizards are divided into
 two class-types: A class for calling and initializing
 (multiple) page classes that provide the UI of a
 wizard. Currently only holds the New Module Wizard. The New
 Project Wizard is pre-defined by DLTK and enabled in the
 plugin.xml.
For developing SDT, you need Eclipse Indigo 3.7.x, available at 
 http://www.eclipse.org/downloads/packages/eclipse-classic-37/indigor
You also need to install the following plugins into Eclipse:
 Eclise Plug-in Development Environment (PDE) 3.7.x
 This plugin is needed for proper editing of build-specific files 
 like the feature and update-site XML files.
 Dynamic Languages Toolkit - Core Frameworks 3.0
 This plugin provides sources for many classes of SDT.
All these plugins are available from the official Indigo update-site:
 1. Select menu "Help" -> "Install New Software"
 2. Select "Indigo" from the "Work with" selection box
 3. Expand "General Purpose Tools" and check the plugins above for
 installation
 4. Click "Next" and follow the instructions
Import SDT sources into Eclipse:
 1. Select menu "File" -> "Import..."
 2. Under "General" select "Existing Projects into Workspace" and
 click "Next"
 3. Choose "Select root directory" and enter the path to your SDT
 root directory
 4. Check all three SDT projects in the "Projects" list 
 5. Click "Finish"
For editing the ANTLR grammars, ANTLR IDE or ANTLRWorks is
recommended.
 ANTLR IDE: http://antlrv3ide.sourceforge.net
 ANTLRWorks: http://www.antlr.org/works
You can build and run SDT with 
 "Run" -> "Run As" -> "Eclipse Application".
To deploy and distribute SDT:
 1. In sdt.feature project open feature.xml
 2. Click on "Export Wizard" on the right-hand side
 3. Make sure to have the following settings in the dialog:
 Tab "Destination":
 Enter the path to sdt.update-site in your SDT root directory
 Tab "Options":
 Make sure that the following settings are checked:
 [x] Package as individual JAR archives
 [x] Generate metadata repository
 [x] Categorize repository: Enter path to 
 sdt.feature/sdt-category.xml in your SDT root directroy
 [x] Allow for binary cycles in target platform
 Leave the other settings unchecked
 4. Click "Finish"
 5. sdt.update-site in your SDT root directory now contains a
 distributable version of SDT
To install the contents of sdt.update-site into your Eclipse, select
menu "Help" -> "Install New Software", add the sdt.update-site as a
local source or "Reload" the local source's contents under "Available
Software Sites" to enable Eclipse to see the updated version.