<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Creating or modifying a custom extension using the CAST Universal Analyzer framework on Documentation - V2</title><link>https://doc.castsoftware.com/export-v2/extend/create-a-new-extension/creating-or-modifying-a-custom-extension-using-the-cast-universal-analyzer-framework/</link><description>Recent content in Creating or modifying a custom extension using the CAST Universal Analyzer framework on Documentation - V2</description><generator>Hugo</generator><language>en</language><atom:link href="https://doc.castsoftware.com/export-v2/extend/create-a-new-extension/creating-or-modifying-a-custom-extension-using-the-cast-universal-analyzer-framework/index.xml" rel="self" type="application/rss+xml"/><item><title>What is the CAST Universal Analyzer and Framework</title><link>https://doc.castsoftware.com/export-v2/extend/create-a-new-extension/creating-or-modifying-a-custom-extension-using-the-cast-universal-analyzer-framework/what-is-the-cast-universal-analyzer-and-framework/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://doc.castsoftware.com/export-v2/extend/create-a-new-extension/creating-or-modifying-a-custom-extension-using-the-cast-universal-analyzer-framework/what-is-the-cast-universal-analyzer-and-framework/</guid><description>&lt;p&gt;If you want your custom extension to analyze a language not already supported by CAST, then you need to configure the Universal Analyzer to do so using the proprietary CAST Universal Analyzer Framework (a set of categories that describe a language and how to analyze that language).&lt;/p&gt;
&lt;p&gt;This is a three step process:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Define the language and objects for the language you want to analyze&lt;/li&gt;
&lt;li&gt;Define how to analyze the language you want to analyze - only necessary if analyzing source code&lt;/li&gt;
&lt;li&gt;Test the configuration files for completeness and then include the configuration files in a custom extension&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="alert alert-info" role="alert"&gt;&lt;div class="h4 alert-heading" role="heading"&gt;Info&lt;/div&gt;
&lt;p&gt;Please note that this is NOT a simple process and is more often reserved for CAST Administrators.&lt;/p&gt;</description></item><item><title>Appendix - Special Cases</title><link>https://doc.castsoftware.com/export-v2/extend/create-a-new-extension/creating-or-modifying-a-custom-extension-using-the-cast-universal-analyzer-framework/appendix-special-cases/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://doc.castsoftware.com/export-v2/extend/create-a-new-extension/creating-or-modifying-a-custom-extension-using-the-cast-universal-analyzer-framework/appendix-special-cases/</guid><description>&lt;h2 id="objects-with-no-end-pattern-and-siblings-that-are-recognized-using"&gt;Objects with no end pattern and siblings that are recognized using &lt;backward&gt;&lt;/h2&gt;
&lt;p&gt;Defining an object in the &lt;strong&gt;xxxLanguagePattern&lt;/strong&gt; file that has:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;no end pattern&lt;/li&gt;
&lt;li&gt;siblings whose properties are identified using the &lt;strong&gt;&lt;backward/&gt;&lt;/strong&gt; element&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;can cause Universal Analyzer to incorrectly identify the end of the object because it in fact contains the start of the following object. If this is the case, you need to make sure that in the localization pattern for the sibling objects (i.e. those that have a property recognized using the &lt;strong&gt;&lt;backward/&gt;&lt;/strong&gt; element) you include a Regular Expression that takes into account the property that is recognized using the &lt;strong&gt;&lt;backward/&gt;&lt;/strong&gt; element.&lt;/p&gt;</description></item><item><title>Ensuring your existing Universal Analyzer extension files are compatible with CAST AIP</title><link>https://doc.castsoftware.com/export-v2/extend/create-a-new-extension/creating-or-modifying-a-custom-extension-using-the-cast-universal-analyzer-framework/ensuring-your-existing-universal-analyzer-extension-files-are-compatible-with-cast-aip/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://doc.castsoftware.com/export-v2/extend/create-a-new-extension/creating-or-modifying-a-custom-extension-using-the-cast-universal-analyzer-framework/ensuring-your-existing-universal-analyzer-extension-files-are-compatible-with-cast-aip/</guid><description>&lt;p&gt;&lt;strong&gt;On this page:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Target audience:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;CAST Administrators&lt;/p&gt;
&lt;div class="alert alert-info" role="alert"&gt;&lt;div class="h4 alert-heading" role="heading"&gt;Info&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Summary:&lt;/strong&gt; This page describes what you need to do if you have existing custom Universal Analyzer extensions (language packages) used with previous versions of CAST AIP and you want to use them with this release and any future release of CAST AIP.&lt;/p&gt;
&lt;/div&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;CAST has made changes to the way in which Universal Analyzer extensions (language packages) are handled:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The Universal Analyzer is &lt;strong&gt;unicode compliant&lt;/strong&gt;, therefore it can work with unicode encoded source files. As such, the extension&amp;rsquo;s configuration XML files also need to be &lt;strong&gt;unicode compliant&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;CAST uses the &lt;strong&gt;Perl Regular Expression engine&lt;/strong&gt; called &lt;strong&gt;BOOST&lt;/strong&gt; (previously the TCL engine was used), therefore Regular Expressions that are defined in your extension files must use the BOOST Regular Expression format.&lt;/li&gt;
&lt;li&gt;A change to the metamodel format has also been introduced.&lt;/li&gt;
&lt;li&gt;For those working on custom Universal Analyzer extensions created for use with CAST AIP 6.4.x, a specific change is required.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Each change is detailed below.&lt;/p&gt;</description></item><item><title>Configuring CAST to accept your Universal Analyzer language package</title><link>https://doc.castsoftware.com/export-v2/extend/create-a-new-extension/creating-or-modifying-a-custom-extension-using-the-cast-universal-analyzer-framework/configuring-cast-to-accept-your-universal-analyzer-language-package/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://doc.castsoftware.com/export-v2/extend/create-a-new-extension/creating-or-modifying-a-custom-extension-using-the-cast-universal-analyzer-framework/configuring-cast-to-accept-your-universal-analyzer-language-package/</guid><description>&lt;p&gt;&lt;strong&gt;On this page:&lt;/strong&gt;&lt;/p&gt;
&lt;div class="alert alert-info" role="alert"&gt;&lt;div class="h4 alert-heading" role="heading"&gt;Info&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Summary&lt;/strong&gt;: Once you have created your language package, there are various steps you need to go through to ensure that CAST takes your package into account correctly. This section describes the required actions.&lt;/p&gt;
&lt;/div&gt;
&lt;h2 id="step-1---validation"&gt;Step 1 - Validation&lt;/h2&gt;
&lt;p&gt;The first step is to validate your language package. This is done using the &lt;strong&gt;UA Assistant&lt;/strong&gt; (&lt;strong&gt;UAAssistant.exe&lt;/strong&gt;) that can be found at the root of your CAST installation. This tool checks that your language packages are correct and conform to the required standards before they are used, thus avoiding errors during an analysis.&lt;/p&gt;</description></item></channel></rss>