File: architecture.html

package info (click to toggle)
synopsis 0.8.0-5
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 10,112 kB
  • ctags: 12,996
  • sloc: cpp: 34,254; ansic: 33,620; python: 10,975; sh: 7,261; xml: 6,369; makefile: 773; asm: 445
file content (20 lines) | stat: -rw-r--r-- 3,382 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Architecture</title><link rel="stylesheet" href="synopsis.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.65.1"><link rel="home" href="index.html" title="Synopsis Developer's Guide"><link rel="up" href="intro.html" title="Chapter1.Introduction"><link rel="previous" href="origins.html" title="Origins"><link rel="next" href="testing.html" title="Current Status: Regression Test Reports"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><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">Chapter1.Introduction</th><td width="20%" align="right"><a accesskey="n" href="testing.html">Next</a></td></tr></table></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="architecture"></a>Architecture</h2></div></div><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"><div class="titlepage"><div><div><h3 class="title"><a name="id2996488"></a>Sub-Projects</h3></div></div><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 Syntax Tree</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"><div class="titlepage"><div><div><h3 class="title"><a name="id2996523"></a>Code Layout</h3></div></div><div></div></div><p>
          Following the hybrid nature of the project, the source layout has
          two more or less separate root directories. <tt class="filename">Synopsis/</tt>
          provides the <span class="type">Synopsis</span> Python package, while 
          <tt class="filename">src/</tt> 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>