Program-Transformation.Org: The Program Transformation Wiki
Specification:
RigiRSFSpecification
Errata: In a
source-location the elements are separated with comma, not semicolon.
Errata for "Appendix: Tool Support": rigiedit can also read Stuctured
RSF.
The specification discussed the following
RSF formats:
- (3-tuple) Unstructured RSF
- Partly structured RSF
- Stuctured RSF
- 4-tuple unstructured RSF
You have to be careful about the format transformation that the tools perform.
If you run htmlrsf and sortrsf without command line args, they change 4-tuple unstructured RSF to (3-tuple) unstructured RSF!
See also
RigiUserManual, Section 4.7.1.
See also
http://calla.ics.uci.edu/reveng/toolbase/moin.cgi/RSF.
Typically an
RSF file adheres to a certain schema. For example, an
RSF file generated with
cparse will adhere to the
cparse schema.
The schema is documented in 3 files:
-
Riginode: The node types
-
Rigiarc: The arc types
-
Rigiattr: The node and arc attributes
rigiedit expects a directory with the name of the domain containing these files at
$RIGI/Rigi/domain.
See
RigiUserManual, Section 4.4.
(There is a bit more information in Scott Tilleys Ph.D. Thesis "Domain-Retargetable Reverse Engineering", Section A.2.3, page 126f.)
RSF Generators
- from C++
- Columbus/CAN
-
vacppparse based on IBM VisualAge? C++
- from Java
RSF Querying and Manipulation
The structure of
RSF enables easy manipulation with standard UNIX text processing tools.
For more formal manipulation of
RSF you can use Dirk Beyer's
CrocoPat tool:
http://www.cs.sfu.ca/~dbeyer/CrocoPat/
CategoryRigi