FAQ - Pascal Analyzer

1. What is Pascal Analyzer and how can it make my developer life easier?
2. I'm a registered user, where can I find updated versions of the full program?
3. Which compiler versions are supported by Pascal Analyzer?
4. Is it necessary to change my source code in order to let Pascal Analyzer do its work?
5. How can I jump from an error location in a Pascal Analyzer report to my source code?
6. How can I hide source code from Pascal Analyzer?
7. How can I exclude results from code in certain folders?
8. Where can I find the cyclomatic complexity metrics for my code?
9. How can I detect assigned value parameters?
10. Can PAL tell me if I have declared an identifier with the same name as a built-in identifier?
11. When adding a virtual abstract method to a base class, can PAL help me find all places where I need to override this method?
12. Results are often presented as lists of identifiers, sorted by name. Can I change this so that the lists are displayed sorted by module name, and secondly by identifier name?
13. Is it possible to generate a list of global variables?
14. For a given function or procedure, is it possible to see a list of all called other functions or procedures?
15. How can I create a template for new projects, so I do not have to enter the same settings again and again?

1. What is Pascal Analyzer and how can it make my developer life easier?
Pascal Analyzer is a powerful and efficient source code analysis tool. It will help you find all sorts of bugs, errors, and anomalies.

Pascal Analyzer supports your development process by:


2. I'm a registered user, where can I find updated versions of the full program?
Read the mail you got when you ordered Pascal Analyzer. The same instructions apply for updates. If you cannot find this mail, let us know, and we will help you as soon as we can.


3. Which versions are supported by Pascal Analyzer?
Pascal Analyzer directly supports code written for the following compilers:

By setting appropriate compiler directives and conditional defines, PAL should also handle code written for Kylix (Delphi for Linux).


4. Is it necessary to change my source code in order to let Pascal Analyzer do its work?
No, not at all. Just make sure that you select a suitable compiler target. Also set any appropriate compiler directives and conditional defines, just as you would when compiling from within the IDE. Or use an include file with compiler directives and conditíonal defines.


5. How can I jump from an error location in a Pascal Analyzer report to my source code?
There are two ways:


6. How can I hide source code from Pascal Analyzer?
My project involves a lot of source code. I have no interest in finding errors in the VCL or in some third-party libraries. What is the best way to avoid parsing and analyzing this code?

First, uncheck the "Use Delphi library path" and "Use Delphi browsing path" options in the "Project Options" dialog box. Then only include the folders that you want PAL to find in the "Search folders" text box.


7. How can I exclude results from code in certain folders?
I do not want to present results for code in some folders. What can I do?

Use the "Exclude identifiers from these folders in reports" option in the "Project Options" dialog box. It can sometimes be desirable to let Pascal Analyzer find and parse all code, so it can get a better understanding. But in this way, you can exclude results from these folders.


8. Where can I find the cyclomatic complexity metrics for my code?

Cyclomatic complexity is a measure of software complexity first introduced by McCabe. It measures the number of linearly-independent paths through a program module. PAL does not directly display cyclomatic complexity metrics. However, the Complexity Report displays decision points (DP). Cyclomatic complexity is often defined as the number of DPs plus one, so there is a direct relation between these two metrics.


9. How can I detect assigned value parameters?
For example, code like this:

procedure MyProc(I : integer);
begin
...
  I := 555; // I is not passed as reference
...
end;

In the "Warnings Report", this is reported in the section "Value parameters that are set".


10. Can PAL tell me if I have declared an identifier with the same name as a built-in identifier?

Yes, the "Convention Report" reports this in the section "Identifiers that have unsuitable names". It lists identifiers that share the same name as keywords, directives, or identifiers from the System unit. Example: Absolute, Round, IntToStr


11. When adding a virtual abstract method to a base class, can PAL help me find all places where I need to override this method?

Yes, the "Warnings Report" reports this in the section "Classes without override of abstract methods". It is important to override these methods, otherwise you could get an exception at runtime.


12. Results are often presented as lists of identifiers, sorted by name. Can I change this so that the lists are displayed sorted by module name, and secondly by identifier name?

Sure, you find this in the Project Options dialog box, in the lower part of the "General" tab page.


13. Is it possible to generate a list of global variables?

The "Identifiers Report" has a section called "Global Variables", which provides exactly this.


14. For a given function or procedure, is it possible to see a list of all called other functions or procedures?

Use the "Call Index Report" for this.


15. How can I create a template for new projects, so I do not have to enter the same settings again and again?

Set options for a new project, that you want to keep as a template. Then select "Options|Set as Template" from the menu and the options will be used for the new projects that you create.


© Copyright 2001-2007 Peganza

All product names are trademarks or registered trademarks of their respective owners.