Sophie

Sophie

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

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>Architecture</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 Developer's Guide" /><link rel="up" href="intro.html" title="Chapter 1. Introduction" /><link rel="prev" href="origins.html" title="Origins" /><link rel="next" href="testing.html" title="Current Status: Regression Test Reports" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Architecture</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="origins.html">Prev</a> </td><th width="60%" align="center">Chapter 1. Introduction</th><td width="20%" align="right"> <a accesskey="n" href="testing.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="architecture"></a>Architecture</h2></div></div></div><p>
        Synopsis provides multiple representations of the parsed code, on different
        levels of granularity. Some of them are exposed using Python, some using C++.
      </p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="id517506"></a>Sub-Projects</h3></div></div></div><p>
          Synopsis contains two basic parts: A C++ library, providing an API to
          parse and analyze C and C++ source files, as well as a Python package
          to parse and analyze IDL, C, C++, and Python code. While the former
          provides fine-grained access to the low-level representations such as
          <span class="emphasis"><em>Parse Tree</em></span> and <span class="emphasis"><em>Symbol Table</em></span>,
          the latter operates on an <span class="emphasis"><em>Abstract Semantic Graph</em></span>.
        </p><p>
          Most of the <span class="type">Processor</span>classes from the Python API are written
          in pure Python, but some (notably the parser classes) are actual extension
          modules that use the low-level APIs from the C++ API.
        </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="id517536"></a>Code Layout</h3></div></div></div><p>
          Following the hybrid nature of the project, the source layout has
          two more or less separate root directories. <code class="filename">Synopsis/</code>
          provides the <span class="type">Synopsis</span> Python package, while 
          <code class="filename">src/</code> contains the sources for the C++ API.
        </p></div></div><div class="navfooter"><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="origins.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="testing.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Origins </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Current Status: Regression Test Reports</td></tr></table></div></body></html>