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

Visustin generates flow charts from code written in any of C, C++, C#, Java and JSP.

Older language versions are generally supported.

Other languages. Try Visustin with dialects and variants of the above languages. As long as the basic syntax is equal, Visustin may work to a reasonable extent. Naturally, syntax extensions are not supported, but should not cause a major failure either. You may see isolated effects such as individual statements not doing what you expect. We would be interested in your findings.

Supported statements

The syntax of these "semicolon" languages is quite similar. Naturally, there are some important differences as well. The following statements are supported.

Other statements are supported but have no specific visualization. Certain non-executable blocks are not visualized, because they contain no control flow. Special cases include:

JSP server side tags

JSP is a server-side scripting language that embeds source code in an HTML page. Visustin looks for opening and closing tags to extract source code from HTML. All text outside these tags is treated as HTML content. If there are no opening or closing tags, the code is assumed to be pure source code instead of HTML.

Visustin supports the server-side code on JavaServer Pages (JSP). The following tags are supported: <%..%> <%!..%> <%--..--%>. Code within these tags is parsed as Java or JSP comments. XML style JSP tags are not supported (<jsp:scriptlet> etc.). Write us if you require support for them.

Pre-processor directives

#if..#elif..#else..#endif -style conditional directives are supported in C/C++, C# and Java mode. Even if regular Java has no pre-processor, conditional directives are supported for non-standard implementations, such as Microsoft J++ and J#.

There are 2 options to choose from in the Options menu: 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, this mode may cause some unwanted effects. If it doesn't work out well, use the Show as comments options.

#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.

#include statements (or similar) are displayed, but the included file is not fetched.


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

C/C++ digraphs and trigraphs

Visustin fully supports C/C++ digraph and trigraph sequences, which may appear in legacy code:
<% %> <: :> %: %:%: ??= ??/ ??' ??( ??) ??! ??< ??> ??-

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 Visustin Help