blob: 5af9824827d76ca8e8938a820db4212283e68d9a [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Introduction</title>
</head>
<body>
<h1>Introduction</h1>
The Rephraser Engine is an Eclipse-based library that expedites the development of refactoring tools. It contains two components:
<ul>
<li> The <i>refactoring</i> component allows plug-ins to easily contribute refactorings to the Eclipse user interface.
<li> The <i>virtual program graph (VPG)</i> component provides a language-independent program database and indexing infrastructure.
</ul>
These components are independent; some projects may choose to use the Refactoring component without using the VPG component, for example. The dependencies among the projects comprising the Rephraser Engine are as follows.
<img src="../../images/architecture.png" border="0" />
"Rephraser" is an acronym, which stands for
Rapid
Eclipse
Prototyping
Host for
Research on
Approximate
Semantic
Equivalence-based
Refactoring.
<h2>Features</h2>
<h3>Refactoring</h3>
The Refactoring component extends the Eclipse Language ToolKit (LTK) and
<ul>
<li> contributes a Refactor menu to the workbench menu bar, as well as to the context menu for resource selections in the workbench;
<li> provides an extension point that allows refactorings to be contributed to this menu; and
<li> does not require any user interface code to be written for simple refactorings.
</ul>
<h3>VPG</h3>
The VPG component
<ul>
<li> provides a set of base classes for building persistable program graphs;
<li> provides an indexing infrastructure by registering a resource listener and automatically updating program graphs as workspace resources change; and
<li> contributes a "(Debugging)" sub-menu to the workbench Refactoring menu, which provides various actions for viewing, analyzing, and manipulating VPG databases.
</ul>
</body>
</html>