Predefined Language Conventions

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 The Parser Toolbox Library.

Predefined Parsers

Source-Navigator was designed to support not only the most common software development languages, but to support them together. 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.
 
For example, a C struct is represented in Source-Navigator as a class; there is no separate struct type for C. By unifying these terms, Source-Navigator greatly simplifies both the task of multi-language code comprehension and its own internal organization.

The C and C++ Parser

This parser understands C++, K&R C, and ANSI C languages, including the pre-processor directives. Pre-processing is not necessary to parse C or C++ source code. During project creation a default include search path is created that has the same role as the -I option for the C pre-processor. The include search path can be modified during project creation or by selecting File -> Project Preferences -> Include.

The FORTRAN Parser

The FORTRAN parser understands the FORTRAN 77 syntax, plus extensions such as record , structure, and include. The usual FORTRAN extensions are understood by the parser as well. The include search path has the same role as the -I option for the C pre-processor. The include search path can be modified during project creation or by selecting File -> Project Preferences -> Include.
 
The FORTRAN structure declaration is mapped by the tools to a class. Structure members are treated as instance variables.

The COBOL Parser

The COBOL parser understands these dialects: 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.
 
Note:
The empty areas of Type Definitions for Supported Languages represent types that don't exist in each language.
 
Type Definitions for Supported Languages 
Type Abbrev.
C/C++ and Java
FORTRAN
COBOL
Tcl
[incr Tcl]
PowerPC assembly
cl
Class, Struct
Structure
Structure
Namespace
Class
com
Common Block
cov
Common variable
con
#define1
const2
static final3
Constant
Const
e
Enum
ec
Enum value
fd
Function declaration
fr
Friend
fu
Function
Function, Label
Function, Label
Procedure
Procedure
Function
gv
Global variable
Global variable
Global variable
Global variable
Global variable
iv
Instance variable
Instance variable4
Instance variable5
Namespace variable
Instance variable
lv
Local variable
Local variable
Local variable
ma
Macro
Macro
md
Method declaration
mi
Method implementation
Namespace procedure
Method implementation
su
Subroutine
t
Typedef
un
Union

The Tcl and [incr Tcl] Parser

The Tcl parser understands all versions of Tcl/Tk through version 8.1. In addition, it understands [incr Tcl] versions 1.5 and 2.x.

The Java Parser

The Java parser understands Java 1.0.

The PowerPC assembly Parser

The PowerPC assembly parser understands model number 601 assembly language.

1. In C and C++.
2. In C and C++.
3. In Java.
4. For structure members.
5. For structure members.