/tags/SN-514-2003-06-26/snavigator/doc/html/enterprise/progref/langspecs.html
HTML | 717 lines | 556 code | 161 blank | 0 comment | 0 complexity | 8e87e7241c004ea677e04c48069f8867 MD5 | raw file
- <!doctype html public "-//w3c//dtd html 4.0 transitional//en">
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
- <meta http-equiv="Content-Style-Type" content="text/css">
- <meta name="GENERATOR" content="Mozilla/4.51 [en] (WinNT; U) [Netscape]">
- <title>Predefined Language Conventions</title>
- </head>
- <body bgcolor="#FFFFFF">
- <h1 CLASS="Chapter">
- <a NAME="pgfId-997609"></a><a NAME="pgfId-997610"></a><a NAME="langspecs"></a>Predefined
- Language Conventions</h1>
- <img SRC="langspecs-1.gif" >
- <p CLASS="Body"><a NAME="pgfId-997612"></a>Source-Navigator does not invoke
- a compiler to build its databases; instead, it has a plug-in parser for
- each language it supports. For details on how to add plug-in parsers to
- Source-Navigator, see <a href="addparsers.html#25359" CLASS="XRef">The
- Parser Toolbox Library</a>.
- <h2 CLASS="Heading1">
- <a NAME="pgfId-1006520"></a><a NAME="39640"></a><a NAME="parsers"></a>Predefined
- Parsers</h2>
- <div CLASS="Body"><a NAME="pgfId-1115371"></a>Source-Navigator was designed
- to support not only the most common software development languages, but
- to support them <i>together</i>. With Source-Navigator you can follow references
- from a C++ method to a FORTRAN subroutine, and even to assembly language.
- To accomplish this task efficiently, Source-Navigator shares terms between
- multiple languages, even when the languages are defined in different terms.
- <br> </div>
- <div CLASS="Body"><a NAME="pgfId-1175284"></a>For example, a C <tt>struct</tt>
- is represented in Source-Navigator as a <tt>class</tt>; there is no separate
- <tt>struct</tt>
- type for C. By unifying these terms, Source-Navigator greatly simplifies
- both the task of multi-language code comprehension and its own internal
- organization.</div>
- <h3 CLASS="Heading2">
- <a NAME="pgfId-1175289"></a><a NAME="35359"></a>The C and C++ Parser</h3>
- <div CLASS="Body"><a NAME="pgfId-1175293"></a>This parser understands <a NAME="marker-1175290"></a>C++, <a NAME="marker-1175291"></a>K&R
- C, and <a NAME="marker-1175292"></a>ANSI C languages, including the
- pre-processor directives. <a NAME="marker-1175294"></a>Pre-processing
- is not necessary to parse C or C++ source code. During project creation
- a default <i>include search path<a NAME="marker-1175295"></a></i> is created
- that has the same role as the <tt>-I</tt> option for the C pre-processor.
- The include search path can be modified during project creation or by selecting
- <b>File
- -> Project Preferences -> Include</b>.</div>
- <h3 CLASS="Heading2">
- <a NAME="pgfId-1175297"></a><a NAME="17700"></a>The FORTRAN Parser</h3>
- <div CLASS="Body"><a NAME="pgfId-1175299"></a>The FORTRAN parser understands
- the <a NAME="marker-1175298"></a>FORTRAN 77 syntax, plus extensions
- such as <tt>record</tt> , <tt>structure<a NAME="marker-1175300"></a></tt>,
- and <tt>include<a NAME="marker-1175301"></a></tt>. The usual FORTRAN extensions
- are understood by the parser as well. The include search path has the same
- role as the <tt>-I</tt> option for the C pre-processor. The include search
- path can be modified during project creation or by selecting <b>File ->
- Project Preferences -> Include</b>.
- <br> </div>
- <div CLASS="Body"><a NAME="pgfId-1175303"></a>The <a NAME="marker-1175302"></a>FORTRAN
- structure declaration is mapped by the tools to a class. Structure members
- are treated as instance variables.</div>
- <h3 CLASS="Heading2">
- <a NAME="pgfId-1175305"></a><a NAME="30981"></a>The COBOL Parser</h3>
- <div CLASS="Body"><a NAME="pgfId-1175308"></a>The COBOL parser understands
- these dialects: <a NAME="marker-1175307"></a>ANSI '74 Standard, ANSI
- '85 Standard (ANSI X3.23-1985), IBM OS/VS COBOL, IBM VS COBOL II, IBM SAA
- COBOL/370, IBM DOSVS COBOL, X/Open, and Micro Focus COBOL.
- <br> </div>
- <table WIDTH="100%" >
- <tr VALIGN=TOP>
- <td>
- <div CLASS="Label"><a NAME="pgfId-1175309"></a><b>Note:</b></div>
- </td>
- <td>
- <div CLASS="Note"><a NAME="pgfId-1005422"></a>The empty areas of <a href="langspecs.html#20276" CLASS="XRef">Type
- Definitions for Supported Languages</a> represent types that don't exist
- in each language.</div>
- </td>
- </tr>
- </table>
- <div CLASS="Note">
- <br><a NAME="pgfId-1104674"></a></div>
- <table>
- <caption>
- <div CLASS="TableTitle"><a NAME="pgfId-1005449"></a><a NAME="marker-1005444"></a><a NAME="20276"></a><a NAME="table4"></a><b>Type
- Definitions for Supported Languages </b></div>
- </caption>
- <tr ALIGN=LEFT VALIGN=TOP>
- <th>
- <div CLASS="CellHeading"><a NAME="pgfId-1005463"></a>Type Abbrev.</div>
- </th>
- <th>
- <div CLASS="CellHeading"><a NAME="pgfId-1005467"></a><a NAME="marker-1005465"></a>C/<a NAME="marker-1005466"></a>C++
- and <a NAME="marker-1005468"></a>Java</div>
- </th>
- <th>
- <div CLASS="CellHeading"><a NAME="pgfId-1005471"></a><a NAME="marker-1005470"></a>FORTRAN</div>
- </th>
- <th>
- <div CLASS="CellHeading"><a NAME="pgfId-1005474"></a>COBOL</div>
- </th>
- <th>
- <div CLASS="CellHeading"><a NAME="pgfId-1005477"></a><a NAME="marker-1005476"></a>Tcl</div>
- </th>
- <th>
- <div CLASS="CellHeading"><a NAME="pgfId-1005479"></a>[incr Tcl]</div>
- </th>
- <th>
- <div CLASS="CellHeading"><a NAME="pgfId-1005481"></a>PowerPC assembly</div>
- </th>
- </tr>
- <tr>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005483"></a>cl</div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005485"></a>Class, Struct</div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005487"></a>Structure</div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005489"></a>Structure</div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005491"></a>Namespace</div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005493"></a>Class</div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005495"></a></div>
- </td>
- </tr>
- <tr>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005497"></a>com</div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005499"></a></div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005501"></a>Common Block</div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005503"></a></div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005505"></a></div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005507"></a></div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005509"></a></div>
- </td>
- </tr>
- <tr>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005511"></a>cov</div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005513"></a></div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005515"></a>Common variable</div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005517"></a></div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005519"></a></div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005521"></a></div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005523"></a></div>
- </td>
- </tr>
- <tr VALIGN=TOP>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005525"></a>con</div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005527"></a>#define<sup><a href="#pgfId-1006508" CLASS="footnote">1</a></sup>
- <br>const<sup><a href="#pgfId-1150181" CLASS="footnote">2</a></sup>
- <br>static final<sup><a href="#pgfId-1006517" CLASS="footnote">3</a></sup></div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005529"></a>Constant</div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005531"></a></div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005533"></a></div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005535"></a></div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005537"></a>Const</div>
- </td>
- </tr>
- <tr>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005539"></a>e</div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005541"></a>Enum</div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005543"></a></div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005545"></a></div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005547"></a></div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005549"></a></div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005551"></a></div>
- </td>
- </tr>
- <tr>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005553"></a>ec</div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005555"></a>Enum value</div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005557"></a></div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005559"></a></div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005561"></a></div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005563"></a></div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005565"></a></div>
- </td>
- </tr>
- <tr VALIGN=TOP>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005567"></a>fd</div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005569"></a>Function declaration</div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005571"></a></div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005573"></a></div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005575"></a></div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005577"></a></div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005579"></a></div>
- </td>
- </tr>
- <tr VALIGN=TOP>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005581"></a>fr</div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005583"></a>Friend</div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005585"></a></div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005587"></a></div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005589"></a></div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005591"></a></div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005593"></a></div>
- </td>
- </tr>
- <tr VALIGN=TOP>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005595"></a>fu</div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005597"></a>Function</div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005599"></a>Function, Label</div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005601"></a>Function, Label</div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005603"></a>Procedure</div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005605"></a>Procedure</div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005607"></a>Function</div>
- </td>
- </tr>
- <tr VALIGN=TOP>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005609"></a>gv</div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005611"></a>Global variable</div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005613"></a></div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005615"></a>Global variable</div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005617"></a>Global variable</div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005619"></a>Global variable</div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005621"></a>Global variable</div>
- </td>
- </tr>
- <tr VALIGN=TOP>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005623"></a>iv</div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005625"></a>Instance variable</div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005627"></a>Instance variable<sup><a href="#pgfId-1005630" CLASS="footnote">4</a></sup></div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005632"></a>Instance variable<sup><a href="#pgfId-1150186" CLASS="footnote">5</a></sup></div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005637"></a>Namespace variable</div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005639"></a>Instance variable</div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005641"></a></div>
- </td>
- </tr>
- <tr VALIGN=TOP>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005643"></a>lv</div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005645"></a>Local variable</div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005647"></a></div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005649"></a></div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005651"></a>Local variable</div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005653"></a>Local variable</div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005655"></a></div>
- </td>
- </tr>
- <tr>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005657"></a>ma</div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005659"></a>Macro</div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005661"></a></div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005663"></a></div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005665"></a></div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005667"></a></div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005669"></a>Macro</div>
- </td>
- </tr>
- <tr>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005671"></a>md</div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005673"></a>Method declaration</div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005675"></a></div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005677"></a></div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005679"></a></div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005681"></a></div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005683"></a></div>
- </td>
- </tr>
- <tr VALIGN=TOP>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005685"></a>mi</div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005687"></a>Method implementation</div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005689"></a></div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005691"></a></div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005693"></a>Namespace procedure</div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005695"></a>Method implementation</div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005697"></a></div>
- </td>
- </tr>
- <tr>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005699"></a>su</div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005701"></a></div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005703"></a>Subroutine</div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005705"></a></div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005707"></a></div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005709"></a></div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005711"></a></div>
- </td>
- </tr>
- <tr>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005713"></a>t</div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005715"></a>Typedef</div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005717"></a></div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005719"></a></div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005721"></a></div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005723"></a></div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005725"></a></div>
- </td>
- </tr>
- <tr>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005727"></a>un</div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005729"></a>Union</div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005731"></a></div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005733"></a></div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005735"></a></div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005737"></a></div>
- </td>
- <td>
- <div CLASS="CellBody"><a NAME="pgfId-1005739"></a></div>
- </td>
- </tr>
- </table>
- <h3 CLASS="Heading2">
- <a NAME="pgfId-1007992"></a><a NAME="27795"></a>The Tcl and [incr Tcl]
- Parser</h3>
- <div CLASS="Body"><a NAME="pgfId-1007993"></a>The Tcl parser understands
- all versions of Tcl/Tk through version 8.1. In addition, it understands
- <tt>[incr
- Tcl]</tt> versions 1.5 and 2.x.</div>
- <h3 CLASS="Heading2">
- <a NAME="pgfId-1007994"></a><a NAME="21506"></a>The <a NAME="marker-1175270"></a>Java
- Parser</h3>
- <div CLASS="Body"><a NAME="pgfId-1007995"></a>The Java parser understands
- Java 1.0.</div>
- <h3 CLASS="Heading2">
- <a NAME="pgfId-1103113"></a>The PowerPC assembly Parser</h3>
- <div CLASS="Body"><a NAME="pgfId-1103114"></a>The PowerPC assembly parser
- understands model number 601 assembly language.</div>
- <div CLASS="Body"><a NAME="pgfId-1175267"></a>
- <hr></div>
- <div CLASS="TableFootnote"><span CLASS="footnoteNumber">1.</span><a NAME="pgfId-1006508"></a>
- In C and C++.</div>
- <div CLASS="TableFootnote"><span CLASS="footnoteNumber">2.</span><a NAME="pgfId-1150181"></a>
- In C and C++.</div>
- <div CLASS="TableFootnote"><span CLASS="footnoteNumber">3.</span><a NAME="pgfId-1006517"></a>
- In Java.</div>
- <div CLASS="TableFootnote"><span CLASS="footnoteNumber">4.</span><a NAME="pgfId-1005630"></a>
- For structure members.</div>
- <div CLASS="TableFootnote"><span CLASS="footnoteNumber">5.</span><a NAME="pgfId-1150186"></a>
- For structure members.</div>
- </body>
- </html>