C/C++, C#, Java, JSP, JavaScript and PHP flow charts

Supported languages

Visustin generates flow charts from code written in any of C, C++, C#, Java, J#, JSP, JavaScript, JScript .NET and PHP. These languages have quite similar syntax, so they are all handled here.

Supported statements

Multi-procedure visualization is supported. Certain non-executable blocks are not visualized, because they contain no control flow:

Tags, digraphs and trigraphs

JSP server-side scripting tag support. Visustin supports the server-side code in Java Server Pages (JSP). The following tags are supported: <%..%> <%!..%> <%--..--%>. Code within these tags is parsed as Java or JSP comments. All other tags are treated as HTML. In particular, XML style JSP tags are not supported (<jsp:scriptlet> etc.).

PHP tags. Visustin supports the following tags in PHP mode: <?..?> <?php..?> <%..%>. Code within these tags is parsed as PHP code. All other tags are treated as HTML. In particular, HTML "script" tags are not supported (<script language="php">).

C/C++ digraphs and trigraphs. Visustin fully supports C/C++ digraph and trigraph sequences: <% %> <: :> %: %:%: ??= ??/ ??' ??( ??) ??! ??< ??> ??-

Pre-processor directives

#if..#elif..#else..#endif -style conditional directives are supported for C/C++, C# and Java (J++/J#). There are 2 modes to choose from: show as comments and show as flow symbols. Show as comments displays pre-processor directives "as is" at the location they appear in the code. Show as flow symbols treats the pre-processor directives as if they were regular conditional statements (if..elif..else). This works well in many cases. Because pre-processor directives are not really executable code, though, this mode may cause some unwanted effects. If it doesn't work out well, use the Show as comments mode.

#define macros are not expanded. If the flow chart doesn't appear correct (say the logic depends on the value of a constant), you need to manually remove any uncompiled branches and expand macros to visualize the run-time logic correctly.

Limitations

The following syntax is unsupported or only limited support is provided. The chart may display a normal statement, not a branch or a jump.

Inline assembly language

Inlined assembler instructions need to be charted separately. To flowchart assembly language code embedded in C/C++ files, process it in assembler mode.

©Aivosto Oy