Sophie

Sophie

distrib > Fedora > 14 > i386 > by-pkgid > dd7a95aabe1c049ac9f84beede8143d3 > files > 1962

synopsis-doc-0.12-4.fc14.i686.rpm

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Internal Representations</title><link rel="stylesheet" href="synopsis.css" type="text/css" /><meta name="generator" content="DocBook XSL Stylesheets V1.73.2" /><link rel="start" href="index.html" title="Synopsis Tutorial" /><link rel="up" href="intro.html" title="Chapter 1. Introduction" /><link rel="prev" href="inspecting.html" title="Inspecting Code" /><link rel="next" href="documenting.html" title="Documenting Source-Code" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Internal Representations</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="inspecting.html">Prev</a> </td><th width="60%" align="center">Chapter 1. Introduction</th><td width="20%" align="right"> <a accesskey="n" href="documenting.html">Next</a></td></tr></table></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="ir"></a>Internal Representations</h2></div></div></div><p>Synopsis parses source code into a variety of <span class="emphasis"><em>internal representations</em></span> (IRs),
        which then are manipulated in various ways, before some output (such as a cross-referenced API
        documentation) is generated by an appropriate <span class="emphasis"><em>formatter</em></span>.</p><p>At the core of Synopsis are a set of programming-language independent IRs which
        all <span class="emphasis"><em>parser frontends</em></span> generate. One of these representations is the 
        <span class="emphasis"><em>Abstract Semantic Graph</em></span>, which stores declarations and their relationships.
        Another is the <span class="emphasis"><em>SXR</em></span> Symbol Table, which stores information about symbols and their use
        in the source code. Other representations exist (such as the C++ Parse Tree), but they are not yet stored
        in a publicly accessible form.</p><div class="mediaobject"><img src="images/ir.png" width="432" /></div><p>For details about the ASG, see <a class="xref" href="asg.html" title="The ASG">the section called “The ASG”</a></p><p>At this time, the C++ frontend's IRs (PTree, SymbolTable, etc.) are not yet accessible through python,
        though they eventually will be, making it possible to use Synopsis as a source-to-source compiler. To learn
        more about the evolving C &amp; C++ parser and its IRs, see the 
        <a class="ulink" href="../DevGuide/index.html" target="_top">Developer's Guide</a>.</p></div><div class="navfooter"><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="inspecting.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="intro.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="documenting.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Inspecting Code </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Documenting Source-Code</td></tr></table></div></body></html>