Porting to NB7.2 and others improvements. release72
authorAndrea Lucarelli <raster@netbeans.org>
Mon, 15 Oct 2012 23:38:26 +0200
branchrelease72
changeset 17887305bc5d5bf98
parent 17883 6727f030f99e
child 17894 7ceebbb201a7
Porting to NB7.2 and others improvements.
ada.editor/build.xml
ada.editor/history.txt
ada.editor/manifest.mf
ada.editor/nbproject/project.properties
ada.editor/nbproject/project.xml
ada.editor/src/org/netbeans/modules/ada/editor/AdaCookieProvider.java
ada.editor/src/org/netbeans/modules/ada/editor/AdaDataLoader.java
ada.editor/src/org/netbeans/modules/ada/editor/AdaDataNode.java
ada.editor/src/org/netbeans/modules/ada/editor/AdaDataObject.java
ada.editor/src/org/netbeans/modules/ada/editor/AdaEditorSupport.java
ada.editor/src/org/netbeans/modules/ada/editor/AdaEditorSupportProvider.java
ada.editor/src/org/netbeans/modules/ada/editor/AdaEmbeddingProvider.java
ada.editor/src/org/netbeans/modules/ada/editor/AdaLanguage.java
ada.editor/src/org/netbeans/modules/ada/editor/AdaMimeResolver.java
ada.editor/src/org/netbeans/modules/ada/editor/AdaVersion.java
ada.editor/src/org/netbeans/modules/ada/editor/Bundle.properties
ada.editor/src/org/netbeans/modules/ada/editor/CodeUtils.java
ada.editor/src/org/netbeans/modules/ada/editor/ReadOnlySupport.java
ada.editor/src/org/netbeans/modules/ada/editor/SourceAbstractDataLoader.java
ada.editor/src/org/netbeans/modules/ada/editor/SourceDataNode.java
ada.editor/src/org/netbeans/modules/ada/editor/SourceDataObject.java
ada.editor/src/org/netbeans/modules/ada/editor/ast/ASTUtils.java
ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/AbortStatement.java
ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/ArrayAccess.java
ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/Assignment.java
ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/BlockStatement.java
ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/BodyDeclaration.java
ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/CaseWhen.java
ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/Dispatch.java
ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/ExitStatement.java
ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/FieldAccess.java
ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/FormalParameter.java
ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/GotoStatement.java
ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/Identifier.java
ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/InfixExpression.java
ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/MethodInvocation.java
ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/NameBase.java
ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/PackageInstanceCreation.java
ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/PackageName.java
ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/Program.java
ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/RaiseStatement.java
ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/Range.java
ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/Reference.java
ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/Scalar.java
ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/SubprogramBody.java
ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/SubprogramSpecification.java
ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/TypeAccess.java
ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/TypeName.java
ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/UnaryOperation.java
ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/Use.java
ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/Variable.java
ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/visitors/DefaultTreePathVisitor.java
ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/visitors/DefaultVisitor.java
ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/visitors/Visitor.java
ada.editor/src/org/netbeans/modules/ada/editor/formatter/AdaFormatter.java
ada.editor/src/org/netbeans/modules/ada/editor/formatter/ui/FmtOptions.java
ada.editor/src/org/netbeans/modules/ada/editor/formatter/ui/FmtTabsIndents.form
ada.editor/src/org/netbeans/modules/ada/editor/formatter/ui/FmtTabsIndents.java
ada.editor/src/org/netbeans/modules/ada/editor/indexer/AdaElement.java
ada.editor/src/org/netbeans/modules/ada/editor/indexer/AdaIndexer.java
ada.editor/src/org/netbeans/modules/ada/editor/indexer/Element.java
ada.editor/src/org/netbeans/modules/ada/editor/lexer/Ada95ASTLexer.java
ada.editor/src/org/netbeans/modules/ada/editor/lexer/Ada95SyntaxLexer.java
ada.editor/src/org/netbeans/modules/ada/editor/lexer/AdaASTLexer.java
ada.editor/src/org/netbeans/modules/ada/editor/lexer/AdaLexUtilities.java
ada.editor/src/org/netbeans/modules/ada/editor/lexer/AdaLexer.java
ada.editor/src/org/netbeans/modules/ada/editor/lexer/AdaSyntaxLexer.java
ada.editor/src/org/netbeans/modules/ada/editor/lexer/AdaTokenId.java
ada.editor/src/org/netbeans/modules/ada/editor/lexer/resources/ASTLexer.skeleton
ada.editor/src/org/netbeans/modules/ada/editor/lexer/resources/Ada95ASTLexer.flex
ada.editor/src/org/netbeans/modules/ada/editor/lexer/resources/Ada95SyntaxLexer.flex
ada.editor/src/org/netbeans/modules/ada/editor/lexer/resources/AdaASTLexer.flex
ada.editor/src/org/netbeans/modules/ada/editor/lexer/resources/AdaASTLexer.skeleton
ada.editor/src/org/netbeans/modules/ada/editor/lexer/resources/AdaSyntaxLexer.flex
ada.editor/src/org/netbeans/modules/ada/editor/lexer/resources/AdaSyntaxLexer.skeleton
ada.editor/src/org/netbeans/modules/ada/editor/navigator/AdaDeclarationFinder.java
ada.editor/src/org/netbeans/modules/ada/editor/navigator/AdaInstantRenamer.java
ada.editor/src/org/netbeans/modules/ada/editor/navigator/AdaOccurrencesFinder.java
ada.editor/src/org/netbeans/modules/ada/editor/navigator/NavUtils.java
ada.editor/src/org/netbeans/modules/ada/editor/navigator/SemiAttribute.java
ada.editor/src/org/netbeans/modules/ada/editor/parser/Ada95ASTParser.java
ada.editor/src/org/netbeans/modules/ada/editor/parser/Ada95ASTSymbols.java
ada.editor/src/org/netbeans/modules/ada/editor/parser/Ada95ErrorHandler.java
ada.editor/src/org/netbeans/modules/ada/editor/parser/AdaASTParser.java
ada.editor/src/org/netbeans/modules/ada/editor/parser/AdaASTSymbols.java
ada.editor/src/org/netbeans/modules/ada/editor/parser/AdaElementHandle.java
ada.editor/src/org/netbeans/modules/ada/editor/parser/AdaErrorHandler.java
ada.editor/src/org/netbeans/modules/ada/editor/parser/AdaParser.java
ada.editor/src/org/netbeans/modules/ada/editor/parser/AdaSemanticAnalyzer.java
ada.editor/src/org/netbeans/modules/ada/editor/parser/AdaStructureScanner.java
ada.editor/src/org/netbeans/modules/ada/editor/parser/Utils.java
ada.editor/src/org/netbeans/modules/ada/editor/parser/resources/Ada95ASTParser.cup
ada.editor/src/org/netbeans/modules/ada/editor/parser/resources/Ada95Parser.cup
ada.editor/src/org/netbeans/modules/ada/editor/parser/resources/AdaASTParser.cup
ada.editor/src/org/netbeans/modules/ada/editor/parser/resources/AdaBaseParser.cup
ada.editor/src/org/netbeans/modules/ada/editor/resources/icons/adb-16.png
ada.editor/src/org/netbeans/modules/ada/editor/resources/icons/ads-16.png
ada.editor/src/org/netbeans/modules/ada/editor/resources/layer.xml
ada.help/history.txt
ada.help/javahelp/org/netbeans/modules/ada/help/docs/ada-platform-manager.html
ada.help/javahelp/org/netbeans/modules/ada/help/docs/customize-project-build.html
ada.help/javahelp/org/netbeans/modules/ada/help/docs/customize-project-libraries.html
ada.help/javahelp/org/netbeans/modules/ada/help/docs/customize-project-run.html
ada.help/javahelp/org/netbeans/modules/ada/help/docs/customize-project-sources-folders.html
ada.help/javahelp/org/netbeans/modules/ada/help/docs/customize-project-sources-naming.html
ada.help/javahelp/org/netbeans/modules/ada/help/docs/customize-project-sources.html
ada.help/javahelp/org/netbeans/modules/ada/help/docs/findUsages-CSH.html
ada.help/javahelp/org/netbeans/modules/ada/help/docs/help-hs.xml
ada.help/javahelp/org/netbeans/modules/ada/help/docs/help-map.xml
ada.help/javahelp/org/netbeans/modules/ada/help/docs/help-toc.xml
ada.help/javahelp/org/netbeans/modules/ada/help/docs/new-ada-application.html
ada.help/javahelp/org/netbeans/modules/ada/help/docs/new-from-existing-ada-sources.html
ada.help/manifest.mf
ada.help/nbproject/project.properties
ada.kit/ada-nbms.zip
ada.kit/ada-nbms/history.txt
ada.kit/ada-nbms/org-netbeans-modules-ada-editor.nbm
ada.kit/ada-nbms/org-netbeans-modules-ada-help.nbm
ada.kit/ada-nbms/org-netbeans-modules-ada-kit.nbm
ada.kit/ada-nbms/org-netbeans-modules-ada-options.nbm
ada.kit/ada-nbms/org-netbeans-modules-ada-platform.nbm
ada.kit/ada-nbms/org-netbeans-modules-ada-project.nbm
ada.kit/ada-nbms/planned-features.txt
ada.kit/build.xml
ada.kit/history.txt
ada.kit/manifest.mf
ada.kit/nbproject/project.properties
ada.kit/nbproject/project.xml
ada.options/history.txt
ada.options/manifest.mf
ada.options/nbproject/project.properties
ada.options/nbproject/project.xml
ada.options/src/org/netbeans/modules/ada/options/AdaOptionsPanelController.java
ada.options/src/org/netbeans/modules/ada/options/Bundle.properties
ada.options/src/org/netbeans/modules/ada/options/resources/layer.xml
ada.platform/history.txt
ada.platform/manifest.mf
ada.platform/nbproject/project.properties
ada.platform/nbproject/project.xml
ada.platform/src/org/netbeans/api/ada/platform/AdaAutoDetector.java
ada.platform/src/org/netbeans/api/ada/platform/AdaExecution.java
ada.platform/src/org/netbeans/api/ada/platform/AdaOutputProcessor.java
ada.platform/src/org/netbeans/api/ada/platform/AdaPlatform.java
ada.platform/src/org/netbeans/api/ada/platform/AdaPlatformManager.java
ada.platform/src/org/netbeans/modules/ada/platform/compiler/gnat/GnatCompiler.java
ada.platform/src/org/netbeans/modules/ada/platform/compiler/gnat/GnatProject.java
ada.platform/src/org/netbeans/modules/ada/platform/compiler/gnat/commands/GnatClean.java
ada.platform/src/org/netbeans/modules/ada/platform/compiler/gnat/commands/GnatMake.java
ada.platform/src/org/netbeans/modules/ada/platform/compiler/jgnat/JGnatCompiler.java
ada.platform/src/org/netbeans/modules/ada/platform/compiler/jgnat/JGnatProject.java
ada.platform/src/org/netbeans/modules/ada/platform/compiler/jgnat/commands/JGnatClean.java
ada.platform/src/org/netbeans/modules/ada/platform/compiler/jgnat/commands/JGnatCommand.java
ada.platform/src/org/netbeans/modules/ada/platform/compiler/jgnat/commands/JGnatMake.java
ada.platform/src/org/netbeans/modules/ada/platform/compiler/jgnat/commands/JRun.java
ada.platform/src/org/netbeans/modules/ada/platform/resources/GprFileTemplate.gpr
ada.platform/src/org/netbeans/modules/ada/platform/ui/Bundle.properties
ada.platform/src/org/netbeans/modules/ada/platform/ui/PlatformsCustomizer.form
ada.platform/src/org/netbeans/modules/ada/platform/ui/PlatformsCustomizer.java
ada.platform/src/org/netbeans/spi/ada/platform/Compiler.java
ada.project/history.txt
ada.project/manifest.mf
ada.project/nbproject/project.properties
ada.project/nbproject/project.xml
ada.project/src/org/netbeans/modules/ada/project/AdaLanguageOptionsAccessor.java
ada.project/src/org/netbeans/modules/ada/project/AdaLogicalViewProvider.java
ada.project/src/org/netbeans/modules/ada/project/AdaProject.java
ada.project/src/org/netbeans/modules/ada/project/AdaSources.java
ada.project/src/org/netbeans/modules/ada/project/api/AdaLanguageOptions.java
ada.project/src/org/netbeans/modules/ada/project/api/AdaSourcePath.java
ada.project/src/org/netbeans/modules/ada/project/api/Bundle.properties
ada.project/src/org/netbeans/modules/ada/project/options/AdaGeneralOptionsPanel.form
ada.project/src/org/netbeans/modules/ada/project/options/AdaGeneralOptionsPanel.java
ada.project/src/org/netbeans/modules/ada/project/options/AdaOptions.java
ada.project/src/org/netbeans/modules/ada/project/options/AdaPreferences.java
ada.project/src/org/netbeans/modules/ada/project/options/Bundle.properties
ada.project/src/org/netbeans/modules/ada/project/options/ui/AdaGeneralOptionsPanel.form
ada.project/src/org/netbeans/modules/ada/project/options/ui/AdaGeneralOptionsPanel.java
ada.project/src/org/netbeans/modules/ada/project/options/ui/Bundle.properties
ada.project/src/org/netbeans/modules/ada/project/path/AdaClassPathProvider.java
ada.project/src/org/netbeans/modules/ada/project/resources/Bundle.properties
ada.project/src/org/netbeans/modules/ada/project/resources/ada-project-mime-resolver.xml
ada.project/src/org/netbeans/modules/ada/project/resources/layer.xml
ada.project/src/org/netbeans/modules/ada/project/ui/MainModuleChooser.java
ada.project/src/org/netbeans/modules/ada/project/ui/SourceNodeFactory.java
ada.project/src/org/netbeans/modules/ada/project/ui/Utils.java
ada.project/src/org/netbeans/modules/ada/project/ui/actions/ActionsUtil.java
ada.project/src/org/netbeans/modules/ada/project/ui/actions/BuildCommand.java
ada.project/src/org/netbeans/modules/ada/project/ui/actions/CleanCommand.java
ada.project/src/org/netbeans/modules/ada/project/ui/actions/RebuildCommand.java
ada.project/src/org/netbeans/modules/ada/project/ui/actions/RunCommand.java
ada.project/src/org/netbeans/modules/ada/project/ui/properties/AdaProjectProperties.java
ada.project/src/org/netbeans/modules/ada/project/ui/properties/Bundle.properties
ada.project/src/org/netbeans/modules/ada/project/ui/properties/CompositePanelProviderImpl.java
ada.project/src/org/netbeans/modules/ada/project/ui/properties/CustomizerBuild.form
ada.project/src/org/netbeans/modules/ada/project/ui/properties/CustomizerBuild.java
ada.project/src/org/netbeans/modules/ada/project/ui/properties/CustomizerLibrariesPath.form
ada.project/src/org/netbeans/modules/ada/project/ui/properties/CustomizerLibrariesPath.java
ada.project/src/org/netbeans/modules/ada/project/ui/properties/CustomizerRun.form
ada.project/src/org/netbeans/modules/ada/project/ui/properties/CustomizerRun.java
ada.project/src/org/netbeans/modules/ada/project/ui/resources/adb-16.png
ada.project/src/org/netbeans/modules/ada/project/ui/resources/ads-16.png
ada.project/src/org/netbeans/modules/ada/project/ui/wizards/Bundle.properties
ada.project/src/org/netbeans/modules/ada/project/ui/wizards/EmptyAdaProjectPanelVisual.form
ada.project/src/org/netbeans/modules/ada/project/ui/wizards/EmptyAdaProjectPanelVisual.java
ada.project/src/org/netbeans/modules/ada/project/ui/wizards/ExistingAdaProjectPanelVisual.form
ada.project/src/org/netbeans/modules/ada/project/ui/wizards/ExistingAdaProjectPanelVisual.java
ada.project/src/org/netbeans/modules/ada/project/ui/wizards/NewAdaProjectWizardIterator.java
ada.project/src/org/netbeans/modules/ada/project/ui/wizards/NewFileWizardIterator.java
ada.project/src/org/netbeans/modules/ada/project/ui/wizards/PanelConfigureSourcesVisual.form
ada.project/src/org/netbeans/modules/ada/project/ui/wizards/PanelConfigureSourcesVisual.java
ada.project/src/org/netbeans/modules/ada/project/ui/wizards/PanelOptionsVisual.form
ada.project/src/org/netbeans/modules/ada/project/ui/wizards/PanelOptionsVisual.java
     1.1 --- a/ada.editor/build.xml	Tue Oct 02 21:55:21 2012 -0400
     1.2 +++ b/ada.editor/build.xml	Mon Oct 15 23:38:26 2012 +0200
     1.3 @@ -7,72 +7,54 @@
     1.4  
     1.5      <!-- SYNTAX LEXER GENERATOR -->
     1.6      <taskdef name="jflex"
     1.7 -        classname="JFlex.anttask.JFlexTask"
     1.8 -        classpath="c:/jflex/jflex-1.4.2/lib/JFlex.jar" />
     1.9 -
    1.10 +    classname="JFlex.anttask.JFlexTask"
    1.11 +    classpath="c:/jflex/jflex-1.4.3/lib/JFlex.jar" />
    1.12      
    1.13 -	<!-- SYNTAX LEXER GENERATOR -->
    1.14 +    <!-- SYNTAX LEXER GENERATOR -->
    1.15      <target name="gen-lexer" description="Ada Syntax Lexer">
    1.16          <echo message="Rebuilding Ada Syntax Lexer..."/>
    1.17 -        <jflex file="${basedir}/src/org/netbeans/modules/ada/editor/lexer/resources/Ada95SyntaxLexer.flex"
    1.18 +        <jflex file="${basedir}/src/org/netbeans/modules/ada/editor/lexer/resources/AdaSyntaxLexer.flex"
    1.19          destdir="${basedir}/src"
    1.20 -        skel="${basedir}/src/org/netbeans/modules/ada/editor/lexer/resources/SyntaxLexer.skeleton"
    1.21 +        skel="${basedir}/src/org/netbeans/modules/ada/editor/lexer/resources/AdaSyntaxLexer.skeleton"
    1.22          />
    1.23      </target>
    1.24      
    1.25 -    
    1.26      <!-- AST LEXER GENERATOR -->
    1.27      <target name="gen-astlexer" description="Ada AST Lexer">
    1.28          <echo message="Rebuilding Ada AST Lexer..."/>
    1.29 -        <jflex file="${basedir}/src/org/netbeans/modules/ada/editor/lexer/resources/Ada95ASTLexer.flex"
    1.30 +        <jflex file="${basedir}/src/org/netbeans/modules/ada/editor/lexer/resources/AdaASTLexer.flex"
    1.31          destdir="${basedir}/src"
    1.32 -        skel="${basedir}/src/org/netbeans/modules/ada/editor/lexer/resources/ASTLexer.skeleton"
    1.33 +        skel="${basedir}/src/org/netbeans/modules/ada/editor/lexer/resources/AdaASTLexer.skeleton"
    1.34          />
    1.35      </target>
    1.36      
    1.37 -    
    1.38      <!-- JAVACUP HANDLER -->
    1.39      <taskdef name="javacup"
    1.40          classname="java_cup.anttask.CUPTask"
    1.41          classpath="${nb_all}/libs.javacup/external/java-cup-11a.jar" />
    1.42 -
    1.43 +        
    1.44      <!-- BASE PARSER GENERATOR -->
    1.45 -    <target name="gen-base-parser" description="Ada Parser baseline">
    1.46 +    <target name="gen-base-parser" description="Ada Base Parser">
    1.47          <echo message="Rebuilding Ada Parser..."/>
    1.48 -        <javacup srcfile="${basedir}/src/org/netbeans/modules/ada/editor/parser/resources/Ada95Parser.cup"
    1.49 +        <javacup srcfile="${basedir}/src/org/netbeans/modules/ada/editor/parser/resources/AdaBaseParser.cup"
    1.50          destdir="${basedir}/src"
    1.51 -        parser="Ada95ASTParser"
    1.52 -        symbols="Ada95ASTSymbols"
    1.53 +        parser="AdaASTParser"
    1.54 +        symbols="AdaASTSymbols"
    1.55          interface="on"
    1.56          force="true"
    1.57          />
    1.58      </target>
    1.59  
    1.60      <!-- AST PARSER GENERATOR -->
    1.61 -	<target name="gen-astparser" description="Ada AST Parser">
    1.62 +    <target name="gen-astparser" description="Ada AST Parser">
    1.63          <echo message="Rebuilding Ada AST Parser..."/>
    1.64 -        <javacup srcfile="${basedir}/src/org/netbeans/modules/ada/editor/parser/resources/Ada95ASTParser.cup"
    1.65 +        <javacup srcfile="${basedir}/src/org/netbeans/modules/ada/editor/parser/resources/AdaASTParser.cup"
    1.66          destdir="${basedir}/src"
    1.67 -        parser="Ada95ASTParser"
    1.68 -        symbols="Ada95ASTSymbols"
    1.69 +        parser="AdaASTParser"
    1.70 +        symbols="AdaASTSymbols"
    1.71          interface="on"
    1.72          force="true"
    1.73          />
    1.74      </target>
    1.75  
    1.76 -<!--
    1.77 -    <target name="jar" depends="init,compile,jar-prep" unless="is.jar.uptodate">
    1.78 -        <taskdef name="gsfjar" classname="org.netbeans.modules.gsf.GsfJar" classpath="${nb_all}/contrib/gsf.api/anttask/gsfanttask.jar:${nbantext.jar}"/>
    1.79 -        <gsfjar jarfile="${cluster}/${module.jar}" compress="${build.package.compress}" index="${build.package.index}" manifest="${manifest.mf}" stamp="${cluster}/.lastModified">
    1.80 -            <fileset dir="${build.classes.dir}"/>
    1.81 -        </gsfjar>
    1.82 -    </target>
    1.83 --->
    1.84 -    <target name="jar" depends="init,compile,jar-prep" unless="is.jar.uptodate">
    1.85 -        <taskdef name="csljar" classname="org.netbeans.modules.csl.CslJar" classpath="${nb_all}/csl.api/anttask/build/cslanttask.jar:${nbantext.jar}"/>
    1.86 -        <csljar jarfile="${cluster}/${module.jar}" compress="${build.package.compress}" index="${build.package.index}" manifest="${manifest.mf}" stamp="${cluster}/.lastModified">
    1.87 -            <fileset dir="${build.classes.dir}"/>
    1.88 -        </csljar>
    1.89 -    </target>
    1.90 -
    1.91  </project>
     2.1 --- a/ada.editor/history.txt	Tue Oct 02 21:55:21 2012 -0400
     2.2 +++ b/ada.editor/history.txt	Mon Oct 15 23:38:26 2012 +0200
     2.3 @@ -1,32 +1,42 @@
     2.4 -0.1.9: dd-mm-2009
     2.5 +0.2.2: 11-10-2012
     2.6 +- Porting to NB7.2 and others improvements.
     2.7 +
     2.8 +0.2.1: 12-08-2010
     2.9 +- Updated modules dependencies version.
    2.10 +
    2.11 +0.2.0: 13-10-2009
    2.12 +- Added the signing of the nbm file.
    2.13 +
    2.14 +0.1.9: 01-10-2009
    2.15  - Migrates from GSF to CSL for new Parsing & Indexing API
    2.16 +- Added improvements on ast parser.
    2.17  
    2.18  0.1.8: 13-09-2009
    2.19 -- Add improvements on ast parser, navigator, instant renamer.
    2.20 -- Add others AST nodes.
    2.21 +- Added improvements on ast parser, navigator, instant renamer.
    2.22 +- Added others AST nodes.
    2.23  
    2.24  0.1.7: 01-02-2009
    2.25 -- Fix ada generic declaration.
    2.26 -- Add improvements on ast parser, navigator, instant renamer.
    2.27 -- Add others AST nodes.
    2.28 +- Fixed ada generic declaration.
    2.29 +- Added improvements on ast parser, navigator, instant renamer.
    2.30 +- Added others AST nodes.
    2.31  
    2.32  0.1.6: 05-01-2009
    2.33 -- Fix string and char literal
    2.34 +- Fixed string and char literal
    2.35  
    2.36  0.1.5: 28-12-2008
    2.37 -- Add improvements on ast parser, indexer and navigator.
    2.38 +- Added improvements on ast parser, indexer and navigator.
    2.39  
    2.40  0.1.4: 19-12-2008
    2.41 -- Add improvements on ast parser, indexer and navigator.
    2.42 +- Added improvements on ast parser, indexer and navigator.
    2.43  
    2.44  0.1.3: 19-11-2008
    2.45 -- Add initial instant renamer, indexer, occurences finder and navigator.
    2.46 +- Added initial instant renamer, indexer, occurences finder and navigator.
    2.47  
    2.48  0.1.2: 18-11-2008
    2.49 -- Add initial code folding and semantic analyzer.
    2.50 +- Added initial code folding and semantic analyzer.
    2.51  
    2.52  0.1.1: 13-11-2008
    2.53 -- Add initial formatter and indent operations
    2.54 +- Added initial formatter and indent operations
    2.55  
    2.56  0.1.0: 23-09-2008
    2.57  - Initial, very alpha release.
     3.1 --- a/ada.editor/manifest.mf	Tue Oct 02 21:55:21 2012 -0400
     3.2 +++ b/ada.editor/manifest.mf	Mon Oct 15 23:38:26 2012 +0200
     3.3 @@ -3,5 +3,5 @@
     3.4  OpenIDE-Module: org.netbeans.modules.ada.editor
     3.5  OpenIDE-Module-Layer: org/netbeans/modules/ada/editor/resources/layer.xml
     3.6  OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/ada/editor/Bundle.properties
     3.7 -OpenIDE-Module-Specification-Version: 0.1.10
     3.8 +OpenIDE-Module-Specification-Version: 0.2.2
     3.9  
     4.1 --- a/ada.editor/nbproject/project.properties	Tue Oct 02 21:55:21 2012 -0400
     4.2 +++ b/ada.editor/nbproject/project.properties	Mon Oct 15 23:38:26 2012 +0200
     4.3 @@ -1,10 +1,13 @@
     4.4  auxiliary.org-netbeans-modules-editor-indent.CodeStyle.project.tab-size=8
     4.5  auxiliary.org-netbeans-modules-editor-indent.CodeStyle.project.text-limit-width=80
     4.6  auxiliary.org-netbeans-modules-editor-indent.CodeStyle.usedProfile=default
     4.7 -javac.source=1.5
     4.8  javac.compilerargs=-Xlint -Xlint:-serial
     4.9 +javac.source=1.6
    4.10  javadoc.arch=${basedir}/arch.xml
    4.11  
    4.12  nbm.homepage=http://wiki.netbeans.org/Ada
    4.13  nbm.module.author=Andrea Lucarelli
    4.14  nbm.needs.restart=true
    4.15 +
    4.16 +keystore=nbproject/private/keystore
    4.17 +nbm_alias=nbada
    4.18 \ No newline at end of file
     5.1 --- a/ada.editor/nbproject/project.xml	Tue Oct 02 21:55:21 2012 -0400
     5.2 +++ b/ada.editor/nbproject/project.xml	Mon Oct 15 23:38:26 2012 +0200
     5.3 @@ -6,21 +6,12 @@
     5.4              <code-name-base>org.netbeans.modules.ada.editor</code-name-base>
     5.5              <module-dependencies>
     5.6                  <dependency>
     5.7 -                    <code-name-base>org.jdesktop.layout</code-name-base>
     5.8 -                    <build-prerequisite/>
     5.9 -                    <compile-dependency/>
    5.10 -                    <run-dependency>
    5.11 -                        <release-version>1</release-version>
    5.12 -                        <specification-version>1.6.1</specification-version>
    5.13 -                    </run-dependency>
    5.14 -                </dependency>
    5.15 -                <dependency>
    5.16                      <code-name-base>org.netbeans.api.annotations.common</code-name-base>
    5.17                      <build-prerequisite/>
    5.18                      <compile-dependency/>
    5.19                      <run-dependency>
    5.20                          <release-version>1</release-version>
    5.21 -                        <specification-version>1.0.1</specification-version>
    5.22 +                        <specification-version>1.14.1</specification-version>
    5.23                      </run-dependency>
    5.24                  </dependency>
    5.25                  <dependency>
    5.26 @@ -29,7 +20,7 @@
    5.27                      <compile-dependency/>
    5.28                      <run-dependency>
    5.29                          <release-version>1</release-version>
    5.30 -                        <specification-version>1.1</specification-version>
    5.31 +                        <specification-version>1.14.1</specification-version>
    5.32                      </run-dependency>
    5.33                  </dependency>
    5.34                  <dependency>
    5.35 @@ -37,7 +28,7 @@
    5.36                      <build-prerequisite/>
    5.37                      <compile-dependency/>
    5.38                      <run-dependency>
    5.39 -                        <specification-version>0.1.7</specification-version>
    5.40 +                        <specification-version>0.1.10</specification-version>
    5.41                      </run-dependency>
    5.42                  </dependency>
    5.43                  <dependency>
    5.44 @@ -45,8 +36,8 @@
    5.45                      <build-prerequisite/>
    5.46                      <compile-dependency/>
    5.47                      <run-dependency>
    5.48 -                        <release-version>1</release-version>
    5.49 -                        <specification-version>1.9.2</specification-version>
    5.50 +                        <release-version>2</release-version>
    5.51 +                        <specification-version>2.28.1</specification-version>
    5.52                      </run-dependency>
    5.53                  </dependency>
    5.54                  <dependency>
    5.55 @@ -55,7 +46,7 @@
    5.56                      <compile-dependency/>
    5.57                      <run-dependency>
    5.58                          <release-version>2</release-version>
    5.59 -                        <specification-version>1.9</specification-version>
    5.60 +                        <specification-version>1.28.1</specification-version>
    5.61                      </run-dependency>
    5.62                  </dependency>
    5.63                  <dependency>
    5.64 @@ -64,7 +55,7 @@
    5.65                      <compile-dependency/>
    5.66                      <run-dependency>
    5.67                          <release-version>3</release-version>
    5.68 -                        <specification-version>3.1</specification-version>
    5.69 +                        <specification-version>3.24.1</specification-version>
    5.70                      </run-dependency>
    5.71                  </dependency>
    5.72                  <dependency>
    5.73 @@ -73,7 +64,7 @@
    5.74                      <compile-dependency/>
    5.75                      <run-dependency>
    5.76                          <release-version>1</release-version>
    5.77 -                        <specification-version>1.10.1</specification-version>
    5.78 +                        <specification-version>1.26.1</specification-version>
    5.79                      </run-dependency>
    5.80                  </dependency>
    5.81                  <dependency>
    5.82 @@ -82,16 +73,7 @@
    5.83                      <compile-dependency/>
    5.84                      <run-dependency>
    5.85                          <release-version>1</release-version>
    5.86 -                        <specification-version>1.22.1</specification-version>
    5.87 -                    </run-dependency>
    5.88 -                </dependency>
    5.89 -                <dependency>
    5.90 -                    <code-name-base>org.netbeans.modules.editor.util</code-name-base>
    5.91 -                    <build-prerequisite/>
    5.92 -                    <compile-dependency/>
    5.93 -                    <run-dependency>
    5.94 -                        <release-version>1</release-version>
    5.95 -                        <specification-version>1.25.1</specification-version>
    5.96 +                        <specification-version>1.41.1</specification-version>
    5.97                      </run-dependency>
    5.98                  </dependency>
    5.99                  <dependency>
   5.100 @@ -100,7 +82,7 @@
   5.101                      <compile-dependency/>
   5.102                      <run-dependency>
   5.103                          <release-version>2</release-version>
   5.104 -                        <specification-version>1.29</specification-version>
   5.105 +                        <specification-version>1.46.1</specification-version>
   5.106                      </run-dependency>
   5.107                  </dependency>
   5.108                  <dependency>
   5.109 @@ -109,7 +91,7 @@
   5.110                      <compile-dependency/>
   5.111                      <run-dependency>
   5.112                          <release-version>1</release-version>
   5.113 -                        <specification-version>1.10.1</specification-version>
   5.114 +                        <specification-version>1.26.1</specification-version>
   5.115                      </run-dependency>
   5.116                  </dependency>
   5.117                  <dependency>
   5.118 @@ -118,7 +100,7 @@
   5.119                      <compile-dependency/>
   5.120                      <run-dependency>
   5.121                          <release-version>1</release-version>
   5.122 -                        <specification-version>1.26</specification-version>
   5.123 +                        <specification-version>1.55.1</specification-version>
   5.124                      </run-dependency>
   5.125                  </dependency>
   5.126                  <dependency>
   5.127 @@ -127,7 +109,24 @@
   5.128                      <compile-dependency/>
   5.129                      <run-dependency>
   5.130                          <release-version>1</release-version>
   5.131 -                        <specification-version>1.19</specification-version>
   5.132 +                        <specification-version>1.46.1</specification-version>
   5.133 +                    </run-dependency>
   5.134 +                </dependency>
   5.135 +                <dependency>
   5.136 +                    <code-name-base>org.netbeans.modules.queries</code-name-base>
   5.137 +                    <build-prerequisite/>
   5.138 +                    <compile-dependency/>
   5.139 +                    <run-dependency>
   5.140 +                        <release-version>1</release-version>
   5.141 +                        <specification-version>1.28.1</specification-version>
   5.142 +                    </run-dependency>
   5.143 +                </dependency>
   5.144 +                <dependency>
   5.145 +                    <code-name-base>org.openide.actions</code-name-base>
   5.146 +                    <build-prerequisite/>
   5.147 +                    <compile-dependency/>
   5.148 +                    <run-dependency>
   5.149 +                        <specification-version>6.26.1</specification-version>
   5.150                      </run-dependency>
   5.151                  </dependency>
   5.152                  <dependency>
   5.153 @@ -135,7 +134,7 @@
   5.154                      <build-prerequisite/>
   5.155                      <compile-dependency/>
   5.156                      <run-dependency>
   5.157 -                        <specification-version>7.3.1</specification-version>
   5.158 +                        <specification-version>7.46.1</specification-version>
   5.159                      </run-dependency>
   5.160                  </dependency>
   5.161                  <dependency>
   5.162 @@ -143,7 +142,7 @@
   5.163                      <build-prerequisite/>
   5.164                      <compile-dependency/>
   5.165                      <run-dependency>
   5.166 -                        <specification-version>7.11</specification-version>
   5.167 +                        <specification-version>7.62.1</specification-version>
   5.168                      </run-dependency>
   5.169                  </dependency>
   5.170                  <dependency>
   5.171 @@ -151,7 +150,7 @@
   5.172                      <build-prerequisite/>
   5.173                      <compile-dependency/>
   5.174                      <run-dependency>
   5.175 -                        <specification-version>7.2</specification-version>
   5.176 +                        <specification-version>7.37.1</specification-version>
   5.177                      </run-dependency>
   5.178                  </dependency>
   5.179                  <dependency>
   5.180 @@ -159,7 +158,7 @@
   5.181                      <build-prerequisite/>
   5.182                      <compile-dependency/>
   5.183                      <run-dependency>
   5.184 -                        <specification-version>7.7.1</specification-version>
   5.185 +                        <specification-version>7.32.1</specification-version>
   5.186                      </run-dependency>
   5.187                  </dependency>
   5.188                  <dependency>
   5.189 @@ -167,7 +166,7 @@
   5.190                      <build-prerequisite/>
   5.191                      <compile-dependency/>
   5.192                      <run-dependency>
   5.193 -                        <specification-version>7.7</specification-version>
   5.194 +                        <specification-version>7.28.1</specification-version>
   5.195                      </run-dependency>
   5.196                  </dependency>
   5.197                  <dependency>
   5.198 @@ -175,7 +174,7 @@
   5.199                      <build-prerequisite/>
   5.200                      <compile-dependency/>
   5.201                      <run-dependency>
   5.202 -                        <specification-version>6.21</specification-version>
   5.203 +                        <specification-version>6.49.1</specification-version>
   5.204                      </run-dependency>
   5.205                  </dependency>
   5.206                  <dependency>
   5.207 @@ -183,7 +182,15 @@
   5.208                      <build-prerequisite/>
   5.209                      <compile-dependency/>
   5.210                      <run-dependency>
   5.211 -                        <specification-version>7.18.1</specification-version>
   5.212 +                        <specification-version>8.25.1</specification-version>
   5.213 +                    </run-dependency>
   5.214 +                </dependency>
   5.215 +                <dependency>
   5.216 +                    <code-name-base>org.openide.util.lookup</code-name-base>
   5.217 +                    <build-prerequisite/>
   5.218 +                    <compile-dependency/>
   5.219 +                    <run-dependency>
   5.220 +                        <specification-version>8.15.1</specification-version>
   5.221                      </run-dependency>
   5.222                  </dependency>
   5.223                  <dependency>
   5.224 @@ -191,7 +198,7 @@
   5.225                      <build-prerequisite/>
   5.226                      <compile-dependency/>
   5.227                      <run-dependency>
   5.228 -                        <specification-version>6.24</specification-version>
   5.229 +                        <specification-version>6.55.1</specification-version>
   5.230                      </run-dependency>
   5.231                  </dependency>
   5.232              </module-dependencies>
     6.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     6.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/AdaCookieProvider.java	Mon Oct 15 23:38:26 2012 +0200
     6.3 @@ -0,0 +1,86 @@
     6.4 +/*
     6.5 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
     6.6 + *
     6.7 + * Copyright 2010 Oracle and/or its affiliates. All rights reserved.
     6.8 + *
     6.9 + * Oracle and Java are registered trademarks of Oracle and/or its affiliates.
    6.10 + * Other names may be trademarks of their respective owners.
    6.11 + *
    6.12 + * The contents of this file are subject to the terms of either the GNU
    6.13 + * General Public License Version 2 only ("GPL") or the Common
    6.14 + * Development and Distribution License("CDDL") (collectively, the
    6.15 + * "License"). You may not use this file except in compliance with the
    6.16 + * License. You can obtain a copy of the License at
    6.17 + * http://www.netbeans.org/cddl-gplv2.html
    6.18 + * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
    6.19 + * specific language governing permissions and limitations under the
    6.20 + * License.  When distributing the software, include this License Header
    6.21 + * Notice in each file and include the License file at
    6.22 + * nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
    6.23 + * particular file as subject to the "Classpath" exception as provided
    6.24 + * by Oracle in the GPL Version 2 section of the License file that
    6.25 + * accompanied this code. If applicable, add the following below the
    6.26 + * License Header, with the fields enclosed by brackets [] replaced by
    6.27 + * your own identifying information:
    6.28 + * "Portions Copyrighted [year] [name of copyright owner]"
    6.29 + *
    6.30 + * If you wish your version of this file to be governed by only the CDDL
    6.31 + * or only the GPL Version 2, indicate your decision by adding
    6.32 + * "[Contributor] elects to include this software in this distribution
    6.33 + * under the [CDDL or GPL Version 2] license." If you do not indicate a
    6.34 + * single choice of license, a recipient has the option to distribute
    6.35 + * your version of this file under either the CDDL, the GPL Version 2 or
    6.36 + * to extend the choice of license to its licensees as provided above.
    6.37 + * However, if you add GPL Version 2 code and therefore, elected the GPL
    6.38 + * Version 2 license, then the option applies only if the new code is
    6.39 + * made subject to such option by the copyright holder.
    6.40 + *
    6.41 + * Contributor(s):
    6.42 + *
    6.43 + * Portions Copyrighted 2009 Sun Microsystems, Inc.
    6.44 + */
    6.45 +package org.netbeans.modules.ada.editor;
    6.46 +
    6.47 +import java.util.Collection;
    6.48 +import org.openide.loaders.DataObject;
    6.49 +import org.openide.util.Lookup;
    6.50 +import org.openide.util.lookup.InstanceContent;
    6.51 +
    6.52 +/**
    6.53 + * Some CND components, like <code>cnd.editor</code> or
    6.54 + * <code>cnd.api.project</code> system bridge, want specific cookies in the
    6.55 + * C/C++ data objects. Such components should implement their own
    6.56 + * {@link AdaCookieProvider}. <code>cnd.source</code> should not depend
    6.57 + * on other CND modules.
    6.58 + *
    6.59 + * @author Alexey Vladykin
    6.60 + */
    6.61 +public abstract class AdaCookieProvider {
    6.62 +
    6.63 +    public abstract void addLookup(DataObject dao, InstanceContent ic);
    6.64 +
    6.65 +    private static AdaCookieProvider DEFAULT;
    6.66 +
    6.67 +    public static synchronized AdaCookieProvider getDefault() {
    6.68 +        if (DEFAULT == null) {
    6.69 +            DEFAULT = new Default();
    6.70 +        }
    6.71 +        return DEFAULT;
    6.72 +    }
    6.73 +
    6.74 +    private static final class Default extends AdaCookieProvider {
    6.75 +
    6.76 +        private final Collection<? extends AdaCookieProvider> providers;
    6.77 +
    6.78 +        public Default() {
    6.79 +            providers = Lookup.getDefault().lookupAll(AdaCookieProvider.class);
    6.80 +        }
    6.81 +
    6.82 +        @Override
    6.83 +        public void addLookup(DataObject dao, InstanceContent ic) {
    6.84 +            for (AdaCookieProvider provider : providers) {
    6.85 +                provider.addLookup(dao, ic);
    6.86 +            }
    6.87 +        }
    6.88 +    }
    6.89 +}
     7.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     7.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/AdaDataLoader.java	Mon Oct 15 23:38:26 2012 +0200
     7.3 @@ -0,0 +1,72 @@
     7.4 +/*
     7.5 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
     7.6 + *
     7.7 + * Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
     7.8 + *
     7.9 + * Oracle and Java are registered trademarks of Oracle and/or its affiliates.
    7.10 + * Other names may be trademarks of their respective owners.
    7.11 + *
    7.12 + * The contents of this file are subject to the terms of either the GNU
    7.13 + * General Public License Version 2 only ("GPL") or the Common
    7.14 + * Development and Distribution License("CDDL") (collectively, the
    7.15 + * "License"). You may not use this file except in compliance with the
    7.16 + * License. You can obtain a copy of the License at
    7.17 + * http://www.netbeans.org/cddl-gplv2.html
    7.18 + * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
    7.19 + * specific language governing permissions and limitations under the
    7.20 + * License.  When distributing the software, include this License Header
    7.21 + * Notice in each file and include the License file at
    7.22 + * nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
    7.23 + * particular file as subject to the "Classpath" exception as provided
    7.24 + * by Oracle in the GPL Version 2 section of the License file that
    7.25 + * accompanied this code. If applicable, add the following below the
    7.26 + * License Header, with the fields enclosed by brackets [] replaced by
    7.27 + * your own identifying information:
    7.28 + * "Portions Copyrighted [year] [name of copyright owner]"
    7.29 + *
    7.30 + * Contributor(s):
    7.31 + *
    7.32 + * The Original Software is NetBeans. The Initial Developer of the Original
    7.33 + * Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun
    7.34 + * Microsystems, Inc. All Rights Reserved.
    7.35 + *
    7.36 + * If you wish your version of this file to be governed by only the CDDL
    7.37 + * or only the GPL Version 2, indicate your decision by adding
    7.38 + * "[Contributor] elects to include this software in this distribution
    7.39 + * under the [CDDL or GPL Version 2] license." If you do not indicate a
    7.40 + * single choice of license, a recipient has the option to distribute
    7.41 + * your version of this file under either the CDDL, the GPL Version 2 or
    7.42 + * to extend the choice of license to its licensees as provided above.
    7.43 + * However, if you add GPL Version 2 code and therefore, elected the GPL
    7.44 + * Version 2 license, then the option applies only if the new code is
    7.45 + * made subject to such option by the copyright holder.
    7.46 + */
    7.47 +package org.netbeans.modules.ada.editor;
    7.48 +
    7.49 +import java.io.IOException;
    7.50 +
    7.51 +import org.openide.filesystems.FileObject;
    7.52 +import org.openide.loaders.DataObjectExistsException;
    7.53 +import org.openide.loaders.MultiDataObject;
    7.54 +
    7.55 +/**
    7.56 + *
    7.57 + * @author Alexander Simon
    7.58 + */
    7.59 +public class AdaDataLoader extends SourceAbstractDataLoader {
    7.60 +
    7.61 +
    7.62 +    public AdaDataLoader() {
    7.63 +        super("org.netbeans.modules.ada.editor.AdaDataObject"); // NOI18N
    7.64 +    }
    7.65 +
    7.66 +    @Override
    7.67 +    protected String getMimeType() {
    7.68 +        return AdaMimeResolver.ADA_MIME_TYPE;
    7.69 +    }
    7.70 +
    7.71 +    @Override
    7.72 +    protected MultiDataObject createMultiObject(FileObject primaryFile) throws DataObjectExistsException, IOException {
    7.73 +        return new AdaDataObject(primaryFile, this);
    7.74 +    }
    7.75 +}
     8.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     8.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/AdaDataNode.java	Mon Oct 15 23:38:26 2012 +0200
     8.3 @@ -0,0 +1,163 @@
     8.4 +/*
     8.5 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
     8.6 + *
     8.7 + * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
     8.8 + *
     8.9 + * The contents of this file are subject to the terms of either the GNU
    8.10 + * General Public License Version 2 only ("GPL") or the Common
    8.11 + * Development and Distribution License("CDDL") (collectively, the
    8.12 + * "License"). You may not use this file except in compliance with the
    8.13 + * License. You can obtain a copy of the License at
    8.14 + * http://www.netbeans.org/cddl-gplv2.html
    8.15 + * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
    8.16 + * specific language governing permissions and limitations under the
    8.17 + * License.  When distributing the software, include this License Header
    8.18 + * Notice in each file and include the License file at
    8.19 + * nbbuild/licenses/CDDL-GPL-2-CP.  Sun designates this
    8.20 + * particular file as subject to the "Classpath" exception as provided
    8.21 + * by Sun in the GPL Version 2 section of the License file that
    8.22 + * accompanied this code. If applicable, add the following below the
    8.23 + * License Header, with the fields enclosed by brackets [] replaced by
    8.24 + * your own identifying information:
    8.25 + * "Portions Copyrighted [year] [name of copyright owner]"
    8.26 + *
    8.27 + * If you wish your version of this file to be governed by only the CDDL
    8.28 + * or only the GPL Version 2, indicate your decision by adding
    8.29 + * "[Contributor] elects to include this software in this distribution
    8.30 + * under the [CDDL or GPL Version 2] license." If you do not indicate a
    8.31 + * single choice of license, a recipient has the option to distribute
    8.32 + * your version of this file under either the CDDL, the GPL Version 2 or
    8.33 + * to extend the choice of license to its licensees as provided above.
    8.34 + * However, if you add GPL Version 2 code and therefore, elected the GPL
    8.35 + * Version 2 license, then the option applies only if the new code is
    8.36 + * made subject to such option by the copyright holder.
    8.37 + *
    8.38 + * Contributor(s):
    8.39 + *
    8.40 + * Portions Copyrighted 2009 Sun Microsystems, Inc.
    8.41 + */
    8.42 +package org.netbeans.modules.ada.editor;
    8.43 +
    8.44 +import java.awt.Image;
    8.45 +import java.text.DateFormat;
    8.46 +import org.openide.filesystems.FileAttributeEvent;
    8.47 +import org.openide.filesystems.FileChangeListener;
    8.48 +import org.openide.filesystems.FileEvent;
    8.49 +import org.openide.filesystems.FileRenameEvent;
    8.50 +import org.openide.loaders.DataNode;
    8.51 +import org.openide.loaders.DataObject;
    8.52 +import org.openide.nodes.FilterNode.Children;
    8.53 +import org.openide.util.ImageUtilities;
    8.54 +import org.openide.util.Lookup;
    8.55 +
    8.56 +/**
    8.57 + *
    8.58 + * @author Andrea Lucarelli
    8.59 + */
    8.60 +public class AdaDataNode extends SourceDataNode implements FileChangeListener {
    8.61 +
    8.62 +    private static final String ADS_ICON = "/org/netbeans/modules/ada/editor/resources/icons/ads-16.png";
    8.63 +    private static final String ADB_ICON = "/org/netbeans/modules/ada/editor/resources/icons/adb-16.png";
    8.64 +    private static final String ADA_SPEC_ICON = "/org/netbeans/modules/ada/editor/resources/icons/ada-spec-16.png";
    8.65 +    private static final String ADA_BODY_ICON = "/org/netbeans/modules/ada/editor/resources/icons/ada-body-16.png";
    8.66 +    private AdaDataObject obj;
    8.67 +    private String displayName;
    8.68 +    private String tooltip;
    8.69 +    private Image icon;
    8.70 +
    8.71 +    public AdaDataNode(SourceDataObject obj) {
    8.72 +        super(obj, obj.getLookup(), ADS_ICON);
    8.73 +        //Add file change listener to the FileObject:
    8.74 +        //obj.getPrimaryFile().addFileChangeListener(this);
    8.75 +        //Set default icon:
    8.76 +        if (obj.getPrimaryFile().getExt().equalsIgnoreCase("ads")) {
    8.77 +            setIconBaseWithExtension(ADS_ICON);
    8.78 +            icon = ImageUtilities.loadImage(ADS_ICON);
    8.79 +        } else if (obj.getPrimaryFile().getExt().equalsIgnoreCase("adb")) {
    8.80 +            setIconBaseWithExtension(ADB_ICON);
    8.81 +            icon = ImageUtilities.loadImage(ADB_ICON);
    8.82 +        } else {
    8.83 +            // TODO: manage the contents for set the icon
    8.84 +            setIconBaseWithExtension(ADA_SPEC_ICON);
    8.85 +            icon = ImageUtilities.loadImage(ADA_SPEC_ICON);
    8.86 +        }
    8.87 +
    8.88 +        //Set default tooltip:
    8.89 +        tooltip = obj.getPrimaryFile().getNameExt();
    8.90 +        setShortDescription (tooltip);
    8.91 +    }
    8.92 +
    8.93 +    @Override
    8.94 +    public String getDisplayName() {
    8.95 +        if (null != displayName) {
    8.96 +            return displayName;
    8.97 +        }
    8.98 +        return super.getDisplayName();
    8.99 +    }
   8.100 +
   8.101 +    @Override
   8.102 +    public String getShortDescription() {
   8.103 +        if (null != tooltip) {
   8.104 +            return tooltip;
   8.105 +        }
   8.106 +        return super.getShortDescription();
   8.107 +    }
   8.108 +
   8.109 +    @Override
   8.110 +    public Image getIcon(int arg0) {
   8.111 +        if (null != icon) {
   8.112 +            return icon;
   8.113 +        }
   8.114 +        return super.getIcon(arg0);
   8.115 +    }
   8.116 +
   8.117 +    //When the file changes...
   8.118 +    @Override
   8.119 +    public void fileChanged(FileEvent arg0) {
   8.120 +
   8.121 +        //Get the milliseconds and format it:
   8.122 +        long mills = System.currentTimeMillis();
   8.123 +        DateFormat dateFormatter = DateFormat.getDateTimeInstance(
   8.124 +                DateFormat.LONG,
   8.125 +                DateFormat.LONG);
   8.126 +        String formatted = dateFormatter.format(mills);
   8.127 +
   8.128 +        //Save the current display name:
   8.129 +        String oldDisplayName = displayName;
   8.130 +
   8.131 +        //Save the current tooltip:
   8.132 +        String oldShortDescription = tooltip;
   8.133 +
   8.134 +        //Set the new display name:
   8.135 +        displayName = "Change (" + formatted + ")";
   8.136 +
   8.137 +        //Set the new tooltip:
   8.138 +        tooltip = formatted;
   8.139 +
   8.140 +        //Fire change events on the node,
   8.141 +        //which will immediately refresh it with the new values:
   8.142 +        fireDisplayNameChange(oldDisplayName, displayName);
   8.143 +        fireShortDescriptionChange(oldShortDescription, tooltip);
   8.144 +        fireIconChange();
   8.145 +    }
   8.146 +
   8.147 +    @Override
   8.148 +    public void fileFolderCreated(FileEvent arg0) {
   8.149 +    }
   8.150 +
   8.151 +    @Override
   8.152 +    public void fileDataCreated(FileEvent arg0) {
   8.153 +    }
   8.154 +
   8.155 +    @Override
   8.156 +    public void fileDeleted(FileEvent arg0) {
   8.157 +    }
   8.158 +
   8.159 +    @Override
   8.160 +    public void fileRenamed(FileRenameEvent arg0) {
   8.161 +    }
   8.162 +
   8.163 +    @Override
   8.164 +    public void fileAttributeChanged(FileAttributeEvent arg0) {
   8.165 +    }
   8.166 +}
     9.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     9.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/AdaDataObject.java	Mon Oct 15 23:38:26 2012 +0200
     9.3 @@ -0,0 +1,66 @@
     9.4 +/*
     9.5 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
     9.6 + *
     9.7 + * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
     9.8 + *
     9.9 + * The contents of this file are subject to the terms of either the GNU
    9.10 + * General Public License Version 2 only ("GPL") or the Common
    9.11 + * Development and Distribution License("CDDL") (collectively, the
    9.12 + * "License"). You may not use this file except in compliance with the
    9.13 + * License. You can obtain a copy of the License at
    9.14 + * http://www.netbeans.org/cddl-gplv2.html
    9.15 + * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
    9.16 + * specific language governing permissions and limitations under the
    9.17 + * License.  When distributing the software, include this License Header
    9.18 + * Notice in each file and include the License file at
    9.19 + * nbbuild/licenses/CDDL-GPL-2-CP.  Sun designates this
    9.20 + * particular file as subject to the "Classpath" exception as provided
    9.21 + * by Sun in the GPL Version 2 section of the License file that
    9.22 + * accompanied this code. If applicable, add the following below the
    9.23 + * License Header, with the fields enclosed by brackets [] replaced by
    9.24 + * your own identifying information:
    9.25 + * "Portions Copyrighted [year] [name of copyright owner]"
    9.26 + *
    9.27 + * If you wish your version of this file to be governed by only the CDDL
    9.28 + * or only the GPL Version 2, indicate your decision by adding
    9.29 + * "[Contributor] elects to include this software in this distribution
    9.30 + * under the [CDDL or GPL Version 2] license." If you do not indicate a
    9.31 + * single choice of license, a recipient has the option to distribute
    9.32 + * your version of this file under either the CDDL, the GPL Version 2 or
    9.33 + * to extend the choice of license to its licensees as provided above.
    9.34 + * However, if you add GPL Version 2 code and therefore, elected the GPL
    9.35 + * Version 2 license, then the option applies only if the new code is
    9.36 + * made subject to such option by the copyright holder.
    9.37 + *
    9.38 + * Contributor(s):
    9.39 + *
    9.40 + * Portions Copyrighted 2009 Sun Microsystems, Inc.
    9.41 + */
    9.42 +package org.netbeans.modules.ada.editor;
    9.43 +
    9.44 +import java.io.IOException;
    9.45 +import org.openide.filesystems.FileObject;
    9.46 +import org.openide.loaders.DataObjectExistsException;
    9.47 +import org.openide.loaders.MultiDataObject;
    9.48 +import org.openide.loaders.MultiFileLoader;
    9.49 +import org.openide.nodes.CookieSet;
    9.50 +import org.openide.nodes.Node;
    9.51 +import org.openide.util.Lookup;
    9.52 +import org.openide.text.DataEditorSupport;
    9.53 +
    9.54 +/**
    9.55 + *
    9.56 + * @author Andrea Lucarelli
    9.57 + */
    9.58 +public class AdaDataObject extends SourceDataObject {
    9.59 +
    9.60 +    public AdaDataObject(FileObject pf, SourceAbstractDataLoader loader)
    9.61 +			    throws DataObjectExistsException {
    9.62 +	super(pf, loader);
    9.63 +    }
    9.64 +
    9.65 +    @Override
    9.66 +    protected Node createNodeDelegate() {
    9.67 +	return new AdaDataNode(this);
    9.68 +    }
    9.69 +}
    10.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    10.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/AdaEditorSupport.java	Mon Oct 15 23:38:26 2012 +0200
    10.3 @@ -0,0 +1,181 @@
    10.4 +/*
    10.5 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
    10.6 + *
    10.7 + * Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
    10.8 + *
    10.9 + * Oracle and Java are registered trademarks of Oracle and/or its affiliates.
   10.10 + * Other names may be trademarks of their respective owners.
   10.11 + *
   10.12 + * The contents of this file are subject to the terms of either the GNU
   10.13 + * General Public License Version 2 only ("GPL") or the Common
   10.14 + * Development and Distribution License("CDDL") (collectively, the
   10.15 + * "License"). You may not use this file except in compliance with the
   10.16 + * License. You can obtain a copy of the License at
   10.17 + * http://www.netbeans.org/cddl-gplv2.html
   10.18 + * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
   10.19 + * specific language governing permissions and limitations under the
   10.20 + * License.  When distributing the software, include this License Header
   10.21 + * Notice in each file and include the License file at
   10.22 + * nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
   10.23 + * particular file as subject to the "Classpath" exception as provided
   10.24 + * by Oracle in the GPL Version 2 section of the License file that
   10.25 + * accompanied this code. If applicable, add the following below the
   10.26 + * License Header, with the fields enclosed by brackets [] replaced by
   10.27 + * your own identifying information:
   10.28 + * "Portions Copyrighted [year] [name of copyright owner]"
   10.29 + *
   10.30 + * Contributor(s):
   10.31 + *
   10.32 + * The Original Software is NetBeans. The Initial Developer of the Original
   10.33 + * Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun
   10.34 + * Microsystems, Inc. All Rights Reserved.
   10.35 + *
   10.36 + * If you wish your version of this file to be governed by only the CDDL
   10.37 + * or only the GPL Version 2, indicate your decision by adding
   10.38 + * "[Contributor] elects to include this software in this distribution
   10.39 + * under the [CDDL or GPL Version 2] license." If you do not indicate a
   10.40 + * single choice of license, a recipient has the option to distribute
   10.41 + * your version of this file under either the CDDL, the GPL Version 2 or
   10.42 + * to extend the choice of license to its licensees as provided above.
   10.43 + * However, if you add GPL Version 2 code and therefore, elected the GPL
   10.44 + * Version 2 license, then the option applies only if the new code is
   10.45 + * made subject to such option by the copyright holder.
   10.46 + */
   10.47 +package org.netbeans.modules.ada.editor;
   10.48 +
   10.49 +// This file was initially based on org.netbeans.modules.java.JavaEditor
   10.50 +// (Rev 61)
   10.51 +import java.io.IOException;
   10.52 +
   10.53 +import org.openide.loaders.DataObject;
   10.54 +import org.openide.cookies.CloseCookie;
   10.55 +import org.openide.cookies.EditCookie;
   10.56 +import org.openide.cookies.EditorCookie;
   10.57 +import org.openide.cookies.OpenCookie;
   10.58 +import org.openide.cookies.PrintCookie;
   10.59 +import org.openide.cookies.SaveCookie;
   10.60 +import org.openide.filesystems.FileLock;
   10.61 +import org.openide.filesystems.FileObject;
   10.62 +import org.openide.loaders.MultiDataObject;
   10.63 +import org.openide.text.DataEditorSupport;
   10.64 +import org.openide.util.lookup.InstanceContent;
   10.65 +import org.openide.windows.CloneableOpenSupport;
   10.66 +
   10.67 +/**
   10.68 + *  C/C++/Fortran source-file extension for handling the Editor.
   10.69 + *  If we plan to use guarded sections, we'd need to implement that
   10.70 + *  here. For now, this is used to get toggle-breakpoint behavior.
   10.71 + */
   10.72 +public class AdaEditorSupport extends DataEditorSupport implements EditCookie,
   10.73 +        EditorCookie, EditorCookie.Observable, OpenCookie, CloseCookie, PrintCookie, ReadOnlySupport {
   10.74 +
   10.75 +    /** SaveCookie for this support instance. The cookie is adding/removing 
   10.76 +     * data object's cookie set depending on if modification flag was set/unset. */
   10.77 +    private final SaveCookie saveCookie = new SaveCookie() {
   10.78 +
   10.79 +        /** Implements <code>SaveCookie</code> interface. */
   10.80 +        @Override
   10.81 +        public void save() throws IOException {
   10.82 +            AdaEditorSupport.this.saveDocument();
   10.83 +            AdaEditorSupport.this.getDataObject().setModified(false);
   10.84 +        }
   10.85 +    };
   10.86 +
   10.87 +    private final InstanceContent ic;
   10.88 +    private boolean readonly;
   10.89 +
   10.90 +    /**
   10.91 +     *  Create a new Editor support for the given C/C++/Fortran source.
   10.92 +     *  @param entry The (primary) file entry representing the C/C++/f95 source file
   10.93 +     */
   10.94 +    public AdaEditorSupport(SourceDataObject obj) {
   10.95 +        super(obj, new Environment(obj));
   10.96 +        this.ic = obj.getInstanceContent();
   10.97 +    }
   10.98 +
   10.99 +    /** 
  10.100 +     * Overrides superclass method. Adds adding of save cookie if the document has been marked modified.
  10.101 +     * @return true if the environment accepted being marked as modified
  10.102 +     *    or false if it has refused and the document should remain unmodified
  10.103 +     */
  10.104 +    @Override
  10.105 +    protected boolean notifyModified() {
  10.106 +        if (!super.notifyModified()) {
  10.107 +            return false;
  10.108 +        }
  10.109 +
  10.110 +        addSaveCookie();
  10.111 +
  10.112 +        return true;
  10.113 +    }
  10.114 +
  10.115 +    /** Overrides superclass method. Adds removing of save cookie. */
  10.116 +    @Override
  10.117 +    protected void notifyUnmodified() {
  10.118 +        super.notifyUnmodified();
  10.119 +
  10.120 +        removeSaveCookie();
  10.121 +    }
  10.122 +
  10.123 +    @Override
  10.124 +    protected boolean asynchronousOpen() {
  10.125 +        return true;
  10.126 +    }
  10.127 +    
  10.128 +    /** Helper method. Adds save cookie to the data object. */
  10.129 +    private void addSaveCookie() {
  10.130 +        // Adds save cookie to the data object.
  10.131 +        ic.add(saveCookie);
  10.132 +    }
  10.133 +
  10.134 +    /** Helper method. Removes save cookie from the data object. */
  10.135 +    private void removeSaveCookie() {
  10.136 +        // Remove save cookie from the data object.
  10.137 +        ic.remove(saveCookie);
  10.138 +    }
  10.139 +
  10.140 +    @Override
  10.141 +    public boolean isReadOnly() {
  10.142 +        return readonly;
  10.143 +    }
  10.144 +
  10.145 +    @Override
  10.146 +    public void setReadOnly(boolean readOnly) {
  10.147 +        this.readonly = readOnly;
  10.148 +    }
  10.149 +
  10.150 +    /** Nested class. Environment for this support. Extends <code>DataEditorSupport.Env</code> abstract class. */
  10.151 +    private static class Environment extends DataEditorSupport.Env {
  10.152 +
  10.153 +        /** Constructor. */
  10.154 +        public Environment(DataObject obj) {
  10.155 +            super(obj);
  10.156 +        }
  10.157 +
  10.158 +        /** Implements abstract superclass method. */
  10.159 +        @Override
  10.160 +        protected FileObject getFile() {
  10.161 +            return getDataObject().getPrimaryFile();
  10.162 +        }
  10.163 +
  10.164 +        /** Implements abstract superclass method.*/
  10.165 +        @Override
  10.166 +        protected FileLock takeLock() throws IOException {
  10.167 +            ReadOnlySupport readOnly = getDataObject().getLookup().lookup(ReadOnlySupport.class);
  10.168 +            if (readOnly != null && readOnly.isReadOnly()) {
  10.169 +                throw new IOException(); // for read only state method must throw IOException
  10.170 +            } else {
  10.171 +                return ((MultiDataObject) getDataObject()).getPrimaryEntry().takeLock();
  10.172 +            }
  10.173 +        }
  10.174 +
  10.175 +        /** 
  10.176 +         * Overrides superclass method.
  10.177 +         * @return text editor support (instance of enclosing class)
  10.178 +         */
  10.179 +        @Override
  10.180 +        public CloneableOpenSupport findCloneableOpenSupport() {
  10.181 +            return getDataObject().getCookie(AdaEditorSupport.class);
  10.182 +        }
  10.183 +    } // End of nested Environment class.    
  10.184 +}
    11.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    11.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/AdaEditorSupportProvider.java	Mon Oct 15 23:38:26 2012 +0200
    11.3 @@ -0,0 +1,85 @@
    11.4 +/*
    11.5 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
    11.6 + *
    11.7 + * Copyright 2010 Oracle and/or its affiliates. All rights reserved.
    11.8 + *
    11.9 + * Oracle and Java are registered trademarks of Oracle and/or its affiliates.
   11.10 + * Other names may be trademarks of their respective owners.
   11.11 + *
   11.12 + * The contents of this file are subject to the terms of either the GNU
   11.13 + * General Public License Version 2 only ("GPL") or the Common
   11.14 + * Development and Distribution License("CDDL") (collectively, the
   11.15 + * "License"). You may not use this file except in compliance with the
   11.16 + * License. You can obtain a copy of the License at
   11.17 + * http://www.netbeans.org/cddl-gplv2.html
   11.18 + * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
   11.19 + * specific language governing permissions and limitations under the
   11.20 + * License.  When distributing the software, include this License Header
   11.21 + * Notice in each file and include the License file at
   11.22 + * nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
   11.23 + * particular file as subject to the "Classpath" exception as provided
   11.24 + * by Oracle in the GPL Version 2 section of the License file that
   11.25 + * accompanied this code. If applicable, add the following below the
   11.26 + * License Header, with the fields enclosed by brackets [] replaced by
   11.27 + * your own identifying information:
   11.28 + * "Portions Copyrighted [year] [name of copyright owner]"
   11.29 + *
   11.30 + * If you wish your version of this file to be governed by only the CDDL
   11.31 + * or only the GPL Version 2, indicate your decision by adding
   11.32 + * "[Contributor] elects to include this software in this distribution
   11.33 + * under the [CDDL or GPL Version 2] license." If you do not indicate a
   11.34 + * single choice of license, a recipient has the option to distribute
   11.35 + * your version of this file under either the CDDL, the GPL Version 2 or
   11.36 + * to extend the choice of license to its licensees as provided above.
   11.37 + * However, if you add GPL Version 2 code and therefore, elected the GPL
   11.38 + * Version 2 license, then the option applies only if the new code is
   11.39 + * made subject to such option by the copyright holder.
   11.40 + *
   11.41 + * Contributor(s):
   11.42 + *
   11.43 + * Portions Copyrighted 2009 Sun Microsystems, Inc.
   11.44 + */
   11.45 +
   11.46 +package org.netbeans.modules.ada.editor;
   11.47 +
   11.48 +import org.openide.loaders.DataObject;
   11.49 +import org.openide.util.lookup.InstanceContent;
   11.50 +import org.openide.util.lookup.InstanceContent.Convertor;
   11.51 +
   11.52 +/**
   11.53 + * @author Alexey Vladykin
   11.54 + */
   11.55 +public final class AdaEditorSupportProvider extends AdaCookieProvider {
   11.56 +    static final CppEditorSupportFactory staticFactory = new CppEditorSupportFactory();
   11.57 +
   11.58 +    @Override
   11.59 +    public void addLookup(DataObject dao, InstanceContent ic) {
   11.60 +        SourceDataObject sdao = (SourceDataObject) dao;
   11.61 +        ic.add(sdao, staticFactory);
   11.62 +    }
   11.63 +
   11.64 +    private static class CppEditorSupportFactory implements Convertor<SourceDataObject, AdaEditorSupport> {
   11.65 +        public CppEditorSupportFactory() {
   11.66 +        }
   11.67 +
   11.68 +        @Override
   11.69 +        public AdaEditorSupport convert(SourceDataObject obj) {
   11.70 +            return new AdaEditorSupport(obj);
   11.71 +        }
   11.72 +
   11.73 +        @Override
   11.74 +        public Class<? extends AdaEditorSupport> type(SourceDataObject obj) {
   11.75 +            return AdaEditorSupport.class;
   11.76 +        }
   11.77 +
   11.78 +        @Override
   11.79 +        public String id(SourceDataObject obj) {
   11.80 +            return AdaEditorSupport.class.getName()+obj.getPrimaryFile().getPath();
   11.81 +        }
   11.82 +
   11.83 +        @Override
   11.84 +        public String displayName(SourceDataObject obj) {
   11.85 +            return id(obj);
   11.86 +        }
   11.87 +    }
   11.88 +}
    12.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    12.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/AdaEmbeddingProvider.java	Mon Oct 15 23:38:26 2012 +0200
    12.3 @@ -0,0 +1,141 @@
    12.4 +/*
    12.5 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
    12.6 + *
    12.7 + * Copyright 2010 Oracle and/or its affiliates. All rights reserved.
    12.8 + *
    12.9 + * Oracle and Java are registered trademarks of Oracle and/or its affiliates.
   12.10 + * Other names may be trademarks of their respective owners.
   12.11 + *
   12.12 + * The contents of this file are subject to the terms of either the GNU
   12.13 + * General Public License Version 2 only ("GPL") or the Common
   12.14 + * Development and Distribution License("CDDL") (collectively, the
   12.15 + * "License"). You may not use this file except in compliance with the
   12.16 + * License. You can obtain a copy of the License at
   12.17 + * http://www.netbeans.org/cddl-gplv2.html
   12.18 + * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
   12.19 + * specific language governing permissions and limitations under the
   12.20 + * License.  When distributing the software, include this License Header
   12.21 + * Notice in each file and include the License file at
   12.22 + * nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
   12.23 + * particular file as subject to the "Classpath" exception as provided
   12.24 + * by Oracle in the GPL Version 2 section of the License file that
   12.25 + * accompanied this code. If applicable, add the following below the
   12.26 + * License Header, with the fields enclosed by brackets [] replaced by
   12.27 + * your own identifying information:
   12.28 + * "Portions Copyrighted [year] [name of copyright owner]"
   12.29 + * 
   12.30 + * If you wish your version of this file to be governed by only the CDDL
   12.31 + * or only the GPL Version 2, indicate your decision by adding
   12.32 + * "[Contributor] elects to include this software in this distribution
   12.33 + * under the [CDDL or GPL Version 2] license." If you do not indicate a
   12.34 + * single choice of license, a recipient has the option to distribute
   12.35 + * your version of this file under either the CDDL, the GPL Version 2 or
   12.36 + * to extend the choice of license to its licensees as provided above.
   12.37 + * However, if you add GPL Version 2 code and therefore, elected the GPL
   12.38 + * Version 2 license, then the option applies only if the new code is
   12.39 + * made subject to such option by the copyright holder.
   12.40 + * 
   12.41 + * Contributor(s):
   12.42 + * 
   12.43 + * Portions Copyrighted 2008 Sun Microsystems, Inc.
   12.44 + */
   12.45 +package org.netbeans.modules.ada.editor;
   12.46 +
   12.47 +import java.util.ArrayList;
   12.48 +import java.util.Collection;
   12.49 +import java.util.Collections;
   12.50 +import java.util.List;
   12.51 +import java.util.logging.Logger;
   12.52 +import org.netbeans.api.lexer.Token;
   12.53 +import org.netbeans.api.lexer.TokenHierarchy;
   12.54 +import org.netbeans.api.lexer.TokenSequence;
   12.55 +import org.netbeans.modules.parsing.api.Embedding;
   12.56 +import org.netbeans.modules.parsing.api.Snapshot;
   12.57 +import org.netbeans.modules.parsing.spi.EmbeddingProvider;
   12.58 +import org.netbeans.modules.parsing.spi.SchedulerTask;
   12.59 +import org.netbeans.modules.parsing.spi.TaskFactory;
   12.60 +import org.netbeans.modules.ada.editor.lexer.AdaTokenId;
   12.61 +
   12.62 +/**
   12.63 + * Provides model for html code
   12.64 + *
   12.65 + * @author Marek Fukala
   12.66 + */
   12.67 +public class AdaEmbeddingProvider extends EmbeddingProvider {
   12.68 +
   12.69 +    public static final String GENERATED_CODE = "@@@"; //NOI18N
   12.70 +
   12.71 +    @Override
   12.72 +    public List<Embedding> getEmbeddings(Snapshot snapshot) {
   12.73 +        TokenHierarchy<CharSequence> th = TokenHierarchy.create(snapshot.getText(), AdaTokenId.language());
   12.74 +        TokenSequence<AdaTokenId> sequence = th.tokenSequence(AdaTokenId.language());
   12.75 +
   12.76 +        //issue #159775 logging >>>
   12.77 +        if(sequence == null) {
   12.78 +            Logger.getLogger("AdaEmbeddingProvider").warning(
   12.79 +                    "TokenHierarchy.tokenSequence(AdaTokenId.language()) == null " +
   12.80 +                    "for static immutable Ada TokenHierarchy!\nFile = '"+
   12.81 +                    snapshot.getSource().getFileObject().getPath() +
   12.82 +                    "' ;snapshot mimepath='" + snapshot.getMimePath() + "'");
   12.83 +
   12.84 +            return Collections.emptyList();
   12.85 +        }
   12.86 +        //<<< end of the logging
   12.87 +        
   12.88 +        sequence.moveStart();
   12.89 +        List<Embedding> embeddings = new ArrayList<Embedding>();
   12.90 +
   12.91 +        //marek (workaround): there seems to be a bug in parsing api - if I create 
   12.92 +        //the embedding for each PHPTokenId.T_INLINE_HTML token separatelly then the offsets
   12.93 +        //translation is broken
   12.94 +        int from = -1;
   12.95 +        int len = 0;
   12.96 +        while (sequence.moveNext()) {
   12.97 +            Token t = sequence.token();
   12.98 +            if (t.id() == AdaTokenId.PACKAGE || t.id() == AdaTokenId.PROCEDURE || t.id() == AdaTokenId.FUNCTION) {
   12.99 +                if(from < 0) {
  12.100 +                    from = sequence.offset();
  12.101 +                }
  12.102 +                len += t.length();                
  12.103 +            } else {
  12.104 +                if(from >= 0) {
  12.105 +                    //lets suppose the text is always html :-(
  12.106 +                    embeddings.add(snapshot.create(from, len, "text/x-ada")); //NOI18N
  12.107 +                    //add only one virtual generated token for a sequence of PHP tokens
  12.108 +                    embeddings.add(snapshot.create(GENERATED_CODE, "text/x-ada"));
  12.109 +                }
  12.110 +
  12.111 +                from = -1;
  12.112 +                len = 0;
  12.113 +            }
  12.114 +        }
  12.115 +        
  12.116 +        if(from >= 0) {
  12.117 +            embeddings.add(snapshot.create(from, len, "text/x-ada")); //NOI18N
  12.118 +        }
  12.119 +
  12.120 +        if (embeddings.isEmpty()) {
  12.121 +            return Collections.emptyList();
  12.122 +        } else {
  12.123 +            return Collections.singletonList(Embedding.create(embeddings));
  12.124 +        }
  12.125 +    }
  12.126 +
  12.127 +    @Override
  12.128 +    public int getPriority() {
  12.129 +        return 110;
  12.130 +    }
  12.131 +
  12.132 +    @Override
  12.133 +    public void cancel() {
  12.134 +        //do nothing
  12.135 +    }
  12.136 +
  12.137 +    public static final class Factory extends TaskFactory {
  12.138 +
  12.139 +        @Override
  12.140 +        public Collection<SchedulerTask> create(final Snapshot snapshot) {
  12.141 +            return Collections.<SchedulerTask>singletonList(new AdaEmbeddingProvider());
  12.142 +        }
  12.143 +    }
  12.144 +}
    13.1 --- a/ada.editor/src/org/netbeans/modules/ada/editor/AdaLanguage.java	Tue Oct 02 21:55:21 2012 -0400
    13.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/AdaLanguage.java	Mon Oct 15 23:38:26 2012 +0200
    13.3 @@ -39,6 +39,8 @@
    13.4  
    13.5  package org.netbeans.modules.ada.editor;
    13.6  
    13.7 +import java.util.Collections;
    13.8 +import java.util.Set;
    13.9  import org.netbeans.modules.ada.editor.navigator.AdaInstantRenamer;
   13.10  import org.netbeans.api.lexer.Language;
   13.11  import org.netbeans.modules.ada.editor.formatter.AdaFormatter;
   13.12 @@ -50,8 +52,7 @@
   13.13  import org.netbeans.modules.ada.editor.parser.AdaStructureScanner;
   13.14  import org.netbeans.modules.ada.editor.parser.AdaParser;
   13.15  import org.netbeans.modules.ada.editor.parser.AdaSemanticAnalyzer;
   13.16 -import org.netbeans.modules.csl.api.CodeCompletionHandler;
   13.17 -import org.netbeans.modules.csl.api.CodeCompletionHandler;
   13.18 +import org.netbeans.modules.ada.project.api.AdaSourcePath;
   13.19  import org.netbeans.modules.csl.api.CodeCompletionHandler;
   13.20  import org.netbeans.modules.csl.api.DeclarationFinder;
   13.21  import org.netbeans.modules.csl.api.Formatter;
   13.22 @@ -62,14 +63,18 @@
   13.23  import org.netbeans.modules.csl.api.SemanticAnalyzer;
   13.24  import org.netbeans.modules.csl.api.StructureScanner;
   13.25  import org.netbeans.modules.csl.spi.DefaultLanguageConfig;
   13.26 +import org.netbeans.modules.csl.spi.LanguageRegistration;
   13.27  import org.netbeans.modules.parsing.spi.Parser;
   13.28  import org.netbeans.modules.parsing.spi.indexing.EmbeddingIndexerFactory;
   13.29 +import org.netbeans.modules.parsing.spi.indexing.PathRecognizerRegistration;
   13.30  
   13.31  
   13.32  /**
   13.33   *
   13.34   * @author Andrea Lucarelli
   13.35   */
   13.36 +@LanguageRegistration(mimeType="text/x-ada") //NOI18N
   13.37 +@PathRecognizerRegistration(mimeTypes="text/x-ada", sourcePathIds=AdaSourcePath.SOURCE_CP, libraryPathIds=AdaSourcePath.BOOT_CP, binaryLibraryPathIds={}) //NOI18N
   13.38  public class AdaLanguage extends DefaultLanguageConfig {
   13.39  
   13.40      public AdaLanguage() {
   13.41 @@ -161,4 +166,14 @@
   13.42          return new AdaInstantRenamer();
   13.43      }
   13.44  
   13.45 +    @Override
   13.46 +    public Set<String> getLibraryPathIds() {
   13.47 +        return Collections.singleton(AdaSourcePath.BOOT_CP);
   13.48 +    }
   13.49 +
   13.50 +    @Override
   13.51 +    public Set<String> getSourcePathIds() {
   13.52 +        return Collections.singleton(AdaSourcePath.SOURCE_CP);
   13.53 +    }
   13.54 +
   13.55  }
    14.1 --- a/ada.editor/src/org/netbeans/modules/ada/editor/AdaMimeResolver.java	Tue Oct 02 21:55:21 2012 -0400
    14.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/AdaMimeResolver.java	Mon Oct 15 23:38:26 2012 +0200
    14.3 @@ -53,9 +53,9 @@
    14.4       * Extensions recognized as being Ada.
    14.5       */
    14.6      private final static String[] EXTENSIONS = new String[]{
    14.7 +        "ada", // NOI18N
    14.8          "ads", // NOI18N
    14.9 -        "adb", // NOI18N
   14.10 -        "ada" // NOI18N
   14.11 +        "adb" // NOI18N
   14.12      };
   14.13      /**
   14.14       * MIME type for Ada.
   14.15 @@ -76,6 +76,7 @@
   14.16          return false;
   14.17      }
   14.18  
   14.19 +    @Override
   14.20      public String findMIMEType(FileObject fo) {
   14.21          return isAdaExt(fo.getExt()) ? ADA_MIME_TYPE : null;
   14.22      }
    15.1 --- a/ada.editor/src/org/netbeans/modules/ada/editor/AdaVersion.java	Tue Oct 02 21:55:21 2012 -0400
    15.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    15.3 @@ -1,50 +0,0 @@
    15.4 -/*
    15.5 - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
    15.6 - *
    15.7 - * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
    15.8 - *
    15.9 - * The contents of this file are subject to the terms of either the GNU
   15.10 - * General Public License Version 2 only ("GPL") or the Common
   15.11 - * Development and Distribution License("CDDL") (collectively, the
   15.12 - * "License"). You may not use this file except in compliance with the
   15.13 - * License. You can obtain a copy of the License at
   15.14 - * http://www.netbeans.org/cddl-gplv2.html
   15.15 - * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
   15.16 - * specific language governing permissions and limitations under the
   15.17 - * License.  When distributing the software, include this License Header
   15.18 - * Notice in each file and include the License file at
   15.19 - * nbbuild/licenses/CDDL-GPL-2-CP.  Sun designates this
   15.20 - * particular file as subject to the "Classpath" exception as provided
   15.21 - * by Sun in the GPL Version 2 section of the License file that
   15.22 - * accompanied this code. If applicable, add the following below the
   15.23 - * License Header, with the fields enclosed by brackets [] replaced by
   15.24 - * your own identifying information:
   15.25 - * "Portions Copyrighted [year] [name of copyright owner]"
   15.26 - *
   15.27 - * If you wish your version of this file to be governed by only the CDDL
   15.28 - * or only the GPL Version 2, indicate your decision by adding
   15.29 - * "[Contributor] elects to include this software in this distribution
   15.30 - * under the [CDDL or GPL Version 2] license." If you do not indicate a
   15.31 - * single choice of license, a recipient has the option to distribute
   15.32 - * your version of this file under either the CDDL, the GPL Version 2 or
   15.33 - * to extend the choice of license to its licensees as provided above.
   15.34 - * However, if you add GPL Version 2 code and therefore, elected the GPL
   15.35 - * Version 2 license, then the option applies only if the new code is
   15.36 - * made subject to such option by the copyright holder.
   15.37 - *
   15.38 - * Contributor(s):
   15.39 - *
   15.40 - * Portions Copyrighted 2008 Sun Microsystems, Inc.
   15.41 - */
   15.42 -
   15.43 -package org.netbeans.modules.ada.editor;
   15.44 -
   15.45 -/**
   15.46 - *
   15.47 - * @author Andrea Lucarelli
   15.48 - */
   15.49 -public enum AdaVersion {
   15.50 -    ADA_83,
   15.51 -    ADA_95,
   15.52 -    ADA_2005;
   15.53 -}
    16.1 --- a/ada.editor/src/org/netbeans/modules/ada/editor/Bundle.properties	Tue Oct 02 21:55:21 2012 -0400
    16.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/Bundle.properties	Mon Oct 15 23:38:26 2012 +0200
    16.3 @@ -39,4 +39,7 @@
    16.4  OpenIDE-Module-Long-Description=\
    16.5      Support for editing Ada files.
    16.6  OpenIDE-Module-Name=Ada Editor
    16.7 -OpenIDE-Module-Short-Description=Support for editing Ada files.
    16.8 \ No newline at end of file
    16.9 +OpenIDE-Module-Short-Description=Support for editing Ada files.
   16.10 +
   16.11 +FMT_Not_Valid_FileName=The specified name is not valid for use in a source file: {0}
   16.12 +Loaders/text/x-ada/Factories/org-netbeans-modules-ada-editor-AdaDataLoader.instance=Ada Data Loader
    17.1 --- a/ada.editor/src/org/netbeans/modules/ada/editor/CodeUtils.java	Tue Oct 02 21:55:21 2012 -0400
    17.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/CodeUtils.java	Mon Oct 15 23:38:26 2012 +0200
    17.3 @@ -43,14 +43,16 @@
    17.4  import org.netbeans.modules.ada.editor.ast.nodes.FormalParameter;
    17.5  import org.netbeans.modules.ada.editor.ast.nodes.Identifier;
    17.6  import org.netbeans.modules.ada.editor.ast.nodes.MethodDeclaration;
    17.7 +import org.netbeans.modules.ada.editor.ast.nodes.MethodInvocation;
    17.8 +import org.netbeans.modules.ada.editor.ast.nodes.NameBase;
    17.9  import org.netbeans.modules.ada.editor.ast.nodes.PackageBody;
   17.10  import org.netbeans.modules.ada.editor.ast.nodes.PackageName;
   17.11  import org.netbeans.modules.ada.editor.ast.nodes.PackageSpecification;
   17.12 -import org.netbeans.modules.ada.editor.ast.nodes.Reference;
   17.13 -import org.netbeans.modules.ada.editor.ast.nodes.Statement;
   17.14  import org.netbeans.modules.ada.editor.ast.nodes.SubprogramBody;
   17.15  import org.netbeans.modules.ada.editor.ast.nodes.SubprogramSpecification;
   17.16 +import org.netbeans.modules.ada.editor.ast.nodes.TypeAccess;
   17.17  import org.netbeans.modules.ada.editor.ast.nodes.TypeDeclaration;
   17.18 +import org.netbeans.modules.ada.editor.ast.nodes.TypeName;
   17.19  import org.netbeans.modules.ada.editor.ast.nodes.Variable;
   17.20  
   17.21  /**
   17.22 @@ -96,10 +98,10 @@
   17.23          return methodDeclaration.getMethodName();
   17.24      }
   17.25  
   17.26 -    @CheckForNull // null for RelectionVariable
   17.27 +    @CheckForNull
   17.28      public static String extractVariableName(Variable var) {
   17.29          if (var.getName() instanceof Identifier) {
   17.30 -            Identifier id = (Identifier) var.getName();
   17.31 +            Identifier id = var.getName();
   17.32              StringBuilder varName = new StringBuilder();
   17.33  
   17.34              varName.append(id.getName());
   17.35 @@ -109,10 +111,10 @@
   17.36          return null;
   17.37      }
   17.38  
   17.39 -    @CheckForNull // null for RelectionVariable
   17.40 +    @CheckForNull
   17.41      public static String extractTypeName(TypeDeclaration var) {
   17.42          if (var.getTypeName() instanceof Identifier) {
   17.43 -            Identifier id = (Identifier) var.getTypeName();
   17.44 +            Identifier id = var.getTypeName();
   17.45              StringBuilder varName = new StringBuilder();
   17.46  
   17.47              varName.append(id.getName());
   17.48 @@ -122,11 +124,38 @@
   17.49          return null;
   17.50      }
   17.51  
   17.52 +    @CheckForNull
   17.53 +    public static String extractTypeName(NameBase type) {
   17.54 +        if (type instanceof TypeName) {
   17.55 +            Identifier id = ((TypeName)type).getTypeName();
   17.56 +            StringBuilder typeName = new StringBuilder();
   17.57 +            typeName.append(id.getName());
   17.58 +            return typeName.toString();
   17.59 +        } else if (type instanceof TypeAccess) {
   17.60 +            NameBase name = ((TypeAccess) type).getMember();
   17.61 +            return extractTypeName(name);
   17.62 +        }
   17.63 +
   17.64 +        return null;
   17.65 +    }
   17.66 +
   17.67 +    @CheckForNull
   17.68 +    public static TypeName extractType(NameBase type) {
   17.69 +        if (type instanceof TypeName) {
   17.70 +            return (TypeName)type;
   17.71 +        } else if (type instanceof TypeAccess) {
   17.72 +            NameBase name = ((TypeAccess) type).getMember();
   17.73 +            return extractType(name);
   17.74 +        }
   17.75 +
   17.76 +        return null;
   17.77 +    }
   17.78 +
   17.79      public static String getParamDisplayName(FormalParameter param) {
   17.80          Variable var = param.getParameterName();
   17.81          StringBuilder paramName = new StringBuilder();
   17.82  
   17.83 -		Identifier id = (Identifier) var.getName();
   17.84 +		Identifier id = var.getName();
   17.85  		paramName.append(id.getName());
   17.86  
   17.87          return paramName.length() == 0 ? null : paramName.toString();
    18.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    18.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/ReadOnlySupport.java	Mon Oct 15 23:38:26 2012 +0200
    18.3 @@ -0,0 +1,52 @@
    18.4 +/*
    18.5 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
    18.6 + *
    18.7 + * Copyright 2010 Oracle and/or its affiliates. All rights reserved.
    18.8 + *
    18.9 + * Oracle and Java are registered trademarks of Oracle and/or its affiliates.
   18.10 + * Other names may be trademarks of their respective owners.
   18.11 + *
   18.12 + * The contents of this file are subject to the terms of either the GNU
   18.13 + * General Public License Version 2 only ("GPL") or the Common
   18.14 + * Development and Distribution License("CDDL") (collectively, the
   18.15 + * "License"). You may not use this file except in compliance with the
   18.16 + * License. You can obtain a copy of the License at
   18.17 + * http://www.netbeans.org/cddl-gplv2.html
   18.18 + * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
   18.19 + * specific language governing permissions and limitations under the
   18.20 + * License.  When distributing the software, include this License Header
   18.21 + * Notice in each file and include the License file at
   18.22 + * nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
   18.23 + * particular file as subject to the "Classpath" exception as provided
   18.24 + * by Oracle in the GPL Version 2 section of the License file that
   18.25 + * accompanied this code. If applicable, add the following below the
   18.26 + * License Header, with the fields enclosed by brackets [] replaced by
   18.27 + * your own identifying information:
   18.28 + * "Portions Copyrighted [year] [name of copyright owner]"
   18.29 + *
   18.30 + * If you wish your version of this file to be governed by only the CDDL
   18.31 + * or only the GPL Version 2, indicate your decision by adding
   18.32 + * "[Contributor] elects to include this software in this distribution
   18.33 + * under the [CDDL or GPL Version 2] license." If you do not indicate a
   18.34 + * single choice of license, a recipient has the option to distribute
   18.35 + * your version of this file under either the CDDL, the GPL Version 2 or
   18.36 + * to extend the choice of license to its licensees as provided above.
   18.37 + * However, if you add GPL Version 2 code and therefore, elected the GPL
   18.38 + * Version 2 license, then the option applies only if the new code is
   18.39 + * made subject to such option by the copyright holder.
   18.40 + *
   18.41 + * Contributor(s):
   18.42 + *
   18.43 + * Portions Copyrighted 2009 Sun Microsystems, Inc.
   18.44 + */
   18.45 +
   18.46 +package org.netbeans.modules.ada.editor;
   18.47 +
   18.48 +/**
   18.49 + *
   18.50 + * @author Vladimir Voskresensky
   18.51 + */
   18.52 +public interface ReadOnlySupport {
   18.53 +    boolean isReadOnly();
   18.54 +    void setReadOnly(boolean readOnly);
   18.55 +}
    19.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    19.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/SourceAbstractDataLoader.java	Mon Oct 15 23:38:26 2012 +0200
    19.3 @@ -0,0 +1,306 @@
    19.4 +/*
    19.5 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
    19.6 + *
    19.7 + * Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
    19.8 + *
    19.9 + * Oracle and Java are registered trademarks of Oracle and/or its affiliates.
   19.10 + * Other names may be trademarks of their respective owners.
   19.11 + *
   19.12 + * The contents of this file are subject to the terms of either the GNU
   19.13 + * General Public License Version 2 only ("GPL") or the Common
   19.14 + * Development and Distribution License("CDDL") (collectively, the
   19.15 + * "License"). You may not use this file except in compliance with the
   19.16 + * License. You can obtain a copy of the License at
   19.17 + * http://www.netbeans.org/cddl-gplv2.html
   19.18 + * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
   19.19 + * specific language governing permissions and limitations under the
   19.20 + * License.  When distributing the software, include this License Header
   19.21 + * Notice in each file and include the License file at
   19.22 + * nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
   19.23 + * particular file as subject to the "Classpath" exception as provided
   19.24 + * by Oracle in the GPL Version 2 section of the License file that
   19.25 + * accompanied this code. If applicable, add the following below the
   19.26 + * License Header, with the fields enclosed by brackets [] replaced by
   19.27 + * your own identifying information:
   19.28 + * "Portions Copyrighted [year] [name of copyright owner]"
   19.29 + *
   19.30 + * Contributor(s):
   19.31 + *
   19.32 + * The Original Software is NetBeans. The Initial Developer of the Original
   19.33 + * Software is Sun Microsystems, Inc. Portions Copyright 1997-2008 Sun
   19.34 + * Microsystems, Inc. All Rights Reserved.
   19.35 + *
   19.36 + * If you wish your version of this file to be governed by only the CDDL
   19.37 + * or only the GPL Version 2, indicate your decision by adding
   19.38 + * "[Contributor] elects to include this software in this distribution
   19.39 + * under the [CDDL or GPL Version 2] license." If you do not indicate a
   19.40 + * single choice of license, a recipient has the option to distribute
   19.41 + * your version of this file under either the CDDL, the GPL Version 2 or
   19.42 + * to extend the choice of license to its licensees as provided above.
   19.43 + * However, if you add GPL Version 2 code and therefore, elected the GPL
   19.44 + * Version 2 license, then the option applies only if the new code is
   19.45 + * made subject to such option by the copyright holder.
   19.46 + */
   19.47 +package org.netbeans.modules.ada.editor;
   19.48 +
   19.49 +import java.io.BufferedReader;
   19.50 +import java.io.BufferedWriter;
   19.51 +import java.io.File;
   19.52 +import java.io.IOException;
   19.53 +import java.io.InputStreamReader;
   19.54 +import java.io.OutputStreamWriter;
   19.55 +import java.nio.charset.Charset;
   19.56 +import java.util.Date;
   19.57 +import java.util.Map;
   19.58 +import java.text.DateFormat;
   19.59 +import java.util.HashMap;
   19.60 +import javax.swing.JEditorPane;
   19.61 +import javax.swing.text.BadLocationException;
   19.62 +import javax.swing.text.Document;
   19.63 +import javax.swing.text.EditorKit;
   19.64 +import org.netbeans.api.queries.FileEncodingQuery;
   19.65 +import org.netbeans.modules.editor.indent.api.Reformat;
   19.66 +import org.openide.filesystems.FileObject;
   19.67 +import org.openide.loaders.MultiDataObject;
   19.68 +import org.openide.loaders.FileEntry;
   19.69 +import org.openide.loaders.UniFileLoader;
   19.70 +import org.openide.modules.InstalledFileLocator;
   19.71 +import org.openide.filesystems.FileLock;
   19.72 +import org.openide.filesystems.FileUtil;
   19.73 +import org.openide.loaders.CreateFromTemplateAttributesProvider;
   19.74 +import org.openide.loaders.DataFolder;
   19.75 +import org.openide.loaders.DataObject;
   19.76 +import org.openide.util.Exceptions;
   19.77 +import org.openide.util.Lookup;
   19.78 +
   19.79 +/**
   19.80 + * DataLoader for recognizing C/C++/Fortran (C-C-F) source files.
   19.81 + *
   19.82 + * It also defines an inner class, AdaFormat, whose derived classes are
   19.83 + * used to format template files (e.g. substitute values for parameters such as
   19.84 + * __FILENAME__, __NAME__, __DATE__, __TIME__, __USER__, __GUARD_NAME etc.).
   19.85 + */
   19.86 +public abstract class SourceAbstractDataLoader extends UniFileLoader {
   19.87 +
   19.88 +    protected SourceAbstractDataLoader(String representationClassName) {
   19.89 +        super(representationClassName);
   19.90 +    }
   19.91 +
   19.92 +    protected abstract String getMimeType();
   19.93 +
   19.94 +    @Override
   19.95 +    protected final void initialize() {
   19.96 +        super.initialize();
   19.97 +        getExtensions().addMimeType(getMimeType());
   19.98 +    }
   19.99 +
  19.100 +    @Override
  19.101 +    protected MultiDataObject.Entry createPrimaryEntry(MultiDataObject obj, FileObject primaryFile) {
  19.102 +        // Entry for the important file: by default, is preserved
  19.103 +        // during all operations.
  19.104 +        return new AdaFormat(obj, primaryFile);
  19.105 +    }
  19.106 +
  19.107 +    @Override
  19.108 +    protected String actionsContext() {
  19.109 +        return "Loaders/text/x-ada+sourcefile/Actions/"; // NOI18N
  19.110 +    }
  19.111 +
  19.112 +// Inner class: Substitute important template parameters...
  19.113 +    /*package*/
  19.114 +    private static class AdaFormat extends FileEntry.Format {
  19.115 +
  19.116 +        public AdaFormat(MultiDataObject obj, FileObject primaryFile) {
  19.117 +            super(obj, primaryFile);
  19.118 +        }
  19.119 +
  19.120 +        @Override
  19.121 +        protected java.text.Format createFormat(FileObject target, String name, String ext) {
  19.122 +
  19.123 +            Map<String, Object> map = new HashMap<String, Object>();
  19.124 +
  19.125 +            String packageName = target.getPath().replace('/', '_');
  19.126 +            // add an underscore to the package name if it is not an empty string
  19.127 +            if (!packageName.isEmpty()) { // NOI18N
  19.128 +                packageName = packageName + "_"; // NOI18N
  19.129 +            }
  19.130 +            map.put("PACKAGE_AND_NAME", packageName + name); // NOI18N
  19.131 +            map.put("NAME", name); // NOI18N
  19.132 +            map.put("EXTENSION", ext); // NOI18N
  19.133 +//            String guardName = (name + "_" + ext).replace('-', '_').replace('.', '_'); // NOI18N
  19.134 +            String fullName = name + "_" + ext; //NOI18N
  19.135 +            StringBuilder guardName = new StringBuilder();
  19.136 +            for (int i = 0; i < fullName.length(); i++) {
  19.137 +                char c = fullName.charAt(i);
  19.138 +                guardName.append(Character.isJavaIdentifierPart(c) ? Character.toUpperCase(c) : '_');
  19.139 +            }
  19.140 +
  19.141 +            map.put("GUARD_NAME", guardName.toString()); // NOI18N
  19.142 +            /*
  19.143 +            This is a ugly hack but I don't have a choice. That's because
  19.144 +            NetBeans will not pass me the name the user typed in as the
  19.145 +            "root" name; instead I get the substituted name for each
  19.146 +            template file. In other words, suppose I use the parameter
  19.147 +            __NAME__ in my template source files. The name passed to
  19.148 +            createFormat is then the *filename* instead of just the
  19.149 +            Name: field the user had entered. e.g. if I'm instantiating the
  19.150 +            following files:
  19.151 +            __sample___foo.cc
  19.152 +            __sample___bar.cc
  19.153 +            Then for the first file, __NAME__ becomes <myname>_foo and in
  19.154 +            the second file, __NAME__ becomes <myname>_bar. But I really
  19.155 +            need the Name itself, so that I can for example have have
  19.156 +            #include "<myname>_externs.h"
  19.157 +            in the templates!
  19.158 +             */
  19.159 +
  19.160 +            int crop = name.lastIndexOf('_');
  19.161 +            if (crop != -1) {
  19.162 +                name = name.substring(0, crop);
  19.163 +            }
  19.164 +            map.put("CROPPEDNAME", name);  // NOI18N
  19.165 +            map.put("DATE", DateFormat.getDateInstance // NOI18N
  19.166 +                    (DateFormat.LONG).format(new Date()));
  19.167 +            map.put("TIME", DateFormat.getTimeInstance // NOI18N
  19.168 +                    (DateFormat.SHORT).format(new Date()));
  19.169 +            //	    map.put("USER", System.getProperty("user.name"));	// NOI18N
  19.170 +            String nbHome = null; //System.getProperty("netbeans.home");
  19.171 +            File file = InstalledFileLocator.getDefault().locate("lib", null, false); // NOI18N
  19.172 +            if (file != null) {
  19.173 +                nbHome = file.getParent();
  19.174 +            }
  19.175 +            if (nbHome == null) {
  19.176 +                nbHome = "";
  19.177 +            }
  19.178 +            map.put("NBDIR", nbHome); // NOI18N
  19.179 +            map.put("QUOTES", "\""); // NOI18N
  19.180 +
  19.181 +            for (CreateFromTemplateAttributesProvider provider :
  19.182 +                    Lookup.getDefault().lookupAll(CreateFromTemplateAttributesProvider.class)) {
  19.183 +                Map<String, ?> attrs = provider.attributesFor(getDataObject(),
  19.184 +                        DataFolder.findFolder(target), name);
  19.185 +                if (attrs != null) {
  19.186 +                    for (Map.Entry<String, ?> entry : attrs.entrySet()) {
  19.187 +                        map.put(entry.getKey().toUpperCase(), entry.getValue());
  19.188 +                    }
  19.189 +                }
  19.190 +            }
  19.191 +
  19.192 +            org.openide.util.MapFormat format = new org.openide.util.MapFormat(map);
  19.193 +
  19.194 +            // Use "%<%" and "%>%" instead of "__" (which most other templates
  19.195 +            // use) since "__" is used for many C++ tokens and we don't want
  19.196 +            // any conflicts with valid code. For example, __FILE__ is a valid
  19.197 +            // construct in Sun C++ files and the compiler will replace the
  19.198 +            // current file name during compilation.
  19.199 +            format.setLeftBrace("%<%"); // NOI18N
  19.200 +            format.setRightBrace("%>%"); // NOI18N
  19.201 +            return format;
  19.202 +        }
  19.203 +
  19.204 +        /**
  19.205 +         * Creates dataobject from template. Copies the file and applies
  19.206 +         * substitutions provided by the createFormat method.
  19.207 +         *
  19.208 +         * Overriding parent implementation to add encoding conversion (IZ 163832).
  19.209 +         * Copied with minor modifications from IndentFileEntry (java.source module).
  19.210 +         *
  19.211 +         * @param f  the folder to create instance in
  19.212 +         * @param name  name of the file or null if it should be chosen automatically
  19.213 +         * @return  created file
  19.214 +         * @throws java.io.IOException
  19.215 +         */
  19.216 +        @Override
  19.217 +        public FileObject createFromTemplate(FileObject f, String name) throws IOException {
  19.218 +            // we don't want extension to be taken from template filename for our customized dialog
  19.219 +            String ext;
  19.220 +
  19.221 +            // use default
  19.222 +            ext = getFile().getExt();
  19.223 +
  19.224 +            FileObject fo = f.createData(name, ext);
  19.225 +
  19.226 +            java.text.Format frm = createFormat(f, name, ext);
  19.227 +
  19.228 +            EditorKit kit = createEditorKit(getFile().getMIMEType());
  19.229 +            Document doc = kit.createDefaultDocument();
  19.230 +
  19.231 +            BufferedReader r = new BufferedReader(new InputStreamReader(
  19.232 +                    getFile().getInputStream(), FileEncodingQuery.getEncoding(getFile())));
  19.233 +            try {
  19.234 +                FileLock lock = fo.lock();
  19.235 +                try {
  19.236 +                    Charset encoding = FileEncodingQuery.getEncoding(fo);
  19.237 +                    BufferedWriter w = new BufferedWriter(new OutputStreamWriter(
  19.238 +                            fo.getOutputStream(lock), encoding));
  19.239 +                    try {
  19.240 +                        String current;
  19.241 +                        String line = null;
  19.242 +                        int offset = 0;
  19.243 +                        while ((current = r.readLine()) != null) {
  19.244 +                            if (line != null) {
  19.245 +                                doc.insertString(offset, "\n", null); // NOI18N
  19.246 +                                offset++;
  19.247 +                            }
  19.248 +                            line = frm.format(current);
  19.249 +                            doc.insertString(offset, line, null);
  19.250 +                            offset += line.length();
  19.251 +                        }
  19.252 +                        doc.insertString(doc.getLength(), "\n", null); // NOI18N
  19.253 +                        offset++;
  19.254 +                        Reformat reformat = Reformat.get(doc);
  19.255 +                        reformat.lock();
  19.256 +                        try {
  19.257 +                            reformat.reformat(0, doc.getLength());
  19.258 +                        } finally {
  19.259 +                            reformat.unlock();
  19.260 +                        }
  19.261 +                        w.write(doc.getText(0, doc.getLength()));
  19.262 +                    } catch (BadLocationException ex) {
  19.263 +                        Exceptions.printStackTrace(ex);
  19.264 +                    } finally {
  19.265 +                        w.close();
  19.266 +                    }
  19.267 +                } finally {
  19.268 +                    lock.releaseLock();
  19.269 +                }
  19.270 +            } finally {
  19.271 +                r.close();
  19.272 +            }
  19.273 +
  19.274 +            // copy attributes
  19.275 +            FileUtil.copyAttributes(getFile(), fo);
  19.276 +
  19.277 +            // unmark template state
  19.278 +            setTemplate(fo, false);
  19.279 +
  19.280 +            return fo;
  19.281 +        }
  19.282 +    }
  19.283 +
  19.284 +    private static EditorKit createEditorKit(String mimeType) {
  19.285 +        EditorKit kit;
  19.286 +        kit = JEditorPane.createEditorKitForContentType(mimeType);
  19.287 +        if (kit == null) {
  19.288 +            kit = new javax.swing.text.DefaultEditorKit();
  19.289 +        }
  19.290 +        return kit;
  19.291 +    }
  19.292 +
  19.293 +    private static boolean setTemplate(FileObject fo, boolean newTempl) throws IOException {
  19.294 +        boolean oldTempl = false;
  19.295 +
  19.296 +        Object o = fo.getAttribute(DataObject.PROP_TEMPLATE);
  19.297 +        if ((o instanceof Boolean) && ((Boolean) o).booleanValue()) {
  19.298 +            oldTempl = true;
  19.299 +        }
  19.300 +        if (oldTempl == newTempl) {
  19.301 +            return false;
  19.302 +        }
  19.303 +
  19.304 +        fo.setAttribute(DataObject.PROP_TEMPLATE, (newTempl ? Boolean.TRUE : null));
  19.305 +
  19.306 +        return true;
  19.307 +    }
  19.308 +
  19.309 +}
    20.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    20.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/SourceDataNode.java	Mon Oct 15 23:38:26 2012 +0200
    20.3 @@ -0,0 +1,82 @@
    20.4 +/*
    20.5 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
    20.6 + *
    20.7 + * Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
    20.8 + *
    20.9 + * Oracle and Java are registered trademarks of Oracle and/or its affiliates.
   20.10 + * Other names may be trademarks of their respective owners.
   20.11 + *
   20.12 + * The contents of this file are subject to the terms of either the GNU
   20.13 + * General Public License Version 2 only ("GPL") or the Common
   20.14 + * Development and Distribution License("CDDL") (collectively, the
   20.15 + * "License"). You may not use this file except in compliance with the
   20.16 + * License. You can obtain a copy of the License at
   20.17 + * http://www.netbeans.org/cddl-gplv2.html
   20.18 + * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
   20.19 + * specific language governing permissions and limitations under the
   20.20 + * License.  When distributing the software, include this License Header
   20.21 + * Notice in each file and include the License file at
   20.22 + * nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
   20.23 + * particular file as subject to the "Classpath" exception as provided
   20.24 + * by Oracle in the GPL Version 2 section of the License file that
   20.25 + * accompanied this code. If applicable, add the following below the
   20.26 + * License Header, with the fields enclosed by brackets [] replaced by
   20.27 + * your own identifying information:
   20.28 + * "Portions Copyrighted [year] [name of copyright owner]"
   20.29 + *
   20.30 + * Contributor(s):
   20.31 + *
   20.32 + * The Original Software is NetBeans. The Initial Developer of the Original
   20.33 + * Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun
   20.34 + * Microsystems, Inc. All Rights Reserved.
   20.35 + *
   20.36 + * If you wish your version of this file to be governed by only the CDDL
   20.37 + * or only the GPL Version 2, indicate your decision by adding
   20.38 + * "[Contributor] elects to include this software in this distribution
   20.39 + * under the [CDDL or GPL Version 2] license." If you do not indicate a
   20.40 + * single choice of license, a recipient has the option to distribute
   20.41 + * your version of this file under either the CDDL, the GPL Version 2 or
   20.42 + * to extend the choice of license to its licensees as provided above.
   20.43 + * However, if you add GPL Version 2 code and therefore, elected the GPL
   20.44 + * Version 2 license, then the option applies only if the new code is
   20.45 + * made subject to such option by the copyright holder.
   20.46 + */
   20.47 +package org.netbeans.modules.ada.editor;
   20.48 +
   20.49 +import javax.swing.Action;
   20.50 +
   20.51 +import org.openide.loaders.DataNode;
   20.52 +import org.openide.loaders.DataObject;
   20.53 +import org.openide.nodes.Children;
   20.54 +import org.openide.util.HelpCtx;
   20.55 +import org.openide.util.actions.SystemAction;
   20.56 +import org.openide.actions.OpenAction;
   20.57 +import org.openide.util.Lookup;
   20.58 +
   20.59 +/**
   20.60 + *  A base class for C/C++/Fortran (C-C-F) nodes.
   20.61 + */
   20.62 +public class SourceDataNode extends DataNode {
   20.63 +
   20.64 +    /** Constructor for this class */
   20.65 +    public SourceDataNode(DataObject obj, Lookup lookup, String icon) {
   20.66 +        super(obj, Children.LEAF, lookup);
   20.67 +        setIconBaseWithExtension(icon);
   20.68 +    }
   20.69 +
   20.70 +    /**
   20.71 +     *  Overrides default action from DataNode.
   20.72 +     *  Instantiate a template, if isTemplate() returns true.
   20.73 +     *  Opens otherwise.
   20.74 +     */
   20.75 +    @Override
   20.76 +    public Action getPreferredAction() {
   20.77 +        Action result = super.getPreferredAction();
   20.78 +        return result == null ? SystemAction.get(OpenAction.class) : result;
   20.79 +    }
   20.80 +
   20.81 +    @Override
   20.82 +    public HelpCtx getHelpCtx() {
   20.83 +        return new HelpCtx("Welcome_ada_home"); // NOI18N
   20.84 +    }
   20.85 +}
    21.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    21.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/SourceDataObject.java	Mon Oct 15 23:38:26 2012 +0200
    21.3 @@ -0,0 +1,162 @@
    21.4 +/*
    21.5 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
    21.6 + *
    21.7 + * Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
    21.8 + *
    21.9 + * Oracle and Java are registered trademarks of Oracle and/or its affiliates.
   21.10 + * Other names may be trademarks of their respective owners.
   21.11 + *
   21.12 + * The contents of this file are subject to the terms of either the GNU
   21.13 + * General Public License Version 2 only ("GPL") or the Common
   21.14 + * Development and Distribution License("CDDL") (collectively, the
   21.15 + * "License"). You may not use this file except in compliance with the
   21.16 + * License. You can obtain a copy of the License at
   21.17 + * http://www.netbeans.org/cddl-gplv2.html
   21.18 + * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
   21.19 + * specific language governing permissions and limitations under the
   21.20 + * License.  When distributing the software, include this License Header
   21.21 + * Notice in each file and include the License file at
   21.22 + * nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
   21.23 + * particular file as subject to the "Classpath" exception as provided
   21.24 + * by Oracle in the GPL Version 2 section of the License file that
   21.25 + * accompanied this code. If applicable, add the following below the
   21.26 + * License Header, with the fields enclosed by brackets [] replaced by
   21.27 + * your own identifying information:
   21.28 + * "Portions Copyrighted [year] [name of copyright owner]"
   21.29 + *
   21.30 + * Contributor(s):
   21.31 + *
   21.32 + * The Original Software is NetBeans. The Initial Developer of the Original
   21.33 + * Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun
   21.34 + * Microsystems, Inc. All Rights Reserved.
   21.35 + *
   21.36 + * If you wish your version of this file to be governed by only the CDDL
   21.37 + * or only the GPL Version 2, indicate your decision by adding
   21.38 + * "[Contributor] elects to include this software in this distribution
   21.39 + * under the [CDDL or GPL Version 2] license." If you do not indicate a
   21.40 + * single choice of license, a recipient has the option to distribute
   21.41 + * your version of this file under either the CDDL, the GPL Version 2 or
   21.42 + * to extend the choice of license to its licensees as provided above.
   21.43 + * However, if you add GPL Version 2 code and therefore, elected the GPL
   21.44 + * Version 2 license, then the option applies only if the new code is
   21.45 + * made subject to such option by the copyright holder.
   21.46 + */
   21.47 +package org.netbeans.modules.ada.editor;
   21.48 +
   21.49 +import java.io.IOException;
   21.50 +
   21.51 +import org.openide.filesystems.FileObject;
   21.52 +import org.openide.loaders.DataObject;
   21.53 +import org.openide.loaders.DataFolder;
   21.54 +import org.openide.loaders.MultiDataObject;
   21.55 +import org.openide.loaders.MultiFileLoader;
   21.56 +import org.openide.loaders.DataObjectExistsException;
   21.57 +import org.openide.nodes.Node;
   21.58 +import org.openide.nodes.Node.Cookie;
   21.59 +import org.openide.util.NbBundle;
   21.60 +import org.openide.util.Lookup;
   21.61 +import org.openide.util.lookup.AbstractLookup;
   21.62 +import org.openide.util.lookup.InstanceContent;
   21.63 +
   21.64 +/**
   21.65 + *  Abstract superclass of a C/C++/Fortran DataObject.
   21.66 + */
   21.67 +public abstract class SourceDataObject extends MultiDataObject {
   21.68 +    //private static final Logger LOG = Logger.getLogger(SourceDataObject.class.getName());
   21.69 +
   21.70 +    private InstanceContent ic;
   21.71 +    private Lookup myLookup;
   21.72 +
   21.73 +
   21.74 +    public SourceDataObject(FileObject pf, MultiFileLoader loader) throws DataObjectExistsException {
   21.75 +        super(pf, loader);
   21.76 +    }
   21.77 +
   21.78 +    final InstanceContent getInstanceContent(){
   21.79 +        return ic;
   21.80 +    }
   21.81 +
   21.82 +    @Override
   21.83 +    public final synchronized Lookup getLookup() {
   21.84 +        if (myLookup == null) {
   21.85 +            ic = new InstanceContent();
   21.86 +            ic.add(this);
   21.87 +            ic.add(getPrimaryFile());
   21.88 +            ic.add(this, AdaEditorSupportProvider.staticFactory);
   21.89 +            AdaCookieProvider.getDefault().addLookup(this, ic);
   21.90 +            myLookup = new AbstractLookup(ic);
   21.91 +        }
   21.92 +        return myLookup;
   21.93 +    }
   21.94 +
   21.95 +    @Override
   21.96 +    public final <T extends Cookie> T getCookie(Class<T> type) {
   21.97 +        if (!Cookie.class.isAssignableFrom(type)) {
   21.98 +            //Exception exception = new Exception("Class "+Cookie.class.getName()+" does not AssignableFrom "+type.getName()); //NOI18N
   21.99 +            //LOG.log(Level.INFO, exception.getMessage(), exception);
  21.100 +            return null;
  21.101 +        }
  21.102 +        Object lookupResult = getLookup().lookup(type);
  21.103 +        if (lookupResult != null) {
  21.104 +            if (!type.isInstance(lookupResult)) {
  21.105 +                //Exception exception = new Exception("Class "+lookupResult.getClass().getName()+" is not instance of "+type.getName()); //NOI18N
  21.106 +                //LOG.log(Level.INFO, exception.getMessage(), exception);
  21.107 +                return null;
  21.108 +            }
  21.109 +        }
  21.110 +        @SuppressWarnings("unchecked")
  21.111 +        T res = (T) lookupResult;
  21.112 +        return res;
  21.113 +    }
  21.114 +
  21.115 +    @Override
  21.116 +    protected abstract Node createNodeDelegate();
  21.117 +
  21.118 +    /**
  21.119 +     *  Creates new object from template. Check to make sure the user
  21.120 +     *  has entered a valid string. 
  21.121 +     *
  21.122 +     *  @param df Folder to create the template in
  21.123 +     *  @param name New template name
  21.124 +     *  @exception IOException
  21.125 +     */
  21.126 +    @Override
  21.127 +    protected DataObject handleCreateFromTemplate(DataFolder df, String name)
  21.128 +            throws IOException {
  21.129 +
  21.130 +        if ((name != null) && (!isValidName(name))) {
  21.131 +            throw new IOException(NbBundle.getMessage(SourceDataObject.class,
  21.132 +                    "FMT_Not_Valid_FileName", name)); // NOI18N
  21.133 +        }
  21.134 +        return super.handleCreateFromTemplate(df, name);
  21.135 +    }
  21.136 +
  21.137 +    /**
  21.138 +     * Is the given name a valid template name for our module?
  21.139 +     * In other words, is it a valid basename for a source/data file
  21.140 +     * created by our templates, or is it even a valid filename we will
  21.141 +     * allow you to rename source files to?
  21.142 +     * <p>
  21.143 +     * Note that Unix allows you to name files anything (except for null
  21.144 +     * characters and the slash character) but we're making a stricter
  21.145 +     * restriction here. We Want To Help You (tm). No blank file names.
  21.146 +     * No control characters in the filename. No meta characters in the
  21.147 +     * filename.   (Possibly controversial: no whitespace in filename)
  21.148 +     *
  21.149 +     * @param name Name to check
  21.150 +     */
  21.151 +    static boolean isValidName(String name) {
  21.152 +        int len = name.length();
  21.153 +
  21.154 +        if (len == 0) {
  21.155 +            return false;
  21.156 +        }
  21.157 +        for (int i = 0; i < len; i++) {
  21.158 +            char c = name.charAt(i);
  21.159 +            if (Character.isISOControl(c)) {
  21.160 +                return false;
  21.161 +            }
  21.162 +        }
  21.163 +        return true;
  21.164 +    }
  21.165 +}
    22.1 --- a/ada.editor/src/org/netbeans/modules/ada/editor/ast/ASTUtils.java	Tue Oct 02 21:55:21 2012 -0400
    22.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/ast/ASTUtils.java	Mon Oct 15 23:38:26 2012 +0200
    22.3 @@ -207,7 +207,7 @@
    22.4      public static String resolveVariableName(Variable variable) {
    22.5          String name = null;
    22.6          if (variable.getName() instanceof Identifier) {
    22.7 -            name = ((Identifier) variable.getName()).getName();
    22.8 +            name = (variable.getName()).getName();
    22.9          }
   22.10          return name;
   22.11      }
    23.1 --- a/ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/AbortStatement.java	Tue Oct 02 21:55:21 2012 -0400
    23.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/AbortStatement.java	Mon Oct 15 23:38:26 2012 +0200
    23.3 @@ -52,9 +52,9 @@
    23.4   */
    23.5  public class AbortStatement extends Statement {
    23.6      
    23.7 -    private final ArrayList<Identifier> tasks = new ArrayList<Identifier>();
    23.8 +    private final ArrayList<TaskName> tasks = new ArrayList<TaskName>();
    23.9  
   23.10 -    public AbortStatement(int start, int end, List<Identifier> tasks) {
   23.11 +    public AbortStatement(int start, int end, List<TaskName> tasks) {
   23.12          super(start, end);
   23.13  
   23.14          this.tasks.addAll(tasks);
   23.15 @@ -66,7 +66,7 @@
   23.16       * 
   23.17       * @return the list of packages node
   23.18       */
   23.19 -    public List<Identifier> getTasks() {
   23.20 +    public List<TaskName> getTasks() {
   23.21          return tasks;
   23.22      }
   23.23  
    24.1 --- a/ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/ArrayAccess.java	Tue Oct 02 21:55:21 2012 -0400
    24.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/ArrayAccess.java	Mon Oct 15 23:38:26 2012 +0200
    24.3 @@ -83,7 +83,7 @@
    24.4       */
    24.5      @Override
    24.6      public Identifier getName() {
    24.7 -        return (Identifier) super.getName();
    24.8 +        return super.getName();
    24.9      }
   24.10  
   24.11      @Override
    25.1 --- a/ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/Assignment.java	Tue Oct 02 21:55:21 2012 -0400
    25.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/Assignment.java	Mon Oct 15 23:38:26 2012 +0200
    25.3 @@ -48,10 +48,10 @@
    25.4   */
    25.5  public class Assignment extends Statement {
    25.6      
    25.7 -    private VariableBase leftHandSide;
    25.8 +    private NameBase leftHandSide;
    25.9      private Expression rightHandSide;
   25.10  
   25.11 -    public Assignment(int start, int end, VariableBase leftHandSide, Expression rightHandSide) {
   25.12 +    public Assignment(int start, int end, NameBase leftHandSide, Expression rightHandSide) {
   25.13          super(start, end);
   25.14          if (leftHandSide == null ) {//|| rightHandSide == null) { TODO: must be correct
   25.15              throw new IllegalArgumentException
   25.16 @@ -67,7 +67,7 @@
   25.17       * 
   25.18       * @return the left hand side node
   25.19       */
   25.20 -    public VariableBase getLeftHandSide() {
   25.21 +    public NameBase getLeftHandSide() {
   25.22          return this.leftHandSide;
   25.23      }
   25.24  
    26.1 --- a/ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/BlockStatement.java	Tue Oct 02 21:55:21 2012 -0400
    26.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/BlockStatement.java	Mon Oct 15 23:38:26 2012 +0200
    26.3 @@ -38,8 +38,6 @@
    26.4   */
    26.5  package org.netbeans.modules.ada.editor.ast.nodes;
    26.6  
    26.7 -import java.util.ArrayList;
    26.8 -import java.util.List;
    26.9  import org.netbeans.modules.ada.editor.ast.nodes.visitors.Visitor;
   26.10  
   26.11  /**
   26.12 @@ -59,42 +57,41 @@
   26.13   */
   26.14  public class BlockStatement extends Statement {
   26.15  
   26.16 -	private Identifier label;
   26.17 +    private Identifier label;
   26.18      private Block declarations;
   26.19      private Block body;
   26.20  
   26.21      public BlockStatement(int start, int end, Identifier label, Block declarations, Block body) {
   26.22          super(start, end);
   26.23  
   26.24 -		this.label = label;
   26.25 +        this.label = label;
   26.26          this.declarations = declarations;
   26.27          this.body = body;
   26.28      }
   26.29  
   26.30 -	public Identifier getLabel () {
   26.31 -		return this.label;
   26.32 -	}
   26.33 +    public Identifier getLabel() {
   26.34 +        return this.label;
   26.35 +    }
   26.36  
   26.37      /**
   26.38       * Retrieves the declaration statements parts of this block
   26.39       * @return declaration statements parts of this block
   26.40       */
   26.41      public Block getDeclarations() {
   26.42 -        return this.body;
   26.43 +        return this.declarations;
   26.44      }
   26.45  
   26.46 -	/**
   26.47 +    /**
   26.48       * Retrieves the body statements parts of this block
   26.49       * @return body statements parts of this block
   26.50       */
   26.51      public Block getBody() {
   26.52          return this.body;
   26.53      }
   26.54 -    
   26.55 +
   26.56      @Override
   26.57      public void accept(Visitor visitor) {
   26.58          visitor.visit(this);
   26.59      }
   26.60 -
   26.61  }
   26.62  
    27.1 --- a/ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/BodyDeclaration.java	Tue Oct 02 21:55:21 2012 -0400
    27.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/BodyDeclaration.java	Mon Oct 15 23:38:26 2012 +0200
    27.3 @@ -42,6 +42,8 @@
    27.4   * Based on org.netbeans.modules.php.editor.parser.astnodes.BodyDeclaration
    27.5   *
    27.6   * Base class for package member declarations
    27.7 + *
    27.8 + * @author Andrea Lucarelli
    27.9   */
   27.10  public abstract class BodyDeclaration extends Statement {
   27.11  
    28.1 --- a/ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/CaseWhen.java	Tue Oct 02 21:55:21 2012 -0400
    28.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/CaseWhen.java	Mon Oct 15 23:38:26 2012 +0200
    28.3 @@ -39,6 +39,7 @@
    28.4  package org.netbeans.modules.ada.editor.ast.nodes;
    28.5  
    28.6  import java.util.ArrayList;
    28.7 +import java.util.Arrays;
    28.8  import java.util.List;
    28.9  import org.netbeans.modules.ada.editor.ast.nodes.visitors.Visitor;
   28.10  
   28.11 @@ -63,16 +64,13 @@
   28.12          }
   28.13  
   28.14          this.value = value;
   28.15 -
   28.16 -        for (Statement statement : actions) {
   28.17 -            this.actions.add(statement);
   28.18 -        }
   28.19 +        this.actions.addAll(Arrays.asList(actions));
   28.20  
   28.21          this.isDefault = (value == null) ? true : false;
   28.22      }
   28.23  
   28.24      public CaseWhen(int start, int end, Expression value, List<Statement> actions) {
   28.25 -        this(start, end, value, actions == null ? null : (Statement[]) actions.toArray(new Statement[actions.size()]));
   28.26 +        this(start, end, value, actions == null ? null : actions.toArray(new Statement[actions.size()]));
   28.27      }
   28.28  
   28.29      /**
    29.1 --- a/ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/Dispatch.java	Tue Oct 02 21:55:21 2012 -0400
    29.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/Dispatch.java	Mon Oct 15 23:38:26 2012 +0200
    29.3 @@ -45,11 +45,11 @@
    29.4   * MyPackage.foo,
    29.5   * MyPackage.foo(bar : in bar_type)
    29.6   */
    29.7 -public abstract class Dispatch extends VariableBase {
    29.8 +public abstract class Dispatch extends NameBase {
    29.9  
   29.10 -    private VariableBase dispatcher;
   29.11 +    private NameBase dispatcher;
   29.12  
   29.13 -    public Dispatch(int start, int end, VariableBase dispatcher) {
   29.14 +    public Dispatch(int start, int end, NameBase dispatcher) {
   29.15          super(start, end);
   29.16          this.dispatcher = dispatcher;
   29.17      }
   29.18 @@ -59,7 +59,7 @@
   29.19       * 
   29.20       * @return dispatcher component of this dispatch expression 
   29.21       */
   29.22 -    public VariableBase getDispatcher() {
   29.23 +    public NameBase getDispatcher() {
   29.24          return dispatcher;
   29.25      }
   29.26  }
    30.1 --- a/ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/ExitStatement.java	Tue Oct 02 21:55:21 2012 -0400
    30.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/ExitStatement.java	Mon Oct 15 23:38:26 2012 +0200
    30.3 @@ -48,10 +48,10 @@
    30.4   */
    30.5  public class ExitStatement extends Statement {
    30.6  
    30.7 -    private String loopName;
    30.8 +    private Expression loopName;
    30.9      private Expression whenCondition;
   30.10  
   30.11 -    public ExitStatement(int start, int end, String loopName, Expression whenCondition) {
   30.12 +    public ExitStatement(int start, int end, Expression loopName, Expression whenCondition) {
   30.13          super(start, end);
   30.14          this.loopName = loopName;
   30.15          this.whenCondition = whenCondition;
   30.16 @@ -62,7 +62,7 @@
   30.17       * 
   30.18       * @return the loopName node
   30.19       */
   30.20 -    public String getLoopName() {
   30.21 +    public Expression getLoopName() {
   30.22          return loopName;
   30.23      }
   30.24  
    31.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    31.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/FieldAccess.java	Mon Oct 15 23:38:26 2012 +0200
    31.3 @@ -0,0 +1,78 @@
    31.4 +/*
    31.5 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
    31.6 + * 
    31.7 + * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
    31.8 + * 
    31.9 + * The contents of this file are subject to the terms of either the GNU
   31.10 + * General Public License Version 2 only ("GPL") or the Common
   31.11 + * Development and Distribution License("CDDL") (collectively, the
   31.12 + * "License"). You may not use this file except in compliance with the
   31.13 + * License. You can obtain a copy of the License at
   31.14 + * http://www.netbeans.org/cddl-gplv2.html
   31.15 + * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
   31.16 + * specific language governing permissions and limitations under the
   31.17 + * License.  When distributing the software, include this License Header
   31.18 + * Notice in each file and include the License file at
   31.19 + * nbbuild/licenses/CDDL-GPL-2-CP.  Sun designates this
   31.20 + * particular file as subject to the "Classpath" exception as provided
   31.21 + * by Sun in the GPL Version 2 section of the License file that
   31.22 + * accompanied this code. If applicable, add the following below the
   31.23 + * License Header, with the fields enclosed by brackets [] replaced by
   31.24 + * your own identifying information:
   31.25 + * "Portions Copyrighted [year] [name of copyright owner]"
   31.26 + * 
   31.27 + * If you wish your version of this file to be governed by only the CDDL
   31.28 + * or only the GPL Version 2, indicate your decision by adding
   31.29 + * "[Contributor] elects to include this software in this distribution
   31.30 + * under the [CDDL or GPL Version 2] license." If you do not indicate a
   31.31 + * single choice of license, a recipient has the option to distribute
   31.32 + * your version of this file under either the CDDL, the GPL Version 2 or
   31.33 + * to extend the choice of license to its licensees as provided above.
   31.34 + * However, if you add GPL Version 2 code and therefore, elected the GPL
   31.35 + * Version 2 license, then the option applies only if the new code is
   31.36 + * made subject to such option by the copyright holder.
   31.37 + * 
   31.38 + * Contributor(s):
   31.39 + * 
   31.40 + * Portions Copyrighted 2008 Sun Microsystems, Inc.
   31.41 + */
   31.42 +package org.netbeans.modules.ada.editor.ast.nodes;
   31.43 +
   31.44 +import org.netbeans.modules.ada.editor.ast.nodes.visitors.Visitor;
   31.45 +
   31.46 +/**
   31.47 + * Represents a field access
   31.48 + * <pre>e.g.<pre>
   31.49 + *
   31.50 + * MyPackage.Foo
   31.51 + */
   31.52 +public class FieldAccess extends Dispatch {
   31.53 +
   31.54 +    private Variable field;
   31.55 +
   31.56 +    public FieldAccess(int start, int end, NameBase dispatcher, Variable field) {
   31.57 +        super(start, end, dispatcher);
   31.58 +        this.field = field;
   31.59 +    }
   31.60 +
   31.61 +    /**
   31.62 +     * Return the field component of this field access
   31.63 +     * 
   31.64 +     * @return the field component of this field access
   31.65 +     */
   31.66 +    public Variable getField() {
   31.67 +        return field;
   31.68 +    }
   31.69 +
   31.70 +    /**
   31.71 +     * see {@link #getField()}
   31.72 +     */
   31.73 +    public NameBase getMember() {
   31.74 +        return getField();
   31.75 +    }
   31.76 +    
   31.77 +    @Override
   31.78 +    public void accept(Visitor visitor) {
   31.79 +        visitor.visit(this);
   31.80 +    }
   31.81 +}
    32.1 --- a/ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/FormalParameter.java	Tue Oct 02 21:55:21 2012 -0400
    32.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/FormalParameter.java	Mon Oct 15 23:38:26 2012 +0200
    32.3 @@ -52,13 +52,12 @@
    32.4      public enum Mode {
    32.5          IN, OUT, IN_OUT, ACCESS;
    32.6      }
    32.7 -
    32.8      private Variable parameterName;
    32.9      private Mode parameterMode;
   32.10 -	private TypeName parameterType;
   32.11 +    private NameBase parameterType;
   32.12      private Expression defaultValue;
   32.13  
   32.14 -    public FormalParameter(int start, int end, final Variable parameterName, Mode parameterMode, TypeName type, Expression defaultValue) {
   32.15 +    public FormalParameter(int start, int end, final Variable parameterName, Mode parameterMode, NameBase type, Expression defaultValue) {
   32.16          super(start, end);
   32.17  
   32.18          this.parameterName = parameterName;
   32.19 @@ -67,7 +66,7 @@
   32.20          this.defaultValue = defaultValue;
   32.21      }
   32.22  
   32.23 -    public FormalParameter(int start, int end, final Variable parameterName, Mode parameterMode, TypeName type) {
   32.24 +    public FormalParameter(int start, int end, final Variable parameterName, Mode parameterMode, NameBase type) {
   32.25          this(start, end, parameterName, parameterMode, type, null);
   32.26      }
   32.27  
   32.28 @@ -85,7 +84,7 @@
   32.29          return parameterName;
   32.30      }
   32.31  
   32.32 -	/**
   32.33 +    /**
   32.34       * @return the mode of this parameter
   32.35       */
   32.36      public Mode getParameterMode() {
   32.37 @@ -95,10 +94,10 @@
   32.38      /**
   32.39       * @return the type of this parameter
   32.40       */
   32.41 -    public TypeName getParameterType() {
   32.42 +    public NameBase getParameterType() {
   32.43          return parameterType;
   32.44      }
   32.45 -    
   32.46 +
   32.47      @Override
   32.48      public void accept(Visitor visitor) {
   32.49          visitor.visit(this);
    33.1 --- a/ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/GotoStatement.java	Tue Oct 02 21:55:21 2012 -0400
    33.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/GotoStatement.java	Mon Oct 15 23:38:26 2012 +0200
    33.3 @@ -47,9 +47,9 @@
    33.4   */
    33.5  public class GotoStatement extends Statement {
    33.6  
    33.7 -    private String labelName;
    33.8 +    private Expression labelName;
    33.9  
   33.10 -    public GotoStatement(int start, int end, String labelName) {
   33.11 +    public GotoStatement(int start, int end, Expression labelName) {
   33.12          super(start, end);
   33.13          this.labelName = labelName;
   33.14      }
   33.15 @@ -59,7 +59,7 @@
   33.16       * 
   33.17       * @return the loopName node
   33.18       */
   33.19 -    public String getLabelName() {
   33.20 +    public Expression getLabelName() {
   33.21          return labelName;
   33.22      }
   33.23  
    34.1 --- a/ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/Identifier.java	Tue Oct 02 21:55:21 2012 -0400
    34.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/Identifier.java	Mon Oct 15 23:38:26 2012 +0200
    34.3 @@ -36,7 +36,6 @@
    34.4   *
    34.5   * Portions Copyrighted 2008 Sun Microsystems, Inc.
    34.6   */
    34.7 -
    34.8  package org.netbeans.modules.ada.editor.ast.nodes;
    34.9  
   34.10  import org.netbeans.modules.ada.editor.ast.nodes.visitors.Visitor;
   34.11 @@ -47,9 +46,8 @@
   34.12   * Holds an identifier.
   34.13   * Uses for variable name, function name, procedure name and package name.
   34.14   * <pre>e.g.<pre>  
   34.15 - * Foo : Integer; -- Foo is the identifier,
   34.16 - * Foo (Foo => Bar) -- Foo is the identifier,
   34.17 - * Foo.Bar; -- Foo and Bar are identifiers
   34.18 + * Count X Get_Symbol Ethelyn Marion
   34.19 + * Snobol_4 X1 Page_Count Store_Next_Item
   34.20   *
   34.21   * @author Andrea Lucarelli
   34.22   */
   34.23 @@ -59,7 +57,7 @@
   34.24  
   34.25      public Identifier(int start, int end, String name) {
   34.26          super(start, end);
   34.27 -		this.name = name;
   34.28 +        this.name = name;
   34.29      }
   34.30  
   34.31      public String getName() {
    35.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    35.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/InfixExpression.java	Mon Oct 15 23:38:26 2012 +0200
    35.3 @@ -0,0 +1,126 @@
    35.4 +/*
    35.5 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
    35.6 + * 
    35.7 + * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
    35.8 + * 
    35.9 + * The contents of this file are subject to the terms of either the GNU
   35.10 + * General Public License Version 2 only ("GPL") or the Common
   35.11 + * Development and Distribution License("CDDL") (collectively, the
   35.12 + * "License"). You may not use this file except in compliance with the
   35.13 + * License. You can obtain a copy of the License at
   35.14 + * http://www.netbeans.org/cddl-gplv2.html
   35.15 + * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
   35.16 + * specific language governing permissions and limitations under the
   35.17 + * License.  When distributing the software, include this License Header
   35.18 + * Notice in each file and include the License file at
   35.19 + * nbbuild/licenses/CDDL-GPL-2-CP.  Sun designates this
   35.20 + * particular file as subject to the "Classpath" exception as provided
   35.21 + * by Sun in the GPL Version 2 section of the License file that
   35.22 + * accompanied this code. If applicable, add the following below the
   35.23 + * License Header, with the fields enclosed by brackets [] replaced by
   35.24 + * your own identifying information:
   35.25 + * "Portions Copyrighted [year] [name of copyright owner]"
   35.26 + * 
   35.27 + * If you wish your version of this file to be governed by only the CDDL
   35.28 + * or only the GPL Version 2, indicate your decision by adding
   35.29 + * "[Contributor] elects to include this software in this distribution
   35.30 + * under the [CDDL or GPL Version 2] license." If you do not indicate a
   35.31 + * single choice of license, a recipient has the option to distribute
   35.32 + * your version of this file under either the CDDL, the GPL Version 2 or
   35.33 + * to extend the choice of license to its licensees as provided above.
   35.34 + * However, if you add GPL Version 2 code and therefore, elected the GPL
   35.35 + * Version 2 license, then the option applies only if the new code is
   35.36 + * made subject to such option by the copyright holder.
   35.37 + * 
   35.38 + * Contributor(s):
   35.39 + * 
   35.40 + * Portions Copyrighted 2008 Sun Microsystems, Inc.
   35.41 + */
   35.42 +package org.netbeans.modules.ada.editor.ast.nodes;
   35.43 +
   35.44 +import org.netbeans.modules.ada.editor.ast.nodes.visitors.Visitor;
   35.45 +
   35.46 +/**
   35.47 + * Based on org.netbeans.modules.php.editor.parser.astnodes.InfixExpression
   35.48 + * 
   35.49 + * Represents an infix expression
   35.50 + * <pre>e.g.<pre> $a + 1,
   35.51 + * 3 - 2,
   35.52 + * foo() * $a->bar(),
   35.53 + * 'string'.$c
   35.54 + */
   35.55 +public class InfixExpression extends Expression {
   35.56 +
   35.57 +    public enum OperatorType {
   35.58 +        IS_EQUAL, // '='
   35.59 +    	IS_NOT_EQUAL, // '/='
   35.60 +        RGREATER, // '<'
   35.61 +        IS_SMALLER_OR_EQUAL, // '<='
   35.62 +        LGREATER, // '>'
   35.63 +    	IS_GREATER_OR_EQUAL, // '>='
   35.64 +        BOOL_OR, // 'or'
   35.65 +        BOOL_AND, // 'and'
   35.66 +        BOOL_XOR, // 'xor'
   35.67 +    	STRING_AND, // '&'
   35.68 +        OR, // '|'
   35.69 +    	EXPON, // '**'
   35.70 +        PLUS, // '+'
   35.71 +        MINUS, // '-'
   35.72 +    	MUL, // '*'
   35.73 +        DIV, // '/'
   35.74 +        MOD, // 'mod'
   35.75 +        REM, // 'rem'
   35.76 +        IN, // 'in'
   35.77 +    	NOT_IN // 'not in'
   35.78 +    }
   35.79 +    
   35.80 +    private Expression left;
   35.81 +    private InfixExpression.OperatorType operator;
   35.82 +    private Expression right;
   35.83 +
   35.84 +    public InfixExpression(int start, int end, Expression left, InfixExpression.OperatorType operator, Expression right) {
   35.85 +        super(start, end);
   35.86 +
   35.87 +        if (right == null || left == null ) {
   35.88 +            throw new IllegalArgumentException();
   35.89 +        }
   35.90 +
   35.91 +        this.left = left;
   35.92 +        this.right = right;
   35.93 +        this.operator = operator;
   35.94 +    }
   35.95 +
   35.96 +    
   35.97 +
   35.98 +    /**
   35.99 +     * Returns the operator of this infix expression.
  35.100 +     * 
  35.101 +     * @return the infix operator
  35.102 +     */
  35.103 +    public InfixExpression.OperatorType getOperator() {
  35.104 +        return this.operator;
  35.105 +    }
  35.106 +
  35.107 +    /**
  35.108 +     * Returns the left operand of this infix expression.
  35.109 +     * 
  35.110 +     * @return the left operand node
  35.111 +     */
  35.112 +    public Expression getLeft() {
  35.113 +        return this.left;
  35.114 +    }
  35.115 +
  35.116 +    /**
  35.117 +     * Returns the right operand of this infix expression.
  35.118 +     * 
  35.119 +     * @return the right operand node
  35.120 +     */
  35.121 +    public Expression getRight() {
  35.122 +        return this.right;
  35.123 +    }
  35.124 +    
  35.125 +    @Override
  35.126 +    public void accept(Visitor visitor) {
  35.127 +        visitor.visit(this);
  35.128 +    }
  35.129 +}
    36.1 --- a/ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/MethodInvocation.java	Tue Oct 02 21:55:21 2012 -0400
    36.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/MethodInvocation.java	Mon Oct 15 23:38:26 2012 +0200
    36.3 @@ -53,7 +53,7 @@
    36.4      private MethodName name;
    36.5      private final ArrayList<Expression> parameters = new ArrayList<Expression>();
    36.6  
    36.7 -    private MethodInvocation(int start, int end, VariableBase dispatcher, MethodName methodName, Expression[] parameters) {
    36.8 +    private MethodInvocation(int start, int end, NameBase dispatcher, MethodName methodName, Expression[] parameters) {
    36.9          super(start, end, dispatcher);
   36.10          this.name = methodName;
   36.11          for (Expression expression : parameters) {
   36.12 @@ -61,8 +61,8 @@
   36.13          }
   36.14      }
   36.15  
   36.16 -    public MethodInvocation(int start, int end, VariableBase dispatcher, MethodName methodName, List<Expression> parameters) {
   36.17 -        this(start, end, dispatcher, methodName, parameters == null ? null : (Expression[]) parameters.toArray(new Expression[parameters.size()]));
   36.18 +    public MethodInvocation(int start, int end, NameBase dispatcher, MethodName methodName, List<Expression> parameters) {
   36.19 +        this(start, end, dispatcher, methodName, parameters == null ? null : parameters.toArray(new Expression[parameters.size()]));
   36.20      }
   36.21  
   36.22      /**
    37.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    37.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/NameBase.java	Mon Oct 15 23:38:26 2012 +0200
    37.3 @@ -0,0 +1,57 @@
    37.4 +/*
    37.5 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
    37.6 + * 
    37.7 + * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
    37.8 + * 
    37.9 + * The contents of this file are subject to the terms of either the GNU
   37.10 + * General Public License Version 2 only ("GPL") or the Common
   37.11 + * Development and Distribution License("CDDL") (collectively, the
   37.12 + * "License"). You may not use this file except in compliance with the
   37.13 + * License. You can obtain a copy of the License at
   37.14 + * http://www.netbeans.org/cddl-gplv2.html
   37.15 + * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
   37.16 + * specific language governing permissions and limitations under the
   37.17 + * License.  When distributing the software, include this License Header
   37.18 + * Notice in each file and include the License file at
   37.19 + * nbbuild/licenses/CDDL-GPL-2-CP.  Sun designates this
   37.20 + * particular file as subject to the "Classpath" exception as provided
   37.21 + * by Sun in the GPL Version 2 section of the License file that
   37.22 + * accompanied this code. If applicable, add the following below the
   37.23 + * License Header, with the fields enclosed by brackets [] replaced by
   37.24 + * your own identifying information:
   37.25 + * "Portions Copyrighted [year] [name of copyright owner]"
   37.26 + * 
   37.27 + * If you wish your version of this file to be governed by only the CDDL
   37.28 + * or only the GPL Version 2, indicate your decision by adding
   37.29 + * "[Contributor] elects to include this software in this distribution
   37.30 + * under the [CDDL or GPL Version 2] license." If you do not indicate a
   37.31 + * single choice of license, a recipient has the option to distribute
   37.32 + * your version of this file under either the CDDL, the GPL Version 2 or
   37.33 + * to extend the choice of license to its licensees as provided above.
   37.34 + * However, if you add GPL Version 2 code and therefore, elected the GPL
   37.35 + * Version 2 license, then the option applies only if the new code is
   37.36 + * made subject to such option by the copyright holder.
   37.37 + * 
   37.38 + * Contributor(s):
   37.39 + * 
   37.40 + * Portions Copyrighted 2008 Sun Microsystems, Inc.
   37.41 + */
   37.42 +package org.netbeans.modules.ada.editor.ast.nodes;
   37.43 +
   37.44 +import org.netbeans.modules.ada.editor.ast.nodes.visitors.Visitor;
   37.45 +
   37.46 +/**
   37.47 + * This interface is base for all the Ada variables
   37.48 + * including simple variable, function invocation, list, dispatch, etc.
   37.49 + */
   37.50 +public class NameBase extends Expression {
   37.51 +
   37.52 +    public NameBase(int start, int end) {
   37.53 +        super(start, end);
   37.54 +    }
   37.55 +
   37.56 +    @Override
   37.57 +    public void accept(Visitor visitor) {
   37.58 +        visitor.visit(this);
   37.59 +    }
   37.60 +}
    38.1 --- a/ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/PackageInstanceCreation.java	Tue Oct 02 21:55:21 2012 -0400
    38.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/PackageInstanceCreation.java	Mon Oct 15 23:38:26 2012 +0200
    38.3 @@ -64,7 +64,7 @@
    38.4      }
    38.5      
    38.6      public PackageInstanceCreation(int start, int end, PackageName packageName, List<Expression> ctorParams) {
    38.7 -		this(start, end, packageName, ctorParams == null ? null : (Expression[]) ctorParams.toArray(new Expression[ctorParams.size()]));
    38.8 +		this(start, end, packageName, ctorParams == null ? null : ctorParams.toArray(new Expression[ctorParams.size()]));
    38.9  	}
   38.10  
   38.11      /**
    39.1 --- a/ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/PackageName.java	Tue Oct 02 21:55:21 2012 -0400
    39.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/PackageName.java	Mon Oct 15 23:38:26 2012 +0200
    39.3 @@ -40,7 +40,6 @@
    39.4  package org.netbeans.modules.ada.editor.ast.nodes;
    39.5  
    39.6  import org.netbeans.modules.ada.editor.ast.nodes.visitors.Visitor;
    39.7 -import org.netbeans.modules.ada.editor.ast.ASTNode;
    39.8  
    39.9  /**
   39.10   * Holds a package name. 
   39.11 @@ -49,7 +48,7 @@
   39.12   *
   39.13   * @author Andrea Lucarelli
   39.14   */
   39.15 -public class PackageName extends ASTNode {
   39.16 +public class PackageName extends NameBase {
   39.17  
   39.18      private Identifier packageName;
   39.19  
    40.1 --- a/ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/Program.java	Tue Oct 02 21:55:21 2012 -0400
    40.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/Program.java	Mon Oct 15 23:38:26 2012 +0200
    40.3 @@ -39,6 +39,7 @@
    40.4  
    40.5  package org.netbeans.modules.ada.editor.ast.nodes;
    40.6  
    40.7 +import java.util.Arrays;
    40.8  import org.netbeans.modules.ada.editor.ast.nodes.visitors.Visitor;
    40.9  import org.netbeans.modules.ada.editor.ast.ASTNode;
   40.10  import java.util.ArrayList;
   40.11 @@ -64,13 +65,10 @@
   40.12  
   40.13      private Program(int start, int end, Statement[] statements, List<Comment> commentsList) {
   40.14          super(start, end);
   40.15 -        for (Statement statement : statements) {
   40.16 -//            statement.setParent(this);
   40.17 -            this.statements.add(statement);
   40.18 -        }
   40.19 +        this.statements.addAll(Arrays.asList(statements));
   40.20          for (Comment comment : commentsList) {
   40.21  //            comment.setParent(this);
   40.22 -            this.comments.add((Comment) comment);
   40.23 +            this.comments.add(comment);
   40.24          }
   40.25  
   40.26      }
    41.1 --- a/ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/RaiseStatement.java	Tue Oct 02 21:55:21 2012 -0400
    41.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/RaiseStatement.java	Mon Oct 15 23:38:26 2012 +0200
    41.3 @@ -48,9 +48,9 @@
    41.4   */
    41.5  public class RaiseStatement extends Statement {
    41.6  
    41.7 -    private String exceptionName;
    41.8 +    private Expression exceptionName;
    41.9  
   41.10 -    public RaiseStatement(int start, int end, String exceptionName) {
   41.11 +    public RaiseStatement(int start, int end, Expression exceptionName) {
   41.12          super(start, end);
   41.13          this.exceptionName = exceptionName;
   41.14      }
   41.15 @@ -60,7 +60,7 @@
   41.16       * 
   41.17       * @return the exceptionName node
   41.18       */
   41.19 -    public String getExceptionName() {
   41.20 +    public Expression getExceptionName() {
   41.21          return exceptionName;
   41.22      }
   41.23  
    42.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    42.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/Range.java	Mon Oct 15 23:38:26 2012 +0200
    42.3 @@ -0,0 +1,86 @@
    42.4 +/*
    42.5 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
    42.6 + * 
    42.7 + * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
    42.8 + * 
    42.9 + * The contents of this file are subject to the terms of either the GNU
   42.10 + * General Public License Version 2 only ("GPL") or the Common
   42.11 + * Development and Distribution License("CDDL") (collectively, the
   42.12 + * "License"). You may not use this file except in compliance with the
   42.13 + * License. You can obtain a copy of the License at
   42.14 + * http://www.netbeans.org/cddl-gplv2.html
   42.15 + * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
   42.16 + * specific language governing permissions and limitations under the
   42.17 + * License.  When distributing the software, include this License Header
   42.18 + * Notice in each file and include the License file at
   42.19 + * nbbuild/licenses/CDDL-GPL-2-CP.  Sun designates this
   42.20 + * particular file as subject to the "Classpath" exception as provided
   42.21 + * by Sun in the GPL Version 2 section of the License file that
   42.22 + * accompanied this code. If applicable, add the following below the
   42.23 + * License Header, with the fields enclosed by brackets [] replaced by
   42.24 + * your own identifying information:
   42.25 + * "Portions Copyrighted [year] [name of copyright owner]"
   42.26 + * 
   42.27 + * If you wish your version of this file to be governed by only the CDDL
   42.28 + * or only the GPL Version 2, indicate your decision by adding
   42.29 + * "[Contributor] elects to include this software in this distribution
   42.30 + * under the [CDDL or GPL Version 2] license." If you do not indicate a
   42.31 + * single choice of license, a recipient has the option to distribute
   42.32 + * your version of this file under either the CDDL, the GPL Version 2 or
   42.33 + * to extend the choice of license to its licensees as provided above.
   42.34 + * However, if you add GPL Version 2 code and therefore, elected the GPL
   42.35 + * Version 2 license, then the option applies only if the new code is
   42.36 + * made subject to such option by the copyright holder.
   42.37 + * 
   42.38 + * Contributor(s):
   42.39 + * 
   42.40 + * Portions Copyrighted 2008 Sun Microsystems, Inc.
   42.41 + */
   42.42 +package org.netbeans.modules.ada.editor.ast.nodes;
   42.43 +
   42.44 +import org.netbeans.modules.ada.editor.ast.nodes.visitors.Visitor;
   42.45 +
   42.46 +/**
   42.47 + * 
   42.48 + * Represents an range expression
   42.49 + * <pre>e.g.<pre>
   42.50 + */
   42.51 +public class Range extends Expression {
   42.52 +
   42.53 +    private Expression left;
   42.54 +    private Expression right;
   42.55 +
   42.56 +    public Range(int start, int end, Expression left, Expression right) {
   42.57 +        super(start, end);
   42.58 +
   42.59 +        if (right == null || left == null ) {
   42.60 +            throw new IllegalArgumentException();
   42.61 +        }
   42.62 +
   42.63 +        this.left = left;
   42.64 +        this.right = right;
   42.65 +    }
   42.66 +
   42.67 +    /**
   42.68 +     * Returns the left operand of this range expression.
   42.69 +     * 
   42.70 +     * @return the left operand node
   42.71 +     */
   42.72 +    public Expression getLeft() {
   42.73 +        return this.left;
   42.74 +    }
   42.75 +
   42.76 +    /**
   42.77 +     * Returns the right operand of this range expression.
   42.78 +     * 
   42.79 +     * @return the right operand node
   42.80 +     */
   42.81 +    public Expression getRight() {
   42.82 +        return this.right;
   42.83 +    }
   42.84 +    
   42.85 +    @Override
   42.86 +    public void accept(Visitor visitor) {
   42.87 +        visitor.visit(this);
   42.88 +    }
   42.89 +}
    43.1 --- a/ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/Reference.java	Tue Oct 02 21:55:21 2012 -0400
    43.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/Reference.java	Mon Oct 15 23:38:26 2012 +0200
    43.3 @@ -59,7 +59,7 @@
    43.4          this.expression = expression;
    43.5      }
    43.6  
    43.7 -    public Reference(int start, int end, VariableBase variable) {
    43.8 +    public Reference(int start, int end, NameBase variable) {
    43.9          this(start, end, (Expression)variable);
   43.10      }
   43.11  
    44.1 --- a/ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/Scalar.java	Tue Oct 02 21:55:21 2012 -0400
    44.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/Scalar.java	Mon Oct 15 23:38:26 2012 +0200
    44.3 @@ -54,20 +54,9 @@
    44.4          REAL, // 'real'
    44.5          STRING, // 'string'
    44.6          UNKNOWN, // unknown scalar in quote expression
    44.7 -        SYSTEM // system scalars (__CLASS__ / ...)
    44.8 -                
    44.9 +        SYSTEM // (NULL, etc.)
   44.10      }
   44.11 -    // 'int'
   44.12 -    //public static final int TYPE_INT = 0;
   44.13 -    // 'real'
   44.14 -    //public static final int TYPE_REAL = 1;
   44.15 -    // 'string'
   44.16 -    //public static final int TYPE_STRING = 2;
   44.17 -    // unknown scalar in quote expression
   44.18 -    //public static final int TYPE_UNKNOWN = 3;
   44.19 -    // system scalars (__CLASS__ / ...)
   44.20 -    //public static final int TYPE_SYSTEM = 4;
   44.21 -    
   44.22 +
   44.23      private String stringValue;
   44.24      private Type scalarType;
   44.25  
    45.1 --- a/ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/SubprogramBody.java	Tue Oct 02 21:55:21 2012 -0400
    45.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/SubprogramBody.java	Mon Oct 15 23:38:26 2012 +0200
    45.3 @@ -67,14 +67,14 @@
    45.4   */
    45.5  public class SubprogramBody extends Statement {
    45.6  
    45.7 -	private SubprogramSpecification subprogramSpecification;
    45.8 -	private Identifier subprogramNameEnd;
    45.9 +    private SubprogramSpecification subprogramSpecification;
   45.10 +    private Identifier subprogramNameEnd;
   45.11      private Block declarations;
   45.12      private Block body;
   45.13  
   45.14      public SubprogramBody(int start, int end, SubprogramSpecification subprogramSpecification, Block declarations, Block body, Identifier subprogramNameEnd) {
   45.15          super(start, end);
   45.16 -		this.subprogramSpecification = subprogramSpecification;
   45.17 +        this.subprogramSpecification = subprogramSpecification;
   45.18          this.declarations = declarations;
   45.19          this.body = body;
   45.20          this.subprogramNameEnd = subprogramNameEnd;
   45.21 @@ -98,11 +98,11 @@
   45.22          return body;
   45.23      }
   45.24  
   45.25 -	public SubprogramSpecification getSubprogramSpecification() {
   45.26 -		return subprogramSpecification;
   45.27 -	}
   45.28 +    public SubprogramSpecification getSubprogramSpecification() {
   45.29 +        return subprogramSpecification;
   45.30 +    }
   45.31  
   45.32 -	public Identifier getSubprogramNameEnd() {
   45.33 +    public Identifier getSubprogramNameEnd() {
   45.34          return subprogramNameEnd;
   45.35      }
   45.36  
    46.1 --- a/ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/SubprogramSpecification.java	Tue Oct 02 21:55:21 2012 -0400
    46.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/SubprogramSpecification.java	Mon Oct 15 23:38:26 2012 +0200
    46.3 @@ -39,6 +39,7 @@
    46.4  package org.netbeans.modules.ada.editor.ast.nodes;
    46.5  
    46.6  import java.util.ArrayList;
    46.7 +import java.util.Arrays;
    46.8  import java.util.List;
    46.9  import org.netbeans.modules.ada.editor.ast.nodes.visitors.Visitor;
   46.10  
   46.11 @@ -66,18 +67,16 @@
   46.12          super(start, end);
   46.13  
   46.14          this.subprogramName = subprogramName;
   46.15 -        for (FormalParameter formalParameter : formalParameters) {
   46.16 -            this.formalParameters.add(formalParameter);
   46.17 -        }
   46.18 +        this.formalParameters.addAll(Arrays.asList(formalParameters));
   46.19          this.subtypeReturn = subtypeReturn;
   46.20      }
   46.21  
   46.22      public SubprogramSpecification(int start, int end, Identifier subprogramName, List<FormalParameter> formalParameters) {
   46.23 -        this(start, end, subprogramName, (FormalParameter[]) formalParameters.toArray(new FormalParameter[formalParameters.size()]), null);
   46.24 +        this(start, end, subprogramName, formalParameters.toArray(new FormalParameter[formalParameters.size()]), null);
   46.25      }
   46.26  
   46.27      public SubprogramSpecification(int start, int end, Identifier subprogramName, List<FormalParameter> formalParameters, Identifier subtypeReturn) {
   46.28 -        this(start, end, subprogramName, (FormalParameter[]) formalParameters.toArray(new FormalParameter[formalParameters.size()]), subtypeReturn);
   46.29 +        this(start, end, subprogramName, formalParameters.toArray(new FormalParameter[formalParameters.size()]), subtypeReturn);
   46.30      }
   46.31  
   46.32      public SubprogramSpecification(int start, int end, Identifier subprogramName) {
    47.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    47.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/TypeAccess.java	Mon Oct 15 23:38:26 2012 +0200
    47.3 @@ -0,0 +1,78 @@
    47.4 +/*
    47.5 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
    47.6 + * 
    47.7 + * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
    47.8 + * 
    47.9 + * The contents of this file are subject to the terms of either the GNU
   47.10 + * General Public License Version 2 only ("GPL") or the Common
   47.11 + * Development and Distribution License("CDDL") (collectively, the
   47.12 + * "License"). You may not use this file except in compliance with the
   47.13 + * License. You can obtain a copy of the License at
   47.14 + * http://www.netbeans.org/cddl-gplv2.html
   47.15 + * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
   47.16 + * specific language governing permissions and limitations under the
   47.17 + * License.  When distributing the software, include this License Header
   47.18 + * Notice in each file and include the License file at
   47.19 + * nbbuild/licenses/CDDL-GPL-2-CP.  Sun designates this
   47.20 + * particular file as subject to the "Classpath" exception as provided
   47.21 + * by Sun in the GPL Version 2 section of the License file that
   47.22 + * accompanied this code. If applicable, add the following below the
   47.23 + * License Header, with the fields enclosed by brackets [] replaced by
   47.24 + * your own identifying information:
   47.25 + * "Portions Copyrighted [year] [name of copyright owner]"
   47.26 + * 
   47.27 + * If you wish your version of this file to be governed by only the CDDL
   47.28 + * or only the GPL Version 2, indicate your decision by adding
   47.29 + * "[Contributor] elects to include this software in this distribution
   47.30 + * under the [CDDL or GPL Version 2] license." If you do not indicate a
   47.31 + * single choice of license, a recipient has the option to distribute
   47.32 + * your version of this file under either the CDDL, the GPL Version 2 or
   47.33 + * to extend the choice of license to its licensees as provided above.
   47.34 + * However, if you add GPL Version 2 code and therefore, elected the GPL
   47.35 + * Version 2 license, then the option applies only if the new code is
   47.36 + * made subject to such option by the copyright holder.
   47.37 + * 
   47.38 + * Contributor(s):
   47.39 + * 
   47.40 + * Portions Copyrighted 2008 Sun Microsystems, Inc.
   47.41 + */
   47.42 +package org.netbeans.modules.ada.editor.ast.nodes;
   47.43 +
   47.44 +import org.netbeans.modules.ada.editor.ast.nodes.visitors.Visitor;
   47.45 +
   47.46 +/**
   47.47 + * Represents a field access
   47.48 + * <pre>e.g.<pre>
   47.49 + *
   47.50 + * MyPackage.Foo
   47.51 + */
   47.52 +public class TypeAccess extends Dispatch {
   47.53 +
   47.54 +    private TypeName field;
   47.55 +
   47.56 +    public TypeAccess(int start, int end, NameBase dispatcher, TypeName field) {
   47.57 +        super(start, end, dispatcher);
   47.58 +        this.field = field;
   47.59 +    }
   47.60 +
   47.61 +    /**
   47.62 +     * Return the field component of this field access
   47.63 +     * 
   47.64 +     * @return the field component of this field access
   47.65 +     */
   47.66 +    public TypeName getField() {
   47.67 +        return field;
   47.68 +    }
   47.69 +
   47.70 +    /**
   47.71 +     * see {@link #getField()}
   47.72 +     */
   47.73 +    public NameBase getMember() {
   47.74 +        return getField();
   47.75 +    }
   47.76 +    
   47.77 +    @Override
   47.78 +    public void accept(Visitor visitor) {
   47.79 +        visitor.visit(this);
   47.80 +    }
   47.81 +}
    48.1 --- a/ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/TypeName.java	Tue Oct 02 21:55:21 2012 -0400
    48.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/TypeName.java	Mon Oct 15 23:38:26 2012 +0200
    48.3 @@ -40,7 +40,6 @@
    48.4  package org.netbeans.modules.ada.editor.ast.nodes;
    48.5  
    48.6  import org.netbeans.modules.ada.editor.ast.nodes.visitors.Visitor;
    48.7 -import org.netbeans.modules.ada.editor.ast.ASTNode;
    48.8  
    48.9  /**
   48.10   * Holds a type name. 
   48.11 @@ -49,14 +48,24 @@
   48.12   *
   48.13   * @author Andrea Lucarelli
   48.14   */
   48.15 -public class TypeName extends ASTNode {
   48.16 +public class TypeName extends NameBase {
   48.17  
   48.18      private Identifier typeName;
   48.19 +    private String attributeId;
   48.20 +    private boolean isBaseType = false;
   48.21  
   48.22      public TypeName(int start, int end, Identifier typeName) {
   48.23          super(start, end);
   48.24          assert (typeName != null);
   48.25          this.typeName = typeName;
   48.26 +
   48.27 +        if (typeName.getName().equalsIgnoreCase("boolean") ||
   48.28 +            typeName.getName().equalsIgnoreCase("character") ||
   48.29 +            typeName.getName().equalsIgnoreCase("float") ||
   48.30 +            typeName.getName().equalsIgnoreCase("integer") ||
   48.31 +            typeName.getName().equalsIgnoreCase("wide_character")) {
   48.32 +            this.isBaseType = true;
   48.33 +        }
   48.34      }
   48.35  
   48.36      /**
   48.37 @@ -67,6 +76,18 @@
   48.38      public Identifier getTypeName() {
   48.39          return this.typeName;
   48.40      }
   48.41 +
   48.42 +    public boolean isIsBaseType() {
   48.43 +        return isBaseType;
   48.44 +    }
   48.45 +
   48.46 +    public String getAttributeId() {
   48.47 +        return attributeId;
   48.48 +    }
   48.49 +
   48.50 +    public void setAttributeId(String attributeId) {
   48.51 +        this.attributeId = attributeId;
   48.52 +    }
   48.53      
   48.54      @Override
   48.55      public void accept(Visitor visitor) {
    49.1 --- a/ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/UnaryOperation.java	Tue Oct 02 21:55:21 2012 -0400
    49.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/UnaryOperation.java	Mon Oct 15 23:38:26 2012 +0200
    49.3 @@ -52,7 +52,9 @@
    49.4      public enum Operator {
    49.5          PLUS, // '+'
    49.6          MINUS, // '-'
    49.7 -        AMP // '&'
    49.8 +        AMP, // '&'
    49.9 +        NOT, // 'not'
   49.10 +        ABS // 'abs'
   49.11      }
   49.12      
   49.13      private Expression expression;
    50.1 --- a/ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/Use.java	Tue Oct 02 21:55:21 2012 -0400
    50.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/Use.java	Mon Oct 15 23:38:26 2012 +0200
    50.3 @@ -54,9 +54,9 @@
    50.4   */
    50.5  public class Use extends Statement {
    50.6      
    50.7 -    private final ArrayList<Identifier> packages = new ArrayList<Identifier>();
    50.8 +    private final ArrayList<PackageName> packages = new ArrayList<PackageName>();
    50.9  
   50.10 -    public Use(int start, int end, List<Identifier> packages) {
   50.11 +    public Use(int start, int end, List<PackageName> packages) {
   50.12          super(start, end);
   50.13  
   50.14          this.packages.addAll(packages);
   50.15 @@ -68,7 +68,7 @@
   50.16       * 
   50.17       * @return the list of packages node
   50.18       */
   50.19 -    public List<Identifier> getPackages() {
   50.20 +    public List<PackageName> getPackages() {
   50.21          return packages;
   50.22      }
   50.23  
    51.1 --- a/ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/Variable.java	Tue Oct 02 21:55:21 2012 -0400
    51.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/Variable.java	Mon Oct 15 23:38:26 2012 +0200
    51.3 @@ -36,7 +36,6 @@
    51.4   *
    51.5   * Portions Copyrighted 2008 Sun Microsystems, Inc.
    51.6   */
    51.7 -
    51.8  package org.netbeans.modules.ada.editor.ast.nodes;
    51.9  
   51.10  import org.netbeans.modules.ada.editor.ast.nodes.visitors.Visitor;
   51.11 @@ -55,7 +54,7 @@
   51.12   *
   51.13   * @author Andrea Lucarelli
   51.14   */
   51.15 -public class Variable extends VariableBase {
   51.16 +public class Variable extends NameBase {
   51.17  
   51.18      public enum Kind {
   51.19          DEFAULT,
   51.20 @@ -63,10 +62,9 @@
   51.21          ALIASED,
   51.22          ALIASED_CONSTANT,
   51.23      }
   51.24 -
   51.25      private Identifier name;
   51.26      private Kind variableKind;
   51.27 -	private TypeName variableType;
   51.28 +    private TypeName variableType;
   51.29  
   51.30      public Variable(int start, int end, Identifier variableName, Variable.Kind kind, TypeName type) {
   51.31          super(start, end);
   51.32 @@ -75,13 +73,13 @@
   51.33          this.variableType = type;
   51.34      }
   51.35  
   51.36 -	public Variable(int start, int end, Identifier variableName, Variable.Kind kind) {
   51.37 -		this(start, end, variableName, kind, null);
   51.38 -	}
   51.39 +    public Variable(int start, int end, Identifier variableName, Variable.Kind kind) {
   51.40 +        this(start, end, variableName, kind, null);
   51.41 +    }
   51.42  
   51.43 -	public Variable(int start, int end, Identifier variableName) {
   51.44 -		this(start, end, variableName, Kind.DEFAULT, null);
   51.45 -	}
   51.46 +    public Variable(int start, int end, Identifier variableName) {
   51.47 +        this(start, end, variableName, Kind.DEFAULT, null);
   51.48 +    }
   51.49  
   51.50      /**
   51.51       * Returns the name (Identifier) of this variable
   51.52 @@ -92,7 +90,7 @@
   51.53          return this.name;
   51.54      }
   51.55  
   51.56 -	/**
   51.57 +    /**
   51.58       * Returns the type of this variable
   51.59       * 
   51.60       * @return the type node
   51.61 @@ -101,6 +99,16 @@
   51.62          return this.variableType;
   51.63      }
   51.64  
   51.65 +    /**
   51.66 +     * Returns the kind of this variable
   51.67 +     *
   51.68 +     * @return the kind node
   51.69 +     */
   51.70 +    public Kind getVariableKind() {
   51.71 +        return variableKind;
   51.72 +    }
   51.73 +    
   51.74 +
   51.75      @Override
   51.76      public void accept(Visitor visitor) {
   51.77          visitor.visit(this);
    52.1 --- a/ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/visitors/DefaultTreePathVisitor.java	Tue Oct 02 21:55:21 2012 -0400
    52.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/visitors/DefaultTreePathVisitor.java	Mon Oct 15 23:38:26 2012 +0200
    52.3 @@ -59,6 +59,7 @@
    52.4  import org.netbeans.modules.ada.editor.ast.nodes.GotoStatement;
    52.5  import org.netbeans.modules.ada.editor.ast.nodes.Identifier;
    52.6  import org.netbeans.modules.ada.editor.ast.nodes.IfStatement;
    52.7 +import org.netbeans.modules.ada.editor.ast.nodes.InfixExpression;
    52.8  import org.netbeans.modules.ada.editor.ast.nodes.LoopStatement;
    52.9  import org.netbeans.modules.ada.editor.ast.nodes.MethodDeclaration;
   52.10  import org.netbeans.modules.ada.editor.ast.nodes.NullStatement;
   52.11 @@ -70,6 +71,7 @@
   52.12  import org.netbeans.modules.ada.editor.ast.nodes.Program;
   52.13  import org.netbeans.modules.ada.editor.ast.nodes.QualifiedExpression;
   52.14  import org.netbeans.modules.ada.editor.ast.nodes.RaiseStatement;
   52.15 +import org.netbeans.modules.ada.editor.ast.nodes.Range;
   52.16  import org.netbeans.modules.ada.editor.ast.nodes.Reference;
   52.17  import org.netbeans.modules.ada.editor.ast.nodes.ReturnStatement;
   52.18  import org.netbeans.modules.ada.editor.ast.nodes.Scalar;
   52.19 @@ -115,6 +117,13 @@
   52.20      }
   52.21  
   52.22      @Override
   52.23 +    public void visit(ASTNode node) {
   52.24 +        path.addFirst(node);
   52.25 +        super.visit(node);
   52.26 +        path.removeFirst();
   52.27 +    }
   52.28 +
   52.29 +    @Override
   52.30      public void visit(AbortStatement node) {
   52.31          path.addFirst(node);
   52.32          super.visit(node);
   52.33 @@ -143,6 +152,27 @@
   52.34      }
   52.35  
   52.36      @Override
   52.37 +    public void visit(BlockStatement node) {
   52.38 +        path.addFirst(node);
   52.39 +        super.visit(node);
   52.40 +        path.removeFirst();
   52.41 +    }
   52.42 +
   52.43 +    @Override
   52.44 +    public void visit(CaseStatement node) {
   52.45 +        path.addFirst(node);
   52.46 +        super.visit(node);
   52.47 +        path.removeFirst();
   52.48 +    }
   52.49 +
   52.50 +    @Override
   52.51 +    public void visit(CaseWhen node) {
   52.52 +        path.addFirst(node);
   52.53 +        super.visit(node);
   52.54 +        path.removeFirst();
   52.55 +    }
   52.56 +
   52.57 +    @Override
   52.58      public void visit(CodeStatement node) {
   52.59          path.addFirst(node);
   52.60          super.visit(node);
   52.61 @@ -199,6 +229,20 @@
   52.62      }
   52.63  
   52.64      @Override
   52.65 +    public void visit(IfStatement node) {
   52.66 +        path.addFirst(node);
   52.67 +        super.visit(node);
   52.68 +        path.removeFirst();
   52.69 +    }
   52.70 +
   52.71 +    @Override
   52.72 +    public void visit(InfixExpression node) {
   52.73 +        path.addFirst(node);
   52.74 +        super.visit(node);
   52.75 +        path.removeFirst();
   52.76 +    }
   52.77 +
   52.78 +    @Override
   52.79      public void visit(LoopStatement node) {
   52.80          path.addFirst(node);
   52.81          super.visit(node);
   52.82 @@ -241,6 +285,13 @@
   52.83      }
   52.84  
   52.85      @Override
   52.86 +    public void visit(PackageRenames node) {
   52.87 +        path.addFirst(node);
   52.88 +        super.visit(node);
   52.89 +        path.removeFirst();
   52.90 +    }
   52.91 +
   52.92 +    @Override
   52.93      public void visit(PackageSpecification node) {
   52.94          path.addFirst(node);
   52.95          super.visit(node);
   52.96 @@ -262,6 +313,13 @@
   52.97      }
   52.98  
   52.99      @Override
  52.100 +    public void visit(Range node) {
  52.101 +        path.addFirst(node);
  52.102 +        super.visit(node);
  52.103 +        path.removeFirst();
  52.104 +    }
  52.105 +
  52.106 +    @Override
  52.107      public void visit(RaiseStatement node) {
  52.108          path.addFirst(node);
  52.109          super.visit(node);
  52.110 @@ -360,48 +418,6 @@
  52.111      }
  52.112  
  52.113      @Override
  52.114 -    public void visit(BlockStatement node) {
  52.115 -        path.addFirst(node);
  52.116 -        super.visit(node);
  52.117 -        path.removeFirst();
  52.118 -    }
  52.119 -
  52.120 -    @Override
  52.121 -    public void visit(CaseStatement node) {
  52.122 -        path.addFirst(node);
  52.123 -        super.visit(node);
  52.124 -        path.removeFirst();
  52.125 -    }
  52.126 -
  52.127 -    @Override
  52.128 -    public void visit(CaseWhen node) {
  52.129 -        path.addFirst(node);
  52.130 -        super.visit(node);
  52.131 -        path.removeFirst();
  52.132 -    }
  52.133 -
  52.134 -    @Override
  52.135 -    public void visit(IfStatement node) {
  52.136 -        path.addFirst(node);
  52.137 -        super.visit(node);
  52.138 -        path.removeFirst();
  52.139 -    }
  52.140 -
  52.141 -    @Override
  52.142 -    public void visit(PackageRenames node) {
  52.143 -        path.addFirst(node);
  52.144 -        super.visit(node);
  52.145 -        path.removeFirst();
  52.146 -    }
  52.147 -
  52.148 -    @Override
  52.149 -    public void visit(ASTNode node) {
  52.150 -        path.addFirst(node);
  52.151 -        super.visit(node);
  52.152 -        path.removeFirst();
  52.153 -    }
  52.154 -
  52.155 -    @Override
  52.156      public void visit(UnaryOperation node) {
  52.157          path.addFirst(node);
  52.158          super.visit(node);
    53.1 --- a/ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/visitors/DefaultVisitor.java	Tue Oct 02 21:55:21 2012 -0400
    53.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/visitors/DefaultVisitor.java	Mon Oct 15 23:38:26 2012 +0200
    53.3 @@ -56,6 +56,7 @@
    53.4  import org.netbeans.modules.ada.editor.ast.nodes.GotoStatement;
    53.5  import org.netbeans.modules.ada.editor.ast.nodes.Identifier;
    53.6  import org.netbeans.modules.ada.editor.ast.nodes.IfStatement;
    53.7 +import org.netbeans.modules.ada.editor.ast.nodes.InfixExpression;
    53.8  import org.netbeans.modules.ada.editor.ast.nodes.LoopStatement;
    53.9  import org.netbeans.modules.ada.editor.ast.nodes.MethodDeclaration;
   53.10  import org.netbeans.modules.ada.editor.ast.nodes.NullStatement;
   53.11 @@ -67,6 +68,7 @@
   53.12  import org.netbeans.modules.ada.editor.ast.nodes.Program;
   53.13  import org.netbeans.modules.ada.editor.ast.nodes.QualifiedExpression;
   53.14  import org.netbeans.modules.ada.editor.ast.nodes.RaiseStatement;
   53.15 +import org.netbeans.modules.ada.editor.ast.nodes.Range;
   53.16  import org.netbeans.modules.ada.editor.ast.nodes.Reference;
   53.17  import org.netbeans.modules.ada.editor.ast.nodes.ReturnStatement;
   53.18  import org.netbeans.modules.ada.editor.ast.nodes.Scalar;
   53.19 @@ -127,6 +129,22 @@
   53.20          scan(node.getStatements());
   53.21      }
   53.22  
   53.23 +    public void visit(BlockStatement node) {
   53.24 +        scan(node.getLabel());
   53.25 +        scan(node.getDeclarations());
   53.26 +        scan(node.getBody());
   53.27 +    }
   53.28 +
   53.29 +    public void visit(CaseStatement node) {
   53.30 +        scan(node.getExpression());
   53.31 +        scan(node.getBody());
   53.32 +    }
   53.33 +
   53.34 +    public void visit(CaseWhen node) {
   53.35 +        scan(node.getValue());
   53.36 +        scan(node.getActions());
   53.37 +    }
   53.38 +
   53.39      public void visit(CodeStatement node) {
   53.40          scan(node.getExpression());
   53.41      }
   53.42 @@ -158,6 +176,17 @@
   53.43      public void visit(Identifier node) {
   53.44      }
   53.45  
   53.46 +    public void visit(IfStatement node) {
   53.47 +        scan(node.getCondition());
   53.48 +        scan(node.getTrueStatement());
   53.49 +        scan(node.getFalseStatement());
   53.50 +    }
   53.51 +
   53.52 +    public void visit(InfixExpression node) {
   53.53 +        scan(node.getLeft());
   53.54 +        scan(node.getRight());
   53.55 +    }
   53.56 +
   53.57      public void visit(LoopStatement node) {
   53.58          scan(node.getCondition());
   53.59          scan(node.getBody());
   53.60 @@ -193,6 +222,11 @@
   53.61          scan(node.getBody());
   53.62      }
   53.63  
   53.64 +    public void visit(PackageRenames node) {
   53.65 +        scan(node.getName());
   53.66 +        scan(node.getPackageRenames());
   53.67 +    }
   53.68 +
   53.69      public void visit(Program node) {
   53.70          scan(node.getStatements());
   53.71      }
   53.72 @@ -202,6 +236,11 @@
   53.73          scan(node.getExpression());
   53.74      }
   53.75  
   53.76 +    public void visit(Range node) {
   53.77 +        scan(node.getLeft());
   53.78 +        scan(node.getRight());
   53.79 +    }
   53.80 +
   53.81      public void visit(Reference node) {
   53.82          scan(node.getExpression());
   53.83      }
   53.84 @@ -223,7 +262,7 @@
   53.85          scan(node.getParentType());
   53.86      }
   53.87  
   53.88 -	public void visit(TaskName node) {
   53.89 +    public void visit(TaskName node) {
   53.90          scan(node.getTaskName());
   53.91      }
   53.92  
   53.93 @@ -263,33 +302,6 @@
   53.94          scan(node.getPackages());
   53.95      }
   53.96  
   53.97 -    public void visit(BlockStatement node) {
   53.98 -        scan(node.getLabel());
   53.99 -        scan(node.getDeclarations());
  53.100 -        scan(node.getBody());
  53.101 -    }
  53.102 -
  53.103 -    public void visit(CaseStatement node) {
  53.104 -        scan(node.getExpression());
  53.105 -        scan(node.getBody());
  53.106 -    }
  53.107 -
  53.108 -    public void visit(CaseWhen node) {
  53.109 -        scan(node.getValue());
  53.110 -        scan(node.getActions());
  53.111 -    }
  53.112 -
  53.113 -    public void visit(IfStatement node) {
  53.114 -        scan(node.getCondition());
  53.115 -        scan(node.getTrueStatement());
  53.116 -        scan(node.getFalseStatement());
  53.117 -    }
  53.118 -
  53.119 -    public void visit(PackageRenames node) {
  53.120 -        scan(node.getName());
  53.121 -        scan(node.getPackageRenames());
  53.122 -    }
  53.123 -
  53.124      public void visit(UnaryOperation node) {
  53.125          scan(node.getExpression());
  53.126      }
    54.1 --- a/ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/visitors/Visitor.java	Tue Oct 02 21:55:21 2012 -0400
    54.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/ast/nodes/visitors/Visitor.java	Mon Oct 15 23:38:26 2012 +0200
    54.3 @@ -62,6 +62,7 @@
    54.4  import org.netbeans.modules.ada.editor.ast.nodes.FormalParameter;
    54.5  import org.netbeans.modules.ada.editor.ast.nodes.GotoStatement;
    54.6  import org.netbeans.modules.ada.editor.ast.nodes.IfStatement;
    54.7 +import org.netbeans.modules.ada.editor.ast.nodes.InfixExpression;
    54.8  import org.netbeans.modules.ada.editor.ast.nodes.LoopStatement;
    54.9  import org.netbeans.modules.ada.editor.ast.nodes.MethodDeclaration;
   54.10  import org.netbeans.modules.ada.editor.ast.nodes.NullStatement;
   54.11 @@ -70,6 +71,7 @@
   54.12  import org.netbeans.modules.ada.editor.ast.nodes.PackageRenames;
   54.13  import org.netbeans.modules.ada.editor.ast.nodes.QualifiedExpression;
   54.14  import org.netbeans.modules.ada.editor.ast.nodes.RaiseStatement;
   54.15 +import org.netbeans.modules.ada.editor.ast.nodes.Range;
   54.16  import org.netbeans.modules.ada.editor.ast.nodes.ReturnStatement;
   54.17  import org.netbeans.modules.ada.editor.ast.nodes.Scalar;
   54.18  import org.netbeans.modules.ada.editor.ast.nodes.SingleFieldDeclaration;
   54.19 @@ -94,10 +96,12 @@
   54.20  
   54.21      public void visit(AbortStatement node);
   54.22  
   54.23 -	public void visit(ArrayAccess arrayAccess);
   54.24 +    public void visit(ArrayAccess arrayAccess);
   54.25  
   54.26      public void visit(Assignment node);
   54.27  
   54.28 +    public void visit(Block node);
   54.29 +
   54.30      public void visit(BlockStatement node);
   54.31  
   54.32      public void visit(CaseStatement node);
   54.33 @@ -114,17 +118,19 @@
   54.34  
   54.35      public void visit(FieldsDeclaration node);
   54.36  
   54.37 -	public void visit(FormalParameter node);
   54.38 +    public void visit(FormalParameter node);
   54.39  
   54.40      public void visit(GotoStatement node);
   54.41  
   54.42      public void visit(Identifier node);
   54.43  
   54.44 +    public void visit(InfixExpression infixExpression);
   54.45 +
   54.46      public void visit(IfStatement node);
   54.47  
   54.48      public void visit(LoopStatement node);
   54.49  
   54.50 -	public void visit(MethodDeclaration node);
   54.51 +    public void visit(MethodDeclaration node);
   54.52  
   54.53      public void visit(NullStatement node);
   54.54  
   54.55 @@ -132,7 +138,7 @@
   54.56  
   54.57      public void visit(PackageBody node);
   54.58  
   54.59 -	public void visit(PackageInstanceCreation node);
   54.60 +    public void visit(PackageInstanceCreation node);
   54.61  
   54.62      public void visit(PackageName node);
   54.63  
   54.64 @@ -142,19 +148,21 @@
   54.65  
   54.66      public void visit(QualifiedExpression node);
   54.67  
   54.68 -	public void visit(Scalar node);
   54.69 +    public void visit(Scalar node);
   54.70  
   54.71 -	public void visit(SubprogramBody node);
   54.72 +    public void visit(SubprogramBody node);
   54.73  
   54.74 -	public void visit(SubprogramSpecification node);
   54.75 +    public void visit(SubprogramSpecification node);
   54.76  
   54.77      public void visit(RaiseStatement node);
   54.78  
   54.79 +    public void visit(Range node);
   54.80 +
   54.81      public void visit(ReturnStatement node);
   54.82  
   54.83      public void visit(SingleFieldDeclaration node);
   54.84  
   54.85 -	public void visit(SubtypeDeclaration node);
   54.86 +    public void visit(SubtypeDeclaration node);
   54.87  
   54.88      public void visit(TaskName node);
   54.89  
   54.90 @@ -169,6 +177,4 @@
   54.91      public void visit(Use node);
   54.92  
   54.93      public void visit(UnaryOperation node);
   54.94 -
   54.95 -    public void visit(Block node);
   54.96  }
    55.1 --- a/ada.editor/src/org/netbeans/modules/ada/editor/formatter/AdaFormatter.java	Tue Oct 02 21:55:21 2012 -0400
    55.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/formatter/AdaFormatter.java	Mon Oct 15 23:38:26 2012 +0200
    55.3 @@ -449,7 +449,7 @@
    55.4                      try {
    55.5                          // Iterate in reverse order such that offsets are not affected by our edits
    55.6                          assert indents.size() == offsets.size();
    55.7 -                        org.netbeans.editor.Formatter editorFormatter = null;
    55.8 +                        //org.netbeans.editor.Formatter editorFormatter = null;
    55.9                          for (int i = indents.size() - 1; i >= 0; i--) {
   55.10                              int indent = indents.get(i);
   55.11                              int lineBegin = offsets.get(i);
   55.12 @@ -489,10 +489,10 @@
   55.13                                      assert lineBegin == Utilities.getRowStart(doc, lineBegin);
   55.14                                      context.modifyIndent(lineBegin, indent);
   55.15                                  } else {
   55.16 -                                    if (editorFormatter == null) {
   55.17 -                                         editorFormatter = doc.getFormatter();
   55.18 -                                    }
   55.19 -                                    editorFormatter.changeRowIndent(doc, lineBegin, indent);
   55.20 +//                                    if (editorFormatter == null) {
   55.21 +//                                         editorFormatter = doc.getFormatter();
   55.22 +//                                    }
   55.23 +//                                    editorFormatter.changeRowIndent(doc, lineBegin, indent);
   55.24                                  }
   55.25                              }
   55.26                          }
    56.1 --- a/ada.editor/src/org/netbeans/modules/ada/editor/formatter/ui/FmtOptions.java	Tue Oct 02 21:55:21 2012 -0400
    56.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/formatter/ui/FmtOptions.java	Mon Oct 15 23:38:26 2012 +0200
    56.3 @@ -72,7 +72,6 @@
    56.4  import org.netbeans.api.editor.settings.SimpleValueNames;
    56.5  import org.netbeans.api.editor.mimelookup.MimeLookup;
    56.6  
    56.7 -import org.netbeans.editor.BaseDocument;
    56.8  import org.netbeans.modules.ada.editor.formatter.AdaFormatter;
    56.9  import org.netbeans.modules.ada.editor.AdaMimeResolver;
   56.10  import org.netbeans.spi.options.OptionsPanelController;
    57.1 --- a/ada.editor/src/org/netbeans/modules/ada/editor/formatter/ui/FmtTabsIndents.form	Tue Oct 02 21:55:21 2012 -0400
    57.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/formatter/ui/FmtTabsIndents.form	Mon Oct 15 23:38:26 2012 +0200
    57.3 @@ -1,23 +1,6 @@
    57.4 -<?xml version="1.0" encoding="UTF-8" ?>
    57.5 +<?xml version="1.1" encoding="UTF-8" ?>
    57.6  
    57.7  <Form version="1.4" maxVersion="1.4" type="org.netbeans.modules.form.forminfo.JPanelFormInfo">
    57.8 -  <NonVisualComponents>
    57.9 -    <Component class="javax.swing.JTextField" name="jTextField3">
   57.10 -      <Properties>
   57.11 -        <Property name="text" type="java.lang.String" value="jTextField3"/>
   57.12 -      </Properties>
   57.13 -    </Component>
   57.14 -    <Component class="javax.swing.JCheckBox" name="jCheckBox3">
   57.15 -      <Properties>
   57.16 -        <Property name="text" type="java.lang.String" value="jCheckBox3"/>
   57.17 -        <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
   57.18 -          <Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInfo">
   57.19 -            <EmptyBorder bottom="0" left="0" right="0" top="0"/>
   57.20 -          </Border>
   57.21 -        </Property>
   57.22 -      </Properties>
   57.23 -    </Component>
   57.24 -  </NonVisualComponents>
   57.25    <Properties>
   57.26      <Property name="name" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
   57.27        <ResourceString bundle="org/netbeans/modules/ruby/options/Bundle.properties" key="LBL_Indents" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
   57.28 @@ -30,7 +13,7 @@
   57.29      <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
   57.30      <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="true"/>
   57.31      <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="true"/>
   57.32 -    <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="2"/>
   57.33 +    <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
   57.34      <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
   57.35      <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
   57.36      <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
   57.37 @@ -39,28 +22,27 @@
   57.38    <Layout>
   57.39      <DimensionLayout dim="0">
   57.40        <Group type="103" groupAlignment="0" attributes="0">
   57.41 -          <Group type="102" alignment="0" attributes="0">
   57.42 +          <Group type="102" attributes="0">
   57.43                <Component id="continuationIndentSizeLabel" min="-2" max="-2" attributes="0"/>
   57.44 -              <EmptySpace pref="53" max="32767" attributes="0"/>
   57.45 -              <Component id="continuationIndentSizeField" min="-2" max="-2" attributes="1"/>
   57.46 +              <EmptySpace min="53" pref="53" max="53" attributes="0"/>
   57.47 +              <Component id="continuationIndentSizeField" min="-2" max="-2" attributes="0"/>
   57.48            </Group>
   57.49 -          <Group type="102" alignment="0" attributes="0">
   57.50 -              <Component id="reformatCommentsCheckBox" min="-2" max="-2" attributes="0"/>
   57.51 -              <EmptySpace max="-2" attributes="0"/>
   57.52 -          </Group>
   57.53 +          <Component id="reformatCommentsCheckBox" min="-2" max="-2" attributes="0"/>
   57.54        </Group>
   57.55      </DimensionLayout>
   57.56      <DimensionLayout dim="1">
   57.57        <Group type="103" groupAlignment="0" attributes="0">
   57.58 -          <Group type="102" alignment="0" attributes="0">
   57.59 -              <EmptySpace max="-2" attributes="0"/>
   57.60 -              <Group type="103" groupAlignment="3" attributes="0">
   57.61 -                  <Component id="continuationIndentSizeLabel" alignment="3" min="-2" max="-2" attributes="0"/>
   57.62 -                  <Component id="continuationIndentSizeField" alignment="3" min="-2" max="-2" attributes="0"/>
   57.63 +          <Group type="102" attributes="0">
   57.64 +              <EmptySpace min="11" pref="11" max="11" attributes="0"/>
   57.65 +              <Group type="103" groupAlignment="0" attributes="0">
   57.66 +                  <Group type="102" attributes="0">
   57.67 +                      <EmptySpace min="3" pref="3" max="3" attributes="0"/>
   57.68 +                      <Component id="continuationIndentSizeLabel" min="-2" max="-2" attributes="0"/>
   57.69 +                  </Group>
   57.70 +                  <Component id="continuationIndentSizeField" min="-2" max="-2" attributes="0"/>
   57.71                </Group>
   57.72 -              <EmptySpace max="-2" attributes="0"/>
   57.73 +              <EmptySpace min="2" pref="2" max="2" attributes="0"/>
   57.74                <Component id="reformatCommentsCheckBox" min="-2" max="-2" attributes="0"/>
   57.75 -              <EmptySpace pref="41" max="32767" attributes="0"/>
   57.76            </Group>
   57.77        </Group>
   57.78      </DimensionLayout>
    58.1 --- a/ada.editor/src/org/netbeans/modules/ada/editor/formatter/ui/FmtTabsIndents.java	Tue Oct 02 21:55:21 2012 -0400
    58.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/formatter/ui/FmtTabsIndents.java	Mon Oct 15 23:38:26 2012 +0200
    58.3 @@ -78,18 +78,11 @@
    58.4      // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    58.5      private void initComponents() {
    58.6  
    58.7 -        jTextField3 = new javax.swing.JTextField();
    58.8 -        jCheckBox3 = new javax.swing.JCheckBox();
    58.9          continuationIndentSizeLabel = new javax.swing.JLabel();
   58.10          continuationIndentSizeField = new javax.swing.JTextField();
   58.11          reformatCommentsCheckBox = new javax.swing.JCheckBox();
   58.12  
   58.13 -        jTextField3.setText("jTextField3");
   58.14 -
   58.15 -        org.openide.awt.Mnemonics.setLocalizedText(jCheckBox3, "jCheckBox3");
   58.16 -        jCheckBox3.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
   58.17 -
   58.18 -        setName("null");
   58.19 +        setName(org.openide.util.NbBundle.getMessage(FmtTabsIndents.class, "LBL_Indents")); // NOI18N
   58.20          setOpaque(false);
   58.21  
   58.22          org.openide.awt.Mnemonics.setLocalizedText(continuationIndentSizeLabel, org.openide.util.NbBundle.getMessage(FmtTabsIndents.class, "LBL_ContinuationIndentSize")); // NOI18N
   58.23 @@ -99,35 +92,32 @@
   58.24          org.openide.awt.Mnemonics.setLocalizedText(reformatCommentsCheckBox, org.openide.util.NbBundle.getMessage(FmtTabsIndents.class, "LBL_ReformatComments")); // NOI18N
   58.25          reformatCommentsCheckBox.setEnabled(false);
   58.26  
   58.27 -        org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(this);
   58.28 +        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
   58.29          this.setLayout(layout);
   58.30          layout.setHorizontalGroup(
   58.31 -            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
   58.32 -            .add(layout.createSequentialGroup()
   58.33 -                .add(continuationIndentSizeLabel)
   58.34 -                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 53, Short.MAX_VALUE)
   58.35 -                .add(continuationIndentSizeField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
   58.36 -            .add(layout.createSequentialGroup()
   58.37 -                .add(reformatCommentsCheckBox)
   58.38 -                .addContainerGap())
   58.39 +            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
   58.40 +            .addGroup(layout.createSequentialGroup()
   58.41 +                .addComponent(continuationIndentSizeLabel)
   58.42 +                .addGap(53, 53, 53)
   58.43 +                .addComponent(continuationIndentSizeField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
   58.44 +            .addComponent(reformatCommentsCheckBox)
   58.45          );
   58.46          layout.setVerticalGroup(
   58.47 -            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
   58.48 -            .add(layout.createSequentialGroup()
   58.49 -                .addContainerGap()
   58.50 -                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
   58.51 -                    .add(continuationIndentSizeLabel)
   58.52 -                    .add(continuationIndentSizeField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
   58.53 -                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
   58.54 -                .add(reformatCommentsCheckBox)
   58.55 -                .addContainerGap(41, Short.MAX_VALUE))
   58.56 +            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
   58.57 +            .addGroup(layout.createSequentialGroup()
   58.58 +                .addGap(11, 11, 11)
   58.59 +                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
   58.60 +                    .addGroup(layout.createSequentialGroup()
   58.61 +                        .addGap(3, 3, 3)
   58.62 +                        .addComponent(continuationIndentSizeLabel))
   58.63 +                    .addComponent(continuationIndentSizeField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
   58.64 +                .addGap(2, 2, 2)
   58.65 +                .addComponent(reformatCommentsCheckBox))
   58.66          );
   58.67      }// </editor-fold>//GEN-END:initComponents
   58.68      // Variables declaration - do not modify//GEN-BEGIN:variables
   58.69      private javax.swing.JTextField continuationIndentSizeField;
   58.70      private javax.swing.JLabel continuationIndentSizeLabel;
   58.71 -    private javax.swing.JCheckBox jCheckBox3;
   58.72 -    private javax.swing.JTextField jTextField3;
   58.73      private javax.swing.JCheckBox reformatCommentsCheckBox;
   58.74      // End of variables declaration//GEN-END:variables
   58.75  }
    59.1 --- a/ada.editor/src/org/netbeans/modules/ada/editor/indexer/AdaElement.java	Tue Oct 02 21:55:21 2012 -0400
    59.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/indexer/AdaElement.java	Mon Oct 15 23:38:26 2012 +0200
    59.3 @@ -48,8 +48,9 @@
    59.4  import org.openide.filesystems.FileObject;
    59.5  
    59.6  /**
    59.7 + * Based on org.netbeans.modules.php.editor.index (Tor Norbye)
    59.8   *
    59.9 - * @author Tor Norbye
   59.10 + * @author Andrea Lucarelli
   59.11   */
   59.12  public abstract class AdaElement implements Element {
   59.13      public abstract String getName();
    60.1 --- a/ada.editor/src/org/netbeans/modules/ada/editor/indexer/AdaIndexer.java	Tue Oct 02 21:55:21 2012 -0400
    60.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/indexer/AdaIndexer.java	Mon Oct 15 23:38:26 2012 +0200
    60.3 @@ -237,7 +237,7 @@
    60.4      private static void indexFieldsDeclaration(FieldsDeclaration fieldsDeclaration, IndexDocument document) {
    60.5          for (SingleFieldDeclaration field : fieldsDeclaration.getFields()) {
    60.6              if (field.getName().getName() instanceof Identifier) {
    60.7 -                Identifier identifier = (Identifier) field.getName().getName();
    60.8 +                Identifier identifier = field.getName().getName();
    60.9                  String signature = createFieldsDeclarationRecord(identifier.getName(), field.getStartOffset());
   60.10                  document.addPair(FIELD_FIELD, signature, false, true);
   60.11              }
   60.12 @@ -246,15 +246,15 @@
   60.13  
   60.14      private static String createFieldsDeclarationRecord(String name, int offset) {
   60.15          StringBuilder fieldSignature = new StringBuilder();
   60.16 -        fieldSignature.append(name + ";"); //NOI18N
   60.17 -        fieldSignature.append(offset + ";"); //NOI18N
   60.18 +        fieldSignature.append(name).append(";"); //NOI18N
   60.19 +        fieldSignature.append(offset).append(";"); //NOI18N
   60.20          fieldSignature.append(";"); //NOI18N
   60.21          return fieldSignature.toString();
   60.22      }
   60.23  
   60.24      private static void indexTypeDeclaration(TypeDeclaration typeDeclaration, IndexDocument document) {
   60.25          if (typeDeclaration.getTypeName() instanceof Identifier) {
   60.26 -            Identifier identifier = (Identifier) typeDeclaration.getTypeName();
   60.27 +            Identifier identifier = typeDeclaration.getTypeName();
   60.28              String signature = createTypeDeclarationRecord(identifier.getName(), typeDeclaration.getStartOffset());
   60.29              document.addPair(FIELD_FIELD, signature, false, true);
   60.30          }
   60.31 @@ -430,7 +430,7 @@
   60.32              // create a new document for each class
   60.33              IndexDocument pkgDocument = support.createDocument(indexable);
   60.34              documents.add(pkgDocument);
   60.35 -            indexPkgSpec((PackageSpecification) node, pkgDocument, root);
   60.36 +            indexPkgSpec(node, pkgDocument, root);
   60.37              List<IdentifierSignature> idSignatures = new ArrayList<IdentifierSignature>();
   60.38              for (IdentifierSignature idSign : idSignatures) {
   60.39                  identifierDocument.addPair(FIELD_IDENTIFIER_DECLARATION, idSign.getSignature(), true, true);
   60.40 @@ -443,7 +443,7 @@
   60.41              // create a new document for each class
   60.42              IndexDocument pkgDocument = support.createDocument(indexable);
   60.43              documents.add(pkgDocument);
   60.44 -            indexPkgBody((PackageBody) node, pkgDocument);
   60.45 +            indexPkgBody(node, pkgDocument);
   60.46              List<IdentifierSignature> idSignatures = new ArrayList<IdentifierSignature>();
   60.47              for (IdentifierSignature idSign : idSignatures) {
   60.48                  identifierDocument.addPair(FIELD_IDENTIFIER_DECLARATION, idSign.getSignature(), true, true);
   60.49 @@ -458,7 +458,7 @@
   60.50                  return;
   60.51              }
   60.52  
   60.53 -            indexSubprogSpec((SubprogramSpecification) node, defaultDocument, root);
   60.54 +            indexSubprogSpec(node, defaultDocument, root);
   60.55              super.visit(node);
   60.56          }
   60.57  
   60.58 @@ -469,7 +469,7 @@
   60.59                  return;
   60.60              }
   60.61  
   60.62 -            indexSubprogBody((SubprogramBody) node, defaultDocument, root);
   60.63 +            indexSubprogBody(node, defaultDocument, root);
   60.64              super.visit(node);
   60.65          }
   60.66      }
    61.1 --- a/ada.editor/src/org/netbeans/modules/ada/editor/indexer/Element.java	Tue Oct 02 21:55:21 2012 -0400
    61.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/indexer/Element.java	Mon Oct 15 23:38:26 2012 +0200
    61.3 @@ -43,7 +43,6 @@
    61.4  
    61.5  import java.util.Set;
    61.6  import org.netbeans.modules.csl.api.ElementHandle;
    61.7 -import org.netbeans.modules.csl.api.ElementKind;
    61.8  import org.netbeans.modules.csl.api.Modifier;
    61.9  
   61.10  /**
   61.11 @@ -53,6 +52,5 @@
   61.12  public interface Element extends ElementHandle {
   61.13      String getName();
   61.14      String getIn();
   61.15 -    ElementKind getKind();
   61.16      Set<Modifier> getModifiers();
   61.17  }
    62.1 --- a/ada.editor/src/org/netbeans/modules/ada/editor/lexer/Ada95ASTLexer.java	Tue Oct 02 21:55:21 2012 -0400
    62.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    62.3 @@ -1,1535 +0,0 @@
    62.4 -/* The following code was generated by JFlex 1.4.2 on 08/02/09 0.16 */
    62.5 -
    62.6 -/*
    62.7 - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
    62.8 - *
    62.9 - * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
   62.10 - *
   62.11 - * The contents of this file are subject to the terms of either the GNU
   62.12 - * General Public License Version 2 only ("GPL") or the Common
   62.13 - * Development and Distribution License("CDDL") (collectively, the
   62.14 - * "License"). You may not use this file except in compliance with the
   62.15 - * License. You can obtain a copy of the License at
   62.16 - * http://www.netbeans.org/cddl-gplv2.html
   62.17 - * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
   62.18 - * specific language governing permissions and limitations under the
   62.19 - * License.  When distributing the software, include this License Header
   62.20 - * Notice in each file and include the License file at
   62.21 - * nbbuild/licenses/CDDL-GPL-2-CP.  Sun designates this
   62.22 - * particular file as subject to the "Classpath" exception as provided
   62.23 - * by Sun in the GPL Version 2 section of the License file that
   62.24 - * accompanied this code. If applicable, add the following below the
   62.25 - * License Header, with the fields enclosed by brackets [] replaced by
   62.26 - * your own identifying information:
   62.27 - * "Portions Copyrighted [year] [name of copyright owner]"
   62.28 - *
   62.29 - * If you wish your version of this file to be governed by only the CDDL
   62.30 - * or only the GPL Version 2, indicate your decision by adding
   62.31 - * "[Contributor] elects to include this software in this distribution
   62.32 - * under the [CDDL or GPL Version 2] license." If you do not indicate a
   62.33 - * single choice of license, a recipient has the option to distribute
   62.34 - * your version of this file under either the CDDL, the GPL Version 2 or
   62.35 - * to extend the choice of license to its licensees as provided above.
   62.36 - * However, if you add GPL Version 2 code and therefore, elected the GPL
   62.37 - * Version 2 license, then the option applies only if the new code is
   62.38 - * made subject to such option by the copyright holder.
   62.39 - *
   62.40 - * Contributor(s):
   62.41 - *
   62.42 - * Portions Copyrighted 2008 Sun Microsystems, Inc.
   62.43 - */
   62.44 -package org.netbeans.modules.ada.editor.lexer;
   62.45 -
   62.46 -import java.util.LinkedList;
   62.47 -import java.util.List;
   62.48 -import org.netbeans.modules.ada.editor.AdaVersion;
   62.49 -import org.netbeans.modules.ada.editor.parser.Ada95ASTSymbols;
   62.50 -import org.netbeans.modules.ada.editor.ast.nodes.*;
   62.51 -import java_cup.runtime.*;
   62.52 -
   62.53 -
   62.54 -/**
   62.55 - * This class is a scanner generated by 
   62.56 - * <a href="http://www.jflex.de/">JFlex</a> 1.4.2
   62.57 - * on 08/02/09 0.16 from the specification file
   62.58 - * <tt>C:/hg-repo/release65/contrib/ada.editor/src/org/netbeans/modules/ada/editor/lexer/resources/Ada95ASTLexer.flex</tt>
   62.59 - */
   62.60 -public class Ada95ASTLexer implements Scanner {
   62.61 -
   62.62 -  /** This character denotes the end of file */
   62.63 -  public static final int YYEOF = -1;
   62.64 -
   62.65 -  /** initial size of the lookahead buffer */
   62.66 -  private static final int ZZ_BUFFERSIZE = 16384;
   62.67 -
   62.68 -  /** lexical states */
   62.69 -  public static final int ST_LOOKING_FOR_PROPERTY = 2;
   62.70 -  public static final int YYINITIAL = 0;
   62.71 -  public static final int ST_LINE_COMMENT = 4;
   62.72 -
   62.73 -  /**
   62.74 -   * ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l
   62.75 -   * ZZ_LEXSTATE[l+1] is the state in the DFA for the lexical state l
   62.76 -   *                  at the beginning of a line
   62.77 -   * l is of the form l = 2*k, k a non negative integer
   62.78 -   */
   62.79 -  private static final int ZZ_LEXSTATE[] = { 
   62.80 -     0,  0,  1,  1,  2, 2
   62.81 -  };
   62.82 -
   62.83 -  /** 
   62.84 -   * Translates characters to character classes
   62.85 -   */
   62.86 -  private static final String ZZ_CMAP_PACKED = 
   62.87 -    "\11\0\1\13\1\15\2\0\1\17\22\0\1\13\1\60\1\14\1\10"+
   62.88 -    "\2\0\1\46\1\16\1\47\1\50\1\51\1\5\1\52\1\6\1\7"+
   62.89 -    "\1\53\12\1\1\11\1\54\1\55\1\56\1\57\2\0\1\20\1\21"+
   62.90 -    "\1\26\1\32\1\4\1\2\1\35\1\42\1\31\1\12\1\43\1\30"+
   62.91 -    "\1\40\1\33\1\22\1\27\1\45\1\23\1\25\1\24\1\37\1\44"+
   62.92 -    "\1\41\1\36\1\34\1\12\4\0\1\3\1\0\1\20\1\21\1\26"+
   62.93 -    "\1\32\1\4\1\2\1\35\1\42\1\31\1\12\1\43\1\30\1\40"+
   62.94 -    "\1\33\1\22\1\27\1\45\1\23\1\25\1\24\1\37\1\44\1\41"+
   62.95 -    "\1\36\1\34\1\12\1\0\1\60\uff83\0";
   62.96 -
   62.97 -  /** 
   62.98 -   * Translates characters to character classes
   62.99 -   */
  62.100 -  private static final char [] ZZ_CMAP = zzUnpackCMap(ZZ_CMAP_PACKED);
  62.101 -
  62.102 -  /** 
  62.103 -   * Translates DFA states to action switch labels.
  62.104 -   */
  62.105 -  private static final int [] ZZ_ACTION = zzUnpackAction();
  62.106 -
  62.107 -  private static final String ZZ_ACTION_PACKED_0 =
  62.108 -    "\3\0\1\1\1\2\2\3\1\4\1\5\1\6\1\7"+
  62.109 -    "\1\3\1\10\1\1\1\11\21\3\1\12\1\13\1\14"+
  62.110 -    "\1\15\1\16\1\17\1\20\1\21\1\22\1\23\1\24"+
  62.111 -    "\1\25\1\26\1\27\2\30\6\0\5\3\1\31\1\32"+
  62.112 -    "\1\33\1\0\1\34\1\0\2\3\1\35\5\3\1\36"+
  62.113 -    "\1\37\20\3\1\40\1\41\1\42\1\3\1\43\13\3"+
  62.114 -    "\1\44\1\45\1\46\1\47\1\50\1\51\1\52\1\53"+
  62.115 -    "\1\0\1\54\1\0\1\2\1\0\1\2\1\0\1\55"+
  62.116 -    "\3\3\1\56\2\3\1\57\1\3\1\60\2\3\1\61"+
  62.117 -    "\1\3\1\62\3\3\1\63\3\3\1\64\26\3\1\65"+
  62.118 -    "\1\66\3\3\1\67\1\70\1\3\1\71\3\3\2\0"+
  62.119 -    "\1\72\1\3\1\73\3\3\1\74\6\3\1\75\11\3"+
  62.120 -    "\1\76\1\3\1\77\1\100\3\3\1\101\6\3\1\102"+
  62.121 -    "\4\3\1\103\1\3\1\104\1\3\1\105\1\106\1\3"+
  62.122 -    "\3\0\1\3\1\107\1\110\1\3\1\111\1\3\1\112"+
  62.123 -    "\3\3\1\113\6\3\1\114\1\115\15\3\1\116\1\117"+
  62.124 -    "\1\3\1\120\1\121\1\0\1\72\1\0\3\3\1\122"+
  62.125 -    "\1\123\1\3\1\124\1\125\1\126\4\3\1\127\1\3"+
  62.126 -    "\1\130\3\3\1\131\6\3\1\0\3\3\1\132\1\133"+
  62.127 -    "\1\134\1\135\2\3\1\136\1\3\1\137\2\3\1\140"+
  62.128 -    "\1\141\1\142\1\143\1\0\1\144\1\3\1\145\1\3"+
  62.129 -    "\1\146\1\147\2\3\1\30\1\150\1\151\1\152\1\153";
  62.130 -
  62.131 -  private static int [] zzUnpackAction() {
  62.132 -    int [] result = new int[332];
  62.133 -    int offset = 0;
  62.134 -    offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
  62.135 -    return result;
  62.136 -  }
  62.137 -
  62.138 -  private static int zzUnpackAction(String packed, int offset, int [] result) {
  62.139 -    int i = 0;       /* index in packed string  */
  62.140 -    int j = offset;  /* index in unpacked array */
  62.141 -    int l = packed.length();
  62.142 -    while (i < l) {
  62.143 -      int count = packed.charAt(i++);
  62.144 -      int value = packed.charAt(i++);
  62.145 -      do result[j++] = value; while (--count > 0);
  62.146 -    }
  62.147 -    return j;
  62.148 -  }
  62.149 -
  62.150 -
  62.151 -  /** 
  62.152 -   * Translates a state to a row index in the transition table
  62.153 -   */
  62.154 -  private static final int [] ZZ_ROWMAP = zzUnpackRowMap();
  62.155 -
  62.156 -  private static final String ZZ_ROWMAP_PACKED_0 =
  62.157 -    "\0\0\0\61\0\142\0\223\0\304\0\365\0\u0126\0\223"+
  62.158 -    "\0\u0157\0\u0188\0\u01b9\0\u01ea\0\u021b\0\u024c\0\u027d\0\u02ae"+
  62.159 -    "\0\u02df\0\u0310\0\u0341\0\u0372\0\u03a3\0\u03d4\0\u0405\0\u0436"+
  62.160 -    "\0\u0467\0\u0498\0\u04c9\0\u04fa\0\u052b\0\u055c\0\u058d\0\u05be"+
  62.161 -    "\0\223\0\223\0\223\0\u05ef\0\223\0\u0620\0\223\0\u0651"+
  62.162 -    "\0\u0682\0\u06b3\0\223\0\223\0\u06e4\0\u0715\0\223\0\u0746"+
  62.163 -    "\0\u0777\0\u07a8\0\u07d9\0\u080a\0\u083b\0\u086c\0\u089d\0\u08ce"+
  62.164 -    "\0\u08ff\0\u0930\0\u0961\0\223\0\223\0\223\0\u024c\0\u0992"+
  62.165 -    "\0\u09c3\0\u09f4\0\u0a25\0\u01ea\0\u0a56\0\u0a87\0\u0ab8\0\u0ae9"+
  62.166 -    "\0\u0b1a\0\u01ea\0\u01ea\0\u0b4b\0\u0b7c\0\u0bad\0\u0bde\0\u0c0f"+
  62.167 -    "\0\u0c40\0\u0c71\0\u0ca2\0\u0cd3\0\u0d04\0\u0d35\0\u0d66\0\u0d97"+
  62.168 -    "\0\u0dc8\0\u0df9\0\u0e2a\0\u01ea\0\u01ea\0\u01ea\0\u0e5b\0\u01ea"+
  62.169 -    "\0\u0e8c\0\u0ebd\0\u0eee\0\u0f1f\0\u0f50\0\u0f81\0\u0fb2\0\u0fe3"+
  62.170 -    "\0\u1014\0\u1045\0\u1076\0\223\0\223\0\223\0\223\0\223"+
  62.171 -    "\0\223\0\223\0\223\0\u10a7\0\223\0\u10d8\0\u1109\0\u113a"+
  62.172 -    "\0\u116b\0\u119c\0\u01ea\0\u11cd\0\u11fe\0\u122f\0\u01ea\0\u1260"+
  62.173 -    "\0\u1291\0\223\0\u12c2\0\u12f3\0\u1324\0\u1355\0\u01ea\0\u1386"+
  62.174 -    "\0\u01ea\0\u13b7\0\u13e8\0\u1419\0\u01ea\0\u144a\0\u147b\0\u14ac"+
  62.175 -    "\0\u01ea\0\u14dd\0\u150e\0\u153f\0\u1570\0\u15a1\0\u15d2\0\u1603"+
  62.176 -    "\0\u1634\0\u1665\0\u1696\0\u16c7\0\u16f8\0\u1729\0\u175a\0\u178b"+
  62.177 -    "\0\u17bc\0\u17ed\0\u181e\0\u184f\0\u1880\0\u18b1\0\u18e2\0\u01ea"+
  62.178 -    "\0\u01ea\0\u1913\0\u1944\0\u1975\0\u01ea\0\u01ea\0\u19a6\0\u01ea"+
  62.179 -    "\0\u19d7\0\u1a08\0\u1a39\0\u1a6a\0\u1a9b\0\u1acc\0\u1afd\0\u01ea"+
  62.180 -    "\0\u1b2e\0\u1b5f\0\u1b90\0\u01ea\0\u1bc1\0\u1bf2\0\u1c23\0\u1c54"+
  62.181 -    "\0\u1c85\0\u1cb6\0\u01ea\0\u1ce7\0\u1d18\0\u1d49\0\u1d7a\0\u1dab"+
  62.182 -    "\0\u1ddc\0\u1e0d\0\u1e3e\0\u1e6f\0\u01ea\0\u1ea0\0\u01ea\0\u01ea"+
  62.183 -    "\0\u1ed1\0\u1f02\0\u1f33\0\u01ea\0\u1f64\0\u1f95\0\u1fc6\0\u1ff7"+
  62.184 -    "\0\u2028\0\u2059\0\u01ea\0\u208a\0\u20bb\0\u20ec\0\u211d\0\u01ea"+
  62.185 -    "\0\u214e\0\u01ea\0\u217f\0\u01ea\0\u01ea\0\u21b0\0\u21e1\0\u2212"+
  62.186 -    "\0\u2243\0\u2274\0\u01ea\0\u01ea\0\u22a5\0\u01ea\0\u22d6\0\u01ea"+
  62.187 -    "\0\u2307\0\u2338\0\u2369\0\u01ea\0\u239a\0\u23cb\0\u23fc\0\u242d"+
  62.188 -    "\0\u245e\0\u248f\0\u01ea\0\u01ea\0\u24c0\0\u24f1\0\u2522\0\u2553"+
  62.189 -    "\0\u2584\0\u25b5\0\u25e6\0\u2617\0\u2648\0\u2679\0\u26aa\0\u26db"+
  62.190 -    "\0\u270c\0\u01ea\0\u01ea\0\u273d\0\u01ea\0\u01ea\0\u276e\0\u279f"+
  62.191 -    "\0\u27d0\0\u2801\0\u2832\0\u2863\0\u01ea\0\u01ea\0\u2894\0\u01ea"+
  62.192 -    "\0\u01ea\0\u01ea\0\u28c5\0\u28f6\0\u2927\0\u2958\0\u01ea\0\u2989"+
  62.193 -    "\0\u01ea\0\u29ba\0\u29eb\0\u2a1c\0\u01ea\0\u2a4d\0\u2a7e\0\u2aaf"+
  62.194 -    "\0\u2ae0\0\u2b11\0\u2b42\0\u2b73\0\u2ba4\0\u2bd5\0\u2c06\0\u01ea"+
  62.195 -    "\0\u01ea\0\u01ea\0\u01ea\0\u2c37\0\u2c68\0\u01ea\0\u2c99\0\u01ea"+
  62.196 -    "\0\u2cca\0\u2cfb\0\u01ea\0\u01ea\0\u01ea\0\u01ea\0\u2d2c\0\u01ea"+
  62.197 -    "\0\u2d5d\0\u01ea\0\u2d8e\0\u01ea\0\u01ea\0\u2dbf\0\u2df0\0\142"+
  62.198 -    "\0\u01ea\0\u01ea\0\u01ea\0\u01ea";
  62.199 -
  62.200 -  private static int [] zzUnpackRowMap() {
  62.201 -    int [] result = new int[332];
  62.202 -    int offset = 0;
  62.203 -    offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
  62.204 -    return result;
  62.205 -  }
  62.206 -
  62.207 -  private static int zzUnpackRowMap(String packed, int offset, int [] result) {
  62.208 -    int i = 0;  /* index in packed string  */
  62.209 -    int j = offset;  /* index in unpacked array */
  62.210 -    int l = packed.length();
  62.211 -    while (i < l) {
  62.212 -      int high = packed.charAt(i++) << 16;
  62.213 -      result[j++] = high | packed.charAt(i++);
  62.214 -    }
  62.215 -    return j;
  62.216 -  }
  62.217 -
  62.218 -  /** 
  62.219 -   * The transition table of the DFA
  62.220 -   */
  62.221 -  private static final int [] ZZ_TRANS = zzUnpackTrans();
  62.222 -
  62.223 -  private static final String ZZ_TRANS_PACKED_0 =
  62.224 -    "\1\4\1\5\1\6\1\4\1\7\1\10\1\11\1\12"+
  62.225 -    "\1\4\1\13\1\14\1\15\1\16\1\15\1\17\1\15"+
  62.226 -    "\1\20\1\21\1\22\1\23\1\24\1\25\1\26\1\27"+
  62.227 -    "\1\30\1\31\1\32\1\33\1\14\1\34\1\35\1\36"+
  62.228 -    "\1\37\1\40\4\14\1\41\1\42\1\43\1\44\1\45"+
  62.229 -    "\1\46\1\47\1\50\1\51\1\52\1\53\2\54\1\55"+
  62.230 -    "\1\54\1\55\2\54\1\56\2\54\1\55\5\54\26\55"+
  62.231 -    "\13\54\15\3\1\57\1\3\1\60\1\61\40\3\62\0"+
  62.232 -    "\1\5\1\0\1\62\1\63\2\0\1\64\2\65\50\0"+
  62.233 -    "\2\14\1\66\1\14\5\0\1\14\5\0\2\14\1\67"+
  62.234 -    "\14\14\1\70\6\14\14\0\2\14\1\66\1\14\5\0"+
  62.235 -    "\1\14\5\0\10\14\1\71\2\14\1\72\2\14\1\73"+
  62.236 -    "\7\14\21\0\1\74\61\0\1\75\127\0\1\76\3\0"+
  62.237 -    "\2\14\1\66\1\14\5\0\1\14\5\0\26\14\26\0"+
  62.238 -    "\1\15\1\0\1\15\1\0\1\15\41\0\14\77\1\100"+
  62.239 -    "\1\0\43\77\15\101\1\0\43\101\1\0\2\14\1\66"+
  62.240 -    "\1\14\5\0\1\14\5\0\1\14\1\102\1\14\1\103"+
  62.241 -    "\1\104\1\14\1\105\1\14\1\106\2\14\1\107\12\14"+
  62.242 -    "\14\0\2\14\1\66\1\110\5\0\1\14\5\0\2\14"+
  62.243 -    "\1\111\23\14\14\0\1\14\1\112\1\66\1\14\5\0"+
  62.244 -    "\1\14\5\0\3\14\1\113\1\114\12\14\1\115\6\14"+
  62.245 -    "\14\0\2\14\1\66\1\116\5\0\1\14\5\0\1\117"+
  62.246 -    "\25\14\14\0\2\14\1\66\1\120\5\0\1\14\5\0"+
  62.247 -    "\1\121\13\14\1\122\5\14\1\123\3\14\14\0\2\14"+
  62.248 -    "\1\66\1\124\5\0\1\14\5\0\17\14\1\125\6\14"+
  62.249 -    "\14\0\2\14\1\66\1\14\5\0\1\14\5\0\1\126"+
  62.250 -    "\1\14\1\127\23\14\14\0\2\14\1\66\1\14\5\0"+
  62.251 -    "\1\14\5\0\1\130\2\14\1\131\22\14\14\0\2\14"+
  62.252 -    "\1\66\1\14\5\0\1\14\5\0\2\14\1\132\6\14"+
  62.253 -    "\1\133\14\14\14\0\1\14\1\134\1\66\1\14\5\0"+
  62.254 -    "\1\14\5\0\5\14\1\135\5\14\1\136\12\14\14\0"+
  62.255 -    "\2\14\1\66\1\137\5\0\1\14\5\0\2\14\1\140"+
  62.256 -    "\23\14\14\0\2\14\1\66\1\141\5\0\1\14\5\0"+
  62.257 -    "\2\14\1\142\14\14\1\143\6\14\14\0\2\14\1\66"+
  62.258 -    "\1\144\5\0\1\14\5\0\2\14\1\145\23\14\14\0"+
  62.259 -    "\2\14\1\66\1\14\5\0\1\14\5\0\2\14\1\146"+
  62.260 -    "\23\14\14\0\2\14\1\66\1\14\5\0\1\14\5\0"+
  62.261 -    "\5\14\1\147\5\14\1\150\12\14\14\0\2\14\1\66"+
  62.262 -    "\1\14\5\0\1\14\5\0\2\14\1\151\23\14\14\0"+
  62.263 -    "\2\14\1\66\1\14\5\0\1\14\5\0\11\14\1\152"+
  62.264 -    "\10\14\1\153\3\14\64\0\1\154\65\0\1\155\57\0"+
  62.265 -    "\1\156\1\157\1\160\60\0\1\161\57\0\1\162\1\163"+
  62.266 -    "\2\0\2\55\1\164\1\55\5\0\1\55\5\0\26\55"+
  62.267 -    "\22\0\1\165\66\0\1\57\43\0\15\3\1\57\1\3"+
  62.268 -    "\1\60\1\61\12\3\1\166\25\3\1\0\1\5\60\0"+
  62.269 -    "\1\167\3\0\2\170\53\0\1\171\60\0\2\172\1\0"+
  62.270 -    "\1\172\13\0\2\172\4\0\1\172\3\0\1\172\27\0"+
  62.271 -    "\2\14\1\0\1\14\5\0\1\14\5\0\26\14\14\0"+
  62.272 -    "\2\14\1\66\1\14\5\0\1\14\5\0\3\14\1\173"+
  62.273 -    "\22\14\14\0\2\14\1\66\1\14\5\0\1\14\5\0"+
  62.274 -    "\13\14\1\174\12\14\14\0\2\14\1\66\1\14\5\0"+
  62.275 -    "\1\14\5\0\5\14\1\175\20\14\14\0\2\14\1\66"+
  62.276 -    "\1\14\5\0\1\14\5\0\4\14\1\176\5\14\1\177"+
  62.277 -    "\13\14\14\0\2\14\1\66\1\14\5\0\1\14\5\0"+
  62.278 -    "\6\14\1\200\2\14\1\201\14\14\27\0\1\77\62\0"+
  62.279 -    "\1\202\43\0\2\14\1\66\1\14\5\0\1\14\5\0"+
  62.280 -    "\2\14\1\203\2\14\1\204\20\14\14\0\2\14\1\66"+
  62.281 -    "\1\14\5\0\1\14\5\0\3\14\1\205\22\14\14\0"+
  62.282 -    "\2\14\1\66\1\14\5\0\1\14\5\0\6\14\1\206"+
  62.283 -    "\17\14\14\0\2\14\1\66\1\14\5\0\1\14\5\0"+
  62.284 -    "\10\14\1\207\1\210\14\14\14\0\2\14\1\66\1\14"+
  62.285 -    "\5\0\1\14\5\0\12\14\1\211\13\14\14\0\2\14"+
  62.286 -    "\1\66\1\14\5\0\1\14\5\0\15\14\1\212\10\14"+
  62.287 -    "\14\0\2\14\1\66\1\14\5\0\1\14\5\0\12\14"+
  62.288 -    "\1\213\13\14\14\0\2\14\1\66\1\14\5\0\1\14"+
  62.289 -    "\5\0\22\14\1\214\3\14\14\0\2\14\1\66\1\14"+
  62.290 -    "\5\0\1\14\5\0\4\14\1\215\21\14\14\0\2\14"+
  62.291 -    "\1\66\1\14\5\0\1\14\5\0\4\14\1\216\1\14"+
  62.292 -    "\1\217\4\14\1\220\4\14\1\221\3\14\1\222\1\223"+
  62.293 -    "\14\0\2\14\1\66\1\14\5\0\1\14\5\0\11\14"+
  62.294 -    "\1\224\1\14\1\225\12\14\14\0\2\14\1\66\1\14"+
  62.295 -    "\5\0\1\14\5\0\3\14\1\226\22\14\14\0\2\14"+
  62.296 -    "\1\66\1\14\5\0\1\14\5\0\5\14\1\227\7\14"+
  62.297 -    "\1\230\10\14\14\0\2\14\1\66\1\14\5\0\1\14"+
  62.298 -    "\5\0\7\14\1\231\16\14\14\0\2\14\1\66\1\232"+
  62.299 -    "\5\0\1\14\5\0\26\14\14\0\2\14\1\66\1\14"+
  62.300 -    "\5\0\1\14\5\0\7\14\1\233\1\234\15\14\14\0"+
  62.301 -    "\2\14\1\66\1\14\5\0\1\14\5\0\1\14\1\235"+
  62.302 -    "\24\14\14\0\2\14\1\66\1\14\5\0\1\14\5\0"+
  62.303 -    "\5\14\1\236\20\14\14\0\2\14\1\66\1\14\5\0"+
  62.304 -    "\1\14\5\0\13\14\1\237\12\14\14\0\2\14\1\66"+
  62.305 -    "\1\14\5\0\1\14\5\0\6\14\1\240\17\14\14\0"+
  62.306 -    "\2\14\1\66\1\14\5\0\1\14\5\0\1\241\1\14"+
  62.307 -    "\1\242\6\14\1\243\14\14\14\0\2\14\1\66\1\14"+
  62.308 -    "\5\0\1\14\5\0\2\14\1\244\23\14\14\0\2\14"+
  62.309 -    "\1\66\1\14\5\0\1\14\5\0\20\14\1\245\5\14"+
  62.310 -    "\14\0\2\14\1\66\1\14\5\0\1\14\5\0\6\14"+
  62.311 -    "\1\246\1\14\1\247\15\14\14\0\2\14\1\66\1\14"+
  62.312 -    "\5\0\1\14\5\0\21\14\1\250\4\14\14\0\2\14"+
  62.313 -    "\1\66\1\14\5\0\1\14\5\0\4\14\1\251\21\14"+
  62.314 -    "\14\0\2\14\1\66\1\14\5\0\1\14\5\0\10\14"+
  62.315 -    "\1\252\15\14\14\0\2\14\1\66\1\14\5\0\1\14"+
  62.316 -    "\5\0\13\14\1\253\12\14\14\0\2\14\1\66\1\14"+
  62.317 -    "\5\0\1\14\5\0\4\14\1\254\21\14\14\0\2\14"+
  62.318 -    "\1\66\1\14\5\0\1\14\5\0\3\14\1\255\22\14"+
  62.319 -    "\14\0\2\14\1\66\1\256\5\0\1\14\5\0\26\14"+
  62.320 -    "\14\0\2\14\1\66\1\14\5\0\1\14\5\0\4\14"+
  62.321 -    "\1\257\21\14\14\0\2\14\1\66\1\14\5\0\1\14"+
  62.322 -    "\5\0\12\14\1\260\13\14\14\0\2\14\1\66\1\14"+
  62.323 -    "\5\0\1\14\5\0\4\14\1\261\21\14\14\0\2\14"+
  62.324 -    "\1\66\1\262\5\0\1\14\5\0\11\14\1\263\14\14"+
  62.325 -    "\14\0\2\55\1\0\1\55\5\0\1\55\5\0\26\55"+
  62.326 -    "\13\0\15\3\1\57\1\3\1\60\1\61\13\3\1\264"+
  62.327 -    "\24\3\1\0\1\167\1\0\1\170\56\0\1\167\60\0"+
  62.328 -    "\1\171\1\0\1\64\1\63\55\0\2\172\1\65\1\172"+
  62.329 -    "\2\0\1\265\2\266\6\0\2\172\4\0\1\172\3\0"+
  62.330 -    "\1\172\27\0\2\14\1\66\1\14\5\0\1\14\5\0"+
  62.331 -    "\6\14\1\267\17\14\14\0\2\14\1\66\1\270\5\0"+
  62.332 -    "\1\14\5\0\11\14\1\271\14\14\14\0\2\14\1\66"+
  62.333 -    "\1\14\5\0\1\14\5\0\3\14\1\272\22\14\14\0"+
  62.334 -    "\2\14\1\66\1\273\5\0\1\14\5\0\26\14\14\0"+
  62.335 -    "\2\14\1\66\1\14\5\0\1\14\5\0\4\14\1\274"+
  62.336 -    "\21\14\14\0\2\14\1\66\1\14\5\0\1\14\5\0"+
  62.337 -    "\3\14\1\275\22\14\14\0\2\14\1\66\1\14\5\0"+
  62.338 -    "\1\14\5\0\4\14\1\276\21\14\14\0\2\14\1\66"+
  62.339 -    "\1\14\5\0\1\14\5\0\1\277\25\14\14\0\2\14"+
  62.340 -    "\1\66\1\300\5\0\1\14\5\0\26\14\14\0\2\14"+
  62.341 -    "\1\66\1\14\5\0\1\14\5\0\1\301\25\14\14\0"+
  62.342 -    "\2\14\1\66\1\14\5\0\1\14\5\0\11\14\1\302"+
  62.343 -    "\14\14\14\0\2\14\1\66\1\14\5\0\1\14\5\0"+
  62.344 -    "\14\14\1\303\11\14\14\0\2\14\1\66\1\304\5\0"+
  62.345 -    "\1\14\5\0\26\14\14\0\2\14\1\66\1\14\5\0"+
  62.346 -    "\1\14\5\0\17\14\1\305\6\14\14\0\2\14\1\66"+
  62.347 -    "\1\14\5\0\1\14\5\0\2\14\1\306\23\14\14\0"+
  62.348 -    "\2\14\1\66\1\14\5\0\1\14\5\0\1\307\25\14"+
  62.349 -    "\14\0\2\14\1\66\1\310\5\0\1\14\5\0\26\14"+
  62.350 -    "\14\0\2\14\1\66\1\14\5\0\1\14\5\0\17\14"+
  62.351 -    "\1\311\6\14\14\0\2\14\1\66\1\14\5\0\1\14"+
  62.352 -    "\5\0\5\14\1\312\20\14\14\0\2\14\1\66\1\14"+
  62.353 -    "\5\0\1\14\5\0\15\14\1\313\10\14\14\0\2\14"+
  62.354 -    "\1\66\1\14\5\0\1\14\5\0\20\14\1\314\5\14"+
  62.355 -    "\14\0\2\14\1\66\1\14\5\0\1\14\5\0\23\14"+
  62.356 -    "\1\315\2\14\14\0\2\14\1\66\1\14\5\0\1\14"+
  62.357 -    "\5\0\15\14\1\316\10\14\14\0\2\14\1\66\1\317"+
  62.358 -    "\5\0\1\14\5\0\26\14\14\0\2\14\1\66\1\14"+
  62.359 -    "\5\0\1\14\5\0\13\14\1\320\12\14\14\0\2\14"+
  62.360 -    "\1\66\1\14\5\0\1\14\5\0\1\321\25\14\14\0"+
  62.361 -    "\2\14\1\66\1\322\5\0\1\14\5\0\26\14\14\0"+
  62.362 -    "\2\14\1\66\1\14\5\0\1\14\5\0\4\14\1\323"+
  62.363 -    "\21\14\14\0\2\14\1\66\1\324\5\0\1\14\5\0"+
  62.364 -    "\26\14\14\0\2\14\1\66\1\14\5\0\1\14\5\0"+
  62.365 -    "\5\14\1\325\20\14\14\0\2\14\1\66\1\14\5\0"+
  62.366 -    "\1\14\5\0\23\14\1\326\2\14\14\0\2\14\1\66"+
  62.367 -    "\1\14\5\0\1\14\5\0\15\14\1\327\10\14\14\0"+
  62.368 -    "\2\14\1\66\1\14\5\0\1\14\5\0\4\14\1\330"+
  62.369 -    "\1\14\1\331\17\14\14\0\2\14\1\66\1\14\5\0"+
  62.370 -    "\1\14\5\0\24\14\1\332\1\14\14\0\2\14\1\66"+
  62.371 -    "\1\14\5\0\1\14\5\0\7\14\1\333\16\14\14\0"+
  62.372 -    "\2\14\1\66\1\14\5\0\1\14\5\0\11\14\1\334"+
  62.373 -    "\14\14\14\0\2\14\1\66\1\14\5\0\1\14\5\0"+
  62.374 -    "\10\14\1\335\15\14\14\0\2\14\1\66\1\14\5\0"+
  62.375 -    "\1\14\5\0\1\336\3\14\1\337\21\14\14\0\2\14"+
  62.376 -    "\1\66\1\14\5\0\1\14\5\0\10\14\1\340\15\14"+
  62.377 -    "\14\0\2\14\1\66\1\341\5\0\1\14\5\0\26\14"+
  62.378 -    "\14\0\2\14\1\66\1\14\5\0\1\14\5\0\2\14"+
  62.379 -    "\1\342\23\14\14\0\2\14\1\66\1\14\5\0\1\14"+
  62.380 -    "\5\0\11\14\1\343\14\14\14\0\2\14\1\66\1\14"+
  62.381 -    "\5\0\1\14\5\0\22\14\1\344\3\14\14\0\2\14"+
  62.382 -    "\1\66\1\14\5\0\1\14\5\0\13\14\1\345\12\14"+
  62.383 -    "\14\0\2\14\1\66\1\14\5\0\1\14\5\0\10\14"+
  62.384 -    "\1\346\15\14\13\0\3\3\1\347\11\3\1\57\1\3"+
  62.385 -    "\1\60\1\61\40\3\1\0\2\350\1\0\1\350\13\0"+
  62.386 -    "\2\350\4\0\1\350\3\0\1\350\32\0\1\351\55\0"+
  62.387 -    "\2\14\1\66\1\14\5\0\1\14\5\0\4\14\1\352"+
  62.388 -    "\21\14\14\0\1\14\1\353\1\66\1\14\5\0\1\14"+
  62.389 -    "\5\0\26\14\14\0\2\14\1\66\1\14\5\0\1\14"+
  62.390 -    "\5\0\14\14\1\354\11\14\14\0\2\14\1\66\1\14"+
  62.391 -    "\5\0\1\14\5\0\7\14\1\355\16\14\14\0\2\14"+
  62.392 -    "\1\66\1\14\5\0\1\14\5\0\4\14\1\356\21\14"+
  62.393 -    "\14\0\2\14\1\66\1\14\5\0\1\14\5\0\3\14"+
  62.394 -    "\1\357\22\14\14\0\2\14\1\66\1\14\5\0\1\14"+
  62.395 -    "\5\0\14\14\1\360\11\14\14\0\2\14\1\66\1\14"+
  62.396 -    "\5\0\1\14\5\0\5\14\1\361\1\14\1\362\16\14"+
  62.397 -    "\14\0\2\14\1\66\1\14\5\0\1\14\5\0\5\14"+
  62.398 -    "\1\363\20\14\14\0\2\14\1\66\1\14\5\0\1\14"+
  62.399 -    "\5\0\13\14\1\364\12\14\14\0\2\14\1\66\1\14"+
  62.400 -    "\5\0\1\14\5\0\3\14\1\365\22\14\14\0\2\14"+
  62.401 -    "\1\66\1\14\5\0\1\14\5\0\3\14\1\366\22\14"+
  62.402 -    "\14\0\2\14\1\66\1\14\5\0\1\14\5\0\3\14"+
  62.403 -    "\1\367\22\14\14\0\2\14\1\66\1\14\5\0\1\14"+
  62.404 -    "\5\0\20\14\1\370\5\14\14\0\2\14\1\66\1\14"+
  62.405 -    "\5\0\1\14\5\0\3\14\1\371\22\14\14\0\2\14"+
  62.406 -    "\1\66\1\372\5\0\1\14\5\0\26\14\14\0\2\14"+
  62.407 -    "\1\66\1\373\5\0\1\14\5\0\26\14\14\0\2\14"+
  62.408 -    "\1\66\1\374\5\0\1\14\5\0\26\14\14\0\2\14"+
  62.409 -    "\1\66\1\14\5\0\1\14\5\0\11\14\1\375\14\14"+
  62.410 -    "\14\0\2\14\1\66\1\376\5\0\1\14\5\0\26\14"+
  62.411 -    "\14\0\2\14\1\66\1\14\5\0\1\14\5\0\3\14"+
  62.412 -    "\1\377\22\14\14\0\2\14\1\66\1\14\5\0\1\14"+
  62.413 -    "\5\0\6\14\1\u0100\17\14\14\0\2\14\1\66\1\14"+
  62.414 -    "\5\0\1\14\5\0\14\14\1\u0101\11\14\14\0\2\14"+
  62.415 -    "\1\66\1\14\5\0\1\14\5\0\4\14\1\u0102\21\14"+
  62.416 -    "\14\0\2\14\1\66\1\14\5\0\1\14\5\0\1\u0103"+
  62.417 -    "\25\14\14\0\2\14\1\66\1\14\5\0\1\14\5\0"+
  62.418 -    "\20\14\1\u0104\5\14\14\0\2\14\1\66\1\u0105\5\0"+
  62.419 -    "\1\14\5\0\26\14\14\0\2\14\1\66\1\u0106\5\0"+
  62.420 -    "\1\14\5\0\26\14\14\0\2\14\1\66\1\14\5\0"+
  62.421 -    "\1\14\5\0\1\u0107\25\14\14\0\2\14\1\66\1\14"+
  62.422 -    "\5\0\1\14\5\0\4\14\1\u0108\21\14\14\0\2\14"+
  62.423 -    "\1\66\1\14\5\0\1\14\5\0\1\u0109\25\14\14\0"+
  62.424 -    "\2\14\1\66\1\14\5\0\1\14\5\0\14\14\1\u010a"+
  62.425 -    "\11\14\14\0\2\14\1\66\1\14\5\0\1\14\5\0"+
  62.426 -    "\1\u010b\25\14\14\0\2\14\1\66\1\14\5\0\1\14"+
  62.427 -    "\5\0\3\14\1\u010c\22\14\14\0\2\14\1\66\1\14"+
  62.428 -    "\5\0\1\14\5\0\10\14\1\u010d\15\14\14\0\2\14"+
  62.429 -    "\1\66\1\u010e\5\0\1\14\5\0\26\14\13\0\15\3"+
  62.430 -    "\1\57\1\3\1\60\1\61\5\3\1\u010f\32\3\1\0"+
  62.431 -    "\2\350\1\265\1\350\3\0\2\266\6\0\2\350\4\0"+
  62.432 -    "\1\350\3\0\1\350\27\0\1\u0110\3\0\2\u0111\53\0"+
  62.433 -    "\2\14\1\66\1\14\5\0\1\14\5\0\11\14\1\u0112"+
  62.434 -    "\14\14\14\0\2\14\1\66\1\14\5\0\1\14\5\0"+
  62.435 -    "\4\14\1\u0113\21\14\14\0\2\14\1\66\1\14\5\0"+
  62.436 -    "\1\14\5\0\1\u0114\25\14\14\0\2\14\1\66\1\14"+
  62.437 -    "\5\0\1\14\5\0\5\14\1\u0115\20\14\14\0\2\14"+
  62.438 -    "\1\66\1\14\5\0\1\14\5\0\4\14\1\u0116\21\14"+
  62.439 -    "\14\0\2\14\1\66\1\u0117\5\0\1\14\5\0\26\14"+
  62.440 -    "\14\0\2\14\1\66\1\14\5\0\1\14\5\0\5\14"+
  62.441 -    "\1\u0118\20\14\14\0\2\14\1\66\1\14\5\0\1\14"+
  62.442 -    "\5\0\13\14\1\u0119\12\14\14\0\2\14\1\66\1\14"+
  62.443 -    "\5\0\1\14\5\0\12\14\1\u011a\13\14\14\0\2\14"+
  62.444 -    "\1\66\1\u011b\5\0\1\14\5\0\26\14\14\0\2\14"+
  62.445 -    "\1\66\1\14\5\0\1\14\5\0\5\14\1\u011c\20\14"+
  62.446 -    "\14\0\2\14\1\66\1\14\5\0\1\14\5\0\17\14"+
  62.447 -    "\1\u011d\6\14\14\0\2\14\1\66\1\14\5\0\1\14"+
  62.448 -    "\5\0\13\14\1\u011e\12\14\14\0\2\14\1\66\1\14"+
  62.449 -    "\5\0\1\14\5\0\12\14\1\u011f\13\14\14\0\2\14"+
  62.450 -    "\1\66\1\14\5\0\1\14\5\0\1\u0120\25\14\14\0"+
  62.451 -    "\2\14\1\66\1\14\5\0\1\14\5\0\4\14\1\u0121"+
  62.452 -    "\21\14\14\0\2\14\1\66\1\14\5\0\1\14\5\0"+
  62.453 -    "\7\14\1\u0122\16\14\14\0\2\14\1\66\1\14\5\0"+
  62.454 -    "\1\14\5\0\1\u0123\25\14\14\0\2\14\1\66\1\14"+
  62.455 -    "\5\0\1\14\5\0\15\14\1\u0124\10\14\14\0\2\14"+
  62.456 -    "\1\66\1\14\5\0\1\14\5\0\1\u0125\25\14\14\0"+
  62.457 -    "\2\14\1\66\1\14\5\0\1\14\5\0\6\14\1\u0126"+
  62.458 -    "\17\14\14\0\2\14\1\66\1\14\5\0\1\14\5\0"+
  62.459 -    "\12\14\1\u0127\13\14\14\0\2\14\1\66\1\14\5\0"+
  62.460 -    "\1\14\5\0\4\14\1\u0128\21\14\14\0\2\14\1\66"+
  62.461 -    "\1\u0129\5\0\1\14\5\0\26\14\14\0\2\14\1\66"+
  62.462 -    "\1\14\5\0\1\14\5\0\3\14\1\u012a\22\14\14\0"+
  62.463 -    "\2\14\1\66\1\14\5\0\1\14\5\0\11\14\1\u012b"+
  62.464 -    "\14\14\13\0\15\3\1\57\1\3\1\60\1\61\21\3"+
  62.465 -    "\1\u012c\16\3\1\0\1\u0110\1\0\1\u0111\56\0\1\u0110"+
  62.466 -    "\60\0\2\14\1\66\1\14\5\0\1\14\5\0\2\14"+
  62.467 -    "\1\u012d\23\14\14\0\2\14\1\66\1\14\5\0\1\14"+
  62.468 -    "\5\0\11\14\1\u012e\14\14\14\0\2\14\1\66\1\14"+
  62.469 -    "\5\0\1\14\5\0\6\14\1\u012f\17\14\14\0\2\14"+
  62.470 -    "\1\66\1\14\5\0\1\14\5\0\12\14\1\u0130\13\14"+
  62.471 -    "\14\0\2\14\1\66\1\14\5\0\1\14\5\0\5\14"+
  62.472 -    "\1\u0131\20\14\14\0\2\14\1\66\1\u0132\5\0\1\14"+
  62.473 -    "\5\0\26\14\14\0\2\14\1\66\1\u0133\5\0\1\14"+
  62.474 -    "\5\0\26\14\14\0\2\14\1\66\1\14\5\0\1\14"+
  62.475 -    "\5\0\1\u0134\25\14\14\0\2\14\1\66\1\14\5\0"+
  62.476 -    "\1\14\5\0\4\14\1\u0135\21\14\14\0\2\14\1\66"+
  62.477 -    "\1\u0136\5\0\1\14\5\0\26\14\14\0\2\14\1\66"+
  62.478 -    "\1\14\5\0\1\14\5\0\13\14\1\u0137\12\14\14\0"+
  62.479 -    "\2\14\1\66\1\u0138\5\0\1\14\5\0\26\14\14\0"+
  62.480 -    "\2\14\1\66\1\14\5\0\1\14\5\0\4\14\1\u0139"+
  62.481 -    "\21\14\14\0\2\14\1\66\1\14\5\0\1\14\5\0"+
  62.482 -    "\17\14\1\u013a\6\14\14\0\2\14\1\66\1\u013b\5\0"+
  62.483 -    "\1\14\5\0\26\14\14\0\2\14\1\66\1\14\5\0"+
  62.484 -    "\1\14\5\0\12\14\1\u013c\13\14\14\0\2\14\1\66"+
  62.485 -    "\1\u013d\5\0\1\14\5\0\26\14\14\0\2\14\1\66"+
  62.486 -    "\1\14\5\0\1\14\5\0\6\14\1\u013e\17\14\13\0"+
  62.487 -    "\15\3\1\57\1\3\1\60\1\u013f\40\3\1\0\2\14"+
  62.488 -    "\1\66\1\14\5\0\1\14\5\0\13\14\1\u0140\12\14"+
  62.489 -    "\14\0\2\14\1\66\1\14\5\0\1\14\5\0\2\14"+
  62.490 -    "\1\u0141\23\14\14\0\2\14\1\66\1\14\5\0\1\14"+
  62.491 -    "\5\0\4\14\1\u0142\21\14\14\0\2\14\1\66\1\14"+
  62.492 -    "\5\0\1\14\5\0\4\14\1\u0143\21\14\14\0\2\14"+
  62.493 -    "\1\66\1\u0144\5\0\1\14\5\0\26\14\14\0\2\14"+
  62.494 -    "\1\66\1\14\5\0\1\14\5\0\4\14\1\u0145\21\14"+
  62.495 -    "\14\0\2\14\1\66\1\u0146\5\0\1\14\5\0\26\14"+
  62.496 -    "\14\0\2\14\1\66\1\14\5\0\1\14\5\0\3\14"+
  62.497 -    "\1\u0147\22\14\13\0\15\3\1\57\1\3\1\60\1\61"+
  62.498 -    "\2\3\1\u0148\7\3\1\166\25\3\1\0\2\14\1\66"+
  62.499 -    "\1\14\5\0\1\14\5\0\13\14\1\u0149\12\14\14\0"+
  62.500 -    "\2\14\1\66\1\u014a\5\0\1\14\5\0\26\14\14\0"+
  62.501 -    "\2\14\1\66\1\14\5\0\1\14\5\0\12\14\1\u014b"+
  62.502 -    "\13\14\14\0\2\14\1\66\1\u014c\5\0\1\14\5\0"+
  62.503 -    "\26\14\13\0";
  62.504 -
  62.505 -  private static int [] zzUnpackTrans() {
  62.506 -    int [] result = new int[11809];
  62.507 -    int offset = 0;
  62.508 -    offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
  62.509 -    return result;
  62.510 -  }
  62.511 -
  62.512 -  private static int zzUnpackTrans(String packed, int offset, int [] result) {
  62.513 -    int i = 0;       /* index in packed string  */
  62.514 -    int j = offset;  /* index in unpacked array */
  62.515 -    int l = packed.length();
  62.516 -    while (i < l) {
  62.517 -      int count = packed.charAt(i++);
  62.518 -      int value = packed.charAt(i++);
  62.519 -      value--;
  62.520 -      do result[j++] = value; while (--count > 0);
  62.521 -    }
  62.522 -    return j;
  62.523 -  }
  62.524 -
  62.525 -
  62.526 -  /* error codes */
  62.527 -  private static final int ZZ_UNKNOWN_ERROR = 0;
  62.528 -  private static final int ZZ_NO_MATCH = 1;
  62.529 -  private static final int ZZ_PUSHBACK_2BIG = 2;
  62.530 -
  62.531 -  /* error messages for the codes above */
  62.532 -  private static final String ZZ_ERROR_MSG[] = {
  62.533 -    "Unkown internal scanner error",
  62.534 -    "Error: could not match input",
  62.535 -    "Error: pushback value was too large"
  62.536 -  };
  62.537 -
  62.538 -  /**
  62.539 -   * ZZ_ATTRIBUTE[aState] contains the attributes of state <code>aState</code>
  62.540 -   */
  62.541 -  private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute();
  62.542 -
  62.543 -  private static final String ZZ_ATTRIBUTE_PACKED_0 =
  62.544 -    "\3\0\1\11\3\1\1\11\30\1\3\11\1\1\1\11"+
  62.545 -    "\1\1\1\11\3\1\2\11\2\1\1\11\1\1\6\0"+
  62.546 -    "\5\1\3\11\1\0\1\1\1\0\52\1\10\11\1\0"+
  62.547 -    "\1\11\1\0\1\1\1\0\1\1\1\0\7\1\1\11"+
  62.548 -    "\61\1\2\0\61\1\3\0\45\1\1\0\1\1\1\0"+
  62.549 -    "\32\1\1\0\22\1\1\0\15\1";
  62.550 -
  62.551 -  private static int [] zzUnpackAttribute() {
  62.552 -    int [] result = new int[332];
  62.553 -    int offset = 0;
  62.554 -    offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
  62.555 -    return result;
  62.556 -  }
  62.557 -
  62.558 -  private static int zzUnpackAttribute(String packed, int offset, int [] result) {
  62.559 -    int i = 0;       /* index in packed string  */
  62.560 -    int j = offset;  /* index in unpacked array */
  62.561 -    int l = packed.length();
  62.562 -    while (i < l) {
  62.563 -      int count = packed.charAt(i++);
  62.564 -      int value = packed.charAt(i++);
  62.565 -      do result[j++] = value; while (--count > 0);
  62.566 -    }
  62.567 -    return j;
  62.568 -  }
  62.569 -
  62.570 -  /** the input device */
  62.571 -  private java.io.Reader zzReader;
  62.572 -
  62.573 -  /** the current state of the DFA */
  62.574 -  private int zzState;
  62.575 -
  62.576 -  /** the current lexical state */
  62.577 -  private int zzLexicalState = YYINITIAL;
  62.578 -
  62.579 -  /** this buffer contains the current text to be matched and is
  62.580 -      the source of the yytext() string */
  62.581 -  private char zzBuffer[] = new char[ZZ_BUFFERSIZE];
  62.582 -
  62.583 -  /** the textposition at the last accepting state */
  62.584 -  private int zzMarkedPos;
  62.585 -
  62.586 -  /** the textposition at the last state to be included in yytext */
  62.587 -  private int zzPushbackPos;
  62.588 -
  62.589 -  /** the current text position in the buffer */
  62.590 -  private int zzCurrentPos;
  62.591 -
  62.592 -  /** startRead marks the beginning of the yytext() string in the buffer */
  62.593 -  private int zzStartRead;
  62.594 -
  62.595 -  /** endRead marks the last character in the buffer, that has been read
  62.596 -      from input */
  62.597 -  private int zzEndRead;
  62.598 -
  62.599 -  /** number of newlines encountered up to the start of the matched text */
  62.600 -  private int yyline;
  62.601 -
  62.602 -  /** the number of characters up to the start of the matched text */
  62.603 -  private int yychar;
  62.604 -
  62.605 -  /**
  62.606 -   * the number of characters from the last newline up to the start of the 
  62.607 -   * matched text
  62.608 -   */
  62.609 -  private int yycolumn;
  62.610 -
  62.611 -  /** 
  62.612 -   * zzAtBOL == true <=> the scanner is currently at the beginning of a line
  62.613 -   */
  62.614 -  private boolean zzAtBOL = true;
  62.615 -
  62.616 -  /** zzAtEOF == true <=> the scanner is at the EOF */
  62.617 -  private boolean zzAtEOF;
  62.618 -
  62.619 -  /** denotes if the user-EOF-code has already been executed */
  62.620 -  private boolean zzEOFDone;
  62.621 -
  62.622 -  /* user code: */
  62.623 -    private final List commentList = new LinkedList();
  62.624 -    private String comment = null;
  62.625 -    private StateStack stack = new StateStack();
  62.626 -    private char yy_old_buffer[] = new char[ZZ_BUFFERSIZE];
  62.627 -    private int yy_old_pushbackPos;
  62.628 -    protected int commentStartPosition;
  62.629 -
  62.630 -    public AdaVersion getAdaVersion() {
  62.631 -            return AdaVersion.ADA_95;
  62.632 -    }
  62.633 -
  62.634 -    public void reset(java.io.Reader reader) {
  62.635 -        yyreset(reader);
  62.636 -    }
  62.637 -
  62.638 -    public void setState(int state) {
  62.639 -        yybegin(state);
  62.640 -    }
  62.641 -
  62.642 -    public int getState() {
  62.643 -        return yystate();
  62.644 -    }
  62.645 -
  62.646 -    public void resetCommentList() {
  62.647 -            commentList.clear();
  62.648 -    }
  62.649 -
  62.650 -    public List getCommentList() {
  62.651 -            return commentList;
  62.652 -    }
  62.653 -	
  62.654 -    protected void addComment(Comment.Type type) {
  62.655 -            int leftPosition = getTokenStartPosition();
  62.656 -            Comment comm;
  62.657 -            comm = new Comment(commentStartPosition, leftPosition + getTokenLength());
  62.658 -            commentList.add(comm);
  62.659 -    }
  62.660 -	
  62.661 -    private void pushState(int state) {
  62.662 -        stack.pushStack(zzLexicalState);
  62.663 -        yybegin(state);
  62.664 -    }
  62.665 -
  62.666 -    private void popState() {
  62.667 -        yybegin(stack.popStack());
  62.668 -    }
  62.669 -
  62.670 -    public int getCurrentLine() {
  62.671 -        return yyline;
  62.672 -    }
  62.673 -
  62.674 -    protected int getTokenStartPosition() {
  62.675 -        return zzStartRead - zzPushbackPos;
  62.676 -    }
  62.677 -
  62.678 -    protected int getTokenLength() {
  62.679 -        return zzMarkedPos - zzStartRead;
  62.680 -    }
  62.681 -
  62.682 -    public int getLength() {
  62.683 -        return zzEndRead - zzPushbackPos;
  62.684 -    }
  62.685 -    
  62.686 -    private void handleCommentStart() {
  62.687 -        commentStartPosition = getTokenStartPosition();
  62.688 -    }
  62.689 -	
  62.690 -    private void handleLineCommentEnd() {
  62.691 -         addComment(Comment.Type.TYPE_SINGLE_LINE);
  62.692 -    }
  62.693 -        
  62.694 -    private Symbol createFullSymbol(int symbolNumber) {
  62.695 -        Symbol symbol = createSymbol(symbolNumber);
  62.696 -        symbol.value = yytext();
  62.697 -        return symbol;
  62.698 -    }
  62.699 -
  62.700 -    private Symbol createSymbol(int symbolNumber) {
  62.701 -        int leftPosition = getTokenStartPosition();
  62.702 -        Symbol symbol = new Symbol(symbolNumber, leftPosition, leftPosition + getTokenLength());
  62.703 -        return symbol;
  62.704 -    }
  62.705 -
  62.706 -    public int[] getParamenters(){
  62.707 -    	return new int[]{zzMarkedPos, zzPushbackPos, zzCurrentPos, zzStartRead, zzEndRead, yyline};
  62.708 -    }
  62.709 -    
  62.710 -    public void reset(java.io.Reader  reader, char[] buffer, int[] parameters){
  62.711 -            this.zzReader = reader;
  62.712 -            this.zzBuffer = buffer;
  62.713 -            this.zzMarkedPos = parameters[0];
  62.714 -            this.zzPushbackPos = parameters[1];
  62.715 -            this.zzCurrentPos = parameters[2];
  62.716 -            this.zzStartRead = parameters[3];
  62.717 -            this.zzEndRead = parameters[4];
  62.718 -            this.yyline = parameters[5];
  62.719 -            this.yychar = this.zzStartRead - this.zzPushbackPos;
  62.720 -    }
  62.721 -
  62.722 -
  62.723 -
  62.724 -  /**
  62.725 -   * Creates a new scanner
  62.726 -   * There is also a java.io.InputStream version of this constructor.
  62.727 -   *
  62.728 -   * @param   in  the java.io.Reader to read input from.
  62.729 -   */
  62.730 -  public Ada95ASTLexer(java.io.Reader in) {
  62.731 -    this.zzReader = in;
  62.732 -  }
  62.733 -
  62.734 -  /**
  62.735 -   * Creates a new scanner.
  62.736 -   * There is also java.io.Reader version of this constructor.
  62.737 -   *
  62.738 -   * @param   in  the java.io.Inputstream to read input from.
  62.739 -   */
  62.740 -  public Ada95ASTLexer(java.io.InputStream in) {
  62.741 -    this(new java.io.InputStreamReader(in));
  62.742 -  }
  62.743 -
  62.744 -  /** 
  62.745 -   * Unpacks the compressed character translation table.
  62.746 -   *
  62.747 -   * @param packed   the packed character translation table
  62.748 -   * @return         the unpacked character translation table
  62.749 -   */
  62.750 -  private static char [] zzUnpackCMap(String packed) {
  62.751 -    char [] map = new char[0x10000];
  62.752 -    int i = 0;  /* index in packed string  */
  62.753 -    int j = 0;  /* index in unpacked array */
  62.754 -    while (i < 172) {
  62.755 -      int  count = packed.charAt(i++);
  62.756 -      char value = packed.charAt(i++);
  62.757 -      do map[j++] = value; while (--count > 0);
  62.758 -    }
  62.759 -    return map;
  62.760 -  }
  62.761 -
  62.762 -
  62.763 -  /**
  62.764 -   * Refills the input buffer.
  62.765 -   *
  62.766 -   * @return      <code>false</code>, iff there was new input.
  62.767 -   * 
  62.768 -   * @exception   java.io.IOException  if any I/O-Error occurs
  62.769 -   */
  62.770 -  private boolean zzRefill() throws java.io.IOException {
  62.771 -
  62.772 -    /* first: make room (if you can) */
  62.773 -    if (zzStartRead > 0) {
  62.774 -      System.arraycopy(zzBuffer, zzStartRead,
  62.775 -                       zzBuffer, 0,
  62.776 -                       zzEndRead-zzStartRead);
  62.777 -
  62.778 -      /* translate stored positions */
  62.779 -      zzEndRead-= zzStartRead;
  62.780 -      zzCurrentPos-= zzStartRead;
  62.781 -      zzMarkedPos-= zzStartRead;
  62.782 -      zzPushbackPos-= zzStartRead;
  62.783 -      zzStartRead = 0;
  62.784 -    }
  62.785 -
  62.786 -    /* is the buffer big enough? */
  62.787 -    if (zzCurrentPos >= zzBuffer.length) {
  62.788 -      /* if not: blow it up */
  62.789 -      char newBuffer[] = new char[zzCurrentPos*2];
  62.790 -      System.arraycopy(zzBuffer, 0, newBuffer, 0, zzBuffer.length);
  62.791 -      zzBuffer = newBuffer;
  62.792 -    }
  62.793 -
  62.794 -    /* finally: fill the buffer with new input */
  62.795 -    int numRead = zzReader.read(zzBuffer, zzEndRead,
  62.796 -                                            zzBuffer.length-zzEndRead);
  62.797 -
  62.798 -    if (numRead < 0) {
  62.799 -      return true;
  62.800 -    }
  62.801 -    else {
  62.802 -      zzEndRead+= numRead;
  62.803 -      return false;
  62.804 -    }
  62.805 -  }
  62.806 -
  62.807 -    
  62.808 -  /**
  62.809 -   * Closes the input stream.
  62.810 -   */
  62.811 -  public final void yyclose() throws java.io.IOException {
  62.812 -    zzAtEOF = true;            /* indicate end of file */
  62.813 -    zzEndRead = zzStartRead;  /* invalidate buffer    */
  62.814 -
  62.815 -    if (zzReader != null)
  62.816 -      zzReader.close();
  62.817 -  }
  62.818 -
  62.819 -
  62.820 -  /**
  62.821 -   * Resets the scanner to read from a new input stream.
  62.822 -   * Does not close the old reader.
  62.823 -   *
  62.824 -   * All internal variables are reset, the old input stream 
  62.825 -   * <b>cannot</b> be reused (internal buffer is discarded and lost).
  62.826 -   * Lexical state is set to <tt>ZZ_INITIAL</tt>.
  62.827 -   *
  62.828 -   * @param reader   the new input stream 
  62.829 -   */
  62.830 -  public final void yyreset(java.io.Reader reader) {
  62.831 -    zzReader = reader;
  62.832 -    zzAtBOL  = true;
  62.833 -    zzAtEOF  = false;
  62.834 -    zzEndRead = zzStartRead = 0;
  62.835 -    zzCurrentPos = zzMarkedPos = zzPushbackPos = 0;
  62.836 -    yyline = yychar = yycolumn = 0;
  62.837 -    zzLexicalState = YYINITIAL;
  62.838 -  }
  62.839 -
  62.840 -
  62.841 -  /**
  62.842 -   * Returns the current lexical state.
  62.843 -   */
  62.844 -  public final int yystate() {
  62.845 -    return zzLexicalState;
  62.846 -  }
  62.847 -
  62.848 -
  62.849 -  /**
  62.850 -   * Enters a new lexical state
  62.851 -   *
  62.852 -   * @param newState the new lexical state
  62.853 -   */
  62.854 -  public final void yybegin(int newState) {
  62.855 -    zzLexicalState = newState;
  62.856 -  }
  62.857 -
  62.858 -
  62.859 -  /**
  62.860 -   * Returns the text matched by the current regular expression.
  62.861 -   */
  62.862 -  public final String yytext() {
  62.863 -    return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead );
  62.864 -  }
  62.865 -
  62.866 -
  62.867 -  /**
  62.868 -   * Returns the character at position <tt>pos</tt> from the 
  62.869 -   * matched text. 
  62.870 -   * 
  62.871 -   * It is equivalent to yytext().charAt(pos), but faster
  62.872 -   *
  62.873 -   * @param pos the position of the character to fetch. 
  62.874 -   *            A value from 0 to yylength()-1.
  62.875 -   *
  62.876 -   * @return the character at position pos
  62.877 -   */
  62.878 -  public final char yycharat(int pos) {
  62.879 -    return zzBuffer[zzStartRead+pos];
  62.880 -  }
  62.881 -
  62.882 -
  62.883 -  /**
  62.884 -   * Returns the length of the matched text region.
  62.885 -   */
  62.886 -  public final int yylength() {
  62.887 -    return zzMarkedPos-zzStartRead;
  62.888 -  }
  62.889 -
  62.890 -
  62.891 -  /**
  62.892 -   * Reports an error that occured while scanning.
  62.893 -   *
  62.894 -   * In a wellformed scanner (no or only correct usage of 
  62.895 -   * yypushback(int) and a match-all fallback rule) this method 
  62.896 -   * will only be called with things that "Can't Possibly Happen".
  62.897 -   * If this method is called, something is seriously wrong
  62.898 -   * (e.g. a JFlex bug producing a faulty scanner etc.).
  62.899 -   *
  62.900 -   * Usual syntax/scanner level error handling should be done
  62.901 -   * in error fallback rules.
  62.902 -   *
  62.903 -   * @param   errorCode  the code of the errormessage to display
  62.904 -   */
  62.905 -  private void zzScanError(int errorCode) {
  62.906 -    String message;
  62.907 -    try {
  62.908 -      message = ZZ_ERROR_MSG[errorCode];
  62.909 -    }
  62.910 -    catch (ArrayIndexOutOfBoundsException e) {
  62.911 -      message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR];
  62.912 -    }
  62.913 -
  62.914 -    throw new Error(message);
  62.915 -  } 
  62.916 -
  62.917 -
  62.918 -  /**
  62.919 -   * Pushes the specified amount of characters back into the input stream.
  62.920 -   *
  62.921 -   * They will be read again by then next call of the scanning method
  62.922 -   *
  62.923 -   * @param number  the number of characters to be read again.
  62.924 -   *                This number must not be greater than yylength()!
  62.925 -   */
  62.926 -  public void yypushback(int number)  {
  62.927 -    if ( number > yylength() )
  62.928 -      zzScanError(ZZ_PUSHBACK_2BIG);
  62.929 -
  62.930 -    zzMarkedPos -= number;
  62.931 -  }
  62.932 -
  62.933 -
  62.934 -  /**
  62.935 -   * Contains user EOF-code, which will be executed exactly once,
  62.936 -   * when the end of file is reached
  62.937 -   */
  62.938 -  private void zzDoEOF() throws java.io.IOException {
  62.939 -    if (!zzEOFDone) {
  62.940 -      zzEOFDone = true;
  62.941 -      yyclose();
  62.942 -    }
  62.943 -  }
  62.944 -
  62.945 -
  62.946 -  /**
  62.947 -   * Resumes scanning until the next regular expression is matched,
  62.948 -   * the end of input is encountered or an I/O-Error occurs.
  62.949 -   *
  62.950 -   * @return      the next token
  62.951 -   * @exception   java.io.IOException  if any I/O-Error occurs
  62.952 -   */
  62.953 -  public Symbol next_token() throws java.io.IOException {
  62.954 -    int zzInput;
  62.955 -    int zzAction;
  62.956 -
  62.957 -    // cached fields:
  62.958 -    int zzCurrentPosL;
  62.959 -    int zzMarkedPosL;
  62.960 -    int zzEndReadL = zzEndRead;
  62.961 -    char [] zzBufferL = zzBuffer;
  62.962 -    char [] zzCMapL = ZZ_CMAP;
  62.963 -
  62.964 -    int [] zzTransL = ZZ_TRANS;
  62.965 -    int [] zzRowMapL = ZZ_ROWMAP;
  62.966 -    int [] zzAttrL = ZZ_ATTRIBUTE;
  62.967 -
  62.968 -    while (true) {
  62.969 -      zzMarkedPosL = zzMarkedPos;
  62.970 -
  62.971 -      yychar+= zzMarkedPosL-zzStartRead;
  62.972 -
  62.973 -      boolean zzR = false;
  62.974 -      for (zzCurrentPosL = zzStartRead; zzCurrentPosL < zzMarkedPosL;
  62.975 -                                                             zzCurrentPosL++) {
  62.976 -        switch (zzBufferL[zzCurrentPosL]) {
  62.977 -        case '\u000B':
  62.978 -        case '\u000C':
  62.979 -        case '\u0085':
  62.980 -        case '\u2028':
  62.981 -        case '\u2029':
  62.982 -          yyline++;
  62.983 -          yycolumn = 0;
  62.984 -          zzR = false;
  62.985 -          break;
  62.986 -        case '\r':
  62.987 -          yyline++;
  62.988 -          yycolumn = 0;
  62.989 -          zzR = true;
  62.990 -          break;
  62.991 -        case '\n':
  62.992 -          if (zzR)
  62.993 -            zzR = false;
  62.994 -          else {
  62.995 -            yyline++;
  62.996 -            yycolumn = 0;
  62.997 -          }
  62.998 -          break;
  62.999 -        default:
 62.1000 -          zzR = false;
 62.1001 -          yycolumn++;
 62.1002 -        }
 62.1003 -      }
 62.1004 -
 62.1005 -      if (zzR) {
 62.1006 -        // peek one character ahead if it is \n (if we have counted one line too much)
 62.1007 -        boolean zzPeek;
 62.1008 -        if (zzMarkedPosL < zzEndReadL)
 62.1009 -          zzPeek = zzBufferL[zzMarkedPosL] == '\n';
 62.1010 -        else if (zzAtEOF)
 62.1011 -          zzPeek = false;
 62.1012 -        else {
 62.1013 -          boolean eof = zzRefill();
 62.1014 -          zzEndReadL = zzEndRead;
 62.1015 -          zzMarkedPosL = zzMarkedPos;
 62.1016 -          zzBufferL = zzBuffer;
 62.1017 -          if (eof) 
 62.1018 -            zzPeek = false;
 62.1019 -          else 
 62.1020 -            zzPeek = zzBufferL[zzMarkedPosL] == '\n';
 62.1021 -        }
 62.1022 -        if (zzPeek) yyline--;
 62.1023 -      }
 62.1024 -      zzAction = -1;
 62.1025 -
 62.1026 -      zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL;
 62.1027 -  
 62.1028 -      zzState = ZZ_LEXSTATE[zzLexicalState];
 62.1029 -
 62.1030 -
 62.1031 -      zzForAction: {
 62.1032 -        while (true) {
 62.1033 -    
 62.1034 -          if (zzCurrentPosL < zzEndReadL)
 62.1035 -            zzInput = zzBufferL[zzCurrentPosL++];
 62.1036 -          else if (zzAtEOF) {
 62.1037 -            zzInput = YYEOF;
 62.1038 -            break zzForAction;
 62.1039 -          }
 62.1040 -          else {
 62.1041 -            // store back cached positions
 62.1042 -            zzCurrentPos  = zzCurrentPosL;
 62.1043 -            zzMarkedPos   = zzMarkedPosL;
 62.1044 -            boolean eof = zzRefill();
 62.1045 -            // get translated positions and possibly new buffer
 62.1046 -            zzCurrentPosL  = zzCurrentPos;
 62.1047 -            zzMarkedPosL   = zzMarkedPos;
 62.1048 -            zzBufferL      = zzBuffer;
 62.1049 -            zzEndReadL     = zzEndRead;
 62.1050 -            if (eof) {
 62.1051 -              zzInput = YYEOF;
 62.1052 -              break zzForAction;
 62.1053 -            }
 62.1054 -            else {
 62.1055 -              zzInput = zzBufferL[zzCurrentPosL++];
 62.1056 -            }
 62.1057 -          }
 62.1058 -          int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMapL[zzInput] ];
 62.1059 -          if (zzNext == -1) break zzForAction;
 62.1060 -          zzState = zzNext;
 62.1061 -
 62.1062 -          int zzAttributes = zzAttrL[zzState];
 62.1063 -          if ( (zzAttributes & 1) == 1 ) {
 62.1064 -            zzAction = zzState;
 62.1065 -            zzMarkedPosL = zzCurrentPosL;
 62.1066 -            if ( (zzAttributes & 8) == 8 ) break zzForAction;
 62.1067 -          }
 62.1068 -
 62.1069 -        }
 62.1070 -      }
 62.1071 -
 62.1072 -      // store back cached position
 62.1073 -      zzMarkedPos = zzMarkedPosL;
 62.1074 -
 62.1075 -      switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {
 62.1076 -        case 85: 
 62.1077 -          { return createSymbol(Ada95ASTSymbols.RETURN);
 62.1078 -          }
 62.1079 -        case 108: break;
 62.1080 -        case 32: 
 62.1081 -          { return createSymbol(Ada95ASTSymbols.IF);
 62.1082 -          }
 62.1083 -        case 109: break;
 62.1084 -        case 36: 
 62.1085 -          { return createSymbol(Ada95ASTSymbols.EXPON);
 62.1086 -          }
 62.1087 -        case 110: break;
 62.1088 -        case 96: 
 62.1089 -          { return createSymbol(Ada95ASTSymbols.PRIVATE);
 62.1090 -          }
 62.1091 -        case 111: break;
 62.1092 -        case 10: 
 62.1093 -          { return createSymbol(Ada95ASTSymbols.AMP);
 62.1094 -          }
 62.1095 -        case 112: break;
 62.1096 -        case 45: 
 62.1097 -          { return createSymbol(Ada95ASTSymbols.FOR);
 62.1098 -          }
 62.1099 -        case 113: break;
 62.1100 -        case 105: 
 62.1101 -          { return createSymbol(Ada95ASTSymbols.TERMINATE);
 62.1102 -          }
 62.1103 -        case 114: break;
 62.1104 -        case 100: 
 62.1105 -          { return createSymbol(Ada95ASTSymbols.FUNCTION);
 62.1106 -          }
 62.1107 -        case 115: break;
 62.1108 -        case 30: 
 62.1109 -          { return createSymbol(Ada95ASTSymbols.OF);
 62.1110 -          }
 62.1111 -        case 116: break;
 62.1112 -        case 27: 
 62.1113 -          { return createSymbol(Ada95ASTSymbols.ASSIGNMENT);
 62.1114 -          }
 62.1115 -        case 117: break;
 62.1116 -        case 103: 
 62.1117 -          { return createSymbol(Ada95ASTSymbols.CONSTANT);
 62.1118 -          }
 62.1119 -        case 118: break;
 62.1120 -        case 65: 
 62.1121 -          { return createSymbol(Ada95ASTSymbols.CASE);
 62.1122 -          }
 62.1123 -        case 119: break;
 62.1124 -        case 94: 
 62.1125 -          { return createSymbol(Ada95ASTSymbols.SUBTYPE);
 62.1126 -          }
 62.1127 -        case 120: break;
 62.1128 -        case 49: 
 62.1129 -          { return createSymbol(Ada95ASTSymbols.ALL);
 62.1130 -          }
 62.1131 -        case 121: break;
 62.1132 -        case 41: 
 62.1133 -          { return createSymbol(Ada95ASTSymbols.ARROW);
 62.1134 -          }
 62.1135 -        case 122: break;
 62.1136 -        case 53: 
 62.1137 -          { return createSymbol(Ada95ASTSymbols.NEW);
 62.1138 -          }
 62.1139 -        case 123: break;
 62.1140 -        case 75: 
 62.1141 -          { return createSymbol(Ada95ASTSymbols.BEGIN);
 62.1142 -          }
 62.1143 -        case 124: break;
 62.1144 -        case 95: 
 62.1145 -          { return createSymbol(Ada95ASTSymbols.PACKAGE);
 62.1146 -          }
 62.1147 -        case 125: break;
 62.1148 -        case 13: 
 62.1149 -          { return createSymbol(Ada95ASTSymbols.STAR);
 62.1150 -          }
 62.1151 -        case 126: break;
 62.1152 -        case 63: 
 62.1153 -          { return createSymbol(Ada95ASTSymbols.TYPE);
 62.1154 -          }
 62.1155 -        case 127: break;
 62.1156 -        case 104: 
 62.1157 -          { return createSymbol(Ada95ASTSymbols.EXCEPTION);
 62.1158 -          }
 62.1159 -        case 128: break;
 62.1160 -        case 47: 
 62.1161 -          { return createFullSymbol(Ada95ASTSymbols.CHAR_LITERAL);
 62.1162 -          }
 62.1163 -        case 129: break;
 62.1164 -        case 57: 
 62.1165 -          { return createSymbol(Ada95ASTSymbols.MOD);
 62.1166 -          }
 62.1167 -        case 130: break;
 62.1168 -        case 39: 
 62.1169 -          { return createSymbol(Ada95ASTSymbols.LTEQ);
 62.1170 -          }
 62.1171 -        case 131: break;
 62.1172 -        case 90: 
 62.1173 -          { return createSymbol(Ada95ASTSymbols.ALIASED);
 62.1174 -          }
 62.1175 -        case 132: break;
 62.1176 -        case 87: 
 62.1177 -          { return createSymbol(Ada95ASTSymbols.TAGGED);
 62.1178 -          }
 62.1179 -        case 133: break;
 62.1180 -        case 21: 
 62.1181 -          { yypushback(yylength());
 62.1182 -    popState();
 62.1183 -          }
 62.1184 -        case 134: break;
 62.1185 -        case 12: 
 62.1186 -          { return createSymbol(Ada95ASTSymbols.RPAREN);
 62.1187 -          }
 62.1188 -        case 135: break;
 62.1189 -        case 16: 
 62.1190 -          { return createSymbol(Ada95ASTSymbols.SEMICOLON);
 62.1191 -          }
 62.1192 -        case 136: break;
 62.1193 -        case 58: 
 62.1194 -          { return createFullSymbol(Ada95ASTSymbols.BASED_LITERAL);
 62.1195 -          }
 62.1196 -        case 137: break;
 62.1197 -        case 29: 
 62.1198 -          { return createSymbol(Ada95ASTSymbols.AT);
 62.1199 -          }
 62.1200 -        case 138: break;
 62.1201 -        case 78: 
 62.1202 -          { return createSymbol(Ada95ASTSymbols.DELAY);
 62.1203 -          }
 62.1204 -        case 139: break;
 62.1205 -        case 26: 
 62.1206 -          { return createSymbol(Ada95ASTSymbols.DOT_DOT);
 62.1207 -          }
 62.1208 -        case 140: break;
 62.1209 -        case 24: 
 62.1210 -          { handleLineCommentEnd();
 62.1211 -    yybegin(YYINITIAL);
 62.1212 -          }
 62.1213 -        case 141: break;
 62.1214 -        case 70: 
 62.1215 -          { return createSymbol(Ada95ASTSymbols.WHEN);
 62.1216 -          }
 62.1217 -        case 142: break;
 62.1218 -        case 38: 
 62.1219 -          { return createSymbol(Ada95ASTSymbols.LTLT);
 62.1220 -          }
 62.1221 -        case 143: break;
 62.1222 -        case 61: 
 62.1223 -          { return createSymbol(Ada95ASTSymbols.BODY);
 62.1224 -          }
 62.1225 -        case 144: break;
 62.1226 -        case 97: 
 62.1227 -          { return createSymbol(Ada95ASTSymbols.LIMITED);
 62.1228 -          }
 62.1229 -        case 145: break;
 62.1230 -        case 22: 
 62.1231 -          { popState();
 62.1232 -    return createFullSymbol(Ada95ASTSymbols.IDENTIFIER);
 62.1233 -          }
 62.1234 -        case 146: break;
 62.1235 -        case 73: 
 62.1236 -          { return createSymbol(Ada95ASTSymbols.ABORT);
 62.1237 -          }
 62.1238 -        case 147: break;
 62.1239 -        case 106: 
 62.1240 -          { return createSymbol(Ada95ASTSymbols.PROTECTED);
 62.1241 -          }
 62.1242 -        case 148: break;
 62.1243 -        case 102: 
 62.1244 -          { return createSymbol(Ada95ASTSymbols.SEPARATE);
 62.1245 -          }
 62.1246 -        case 149: break;
 62.1247 -        case 59: 
 62.1248 -          { return createSymbol(Ada95ASTSymbols.ELSE);
 62.1249 -          }
 62.1250 -        case 150: break;
 62.1251 -        case 60: 
 62.1252 -          { return createSymbol(Ada95ASTSymbols.EXIT);
 62.1253 -          }
 62.1254 -        case 151: break;
 62.1255 -        case 43: 
 62.1256 -          { return createSymbol(Ada95ASTSymbols.GTGT);
 62.1257 -          }
 62.1258 -        case 152: break;
 62.1259 -        case 23: 
 62.1260 -          { return createSymbol(Ada95ASTSymbols.DOT);
 62.1261 -          }
 62.1262 -        case 153: break;
 62.1263 -        case 42: 
 62.1264 -          { return createSymbol(Ada95ASTSymbols.GTEQ);
 62.1265 -          }
 62.1266 -        case 154: break;
 62.1267 -        case 17: 
 62.1268 -          { return createSymbol(Ada95ASTSymbols.GT);
 62.1269 -          }
 62.1270 -        case 155: break;
 62.1271 -        case 50: 
 62.1272 -          { return createSymbol(Ada95ASTSymbols.AND);
 62.1273 -          }
 62.1274 -        case 156: break;
 62.1275 -        case 11: 
 62.1276 -          { return createSymbol(Ada95ASTSymbols.LPAREN);
 62.1277 -          }
 62.1278 -        case 157: break;
 62.1279 -        case 66: 
 62.1280 -          { return createSymbol(Ada95ASTSymbols.LOOP);
 62.1281 -          }
 62.1282 -        case 158: break;
 62.1283 -        case 83: 
 62.1284 -          { return createSymbol(Ada95ASTSymbols.ACCEPT);
 62.1285 -          }
 62.1286 -        case 159: break;
 62.1287 -        case 20: 
 62.1288 -          { return createSymbol(Ada95ASTSymbols.BAR);
 62.1289 -          }
 62.1290 -        case 160: break;
 62.1291 -        case 51: 
 62.1292 -          { return createSymbol(Ada95ASTSymbols.OUT);
 62.1293 -          }
 62.1294 -        case 161: break;
 62.1295 -        case 18: 
 62.1296 -          { return createSymbol(Ada95ASTSymbols.EQ);
 62.1297 -          }
 62.1298 -        case 162: break;
 62.1299 -        case 6: 
 62.1300 -          { pushState(ST_LOOKING_FOR_PROPERTY);
 62.1301 -                      return createSymbol(Ada95ASTSymbols.DOT);
 62.1302 -          }
 62.1303 -        case 163: break;
 62.1304 -        case 72: 
 62.1305 -          { return createSymbol(Ada95ASTSymbols.ENTRY);
 62.1306 -          }
 62.1307 -        case 164: break;
 62.1308 -        case 54: 
 62.1309 -          { return createSymbol(Ada95ASTSymbols.NOT);
 62.1310 -          }
 62.1311 -        case 165: break;
 62.1312 -        case 35: 
 62.1313 -          { return createSymbol(Ada95ASTSymbols.DO);
 62.1314 -          }
 62.1315 -        case 166: break;
 62.1316 -        case 33: 
 62.1317 -          { return createSymbol(Ada95ASTSymbols.IS);
 62.1318 -          }
 62.1319 -        case 167: break;
 62.1320 -        case 79: 
 62.1321 -          { return createSymbol(Ada95ASTSymbols.DELTA);
 62.1322 -          }
 62.1323 -        case 168: break;
 62.1324 -        case 77: 
 62.1325 -          { return createSymbol(Ada95ASTSymbols.RANGE);
 62.1326 -          }
 62.1327 -        case 169: break;
 62.1328 -        case 2: 
 62.1329 -          { return createFullSymbol(Ada95ASTSymbols.DECIMAL_LITERAL);
 62.1330 -          }
 62.1331 -        case 170: break;
 62.1332 -        case 3: 
 62.1333 -          { return createFullSymbol(Ada95ASTSymbols.IDENTIFIER);
 62.1334 -          }
 62.1335 -        case 171: break;
 62.1336 -        case 19: 
 62.1337 -          { return createSymbol(Ada95ASTSymbols.LT);
 62.1338 -          }
 62.1339 -        case 172: break;
 62.1340 -        case 82: 
 62.1341 -          { return createSymbol(Ada95ASTSymbols.ACCESS);
 62.1342 -          }
 62.1343 -        case 173: break;
 62.1344 -        case 93: 
 62.1345 -          { return createSymbol(Ada95ASTSymbols.REQUEUE);
 62.1346 -          }
 62.1347 -        case 174: break;
 62.1348 -        case 101: 
 62.1349 -          { return createSymbol(Ada95ASTSymbols.ABSTRACT);
 62.1350 -          }
 62.1351 -        case 175: break;
 62.1352 -        case 44: 
 62.1353 -          { popState();
 62.1354 -    return createSymbol(Ada95ASTSymbols.DOT_DOT);
 62.1355 -          }
 62.1356 -        case 176: break;
 62.1357 -        case 5: 
 62.1358 -          { return createSymbol(Ada95ASTSymbols.MINUS);
 62.1359 -          }
 62.1360 -        case 177: break;
 62.1361 -        case 62: 
 62.1362 -          { return createSymbol(Ada95ASTSymbols.TASK);
 62.1363 -          }
 62.1364 -        case 178: break;
 62.1365 -        case 107: 
 62.1366 -          { return createSymbol(Ada95ASTSymbols.PROCEDURE);
 62.1367 -          }
 62.1368 -        case 179: break;
 62.1369 -        case 88: 
 62.1370 -          { return createSymbol(Ada95ASTSymbols.SELECT);
 62.1371 -          }
 62.1372 -        case 180: break;
 62.1373 -        case 40: 
 62.1374 -          { return createSymbol(Ada95ASTSymbols.BOX);
 62.1375 -          }
 62.1376 -        case 181: break;
 62.1377 -        case 48: 
 62.1378 -          { return createSymbol(Ada95ASTSymbols.ABS);
 62.1379 -          }
 62.1380 -        case 182: break;
 62.1381 -        case 89: 
 62.1382 -          { return createSymbol(Ada95ASTSymbols.PRAGMA);
 62.1383 -          }
 62.1384 -        case 183: break;
 62.1385 -        case 34: 
 62.1386 -          { return createSymbol(Ada95ASTSymbols.IN);
 62.1387 -          }
 62.1388 -        case 184: break;
 62.1389 -        case 92: 
 62.1390 -          { return createSymbol(Ada95ASTSymbols.REVERSE);
 62.1391 -          }
 62.1392 -        case 185: break;
 62.1393 -        case 9: 
 62.1394 -          { return createSymbol(Ada95ASTSymbols.TICK);
 62.1395 -          }
 62.1396 -        case 186: break;
 62.1397 -        case 46: 
 62.1398 -          { return createSymbol(Ada95ASTSymbols.END);
 62.1399 -          }
 62.1400 -        case 187: break;
 62.1401 -        case 67: 
 62.1402 -          { return createSymbol(Ada95ASTSymbols.NULL);
 62.1403 -          }
 62.1404 -        case 188: break;
 62.1405 -        case 55: 
 62.1406 -          { return createSymbol(Ada95ASTSymbols.XOR);
 62.1407 -          }
 62.1408 -        case 189: break;
 62.1409 -        case 69: 
 62.1410 -          { return createSymbol(Ada95ASTSymbols.WITH);
 62.1411 -          }
 62.1412 -        case 190: break;
 62.1413 -        case 91: 
 62.1414 -          { return createSymbol(Ada95ASTSymbols.RENAMES);
 62.1415 -          }
 62.1416 -        case 191: break;
 62.1417 -        case 7: 
 62.1418 -          { return createSymbol(Ada95ASTSymbols.COLON);
 62.1419 -          }
 62.1420 -        case 192: break;
 62.1421 -        case 74: 
 62.1422 -          { return createSymbol(Ada95ASTSymbols.ARRAY);
 62.1423 -          }
 62.1424 -        case 193: break;
 62.1425 -        case 4: 
 62.1426 -          { return createSymbol(Ada95ASTSymbols.PLUS);
 62.1427 -          }
 62.1428 -        case 194: break;
 62.1429 -        case 31: 
 62.1430 -          { return createSymbol(Ada95ASTSymbols.OR);
 62.1431 -          }
 62.1432 -        case 195: break;
 62.1433 -        case 52: 
 62.1434 -          { return createSymbol(Ada95ASTSymbols.REM);
 62.1435 -          }
 62.1436 -        case 196: break;
 62.1437 -        case 71: 
 62.1438 -          { return createSymbol(Ada95ASTSymbols.ELSIF);
 62.1439 -          }
 62.1440 -        case 197: break;
 62.1441 -        case 28: 
 62.1442 -          { return createFullSymbol(Ada95ASTSymbols.STRING_LITERAL);
 62.1443 -          }
 62.1444 -        case 198: break;
 62.1445 -        case 99: 
 62.1446 -          { return createSymbol(Ada95ASTSymbols.GENERIC);
 62.1447 -          }
 62.1448 -        case 199: break;
 62.1449 -        case 56: 
 62.1450 -          { return createSymbol(Ada95ASTSymbols.USE);
 62.1451 -          }
 62.1452 -        case 200: break;
 62.1453 -        case 80: 
 62.1454 -          { return createSymbol(Ada95ASTSymbols.UNTIL);
 62.1455 -          }
 62.1456 -        case 201: break;
 62.1457 -        case 98: 
 62.1458 -          { return createSymbol(Ada95ASTSymbols.DECLARE);
 62.1459 -          }
 62.1460 -        case 202: break;
 62.1461 -        case 86: 
 62.1462 -          { return createSymbol(Ada95ASTSymbols.RECORD);
 62.1463 -          }
 62.1464 -        case 203: break;
 62.1465 -        case 76: 
 62.1466 -          { return createSymbol(Ada95ASTSymbols.RAISE);
 62.1467 -          }
 62.1468 -        case 204: break;
 62.1469 -        case 15: 
 62.1470 -          { return createSymbol(Ada95ASTSymbols.SLASH);
 62.1471 -          }
 62.1472 -        case 205: break;
 62.1473 -        case 81: 
 62.1474 -          { return createSymbol(Ada95ASTSymbols.WHILE);
 62.1475 -          }
 62.1476 -        case 206: break;
 62.1477 -        case 64: 
 62.1478 -          { return createSymbol(Ada95ASTSymbols.THEN);
 62.1479 -          }
 62.1480 -        case 207: break;
 62.1481 -        case 68: 
 62.1482 -          { return createSymbol(Ada95ASTSymbols.GOTO);
 62.1483 -          }
 62.1484 -        case 208: break;
 62.1485 -        case 1: 
 62.1486 -          { // do nothing
 62.1487 -          }
 62.1488 -        case 209: break;
 62.1489 -        case 14: 
 62.1490 -          { return createSymbol(Ada95ASTSymbols.COMMA);
 62.1491 -          }
 62.1492 -        case 210: break;
 62.1493 -        case 37: 
 62.1494 -          { return createSymbol(Ada95ASTSymbols.INEQ);
 62.1495 -          }
 62.1496 -        case 211: break;
 62.1497 -        case 84: 
 62.1498 -          { return createSymbol(Ada95ASTSymbols.OTHERS);
 62.1499 -          }
 62.1500 -        case 212: break;
 62.1501 -        case 25: 
 62.1502 -          { handleCommentStart();
 62.1503 -	yybegin(ST_LINE_COMMENT);
 62.1504 -          }
 62.1505 -        case 213: break;
 62.1506 -        case 8: 
 62.1507 -          { 
 62.1508 -          }
 62.1509 -        case 214: break;
 62.1510 -        default: 
 62.1511 -          if (zzInput == YYEOF && (zzStartRead == zzCurrentPos)) {
 62.1512 -            zzAtEOF = true;
 62.1513 -            zzDoEOF();
 62.1514 -            switch (zzLexicalState) {
 62.1515 -            case YYINITIAL: {
 62.1516 -              if (yytext().length() > 0) {
 62.1517 -                yypushback(1);  // backup eof
 62.1518 -                comment = yytext();
 62.1519 -              }
 62.1520 -              else {
 62.1521 -                return createSymbol(Ada95ASTSymbols.EOF);
 62.1522 -              }
 62.1523 -            }
 62.1524 -            case 333: break;
 62.1525 -            default:
 62.1526 -              {     return createSymbol(Ada95ASTSymbols.EOF);
 62.1527 - }
 62.1528 -            }
 62.1529 -          } 
 62.1530 -          else {
 62.1531 -            zzScanError(ZZ_NO_MATCH);
 62.1532 -          }
 62.1533 -      }
 62.1534 -    }
 62.1535 -  }
 62.1536 -
 62.1537 -
 62.1538 -}
    63.1 --- a/ada.editor/src/org/netbeans/modules/ada/editor/lexer/Ada95SyntaxLexer.java	Tue Oct 02 21:55:21 2012 -0400
    63.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    63.3 @@ -1,1735 +0,0 @@
    63.4 -/* The following code was generated by JFlex 1.4.2 on 08/02/09 10.47 */
    63.5 -
    63.6 -/*
    63.7 - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
    63.8 - *
    63.9 - * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
   63.10 - *
   63.11 - * The contents of this file are subject to the terms of either the GNU
   63.12 - * General Public License Version 2 only ("GPL") or the Common
   63.13 - * Development and Distribution License("CDDL") (collectively, the
   63.14 - * "License"). You may not use this file except in compliance with the
   63.15 - * License. You can obtain a copy of the License at
   63.16 - * http://www.netbeans.org/cddl-gplv2.html
   63.17 - * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
   63.18 - * specific language governing permissions and limitations under the
   63.19 - * License.  When distributing the software, include this License Header
   63.20 - * Notice in each file and include the License file at
   63.21 - * nbbuild/licenses/CDDL-GPL-2-CP.  Sun designates this
   63.22 - * particular file as subject to the "Classpath" exception as provided
   63.23 - * by Sun in the GPL Version 2 section of the License file that
   63.24 - * accompanied this code. If applicable, add the following below the
   63.25 - * License Header, with the fields enclosed by brackets [] replaced by
   63.26 - * your own identifying information:
   63.27 - * "Portions Copyrighted [year] [name of copyright owner]"
   63.28 - *
   63.29 - * If you wish your version of this file to be governed by only the CDDL
   63.30 - * or only the GPL Version 2, indicate your decision by adding
   63.31 - * "[Contributor] elects to include this software in this distribution
   63.32 - * under the [CDDL or GPL Version 2] license." If you do not indicate a
   63.33 - * single choice of license, a recipient has the option to distribute
   63.34 - * your version of this file under either the CDDL, the GPL Version 2 or
   63.35 - * to extend the choice of license to its licensees as provided above.
   63.36 - * However, if you add GPL Version 2 code and therefore, elected the GPL
   63.37 - * Version 2 license, then the option applies only if the new code is
   63.38 - * made subject to such option by the copyright holder.
   63.39 - *
   63.40 - * Contributor(s):
   63.41 - *
   63.42 - * Portions Copyrighted 2008 Sun Microsystems, Inc.
   63.43 - */
   63.44 -package org.netbeans.modules.ada.editor.lexer;
   63.45 -
   63.46 -import org.netbeans.spi.lexer.LexerInput;
   63.47 -import org.netbeans.spi.lexer.LexerRestartInfo;
   63.48 -
   63.49 -/**
   63.50 - * This class is a scanner generated by 
   63.51 - * <a href="http://www.jflex.de/">JFlex</a> 1.4.2
   63.52 - * on 08/02/09 10.47 from the specification file
   63.53 - * <tt>C:/hg-repo/release65/contrib/ada.editor/src/org/netbeans/modules/ada/editor/lexer/resources/Ada95SyntaxLexer.flex</tt>
   63.54 - */
   63.55 -public class Ada95SyntaxLexer {
   63.56 -
   63.57 -  /** This character denotes the end of file */
   63.58 -  public static final int YYEOF = LexerInput.EOF;
   63.59 -
   63.60 -  /** initial size of the lookahead buffer */
   63.61 -  private static final int ZZ_BUFFERSIZE = 16384;
   63.62 -
   63.63 -  /** lexical states */
   63.64 -  public static final int ST_HIGHLIGHTING_ERROR = 8;
   63.65 -  public static final int ST_LOOKING_FOR_PROPERTY = 2;
   63.66 -  public static final int YYINITIAL = 0;
   63.67 -  public static final int ST_LINE_COMMENT = 6;
   63.68 -  public static final int ST_CHAR_LITERAL = 4;
   63.69 -
   63.70 -  /**
   63.71 -   * ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l
   63.72 -   * ZZ_LEXSTATE[l+1] is the state in the DFA for the lexical state l
   63.73 -   *                  at the beginning of a line
   63.74 -   * l is of the form l = 2*k, k a non negative integer
   63.75 -   */
   63.76 -  private static final int ZZ_LEXSTATE[] = { 
   63.77 -     0,  0,  1,  1,  2,  2,  3,  3,  4, 4
   63.78 -  };
   63.79 -
   63.80 -  /** 
   63.81 -   * Translates characters to character classes
   63.82 -   */
   63.83 -  private static final String ZZ_CMAP_PACKED = 
   63.84 -    "\11\0\1\13\1\15\2\0\1\17\22\0\1\46\1\62\1\14\1\10"+
   63.85 -    "\2\0\1\50\1\16\1\51\1\52\1\53\1\5\1\54\1\6\1\7"+
   63.86 -    "\1\55\12\1\1\11\1\56\1\57\1\60\1\61\2\0\1\20\1\21"+
   63.87 -    "\1\26\1\32\1\4\1\2\1\35\1\42\1\31\1\47\1\43\1\30"+
   63.88 -    "\1\40\1\33\1\22\1\27\1\45\1\23\1\25\1\24\1\37\1\44"+
   63.89 -    "\1\41\1\36\1\34\1\12\4\0\1\3\1\0\1\20\1\21\1\26"+
   63.90 -    "\1\32\1\4\1\2\1\35\1\42\1\31\1\47\1\43\1\30\1\40"+
   63.91 -    "\1\33\1\22\1\27\1\45\1\23\1\25\1\24\1\37\1\44\1\41"+
   63.92 -    "\1\36\1\34\1\12\1\0\1\62\uff83\0";
   63.93 -
   63.94 -  /** 
   63.95 -   * Translates characters to character classes
   63.96 -   */
   63.97 -  private static final char [] ZZ_CMAP = zzUnpackCMap(ZZ_CMAP_PACKED);
   63.98 -
   63.99 -  /** 
  63.100 -   * Translates DFA states to action switch labels.
  63.101 -   */
  63.102 -  private static final int [] ZZ_ACTION = zzUnpackAction();
  63.103 -
  63.104 -  private static final String ZZ_ACTION_PACKED_0 =
  63.105 -    "\5\0\1\1\1\2\2\3\1\4\1\5\1\6\1\7"+
  63.106 -    "\1\3\1\10\1\1\1\11\21\3\1\12\1\13\1\14"+
  63.107 -    "\1\15\1\16\1\17\1\20\1\21\1\22\1\23\1\24"+
  63.108 -    "\1\25\1\26\1\27\3\30\1\31\1\32\5\0\7\3"+
  63.109 -    "\1\33\1\34\1\35\1\0\1\36\22\0\2\3\1\37"+
  63.110 -    "\5\3\1\40\1\41\22\3\1\42\1\43\1\44\1\3"+
  63.111 -    "\1\45\14\3\1\46\1\47\1\50\1\51\1\52\1\53"+
  63.112 -    "\1\54\1\55\1\0\1\56\1\2\1\0\1\2\1\0"+
  63.113 -    "\1\3\1\57\4\3\1\60\2\3\1\61\56\0\1\3"+
  63.114 -    "\1\62\2\3\1\63\1\3\1\64\4\3\1\65\3\3"+
  63.115 -    "\1\66\32\3\1\67\1\70\3\3\1\71\1\72\1\3"+
  63.116 -    "\1\73\4\3\1\0\1\74\3\3\1\75\2\3\1\0"+
  63.117 -    "\1\3\1\76\5\0\1\77\32\0\1\77\13\0\1\77"+
  63.118 -    "\4\0\1\77\7\3\1\100\11\3\1\101\1\3\1\102"+
  63.119 -    "\1\103\1\104\3\3\1\105\7\3\1\106\6\3\1\107"+
  63.120 -    "\1\3\1\110\1\3\1\111\1\3\1\112\1\3\2\0"+
  63.121 -    "\1\113\1\114\1\3\1\115\1\116\3\0\1\3\32\0"+
  63.122 -    "\1\77\15\0\1\117\1\3\1\120\3\3\1\121\7\3"+
  63.123 -    "\1\122\1\123\17\3\1\124\1\125\2\3\1\126\1\0"+
  63.124 -    "\1\127\1\74\1\0\1\3\2\0\1\130\1\3\6\0"+
  63.125 -    "\1\77\23\0\1\77\3\0\1\3\1\131\1\132\2\3"+
  63.126 -    "\1\133\1\134\1\135\4\3\1\136\1\3\1\137\4\3"+
  63.127 -    "\1\140\6\3\1\141\3\3\2\0\1\3\30\0\1\3"+
  63.128 -    "\1\142\1\143\1\144\1\145\1\146\2\3\1\147\2\3"+
  63.129 -    "\1\150\2\3\1\151\1\152\1\153\1\154\1\155\1\3"+
  63.130 -    "\1\156\1\157\1\160\1\3\17\0\1\77\6\0\1\161"+
  63.131 -    "\1\3\1\162\1\163\4\3\1\164\20\0\1\165\1\166"+
  63.132 -    "\1\167\1\170\1\3\17\0\1\3\20\0\1\3\10\0"+
  63.133 -    "\1\3\5\0\1\3\3\0\1\171\16\0";
  63.134 -
  63.135 -  private static int [] zzUnpackAction() {
  63.136 -    int [] result = new int[692];
  63.137 -    int offset = 0;
  63.138 -    offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
  63.139 -    return result;
  63.140 -  }
  63.141 -
  63.142 -  private static int zzUnpackAction(String packed, int offset, int [] result) {
  63.143 -    int i = 0;       /* index in packed string  */
  63.144 -    int j = offset;  /* index in unpacked array */
  63.145 -    int l = packed.length();
  63.146 -    while (i < l) {
  63.147 -      int count = packed.charAt(i++);
  63.148 -      int value = packed.charAt(i++);
  63.149 -      do result[j++] = value; while (--count > 0);
  63.150 -    }
  63.151 -    return j;
  63.152 -  }
  63.153 -
  63.154 -
  63.155 -  /** 
  63.156 -   * Translates a state to a row index in the transition table
  63.157 -   */
  63.158 -  private static final int [] ZZ_ROWMAP = zzUnpackRowMap();
  63.159 -
  63.160 -  private static final String ZZ_ROWMAP_PACKED_0 =
  63.161 -    "\0\0\0\63\0\146\0\231\0\314\0\146\0\377\0\u0132"+
  63.162 -    "\0\u0165\0\146\0\u0198\0\u01cb\0\u01fe\0\u0231\0\u0264\0\u0297"+
  63.163 -    "\0\u02ca\0\u02fd\0\u0330\0\u0363\0\u0396\0\u03c9\0\u03fc\0\u042f"+
  63.164 -    "\0\u0462\0\u0495\0\u04c8\0\u04fb\0\u052e\0\u0561\0\u0594\0\u05c7"+
  63.165 -    "\0\u05fa\0\u062d\0\146\0\146\0\146\0\u0660\0\146\0\u0693"+
  63.166 -    "\0\146\0\u06c6\0\u06f9\0\u072c\0\146\0\146\0\u075f\0\u0792"+
  63.167 -    "\0\u07c5\0\146\0\u07f8\0\146\0\u082b\0\u085e\0\u0891\0\u08c4"+
  63.168 -    "\0\u08f7\0\u092a\0\u095d\0\u0990\0\u09c3\0\u09f6\0\u0a29\0\u0a5c"+
  63.169 -    "\0\u0a8f\0\146\0\146\0\146\0\u0297\0\u0ac2\0\u0af5\0\u0b28"+
  63.170 -    "\0\u0b5b\0\u0b8e\0\u0bc1\0\u0bf4\0\u0c27\0\u0c5a\0\u0c8d\0\u0cc0"+
  63.171 -    "\0\u0cf3\0\u0d26\0\u0d59\0\u0d8c\0\u0dbf\0\u0df2\0\u0e25\0\u0e58"+
  63.172 -    "\0\u0e8b\0\u0ebe\0\u0231\0\u0ef1\0\u0f24\0\u0f57\0\u0f8a\0\u0fbd"+
  63.173 -    "\0\u0231\0\u0231\0\u0ff0\0\u1023\0\u1056\0\u1089\0\u10bc\0\u10ef"+
  63.174 -    "\0\u1122\0\u1155\0\u1188\0\u11bb\0\u11ee\0\u1221\0\u1254\0\u1287"+
  63.175 -    "\0\u12ba\0\u12ed\0\u1320\0\u1353\0\u0231\0\u0231\0\u1386\0\u13b9"+
  63.176 -    "\0\u0231\0\u13ec\0\u141f\0\u1452\0\u1485\0\u14b8\0\u14eb\0\u151e"+
  63.177 -    "\0\u1551\0\u1584\0\u15b7\0\u15ea\0\u161d\0\146\0\146\0\146"+
  63.178 -    "\0\146\0\146\0\146\0\146\0\146\0\u1650\0\146\0\u1683"+
  63.179 -    "\0\u16b6\0\u16e9\0\u171c\0\u174f\0\u0231\0\u1782\0\u17b5\0\u17e8"+
  63.180 -    "\0\u181b\0\u184e\0\u1881\0\u18b4\0\146\0\u18e7\0\u191a\0\u194d"+
  63.181 -    "\0\u1980\0\u19b3\0\u19e6\0\u1a19\0\u1a4c\0\u1a7f\0\u1ab2\0\u1ae5"+
  63.182 -    "\0\u1b18\0\u1b4b\0\u1b7e\0\u1bb1\0\u1be4\0\u1c17\0\u1c4a\0\u1c7d"+
  63.183 -    "\0\u1cb0\0\u1ce3\0\u1d16\0\u1d49\0\u1d7c\0\u1daf\0\u1de2\0\u1e15"+
  63.184 -    "\0\u1e48\0\u1e7b\0\u1eae\0\u1ee1\0\u1f14\0\u1f47\0\u1f7a\0\u1fad"+
  63.185 -    "\0\u1fe0\0\u2013\0\u2046\0\u2079\0\u20ac\0\u20df\0\u2112\0\u2145"+
  63.186 -    "\0\u2178\0\u21ab\0\u21de\0\u2211\0\u2244\0\u2277\0\u22aa\0\u0231"+
  63.187 -    "\0\u22dd\0\u0231\0\u2310\0\u2343\0\u2376\0\u23a9\0\u0231\0\u23dc"+
  63.188 -    "\0\u240f\0\u2442\0\u0231\0\u2475\0\u24a8\0\u24db\0\u250e\0\u2541"+
  63.189 -    "\0\u2574\0\u25a7\0\u25da\0\u260d\0\u2640\0\u2673\0\u26a6\0\u26d9"+
  63.190 -    "\0\u270c\0\u273f\0\u2772\0\u27a5\0\u27d8\0\u280b\0\u283e\0\u2871"+
  63.191 -    "\0\u28a4\0\u28d7\0\u290a\0\u293d\0\u2970\0\u0231\0\u0231\0\u29a3"+
  63.192 -    "\0\u29d6\0\u2a09\0\u0231\0\u0231\0\u2a3c\0\u0231\0\u2a6f\0\u2aa2"+
  63.193 -    "\0\u2ad5\0\u2b08\0\u2b3b\0\u2b6e\0\u2ba1\0\u2bd4\0\u2c07\0\u0231"+
  63.194 -    "\0\u2c3a\0\u2c6d\0\u2ca0\0\u2cd3\0\u0231\0\u2d06\0\u2d39\0\u2d6c"+
  63.195 -    "\0\u2d9f\0\u2dd2\0\146\0\u2e05\0\u2e38\0\u2e6b\0\u2e9e\0\u2ed1"+
  63.196 -    "\0\u2f04\0\u2f37\0\u2f6a\0\u2f9d\0\u2fd0\0\u3003\0\u3036\0\u3069"+
  63.197 -    "\0\u309c\0\u30cf\0\u3102\0\u3135\0\u3168\0\u319b\0\u31ce\0\u3201"+
  63.198 -    "\0\u3234\0\u3267\0\u329a\0\u32cd\0\u3300\0\u3333\0\u3366\0\u3399"+
  63.199 -    "\0\u33cc\0\u33ff\0\u3432\0\u3465\0\u3498\0\u34cb\0\u34fe\0\u3531"+
  63.200 -    "\0\u3564\0\u3597\0\u35ca\0\u35fd\0\u3630\0\u3663\0\u3696\0\u36c9"+
  63.201 -    "\0\u36fc\0\u372f\0\u3762\0\u3795\0\u37c8\0\u37fb\0\u0231\0\u382e"+
  63.202 -    "\0\u3861\0\u3894\0\u38c7\0\u38fa\0\u392d\0\u3960\0\u3993\0\u39c6"+
  63.203 -    "\0\u0231\0\u39f9\0\u0231\0\u0231\0\u0231\0\u3a2c\0\u3a5f\0\u3a92"+
  63.204 -    "\0\u0231\0\u3ac5\0\u3af8\0\u3b2b\0\u3b5e\0\u3b91\0\u3bc4\0\u3bf7"+
  63.205 -    "\0\u0231\0\u3c2a\0\u3c5d\0\u3c90\0\u3cc3\0\u3cf6\0\u3d29\0\u0231"+
  63.206 -    "\0\u3d5c\0\u0231\0\u3d8f\0\u0231\0\u3dc2\0\u0231\0\u3df5\0\u3e28"+
  63.207 -    "\0\u3e5b\0\u0231\0\u0231\0\u3e8e\0\u0231\0\u0231\0\u3ec1\0\u3ef4"+
  63.208 -    "\0\u3f27\0\u3f5a\0\u3f8d\0\u3fc0\0\u3ff3\0\u4026\0\u4059\0\u408c"+
  63.209 -    "\0\u40bf\0\u40f2\0\u4125\0\u4158\0\u418b\0\u41be\0\u41f1\0\u4224"+
  63.210 -    "\0\u4257\0\u428a\0\u42bd\0\u42f0\0\u4323\0\u4356\0\u4389\0\u43bc"+
  63.211 -    "\0\u43ef\0\u4422\0\u4455\0\u4488\0\u44bb\0\u44ee\0\u4521\0\u4554"+
  63.212 -    "\0\u4587\0\u45ba\0\u45ed\0\u4620\0\u4653\0\u4686\0\u46b9\0\u46ec"+
  63.213 -    "\0\u471f\0\u4752\0\u0231\0\u4785\0\u0231\0\u47b8\0\u47eb\0\u481e"+
  63.214 -    "\0\u0231\0\u4851\0\u4884\0\u48b7\0\u48ea\0\u491d\0\u4950\0\u4983"+
  63.215 -    "\0\u0231\0\u0231\0\u49b6\0\u49e9\0\u4a1c\0\u4a4f\0\u4a82\0\u4ab5"+
  63.216 -    "\0\u4ae8\0\u4b1b\0\u4b4e\0\u4b81\0\u4bb4\0\u4be7\0\u4c1a\0\u4c4d"+
  63.217 -    "\0\u4c80\0\u0231\0\u0231\0\u4cb3\0\u4ce6\0\u0231\0\u4d19\0\u0231"+
  63.218 -    "\0\u4d4c\0\u4d7f\0\u4db2\0\u4de5\0\u4e18\0\146\0\u4e4b\0\u4e7e"+
  63.219 -    "\0\u4eb1\0\u4ee4\0\u4f17\0\u4f4a\0\u4f7d\0\u42f0\0\u4fb0\0\u4fe3"+
  63.220 -    "\0\u5016\0\u5049\0\u507c\0\u50af\0\u50e2\0\u5115\0\u5148\0\u517b"+
  63.221 -    "\0\u51ae\0\u51e1\0\u5214\0\u5247\0\u527a\0\u52ad\0\u52e0\0\u5313"+
  63.222 -    "\0\u5346\0\u5379\0\u53ac\0\u53df\0\u5412\0\u5445\0\u0231\0\u0231"+
  63.223 -    "\0\u5478\0\u54ab\0\u0231\0\u0231\0\u0231\0\u54de\0\u5511\0\u5544"+
  63.224 -    "\0\u5577\0\u0231\0\u55aa\0\u0231\0\u55dd\0\u5610\0\u5643\0\u5676"+
  63.225 -    "\0\u0231\0\u56a9\0\u56dc\0\u570f\0\u5742\0\u5775\0\u57a8\0\u0231"+
  63.226 -    "\0\u57db\0\u580e\0\u5841\0\u5874\0\u58a7\0\u58da\0\u590d\0\u5940"+
  63.227 -    "\0\u5973\0\u59a6\0\u59d9\0\u5a0c\0\u5a3f\0\u5a72\0\u5aa5\0\u5ad8"+
  63.228 -    "\0\u5b0b\0\u5b3e\0\u5b71\0\u5ba4\0\u5bd7\0\u5c0a\0\u5c3d\0\u5c70"+
  63.229 -    "\0\u5ca3\0\u5cd6\0\u5d09\0\u5d3c\0\u5d6f\0\u5da2\0\u5dd5\0\u0231"+
  63.230 -    "\0\u0231\0\u0231\0\u0231\0\u0231\0\u5e08\0\u5e3b\0\u0231\0\u5e6e"+
  63.231 -    "\0\u5ea1\0\u0231\0\u5ed4\0\u5f07\0\u0231\0\u0231\0\u0231\0\u0231"+
  63.232 -    "\0\u0231\0\u5f3a\0\u0231\0\146\0\146\0\u5f6d\0\u5fa0\0\u5fd3"+
  63.233 -    "\0\u6006\0\u6039\0\u606c\0\u609f\0\u60d2\0\u6105\0\u6138\0\u616b"+
  63.234 -    "\0\u619e\0\u61d1\0\u6204\0\u6237\0\u626a\0\u629d\0\u62d0\0\u6303"+
  63.235 -    "\0\u6336\0\u6369\0\u639c\0\u63cf\0\u0231\0\u6402\0\u0231\0\u0231"+
  63.236 -    "\0\u6435\0\u6468\0\u649b\0\u64ce\0\u0231\0\u6501\0\u6534\0\u6567"+
  63.237 -    "\0\u659a\0\u65cd\0\u6600\0\u6633\0\u6666\0\u6699\0\u66cc\0\u66ff"+
  63.238 -    "\0\u6732\0\u6765\0\u6798\0\u67cb\0\u67fe\0\u0231\0\u0231\0\u0231"+
  63.239 -    "\0\u0231\0\u6831\0\u6864\0\u6897\0\u68ca\0\u68fd\0\u6930\0\u6963"+
  63.240 -    "\0\u6996\0\u69c9\0\u69fc\0\u6a2f\0\u6a62\0\u6a95\0\u6ac8\0\u6afb"+
  63.241 -    "\0\u6b2e\0\u6b61\0\u6b94\0\u6bc7\0\u6bfa\0\u6c2d\0\u6c60\0\u6c93"+
  63.242 -    "\0\u6cc6\0\u6cf9\0\u6d2c\0\u6d5f\0\u6d92\0\u6dc5\0\u6df8\0\u6e2b"+
  63.243 -    "\0\u6e5e\0\u6e91\0\u6ec4\0\u6ef7\0\u6f2a\0\u6f5d\0\u6f90\0\u6fc3"+
  63.244 -    "\0\u6ff6\0\u7029\0\u705c\0\u708f\0\u70c2\0\u70f5\0\u7128\0\u715b"+
  63.245 -    "\0\u718e\0\u71c1\0\u71f4\0\u7227\0\u725a\0\u0231\0\u728d\0\u72c0"+
  63.246 -    "\0\u72f3\0\u7326\0\u7359\0\u738c\0\u73bf\0\u73f2\0\u7425\0\u7458"+
  63.247 -    "\0\u748b\0\u74be\0\u74f1\0\u7524";
  63.248 -
  63.249 -  private static int [] zzUnpackRowMap() {
  63.250 -    int [] result = new int[692];
  63.251 -    int offset = 0;
  63.252 -    offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
  63.253 -    return result;
  63.254 -  }
  63.255 -
  63.256 -  private static int zzUnpackRowMap(String packed, int offset, int [] result) {
  63.257 -    int i = 0;  /* index in packed string  */
  63.258 -    int j = offset;  /* index in unpacked array */
  63.259 -    int l = packed.length();
  63.260 -    while (i < l) {
  63.261 -      int high = packed.charAt(i++) << 16;
  63.262 -      result[j++] = high | packed.charAt(i++);
  63.263 -    }
  63.264 -    return j;
  63.265 -  }
  63.266 -
  63.267 -  /** 
  63.268 -   * The transition table of the DFA
  63.269 -   */
  63.270 -  private static final int [] ZZ_TRANS = zzUnpackTrans();
  63.271 -
  63.272 -  private static final String ZZ_TRANS_PACKED_0 =
  63.273 -    "\1\6\1\7\1\10\1\6\1\11\1\12\1\13\1\14"+
  63.274 -    "\1\6\1\15\1\16\1\17\1\20\1\17\1\21\1\17"+
  63.275 -    "\1\22\1\23\1\24\1\25\1\26\1\27\1\30\1\31"+
  63.276 -    "\1\32\1\33\1\34\1\35\1\16\1\36\1\37\1\40"+
  63.277 -    "\1\41\1\42\4\16\1\17\1\16\1\43\1\44\1\45"+
  63.278 -    "\1\46\1\47\1\50\1\51\1\52\1\53\1\54\1\55"+
  63.279 -    "\2\56\1\57\1\56\1\57\2\56\1\60\2\56\1\57"+
  63.280 -    "\5\56\26\57\1\56\1\57\13\56\63\0\15\61\1\62"+
  63.281 -    "\1\61\1\63\43\61\13\64\1\65\1\64\1\65\1\64"+
  63.282 -    "\1\65\26\64\1\65\14\64\1\0\1\7\1\0\1\66"+
  63.283 -    "\1\67\2\0\1\70\2\71\52\0\2\16\1\72\1\16"+
  63.284 -    "\5\0\1\16\5\0\1\73\1\16\1\74\5\16\1\75"+
  63.285 -    "\6\16\1\76\6\16\1\0\1\16\14\0\2\16\1\72"+
  63.286 -    "\1\16\5\0\1\16\5\0\10\16\1\77\2\16\1\100"+
  63.287 -    "\2\16\1\101\7\16\1\0\1\16\21\0\1\102\63\0"+
  63.288 -    "\1\103\133\0\1\104\3\0\2\16\1\72\1\16\5\0"+
  63.289 -    "\1\16\5\0\26\16\1\0\1\16\26\0\1\17\1\0"+
  63.290 -    "\1\17\1\0\1\17\26\0\1\17\14\0\14\105\1\106"+
  63.291 -    "\1\0\45\105\2\107\1\110\1\107\1\111\10\107\1\0"+
  63.292 -    "\2\107\1\112\1\113\1\114\1\115\1\116\1\117\1\120"+
  63.293 -    "\1\121\1\122\1\123\1\124\4\107\1\125\1\126\1\127"+
  63.294 -    "\2\107\1\130\16\107\1\0\2\16\1\72\1\16\5\0"+
  63.295 -    "\1\16\5\0\1\16\1\131\1\16\1\132\1\133\1\16"+
  63.296 -    "\1\134\1\16\1\135\2\16\1\136\12\16\1\0\1\16"+
  63.297 -    "\14\0\2\16\1\72\1\137\5\0\1\16\5\0\2\16"+
  63.298 -    "\1\140\23\16\1\0\1\16\14\0\1\16\1\141\1\72"+
  63.299 -    "\1\16\5\0\1\16\5\0\3\16\1\142\1\143\12\16"+
  63.300 -    "\1\144\6\16\1\0\1\16\14\0\2\16\1\72\1\145"+
  63.301 -    "\5\0\1\16\5\0\1\146\25\16\1\0\1\16\14\0"+
  63.302 -    "\2\16\1\72\1\147\5\0\1\16\5\0\1\150\2\16"+
  63.303 -    "\1\151\10\16\1\152\5\16\1\153\3\16\1\0\1\16"+
  63.304 -    "\14\0\2\16\1\72\1\154\5\0\1\16\5\0\17\16"+
  63.305 -    "\1\155\6\16\1\0\1\16\14\0\2\16\1\72\1\16"+
  63.306 -    "\5\0\1\16\5\0\1\156\1\16\1\157\17\16\1\160"+
  63.307 -    "\3\16\1\0\1\16\14\0\2\16\1\72\1\16\5\0"+
  63.308 -    "\1\16\5\0\1\161\2\16\1\162\22\16\1\0\1\16"+
  63.309 -    "\14\0\2\16\1\72\1\16\5\0\1\16\5\0\2\16"+
  63.310 -    "\1\163\6\16\1\164\14\16\1\0\1\16\14\0\1\16"+
  63.311 -    "\1\165\1\72\1\16\5\0\1\16\5\0\5\16\1\166"+
  63.312 -    "\5\16\1\167\12\16\1\0\1\16\14\0\2\16\1\72"+
  63.313 -    "\1\170\5\0\1\16\5\0\2\16\1\171\6\16\1\172"+
  63.314 -    "\14\16\1\0\1\16\14\0\2\16\1\72\1\173\5\0"+
  63.315 -    "\1\16\5\0\2\16\1\174\14\16\1\175\6\16\1\0"+
  63.316 -    "\1\16\14\0\2\16\1\72\1\176\5\0\1\16\5\0"+
  63.317 -    "\2\16\1\177\23\16\1\0\1\16\14\0\2\16\1\72"+
  63.318 -    "\1\16\5\0\1\16\5\0\2\16\1\200\23\16\1\0"+
  63.319 -    "\1\16\14\0\2\16\1\72\1\16\5\0\1\16\5\0"+
  63.320 -    "\5\16\1\201\5\16\1\202\12\16\1\0\1\16\14\0"+
  63.321 -    "\2\16\1\72\1\16\5\0\1\16\5\0\2\16\1\203"+
  63.322 -    "\23\16\1\0\1\16\14\0\2\16\1\72\1\16\5\0"+
  63.323 -    "\1\16\5\0\11\16\1\204\10\16\1\205\3\16\1\0"+
  63.324 -    "\1\16\66\0\1\206\67\0\1\207\61\0\1\210\1\211"+
  63.325 -    "\1\212\62\0\1\213\61\0\1\214\1\215\2\0\2\57"+
  63.326 -    "\1\216\1\57\5\0\1\57\5\0\26\57\1\0\1\57"+
  63.327 -    "\22\0\1\217\53\0\15\61\1\62\1\61\1\62\43\61"+
  63.328 -    "\15\0\1\62\60\0\1\65\1\0\1\65\1\0\1\65"+
  63.329 -    "\26\0\1\65\15\0\1\7\62\0\1\220\3\0\2\221"+
  63.330 -    "\55\0\1\222\62\0\2\223\1\0\1\223\13\0\2\223"+
  63.331 -    "\4\0\1\223\3\0\1\223\31\0\2\16\1\0\1\16"+
  63.332 -    "\5\0\1\16\5\0\26\16\1\0\1\16\14\0\2\16"+
  63.333 -    "\1\72\1\16\5\0\1\16\5\0\10\16\1\224\15\16"+
  63.334 -    "\1\0\1\16\14\0\2\16\1\72\1\16\5\0\1\16"+
  63.335 -    "\5\0\3\16\1\225\22\16\1\0\1\16\14\0\2\16"+
  63.336 -    "\1\72\1\16\5\0\1\16\5\0\2\16\1\226\23\16"+
  63.337 -    "\1\0\1\16\14\0\2\16\1\72\1\16\5\0\1\16"+
  63.338 -    "\5\0\13\16\1\227\12\16\1\0\1\16\14\0\2\16"+
  63.339 -    "\1\72\1\16\5\0\1\16\5\0\5\16\1\230\20\16"+
  63.340 -    "\1\0\1\16\14\0\2\16\1\72\1\16\5\0\1\16"+
  63.341 -    "\5\0\4\16\1\231\5\16\1\232\13\16\1\0\1\16"+
  63.342 -    "\14\0\2\16\1\72\1\16\5\0\1\16\5\0\6\16"+
  63.343 -    "\1\233\2\16\1\234\14\16\1\0\1\16\27\0\1\105"+
  63.344 -    "\64\0\1\235\62\0\1\235\3\0\1\236\1\237\4\0"+
  63.345 -    "\1\240\1\241\47\0\1\235\17\0\1\242\26\0\1\243"+
  63.346 -    "\13\0\1\235\7\0\1\244\1\0\1\245\1\0\1\246"+
  63.347 -    "\46\0\1\235\1\0\1\247\1\0\1\250\6\0\1\251"+
  63.348 -    "\47\0\1\235\20\0\1\252\27\0\1\253\11\0\1\235"+
  63.349 -    "\1\0\1\254\1\0\1\255\44\0\1\256\11\0\1\235"+
  63.350 -    "\1\0\1\257\2\0\1\260\55\0\1\235\1\0\1\261"+
  63.351 -    "\3\0\1\262\1\0\1\263\2\0\1\264\5\0\1\265"+
  63.352 -    "\1\266\26\0\1\267\11\0\1\235\1\0\1\270\1\0"+
  63.353 -    "\1\271\5\0\1\272\50\0\1\235\1\0\1\273\1\0"+
  63.354 -    "\1\274\44\0\1\275\11\0\1\235\1\0\1\276\60\0"+
  63.355 -    "\1\235\13\0\1\277\1\300\4\0\1\301\26\0\1\302"+
  63.356 -    "\11\0\1\235\12\0\1\303\47\0\1\235\14\0\1\304"+
  63.357 -    "\45\0\1\235\1\0\1\305\1\0\1\306\6\0\1\307"+
  63.358 -    "\47\0\1\235\4\0\1\310\5\0\1\311\35\0\1\312"+
  63.359 -    "\11\0\1\235\1\0\1\313\43\0\2\16\1\72\1\16"+
  63.360 -    "\5\0\1\16\5\0\2\16\1\314\2\16\1\315\20\16"+
  63.361 -    "\1\0\1\16\14\0\2\16\1\72\1\16\5\0\1\16"+
  63.362 -    "\5\0\3\16\1\316\22\16\1\0\1\16\14\0\2\16"+
  63.363 -    "\1\72\1\16\5\0\1\16\5\0\6\16\1\317\17\16"+
  63.364 -    "\1\0\1\16\14\0\2\16\1\72\1\16\5\0\1\16"+
  63.365 -    "\5\0\10\16\1\320\1\321\14\16\1\0\1\16\14\0"+
  63.366 -    "\2\16\1\72\1\16\5\0\1\16\5\0\12\16\1\322"+
  63.367 -    "\13\16\1\0\1\16\14\0\2\16\1\72\1\16\5\0"+
  63.368 -    "\1\16\5\0\15\16\1\323\10\16\1\0\1\16\14\0"+
  63.369 -    "\2\16\1\72\1\16\5\0\1\16\5\0\2\16\1\324"+
  63.370 -    "\7\16\1\325\13\16\1\0\1\16\14\0\2\16\1\72"+
  63.371 -    "\1\16\5\0\1\16\5\0\22\16\1\326\3\16\1\0"+
  63.372 -    "\1\16\14\0\2\16\1\72\1\16\5\0\1\16\5\0"+
  63.373 -    "\4\16\1\327\21\16\1\0\1\16\14\0\2\16\1\72"+
  63.374 -    "\1\16\5\0\1\16\5\0\4\16\1\330\1\16\1\331"+
  63.375 -    "\4\16\1\332\4\16\1\333\3\16\1\334\1\335\1\0"+
  63.376 -    "\1\16\14\0\2\16\1\72\1\16\5\0\1\16\5\0"+
  63.377 -    "\11\16\1\336\1\16\1\337\12\16\1\0\1\16\14\0"+
  63.378 -    "\2\16\1\72\1\16\5\0\1\16\5\0\3\16\1\340"+
  63.379 -    "\22\16\1\0\1\16\14\0\2\16\1\72\1\16\5\0"+
  63.380 -    "\1\16\5\0\5\16\1\341\7\16\1\342\10\16\1\0"+
  63.381 -    "\1\16\14\0\2\16\1\72\1\16\5\0\1\16\5\0"+
  63.382 -    "\17\16\1\343\6\16\1\0\1\16\14\0\2\16\1\72"+
  63.383 -    "\1\16\5\0\1\16\5\0\7\16\1\344\16\16\1\0"+
  63.384 -    "\1\16\14\0\2\16\1\72\1\345\5\0\1\16\5\0"+
  63.385 -    "\26\16\1\0\1\16\14\0\2\16\1\72\1\16\5\0"+
  63.386 -    "\1\16\5\0\7\16\1\346\1\347\15\16\1\0\1\16"+
  63.387 -    "\14\0\2\16\1\72\1\16\5\0\1\16\5\0\1\16"+
  63.388 -    "\1\350\24\16\1\0\1\16\14\0\2\16\1\72\1\16"+
  63.389 -    "\5\0\1\16\5\0\5\16\1\351\20\16\1\0\1\16"+
  63.390 -    "\14\0\2\16\1\72\1\16\5\0\1\16\5\0\13\16"+
  63.391 -    "\1\352\12\16\1\0\1\16\14\0\2\16\1\72\1\16"+
  63.392 -    "\5\0\1\16\5\0\1\353\25\16\1\0\1\16\14\0"+
  63.393 -    "\2\16\1\72\1\16\5\0\1\16\5\0\6\16\1\354"+
  63.394 -    "\17\16\1\0\1\16\14\0\2\16\1\72\1\16\5\0"+
  63.395 -    "\1\16\5\0\1\355\1\16\1\356\6\16\1\357\14\16"+
  63.396 -    "\1\0\1\16\14\0\2\16\1\72\1\16\5\0\1\16"+
  63.397 -    "\5\0\2\16\1\360\23\16\1\0\1\16\14\0\2\16"+
  63.398 -    "\1\72\1\16\5\0\1\16\5\0\20\16\1\361\5\16"+
  63.399 -    "\1\0\1\16\14\0\2\16\1\72\1\16\5\0\1\16"+
  63.400 -    "\5\0\4\16\1\362\21\16\1\0\1\16\14\0\2\16"+
  63.401 -    "\1\72\1\16\5\0\1\16\5\0\6\16\1\363\1\16"+
  63.402 -    "\1\364\15\16\1\0\1\16\14\0\2\16\1\72\1\16"+
  63.403 -    "\5\0\1\16\5\0\15\16\1\365\10\16\1\0\1\16"+
  63.404 -    "\14\0\2\16\1\72\1\16\5\0\1\16\5\0\21\16"+
  63.405 -    "\1\366\4\16\1\0\1\16\14\0\2\16\1\72\1\16"+
  63.406 -    "\5\0\1\16\5\0\4\16\1\367\21\16\1\0\1\16"+
  63.407 -    "\14\0\2\16\1\72\1\16\5\0\1\16\5\0\10\16"+
  63.408 -    "\1\370\15\16\1\0\1\16\14\0\2\16\1\72\1\16"+
  63.409 -    "\5\0\1\16\5\0\13\16\1\371\12\16\1\0\1\16"+
  63.410 -    "\14\0\2\16\1\72\1\16\5\0\1\16\5\0\4\16"+
  63.411 -    "\1\372\21\16\1\0\1\16\14\0\2\16\1\72\1\16"+
  63.412 -    "\5\0\1\16\5\0\3\16\1\373\22\16\1\0\1\16"+
  63.413 -    "\14\0\2\16\1\72\1\374\5\0\1\16\5\0\26\16"+
  63.414 -    "\1\0\1\16\14\0\2\16\1\72\1\16\5\0\1\16"+
  63.415 -    "\5\0\4\16\1\375\21\16\1\0\1\16\14\0\2\16"+
  63.416 -    "\1\72\1\16\5\0\1\16\5\0\12\16\1\376\13\16"+
  63.417 -    "\1\0\1\16\14\0\2\16\1\72\1\16\5\0\1\16"+
  63.418 -    "\5\0\4\16\1\377\5\16\1\u0100\13\16\1\0\1\16"+
  63.419 -    "\14\0\2\16\1\72\1\u0101\5\0\1\16\5\0\11\16"+
  63.420 -    "\1\u0102\14\16\1\0\1\16\14\0\2\57\1\0\1\57"+
  63.421 -    "\5\0\1\57\5\0\26\57\1\0\1\57\14\0\1\220"+
  63.422 -    "\1\0\1\221\60\0\1\220\62\0\1\222\1\0\1\70"+
  63.423 -    "\1\67\57\0\2\223\1\71\1\223\2\0\1\u0103\2\u0104"+
  63.424 -    "\6\0\2\223\4\0\1\223\3\0\1\223\31\0\2\16"+
  63.425 -    "\1\72\1\16\5\0\1\16\5\0\5\16\1\u0105\20\16"+
  63.426 -    "\1\0\1\16\14\0\2\16\1\72\1\16\5\0\1\16"+
  63.427 -    "\5\0\1\u0106\25\16\1\0\1\16\14\0\2\16\1\72"+
  63.428 -    "\1\16\5\0\1\16\5\0\6\16\1\u0107\17\16\1\0"+
  63.429 -    "\1\16\14\0\2\16\1\72\1\u0108\5\0\1\16\5\0"+
  63.430 -    "\11\16\1\u0109\14\16\1\0\1\16\14\0\2\16\1\72"+
  63.431 -    "\1\16\5\0\1\16\5\0\3\16\1\u010a\22\16\1\0"+
  63.432 -    "\1\16\14\0\2\16\1\72\1\16\5\0\1\16\5\0"+
  63.433 -    "\26\16\1\u010b\1\16\14\0\2\16\1\72\1\u010c\5\0"+
  63.434 -    "\1\16\5\0\26\16\1\0\1\16\14\0\2\16\1\72"+
  63.435 -    "\1\16\5\0\1\16\5\0\4\16\1\u010d\21\16\1\0"+
  63.436 -    "\1\16\36\0\1\u010e\57\0\1\u010f\64\0\1\u0110\63\0"+
  63.437 -    "\1\276\63\0\1\u0111\2\0\1\u0112\57\0\1\u0113\64\0"+
  63.438 -    "\1\u0114\65\0\1\u0115\63\0\1\u0116\14\0\1\u0117\40\0"+
  63.439 -    "\1\u010e\67\0\1\u0118\54\0\1\u0119\62\0\1\300\56\0"+
  63.440 -    "\1\u011a\17\0\1\u011b\55\0\1\u011c\66\0\1\u011d\46\0"+
  63.441 -    "\1\u011e\74\0\1\u0113\64\0\1\u011f\25\0\1\u0120\102\0"+
  63.442 -    "\1\u0121\60\0\1\u0122\54\0\1\u010e\22\0\1\u0123\53\0"+
  63.443 -    "\1\u0124\54\0\1\u0125\73\0\1\u0126\61\0\1\u0127\61\0"+
  63.444 -    "\1\u0128\3\0\1\u0129\3\0\1\u012a\1\u012b\42\0\1\u012c"+
  63.445 -    "\65\0\1\u012d\64\0\1\u012e\55\0\1\u012f\12\0\1\u0130"+
  63.446 -    "\54\0\1\u0131\41\0\1\u0132\105\0\1\u0133\53\0\1\u011c"+
  63.447 -    "\72\0\1\u0134\2\0\1\u0135\64\0\1\u0136\46\0\1\u0137"+
  63.448 -    "\4\0\1\u0138\62\0\1\u0139\7\0\1\u013a\56\0\1\u013b"+
  63.449 -    "\63\0\1\u0113\60\0\1\u013c\63\0\1\u013d\53\0\1\u013e"+
  63.450 -    "\67\0\1\u013f\33\0\2\16\1\72\1\16\5\0\1\16"+
  63.451 -    "\5\0\3\16\1\u0140\22\16\1\0\1\16\14\0\2\16"+
  63.452 -    "\1\72\1\16\5\0\1\16\5\0\4\16\1\u0141\21\16"+
  63.453 -    "\1\0\1\16\14\0\2\16\1\72\1\16\5\0\1\16"+
  63.454 -    "\5\0\1\u0142\25\16\1\0\1\16\14\0\2\16\1\72"+
  63.455 -    "\1\u0143\5\0\1\16\5\0\26\16\1\0\1\16\14\0"+
  63.456 -    "\2\16\1\72\1\16\5\0\1\16\5\0\1\u0144\25\16"+
  63.457 -    "\1\0\1\16\14\0\2\16\1\72\1\16\5\0\1\16"+
  63.458 -    "\5\0\11\16\1\u0145\14\16\1\0\1\16\14\0\2\16"+
  63.459 -    "\1\72\1\16\5\0\1\16\5\0\10\16\1\u0146\15\16"+
  63.460 -    "\1\0\1\16\14\0\2\16\1\72\1\16\5\0\1\16"+
  63.461 -    "\5\0\14\16\1\u0147\11\16\1\0\1\16\14\0\2\16"+
  63.462 -    "\1\72\1\u0148\5\0\1\16\5\0\26\16\1\0\1\16"+
  63.463 -    "\14\0\2\16\1\72\1\16\5\0\1\16\5\0\17\16"+
  63.464 -    "\1\u0149\6\16\1\0\1\16\14\0\2\16\1\72\1\16"+
  63.465 -    "\5\0\1\16\5\0\2\16\1\u014a\23\16\1\0\1\16"+
  63.466 -    "\14\0\2\16\1\72\1\16\5\0\1\16\5\0\1\u014b"+
  63.467 -    "\25\16\1\0\1\16\14\0\2\16\1\72\1\u014c\5\0"+
  63.468 -    "\1\16\5\0\26\16\1\0\1\16\14\0\2\16\1\72"+
  63.469 -    "\1\16\5\0\1\16\5\0\17\16\1\u014d\6\16\1\0"+
  63.470 -    "\1\16\14\0\2\16\1\72\1\16\5\0\1\16\5\0"+
  63.471 -    "\5\16\1\u014e\20\16\1\0\1\16\14\0\2\16\1\72"+
  63.472 -    "\1\16\5\0\1\16\5\0\15\16\1\u014f\10\16\1\0"+
  63.473 -    "\1\16\14\0\2\16\1\72\1\16\5\0\1\16\5\0"+
  63.474 -    "\20\16\1\u0150\5\16\1\0\1\16\14\0\2\16\1\72"+
  63.475 -    "\1\16\5\0\1\16\5\0\23\16\1\u0151\2\16\1\0"+
  63.476 -    "\1\16\14\0\2\16\1\72\1\16\5\0\1\16\5\0"+
  63.477 -    "\15\16\1\u0152\10\16\1\0\1\16\14\0\2\16\1\72"+
  63.478 -    "\1\u0153\5\0\1\16\5\0\26\16\1\0\1\16\14\0"+
  63.479 -    "\2\16\1\72\1\u0154\5\0\1\16\5\0\26\16\1\0"+
  63.480 -    "\1\16\14\0\2\16\1\72\1\16\5\0\1\16\5\0"+
  63.481 -    "\13\16\1\u0155\12\16\1\0\1\16\14\0\2\16\1\72"+
  63.482 -    "\1\16\5\0\1\16\5\0\1\u0156\25\16\1\0\1\16"+
  63.483 -    "\14\0\2\16\1\72\1\u0157\5\0\1\16\5\0\26\16"+
  63.484 -    "\1\0\1\16\14\0\2\16\1\72\1\16\5\0\1\16"+
  63.485 -    "\5\0\4\16\1\u0158\21\16\1\0\1\16\14\0\2\16"+
  63.486 -    "\1\72\1\u0159\5\0\1\16\5\0\26\16\1\0\1\16"+
  63.487 -    "\14\0\2\16\1\72\1\16\5\0\1\16\5\0\5\16"+
  63.488 -    "\1\u015a\20\16\1\0\1\16\14\0\2\16\1\72\1\16"+
  63.489 -    "\5\0\1\16\5\0\3\16\1\u015b\22\16\1\0\1\16"+
  63.490 -    "\14\0\2\16\1\72\1\16\5\0\1\16\5\0\23\16"+
  63.491 -    "\1\u015c\2\16\1\0\1\16\14\0\2\16\1\72\1\16"+
  63.492 -    "\5\0\1\16\5\0\15\16\1\u015d\10\16\1\0\1\16"+
  63.493 -    "\14\0\2\16\1\72\1\16\5\0\1\16\5\0\4\16"+
  63.494 -    "\1\u015e\1\16\1\u015f\17\16\1\0\1\16\14\0\2\16"+
  63.495 -    "\1\72\1\16\5\0\1\16\5\0\24\16\1\u0160\1\16"+
  63.496 -    "\1\0\1\16\14\0\2\16\1\72\1\16\5\0\1\16"+
  63.497 -    "\5\0\7\16\1\u0161\16\16\1\0\1\16\14\0\2\16"+
  63.498 -    "\1\72\1\16\5\0\1\16\5\0\11\16\1\u0162\14\16"+
  63.499 -    "\1\0\1\16\14\0\2\16\1\72\1\u0163\5\0\1\16"+
  63.500 -    "\5\0\26\16\1\0\1\16\14\0\2\16\1\72\1\16"+
  63.501 -    "\5\0\1\16\5\0\10\16\1\u0164\15\16\1\0\1\16"+
  63.502 -    "\14\0\2\16\1\72\1\16\5\0\1\16\5\0\1\u0165"+
  63.503 -    "\3\16\1\u0166\21\16\1\0\1\16\14\0\2\16\1\72"+
  63.504 -    "\1\16\5\0\1\16\5\0\11\16\1\u0167\14\16\1\0"+
  63.505 -    "\1\16\14\0\2\16\1\72\1\16\5\0\1\16\5\0"+
  63.506 -    "\10\16\1\u0168\15\16\1\0\1\16\14\0\2\16\1\72"+
  63.507 -    "\1\u0169\5\0\1\16\5\0\26\16\1\0\1\16\14\0"+
  63.508 -    "\2\16\1\72\1\16\5\0\1\16\5\0\2\16\1\u016a"+
  63.509 -    "\23\16\1\0\1\16\14\0\2\16\1\72\1\16\5\0"+
  63.510 -    "\1\16\5\0\11\16\1\u016b\14\16\1\0\1\16\14\0"+
  63.511 -    "\2\16\1\72\1\16\5\0\1\16\5\0\22\16\1\u016c"+
  63.512 -    "\3\16\1\0\1\16\14\0\2\16\1\72\1\u016d\5\0"+
  63.513 -    "\1\16\5\0\26\16\1\0\1\16\14\0\2\16\1\72"+
  63.514 -    "\1\16\5\0\1\16\5\0\13\16\1\u016e\12\16\1\0"+
  63.515 -    "\1\16\14\0\2\16\1\72\1\16\5\0\1\16\5\0"+
  63.516 -    "\10\16\1\u016f\15\16\1\0\1\16\14\0\2\u0170\1\0"+
  63.517 -    "\1\u0170\13\0\2\u0170\4\0\1\u0170\3\0\1\u0170\34\0"+
  63.518 -    "\1\u0171\57\0\2\16\1\72\1\u0172\5\0\1\16\5\0"+
  63.519 -    "\26\16\1\0\1\16\14\0\2\16\1\72\1\16\5\0"+
  63.520 -    "\1\16\5\0\4\16\1\u0173\21\16\1\0\1\16\14\0"+
  63.521 -    "\2\16\1\72\1\16\5\0\1\16\5\0\4\16\1\u0174"+
  63.522 -    "\21\16\1\0\1\16\14\0\1\16\1\u0175\1\72\1\16"+
  63.523 -    "\5\0\1\16\5\0\26\16\1\0\1\16\14\0\2\16"+
  63.524 -    "\1\72\1\16\5\0\1\16\5\0\14\16\1\u0176\11\16"+
  63.525 -    "\1\0\1\16\41\0\1\u0177\1\0\1\u0178\1\u0179\32\0"+
  63.526 -    "\2\16\1\72\1\16\5\0\1\16\5\0\7\16\1\u017a"+
  63.527 -    "\16\16\1\0\1\16\17\0\1\u0113\104\0\1\u017b\56\0"+
  63.528 -    "\1\u017c\44\0\1\u017d\100\0\1\u017e\44\0\1\u012c\113\0"+
  63.529 -    "\1\u017f\50\0\1\u0114\57\0\1\u0180\76\0\1\u0181\31\0"+
  63.530 -    "\1\u0182\111\0\1\u0113\50\0\1\u0183\77\0\1\u010e\60\0"+
  63.531 -    "\1\u0184\67\0\1\u0185\55\0\1\u0186\33\0\1\u0187\101\0"+
  63.532 -    "\1\u0188\67\0\1\u0189\65\0\1\u018a\55\0\1\u0113\64\0"+
  63.533 -    "\1\u018b\62\0\1\u018c\62\0\1\u018d\66\0\1\u018e\53\0"+
  63.534 -    "\1\u018f\70\0\1\243\56\0\1\u0190\60\0\1\u0191\61\0"+
  63.535 -    "\1\u0192\67\0\1\u017b\63\0\1\u0193\65\0\1\u0194\51\0"+
  63.536 -    "\1\u0195\71\0\1\u0196\66\0\1\243\47\0\1\u0197\60\0"+
  63.537 -    "\1\u0198\71\0\1\u0199\62\0\1\u019a\73\0\1\u019b\62\0"+
  63.538 -    "\1\u019c\23\0\1\u019d\63\0\1\u019e\32\0\1\u019f\47\0"+
  63.539 -    "\1\u010e\42\0\1\u01a0\17\0\1\u01a1\63\0\1\u01a2\66\0"+
  63.540 -    "\1\u011a\5\0\1\u010e\24\0\2\16\1\72\1\16\5\0"+
  63.541 -    "\1\16\5\0\4\16\1\u01a3\21\16\1\0\1\16\14\0"+
  63.542 -    "\2\16\1\72\1\16\5\0\1\16\5\0\3\16\1\u01a4"+
  63.543 -    "\22\16\1\0\1\16\14\0\2\16\1\72\1\16\5\0"+
  63.544 -    "\1\16\5\0\14\16\1\u01a5\11\16\1\0\1\16\14\0"+
  63.545 -    "\2\16\1\72\1\16\5\0\1\16\5\0\5\16\1\u01a6"+
  63.546 -    "\1\16\1\u01a7\16\16\1\0\1\16\14\0\2\16\1\72"+
  63.547 -    "\1\16\5\0\1\16\5\0\5\16\1\u01a8\20\16\1\0"+
  63.548 -    "\1\16\14\0\2\16\1\72\1\16\5\0\1\16\5\0"+
  63.549 -    "\13\16\1\u01a9\12\16\1\0\1\16\14\0\2\16\1\72"+
  63.550 -    "\1\u01aa\5\0\1\16\5\0\26\16\1\0\1\16\14\0"+
  63.551 -    "\2\16\1\72\1\16\5\0\1\16\5\0\3\16\1\u01ab"+
  63.552 -    "\22\16\1\0\1\16\14\0\2\16\1\72\1\16\5\0"+
  63.553 -    "\1\16\5\0\3\16\1\u01ac\22\16\1\0\1\16\14\0"+
  63.554 -    "\2\16\1\72\1\16\5\0\1\16\5\0\3\16\1\u01ad"+
  63.555 -    "\22\16\1\0\1\16\14\0\2\16\1\72\1\16\5\0"+
  63.556 -    "\1\16\5\0\20\16\1\u01ae\5\16\1\0\1\16\14\0"+
  63.557 -    "\2\16\1\72\1\16\5\0\1\16\5\0\3\16\1\u01af"+
  63.558 -    "\22\16\1\0\1\16\14\0\2\16\1\72\1\u01b0\5\0"+
  63.559 -    "\1\16\5\0\26\16\1\0\1\16\14\0\2\16\1\72"+
  63.560 -    "\1\u01b1\5\0\1\16\5\0\26\16\1\0\1\16\14\0"+
  63.561 -    "\2\16\1\72\1\u01b2\5\0\1\16\5\0\26\16\1\0"+
  63.562 -    "\1\16\14\0\2\16\1\72\1\16\5\0\1\16\5\0"+
  63.563 -    "\11\16\1\u01b3\14\16\1\0\1\16\14\0\2\16\1\72"+
  63.564 -    "\1\u01b4\5\0\1\16\5\0\26\16\1\0\1\16\14\0"+
  63.565 -    "\2\16\1\72\1\16\5\0\1\16\5\0\3\16\1\u01b5"+
  63.566 -    "\22\16\1\0\1\16\14\0\2\16\1\72\1\16\5\0"+
  63.567 -    "\1\16\5\0\6\16\1\u01b6\17\16\1\0\1\16\14\0"+
  63.568 -    "\2\16\1\72\1\16\5\0\1\16\5\0\14\16\1\u01b7"+
  63.569 -    "\11\16\1\0\1\16\14\0\2\16\1\72\1\16\5\0"+
  63.570 -    "\1\16\5\0\4\16\1\u01b8\21\16\1\0\1\16\14\0"+
  63.571 -    "\2\16\1\72\1\16\5\0\1\16\5\0\1\u01b9\25\16"+
  63.572 -    "\1\0\1\16\14\0\2\16\1\72\1\16\5\0\1\16"+
  63.573 -    "\5\0\1\u01ba\25\16\1\0\1\16\14\0\2\16\1\72"+
  63.574 -    "\1\16\5\0\1\16\5\0\20\16\1\u01bb\5\16\1\0"+
  63.575 -    "\1\16\14\0\2\16\1\72\1\u01bc\5\0\1\16\5\0"+
  63.576 -    "\26\16\1\0\1\16\14\0\2\16\1\72\1\u01bd\5\0"+
  63.577 -    "\1\16\5\0\26\16\1\0\1\16\14\0\2\16\1\72"+
  63.578 -    "\1\16\5\0\1\16\5\0\1\u01be\25\16\1\0\1\16"+
  63.579 -    "\14\0\2\16\1\72\1\16\5\0\1\16\5\0\4\16"+
  63.580 -    "\1\u01bf\21\16\1\0\1\16\14\0\2\16\1\72\1\16"+
  63.581 -    "\5\0\1\16\5\0\15\16\1\u01c0\10\16\1\0\1\16"+
  63.582 -    "\14\0\2\16\1\72\1\16\5\0\1\16\5\0\1\u01c1"+
  63.583 -    "\25\16\1\0\1\16\14\0\2\16\1\72\1\16\5\0"+
  63.584 -    "\1\16\5\0\14\16\1\u01c2\11\16\1\0\1\16\14\0"+
  63.585 -    "\2\16\1\72\1\16\5\0\1\16\5\0\1\u01c3\25\16"+
  63.586 -    "\1\0\1\16\14\0\2\16\1\72\1\16\5\0\1\16"+
  63.587 -    "\5\0\4\16\1\u01c4\21\16\1\0\1\16\14\0\2\16"+
  63.588 -    "\1\72\1\16\5\0\1\16\5\0\3\16\1\u01c5\22\16"+
  63.589 -    "\1\0\1\16\14\0\2\16\1\72\1\16\5\0\1\16"+
  63.590 -    "\5\0\10\16\1\u01c6\15\16\1\0\1\16\14\0\2\16"+
  63.591 -    "\1\u01c7\1\16\5\0\1\16\5\0\26\16\1\0\1\16"+
  63.592 -    "\14\0\2\16\1\72\1\u01c8\5\0\1\16\5\0\26\16"+
  63.593 -    "\1\0\1\16\14\0\2\u0170\1\u0103\1\u0170\3\0\2\u0104"+
  63.594 -    "\6\0\2\u0170\4\0\1\u0170\3\0\1\u0170\31\0\1\u01c9"+
  63.595 -    "\3\0\2\u01ca\55\0\2\16\1\72\1\16\5\0\1\16"+
  63.596 -    "\5\0\11\16\1\u01cb\14\16\1\0\1\16\33\0\1\u01cc"+
  63.597 -    "\64\0\1\u01cd\42\0\1\u01ce\61\0\2\16\1\72\1\16"+
  63.598 -    "\5\0\1\16\5\0\4\16\1\u01cf\21\16\1\0\1\16"+
  63.599 -    "\37\0\1\u01a2\61\0\1\u0113\62\0\1\u01d0\72\0\1\u01d1"+
  63.600 -    "\62\0\1\u01d2\55\0\1\u01d1\37\0\1\u01d3\101\0\1\u01d4"+
  63.601 -    "\71\0\1\u01d5\63\0\1\u01d6\61\0\1\u01d7\57\0\1\u01d8"+
  63.602 -    "\37\0\1\u01d9\77\0\1\u01da\46\0\1\u0113\24\0\1\u01db"+
  63.603 -    "\35\0\1\u01dc\106\0\1\u0113\63\0\1\u01db\35\0\1\u017c"+
  63.604 -    "\13\0\1\u01dd\45\0\1\u01de\103\0\1\u01df\60\0\1\u01e0"+
  63.605 -    "\65\0\1\u0113\66\0\1\u01e1\62\0\1\u01e2\55\0\1\u01a1"+
  63.606 -    "\41\0\1\u01e3\103\0\1\u01e4\56\0\1\u0113\65\0\1\u01e5"+
  63.607 -    "\63\0\1\u0191\56\0\1\u01e6\46\0\1\u01e7\107\0\1\u01e8"+
  63.608 -    "\56\0\1\u01e9\65\0\1\u01ea\62\0\1\u01eb\35\0\1\u01ec"+
  63.609 -    "\121\0\1\u0113\51\0\1\u01ed\32\0\2\16\1\72\1\16"+
  63.610 -    "\5\0\1\16\5\0\1\u01ee\25\16\1\0\1\16\14\0"+
  63.611 -    "\2\16\1\72\1\16\5\0\1\16\5\0\5\16\1\u01ef"+
  63.612 -    "\20\16\1\0\1\16\14\0\2\16\1\72\1\16\5\0"+
  63.613 -    "\1\16\5\0\4\16\1\u01f0\21\16\1\0\1\16\14\0"+
  63.614 -    "\2\16\1\72\1\u01f1\5\0\1\16\5\0\26\16\1\0"+
  63.615 -    "\1\16\14\0\2\16\1\72\1\16\5\0\1\16\5\0"+
  63.616 -    "\1\u01f2\25\16\1\0\1\16\14\0\2\16\1\72\1\16"+
  63.617 -    "\5\0\1\16\5\0\5\16\1\u01f3\20\16\1\0\1\16"+
  63.618 -    "\14\0\2\16\1\72\1\16\5\0\1\16\5\0\13\16"+
  63.619 -    "\1\u01f4\12\16\1\0\1\16\14\0\2\16\1\72\1\16"+
  63.620 -    "\5\0\1\16\5\0\12\16\1\u01f5\13\16\1\0\1\16"+
  63.621 -    "\14\0\2\16\1\72\1\u01f6\5\0\1\16\5\0\26\16"+
  63.622 -    "\1\0\1\16\14\0\2\16\1\72\1\16\5\0\1\16"+
  63.623 -    "\5\0\5\16\1\u01f7\20\16\1\0\1\16\14\0\2\16"+
  63.624 -    "\1\72\1\16\5\0\1\16\5\0\17\16\1\u01f8\6\16"+
  63.625 -    "\1\0\1\16\14\0\2\16\1\72\1\16\5\0\1\16"+
  63.626 -    "\5\0\13\16\1\u01f9\12\16\1\0\1\16\14\0\2\16"+
  63.627 -    "\1\72\1\16\5\0\1\16\5\0\12\16\1\u01fa\13\16"+
  63.628 -    "\1\0\1\16\14\0\2\16\1\72\1\16\5\0\1\16"+
  63.629 -    "\5\0\1\u01fb\25\16\1\0\1\16\14\0\2\16\1\72"+
  63.630 -    "\1\16\5\0\1\16\5\0\4\16\1\u01fc\21\16\1\0"+
  63.631 -    "\1\16\14\0\2\16\1\72\1\16\5\0\1\16\5\0"+
  63.632 -    "\7\16\1\u01fd\16\16\1\0\1\16\14\0\2\16\1\72"+
  63.633 -    "\1\16\5\0\1\16\5\0\1\u01fe\25\16\1\0\1\16"+
  63.634 -    "\14\0\2\16\1\72\1\16\5\0\1\16\5\0\6\16"+
  63.635 -    "\1\u01ff\17\16\1\0\1\16\14\0\2\16\1\72\1\16"+
  63.636 -    "\5\0\1\16\5\0\15\16\1\u0200\10\16\1\0\1\16"+
  63.637 -    "\14\0\2\16\1\72\1\16\5\0\1\16\5\0\1\u0201"+
  63.638 -    "\25\16\1\0\1\16\14\0\2\16\1\72\1\16\5\0"+
  63.639 -    "\1\16\5\0\6\16\1\u0202\17\16\1\0\1\16\14\0"+
  63.640 -    "\2\16\1\72\1\16\5\0\1\16\5\0\12\16\1\u0203"+
  63.641 -    "\13\16\1\0\1\16\14\0\2\16\1\72\1\16\5\0"+
  63.642 -    "\1\16\5\0\4\16\1\u0204\21\16\1\0\1\16\14\0"+
  63.643 -    "\2\16\1\72\1\u0205\5\0\1\16\5\0\26\16\1\0"+
  63.644 -    "\1\16\14\0\2\16\1\72\1\u0206\5\0\1\16\5\0"+
  63.645 -    "\26\16\1\0\1\16\14\0\2\16\1\72\1\16\5\0"+
  63.646 -    "\1\16\5\0\3\16\1\u0207\22\16\1\0\1\16\14\0"+
  63.647 -    "\2\16\1\72\1\16\5\0\1\16\5\0\5\16\1\u0208"+
  63.648 -    "\20\16\1\0\1\16\14\0\2\16\1\72\1\16\5\0"+
  63.649 -    "\1\16\5\0\11\16\1\u0209\14\16\1\0\1\16\14\0"+
  63.650 -    "\2\16\1\0\1\16\5\0\1\16\5\0\6\16\1\u020a"+
  63.651 -    "\17\16\1\0\1\16\14\0\1\u01c9\1\0\1\u01ca\60\0"+
  63.652 -    "\1\u01c9\62\0\2\16\1\72\1\16\5\0\1\16\5\0"+
  63.653 -    "\2\16\1\u020b\23\16\1\0\1\16\40\0\1\u020c\57\0"+
  63.654 -    "\1\u020d\41\0\2\16\1\72\1\16\5\0\1\16\5\0"+
  63.655 -    "\11\16\1\u020e\14\16\1\0\1\16\46\0\1\u020f\33\0"+
  63.656 -    "\1\u012a\116\0\1\u01d1\66\0\1\u0210\41\0\1\u0211\72\0"+
  63.657 -    "\1\u0211\62\0\1\u0212\47\0\1\u017b\44\0\1\u0213\25\0"+
  63.658 -    "\1\u0214\67\0\1\u0215\60\0\1\257\61\0\1\u0216\51\0"+
  63.659 -    "\1\u0217\66\0\1\u0218\60\0\1\u0219\64\0\1\u010e\5\0"+
  63.660 -    "\1\u021a\53\0\1\u021b\71\0\1\u021c\50\0\1\u021d\72\0"+
  63.661 -    "\1\u021e\71\0\1\u0113\47\0\1\u021f\63\0\1\u0220\67\0"+
  63.662 -    "\1\u0221\60\0\1\u0222\34\0\1\u0223\116\0\1\u0191\54\0"+
  63.663 -    "\1\u0224\7\0\1\u0225\2\0\1\u0226\40\0\1\307\41\0"+
  63.664 -    "\2\16\1\72\1\16\5\0\1\16\5\0\6\16\1\u0227"+
  63.665 -    "\17\16\1\0\1\16\14\0\2\16\1\72\1\16\5\0"+
  63.666 -    "\1\16\5\0\12\16\1\u0228\13\16\1\0\1\16\14\0"+
  63.667 -    "\2\16\1\72\1\16\5\0\1\16\5\0\13\16\1\u0229"+
  63.668 -    "\12\16\1\0\1\16\14\0\2\16\1\72\1\16\5\0"+
  63.669 -    "\1\16\5\0\5\16\1\u022a\20\16\1\0\1\16\14\0"+
  63.670 -    "\2\16\1\72\1\u022b\5\0\1\16\5\0\26\16\1\0"+
  63.671 -    "\1\16\14\0\2\16\1\72\1\u022c\5\0\1\16\5\0"+
  63.672 -    "\26\16\1\0\1\16\14\0\2\16\1\72\1\16\5\0"+
  63.673 -    "\1\16\5\0\1\u022d\25\16\1\0\1\16\14\0\2\16"+
  63.674 -    "\1\72\1\16\5\0\1\16\5\0\4\16\1\u022e\21\16"+
  63.675 -    "\1\0\1\16\14\0\2\16\1\72\1\u022f\5\0\1\16"+
  63.676 -    "\5\0\26\16\1\0\1\16\14\0\2\16\1\72\1\16"+
  63.677 -    "\5\0\1\16\5\0\13\16\1\u0230\12\16\1\0\1\16"+
  63.678 -    "\14\0\2\16\1\72\1\16\5\0\1\16\5\0\4\16"+
  63.679 -    "\1\u0231\21\16\1\0\1\16\14\0\2\16\1\72\1\u0232"+
  63.680 -    "\5\0\1\16\5\0\26\16\1\0\1\16\14\0\2\16"+
  63.681 -    "\1\72\1\16\5\0\1\16\5\0\4\16\1\u0233\21\16"+
  63.682 -    "\1\0\1\16\14\0\2\16\1\72\1\16\5\0\1\16"+
  63.683 -    "\5\0\17\16\1\u0234\6\16\1\0\1\16\14\0\2\16"+
  63.684 -    "\1\72\1\u0235\5\0\1\16\5\0\26\16\1\0\1\16"+
  63.685 -    "\14\0\2\16\1\72\1\16\5\0\1\16\5\0\12\16"+
  63.686 -    "\1\u0236\13\16\1\0\1\16\14\0\2\16\1\72\1\16"+
  63.687 -    "\5\0\1\16\5\0\3\16\1\u0237\22\16\1\0\1\16"+
  63.688 -    "\14\0\2\16\1\72\1\u0238\5\0\1\16\5\0\26\16"+
  63.689 -    "\1\0\1\16\14\0\2\16\1\72\1\16\5\0\1\16"+
  63.690 -    "\5\0\6\16\1\u0239\17\16\1\0\1\16\14\0\2\16"+
  63.691 -    "\1\72\1\16\5\0\1\16\5\0\22\16\1\u023a\3\16"+
  63.692 -    "\1\0\1\16\14\0\2\16\1\72\1\16\5\0\1\16"+
  63.693 -    "\5\0\13\16\1\u023b\12\16\1\0\1\16\17\0\1\u023c"+
  63.694 -    "\105\0\1\u023d\34\0\2\16\1\72\1\16\5\0\1\16"+
  63.695 -    "\5\0\2\16\1\u023e\23\16\1\0\1\16\33\0\1\u023f"+
  63.696 -    "\46\0\1\312\110\0\1\u0240\50\0\1\u0241\73\0\1\u0242"+
  63.697 -    "\51\0\1\u0243\46\0\1\u0244\61\0\1\u0245\107\0\1\u010e"+
  63.698 -    "\63\0\1\u0246\51\0\1\u0247\46\0\1\u0248\107\0\1\u0249"+
  63.699 -    "\66\0\1\u024a\56\0\1\243\55\0\1\u024b\42\0\1\u024c"+
  63.700 -    "\121\0\1\u024d\23\0\1\u024e\70\0\1\u024f\54\0\1\u0250"+
  63.701 -    "\20\0\1\u0251\12\0\1\u0252\62\0\1\301\53\0\1\u0253"+
  63.702 -    "\51\0\1\u0254\43\0\2\16\1\72\1\16\5\0\1\16"+
  63.703 -    "\5\0\4\16\1\u0255\21\16\1\0\1\16\14\0\2\16"+
  63.704 -    "\1\72\1\16\5\0\1\16\5\0\4\16\1\u0256\21\16"+
  63.705 -    "\1\0\1\16\14\0\2\16\1\72\1\u0257\5\0\1\16"+
  63.706 -    "\5\0\26\16\1\0\1\16\14\0\2\16\1\72\1\16"+
  63.707 -    "\5\0\1\16\5\0\4\16\1\u0258\21\16\1\0\1\16"+
  63.708 -    "\14\0\2\16\1\72\1\u0259\5\0\1\16\5\0\26\16"+
  63.709 -    "\1\0\1\16\14\0\2\16\1\72\1\u025a\5\0\1\16"+
  63.710 -    "\5\0\26\16\1\0\1\16\14\0\2\16\1\72\1\16"+
  63.711 -    "\5\0\1\16\5\0\3\16\1\u025b\22\16\1\0\1\16"+
  63.712 -    "\14\0\2\16\1\72\1\16\5\0\1\16\5\0\1\u025c"+
  63.713 -    "\25\16\1\0\1\16\14\0\2\16\1\72\1\16\5\0"+
  63.714 -    "\1\16\5\0\13\16\1\u025d\12\16\1\0\1\16\43\0"+
  63.715 -    "\1\u025e\36\0\1\u017c\102\0\1\u025f\61\0\1\u0243\64\0"+
  63.716 -    "\1\243\40\0\1\u0260\71\0\1\u0261\105\0\1\307\56\0"+
  63.717 -    "\1\u0262\64\0\1\u0263\51\0\1\u0264\43\0\1\u0265\113\0"+
  63.718 -    "\1\u0113\60\0\1\u0266\34\0\1\u0267\61\0\1\u0268\63\0"+
  63.719 -    "\1\u0269\105\0\1\u026a\10\0\1\u026b\62\0\1\266\42\0"+
  63.720 -    "\1\u026c\74\0\1\u0194\60\0\1\u026d\33\0\2\16\1\72"+
  63.721 -    "\1\u026e\5\0\1\16\5\0\26\16\1\0\1\16\14\0"+
  63.722 -    "\2\16\1\72\1\16\5\0\1\16\5\0\3\16\1\u026f"+
  63.723 -    "\22\16\1\0\1\16\14\0\2\16\1\72\1\16\5\0"+
  63.724 -    "\1\16\5\0\12\16\1\u0270\13\16\1\0\1\16\14\0"+
  63.725 -    "\2\16\1\72\1\u0271\5\0\1\16\5\0\26\16\1\0"+
  63.726 -    "\1\16\14\0\2\16\1\72\1\16\5\0\1\16\5\0"+
  63.727 -    "\3\16\1\u0272\22\16\1\0\1\16\16\0\1\u0273\63\0"+
  63.728 -    "\1\u011a\103\0\1\u0274\1\0\1\u0275\37\0\1\u0276\111\0"+
  63.729 -    "\1\u025f\53\0\1\u0277\71\0\1\u0278\56\0\1\u0279\36\0"+
  63.730 -    "\1\u027a\111\0\1\u027b\34\0\1\u027c\15\0\1\u027d\1\u027e"+
  63.731 -    "\14\0\1\u0252\25\0\1\u027f\104\0\1\u0280\66\0\1\307"+
  63.732 -    "\64\0\1\u0281\66\0\1\u010e\24\0\2\16\1\72\1\16"+
  63.733 -    "\5\0\1\16\5\0\1\u0282\25\16\1\0\1\16\37\0"+
  63.734 -    "\1\u0283\67\0\1\u0284\53\0\1\u0285\63\0\1\u0286\42\0"+
  63.735 -    "\1\u0287\62\0\1\u0288\77\0\1\u0289\65\0\1\u028a\42\0"+
  63.736 -    "\1\u028b\117\0\1\u028c\66\0\1\u028d\36\0\1\u028e\1\0"+
  63.737 -    "\1\u028f\71\0\1\u0290\62\0\1\u0291\55\0\1\u0292\37\0"+
  63.738 -    "\2\16\1\72\1\16\5\0\1\16\5\0\6\16\1\u0293"+
  63.739 -    "\17\16\1\0\1\16\33\0\1\257\54\0\1\u010e\72\0"+
  63.740 -    "\1\u018b\62\0\1\u0191\65\0\1\u0274\66\0\1\u011a\54\0"+
  63.741 -    "\1\243\61\0\1\u0294\60\0\1\u0295\62\0\1\u0296\10\0"+
  63.742 -    "\1\307\35\0\1\u0297\110\0\1\u0298\67\0\1\u0299\56\0"+
  63.743 -    "\1\u029a\57\0\1\u01ed\63\0\1\u029b\32\0\2\16\1\72"+
  63.744 -    "\1\16\5\0\1\16\5\0\4\16\1\u029c\21\16\1\0"+
  63.745 -    "\1\16\52\0\1\u029d\51\0\1\244\72\0\1\u0113\47\0"+
  63.746 -    "\1\u029e\70\0\1\u0296\64\0\1\u029f\32\0\1\u02a0\104\0"+
  63.747 -    "\1\u02a1\36\0\2\16\1\72\1\u02a2\5\0\1\16\5\0"+
  63.748 -    "\26\16\1\0\1\16\46\0\1\u02a3\31\0\1\u02a4\112\0"+
  63.749 -    "\1\u0191\55\0\1\u02a5\62\0\1\u0197\36\0\2\16\1\72"+
  63.750 -    "\1\16\5\0\1\16\5\0\3\16\1\u02a6\22\16\1\0"+
  63.751 -    "\1\16\45\0\1\u018c\60\0\1\u02a7\56\0\1\u02a8\60\0"+
  63.752 -    "\1\u02a9\62\0\1\u02aa\101\0\1\u0191\44\0\1\u02ab\57\0"+
  63.753 -    "\1\u02ac\77\0\1\u02ad\31\0\1\u02ae\61\0\1\u02af\63\0"+
  63.754 -    "\1\u02b0\106\0\1\u02b1\36\0\1\u02b2\116\0\1\u02b3\26\0"+
  63.755 -    "\1\u02b4\111\0\1\u0199\27\0";
  63.756 -
  63.757 -  private static int [] zzUnpackTrans() {
  63.758 -    int [] result = new int[30039];
  63.759 -    int offset = 0;
  63.760 -    offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
  63.761 -    return result;
  63.762 -  }
  63.763 -
  63.764 -  private static int zzUnpackTrans(String packed, int offset, int [] result) {
  63.765 -    int i = 0;       /* index in packed string  */
  63.766 -    int j = offset;  /* index in unpacked array */
  63.767 -    int l = packed.length();
  63.768 -    while (i < l) {
  63.769 -      int count = packed.charAt(i++);
  63.770 -      int value = packed.charAt(i++);
  63.771 -      value--;
  63.772 -      do result[j++] = value; while (--count > 0);
  63.773 -    }
  63.774 -    return j;
  63.775 -  }
  63.776 -
  63.777 -
  63.778 -  /* error codes */
  63.779 -  private static final int ZZ_UNKNOWN_ERROR = 0;
  63.780 -  private static final int ZZ_NO_MATCH = 1;
  63.781 -  private static final int ZZ_PUSHBACK_2BIG = 2;
  63.782 -
  63.783 -  /* error messages for the codes above */
  63.784 -  private static final String ZZ_ERROR_MSG[] = {
  63.785 -    "Unkown internal scanner error",
  63.786 -    "Error: could not match input",
  63.787 -    "Error: pushback value was too large"
  63.788 -  };
  63.789 -
  63.790 -  /**
  63.791 -   * ZZ_ATTRIBUTE[aState] contains the attributes of state <code>aState</code>
  63.792 -   */
  63.793 -  private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute();
  63.794 -
  63.795 -  private static final String ZZ_ATTRIBUTE_PACKED_0 =
  63.796 -    "\2\0\1\10\2\0\1\11\3\1\1\11\30\1\3\11"+
  63.797 -    "\1\1\1\11\1\1\1\11\3\1\2\11\3\1\1\11"+
  63.798 -    "\1\1\1\11\1\1\5\0\7\1\3\11\1\0\1\1"+
  63.799 -    "\22\0\55\1\10\11\1\0\1\11\1\1\1\0\1\1"+
  63.800 -    "\1\0\11\1\1\11\56\0\67\1\1\0\7\1\1\0"+
  63.801 -    "\2\1\5\0\1\11\32\0\1\1\13\0\1\1\4\0"+
  63.802 -    "\61\1\2\0\5\1\3\0\1\1\32\0\1\1\15\0"+
  63.803 -    "\44\1\1\0\2\1\1\0\1\1\2\0\1\11\1\1"+
  63.804 -    "\6\0\1\1\23\0\1\1\3\0\36\1\2\0\1\1"+
  63.805 -    "\30\0\25\1\2\11\1\1\17\0\1\1\6\0\11\1"+
  63.806 -    "\20\0\5\1\17\0\1\1\20\0\1\1\10\0\1\1"+
  63.807 -    "\5\0\1\1\3\0\1\1\16\0";
  63.808 -
  63.809 -  private static int [] zzUnpackAttribute() {
  63.810 -    int [] result = new int[692];
  63.811 -    int offset = 0;
  63.812 -    offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
  63.813 -    return result;
  63.814 -  }
  63.815 -
  63.816 -  private static int zzUnpackAttribute(String packed, int offset, int [] result) {
  63.817 -    int i = 0;       /* index in packed string  */
  63.818 -    int j = offset;  /* index in unpacked array */
  63.819 -    int l = packed.length();
  63.820 -    while (i < l) {
  63.821 -      int count = packed.charAt(i++);
  63.822 -      int value = packed.charAt(i++);
  63.823 -      do result[j++] = value; while (--count > 0);
  63.824 -    }
  63.825 -    return j;
  63.826 -  }
  63.827 -
  63.828 -  /** the input device */
  63.829 -  private java.io.Reader zzReader;
  63.830 -
  63.831 -  /** the current state of the DFA */
  63.832 -  private int zzState;
  63.833 -
  63.834 -  /** the current lexical state */
  63.835 -  private int zzLexicalState = YYINITIAL;
  63.836 -
  63.837 -  /** this buffer contains the current text to be matched and is
  63.838 -      the source of the yytext() string */
  63.839 -  private char zzBuffer[] = new char[ZZ_BUFFERSIZE];
  63.840 -
  63.841 -  /** the textposition at the last accepting state */
  63.842 -  private int zzMarkedPos;
  63.843 -
  63.844 -  /** the textposition at the last state to be included in yytext */
  63.845 -  private int zzPushbackPos;
  63.846 -
  63.847 -  /** the current text position in the buffer */
  63.848 -  private int zzCurrentPos;
  63.849 -
  63.850 -  /** startRead marks the beginning of the yytext() string in the buffer */
  63.851 -  private int zzStartRead;
  63.852 -
  63.853 -  /** endRead marks the last character in the buffer, that has been read
  63.854 -      from input */
  63.855 -  private int zzEndRead;
  63.856 -
  63.857 -  /** number of newlines encountered up to the start of the matched text */
  63.858 -  private int yyline;
  63.859 -
  63.860 -  /** the number of characters up to the start of the matched text */
  63.861 -  private int yychar;
  63.862 -
  63.863 -  /**
  63.864 -   * the number of characters from the last newline up to the start of the 
  63.865 -   * matched text
  63.866 -   */
  63.867 -  private int yycolumn;
  63.868 -
  63.869 -  /** 
  63.870 -   * zzAtBOL == true <=> the scanner is currently at the beginning of a line
  63.871 -   */
  63.872 -  private boolean zzAtBOL = true;
  63.873 -
  63.874 -  /** zzAtEOF == true <=> the scanner is at the EOF */
  63.875 -  private boolean zzAtEOF = false;
  63.876 -
  63.877 -  /* user code: */
  63.878 -
  63.879 -    private StateStack stack = new StateStack();
  63.880 -
  63.881 -    private boolean short_tags_allowed = true;
  63.882 -
  63.883 -    private LexerInput input;
  63.884 -    
  63.885 -    public Ada95SyntaxLexer(LexerRestartInfo info) {
  63.886 -        this.input = info.input();
  63.887 -
  63.888 -        if(info.state() != null) {
  63.889 -            //reset state
  63.890 -            setState((LexerState)info.state());
  63.891 -        } else {
  63.892 -            //initial state
  63.893 -            zzState = zzLexicalState = YYINITIAL;
  63.894 -            stack.clear();
  63.895 -        }
  63.896 -
  63.897 -    }
  63.898 -
  63.899 -    public static final class LexerState  {
  63.900 -        final StateStack stack;
  63.901 -        /** the current state of the DFA */
  63.902 -        final int zzState;
  63.903 -        /** the current lexical state */
  63.904 -        final int zzLexicalState;
  63.905 -
  63.906 -        LexerState (StateStack stack, int zzState, int zzLexicalState) {
  63.907 -            this.stack = stack;
  63.908 -            this.zzState = zzState;
  63.909 -            this.zzLexicalState = zzLexicalState;
  63.910 -        }
  63.911 -
  63.912 -        @Override
  63.913 -        public boolean equals(Object obj) {
  63.914 -            if (this == obj) {
  63.915 -                    return true;
  63.916 -            }
  63.917 -
  63.918 -            if (obj == null || obj.getClass() != this.getClass()) {
  63.919 -                    return false;
  63.920 -            }
  63.921 -
  63.922 -            LexerState state = (LexerState) obj;
  63.923 -            return (this.stack.equals(state.stack)
  63.924 -                && (this.zzState == state.zzState)
  63.925 -                && (this.zzLexicalState == state.zzLexicalState));
  63.926 -        }
  63.927 -
  63.928 -        @Override
  63.929 -        public int hashCode() {
  63.930 -            int hash = 11;
  63.931 -            hash = 31 * hash + this.zzState;
  63.932 -            hash = 31 * hash + this.zzLexicalState;
  63.933 -            hash = 31 * hash + this.stack.hashCode();
  63.934 -            return hash;
  63.935 -        }
  63.936 -    }
  63.937 -        
  63.938 -    public LexerState getState() {
  63.939 -        return new LexerState(stack.createClone(), zzState, zzLexicalState);
  63.940 -    }
  63.941 -
  63.942 -    public void setState(LexerState state) {
  63.943 -        this.stack.copyFrom(state.stack);
  63.944 -        this.zzState = state.zzState;
  63.945 -        this.zzLexicalState = state.zzLexicalState;
  63.946 -    }
  63.947 -    
  63.948 -    public int[] getParamenters(){
  63.949 -    	return new int[]{zzMarkedPos, zzPushbackPos, zzCurrentPos, zzStartRead, zzEndRead, yyline, zzLexicalState};
  63.950 -    }
  63.951 -
  63.952 -    protected int getZZLexicalState() {
  63.953 -        return zzLexicalState;
  63.954 -    }
  63.955 -
  63.956 -    protected int getZZMarkedPos() {
  63.957 -        return zzMarkedPos;
  63.958 -    }
  63.959 -
  63.960 -    protected int getZZEndRead() {
  63.961 -        return zzEndRead;
  63.962 -    }
  63.963 -
  63.964 -    public char[] getZZBuffer() {
  63.965 -        return zzBuffer;
  63.966 -    }
  63.967 -    
  63.968 -    protected int getZZStartRead() {
  63.969 -    	return this.zzStartRead;
  63.970 -    }
  63.971 -
  63.972 -    protected int getZZPushBackPosition() {
  63.973 -    	return this.zzPushbackPos;
  63.974 -    }
  63.975 -
  63.976 -        protected void pushBack(int i) {
  63.977 -		yypushback(i);
  63.978 -	}
  63.979 -
  63.980 -        protected void popState() {
  63.981 -		yybegin(stack.popStack());
  63.982 -	}
  63.983 -
  63.984 -	protected void pushState(final int state) {
  63.985 -		stack.pushStack(getZZLexicalState());
  63.986 -		yybegin(state);
  63.987 -	}
  63.988 -
  63.989 -    
  63.990 - // End user code
  63.991 -
  63.992 -
  63.993 -
  63.994 -  /**
  63.995 -   * Creates a new scanner
  63.996 -   * There is also a java.io.InputStream version of this constructor.
  63.997 -   *
  63.998 -   * @param   in  the java.io.Reader to read input from.
  63.999 -   */
 63.1000 -  public Ada95SyntaxLexer(java.io.Reader in) {
 63.1001 -    this.zzReader = in;
 63.1002 -  }
 63.1003 -
 63.1004 -  /**
 63.1005 -   * Creates a new scanner.
 63.1006 -   * There is also java.io.Reader version of this constructor.
 63.1007 -   *
 63.1008 -   * @param   in  the java.io.Inputstream to read input from.
 63.1009 -   */
 63.1010 -  public Ada95SyntaxLexer(java.io.InputStream in) {
 63.1011 -    this(new java.io.InputStreamReader(in));
 63.1012 -  }
 63.1013 -
 63.1014 -  /** 
 63.1015 -   * Unpacks the compressed character translation table.
 63.1016 -   *
 63.1017 -   * @param packed   the packed character translation table
 63.1018 -   * @return         the unpacked character translation table
 63.1019 -   */
 63.1020 -  private static char [] zzUnpackCMap(String packed) {
 63.1021 -    char [] map = new char[0x10000];
 63.1022 -    int i = 0;  /* index in packed string  */
 63.1023 -    int j = 0;  /* index in unpacked array */
 63.1024 -    while (i < 172) {
 63.1025 -      int  count = packed.charAt(i++);
 63.1026 -      char value = packed.charAt(i++);
 63.1027 -      do map[j++] = value; while (--count > 0);
 63.1028 -    }
 63.1029 -    return map;
 63.1030 -  }
 63.1031 -
 63.1032 -
 63.1033 -    
 63.1034 -  /**
 63.1035 -   * Closes the input stream.
 63.1036 -   */
 63.1037 -  public final void yyclose() throws java.io.IOException {
 63.1038 -    zzAtEOF = true;            /* indicate end of file */
 63.1039 -    zzEndRead = zzStartRead;  /* invalidate buffer    */
 63.1040 -
 63.1041 -    if (zzReader != null)
 63.1042 -      zzReader.close();
 63.1043 -  }
 63.1044 -
 63.1045 -
 63.1046 -  /**
 63.1047 -   * Resets the scanner to read from a new input stream.
 63.1048 -   * Does not close the old reader.
 63.1049 -   *
 63.1050 -   * All internal variables are reset, the old input stream 
 63.1051 -   * <b>cannot</b> be reused (internal buffer is discarded and lost).
 63.1052 -   * Lexical state is set to <tt>ZZ_INITIAL</tt>.
 63.1053 -   *
 63.1054 -   * @param reader   the new input stream 
 63.1055 -   */
 63.1056 -  public final void yyreset(java.io.Reader reader) {
 63.1057 -    zzReader = reader;
 63.1058 -    zzAtBOL  = true;
 63.1059 -    zzAtEOF  = false;
 63.1060 -    zzEndRead = zzStartRead = 0;
 63.1061 -    zzCurrentPos = zzMarkedPos = zzPushbackPos = 0;
 63.1062 -    yyline = yychar = yycolumn = 0;
 63.1063 -    zzLexicalState = YYINITIAL;
 63.1064 -  }
 63.1065 -
 63.1066 -
 63.1067 -  /**
 63.1068 -   * Returns the current lexical state.
 63.1069 -   */
 63.1070 -  public final int yystate() {
 63.1071 -    return zzLexicalState;
 63.1072 -  }
 63.1073 -
 63.1074 -
 63.1075 -  /**
 63.1076 -   * Enters a new lexical state
 63.1077 -   *
 63.1078 -   * @param newState the new lexical state
 63.1079 -   */
 63.1080 -  public final void yybegin(int newState) {
 63.1081 -    zzLexicalState = newState;
 63.1082 -  }
 63.1083 -
 63.1084 -
 63.1085 -  /**
 63.1086 -   * Returns the text matched by the current regular expression.
 63.1087 -   */
 63.1088 -  public final String yytext() {
 63.1089 -    return input.readText().toString();
 63.1090 -  }
 63.1091 -
 63.1092 -
 63.1093 -  /**
 63.1094 -   * Returns the character at position <tt>pos</tt> from the 
 63.1095 -   * matched text. 
 63.1096 -   * 
 63.1097 -   * It is equivalent to yytext().charAt(pos), but faster
 63.1098 -   *
 63.1099 -   * @param pos the position of the character to fetch. 
 63.1100 -   *            A value from 0 to yylength()-1.
 63.1101 -   *
 63.1102 -   * @return the character at position pos
 63.1103 -   */
 63.1104 -  public final char yycharat(int pos) {
 63.1105 -     return input.readText().charAt(pos);
 63.1106 -  }
 63.1107 -
 63.1108 -
 63.1109 -  /**
 63.1110 -   * Returns the length of the matched text region.
 63.1111 -   */
 63.1112 -  public final int yylength() {
 63.1113 -    return input.readLength();
 63.1114 -  }
 63.1115 -
 63.1116 -
 63.1117 -  /**
 63.1118 -   * Reports an error that occured while scanning.
 63.1119 -   *
 63.1120 -   * In a wellformed scanner (no or only correct usage of 
 63.1121 -   * yypushback(int) and a match-all fallback rule) this method 
 63.1122 -   * will only be called with things that "Can't Possibly Happen".
 63.1123 -   * If this method is called, something is seriously wrong
 63.1124 -   * (e.g. a JFlex bug producing a faulty scanner etc.).
 63.1125 -   *
 63.1126 -   * Usual syntax/scanner level error handling should be done
 63.1127 -   * in error fallback rules.
 63.1128 -   *
 63.1129 -   * @param   errorCode  the code of the errormessage to display
 63.1130 -   */
 63.1131 -  private void zzScanError(int errorCode) {
 63.1132 -    String message;
 63.1133 -    try {
 63.1134 -      message = ZZ_ERROR_MSG[errorCode];
 63.1135 -    }
 63.1136 -    catch (ArrayIndexOutOfBoundsException e) {
 63.1137 -      message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR];
 63.1138 -    }
 63.1139 -
 63.1140 -    throw new Error(message);
 63.1141 -  } 
 63.1142 -
 63.1143 -
 63.1144 -  /**
 63.1145 -   * Pushes the specified amount of characters back into the input stream.
 63.1146 -   *
 63.1147 -   * They will be read again by then next call of the scanning method
 63.1148 -   *
 63.1149 -   * @param number  the number of characters to be read again.
 63.1150 -   *                This number must not be greater than yylength()!
 63.1151 -   */
 63.1152 -  public void yypushback(int number)  {
 63.1153 -    if ( number > yylength() )
 63.1154 -      zzScanError(ZZ_PUSHBACK_2BIG);
 63.1155 -
 63.1156 -    input.backup(number);
 63.1157 -    //zzMarkedPos -= number;
 63.1158 -  }
 63.1159 -
 63.1160 -
 63.1161 -  /**
 63.1162 -   * Resumes scanning until the next regular expression is matched,
 63.1163 -   * the end of input is encountered or an I/O-Error occurs.
 63.1164 -   *
 63.1165 -   * @return      the next token
 63.1166 -   * @exception   java.io.IOException  if any I/O-Error occurs
 63.1167 -   */
 63.1168 -  public AdaTokenId nextToken() throws java.io.IOException {
 63.1169 -    int zzInput;
 63.1170 -    int zzAction;
 63.1171 -
 63.1172 -    // cached fields:
 63.1173 -    //int zzCurrentPosL;
 63.1174 -    //int zzMarkedPosL;
 63.1175 -    //int zzEndReadL = zzEndRead;
 63.1176 -    //char [] zzBufferL = zzBuffer;
 63.1177 -    char [] zzCMapL = ZZ_CMAP;
 63.1178 -
 63.1179 -    int [] zzTransL = ZZ_TRANS;
 63.1180 -    int [] zzRowMapL = ZZ_ROWMAP;
 63.1181 -    int [] zzAttrL = ZZ_ATTRIBUTE;
 63.1182 -
 63.1183 -    while (true) {
 63.1184 -      //zzMarkedPosL = zzMarkedPos;
 63.1185 -
 63.1186 -      zzAction = -1;
 63.1187 -
 63.1188 -      //zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL;
 63.1189 -      int tokenLength = 0;
 63.1190 -  
 63.1191 -      zzState = ZZ_LEXSTATE[zzLexicalState];
 63.1192 -
 63.1193 -
 63.1194 -      zzForAction: {
 63.1195 -        while (true) {
 63.1196 -            zzInput = input.read();
 63.1197 -            
 63.1198 -            if(zzInput == LexerInput.EOF) {
 63.1199 -                //end of input reached
 63.1200 -                zzInput = YYEOF;
 63.1201 -                break zzForAction;
 63.1202 -                //notice: currently LexerInput.EOF == YYEOF
 63.1203 -            }
 63.1204 -
 63.1205 -          int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMapL[zzInput] ];
 63.1206 -          if (zzNext == -1) break zzForAction;
 63.1207 -          zzState = zzNext;
 63.1208 -
 63.1209 -          int zzAttributes = zzAttrL[zzState];
 63.1210 -          if ( (zzAttributes & 1) == 1 ) {
 63.1211 -            zzAction = zzState;
 63.1212 -            tokenLength = input.readLength();
 63.1213 -            if ( (zzAttributes & 8) == 8 ) break zzForAction;
 63.1214 -          }
 63.1215 -
 63.1216 -        }
 63.1217 -      }
 63.1218 -
 63.1219 -      // store back cached position
 63.1220 -      if(zzInput != YYEOF) {
 63.1221 -         input.backup(input.readLength() - tokenLength);
 63.1222 -      }
 63.1223 -
 63.1224 -      switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {
 63.1225 -        case 49: 
 63.1226 -          { return AdaTokenId.CHAR_LITERAL;
 63.1227 -          }
 63.1228 -        case 122: break;
 63.1229 -        case 42: 
 63.1230 -          { return AdaTokenId.BOX;
 63.1231 -          }
 63.1232 -        case 123: break;
 63.1233 -        case 51: 
 63.1234 -          { return AdaTokenId.ALL;
 63.1235 -          }
 63.1236 -        case 124: break;
 63.1237 -        case 61: 
 63.1238 -          { return AdaTokenId.ELSE;
 63.1239 -          }
 63.1240 -        case 125: break;
 63.1241 -        case 73: 
 63.1242 -          { return AdaTokenId.WITH;
 63.1243 -          }
 63.1244 -        case 126: break;
 63.1245 -        case 13: 
 63.1246 -          { return AdaTokenId.STAR;
 63.1247 -          }
 63.1248 -        case 127: break;
 63.1249 -        case 79: 
 63.1250 -          { return AdaTokenId.ABORT;
 63.1251 -          }
 63.1252 -        case 128: break;
 63.1253 -        case 110: 
 63.1254 -          { return AdaTokenId.FUNCTION;
 63.1255 -          }
 63.1256 -        case 129: break;
 63.1257 -        case 72: 
 63.1258 -          { return AdaTokenId.GOTO;
 63.1259 -          }
 63.1260 -        case 130: break;
 63.1261 -        case 68: 
 63.1262 -          { return AdaTokenId.THEN;
 63.1263 -          }
 63.1264 -        case 131: break;
 63.1265 -        case 47: 
 63.1266 -          { return AdaTokenId.FOR;
 63.1267 -          }
 63.1268 -        case 132: break;
 63.1269 -        case 8: 
 63.1270 -          { return  AdaTokenId.WHITESPACE;
 63.1271 -          }
 63.1272 -        case 133: break;
 63.1273 -        case 14: 
 63.1274 -          { return AdaTokenId.COMMA;
 63.1275 -          }
 63.1276 -        case 134: break;
 63.1277 -        case 69: 
 63.1278 -          { return AdaTokenId.CASE;
 63.1279 -          }
 63.1280 -        case 135: break;
 63.1281 -        case 70: 
 63.1282 -          { return AdaTokenId.LOOP;
 63.1283 -          }
 63.1284 -        case 136: break;
 63.1285 -        case 118: 
 63.1286 -          { return AdaTokenId.CHARACTER;
 63.1287 -          }
 63.1288 -        case 137: break;
 63.1289 -        case 88: 
 63.1290 -          { return AdaTokenId.END_IF;
 63.1291 -          }
 63.1292 -        case 138: break;
 63.1293 -        case 120: 
 63.1294 -          { return AdaTokenId.PROCEDURE;
 63.1295 -          }
 63.1296 -        case 139: break;
 63.1297 -        case 82: 
 63.1298 -          { return AdaTokenId.RAISE;
 63.1299 -          }
 63.1300 -        case 140: break;
 63.1301 -        case 100: 
 63.1302 -          { return AdaTokenId.RENAMES;
 63.1303 -          }
 63.1304 -        case 141: break;
 63.1305 -        case 90: 
 63.1306 -          { return AdaTokenId.ACCEPT;
 63.1307 -          }
 63.1308 -        case 142: break;
 63.1309 -        case 115: 
 63.1310 -          { return AdaTokenId.CONSTANT;
 63.1311 -          }
 63.1312 -        case 143: break;
 63.1313 -        case 113: 
 63.1314 -          { return AdaTokenId.ABSTRACT;
 63.1315 -          }
 63.1316 -        case 144: break;
 63.1317 -        case 50: 
 63.1318 -          { return AdaTokenId.ABS;
 63.1319 -          }
 63.1320 -        case 145: break;
 63.1321 -        case 104: 
 63.1322 -          { return AdaTokenId.PACKAGE;
 63.1323 -          }
 63.1324 -        case 146: break;
 63.1325 -        case 116: 
 63.1326 -          { return AdaTokenId.EXCEPTION;
 63.1327 -          }
 63.1328 -        case 147: break;
 63.1329 -        case 62: 
 63.1330 -          { return AdaTokenId.EXIT;
 63.1331 -          }
 63.1332 -        case 148: break;
 63.1333 -        case 12: 
 63.1334 -          { return AdaTokenId.RPAREN;
 63.1335 -          }
 63.1336 -        case 149: break;
 63.1337 -        case 1: 
 63.1338 -          { yypushback(1);
 63.1339 -    pushState(ST_HIGHLIGHTING_ERROR);
 63.1340 -          }
 63.1341 -        case 150: break;
 63.1342 -        case 11: 
 63.1343 -          { return AdaTokenId.LPAREN;
 63.1344 -          }
 63.1345 -        case 151: break;
 63.1346 -        case 89: 
 63.1347 -          { return AdaTokenId.ACCESS;
 63.1348 -          }
 63.1349 -        case 152: break;
 63.1350 -        case 52: 
 63.1351 -          { return AdaTokenId.AND;
 63.1352 -          }
 63.1353 -        case 153: break;
 63.1354 -        case 93: 
 63.1355 -          { return AdaTokenId.RECORD;
 63.1356 -          }
 63.1357 -        case 154: break;
 63.1358 -        case 6: 
 63.1359 -          { pushState(ST_LOOKING_FOR_PROPERTY);
 63.1360 -                      return AdaTokenId.DOT;
 63.1361 -          }
 63.1362 -        case 155: break;
 63.1363 -        case 66: 
 63.1364 -          { return AdaTokenId.TRUE;
 63.1365 -          }
 63.1366 -        case 156: break;
 63.1367 -        case 18: 
 63.1368 -          { return AdaTokenId.EQ;
 63.1369 -          }
 63.1370 -        case 157: break;
 63.1371 -        case 60: 
 63.1372 -          { return AdaTokenId.BASED_LITERAL;
 63.1373 -          }
 63.1374 -        case 158: break;
 63.1375 -        case 10: 
 63.1376 -          { return AdaTokenId.AMP;
 63.1377 -          }
 63.1378 -        case 159: break;
 63.1379 -        case 108: 
 63.1380 -          { return AdaTokenId.DECLARE;
 63.1381 -          }
 63.1382 -        case 160: break;
 63.1383 -        case 44: 
 63.1384 -          { return AdaTokenId.GTEQ;
 63.1385 -          }
 63.1386 -        case 161: break;
 63.1387 -        case 75: 
 63.1388 -          { return AdaTokenId.FALSE;
 63.1389 -          }
 63.1390 -        case 162: break;
 63.1391 -        case 48: 
 63.1392 -          { return AdaTokenId.END;
 63.1393 -          }
 63.1394 -        case 163: break;
 63.1395 -        case 96: 
 63.1396 -          { return AdaTokenId.PRAGMA;
 63.1397 -          }
 63.1398 -        case 164: break;
 63.1399 -        case 41: 
 63.1400 -          { return AdaTokenId.LTEQ;
 63.1401 -          }
 63.1402 -        case 165: break;
 63.1403 -        case 28: 
 63.1404 -          { return AdaTokenId.DOT_DOT;
 63.1405 -          }
 63.1406 -        case 166: break;
 63.1407 -        case 20: 
 63.1408 -          { return AdaTokenId.BAR;
 63.1409 -          }
 63.1410 -        case 167: break;
 63.1411 -        case 102: 
 63.1412 -          { return AdaTokenId.REQUEUE;
 63.1413 -          }
 63.1414 -        case 168: break;
 63.1415 -        case 58: 
 63.1416 -          { return AdaTokenId.USE;
 63.1417 -          }
 63.1418 -        case 169: break;
 63.1419 -        case 30: 
 63.1420 -          { return AdaTokenId.STRING_LITERAL;
 63.1421 -          }
 63.1422 -        case 170: break;
 63.1423 -        case 77: 
 63.1424 -          { return AdaTokenId.ELSIF;
 63.1425 -          }
 63.1426 -        case 171: break;
 63.1427 -        case 114: 
 63.1428 -          { return AdaTokenId.SEPARATE;
 63.1429 -          }
 63.1430 -        case 172: break;
 63.1431 -        case 91: 
 63.1432 -          { return AdaTokenId.OTHERS;
 63.1433 -          }
 63.1434 -        case 173: break;
 63.1435 -        case 2: 
 63.1436 -          { return AdaTokenId.DECIMAL_LITERAL;
 63.1437 -          }
 63.1438 -        case 174: break;
 63.1439 -        case 76: 
 63.1440 -          { return AdaTokenId.FLOAT;
 63.1441 -          }
 63.1442 -        case 175: break;
 63.1443 -        case 107: 
 63.1444 -          { return AdaTokenId.INTEGER;
 63.1445 -          }
 63.1446 -        case 176: break;
 63.1447 -        case 27: 
 63.1448 -          { pushState(ST_LINE_COMMENT);
 63.1449 -    return AdaTokenId.COMMENT;
 63.1450 -          }
 63.1451 -        case 177: break;
 63.1452 -        case 74: 
 63.1453 -          { return AdaTokenId.WHEN;
 63.1454 -          }
 63.1455 -        case 178: break;
 63.1456 -        case 54: 
 63.1457 -          { return AdaTokenId.REM;
 63.1458 -          }
 63.1459 -        case 179: break;
 63.1460 -        case 26: 
 63.1461 -          { popState();
 63.1462 -        return AdaTokenId.WHITESPACE;
 63.1463 -          }
 63.1464 -        case 180: break;
 63.1465 -        case 25: 
 63.1466 -          { return AdaTokenId.UNKNOWN_TOKEN;
 63.1467 -          }
 63.1468 -        case 181: break;
 63.1469 -        case 59: 
 63.1470 -          { return AdaTokenId.MOD;
 63.1471 -          }
 63.1472 -        case 182: break;
 63.1473 -        case 3: 
 63.1474 -          { return  AdaTokenId.IDENTIFIER;
 63.1475 -          }
 63.1476 -        case 183: break;
 63.1477 -        case 15: 
 63.1478 -          { return AdaTokenId.SLASH;
 63.1479 -          }
 63.1480 -        case 184: break;
 63.1481 -        case 57: 
 63.1482 -          { return AdaTokenId.XOR;
 63.1483 -          }
 63.1484 -        case 185: break;
 63.1485 -        case 19: 
 63.1486 -          { return AdaTokenId.LT;
 63.1487 -          }
 63.1488 -        case 186: break;
 63.1489 -        case 106: 
 63.1490 -          { return AdaTokenId.LIMITED;
 63.1491 -          }
 63.1492 -        case 187: break;
 63.1493 -        case 92: 
 63.1494 -          { return AdaTokenId.RETURN;
 63.1495 -          }
 63.1496 -        case 188: break;
 63.1497 -        case 16: 
 63.1498 -          { return AdaTokenId.SEMICOLON;
 63.1499 -          }
 63.1500 -        case 189: break;
 63.1501 -        case 84: 
 63.1502 -          { return AdaTokenId.DELAY;
 63.1503 -          }
 63.1504 -        case 190: break;
 63.1505 -        case 103: 
 63.1506 -          { return AdaTokenId.SUBTYPE;
 63.1507 -          }
 63.1508 -        case 191: break;
 63.1509 -        case 4: 
 63.1510 -          { return AdaTokenId.PLUS;
 63.1511 -          }
 63.1512 -        case 192: break;
 63.1513 -        case 67: 
 63.1514 -          { return AdaTokenId.TYPE;
 63.1515 -          }
 63.1516 -        case 193: break;
 63.1517 -        case 38: 
 63.1518 -          { return AdaTokenId.EXPON;
 63.1519 -          }
 63.1520 -        case 194: break;
 63.1521 -        case 105: 
 63.1522 -          { return AdaTokenId.PRIVATE;
 63.1523 -          }
 63.1524 -        case 195: break;
 63.1525 -        case 21: 
 63.1526 -          { yypushback(1);
 63.1527 -    popState();
 63.1528 -          }
 63.1529 -        case 196: break;
 63.1530 -        case 101: 
 63.1531 -          { return AdaTokenId.REVERSE;
 63.1532 -          }
 63.1533 -        case 197: break;
 63.1534 -        case 86: 
 63.1535 -          { return AdaTokenId.UNTIL;
 63.1536 -          }
 63.1537 -        case 198: break;
 63.1538 -        case 9: 
 63.1539 -          { return AdaTokenId.TICK;
 63.1540 -          }
 63.1541 -        case 199: break;
 63.1542 -        case 24: 
 63.1543 -          { popState();
 63.1544 -    return AdaTokenId.COMMENT;
 63.1545 -          }
 63.1546 -        case 200: break;
 63.1547 -        case 71: 
 63.1548 -          { return AdaTokenId.NULL;
 63.1549 -          }
 63.1550 -        case 201: break;
 63.1551 -        case 37: 
 63.1552 -          { return AdaTokenId.DO;
 63.1553 -          }
 63.1554 -        case 202: break;
 63.1555 -        case 36: 
 63.1556 -          { return AdaTokenId.IN;
 63.1557 -          }
 63.1558 -        case 203: break;
 63.1559 -        case 5: 
 63.1560 -          { return AdaTokenId.MINUS;
 63.1561 -          }
 63.1562 -        case 204: break;
 63.1563 -        case 83: 
 63.1564 -          { return AdaTokenId.RANGE;
 63.1565 -          }
 63.1566 -        case 205: break;
 63.1567 -        case 121: 
 63.1568 -          { return AdaTokenId.WIDE_CHARECTER;
 63.1569 -          }
 63.1570 -        case 206: break;
 63.1571 -        case 22: 
 63.1572 -          { popState();
 63.1573 -    return AdaTokenId.IDENTIFIER;
 63.1574 -          }
 63.1575 -        case 207: break;
 63.1576 -        case 81: 
 63.1577 -          { return AdaTokenId.BEGIN;
 63.1578 -          }
 63.1579 -        case 208: break;
 63.1580 -        case 94: 
 63.1581 -          { return AdaTokenId.TAGGED;
 63.1582 -          }
 63.1583 -        case 209: break;
 63.1584 -        case 40: 
 63.1585 -          { return AdaTokenId.LTLT;
 63.1586 -          }
 63.1587 -        case 210: break;
 63.1588 -        case 23: 
 63.1589 -          { return AdaTokenId.DOT;
 63.1590 -          }
 63.1591 -        case 211: break;
 63.1592 -        case 43: 
 63.1593 -          { return AdaTokenId.ARROW;
 63.1594 -          }
 63.1595 -        case 212: break;
 63.1596 -        case 78: 
 63.1597 -          { return AdaTokenId.ENTRY;
 63.1598 -          }
 63.1599 -        case 213: break;
 63.1600 -        case 46: 
 63.1601 -          { popState();
 63.1602 -    return AdaTokenId.DOT_DOT;
 63.1603 -          }
 63.1604 -        case 214: break;
 63.1605 -        case 63: 
 63.1606 -          { return AdaTokenId.ATTRIBUTE;
 63.1607 -          }
 63.1608 -        case 215: break;
 63.1609 -        case 17: 
 63.1610 -          { return AdaTokenId.GT;
 63.1611 -          }
 63.1612 -        case 216: break;
 63.1613 -        case 99: 
 63.1614 -          { return AdaTokenId.BOOLEAN;
 63.1615 -          }
 63.1616 -        case 217: break;
 63.1617 -        case 32: 
 63.1618 -          { return AdaTokenId.OF;
 63.1619 -          }
 63.1620 -        case 218: break;
 63.1621 -        case 55: 
 63.1622 -          { return AdaTokenId.NEW;
 63.1623 -          }
 63.1624 -        case 219: break;
 63.1625 -        case 45: 
 63.1626 -          { return AdaTokenId.GTGT;
 63.1627 -          }
 63.1628 -        case 220: break;
 63.1629 -        case 53: 
 63.1630 -          { return AdaTokenId.OUT;
 63.1631 -          }
 63.1632 -        case 221: break;
 63.1633 -        case 98: 
 63.1634 -          { return AdaTokenId.ALIASED;
 63.1635 -          }
 63.1636 -        case 222: break;
 63.1637 -        case 33: 
 63.1638 -          { return AdaTokenId.OR;
 63.1639 -          }
 63.1640 -        case 223: break;
 63.1641 -        case 39: 
 63.1642 -          { return AdaTokenId.INEQ;
 63.1643 -          }
 63.1644 -        case 224: break;
 63.1645 -        case 80: 
 63.1646 -          { return AdaTokenId.ARRAY;
 63.1647 -          }
 63.1648 -        case 225: break;
 63.1649 -        case 35: 
 63.1650 -          { return AdaTokenId.IS;
 63.1651 -          }
 63.1652 -        case 226: break;
 63.1653 -        case 119: 
 63.1654 -          { return AdaTokenId.PROTECTED;
 63.1655 -          }
 63.1656 -        case 227: break;
 63.1657 -        case 87: 
 63.1658 -          { return AdaTokenId.WHILE;
 63.1659 -          }
 63.1660 -        case 228: break;
 63.1661 -        case 111: 
 63.1662 -          { return AdaTokenId.END_CASE;
 63.1663 -          }
 63.1664 -        case 229: break;
 63.1665 -        case 112: 
 63.1666 -          { return AdaTokenId.END_LOOP;
 63.1667 -          }
 63.1668 -        case 230: break;
 63.1669 -        case 97: 
 63.1670 -          { return AdaTokenId.DIGITS;
 63.1671 -          }
 63.1672 -        case 231: break;
 63.1673 -        case 64: 
 63.1674 -          { return AdaTokenId.BODY;
 63.1675 -          }
 63.1676 -        case 232: break;
 63.1677 -        case 109: 
 63.1678 -          { return AdaTokenId.GENERIC;
 63.1679 -          }
 63.1680 -        case 233: break;
 63.1681 -        case 85: 
 63.1682 -          { return AdaTokenId.DELTA;
 63.1683 -          }
 63.1684 -        case 234: break;
 63.1685 -        case 7: 
 63.1686 -          { return AdaTokenId.COLON;
 63.1687 -          }
 63.1688 -        case 235: break;
 63.1689 -        case 95: 
 63.1690 -          { return AdaTokenId.SELECT;
 63.1691 -          }
 63.1692 -        case 236: break;
 63.1693 -        case 31: 
 63.1694 -          { return AdaTokenId.AT;
 63.1695 -          }
 63.1696 -        case 237: break;
 63.1697 -        case 65: 
 63.1698 -          { return AdaTokenId.TASK;
 63.1699 -          }
 63.1700 -        case 238: break;
 63.1701 -        case 29: 
 63.1702 -          { return AdaTokenId.ASSIGNMENT;
 63.1703 -          }
 63.1704 -        case 239: break;
 63.1705 -        case 34: 
 63.1706 -          { return AdaTokenId.IF;
 63.1707 -          }
 63.1708 -        case 240: break;
 63.1709 -        case 117: 
 63.1710 -          { return AdaTokenId.TERMINATE;
 63.1711 -          }
 63.1712 -        case 241: break;
 63.1713 -        case 56: 
 63.1714 -          { return AdaTokenId.NOT;
 63.1715 -          }
 63.1716 -        case 242: break;
 63.1717 -        default: 
 63.1718 -          if (zzInput == YYEOF) 
 63.1719 -            //zzAtEOF = true;
 63.1720 -              {        if(input.readLength() > 0) {
 63.1721 -            // backup eof
 63.1722 -            input.backup(1);
 63.1723 -            //and return the text as error token
 63.1724 -            return AdaTokenId.UNKNOWN_TOKEN;
 63.1725 -        } else {
 63.1726 -            return null;
 63.1727 -        }
 63.1728 - }
 63.1729 -          
 63.1730 -          else {
 63.1731 -            zzScanError(ZZ_NO_MATCH);
 63.1732 -          }
 63.1733 -      }
 63.1734 -    }
 63.1735 -  }
 63.1736 -
 63.1737 -
 63.1738 -}
    64.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    64.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/lexer/AdaASTLexer.java	Mon Oct 15 23:38:26 2012 +0200
    64.3 @@ -0,0 +1,1650 @@
    64.4 +/* The following code was generated by JFlex 1.4.3 on 23/09/10 23.54 */
    64.5 +
    64.6 +/*
    64.7 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
    64.8 + *
    64.9 + * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
   64.10 + *
   64.11 + * The contents of this file are subject to the terms of either the GNU
   64.12 + * General Public License Version 2 only ("GPL") or the Common
   64.13 + * Development and Distribution License("CDDL") (collectively, the
   64.14 + * "License"). You may not use this file except in compliance with the
   64.15 + * License. You can obtain a copy of the License at
   64.16 + * http://www.netbeans.org/cddl-gplv2.html
   64.17 + * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
   64.18 + * specific language governing permissions and limitations under the
   64.19 + * License.  When distributing the software, include this License Header
   64.20 + * Notice in each file and include the License file at
   64.21 + * nbbuild/licenses/CDDL-GPL-2-CP.  Sun designates this
   64.22 + * particular file as subject to the "Classpath" exception as provided
   64.23 + * by Sun in the GPL Version 2 section of the License file that
   64.24 + * accompanied this code. If applicable, add the following below the
   64.25 + * License Header, with the fields enclosed by brackets [] replaced by
   64.26 + * your own identifying information:
   64.27 + * "Portions Copyrighted [year] [name of copyright owner]"
   64.28 + *
   64.29 + * If you wish your version of this file to be governed by only the CDDL
   64.30 + * or only the GPL Version 2, indicate your decision by adding
   64.31 + * "[Contributor] elects to include this software in this distribution
   64.32 + * under the [CDDL or GPL Version 2] license." If you do not indicate a
   64.33 + * single choice of license, a recipient has the option to distribute
   64.34 + * your version of this file under either the CDDL, the GPL Version 2 or
   64.35 + * to extend the choice of license to its licensees as provided above.
   64.36 + * However, if you add GPL Version 2 code and therefore, elected the GPL
   64.37 + * Version 2 license, then the option applies only if the new code is
   64.38 + * made subject to such option by the copyright holder.
   64.39 + *
   64.40 + * Contributor(s):
   64.41 + *
   64.42 + * Portions Copyrighted 2008 Sun Microsystems, Inc.
   64.43 + */
   64.44 +package org.netbeans.modules.ada.editor.lexer;
   64.45 +
   64.46 +import java.util.LinkedList;
   64.47 +import java.util.List;
   64.48 +import org.netbeans.modules.ada.editor.parser.AdaASTSymbols;
   64.49 +import org.netbeans.modules.ada.editor.ast.nodes.*;
   64.50 +import java_cup.runtime.*;
   64.51 +import org.netbeans.modules.ada.project.api.AdaLanguageOptions;
   64.52 +
   64.53 +
   64.54 +/**
   64.55 + * This class is a scanner generated by 
   64.56 + * <a href="http://www.jflex.de/">JFlex</a> 1.4.3
   64.57 + * on 23/09/10 23.54 from the specification file
   64.58 + * <tt>C:/hg-repo/release691/contrib/ada.editor/src/org/netbeans/modules/ada/editor/lexer/resources/AdaASTLexer.flex</tt>
   64.59 + */
   64.60 +public class AdaASTLexer implements Scanner {
   64.61 +
   64.62 +  /** This character denotes the end of file */
   64.63 +  public static final int YYEOF = -1;
   64.64 +
   64.65 +  /** initial size of the lookahead buffer */
   64.66 +  private static final int ZZ_BUFFERSIZE = 16384;
   64.67 +
   64.68 +  /** lexical states */
   64.69 +  public static final int ST_LOOKING_FOR_PROPERTY = 2;
   64.70 +  public static final int YYINITIAL = 0;
   64.71 +  public static final int ST_LINE_COMMENT = 4;
   64.72 +
   64.73 +  /**
   64.74 +   * ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l
   64.75 +   * ZZ_LEXSTATE[l+1] is the state in the DFA for the lexical state l
   64.76 +   *                  at the beginning of a line
   64.77 +   * l is of the form l = 2*k, k a non negative integer
   64.78 +   */
   64.79 +  private static final int ZZ_LEXSTATE[] = { 
   64.80 +     0,  0,  1,  1,  2, 2
   64.81 +  };
   64.82 +
   64.83 +  /** 
   64.84 +   * Translates characters to character classes
   64.85 +   */
   64.86 +  private static final String ZZ_CMAP_PACKED = 
   64.87 +    "\11\0\1\13\1\15\2\0\1\17\22\0\1\13\1\61\1\14\1\10"+
   64.88 +    "\2\0\1\47\1\16\1\50\1\51\1\52\1\5\1\53\1\6\1\7"+
   64.89 +    "\1\54\12\1\1\11\1\55\1\56\1\57\1\60\2\0\1\20\1\21"+
   64.90 +    "\1\26\1\32\1\4\1\2\1\35\1\42\1\31\1\12\1\44\1\30"+
   64.91 +    "\1\40\1\33\1\22\1\27\1\45\1\23\1\25\1\24\1\37\1\43"+
   64.92 +    "\1\41\1\36\1\34\1\46\4\0\1\3\1\0\1\20\1\21\1\26"+
   64.93 +    "\1\32\1\4\1\2\1\35\1\42\1\31\1\12\1\44\1\30\1\40"+
   64.94 +    "\1\33\1\22\1\27\1\45\1\23\1\25\1\24\1\37\1\43\1\41"+
   64.95 +    "\1\36\1\34\1\46\1\0\1\61\uff83\0";
   64.96 +
   64.97 +  /** 
   64.98 +   * Translates characters to character classes
   64.99 +   */
  64.100 +  private static final char [] ZZ_CMAP = zzUnpackCMap(ZZ_CMAP_PACKED);
  64.101 +
  64.102 +  /** 
  64.103 +   * Translates DFA states to action switch labels.
  64.104 +   */
  64.105 +  private static final int [] ZZ_ACTION = zzUnpackAction();
  64.106 +
  64.107 +  private static final String ZZ_ACTION_PACKED_0 =
  64.108 +    "\3\0\1\1\1\2\2\3\1\4\1\5\1\6\1\7"+
  64.109 +    "\1\3\1\10\1\1\1\11\21\3\1\12\1\13\1\14"+
  64.110 +    "\1\15\1\16\1\17\1\20\1\21\1\22\1\23\1\24"+
  64.111 +    "\1\25\1\26\1\27\2\30\6\0\5\3\1\31\1\32"+
  64.112 +    "\1\33\1\0\1\34\1\0\2\3\1\35\5\3\1\36"+
  64.113 +    "\1\37\23\3\1\40\1\41\1\42\1\3\1\43\13\3"+
  64.114 +    "\1\44\1\45\1\46\1\47\1\50\1\51\1\52\1\53"+
  64.115 +    "\1\0\1\54\1\0\1\2\1\0\1\2\1\0\1\55"+
  64.116 +    "\3\3\1\56\2\3\1\57\1\3\1\60\2\3\1\61"+
  64.117 +    "\1\3\1\62\3\3\1\63\4\3\1\64\31\3\1\65"+
  64.118 +    "\1\66\3\3\1\67\1\70\1\3\1\71\3\3\2\0"+
  64.119 +    "\1\72\1\3\1\73\3\3\1\74\6\3\1\75\12\3"+
  64.120 +    "\1\76\1\3\1\77\1\100\2\3\1\101\2\3\1\102"+
  64.121 +    "\6\3\1\103\5\3\1\104\1\3\1\105\1\3\1\106"+
  64.122 +    "\1\107\1\3\3\0\1\3\1\110\1\111\1\3\1\112"+
  64.123 +    "\1\3\1\113\3\3\1\114\7\3\1\115\1\116\17\3"+
  64.124 +    "\1\117\1\120\1\3\1\121\1\122\1\0\1\72\1\0"+
  64.125 +    "\3\3\1\123\1\124\1\3\1\125\1\3\1\126\1\127"+
  64.126 +    "\4\3\1\130\1\3\1\131\4\3\1\132\7\3\1\0"+
  64.127 +    "\3\3\1\133\1\3\1\134\1\135\1\136\3\3\1\137"+
  64.128 +    "\1\3\1\140\2\3\1\141\1\142\1\3\1\143\1\144"+
  64.129 +    "\1\0\1\145\1\3\1\146\2\3\1\147\1\3\1\150"+
  64.130 +    "\3\3\1\30\1\151\1\3\1\152\1\3\1\153\1\154"+
  64.131 +    "\1\155\1\156\2\3\1\157";
  64.132 +
  64.133 +  private static int [] zzUnpackAction() {
  64.134 +    int [] result = new int[362];
  64.135 +    int offset = 0;
  64.136 +    offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
  64.137 +    return result;
  64.138 +  }
  64.139 +
  64.140 +  private static int zzUnpackAction(String packed, int offset, int [] result) {
  64.141 +    int i = 0;       /* index in packed string  */
  64.142 +    int j = offset;  /* index in unpacked array */
  64.143 +    int l = packed.length();
  64.144 +    while (i < l) {
  64.145 +      int count = packed.charAt(i++);
  64.146 +      int value = packed.charAt(i++);
  64.147 +      do result[j++] = value; while (--count > 0);
  64.148 +    }
  64.149 +    return j;
  64.150 +  }
  64.151 +
  64.152 +
  64.153 +  /** 
  64.154 +   * Translates a state to a row index in the transition table
  64.155 +   */
  64.156 +  private static final int [] ZZ_ROWMAP = zzUnpackRowMap();
  64.157 +
  64.158 +  private static final String ZZ_ROWMAP_PACKED_0 =
  64.159 +    "\0\0\0\62\0\144\0\226\0\310\0\372\0\u012c\0\226"+
  64.160 +    "\0\u015e\0\u0190\0\u01c2\0\u01f4\0\u0226\0\u0258\0\u028a\0\u02bc"+
  64.161 +    "\0\u02ee\0\u0320\0\u0352\0\u0384\0\u03b6\0\u03e8\0\u041a\0\u044c"+
  64.162 +    "\0\u047e\0\u04b0\0\u04e2\0\u0514\0\u0546\0\u0578\0\u05aa\0\u05dc"+
  64.163 +    "\0\226\0\226\0\226\0\u060e\0\226\0\u0640\0\226\0\u0672"+
  64.164 +    "\0\u06a4\0\u06d6\0\226\0\226\0\u0708\0\u073a\0\226\0\u076c"+
  64.165 +    "\0\u079e\0\u07d0\0\u0802\0\u0834\0\u0866\0\u0898\0\u08ca\0\u08fc"+
  64.166 +    "\0\u092e\0\u0960\0\u0992\0\226\0\226\0\226\0\u0258\0\u09c4"+
  64.167 +    "\0\u09f6\0\u0a28\0\u0a5a\0\u01f4\0\u0a8c\0\u0abe\0\u0af0\0\u0b22"+
  64.168 +    "\0\u0b54\0\u01f4\0\u01f4\0\u0b86\0\u0bb8\0\u0bea\0\u0c1c\0\u0c4e"+
  64.169 +    "\0\u0c80\0\u0cb2\0\u0ce4\0\u0d16\0\u0d48\0\u0d7a\0\u0dac\0\u0dde"+
  64.170 +    "\0\u0e10\0\u0e42\0\u0e74\0\u0ea6\0\u0ed8\0\u0f0a\0\u01f4\0\u01f4"+
  64.171 +    "\0\u0f3c\0\u0f6e\0\u01f4\0\u0fa0\0\u0fd2\0\u1004\0\u1036\0\u1068"+
  64.172 +    "\0\u109a\0\u10cc\0\u10fe\0\u1130\0\u1162\0\u1194\0\226\0\226"+
  64.173 +    "\0\226\0\226\0\226\0\226\0\226\0\226\0\u11c6\0\226"+
  64.174 +    "\0\u11f8\0\u122a\0\u125c\0\u128e\0\u12c0\0\u01f4\0\u12f2\0\u1324"+
  64.175 +    "\0\u1356\0\u01f4\0\u1388\0\u13ba\0\226\0\u13ec\0\u141e\0\u1450"+
  64.176 +    "\0\u1482\0\u01f4\0\u14b4\0\u01f4\0\u14e6\0\u1518\0\u154a\0\u01f4"+
  64.177 +    "\0\u157c\0\u15ae\0\u15e0\0\u1612\0\u01f4\0\u1644\0\u1676\0\u16a8"+
  64.178 +    "\0\u16da\0\u170c\0\u173e\0\u1770\0\u17a2\0\u17d4\0\u1806\0\u1838"+
  64.179 +    "\0\u186a\0\u189c\0\u18ce\0\u1900\0\u1932\0\u1964\0\u1996\0\u19c8"+
  64.180 +    "\0\u19fa\0\u1a2c\0\u1a5e\0\u1a90\0\u1ac2\0\u1af4\0\u01f4\0\u01f4"+
  64.181 +    "\0\u1b26\0\u1b58\0\u1b8a\0\u01f4\0\u01f4\0\u1bbc\0\u01f4\0\u1bee"+
  64.182 +    "\0\u1c20\0\u1c52\0\u1c84\0\u1cb6\0\u1ce8\0\u1d1a\0\u01f4\0\u1d4c"+
  64.183 +    "\0\u1d7e\0\u1db0\0\u01f4\0\u1de2\0\u1e14\0\u1e46\0\u1e78\0\u1eaa"+
  64.184 +    "\0\u1edc\0\u01f4\0\u1f0e\0\u1f40\0\u1f72\0\u1fa4\0\u1fd6\0\u2008"+
  64.185 +    "\0\u203a\0\u206c\0\u209e\0\u20d0\0\u01f4\0\u2102\0\u01f4\0\u01f4"+
  64.186 +    "\0\u2134\0\u2166\0\u01f4\0\u2198\0\u21ca\0\u01f4\0\u21fc\0\u222e"+
  64.187 +    "\0\u2260\0\u2292\0\u22c4\0\u22f6\0\u01f4\0\u2328\0\u235a\0\u238c"+
  64.188 +    "\0\u23be\0\u23f0\0\u01f4\0\u2422\0\u01f4\0\u2454\0\u01f4\0\u01f4"+
  64.189 +    "\0\u2486\0\u24b8\0\u24ea\0\u251c\0\u254e\0\u01f4\0\u01f4\0\u2580"+
  64.190 +    "\0\u01f4\0\u25b2\0\u01f4\0\u25e4\0\u2616\0\u2648\0\u01f4\0\u267a"+
  64.191 +    "\0\u26ac\0\u26de\0\u2710\0\u2742\0\u2774\0\u27a6\0\u01f4\0\u01f4"+
  64.192 +    "\0\u27d8\0\u280a\0\u283c\0\u286e\0\u28a0\0\u28d2\0\u2904\0\u2936"+
  64.193 +    "\0\u2968\0\u299a\0\u29cc\0\u29fe\0\u2a30\0\u2a62\0\u2a94\0\u01f4"+
  64.194 +    "\0\u01f4\0\u2ac6\0\u01f4\0\u01f4\0\u2af8\0\u2b2a\0\u2b5c\0\u2b8e"+
  64.195 +    "\0\u2bc0\0\u2bf2\0\u01f4\0\u01f4\0\u2c24\0\u01f4\0\u2c56\0\u01f4"+
  64.196 +    "\0\u01f4\0\u2c88\0\u2cba\0\u2cec\0\u2d1e\0\u01f4\0\u2d50\0\u01f4"+
  64.197 +    "\0\u2d82\0\u2db4\0\u2de6\0\u2e18\0\u01f4\0\u2e4a\0\u2e7c\0\u2eae"+
  64.198 +    "\0\u2ee0\0\u2f12\0\u2f44\0\u2f76\0\u2fa8\0\u2fda\0\u300c\0\u303e"+
  64.199 +    "\0\u01f4\0\u3070\0\u01f4\0\u01f4\0\u01f4\0\u30a2\0\u30d4\0\u3106"+
  64.200 +    "\0\u01f4\0\u3138\0\u01f4\0\u316a\0\u319c\0\u01f4\0\u01f4\0\u31ce"+
  64.201 +    "\0\u01f4\0\u01f4\0\u3200\0\u01f4\0\u3232\0\u01f4\0\u3264\0\u3296"+
  64.202 +    "\0\u01f4\0\u32c8\0\u01f4\0\u32fa\0\u332c\0\u335e\0\144\0\u01f4"+
  64.203 +    "\0\u3390\0\u01f4\0\u33c2\0\u01f4\0\u01f4\0\u01f4\0\u01f4\0\u33f4"+
  64.204 +    "\0\u3426\0\u01f4";
  64.205 +
  64.206 +  private static int [] zzUnpackRowMap() {
  64.207 +    int [] result = new int[362];
  64.208 +    int offset = 0;
  64.209 +    offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
  64.210 +    return result;
  64.211 +  }
  64.212 +
  64.213 +  private static int zzUnpackRowMap(String packed, int offset, int [] result) {
  64.214 +    int i = 0;  /* index in packed string  */
  64.215 +    int j = offset;  /* index in unpacked array */
  64.216 +    int l = packed.length();
  64.217 +    while (i < l) {
  64.218 +      int high = packed.charAt(i++) << 16;
  64.219 +      result[j++] = high | packed.charAt(i++);
  64.220 +    }
  64.221 +    return j;
  64.222 +  }
  64.223 +
  64.224 +  /** 
  64.225 +   * The transition table of the DFA
  64.226 +   */
  64.227 +  private static final int [] ZZ_TRANS = zzUnpackTrans();
  64.228 +
  64.229 +  private static final String ZZ_TRANS_PACKED_0 =
  64.230 +    "\1\4\1\5\1\6\1\4\1\7\1\10\1\11\1\12"+
  64.231 +    "\1\4\1\13\1\14\1\15\1\16\1\15\1\17\1\15"+
  64.232 +    "\1\20\1\21\1\22\1\23\1\24\1\25\1\26\1\27"+
  64.233 +    "\1\30\1\31\1\32\1\33\1\14\1\34\1\35\1\36"+
  64.234 +    "\1\37\1\40\5\14\1\41\1\42\1\43\1\44\1\45"+
  64.235 +    "\1\46\1\47\1\50\1\51\1\52\1\53\2\54\1\55"+
  64.236 +    "\1\54\1\55\2\54\1\56\2\54\1\55\5\54\27\55"+
  64.237 +    "\13\54\15\3\1\57\1\3\1\60\1\61\41\3\63\0"+
  64.238 +    "\1\5\1\0\1\62\1\63\2\0\1\64\2\65\51\0"+
  64.239 +    "\2\14\1\66\1\14\5\0\1\14\5\0\2\14\1\67"+
  64.240 +    "\14\14\1\70\7\14\14\0\2\14\1\66\1\14\5\0"+
  64.241 +    "\1\14\5\0\10\14\1\71\2\14\1\72\2\14\1\73"+
  64.242 +    "\10\14\21\0\1\74\62\0\1\75\131\0\1\76\3\0"+
  64.243 +    "\2\14\1\66\1\14\5\0\1\14\5\0\27\14\26\0"+
  64.244 +    "\1\15\1\0\1\15\1\0\1\15\42\0\14\77\1\100"+
  64.245 +    "\1\0\44\77\15\101\1\0\44\101\1\0\2\14\1\66"+
  64.246 +    "\1\14\5\0\1\14\5\0\1\14\1\102\1\14\1\103"+
  64.247 +    "\1\104\1\14\1\105\1\14\1\106\2\14\1\107\13\14"+
  64.248 +    "\14\0\2\14\1\66\1\110\5\0\1\14\5\0\2\14"+
  64.249 +    "\1\111\24\14\14\0\1\14\1\112\1\66\1\14\5\0"+
  64.250 +    "\1\14\5\0\3\14\1\113\1\114\12\14\1\115\3\14"+
  64.251 +    "\1\116\3\14\14\0\2\14\1\66\1\117\5\0\1\14"+
  64.252 +    "\5\0\1\120\26\14\14\0\2\14\1\66\1\121\5\0"+
  64.253 +    "\1\14\5\0\1\122\13\14\1\123\5\14\1\124\4\14"+
  64.254 +    "\14\0\2\14\1\66\1\125\5\0\1\14\5\0\2\14"+
  64.255 +    "\1\126\11\14\1\127\2\14\1\130\7\14\14\0\2\14"+
  64.256 +    "\1\66\1\14\5\0\1\14\5\0\1\131\1\14\1\132"+
  64.257 +    "\24\14\14\0\2\14\1\66\1\14\5\0\1\14\5\0"+
  64.258 +    "\1\133\2\14\1\134\23\14\14\0\2\14\1\66\1\14"+
  64.259 +    "\5\0\1\14\5\0\2\14\1\135\6\14\1\136\15\14"+
  64.260 +    "\14\0\1\14\1\137\1\66\1\14\5\0\1\14\5\0"+
  64.261 +    "\5\14\1\140\5\14\1\141\13\14\14\0\2\14\1\66"+
  64.262 +    "\1\142\5\0\1\14\5\0\2\14\1\143\24\14\14\0"+
  64.263 +    "\2\14\1\66\1\144\5\0\1\14\5\0\2\14\1\145"+
  64.264 +    "\14\14\1\146\7\14\14\0\2\14\1\66\1\147\5\0"+
  64.265 +    "\1\14\5\0\2\14\1\150\24\14\14\0\2\14\1\66"+
  64.266 +    "\1\14\5\0\1\14\5\0\2\14\1\151\24\14\14\0"+
  64.267 +    "\2\14\1\66\1\14\5\0\1\14\5\0\5\14\1\152"+
  64.268 +    "\5\14\1\153\13\14\14\0\2\14\1\66\1\14\5\0"+
  64.269 +    "\1\14\5\0\2\14\1\154\24\14\14\0\2\14\1\66"+
  64.270 +    "\1\14\5\0\1\14\5\0\11\14\1\155\10\14\1\156"+
  64.271 +    "\4\14\65\0\1\157\66\0\1\160\60\0\1\161\1\162"+
  64.272 +    "\1\163\61\0\1\164\60\0\1\165\1\166\2\0\2\55"+
  64.273 +    "\1\167\1\55\5\0\1\55\5\0\27\55\22\0\1\170"+
  64.274 +    "\67\0\1\57\44\0\15\3\1\57\1\3\1\60\1\61"+
  64.275 +    "\12\3\1\171\26\3\1\0\1\5\61\0\1\172\3\0"+
  64.276 +    "\2\173\54\0\1\174\61\0\2\175\1\0\1\175\13\0"+
  64.277 +    "\2\175\4\0\1\175\3\0\1\175\30\0\2\14\1\0"+
  64.278 +    "\1\14\5\0\1\14\5\0\27\14\14\0\2\14\1\66"+
  64.279 +    "\1\14\5\0\1\14\5\0\3\14\1\176\23\14\14\0"+
  64.280 +    "\2\14\1\66\1\14\5\0\1\14\5\0\13\14\1\177"+
  64.281 +    "\13\14\14\0\2\14\1\66\1\14\5\0\1\14\5\0"+
  64.282 +    "\5\14\1\200\21\14\14\0\2\14\1\66\1\14\5\0"+
  64.283 +    "\1\14\5\0\4\14\1\201\5\14\1\202\14\14\14\0"+
  64.284 +    "\2\14\1\66\1\14\5\0\1\14\5\0\6\14\1\203"+
  64.285 +    "\2\14\1\204\15\14\27\0\1\77\63\0\1\205\44\0"+
  64.286 +    "\2\14\1\66\1\14\5\0\1\14\5\0\2\14\1\206"+
  64.287 +    "\2\14\1\207\21\14\14\0\2\14\1\66\1\14\5\0"+
  64.288 +    "\1\14\5\0\3\14\1\210\23\14\14\0\2\14\1\66"+
  64.289 +    "\1\14\5\0\1\14\5\0\6\14\1\211\20\14\14\0"+
  64.290 +    "\2\14\1\66\1\14\5\0\1\14\5\0\10\14\1\212"+
  64.291 +    "\1\213\15\14\14\0\2\14\1\66\1\14\5\0\1\14"+
  64.292 +    "\5\0\12\14\1\214\14\14\14\0\2\14\1\66\1\14"+
  64.293 +    "\5\0\1\14\5\0\15\14\1\215\11\14\14\0\2\14"+
  64.294 +    "\1\66\1\14\5\0\1\14\5\0\12\14\1\216\14\14"+
  64.295 +    "\14\0\2\14\1\66\1\14\5\0\1\14\5\0\22\14"+
  64.296 +    "\1\217\4\14\14\0\2\14\1\66\1\14\5\0\1\14"+
  64.297 +    "\5\0\4\14\1\220\22\14\14\0\2\14\1\66\1\221"+
  64.298 +    "\5\0\1\14\5\0\27\14\14\0\2\14\1\66\1\14"+
  64.299 +    "\5\0\1\14\5\0\4\14\1\222\1\14\1\223\4\14"+
  64.300 +    "\1\224\4\14\1\225\2\14\1\226\1\14\1\227\1\14"+
  64.301 +    "\14\0\2\14\1\66\1\14\5\0\1\14\5\0\11\14"+
  64.302 +    "\1\230\1\14\1\231\13\14\14\0\2\14\1\66\1\14"+
  64.303 +    "\5\0\1\14\5\0\3\14\1\232\23\14\14\0\2\14"+
  64.304 +    "\1\66\1\14\5\0\1\14\5\0\5\14\1\233\7\14"+
  64.305 +    "\1\234\11\14\14\0\2\14\1\66\1\14\5\0\1\14"+
  64.306 +    "\5\0\7\14\1\235\17\14\14\0\2\14\1\66\1\236"+
  64.307 +    "\5\0\1\14\5\0\27\14\14\0\2\14\1\66\1\14"+
  64.308 +    "\5\0\1\14\5\0\7\14\1\237\1\240\16\14\14\0"+
  64.309 +    "\2\14\1\66\1\14\5\0\1\14\5\0\20\14\1\241"+
  64.310 +    "\6\14\14\0\2\14\1\66\1\14\5\0\1\14\5\0"+
  64.311 +    "\13\14\1\242\13\14\14\0\2\14\1\66\1\14\5\0"+
  64.312 +    "\1\14\5\0\1\14\1\243\25\14\14\0\2\14\1\66"+
  64.313 +    "\1\14\5\0\1\14\5\0\5\14\1\244\21\14\14\0"+
  64.314 +    "\2\14\1\66\1\14\5\0\1\14\5\0\13\14\1\245"+
  64.315 +    "\13\14\14\0\2\14\1\66\1\14\5\0\1\14\5\0"+
  64.316 +    "\6\14\1\246\20\14\14\0\2\14\1\66\1\14\5\0"+
  64.317 +    "\1\14\5\0\1\247\1\14\1\250\6\14\1\251\15\14"+
  64.318 +    "\14\0\2\14\1\66\1\14\5\0\1\14\5\0\2\14"+
  64.319 +    "\1\252\24\14\14\0\2\14\1\66\1\14\5\0\1\14"+
  64.320 +    "\5\0\20\14\1\253\6\14\14\0\2\14\1\66\1\14"+
  64.321 +    "\5\0\1\14\5\0\4\14\1\254\22\14\14\0\2\14"+
  64.322 +    "\1\66\1\14\5\0\1\14\5\0\6\14\1\255\1\14"+
  64.323 +    "\1\256\16\14\14\0\2\14\1\66\1\14\5\0\1\14"+
  64.324 +    "\5\0\21\14\1\257\5\14\14\0\2\14\1\66\1\14"+
  64.325 +    "\5\0\1\14\5\0\4\14\1\260\22\14\14\0\2\14"+
  64.326 +    "\1\66\1\14\5\0\1\14\5\0\10\14\1\261\16\14"+
  64.327 +    "\14\0\2\14\1\66\1\14\5\0\1\14\5\0\13\14"+
  64.328 +    "\1\262\13\14\14\0\2\14\1\66\1\14\5\0\1\14"+
  64.329 +    "\5\0\4\14\1\263\22\14\14\0\2\14\1\66\1\14"+
  64.330 +    "\5\0\1\14\5\0\3\14\1\264\23\14\14\0\2\14"+
  64.331 +    "\1\66\1\265\5\0\1\14\5\0\27\14\14\0\2\14"+
  64.332 +    "\1\66\1\14\5\0\1\14\5\0\4\14\1\266\22\14"+
  64.333 +    "\14\0\2\14\1\66\1\14\5\0\1\14\5\0\12\14"+
  64.334 +    "\1\267\14\14\14\0\2\14\1\66\1\14\5\0\1\14"+
  64.335 +    "\5\0\4\14\1\270\22\14\14\0\2\14\1\66\1\271"+
  64.336 +    "\5\0\1\14\5\0\11\14\1\272\15\14\14\0\2\55"+
  64.337 +    "\1\0\1\55\5\0\1\55\5\0\27\55\13\0\15\3"+
  64.338 +    "\1\57\1\3\1\60\1\61\13\3\1\273\25\3\1\0"+
  64.339 +    "\1\172\1\0\1\173\57\0\1\172\61\0\1\174\1\0"+
  64.340 +    "\1\64\1\63\56\0\2\175\1\65\1\175\2\0\1\274"+
  64.341 +    "\2\275\6\0\2\175\4\0\1\175\3\0\1\175\30\0"+
  64.342 +    "\2\14\1\66\1\14\5\0\1\14\5\0\6\14\1\276"+
  64.343 +    "\20\14\14\0\2\14\1\66\1\277\5\0\1\14\5\0"+
  64.344 +    "\11\14\1\300\15\14\14\0\2\14\1\66\1\14\5\0"+
  64.345 +    "\1\14\5\0\3\14\1\301\23\14\14\0\2\14\1\66"+
  64.346 +    "\1\302\5\0\1\14\5\0\27\14\14\0\2\14\1\66"+
  64.347 +    "\1\14\5\0\1\14\5\0\4\14\1\303\22\14\14\0"+
  64.348 +    "\2\14\1\66\1\14\5\0\1\14\5\0\3\14\1\304"+
  64.349 +    "\23\14\14\0\2\14\1\66\1\14\5\0\1\14\5\0"+
  64.350 +    "\4\14\1\305\22\14\14\0\2\14\1\66\1\14\5\0"+
  64.351 +    "\1\14\5\0\1\306\26\14\14\0\2\14\1\66\1\307"+
  64.352 +    "\5\0\1\14\5\0\27\14\14\0\2\14\1\66\1\14"+
  64.353 +    "\5\0\1\14\5\0\1\310\26\14\14\0\2\14\1\66"+
  64.354 +    "\1\14\5\0\1\14\5\0\11\14\1\311\15\14\14\0"+
  64.355 +    "\2\14\1\66\1\14\5\0\1\14\5\0\14\14\1\312"+
  64.356 +    "\12\14\14\0\2\14\1\66\1\313\5\0\1\14\5\0"+
  64.357 +    "\27\14\14\0\2\14\1\66\1\14\5\0\1\14\5\0"+
  64.358 +    "\3\14\1\314\23\14\14\0\2\14\1\66\1\14\5\0"+
  64.359 +    "\1\14\5\0\17\14\1\315\7\14\14\0\2\14\1\66"+
  64.360 +    "\1\14\5\0\1\14\5\0\2\14\1\316\24\14\14\0"+
  64.361 +    "\2\14\1\66\1\14\5\0\1\14\5\0\1\317\26\14"+
  64.362 +    "\14\0\2\14\1\66\1\320\5\0\1\14\5\0\27\14"+
  64.363 +    "\14\0\2\14\1\66\1\14\5\0\1\14\5\0\17\14"+
  64.364 +    "\1\321\7\14\14\0\2\14\1\66\1\14\5\0\1\14"+
  64.365 +    "\5\0\5\14\1\322\21\14\14\0\2\14\1\66\1\14"+
  64.366 +    "\5\0\1\14\5\0\15\14\1\323\11\14\14\0\2\14"+
  64.367 +    "\1\66\1\14\5\0\1\14\5\0\20\14\1\324\6\14"+
  64.368 +    "\14\0\2\14\1\66\1\14\5\0\1\14\5\0\24\14"+
  64.369 +    "\1\325\2\14\14\0\2\14\1\66\1\14\5\0\1\14"+
  64.370 +    "\5\0\15\14\1\326\11\14\14\0\2\14\1\66\1\327"+
  64.371 +    "\5\0\1\14\5\0\27\14\14\0\2\14\1\66\1\14"+
  64.372 +    "\5\0\1\14\5\0\13\14\1\330\13\14\14\0\2\14"+
  64.373 +    "\1\66\1\14\5\0\1\14\5\0\1\331\26\14\14\0"+
  64.374 +    "\2\14\1\66\1\332\5\0\1\14\5\0\27\14\14\0"+
  64.375 +    "\2\14\1\66\1\333\5\0\1\14\5\0\27\14\14\0"+
  64.376 +    "\2\14\1\66\1\14\5\0\1\14\5\0\6\14\1\334"+
  64.377 +    "\20\14\14\0\2\14\1\66\1\14\5\0\1\14\5\0"+
  64.378 +    "\4\14\1\335\22\14\14\0\2\14\1\66\1\336\5\0"+
  64.379 +    "\1\14\5\0\27\14\14\0\2\14\1\66\1\14\5\0"+
  64.380 +    "\1\14\5\0\5\14\1\337\21\14\14\0\2\14\1\66"+
  64.381 +    "\1\14\5\0\1\14\5\0\24\14\1\340\2\14\14\0"+
  64.382 +    "\2\14\1\66\1\14\5\0\1\14\5\0\15\14\1\341"+
  64.383 +    "\11\14\14\0\2\14\1\66\1\14\5\0\1\14\5\0"+
  64.384 +    "\4\14\1\342\1\14\1\343\20\14\14\0\2\14\1\66"+
  64.385 +    "\1\14\5\0\1\14\5\0\23\14\1\344\3\14\14\0"+
  64.386 +    "\2\14\1\66\1\14\5\0\1\14\5\0\7\14\1\345"+
  64.387 +    "\17\14\14\0\2\14\1\66\1\14\5\0\1\14\5\0"+
  64.388 +    "\11\14\1\346\15\14\14\0\2\14\1\66\1\347\5\0"+
  64.389 +    "\1\14\5\0\27\14\14\0\2\14\1\66\1\14\5\0"+
  64.390 +    "\1\14\5\0\10\14\1\350\16\14\14\0\2\14\1\66"+
  64.391 +    "\1\14\5\0\1\14\5\0\1\351\3\14\1\352\22\14"+
  64.392 +    "\14\0\2\14\1\66\1\14\5\0\1\14\5\0\10\14"+
  64.393 +    "\1\353\16\14\14\0\2\14\1\66\1\354\5\0\1\14"+
  64.394 +    "\5\0\27\14\14\0\2\14\1\66\1\14\5\0\1\14"+
  64.395 +    "\5\0\2\14\1\355\24\14\14\0\2\14\1\66\1\14"+
  64.396 +    "\5\0\1\14\5\0\11\14\1\356\15\14\14\0\2\14"+
  64.397 +    "\1\66\1\14\5\0\1\14\5\0\22\14\1\357\4\14"+
  64.398 +    "\14\0\2\14\1\66\1\14\5\0\1\14\5\0\13\14"+
  64.399 +    "\1\360\13\14\14\0\2\14\1\66\1\14\5\0\1\14"+
  64.400 +    "\5\0\10\14\1\361\16\14\13\0\3\3\1\362\11\3"+
  64.401 +    "\1\57\1\3\1\60\1\61\41\3\1\0\2\363\1\0"+
  64.402 +    "\1\363\13\0\2\363\4\0\1\363\3\0\1\363\33\0"+
  64.403 +    "\1\364\56\0\2\14\1\66\1\14\5\0\1\14\5\0"+
  64.404 +    "\4\14\1\365\22\14\14\0\1\14\1\366\1\66\1\14"+
  64.405 +    "\5\0\1\14\5\0\27\14\14\0\2\14\1\66\1\14"+
  64.406 +    "\5\0\1\14\5\0\14\14\1\367\12\14\14\0\2\14"+
  64.407 +    "\1\66\1\14\5\0\1\14\5\0\7\14\1\370\17\14"+
  64.408 +    "\14\0\2\14\1\66\1\14\5\0\1\14\5\0\4\14"+
  64.409 +    "\1\371\22\14\14\0\2\14\1\66\1\14\5\0\1\14"+
  64.410 +    "\5\0\3\14\1\372\23\14\14\0\2\14\1\66\1\14"+
  64.411 +    "\5\0\1\14\5\0\14\14\1\373\12\14\14\0\2\14"+
  64.412 +    "\1\66\1\14\5\0\1\14\5\0\5\14\1\374\1\14"+
  64.413 +    "\1\375\17\14\14\0\2\14\1\66\1\14\5\0\1\14"+
  64.414 +    "\5\0\5\14\1\376\21\14\14\0\2\14\1\66\1\14"+
  64.415 +    "\5\0\1\14\5\0\13\14\1\377\13\14\14\0\2\14"+
  64.416 +    "\1\66\1\14\5\0\1\14\5\0\3\14\1\u0100\23\14"+
  64.417 +    "\14\0\2\14\1\66\1\14\5\0\1\14\5\0\3\14"+
  64.418 +    "\1\u0101\23\14\14\0\2\14\1\66\1\14\5\0\1\14"+
  64.419 +    "\5\0\3\14\1\u0102\23\14\14\0\2\14\1\66\1\14"+
  64.420 +    "\5\0\1\14\5\0\3\14\1\u0103\23\14\14\0\2\14"+
  64.421 +    "\1\66\1\14\5\0\1\14\5\0\20\14\1\u0104\6\14"+
  64.422 +    "\14\0\2\14\1\66\1\14\5\0\1\14\5\0\3\14"+
  64.423 +    "\1\u0105\23\14\14\0\2\14\1\66\1\u0106\5\0\1\14"+
  64.424 +    "\5\0\27\14\14\0\2\14\1\66\1\u0107\5\0\1\14"+
  64.425 +    "\5\0\27\14\14\0\2\14\1\66\1\u0108\5\0\1\14"+
  64.426 +    "\5\0\27\14\14\0\2\14\1\66\1\14\5\0\1\14"+
  64.427 +    "\5\0\11\14\1\u0109\15\14\14\0\2\14\1\66\1\u010a"+
  64.428 +    "\5\0\1\14\5\0\27\14\14\0\2\14\1\66\1\14"+
  64.429 +    "\5\0\1\14\5\0\3\14\1\u010b\23\14\14\0\2\14"+
  64.430 +    "\1\66\1\14\5\0\1\14\5\0\6\14\1\u010c\20\14"+
  64.431 +    "\14\0\2\14\1\66\1\14\5\0\1\14\5\0\22\14"+
  64.432 +    "\1\u010d\4\14\14\0\2\14\1\66\1\14\5\0\1\14"+
  64.433 +    "\5\0\14\14\1\u010e\12\14\14\0\2\14\1\66\1\14"+
  64.434 +    "\5\0\1\14\5\0\4\14\1\u010f\22\14\14\0\2\14"+
  64.435 +    "\1\66\1\14\5\0\1\14\5\0\1\u0110\26\14\14\0"+
  64.436 +    "\2\14\1\66\1\14\5\0\1\14\5\0\20\14\1\u0111"+
  64.437 +    "\6\14\14\0\2\14\1\66\1\u0112\5\0\1\14\5\0"+
  64.438 +    "\27\14\14\0\2\14\1\66\1\u0113\5\0\1\14\5\0"+
  64.439 +    "\27\14\14\0\2\14\1\66\1\14\5\0\1\14\5\0"+
  64.440 +    "\1\u0114\26\14\14\0\2\14\1\66\1\14\5\0\1\14"+
  64.441 +    "\5\0\4\14\1\u0115\22\14\14\0\2\14\1\66\1\14"+
  64.442 +    "\5\0\1\14\5\0\3\14\1\u0116\23\14\14\0\2\14"+
  64.443 +    "\1\66\1\14\5\0\1\14\5\0\1\u0117\26\14\14\0"+
  64.444 +    "\2\14\1\66\1\14\5\0\1\14\5\0\14\14\1\u0118"+
  64.445 +    "\12\14\14\0\2\14\1\66\1\14\5\0\1\14\5\0"+
  64.446 +    "\1\u0119\26\14\14\0\2\14\1\66\1\14\5\0\1\14"+
  64.447 +    "\5\0\3\14\1\u011a\23\14\14\0\2\14\1\66\1\14"+
  64.448 +    "\5\0\1\14\5\0\10\14\1\u011b\16\14\14\0\2\14"+
  64.449 +    "\1\66\1\u011c\5\0\1\14\5\0\27\14\13\0\15\3"+
  64.450 +    "\1\57\1\3\1\60\1\61\5\3\1\u011d\33\3\1\0"+
  64.451 +    "\2\363\1\274\1\363\3\0\2\275\6\0\2\363\4\0"+
  64.452 +    "\1\363\3\0\1\363\30\0\1\u011e\3\0\2\u011f\54\0"+
  64.453 +    "\2\14\1\66\1\14\5\0\1\14\5\0\11\14\1\u0120"+
  64.454 +    "\15\14\14\0\2\14\1\66\1\14\5\0\1\14\5\0"+
  64.455 +    "\4\14\1\u0121\22\14\14\0\2\14\1\66\1\14\5\0"+
  64.456 +    "\1\14\5\0\1\u0122\26\14\14\0\2\14\1\66\1\14"+
  64.457 +    "\5\0\1\14\5\0\5\14\1\u0123\21\14\14\0\2\14"+
  64.458 +    "\1\66\1\14\5\0\1\14\5\0\4\14\1\u0124\22\14"+
  64.459 +    "\14\0\2\14\1\66\1\u0125\5\0\1\14\5\0\27\14"+
  64.460 +    "\14\0\2\14\1\66\1\14\5\0\1\14\5\0\5\14"+
  64.461 +    "\1\u0126\21\14\14\0\2\14\1\66\1\14\5\0\1\14"+
  64.462 +    "\5\0\11\14\1\u0127\15\14\14\0\2\14\1\66\1\14"+
  64.463 +    "\5\0\1\14\5\0\13\14\1\u0128\13\14\14\0\2\14"+
  64.464 +    "\1\66\1\14\5\0\1\14\5\0\12\14\1\u0129\14\14"+
  64.465 +    "\14\0\2\14\1\66\1\u012a\5\0\1\14\5\0\27\14"+
  64.466 +    "\14\0\2\14\1\66\1\14\5\0\1\14\5\0\5\14"+
  64.467 +    "\1\u012b\21\14\14\0\2\14\1\66\1\14\5\0\1\14"+
  64.468 +    "\5\0\17\14\1\u012c\7\14\14\0\2\14\1\66\1\14"+
  64.469 +    "\5\0\1\14\5\0\13\14\1\u012d\13\14\14\0\2\14"+
  64.470 +    "\1\66\1\14\5\0\1\14\5\0\12\14\1\u012e\14\14"+
  64.471 +    "\14\0\2\14\1\66\1\14\5\0\1\14\5\0\1\u012f"+
  64.472 +    "\26\14\14\0\2\14\1\66\1\14\5\0\1\14\5\0"+
  64.473 +    "\4\14\1\u0130\22\14\14\0\2\14\1\66\1\14\5\0"+
  64.474 +    "\1\14\5\0\3\14\1\u0131\23\14\14\0\2\14\1\66"+
  64.475 +    "\1\14\5\0\1\14\5\0\7\14\1\u0132\17\14\14\0"+
  64.476 +    "\2\14\1\66\1\14\5\0\1\14\5\0\1\u0133\26\14"+
  64.477 +    "\14\0\2\14\1\66\1\14\5\0\1\14\5\0\15\14"+
  64.478 +    "\1\u0134\11\14\14\0\2\14\1\66\1\14\5\0\1\14"+
  64.479 +    "\5\0\1\u0135\26\14\14\0\2\14\1\66\1\14\5\0"+
  64.480 +    "\1\14\5\0\6\14\1\u0136\20\14\14\0\2\14\1\66"+
  64.481 +    "\1\14\5\0\1\14\5\0\12\14\1\u0137\14\14\14\0"+
  64.482 +    "\2\14\1\66\1\14\5\0\1\14\5\0\4\14\1\u0138"+
  64.483 +    "\22\14\14\0\2\14\1\66\1\u0139\5\0\1\14\5\0"+
  64.484 +    "\27\14\14\0\1\14\1\u013a\1\66\1\14\5\0\1\14"+
  64.485 +    "\5\0\27\14\14\0\2\14\1\66\1\14\5\0\1\14"+
  64.486 +    "\5\0\3\14\1\u013b\23\14\14\0\2\14\1\66\1\14"+
  64.487 +    "\5\0\1\14\5\0\11\14\1\u013c\15\14\13\0\15\3"+
  64.488 +    "\1\57\1\3\1\60\1\61\21\3\1\u013d\17\3\1\0"+
  64.489 +    "\1\u011e\1\0\1\u011f\57\0\1\u011e\61\0\2\14\1\66"+
  64.490 +    "\1\14\5\0\1\14\5\0\2\14\1\u013e\24\14\14\0"+
  64.491 +    "\2\14\1\66\1\14\5\0\1\14\5\0\11\14\1\u013f"+
  64.492 +    "\15\14\14\0\2\14\1\66\1\14\5\0\1\14\5\0"+
  64.493 +    "\6\14\1\u0140\20\14\14\0\2\14\1\66\1\14\5\0"+
  64.494 +    "\1\14\5\0\12\14\1\u0141\14\14\14\0\2\14\1\66"+
  64.495 +    "\1\14\5\0\1\14\5\0\12\14\1\u0142\14\14\14\0"+
  64.496 +    "\2\14\1\66\1\14\5\0\1\14\5\0\5\14\1\u0143"+
  64.497 +    "\21\14\14\0\2\14\1\66\1\u0144\5\0\1\14\5\0"+
  64.498 +    "\27\14\14\0\2\14\1\66\1\u0145\5\0\1\14\5\0"+
  64.499 +    "\27\14\14\0\2\14\1\66\1\14\5\0\1\14\5\0"+
  64.500 +    "\1\u0146\26\14\14\0\2\14\1\66\1\14\5\0\1\14"+
  64.501 +    "\5\0\4\14\1\u0147\22\14\14\0\2\14\1\66\1\14"+
  64.502 +    "\5\0\1\14\5\0\2\14\1\u0148\24\14\14\0\2\14"+
  64.503 +    "\1\66\1\u0149\5\0\1\14\5\0\27\14\14\0\2\14"+
  64.504 +    "\1\66\1\14\5\0\1\14\5\0\13\14\1\u014a\13\14"+
  64.505 +    "\14\0\2\14\1\66\1\u014b\5\0\1\14\5\0\27\14"+
  64.506 +    "\14\0\2\14\1\66\1\14\5\0\1\14\5\0\4\14"+
  64.507 +    "\1\u014c\22\14\14\0\2\14\1\66\1\14\5\0\1\14"+
  64.508 +    "\5\0\17\14\1\u014d\7\14\14\0\2\14\1\66\1\u014e"+
  64.509 +    "\5\0\1\14\5\0\27\14\14\0\2\14\1\66\1\14"+
  64.510 +    "\5\0\1\14\5\0\12\14\1\u014f\14\14\14\0\2\14"+
  64.511 +    "\1\66\1\14\5\0\1\14\5\0\1\u0150\26\14\14\0"+
  64.512 +    "\2\14\1\66\1\u0151\5\0\1\14\5\0\27\14\14\0"+
  64.513 +    "\2\14\1\66\1\14\5\0\1\14\5\0\6\14\1\u0152"+
  64.514 +    "\20\14\13\0\15\3\1\57\1\3\1\60\1\u0153\41\3"+
  64.515 +    "\1\0\2\14\1\66\1\14\5\0\1\14\5\0\13\14"+
  64.516 +    "\1\u0154\13\14\14\0\2\14\1\66\1\14\5\0\1\14"+
  64.517 +    "\5\0\2\14\1\u0155\24\14\14\0\2\14\1\66\1\14"+
  64.518 +    "\5\0\1\14\5\0\4\14\1\u0156\22\14\14\0\2\14"+
  64.519 +    "\1\66\1\14\5\0\1\14\5\0\11\14\1\u0157\15\14"+
  64.520 +    "\14\0\2\14\1\66\1\14\5\0\1\14\5\0\4\14"+
  64.521 +    "\1\u0158\22\14\14\0\2\14\1\66\1\u0159\5\0\1\14"+
  64.522 +    "\5\0\27\14\14\0\2\14\1\66\1\14\5\0\1\14"+
  64.523 +    "\5\0\13\14\1\u015a\13\14\14\0\2\14\1\66\1\14"+
  64.524 +    "\5\0\1\14\5\0\4\14\1\u015b\22\14\14\0\2\14"+
  64.525 +    "\1\66\1\u015c\5\0\1\14\5\0\27\14\14\0\2\14"+
  64.526 +    "\1\66\1\14\5\0\1\14\5\0\3\14\1\u015d\23\14"+
  64.527 +    "\14\0\2\14\1\66\1\14\5\0\1\14\5\0\6\14"+
  64.528 +    "\1\u015e\20\14\13\0\15\3\1\57\1\3\1\60\1\61"+
  64.529 +    "\2\3\1\u015f\7\3\1\171\26\3\1\0\2\14\1\66"+
  64.530 +    "\1\14\5\0\1\14\5\0\13\14\1\u0160\13\14\14\0"+
  64.531 +    "\2\14\1\66\1\14\5\0\1\14\5\0\13\14\1\u0161"+
  64.532 +    "\13\14\14\0\2\14\1\66\1\u0162\5\0\1\14\5\0"+
  64.533 +    "\27\14\14\0\2\14\1\66\1\14\5\0\1\14\5\0"+
  64.534 +    "\11\14\1\u0163\15\14\14\0\2\14\1\66\1\14\5\0"+
  64.535 +    "\1\14\5\0\12\14\1\u0164\14\14\14\0\2\14\1\66"+
  64.536 +    "\1\u0165\5\0\1\14\5\0\27\14\14\0\2\14\1\66"+
  64.537 +    "\1\u0166\5\0\1\14\5\0\27\14\14\0\2\14\1\66"+
  64.538 +    "\1\14\5\0\1\14\5\0\15\14\1\u0167\11\14\14\0"+
  64.539 +    "\2\14\1\66\1\14\5\0\1\14\5\0\26\14\1\u0168"+
  64.540 +    "\14\0\2\14\1\66\1\u0169\5\0\1\14\5\0\27\14"+
  64.541 +    "\14\0\2\14\1\66\1\14\5\0\1\14\5\0\12\14"+
  64.542 +    "\1\u016a\14\14\13\0";
  64.543 +
  64.544 +  private static int [] zzUnpackTrans() {
  64.545 +    int [] result = new int[13400];
  64.546 +    int offset = 0;
  64.547 +    offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
  64.548 +    return result;
  64.549 +  }
  64.550 +
  64.551 +  private static int zzUnpackTrans(String packed, int offset, int [] result) {
  64.552 +    int i = 0;       /* index in packed string  */
  64.553 +    int j = offset;  /* index in unpacked array */
  64.554 +    int l = packed.length();
  64.555 +    while (i < l) {
  64.556 +      int count = packed.charAt(i++);
  64.557 +      int value = packed.charAt(i++);
  64.558 +      value--;
  64.559 +      do result[j++] = value; while (--count > 0);
  64.560 +    }
  64.561 +    return j;
  64.562 +  }
  64.563 +
  64.564 +
  64.565 +  /* error codes */
  64.566 +  private static final int ZZ_UNKNOWN_ERROR = 0;
  64.567 +  private static final int ZZ_NO_MATCH = 1;
  64.568 +  private static final int ZZ_PUSHBACK_2BIG = 2;
  64.569 +
  64.570 +  /* error messages for the codes above */
  64.571 +  private static final String ZZ_ERROR_MSG[] = {
  64.572 +    "Unkown internal scanner error",
  64.573 +    "Error: could not match input",
  64.574 +    "Error: pushback value was too large"
  64.575 +  };
  64.576 +
  64.577 +  /**
  64.578 +   * ZZ_ATTRIBUTE[aState] contains the attributes of state <code>aState</code>
  64.579 +   */
  64.580 +  private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute();
  64.581 +
  64.582 +  private static final String ZZ_ATTRIBUTE_PACKED_0 =
  64.583 +    "\3\0\1\11\3\1\1\11\30\1\3\11\1\1\1\11"+
  64.584 +    "\1\1\1\11\3\1\2\11\2\1\1\11\1\1\6\0"+
  64.585 +    "\5\1\3\11\1\0\1\1\1\0\55\1\10\11\1\0"+
  64.586 +    "\1\11\1\0\1\1\1\0\1\1\1\0\7\1\1\11"+
  64.587 +    "\65\1\2\0\65\1\3\0\50\1\1\0\1\1\1\0"+
  64.588 +    "\35\1\1\0\25\1\1\0\27\1";
  64.589 +
  64.590 +  private static int [] zzUnpackAttribute() {
  64.591 +    int [] result = new int[362];
  64.592 +    int offset = 0;
  64.593 +    offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
  64.594 +    return result;
  64.595 +  }
  64.596 +
  64.597 +  private static int zzUnpackAttribute(String packed, int offset, int [] result) {
  64.598 +    int i = 0;       /* index in packed string  */
  64.599 +    int j = offset;  /* index in unpacked array */
  64.600 +    int l = packed.length();
  64.601 +    while (i < l) {
  64.602 +      int count = packed.charAt(i++);
  64.603 +      int value = packed.charAt(i++);
  64.604 +      do result[j++] = value; while (--count > 0);
  64.605 +    }
  64.606 +    return j;
  64.607 +  }
  64.608 +
  64.609 +  /** the input device */
  64.610 +  private java.io.Reader zzReader;
  64.611 +
  64.612 +  /** the current state of the DFA */
  64.613 +  private int zzState;
  64.614 +
  64.615 +  /** the current lexical state */
  64.616 +  private int zzLexicalState = YYINITIAL;
  64.617 +
  64.618 +  /** this buffer contains the current text to be matched and is
  64.619 +      the source of the yytext() string */
  64.620 +  private char zzBuffer[] = new char[ZZ_BUFFERSIZE];
  64.621 +
  64.622 +  /** the textposition at the last accepting state */
  64.623 +  private int zzMarkedPos;
  64.624 +
  64.625 +  /** the textposition at the last state to be included in yytext */
  64.626 +  private int zzPushbackPos;
  64.627 +
  64.628 +  /** the current text position in the buffer */
  64.629 +  private int zzCurrentPos;
  64.630 +
  64.631 +  /** startRead marks the beginning of the yytext() string in the buffer */
  64.632 +  private int zzStartRead;
  64.633 +
  64.634 +  /** endRead marks the last character in the buffer, that has been read
  64.635 +      from input */
  64.636 +  private int zzEndRead;
  64.637 +
  64.638 +  /** number of newlines encountered up to the start of the matched text */
  64.639 +  private int yyline;
  64.640 +
  64.641 +  /** the number of characters up to the start of the matched text */
  64.642 +  private int yychar;
  64.643 +
  64.644 +  /**
  64.645 +   * the number of characters from the last newline up to the start of the 
  64.646 +   * matched text
  64.647 +   */
  64.648 +  private int yycolumn;
  64.649 +
  64.650 +  /** 
  64.651 +   * zzAtBOL == true <=> the scanner is currently at the beginning of a line
  64.652 +   */
  64.653 +  private boolean zzAtBOL = true;
  64.654 +
  64.655 +  /** zzAtEOF == true <=> the scanner is at the EOF */
  64.656 +  private boolean zzAtEOF;
  64.657 +
  64.658 +  /** denotes if the user-EOF-code has already been executed */
  64.659 +  private boolean zzEOFDone;
  64.660 +
  64.661 +  /* user code: */
  64.662 +    private final List commentList = new LinkedList();
  64.663 +    private String comment = null;
  64.664 +    private StateStack stack = new StateStack();
  64.665 +    private char yy_old_buffer[] = new char[ZZ_BUFFERSIZE];
  64.666 +    private int yy_old_pushbackPos;
  64.667 +    protected int commentStartPosition;
  64.668 +    private AdaLanguageOptions.AdaVersion adaVersion = AdaLanguageOptions.AdaVersion.ADA_95;
  64.669 +
  64.670 +    public AdaASTLexer(java.io.Reader in, AdaLanguageOptions.AdaVersion adaVersion) {
  64.671 +        this(in);
  64.672 +        this.adaVersion = adaVersion;
  64.673 +    }
  64.674 +
  64.675 +    public AdaLanguageOptions.AdaVersion getAdaVersion() {
  64.676 +            return this.adaVersion;
  64.677 +    }
  64.678 +
  64.679 +    public void reset(java.io.Reader reader) {
  64.680 +        yyreset(reader);
  64.681 +    }
  64.682 +
  64.683 +    public void setState(int state) {
  64.684 +        yybegin(state);
  64.685 +    }
  64.686 +
  64.687 +    public int getState() {
  64.688 +        return yystate();
  64.689 +    }
  64.690 +
  64.691 +    public void resetCommentList() {
  64.692 +            commentList.clear();
  64.693 +    }
  64.694 +
  64.695 +    public List getCommentList() {
  64.696 +            return commentList;
  64.697 +    }
  64.698 +	
  64.699 +    protected void addComment(Comment.Type type) {
  64.700 +            int leftPosition = getTokenStartPosition();
  64.701 +            Comment comm;
  64.702 +            comm = new Comment(commentStartPosition, leftPosition + getTokenLength());
  64.703 +            commentList.add(comm);
  64.704 +    }
  64.705 +	
  64.706 +    private void pushState(int state) {
  64.707 +        stack.pushStack(zzLexicalState);
  64.708 +        yybegin(state);
  64.709 +    }
  64.710 +
  64.711 +    private void popState() {
  64.712 +        yybegin(stack.popStack());
  64.713 +    }
  64.714 +
  64.715 +    public int getCurrentLine() {
  64.716 +        return yyline;
  64.717 +    }
  64.718 +
  64.719 +    protected int getTokenStartPosition() {
  64.720 +        return zzStartRead - zzPushbackPos;
  64.721 +    }
  64.722 +
  64.723 +    protected int getTokenLength() {
  64.724 +        return zzMarkedPos - zzStartRead;
  64.725 +    }
  64.726 +
  64.727 +    public int getLength() {
  64.728 +        return zzEndRead - zzPushbackPos;
  64.729 +    }
  64.730 +    
  64.731 +    private void handleCommentStart() {
  64.732 +        commentStartPosition = getTokenStartPosition();
  64.733 +    }
  64.734 +	
  64.735 +    private void handleLineCommentEnd() {
  64.736 +         addComment(Comment.Type.TYPE_SINGLE_LINE);
  64.737 +    }
  64.738 +        
  64.739 +    private Symbol createFullSymbol(int symbolNumber) {
  64.740 +        Symbol symbol = createSymbol(symbolNumber);
  64.741 +        symbol.value = yytext();
  64.742 +        return symbol;
  64.743 +    }
  64.744 +
  64.745 +    private Symbol createSymbol(int symbolNumber) {
  64.746 +        int leftPosition = getTokenStartPosition();
  64.747 +        Symbol symbol = new Symbol(symbolNumber, leftPosition, leftPosition + getTokenLength());
  64.748 +        return symbol;
  64.749 +    }
  64.750 +
  64.751 +    public int[] getParamenters(){
  64.752 +    	return new int[]{zzMarkedPos, zzPushbackPos, zzCurrentPos, zzStartRead, zzEndRead, yyline};
  64.753 +    }
  64.754 +    
  64.755 +    public void reset(java.io.Reader  reader, char[] buffer, int[] parameters){
  64.756 +            this.zzReader = reader;
  64.757 +            this.zzBuffer = buffer;
  64.758 +            this.zzMarkedPos = parameters[0];
  64.759 +            this.zzPushbackPos = parameters[1];
  64.760 +            this.zzCurrentPos = parameters[2];
  64.761 +            this.zzStartRead = parameters[3];
  64.762 +            this.zzEndRead = parameters[4];
  64.763 +            this.yyline = parameters[5];
  64.764 +            this.yychar = this.zzStartRead - this.zzPushbackPos;
  64.765 +    }
  64.766 +
  64.767 +
  64.768 +
  64.769 +  /**
  64.770 +   * Creates a new scanner
  64.771 +   * There is also a java.io.InputStream version of this constructor.
  64.772 +   *
  64.773 +   * @param   in  the java.io.Reader to read input from.
  64.774 +   */
  64.775 +  public AdaASTLexer(java.io.Reader in) {
  64.776 +    this.zzReader = in;
  64.777 +  }
  64.778 +
  64.779 +  /**
  64.780 +   * Creates a new scanner.
  64.781 +   * There is also java.io.Reader version of this constructor.
  64.782 +   *
  64.783 +   * @param   in  the java.io.Inputstream to read input from.
  64.784 +   */
  64.785 +  public AdaASTLexer(java.io.InputStream in) {
  64.786 +    this(new java.io.InputStreamReader(in));
  64.787 +  }
  64.788 +
  64.789 +  /** 
  64.790 +   * Unpacks the compressed character translation table.
  64.791 +   *
  64.792 +   * @param packed   the packed character translation table
  64.793 +   * @return         the unpacked character translation table
  64.794 +   */
  64.795 +  private static char [] zzUnpackCMap(String packed) {
  64.796 +    char [] map = new char[0x10000];
  64.797 +    int i = 0;  /* index in packed string  */
  64.798 +    int j = 0;  /* index in unpacked array */
  64.799 +    while (i < 172) {
  64.800 +      int  count = packed.charAt(i++);
  64.801 +      char value = packed.charAt(i++);
  64.802 +      do map[j++] = value; while (--count > 0);
  64.803 +    }
  64.804 +    return map;
  64.805 +  }
  64.806 +
  64.807 +
  64.808 +  /**
  64.809 +   * Refills the input buffer.
  64.810 +   *
  64.811 +   * @return      <code>false</code>, iff there was new input.
  64.812 +   * 
  64.813 +   * @exception   java.io.IOException  if any I/O-Error occurs
  64.814 +   */
  64.815 +  private boolean zzRefill() throws java.io.IOException {
  64.816 +
  64.817 +    /* first: make room (if you can) */
  64.818 +    if (zzStartRead > 0) {
  64.819 +      System.arraycopy(zzBuffer, zzStartRead,
  64.820 +                       zzBuffer, 0,
  64.821 +                       zzEndRead-zzStartRead);
  64.822 +
  64.823 +      /* translate stored positions */
  64.824 +      zzEndRead-= zzStartRead;
  64.825 +      zzCurrentPos-= zzStartRead;
  64.826 +      zzMarkedPos-= zzStartRead;
  64.827 +      zzPushbackPos-= zzStartRead;
  64.828 +      zzStartRead = 0;
  64.829 +    }
  64.830 +
  64.831 +    /* is the buffer big enough? */
  64.832 +    if (zzCurrentPos >= zzBuffer.length) {
  64.833 +      /* if not: blow it up */
  64.834 +      char newBuffer[] = new char[zzCurrentPos*2];
  64.835 +      System.arraycopy(zzBuffer, 0, newBuffer, 0, zzBuffer.length);
  64.836 +      zzBuffer = newBuffer;
  64.837 +    }
  64.838 +
  64.839 +    /* finally: fill the buffer with new input */
  64.840 +    int numRead = zzReader.read(zzBuffer, zzEndRead,
  64.841 +                                            zzBuffer.length-zzEndRead);
  64.842 +
  64.843 +    if (numRead < 0) {
  64.844 +      return true;
  64.845 +    }
  64.846 +    else {
  64.847 +      zzEndRead+= numRead;
  64.848 +      return false;
  64.849 +    }
  64.850 +  }
  64.851 +
  64.852 +    
  64.853 +  /**
  64.854 +   * Closes the input stream.
  64.855 +   */
  64.856 +  public final void yyclose() throws java.io.IOException {
  64.857 +    zzAtEOF = true;            /* indicate end of file */
  64.858 +    zzEndRead = zzStartRead;  /* invalidate buffer    */
  64.859 +
  64.860 +    if (zzReader != null)
  64.861 +      zzReader.close();
  64.862 +  }
  64.863 +
  64.864 +
  64.865 +  /**
  64.866 +   * Resets the scanner to read from a new input stream.
  64.867 +   * Does not close the old reader.
  64.868 +   *
  64.869 +   * All internal variables are reset, the old input stream 
  64.870 +   * <b>cannot</b> be reused (internal buffer is discarded and lost).
  64.871 +   * Lexical state is set to <tt>ZZ_INITIAL</tt>.
  64.872 +   *
  64.873 +   * @param reader   the new input stream 
  64.874 +   */
  64.875 +  public final void yyreset(java.io.Reader reader) {
  64.876 +    zzReader = reader;
  64.877 +    zzAtBOL  = true;
  64.878 +    zzAtEOF  = false;
  64.879 +    zzEOFDone  = false;
  64.880 +    zzEndRead = zzStartRead = 0;
  64.881 +    zzCurrentPos = zzMarkedPos = zzPushbackPos = 0;
  64.882 +    yyline = yychar = yycolumn = 0;
  64.883 +    zzLexicalState = YYINITIAL;
  64.884 +  }
  64.885 +
  64.886 +
  64.887 +  /**
  64.888 +   * Returns the current lexical state.
  64.889 +   */
  64.890 +  public final int yystate() {
  64.891 +    return zzLexicalState;
  64.892 +  }
  64.893 +
  64.894 +
  64.895 +  /**
  64.896 +   * Enters a new lexical state
  64.897 +   *
  64.898 +   * @param newState the new lexical state
  64.899 +   */
  64.900 +  public final void yybegin(int newState) {
  64.901 +    zzLexicalState = newState;
  64.902 +  }
  64.903 +
  64.904 +
  64.905 +  /**
  64.906 +   * Returns the text matched by the current regular expression.
  64.907 +   */
  64.908 +  public final String yytext() {
  64.909 +    return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead );
  64.910 +  }
  64.911 +
  64.912 +
  64.913 +  /**
  64.914 +   * Returns the character at position <tt>pos</tt> from the 
  64.915 +   * matched text. 
  64.916 +   * 
  64.917 +   * It is equivalent to yytext().charAt(pos), but faster
  64.918 +   *
  64.919 +   * @param pos the position of the character to fetch. 
  64.920 +   *            A value from 0 to yylength()-1.
  64.921 +   *
  64.922 +   * @return the character at position pos
  64.923 +   */
  64.924 +  public final char yycharat(int pos) {
  64.925 +    return zzBuffer[zzStartRead+pos];
  64.926 +  }
  64.927 +
  64.928 +
  64.929 +  /**
  64.930 +   * Returns the length of the matched text region.
  64.931 +   */
  64.932 +  public final int yylength() {
  64.933 +    return zzMarkedPos-zzStartRead;
  64.934 +  }
  64.935 +
  64.936 +
  64.937 +  /**
  64.938 +   * Reports an error that occured while scanning.
  64.939 +   *
  64.940 +   * In a wellformed scanner (no or only correct usage of 
  64.941 +   * yypushback(int) and a match-all fallback rule) this method 
  64.942 +   * will only be called with things that "Can't Possibly Happen".
  64.943 +   * If this method is called, something is seriously wrong
  64.944 +   * (e.g. a JFlex bug producing a faulty scanner etc.).
  64.945 +   *
  64.946 +   * Usual syntax/scanner level error handling should be done
  64.947 +   * in error fallback rules.
  64.948 +   *
  64.949 +   * @param   errorCode  the code of the errormessage to display
  64.950 +   */
  64.951 +  private void zzScanError(int errorCode) {
  64.952 +    String message;
  64.953 +    try {
  64.954 +      message = ZZ_ERROR_MSG[errorCode];
  64.955 +    }
  64.956 +    catch (ArrayIndexOutOfBoundsException e) {
  64.957 +      message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR];
  64.958 +    }
  64.959 +
  64.960 +    throw new Error(message);
  64.961 +  } 
  64.962 +
  64.963 +
  64.964 +  /**
  64.965 +   * Pushes the specified amount of characters back into the input stream.
  64.966 +   *
  64.967 +   * They will be read again by then next call of the scanning method
  64.968 +   *
  64.969 +   * @param number  the number of characters to be read again.
  64.970 +   *                This number must not be greater than yylength()!
  64.971 +   */
  64.972 +  public void yypushback(int number)  {
  64.973 +    if ( number > yylength() )
  64.974 +      zzScanError(ZZ_PUSHBACK_2BIG);
  64.975 +
  64.976 +    zzMarkedPos -= number;
  64.977 +  }
  64.978 +
  64.979 +
  64.980 +  /**
  64.981 +   * Contains user EOF-code, which will be executed exactly once,
  64.982 +   * when the end of file is reached
  64.983 +   */
  64.984 +  private void zzDoEOF() throws java.io.IOException {
  64.985 +    if (!zzEOFDone) {
  64.986 +      zzEOFDone = true;
  64.987 +      yyclose();
  64.988 +    }
  64.989 +  }
  64.990 +
  64.991 +
  64.992 +  /**
  64.993 +   * Resumes scanning until the next regular expression is matched,
  64.994 +   * the end of input is encountered or an I/O-Error occurs.
  64.995 +   *
  64.996 +   * @return      the next token
  64.997 +   * @exception   java.io.IOException  if any I/O-Error occurs
  64.998 +   */
  64.999 +  public Symbol next_token() throws java.io.IOException {
 64.1000 +    int zzInput;
 64.1001 +    int zzAction;
 64.1002 +
 64.1003 +    // cached fields:
 64.1004 +    int zzCurrentPosL;
 64.1005 +    int zzMarkedPosL;
 64.1006 +    int zzEndReadL = zzEndRead;
 64.1007 +    char [] zzBufferL = zzBuffer;
 64.1008 +    char [] zzCMapL = ZZ_CMAP;
 64.1009 +
 64.1010 +    int [] zzTransL = ZZ_TRANS;
 64.1011 +    int [] zzRowMapL = ZZ_ROWMAP;
 64.1012 +    int [] zzAttrL = ZZ_ATTRIBUTE;
 64.1013 +
 64.1014 +    while (true) {
 64.1015 +      zzMarkedPosL = zzMarkedPos;
 64.1016 +
 64.1017 +      yychar+= zzMarkedPosL-zzStartRead;
 64.1018 +
 64.1019 +      boolean zzR = false;
 64.1020 +      for (zzCurrentPosL = zzStartRead; zzCurrentPosL < zzMarkedPosL;
 64.1021 +                                                             zzCurrentPosL++) {
 64.1022 +        switch (zzBufferL[zzCurrentPosL]) {
 64.1023 +        case '\u000B':
 64.1024 +        case '\u000C':
 64.1025 +        case '\u0085':
 64.1026 +        case '\u2028':
 64.1027 +        case '\u2029':
 64.1028 +          yyline++;
 64.1029 +          yycolumn = 0;
 64.1030 +          zzR = false;
 64.1031 +          break;
 64.1032 +        case '\r':
 64.1033 +          yyline++;
 64.1034 +          yycolumn = 0;
 64.1035 +          zzR = true;
 64.1036 +          break;
 64.1037 +        case '\n':
 64.1038 +          if (zzR)
 64.1039 +            zzR = false;
 64.1040 +          else {
 64.1041 +            yyline++;
 64.1042 +            yycolumn = 0;
 64.1043 +          }
 64.1044 +          break;
 64.1045 +        default:
 64.1046 +          zzR = false;
 64.1047 +          yycolumn++;
 64.1048 +        }
 64.1049 +      }
 64.1050 +
 64.1051 +      if (zzR) {
 64.1052 +        // peek one character ahead if it is \n (if we have counted one line too much)
 64.1053 +        boolean zzPeek;
 64.1054 +        if (zzMarkedPosL < zzEndReadL)
 64.1055 +          zzPeek = zzBufferL[zzMarkedPosL] == '\n';
 64.1056 +        else if (zzAtEOF)
 64.1057 +          zzPeek = false;
 64.1058 +        else {
 64.1059 +          boolean eof = zzRefill();
 64.1060 +          zzEndReadL = zzEndRead;
 64.1061 +          zzMarkedPosL = zzMarkedPos;
 64.1062 +          zzBufferL = zzBuffer;
 64.1063 +          if (eof) 
 64.1064 +            zzPeek = false;
 64.1065 +          else 
 64.1066 +            zzPeek = zzBufferL[zzMarkedPosL] == '\n';
 64.1067 +        }
 64.1068 +        if (zzPeek) yyline--;
 64.1069 +      }
 64.1070 +      zzAction = -1;
 64.1071 +
 64.1072 +      zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL;
 64.1073 +  
 64.1074 +      zzState = ZZ_LEXSTATE[zzLexicalState];
 64.1075 +
 64.1076 +
 64.1077 +      zzForAction: {
 64.1078 +        while (true) {
 64.1079 +    
 64.1080 +          if (zzCurrentPosL < zzEndReadL)
 64.1081 +            zzInput = zzBufferL[zzCurrentPosL++];
 64.1082 +          else if (zzAtEOF) {
 64.1083 +            zzInput = YYEOF;
 64.1084 +            break zzForAction;
 64.1085 +          }
 64.1086 +          else {
 64.1087 +            // store back cached positions
 64.1088 +            zzCurrentPos  = zzCurrentPosL;
 64.1089 +            zzMarkedPos   = zzMarkedPosL;
 64.1090 +            boolean eof = zzRefill();
 64.1091 +            // get translated positions and possibly new buffer
 64.1092 +            zzCurrentPosL  = zzCurrentPos;
 64.1093 +            zzMarkedPosL   = zzMarkedPos;
 64.1094 +            zzBufferL      = zzBuffer;
 64.1095 +            zzEndReadL     = zzEndRead;
 64.1096 +            if (eof) {
 64.1097 +              zzInput = YYEOF;
 64.1098 +              break zzForAction;
 64.1099 +            }
 64.1100 +            else {
 64.1101 +              zzInput = zzBufferL[zzCurrentPosL++];
 64.1102 +            }
 64.1103 +          }
 64.1104 +          int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMapL[zzInput] ];
 64.1105 +          if (zzNext == -1) break zzForAction;
 64.1106 +          zzState = zzNext;
 64.1107 +
 64.1108 +          int zzAttributes = zzAttrL[zzState];
 64.1109 +          if ( (zzAttributes & 1) == 1 ) {
 64.1110 +            zzAction = zzState;
 64.1111 +            zzMarkedPosL = zzCurrentPosL;
 64.1112 +            if ( (zzAttributes & 8) == 8 ) break zzForAction;
 64.1113 +          }
 64.1114 +
 64.1115 +        }
 64.1116 +      }
 64.1117 +
 64.1118 +      // store back cached position
 64.1119 +      zzMarkedPos = zzMarkedPosL;
 64.1120 +
 64.1121 +      switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {
 64.1122 +        case 58: 
 64.1123 +          { return createFullSymbol(AdaASTSymbols.BASED_LITERAL);
 64.1124 +          }
 64.1125 +        case 112: break;
 64.1126 +        case 15: 
 64.1127 +          { return createSymbol(AdaASTSymbols.SLASH);
 64.1128 +          }
 64.1129 +        case 113: break;
 64.1130 +        case 47: 
 64.1131 +          { return createFullSymbol(AdaASTSymbols.CHAR_LITERAL);
 64.1132 +          }
 64.1133 +        case 114: break;
 64.1134 +        case 19: 
 64.1135 +          { return createSymbol(AdaASTSymbols.LT);
 64.1136 +          }
 64.1137 +        case 115: break;
 64.1138 +        case 101: 
 64.1139 +          { return createSymbol(AdaASTSymbols.FUNCTION);
 64.1140 +          }
 64.1141 +        case 116: break;
 64.1142 +        case 85: 
 64.1143 +          { return createSymbol(AdaASTSymbols.OTHERS);
 64.1144 +          }
 64.1145 +        case 117: break;
 64.1146 +        case 82: 
 64.1147 +          { return createSymbol(AdaASTSymbols.WHILE);
 64.1148 +          }
 64.1149 +        case 118: break;
 64.1150 +        case 2: 
 64.1151 +          { return createFullSymbol(AdaASTSymbols.DECIMAL_LITERAL);
 64.1152 +          }
 64.1153 +        case 119: break;
 64.1154 +        case 59: 
 64.1155 +          { return createSymbol(AdaASTSymbols.ELSE);
 64.1156 +          }
 64.1157 +        case 120: break;
 64.1158 +        case 60: 
 64.1159 +          { return createSymbol(AdaASTSymbols.EXIT);
 64.1160 +          }
 64.1161 +        case 121: break;
 64.1162 +        case 27: 
 64.1163 +          { return createSymbol(AdaASTSymbols.ASSIGNMENT);
 64.1164 +          }
 64.1165 +        case 122: break;
 64.1166 +        case 104: 
 64.1167 +          { return createSymbol(AdaASTSymbols.CONSTANT);
 64.1168 +          }
 64.1169 +        case 123: break;
 64.1170 +        case 43: 
 64.1171 +          { return createSymbol(AdaASTSymbols.GTGT);
 64.1172 +          }
 64.1173 +        case 124: break;
 64.1174 +        case 97: 
 64.1175 +          { return createSymbol(AdaASTSymbols.PRIVATE);
 64.1176 +          }
 64.1177 +        case 125: break;
 64.1178 +        case 14: 
 64.1179 +          { return createSymbol(AdaASTSymbols.COMMA);
 64.1180 +          }
 64.1181 +        case 126: break;
 64.1182 +        case 40: 
 64.1183 +          { return createSymbol(AdaASTSymbols.BOX);
 64.1184 +          }
 64.1185 +        case 127: break;
 64.1186 +        case 81: 
 64.1187 +          { if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
 64.1188 +            return createSymbol(AdaASTSymbols.UNTIL);
 64.1189 +        }
 64.1190 +        else {
 64.1191 +            return createSymbol(AdaASTSymbols.IDENTIFIER);
 64.1192 +        }
 64.1193 +          }
 64.1194 +        case 128: break;
 64.1195 +        case 48: 
 64.1196 +          { return createSymbol(AdaASTSymbols.ABS);
 64.1197 +          }
 64.1198 +        case 129: break;
 64.1199 +        case 61: 
 64.1200 +          { return createSymbol(AdaASTSymbols.BODY);
 64.1201 +          }
 64.1202 +        case 130: break;
 64.1203 +        case 42: 
 64.1204 +          { return createSymbol(AdaASTSymbols.GTEQ);
 64.1205 +          }
 64.1206 +        case 131: break;
 64.1207 +        case 96: 
 64.1208 +          { return createSymbol(AdaASTSymbols.PACKAGE);
 64.1209 +          }
 64.1210 +        case 132: break;
 64.1211 +        case 105: 
 64.1212 +          { return createSymbol(AdaASTSymbols.EXCEPTION);
 64.1213 +          }
 64.1214 +        case 133: break;
 64.1215 +        case 46: 
 64.1216 +          { return createSymbol(AdaASTSymbols.END);
 64.1217 +          }
 64.1218 +        case 134: break;
 64.1219 +        case 67: 
 64.1220 +          { return createSymbol(AdaASTSymbols.LOOP);
 64.1221 +          }
 64.1222 +        case 135: break;
 64.1223 +        case 55: 
 64.1224 +          { return createSymbol(AdaASTSymbols.XOR);
 64.1225 +          }
 64.1226 +        case 136: break;
 64.1227 +        case 34: 
 64.1228 +          { return createSymbol(AdaASTSymbols.IN);
 64.1229 +          }
 64.1230 +        case 137: break;
 64.1231 +        case 52: 
 64.1232 +          { return createSymbol(AdaASTSymbols.REM);
 64.1233 +          }
 64.1234 +        case 138: break;
 64.1235 +        case 28: 
 64.1236 +          { return createFullSymbol(AdaASTSymbols.STRING_LITERAL);
 64.1237 +          }
 64.1238 +        case 139: break;
 64.1239 +        case 86: 
 64.1240 +          { return createSymbol(AdaASTSymbols.RETURN);
 64.1241 +          }
 64.1242 +        case 140: break;
 64.1243 +        case 31: 
 64.1244 +          { return createSymbol(AdaASTSymbols.OR);
 64.1245 +          }
 64.1246 +        case 141: break;
 64.1247 +        case 16: 
 64.1248 +          { return createSymbol(AdaASTSymbols.SEMICOLON);
 64.1249 +          }
 64.1250 +        case 142: break;
 64.1251 +        case 95: 
 64.1252 +          { return createSymbol(AdaASTSymbols.SUBTYPE);
 64.1253 +          }
 64.1254 +        case 143: break;
 64.1255 +        case 36: 
 64.1256 +          { return createSymbol(AdaASTSymbols.EXPON);
 64.1257 +          }
 64.1258 +        case 144: break;
 64.1259 +        case 56: 
 64.1260 +          { return createSymbol(AdaASTSymbols.USE);
 64.1261 +          }
 64.1262 +        case 145: break;
 64.1263 +        case 26: 
 64.1264 +          { return createSymbol(AdaASTSymbols.DOT_DOT);
 64.1265 +          }
 64.1266 +        case 146: break;
 64.1267 +        case 3: 
 64.1268 +          { return createFullSymbol(AdaASTSymbols.IDENTIFIER);
 64.1269 +          }
 64.1270 +        case 147: break;
 64.1271 +        case 98: 
 64.1272 +          { return createSymbol(AdaASTSymbols.LIMITED);
 64.1273 +          }
 64.1274 +        case 148: break;
 64.1275 +        case 91: 
 64.1276 +          { if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
 64.1277 +            return createSymbol(AdaASTSymbols.ALIASED);
 64.1278 +        }
 64.1279 +        else {
 64.1280 +            return createSymbol(AdaASTSymbols.IDENTIFIER);
 64.1281 +        }
 64.1282 +          }
 64.1283 +        case 149: break;
 64.1284 +        case 62: 
 64.1285 +          { return createSymbol(AdaASTSymbols.TASK);
 64.1286 +          }
 64.1287 +        case 150: break;
 64.1288 +        case 103: 
 64.1289 +          { return createSymbol(AdaASTSymbols.SEPARATE);
 64.1290 +          }
 64.1291 +        case 151: break;
 64.1292 +        case 41: 
 64.1293 +          { return createSymbol(AdaASTSymbols.ARROW);
 64.1294 +          }
 64.1295 +        case 152: break;
 64.1296 +        case 21: 
 64.1297 +          { yypushback(yylength());
 64.1298 +    popState();
 64.1299 +          }
 64.1300 +        case 153: break;
 64.1301 +        case 109: 
 64.1302 +          { if (adaVersion == AdaLanguageOptions.AdaVersion.ADA_2005 ||
 64.1303 +            adaVersion == AdaLanguageOptions.AdaVersion.ADA_2012) {
 64.1304 +            return createSymbol(AdaASTSymbols.INTERFACE);
 64.1305 +        }
 64.1306 +        else {
 64.1307 +            return createFullSymbol(AdaASTSymbols.IDENTIFIER);
 64.1308 +        }
 64.1309 +          }
 64.1310 +        case 154: break;
 64.1311 +        case 68: 
 64.1312 +          { return createSymbol(AdaASTSymbols.NULL);
 64.1313 +          }
 64.1314 +        case 155: break;
 64.1315 +        case 9: 
 64.1316 +          { return createSymbol(AdaASTSymbols.TICK);
 64.1317 +          }
 64.1318 +        case 156: break;
 64.1319 +        case 76: 
 64.1320 +          { return createSymbol(AdaASTSymbols.BEGIN);
 64.1321 +          }
 64.1322 +        case 157: break;
 64.1323 +        case 70: 
 64.1324 +          { return createSymbol(AdaASTSymbols.WITH);
 64.1325 +          }
 64.1326 +        case 158: break;
 64.1327 +        case 88: 
 64.1328 +          { if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
 64.1329 +            return createSymbol(AdaASTSymbols.TAGGED);
 64.1330 +        }
 64.1331 +        else {
 64.1332 +            return createSymbol(AdaASTSymbols.IDENTIFIER);
 64.1333 +        }
 64.1334 +          }
 64.1335 +        case 159: break;
 64.1336 +        case 4: 
 64.1337 +          { return createSymbol(AdaASTSymbols.PLUS);
 64.1338 +          }
 64.1339 +        case 160: break;
 64.1340 +        case 12: 
 64.1341 +          { return createSymbol(AdaASTSymbols.RPAREN);
 64.1342 +          }
 64.1343 +        case 161: break;
 64.1344 +        case 32: 
 64.1345 +          { return createSymbol(AdaASTSymbols.IF);
 64.1346 +          }
 64.1347 +        case 162: break;
 64.1348 +        case 94: 
 64.1349 +          { if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
 64.1350 +            return createSymbol(AdaASTSymbols.REQUEUE);
 64.1351 +        }
 64.1352 +        else {
 64.1353 +            return createSymbol(AdaASTSymbols.IDENTIFIER);
 64.1354 +        }
 64.1355 +          }
 64.1356 +        case 163: break;
 64.1357 +        case 24: 
 64.1358 +          { handleLineCommentEnd();
 64.1359 +    yybegin(YYINITIAL);
 64.1360 +          }
 64.1361 +        case 164: break;
 64.1362 +        case 10: 
 64.1363 +          { return createSymbol(AdaASTSymbols.AMP);
 64.1364 +          }
 64.1365 +        case 165: break;
 64.1366 +        case 22: 
 64.1367 +          { popState();
 64.1368 +    return createFullSymbol(AdaASTSymbols.IDENTIFIER);
 64.1369 +          }
 64.1370 +        case 166: break;
 64.1371 +        case 79: 
 64.1372 +          { return createSymbol(AdaASTSymbols.DELAY);
 64.1373 +          }
 64.1374 +        case 167: break;
 64.1375 +        case 64: 
 64.1376 +          { return createSymbol(AdaASTSymbols.THEN);
 64.1377 +          }
 64.1378 +        case 168: break;
 64.1379 +        case 69: 
 64.1380 +          { return createSymbol(AdaASTSymbols.GOTO);
 64.1381 +          }
 64.1382 +        case 169: break;
 64.1383 +        case 107: 
 64.1384 +          { if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
 64.1385 +            return createSymbol(AdaASTSymbols.PROTECTED);
 64.1386 +        }
 64.1387 +        else {
 64.1388 +            return createSymbol(AdaASTSymbols.IDENTIFIER);
 64.1389 +        }
 64.1390 +          }
 64.1391 +        case 170: break;
 64.1392 +        case 45: 
 64.1393 +          { return createSymbol(AdaASTSymbols.FOR);
 64.1394 +          }
 64.1395 +        case 171: break;
 64.1396 +        case 110: 
 64.1397 +          { if (adaVersion == AdaLanguageOptions.AdaVersion.ADA_2005 ||
 64.1398 +            adaVersion == AdaLanguageOptions.AdaVersion.ADA_2012) {
 64.1399 +            return createSymbol(AdaASTSymbols.OVERRIDING);
 64.1400 +        }
 64.1401 +        else {
 64.1402 +            return createFullSymbol(AdaASTSymbols.IDENTIFIER);
 64.1403 +        }
 64.1404 +          }
 64.1405 +        case 172: break;
 64.1406 +        case 108: 
 64.1407 +          { return createSymbol(AdaASTSymbols.PROCEDURE);
 64.1408 +          }
 64.1409 +        case 173: break;
 64.1410 +        case 30: 
 64.1411 +          { return createSymbol(AdaASTSymbols.OF);
 64.1412 +          }
 64.1413 +        case 174: break;
 64.1414 +        case 37: 
 64.1415 +          { return createSymbol(AdaASTSymbols.INEQ);
 64.1416 +          }
 64.1417 +        case 175: break;
 64.1418 +        case 74: 
 64.1419 +          { return createSymbol(AdaASTSymbols.ABORT);
 64.1420 +          }
 64.1421 +        case 176: break;
 64.1422 +        case 49: 
 64.1423 +          { return createSymbol(AdaASTSymbols.ALL);
 64.1424 +          }
 64.1425 +        case 177: break;
 64.1426 +        case 53: 
 64.1427 +          { return createSymbol(AdaASTSymbols.NEW);
 64.1428 +          }
 64.1429 +        case 178: break;
 64.1430 +        case 11: 
 64.1431 +          { return createSymbol(AdaASTSymbols.LPAREN);
 64.1432 +          }
 64.1433 +        case 179: break;
 64.1434 +        case 102: 
 64.1435 +          { if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
 64.1436 +            return createSymbol(AdaASTSymbols.ABSTRACT);
 64.1437 +        }
 64.1438 +        else {
 64.1439 +            return createSymbol(AdaASTSymbols.IDENTIFIER);
 64.1440 +        }
 64.1441 +          }
 64.1442 +        case 180: break;
 64.1443 +        case 84: 
 64.1444 +          { return createSymbol(AdaASTSymbols.ACCEPT);
 64.1445 +          }
 64.1446 +        case 181: break;
 64.1447 +        case 92: 
 64.1448 +          { return createSymbol(AdaASTSymbols.RENAMES);
 64.1449 +          }
 64.1450 +        case 182: break;
 64.1451 +        case 57: 
 64.1452 +          { return createSymbol(AdaASTSymbols.MOD);
 64.1453 +          }
 64.1454 +        case 183: break;
 64.1455 +        case 6: 
 64.1456 +          { pushState(ST_LOOKING_FOR_PROPERTY);
 64.1457 +                      return createSymbol(AdaASTSymbols.DOT);
 64.1458 +          }
 64.1459 +        case 184: break;
 64.1460 +        case 111: 
 64.1461 +          { if (adaVersion == AdaLanguageOptions.AdaVersion.ADA_2005 ||
 64.1462 +            adaVersion == AdaLanguageOptions.AdaVersion.ADA_2012) {
 64.1463 +            return createSymbol(AdaASTSymbols.SYNCHRONIZED);
 64.1464 +        }
 64.1465 +        else {
 64.1466 +            return createFullSymbol(AdaASTSymbols.IDENTIFIER);
 64.1467 +        }
 64.1468 +          }
 64.1469 +        case 185: break;
 64.1470 +        case 73: 
 64.1471 +          { return createSymbol(AdaASTSymbols.ENTRY);
 64.1472 +          }
 64.1473 +        case 186: break;
 64.1474 +        case 83: 
 64.1475 +          { return createSymbol(AdaASTSymbols.ACCESS);
 64.1476 +          }
 64.1477 +        case 187: break;
 64.1478 +        case 93: 
 64.1479 +          { return createSymbol(AdaASTSymbols.REVERSE);
 64.1480 +          }
 64.1481 +        case 188: break;
 64.1482 +        case 29: 
 64.1483 +          { return createSymbol(AdaASTSymbols.AT);
 64.1484 +          }
 64.1485 +        case 189: break;
 64.1486 +        case 80: 
 64.1487 +          { return createSymbol(AdaASTSymbols.DELTA);
 64.1488 +          }
 64.1489 +        case 190: break;
 64.1490 +        case 78: 
 64.1491 +          { return createSymbol(AdaASTSymbols.RANGE);
 64.1492 +          }
 64.1493 +        case 191: break;
 64.1494 +        case 44: 
 64.1495 +          { popState();
 64.1496 +    return createSymbol(AdaASTSymbols.DOT_DOT);
 64.1497 +          }
 64.1498 +        case 192: break;
 64.1499 +        case 89: 
 64.1500 +          { return createSymbol(AdaASTSymbols.SELECT);
 64.1501 +          }
 64.1502 +        case 193: break;
 64.1503 +        case 100: 
 64.1504 +          { return createSymbol(AdaASTSymbols.GENERIC);
 64.1505 +          }
 64.1506 +        case 194: break;
 64.1507 +        case 90: 
 64.1508 +          { return createSymbol(AdaASTSymbols.PRAGMA);
 64.1509 +          }
 64.1510 +        case 195: break;
 64.1511 +        case 5: 
 64.1512 +          { return createSymbol(AdaASTSymbols.MINUS);
 64.1513 +          }
 64.1514 +        case 196: break;
 64.1515 +        case 23: 
 64.1516 +          { return createSymbol(AdaASTSymbols.DOT);
 64.1517 +          }
 64.1518 +        case 197: break;
 64.1519 +        case 99: 
 64.1520 +          { return createSymbol(AdaASTSymbols.DECLARE);
 64.1521 +          }
 64.1522 +        case 198: break;
 64.1523 +        case 13: 
 64.1524 +          { return createSymbol(AdaASTSymbols.STAR);
 64.1525 +          }
 64.1526 +        case 199: break;
 64.1527 +        case 63: 
 64.1528 +          { return createSymbol(AdaASTSymbols.TYPE);
 64.1529 +          }
 64.1530 +        case 200: break;
 64.1531 +        case 50: 
 64.1532 +          { return createSymbol(AdaASTSymbols.AND);
 64.1533 +          }
 64.1534 +        case 201: break;
 64.1535 +        case 39: 
 64.1536 +          { return createSymbol(AdaASTSymbols.LTEQ);
 64.1537 +          }
 64.1538 +        case 202: break;
 64.1539 +        case 17: 
 64.1540 +          { return createSymbol(AdaASTSymbols.GT);
 64.1541 +          }
 64.1542 +        case 203: break;
 64.1543 +        case 7: 
 64.1544 +          { return createSymbol(AdaASTSymbols.COLON);
 64.1545 +          }
 64.1546 +        case 204: break;
 64.1547 +        case 20: 
 64.1548 +          { return createSymbol(AdaASTSymbols.BAR);
 64.1549 +          }
 64.1550 +        case 205: break;
 64.1551 +        case 75: 
 64.1552 +          { return createSymbol(AdaASTSymbols.ARRAY);
 64.1553 +          }
 64.1554 +        case 206: break;
 64.1555 +        case 66: 
 64.1556 +          { return createSymbol(AdaASTSymbols.CASE);
 64.1557 +          }
 64.1558 +        case 207: break;
 64.1559 +        case 51: 
 64.1560 +          { return createSymbol(AdaASTSymbols.OUT);
 64.1561 +          }
 64.1562 +        case 208: break;
 64.1563 +        case 87: 
 64.1564 +          { return createSymbol(AdaASTSymbols.RECORD);
 64.1565 +          }
 64.1566 +        case 209: break;
 64.1567 +        case 18: 
 64.1568 +          { return createSymbol(AdaASTSymbols.EQ);
 64.1569 +          }
 64.1570 +        case 210: break;
 64.1571 +        case 72: 
 64.1572 +          { return createSymbol(AdaASTSymbols.ELSIF);
 64.1573 +          }
 64.1574 +        case 211: break;
 64.1575 +        case 54: 
 64.1576 +          { return createSymbol(AdaASTSymbols.NOT);
 64.1577 +          }
 64.1578 +        case 212: break;
 64.1579 +        case 1: 
 64.1580 +          { // do nothing
 64.1581 +          }
 64.1582 +        case 213: break;
 64.1583 +        case 71: 
 64.1584 +          { return createSymbol(AdaASTSymbols.WHEN);
 64.1585 +          }
 64.1586 +        case 214: break;
 64.1587 +        case 35: 
 64.1588 +          { return createSymbol(AdaASTSymbols.DO);
 64.1589 +          }
 64.1590 +        case 215: break;
 64.1591 +        case 38: 
 64.1592 +          { return createSymbol(AdaASTSymbols.LTLT);
 64.1593 +          }
 64.1594 +        case 216: break;
 64.1595 +        case 33: 
 64.1596 +          { return createSymbol(AdaASTSymbols.IS);
 64.1597 +          }
 64.1598 +        case 217: break;
 64.1599 +        case 65: 
 64.1600 +          { if (adaVersion == AdaLanguageOptions.AdaVersion.ADA_2012) {
 64.1601 +            return createSymbol(AdaASTSymbols.SOME);
 64.1602 +        }
 64.1603 +        else {
 64.1604 +            return createFullSymbol(AdaASTSymbols.IDENTIFIER);
 64.1605 +        }
 64.1606 +          }
 64.1607 +        case 218: break;
 64.1608 +        case 25: 
 64.1609 +          { handleCommentStart();
 64.1610 +	yybegin(ST_LINE_COMMENT);
 64.1611 +          }
 64.1612 +        case 219: break;
 64.1613 +        case 106: 
 64.1614 +          { return createSymbol(AdaASTSymbols.TERMINATE);
 64.1615 +          }
 64.1616 +        case 220: break;
 64.1617 +        case 77: 
 64.1618 +          { return createSymbol(AdaASTSymbols.RAISE);
 64.1619 +          }
 64.1620 +        case 221: break;
 64.1621 +        case 8: 
 64.1622 +          { 
 64.1623 +          }
 64.1624 +        case 222: break;
 64.1625 +        default: 
 64.1626 +          if (zzInput == YYEOF && (zzStartRead == zzCurrentPos)) {
 64.1627 +            zzAtEOF = true;
 64.1628 +            zzDoEOF();
 64.1629 +            switch (zzLexicalState) {
 64.1630 +            case YYINITIAL: {
 64.1631 +              if (yytext().length() > 0) {
 64.1632 +                yypushback(1);  // backup eof
 64.1633 +                comment = yytext();
 64.1634 +              }
 64.1635 +              else {
 64.1636 +                return createSymbol(AdaASTSymbols.EOF);
 64.1637 +              }
 64.1638 +            }
 64.1639 +            case 363: break;
 64.1640 +            default:
 64.1641 +              {     return createSymbol(AdaASTSymbols.EOF);
 64.1642 + }
 64.1643 +            }
 64.1644 +          } 
 64.1645 +          else {
 64.1646 +            zzScanError(ZZ_NO_MATCH);
 64.1647 +          }
 64.1648 +      }
 64.1649 +    }
 64.1650 +  }
 64.1651 +
 64.1652 +
 64.1653 +}
    65.1 --- a/ada.editor/src/org/netbeans/modules/ada/editor/lexer/AdaLexUtilities.java	Tue Oct 02 21:55:21 2012 -0400
    65.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/lexer/AdaLexUtilities.java	Mon Oct 15 23:38:26 2012 +0200
    65.3 @@ -86,6 +86,7 @@
    65.4      static {
    65.5          END_PAIRS.add(AdaTokenId.PROCEDURE);
    65.6          END_PAIRS.add(AdaTokenId.FUNCTION);
    65.7 +        END_PAIRS.add(AdaTokenId.DECLARE);
    65.8          END_PAIRS.add(AdaTokenId.FOR);
    65.9          END_PAIRS.add(AdaTokenId.WHILE);
   65.10          END_PAIRS.add(AdaTokenId.IF);
    66.1 --- a/ada.editor/src/org/netbeans/modules/ada/editor/lexer/AdaLexer.java	Tue Oct 02 21:55:21 2012 -0400
    66.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/lexer/AdaLexer.java	Mon Oct 15 23:38:26 2012 +0200
    66.3 @@ -42,7 +42,9 @@
    66.4  import java.io.IOException;
    66.5  import java.util.logging.Level;
    66.6  import java.util.logging.Logger;
    66.7 +import org.openide.filesystems.FileObject;
    66.8  import org.netbeans.api.lexer.Token;
    66.9 +import org.netbeans.modules.ada.project.api.AdaLanguageOptions;
   66.10  import org.netbeans.spi.lexer.Lexer;
   66.11  import org.netbeans.spi.lexer.LexerRestartInfo;
   66.12  import org.netbeans.spi.lexer.TokenFactory;
   66.13 @@ -54,11 +56,19 @@
   66.14   */
   66.15  public class AdaLexer implements Lexer<AdaTokenId> {
   66.16      
   66.17 -    private final Ada95SyntaxLexer scanner;
   66.18 +    private final AdaSyntaxLexer scanner;
   66.19      private TokenFactory<AdaTokenId> tokenFactory;
   66.20      
   66.21      private AdaLexer(LexerRestartInfo<AdaTokenId> info) {
   66.22 -        scanner = new Ada95SyntaxLexer(info);
   66.23 +        AdaLanguageOptions.AdaVersion adaVersion = AdaLanguageOptions.AdaVersion.ADA_95;
   66.24 +        
   66.25 +        FileObject fileObject = (FileObject)info.getAttributeValue(FileObject.class);
   66.26 +        if (fileObject != null) {
   66.27 +            AdaLanguageOptions.Properties languageProperties = AdaLanguageOptions.getDefault().getProperties(fileObject);
   66.28 +            adaVersion = languageProperties.getAdaVersion();
   66.29 +        }
   66.30 +
   66.31 +        scanner = new AdaSyntaxLexer(info, adaVersion);
   66.32          tokenFactory = info.tokenFactory();
   66.33      }
   66.34      
   66.35 @@ -66,6 +76,7 @@
   66.36          return new AdaLexer(info);
   66.37      }
   66.38      
   66.39 +    @Override
   66.40      public Token<AdaTokenId> nextToken() {
   66.41    
   66.42          try {
   66.43 @@ -82,10 +93,12 @@
   66.44          return null;
   66.45      }
   66.46  
   66.47 +    @Override
   66.48      public Object state() {
   66.49          return scanner.getState();
   66.50      }
   66.51  
   66.52 +    @Override
   66.53      public void release() {
   66.54      }
   66.55      
    67.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    67.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/lexer/AdaSyntaxLexer.java	Mon Oct 15 23:38:26 2012 +0200
    67.3 @@ -0,0 +1,1838 @@
    67.4 +/* The following code was generated by JFlex 1.4.3 on 23/09/10 23.52 */
    67.5 +
    67.6 +/*
    67.7 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
    67.8 + *
    67.9 + * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
   67.10 + *
   67.11 + * The contents of this file are subject to the terms of either the GNU
   67.12 + * General Public License Version 2 only ("GPL") or the Common
   67.13 + * Development and Distribution License("CDDL") (collectively, the
   67.14 + * "License"). You may not use this file except in compliance with the
   67.15 + * License. You can obtain a copy of the License at
   67.16 + * http://www.netbeans.org/cddl-gplv2.html
   67.17 + * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
   67.18 + * specific language governing permissions and limitations under the
   67.19 + * License.  When distributing the software, include this License Header
   67.20 + * Notice in each file and include the License file at
   67.21 + * nbbuild/licenses/CDDL-GPL-2-CP.  Sun designates this
   67.22 + * particular file as subject to the "Classpath" exception as provided
   67.23 + * by Sun in the GPL Version 2 section of the License file that
   67.24 + * accompanied this code. If applicable, add the following below the
   67.25 + * License Header, with the fields enclosed by brackets [] replaced by
   67.26 + * your own identifying information:
   67.27 + * "Portions Copyrighted [year] [name of copyright owner]"
   67.28 + *
   67.29 + * If you wish your version of this file to be governed by only the CDDL
   67.30 + * or only the GPL Version 2, indicate your decision by adding
   67.31 + * "[Contributor] elects to include this software in this distribution
   67.32 + * under the [CDDL or GPL Version 2] license." If you do not indicate a
   67.33 + * single choice of license, a recipient has the option to distribute
   67.34 + * your version of this file under either the CDDL, the GPL Version 2 or
   67.35 + * to extend the choice of license to its licensees as provided above.
   67.36 + * However, if you add GPL Version 2 code and therefore, elected the GPL
   67.37 + * Version 2 license, then the option applies only if the new code is
   67.38 + * made subject to such option by the copyright holder.
   67.39 + *
   67.40 + * Contributor(s):
   67.41 + *
   67.42 + * Portions Copyrighted 2008 Sun Microsystems, Inc.
   67.43 + */
   67.44 +package org.netbeans.modules.ada.editor.lexer;
   67.45 +
   67.46 +import org.netbeans.spi.lexer.LexerInput;
   67.47 +import org.netbeans.spi.lexer.LexerRestartInfo;
   67.48 +import org.netbeans.modules.ada.project.api.AdaLanguageOptions;
   67.49 +
   67.50 +
   67.51 +/**
   67.52 + * This class is a scanner generated by 
   67.53 + * <a href="http://www.jflex.de/">JFlex</a> 1.4.3
   67.54 + * on 23/09/10 23.52 from the specification file
   67.55 + * <tt>C:/hg-repo/release691/contrib/ada.editor/src/org/netbeans/modules/ada/editor/lexer/resources/AdaSyntaxLexer.flex</tt>
   67.56 + */
   67.57 +public class AdaSyntaxLexer {
   67.58 +
   67.59 +  /** This character denotes the end of file */
   67.60 +  public static final int YYEOF = LexerInput.EOF;
   67.61 +
   67.62 +  /** initial size of the lookahead buffer */
   67.63 +  private static final int ZZ_BUFFERSIZE = 16384;
   67.64 +
   67.65 +  /** lexical states */
   67.66 +  public static final int ST_HIGHLIGHTING_ERROR = 8;
   67.67 +  public static final int ST_LOOKING_FOR_PROPERTY = 2;
   67.68 +  public static final int YYINITIAL = 0;
   67.69 +  public static final int ST_LINE_COMMENT = 6;
   67.70 +  public static final int ST_CHAR_LITERAL = 4;
   67.71 +
   67.72 +  /**
   67.73 +   * ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l
   67.74 +   * ZZ_LEXSTATE[l+1] is the state in the DFA for the lexical state l
   67.75 +   *                  at the beginning of a line
   67.76 +   * l is of the form l = 2*k, k a non negative integer
   67.77 +   */
   67.78 +  private static final int ZZ_LEXSTATE[] = { 
   67.79 +     0,  0,  1,  1,  2,  2,  3,  3,  4, 4
   67.80 +  };
   67.81 +
   67.82 +  /** 
   67.83 +   * Translates characters to character classes
   67.84 +   */
   67.85 +  private static final String ZZ_CMAP_PACKED = 
   67.86 +    "\11\0\1\13\1\15\2\0\1\17\22\0\1\47\1\62\1\14\1\10"+
   67.87 +    "\2\0\1\50\1\16\1\51\1\52\1\53\1\5\1\54\1\6\1\7"+
   67.88 +    "\1\55\12\1\1\11\1\56\1\57\1\60\1\61\2\0\1\20\1\21"+
   67.89 +    "\1\26\1\32\1\4\1\2\1\35\1\42\1\31\1\12\1\44\1\30"+
   67.90 +    "\1\40\1\33\1\22\1\27\1\45\1\23\1\25\1\24\1\37\1\43"+
   67.91 +    "\1\41\1\36\1\34\1\46\4\0\1\3\1\0\1\20\1\21\1\26"+
   67.92 +    "\1\32\1\4\1\2\1\35\1\42\1\31\1\12\1\44\1\30\1\40"+
   67.93 +    "\1\33\1\22\1\27\1\45\1\23\1\25\1\24\1\37\1\43\1\41"+
   67.94 +    "\1\36\1\34\1\46\1\0\1\62\uff83\0";
   67.95 +
   67.96 +  /** 
   67.97 +   * Translates characters to character classes
   67.98 +   */
   67.99 +  private static final char [] ZZ_CMAP = zzUnpackCMap(ZZ_CMAP_PACKED);
  67.100 +
  67.101 +  /** 
  67.102 +   * Translates DFA states to action switch labels.
  67.103 +   */
  67.104 +  private static final int [] ZZ_ACTION = zzUnpackAction();
  67.105 +
  67.106 +  private static final String ZZ_ACTION_PACKED_0 =
  67.107 +    "\5\0\1\1\1\2\2\3\1\4\1\5\1\6\1\7"+
  67.108 +    "\1\3\1\10\1\1\1\11\21\3\1\12\1\13\1\14"+
  67.109 +    "\1\15\1\16\1\17\1\20\1\21\1\22\1\23\1\24"+
  67.110 +    "\1\25\1\26\1\27\3\30\1\31\1\32\5\0\7\3"+
  67.111 +    "\1\33\1\34\1\35\1\0\1\36\22\0\2\3\1\37"+
  67.112 +    "\5\3\1\40\1\41\25\3\1\42\1\43\1\44\1\3"+
  67.113 +    "\1\45\14\3\1\46\1\47\1\50\1\51\1\52\1\53"+
  67.114 +    "\1\54\1\55\1\0\1\56\1\2\1\0\1\2\1\0"+
  67.115 +    "\1\3\1\57\4\3\1\60\2\3\1\61\61\0\1\3"+
  67.116 +    "\1\62\2\3\1\63\1\3\1\64\4\3\1\65\4\3"+
  67.117 +    "\1\66\34\3\1\67\1\70\3\3\1\71\1\72\1\3"+
  67.118 +    "\1\73\4\3\1\0\1\74\3\3\1\75\2\3\1\0"+
  67.119 +    "\1\3\1\76\10\0\1\77\13\0\1\100\20\0\1\77"+
  67.120 +    "\17\0\1\77\4\0\1\77\7\3\1\101\12\3\1\102"+
  67.121 +    "\1\3\1\103\1\104\1\105\2\3\1\106\2\3\1\107"+
  67.122 +    "\7\3\1\110\6\3\1\111\1\3\1\112\1\3\1\113"+
  67.123 +    "\1\3\1\114\1\3\2\0\1\115\1\116\1\3\1\117"+
  67.124 +    "\1\120\3\0\1\3\5\0\1\121\33\0\1\77\20\0"+
  67.125 +    "\1\122\1\3\1\123\3\3\1\124\10\3\1\125\1\126"+
  67.126 +    "\21\3\1\127\1\130\2\3\1\131\1\0\1\132\1\74"+
  67.127 +    "\1\0\1\3\2\0\1\133\1\3\10\0\1\100\30\0"+
  67.128 +    "\1\100\3\0\1\3\1\134\1\135\2\3\1\136\1\3"+
  67.129 +    "\1\137\1\140\4\3\1\141\1\3\1\142\5\3\1\143"+
  67.130 +    "\7\3\1\144\3\3\2\0\1\3\40\0\1\3\1\145"+
  67.131 +    "\1\146\1\3\1\147\1\150\1\151\3\3\1\152\2\3"+
  67.132 +    "\1\153\2\3\1\154\1\155\1\3\1\156\1\157\1\160"+
  67.133 +    "\1\3\1\161\1\162\1\163\1\3\23\0\1\100\10\0"+
  67.134 +    "\1\164\2\3\1\165\1\3\1\166\5\3\1\167\12\0"+
  67.135 +    "\1\170\14\0\1\3\1\171\1\3\1\172\1\173\1\174"+
  67.136 +    "\1\175\1\3\25\0\1\176\2\3\24\0\2\3\15\0"+
  67.137 +    "\1\177\1\3\12\0\1\3\11\0\1\200\23\0";
  67.138 +
  67.139 +  private static int [] zzUnpackAction() {
  67.140 +    int [] result = new int[801];
  67.141 +    int offset = 0;
  67.142 +    offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
  67.143 +    return result;
  67.144 +  }
  67.145 +
  67.146 +  private static int zzUnpackAction(String packed, int offset, int [] result) {
  67.147 +    int i = 0;       /* index in packed string  */
  67.148 +    int j = offset;  /* index in unpacked array */
  67.149 +    int l = packed.length();
  67.150 +    while (i < l) {
  67.151 +      int count = packed.charAt(i++);
  67.152 +      int value = packed.charAt(i++);
  67.153 +      do result[j++] = value; while (--count > 0);
  67.154 +    }
  67.155 +    return j;
  67.156 +  }
  67.157 +
  67.158 +
  67.159 +  /** 
  67.160 +   * Translates a state to a row index in the transition table
  67.161 +   */
  67.162 +  private static final int [] ZZ_ROWMAP = zzUnpackRowMap();
  67.163 +
  67.164 +  private static final String ZZ_ROWMAP_PACKED_0 =
  67.165 +    "\0\0\0\63\0\146\0\231\0\314\0\146\0\377\0\u0132"+
  67.166 +    "\0\u0165\0\146\0\u0198\0\u01cb\0\u01fe\0\u0231\0\u0264\0\u0297"+
  67.167 +    "\0\u02ca\0\u02fd\0\u0330\0\u0363\0\u0396\0\u03c9\0\u03fc\0\u042f"+
  67.168 +    "\0\u0462\0\u0495\0\u04c8\0\u04fb\0\u052e\0\u0561\0\u0594\0\u05c7"+
  67.169 +    "\0\u05fa\0\u062d\0\146\0\146\0\146\0\u0660\0\146\0\u0693"+
  67.170 +    "\0\146\0\u06c6\0\u06f9\0\u072c\0\146\0\146\0\u075f\0\u0792"+
  67.171 +    "\0\u07c5\0\146\0\u07f8\0\146\0\u082b\0\u085e\0\u0891\0\u08c4"+
  67.172 +    "\0\u08f7\0\u092a\0\u095d\0\u0990\0\u09c3\0\u09f6\0\u0a29\0\u0a5c"+
  67.173 +    "\0\u0a8f\0\146\0\146\0\146\0\u0297\0\u0ac2\0\u0af5\0\u0b28"+
  67.174 +    "\0\u0b5b\0\u0b8e\0\u0bc1\0\u0bf4\0\u0c27\0\u0c5a\0\u0c8d\0\u0cc0"+
  67.175 +    "\0\u0cf3\0\u0d26\0\u0d59\0\u0d8c\0\u0dbf\0\u0df2\0\u0e25\0\u0e58"+
  67.176 +    "\0\u0e8b\0\u0ebe\0\u0231\0\u0ef1\0\u0f24\0\u0f57\0\u0f8a\0\u0fbd"+
  67.177 +    "\0\u0231\0\u0231\0\u0ff0\0\u1023\0\u1056\0\u1089\0\u10bc\0\u10ef"+
  67.178 +    "\0\u1122\0\u1155\0\u1188\0\u11bb\0\u11ee\0\u1221\0\u1254\0\u1287"+
  67.179 +    "\0\u12ba\0\u12ed\0\u1320\0\u1353\0\u1386\0\u13b9\0\u13ec\0\u0231"+
  67.180 +    "\0\u0231\0\u141f\0\u1452\0\u0231\0\u1485\0\u14b8\0\u14eb\0\u151e"+
  67.181 +    "\0\u1551\0\u1584\0\u15b7\0\u15ea\0\u161d\0\u1650\0\u1683\0\u16b6"+
  67.182 +    "\0\146\0\146\0\146\0\146\0\146\0\146\0\146\0\146"+
  67.183 +    "\0\u16e9\0\146\0\u171c\0\u174f\0\u1782\0\u17b5\0\u17e8\0\u0231"+
  67.184 +    "\0\u181b\0\u184e\0\u1881\0\u18b4\0\u18e7\0\u191a\0\u194d\0\146"+
  67.185 +    "\0\u1980\0\u19b3\0\u19e6\0\u1a19\0\u1a4c\0\u1a7f\0\u1ab2\0\u1ae5"+
  67.186 +    "\0\u1b18\0\u1b4b\0\u1b7e\0\u1bb1\0\u1be4\0\u1c17\0\u1c4a\0\u1c7d"+
  67.187 +    "\0\u1cb0\0\u1ce3\0\u1d16\0\u1d49\0\u1d7c\0\u1daf\0\u1de2\0\u1e15"+
  67.188 +    "\0\u1e48\0\u1e7b\0\u1eae\0\u1ee1\0\u1f14\0\u1f47\0\u1f7a\0\u1fad"+
  67.189 +    "\0\u1fe0\0\u2013\0\u2046\0\u2079\0\u20ac\0\u20df\0\u2112\0\u2145"+
  67.190 +    "\0\u2178\0\u21ab\0\u21de\0\u2211\0\u2244\0\u2277\0\u22aa\0\u22dd"+
  67.191 +    "\0\u2310\0\u2343\0\u2376\0\u23a9\0\u23dc\0\u0231\0\u240f\0\u0231"+
  67.192 +    "\0\u2442\0\u2475\0\u24a8\0\u24db\0\u0231\0\u250e\0\u2541\0\u2574"+
  67.193 +    "\0\u25a7\0\u0231\0\u25da\0\u260d\0\u2640\0\u2673\0\u26a6\0\u26d9"+
  67.194 +    "\0\u270c\0\u273f\0\u2772\0\u27a5\0\u27d8\0\u280b\0\u283e\0\u2871"+
  67.195 +    "\0\u28a4\0\u28d7\0\u290a\0\u293d\0\u2970\0\u29a3\0\u29d6\0\u2a09"+
  67.196 +    "\0\u2a3c\0\u2a6f\0\u2aa2\0\u2ad5\0\u2b08\0\u2b3b\0\u0231\0\u0231"+
  67.197 +    "\0\u2b6e\0\u2ba1\0\u2bd4\0\u0231\0\u0231\0\u2c07\0\u0231\0\u2c3a"+
  67.198 +    "\0\u2c6d\0\u2ca0\0\u2cd3\0\u2d06\0\u2d39\0\u2d6c\0\u2d9f\0\u2dd2"+
  67.199 +    "\0\u0231\0\u2e05\0\u2e38\0\u2e6b\0\u2e9e\0\u0231\0\u2ed1\0\u2f04"+
  67.200 +    "\0\u2f37\0\u2f6a\0\u2f9d\0\u2fd0\0\u3003\0\u3036\0\146\0\u3069"+
  67.201 +    "\0\u309c\0\u30cf\0\u3102\0\u3135\0\u3168\0\u319b\0\u31ce\0\u3201"+
  67.202 +    "\0\u3234\0\u3267\0\146\0\u329a\0\u32cd\0\u3300\0\u3333\0\u3366"+
  67.203 +    "\0\u3399\0\u33cc\0\u33ff\0\u3432\0\u3465\0\u3498\0\u34cb\0\u34fe"+
  67.204 +    "\0\u3531\0\u3564\0\u3597\0\u35ca\0\u35fd\0\u3630\0\u3663\0\u3696"+
  67.205 +    "\0\u36c9\0\u36fc\0\u372f\0\u3762\0\u3795\0\u37c8\0\u37fb\0\u382e"+
  67.206 +    "\0\u3861\0\u3894\0\u38c7\0\u38fa\0\u392d\0\u3960\0\u3993\0\u39c6"+
  67.207 +    "\0\u39f9\0\u3a2c\0\u3a5f\0\u3a92\0\u3ac5\0\u3af8\0\u3b2b\0\u3b5e"+
  67.208 +    "\0\u0231\0\u3b91\0\u3bc4\0\u3bf7\0\u3c2a\0\u3c5d\0\u3c90\0\u3cc3"+
  67.209 +    "\0\u3cf6\0\u3d29\0\u3d5c\0\u0231\0\u3d8f\0\u0231\0\u0231\0\u0231"+
  67.210 +    "\0\u3dc2\0\u3df5\0\u0231\0\u3e28\0\u3e5b\0\u0231\0\u3e8e\0\u3ec1"+
  67.211 +    "\0\u3ef4\0\u3f27\0\u3f5a\0\u3f8d\0\u3fc0\0\u0231\0\u3ff3\0\u4026"+
  67.212 +    "\0\u4059\0\u408c\0\u40bf\0\u40f2\0\u0231\0\u4125\0\u0231\0\u4158"+
  67.213 +    "\0\u0231\0\u418b\0\u0231\0\u41be\0\u41f1\0\u4224\0\u0231\0\u0231"+
  67.214 +    "\0\u4257\0\u0231\0\u0231\0\u428a\0\u42bd\0\u42f0\0\u4323\0\u4356"+
  67.215 +    "\0\u4389\0\u43bc\0\u43ef\0\u4422\0\146\0\u4455\0\u4488\0\u44bb"+
  67.216 +    "\0\u44ee\0\u4521\0\u4554\0\u4587\0\u45ba\0\u45ed\0\u4620\0\u4653"+
  67.217 +    "\0\u4686\0\u46b9\0\u46ec\0\u471f\0\u4752\0\u4785\0\u47b8\0\u47eb"+
  67.218 +    "\0\u481e\0\u4851\0\u4884\0\u48b7\0\u48ea\0\u491d\0\u4950\0\u4983"+
  67.219 +    "\0\u49b6\0\u49e9\0\u4a1c\0\u4a4f\0\u4a82\0\u4ab5\0\u4ae8\0\u4b1b"+
  67.220 +    "\0\u4b4e\0\u4b81\0\u4bb4\0\u4be7\0\u4c1a\0\u4c4d\0\u4c80\0\u4cb3"+
  67.221 +    "\0\u4ce6\0\u0231\0\u4d19\0\u0231\0\u4d4c\0\u4d7f\0\u4db2\0\u0231"+
  67.222 +    "\0\u4de5\0\u4e18\0\u4e4b\0\u4e7e\0\u4eb1\0\u4ee4\0\u4f17\0\u4f4a"+
  67.223 +    "\0\u0231\0\u0231\0\u4f7d\0\u4fb0\0\u4fe3\0\u5016\0\u5049\0\u507c"+
  67.224 +    "\0\u50af\0\u50e2\0\u5115\0\u5148\0\u517b\0\u51ae\0\u51e1\0\u5214"+
  67.225 +    "\0\u5247\0\u527a\0\u52ad\0\u0231\0\u0231\0\u52e0\0\u5313\0\u0231"+
  67.226 +    "\0\u5346\0\u0231\0\u5379\0\u53ac\0\u53df\0\u5412\0\u5445\0\146"+
  67.227 +    "\0\u5478\0\u54ab\0\u54de\0\u5511\0\u5544\0\u5577\0\u55aa\0\u55dd"+
  67.228 +    "\0\u5610\0\u4752\0\u5643\0\u5676\0\u56a9\0\u56dc\0\u570f\0\u5742"+
  67.229 +    "\0\u5775\0\u57a8\0\u57db\0\u580e\0\u5841\0\u5874\0\u58a7\0\u58da"+
  67.230 +    "\0\u590d\0\u5940\0\u5973\0\u59a6\0\u59d9\0\u5a0c\0\u5a3f\0\u5a72"+
  67.231 +    "\0\u5aa5\0\u5ad8\0\u5b0b\0\u5b3e\0\u5b71\0\u5ba4\0\u5bd7\0\u0231"+
  67.232 +    "\0\u0231\0\u5c0a\0\u5c3d\0\u0231\0\u5c70\0\u0231\0\u0231\0\u5ca3"+
  67.233 +    "\0\u5cd6\0\u5d09\0\u5d3c\0\u0231\0\u5d6f\0\u0231\0\u5da2\0\u5dd5"+
  67.234 +    "\0\u5e08\0\u5e3b\0\u5e6e\0\u0231\0\u5ea1\0\u5ed4\0\u5f07\0\u5f3a"+
  67.235 +    "\0\u5f6d\0\u5fa0\0\u5fd3\0\u0231\0\u6006\0\u6039\0\u606c\0\u609f"+
  67.236 +    "\0\u60d2\0\u6105\0\u6138\0\u616b\0\u619e\0\u61d1\0\u6204\0\u6237"+
  67.237 +    "\0\u626a\0\u629d\0\u62d0\0\u6303\0\u6336\0\u6369\0\u639c\0\u63cf"+
  67.238 +    "\0\u6402\0\u6435\0\u6468\0\u649b\0\u64ce\0\u6501\0\u6534\0\u6567"+
  67.239 +    "\0\u659a\0\u65cd\0\u6600\0\u6633\0\u6666\0\u6699\0\u66cc\0\u66ff"+
  67.240 +    "\0\u6732\0\u6765\0\u6798\0\u0231\0\u0231\0\u67cb\0\u0231\0\u0231"+
  67.241 +    "\0\u0231\0\u67fe\0\u6831\0\u6864\0\u0231\0\u6897\0\u68ca\0\u0231"+
  67.242 +    "\0\u68fd\0\u6930\0\u0231\0\u0231\0\u6963\0\u0231\0\u0231\0\u0231"+
  67.243 +    "\0\u6996\0\u0231\0\146\0\146\0\u69c9\0\u69fc\0\u6a2f\0\u6a62"+
  67.244 +    "\0\u6a95\0\u6ac8\0\u6afb\0\u6b2e\0\u6b61\0\u6b94\0\u6bc7\0\u6bfa"+
  67.245 +    "\0\u6c2d\0\u6c60\0\u6c93\0\u6cc6\0\u6cf9\0\u6d2c\0\u6d5f\0\u6d92"+
  67.246 +    "\0\u6dc5\0\u6df8\0\u6e2b\0\u6e5e\0\u6e91\0\u6ec4\0\u6ef7\0\u6f2a"+
  67.247 +    "\0\u6f5d\0\u0231\0\u6f90\0\u6fc3\0\u0231\0\u6ff6\0\u0231\0\u7029"+
  67.248 +    "\0\u705c\0\u708f\0\u70c2\0\u70f5\0\u0231\0\u7128\0\u715b\0\u718e"+
  67.249 +    "\0\u71c1\0\u71f4\0\u7227\0\u725a\0\u728d\0\u72c0\0\u72f3\0\146"+
  67.250 +    "\0\u7326\0\u7359\0\u738c\0\u73bf\0\u73f2\0\u7425\0\u7458\0\u748b"+
  67.251 +    "\0\u74be\0\u74f1\0\u7524\0\u7557\0\u758a\0\u0231\0\u75bd\0\u0231"+
  67.252 +    "\0\u0231\0\u0231\0\u0231\0\u75f0\0\u7623\0\u7656\0\u7689\0\u76bc"+
  67.253 +    "\0\u76ef\0\u7722\0\u7755\0\u7788\0\u77bb\0\u77ee\0\u7821\0\u7854"+
  67.254 +    "\0\u7887\0\u78ba\0\u78ed\0\u7920\0\u7953\0\u7986\0\u79b9\0\u79ec"+
  67.255 +    "\0\u7a1f\0\u0231\0\u7a52\0\u7a85\0\u7ab8\0\u7aeb\0\u7b1e\0\u7b51"+
  67.256 +    "\0\u7b84\0\u7bb7\0\u7bea\0\u7c1d\0\u7c50\0\u7c83\0\u7cb6\0\u7ce9"+
  67.257 +    "\0\u7d1c\0\u7d4f\0\u7d82\0\u7db5\0\u7de8\0\u7e1b\0\u7e4e\0\u7e81"+
  67.258 +    "\0\u7eb4\0\u7ee7\0\u7f1a\0\u7f4d\0\u7f80\0\u7fb3\0\u7fe6\0\u8019"+
  67.259 +    "\0\u804c\0\u807f\0\u80b2\0\u80e5\0\u8118\0\u814b\0\u817e\0\u0231"+
  67.260 +    "\0\u81b1\0\u81e4\0\u8217\0\u824a\0\u827d\0\u82b0\0\u82e3\0\u8316"+
  67.261 +    "\0\u8349\0\u837c\0\u83af\0\u83e2\0\u8415\0\u8448\0\u847b\0\u84ae"+
  67.262 +    "\0\u84e1\0\u8514\0\u8547\0\u857a\0\u85ad\0\u0231\0\u85e0\0\u8613"+
  67.263 +    "\0\u8646\0\u8679\0\u86ac\0\u86df\0\u8712\0\u8745\0\u8778\0\u87ab"+
  67.264 +    "\0\u87de\0\u8811\0\u8844\0\u8877\0\u88aa\0\u88dd\0\u8910\0\u8943"+
  67.265 +    "\0\u8976";
  67.266 +
  67.267 +  private static int [] zzUnpackRowMap() {
  67.268 +    int [] result = new int[801];
  67.269 +    int offset = 0;
  67.270 +    offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
  67.271 +    return result;
  67.272 +  }
  67.273 +
  67.274 +  private static int zzUnpackRowMap(String packed, int offset, int [] result) {
  67.275 +    int i = 0;  /* index in packed string  */
  67.276 +    int j = offset;  /* index in unpacked array */
  67.277 +    int l = packed.length();
  67.278 +    while (i < l) {
  67.279 +      int high = packed.charAt(i++) << 16;
  67.280 +      result[j++] = high | packed.charAt(i++);
  67.281 +    }
  67.282 +    return j;
  67.283 +  }
  67.284 +
  67.285 +  /** 
  67.286 +   * The transition table of the DFA
  67.287 +   */
  67.288 +  private static final int [] ZZ_TRANS = zzUnpackTrans();
  67.289 +
  67.290 +  private static final String ZZ_TRANS_PACKED_0 =
  67.291 +    "\1\6\1\7\1\10\1\6\1\11\1\12\1\13\1\14"+
  67.292 +    "\1\6\1\15\1\16\1\17\1\20\1\17\1\21\1\17"+
  67.293 +    "\1\22\1\23\1\24\1\25\1\26\1\27\1\30\1\31"+
  67.294 +    "\1\32\1\33\1\34\1\35\1\16\1\36\1\37\1\40"+
  67.295 +    "\1\41\1\42\5\16\1\17\1\43\1\44\1\45\1\46"+
  67.296 +    "\1\47\1\50\1\51\1\52\1\53\1\54\1\55\2\56"+
  67.297 +    "\1\57\1\56\1\57\2\56\1\60\2\56\1\57\5\56"+
  67.298 +    "\27\57\14\56\63\0\15\61\1\62\1\61\1\63\43\61"+
  67.299 +    "\13\64\1\65\1\64\1\65\1\64\1\65\27\64\1\65"+
  67.300 +    "\13\64\1\0\1\7\1\0\1\66\1\67\2\0\1\70"+
  67.301 +    "\2\71\52\0\2\16\1\72\1\16\5\0\1\16\5\0"+
  67.302 +    "\1\73\1\16\1\74\5\16\1\75\6\16\1\76\7\16"+
  67.303 +    "\15\0\2\16\1\72\1\16\5\0\1\16\5\0\10\16"+
  67.304 +    "\1\77\2\16\1\100\2\16\1\101\10\16\22\0\1\102"+
  67.305 +    "\63\0\1\103\133\0\1\104\3\0\2\16\1\72\1\16"+
  67.306 +    "\5\0\1\16\5\0\27\16\27\0\1\17\1\0\1\17"+
  67.307 +    "\1\0\1\17\27\0\1\17\13\0\14\105\1\106\1\0"+
  67.308 +    "\45\105\2\107\1\110\1\107\1\111\10\107\1\0\2\107"+
  67.309 +    "\1\112\1\113\1\114\1\115\1\116\1\117\1\120\1\121"+
  67.310 +    "\1\122\1\123\1\124\4\107\1\125\1\126\1\127\1\107"+
  67.311 +    "\1\130\17\107\1\0\2\16\1\72\1\16\5\0\1\16"+
  67.312 +    "\5\0\1\16\1\131\1\16\1\132\1\133\1\16\1\134"+
  67.313 +    "\1\16\1\135\2\16\1\136\13\16\15\0\2\16\1\72"+
  67.314 +    "\1\137\5\0\1\16\5\0\2\16\1\140\24\16\15\0"+
  67.315 +    "\1\16\1\141\1\72\1\16\5\0\1\16\5\0\3\16"+
  67.316 +    "\1\142\1\143\12\16\1\144\3\16\1\145\3\16\15\0"+
  67.317 +    "\2\16\1\72\1\146\5\0\1\16\5\0\1\147\26\16"+
  67.318 +    "\15\0\2\16\1\72\1\150\5\0\1\16\5\0\1\151"+
  67.319 +    "\2\16\1\152\10\16\1\153\5\16\1\154\4\16\15\0"+
  67.320 +    "\2\16\1\72\1\155\5\0\1\16\5\0\2\16\1\156"+
  67.321 +    "\11\16\1\157\2\16\1\160\7\16\15\0\2\16\1\72"+
  67.322 +    "\1\16\5\0\1\16\5\0\1\161\1\16\1\162\17\16"+
  67.323 +    "\1\163\4\16\15\0\2\16\1\72\1\16\5\0\1\16"+
  67.324 +    "\5\0\1\164\2\16\1\165\23\16\15\0\2\16\1\72"+
  67.325 +    "\1\16\5\0\1\16\5\0\2\16\1\166\6\16\1\167"+
  67.326 +    "\15\16\15\0\1\16\1\170\1\72\1\16\5\0\1\16"+
  67.327 +    "\5\0\5\16\1\171\5\16\1\172\13\16\15\0\2\16"+
  67.328 +    "\1\72\1\173\5\0\1\16\5\0\2\16\1\174\6\16"+
  67.329 +    "\1\175\15\16\15\0\2\16\1\72\1\176\5\0\1\16"+
  67.330 +    "\5\0\2\16\1\177\14\16\1\200\7\16\15\0\2\16"+
  67.331 +    "\1\72\1\201\5\0\1\16\5\0\2\16\1\202\24\16"+
  67.332 +    "\15\0\2\16\1\72\1\16\5\0\1\16\5\0\2\16"+
  67.333 +    "\1\203\24\16\15\0\2\16\1\72\1\16\5\0\1\16"+
  67.334 +    "\5\0\5\16\1\204\5\16\1\205\13\16\15\0\2\16"+
  67.335 +    "\1\72\1\16\5\0\1\16\5\0\2\16\1\206\24\16"+
  67.336 +    "\15\0\2\16\1\72\1\16\5\0\1\16\5\0\11\16"+
  67.337 +    "\1\207\10\16\1\210\4\16\67\0\1\211\67\0\1\212"+
  67.338 +    "\61\0\1\213\1\214\1\215\62\0\1\216\61\0\1\217"+
  67.339 +    "\1\220\2\0\2\57\1\221\1\57\5\0\1\57\5\0"+
  67.340 +    "\27\57\23\0\1\222\53\0\15\61\1\62\1\61\1\62"+
  67.341 +    "\43\61\15\0\1\62\60\0\1\65\1\0\1\65\1\0"+
  67.342 +    "\1\65\27\0\1\65\14\0\1\7\62\0\1\223\3\0"+
  67.343 +    "\2\224\55\0\1\225\62\0\2\226\1\0\1\226\13\0"+
  67.344 +    "\2\226\4\0\1\226\3\0\1\226\31\0\2\16\1\0"+
  67.345 +    "\1\16\5\0\1\16\5\0\27\16\15\0\2\16\1\72"+
  67.346 +    "\1\16\5\0\1\16\5\0\10\16\1\227\16\16\15\0"+
  67.347 +    "\2\16\1\72\1\16\5\0\1\16\5\0\3\16\1\230"+
  67.348 +    "\23\16\15\0\2\16\1\72\1\16\5\0\1\16\5\0"+
  67.349 +    "\2\16\1\231\24\16\15\0\2\16\1\72\1\16\5\0"+
  67.350 +    "\1\16\5\0\13\16\1\232\13\16\15\0\2\16\1\72"+
  67.351 +    "\1\16\5\0\1\16\5\0\5\16\1\233\21\16\15\0"+
  67.352 +    "\2\16\1\72\1\16\5\0\1\16\5\0\4\16\1\234"+
  67.353 +    "\5\16\1\235\14\16\15\0\2\16\1\72\1\16\5\0"+
  67.354 +    "\1\16\5\0\6\16\1\236\2\16\1\237\15\16\30\0"+
  67.355 +    "\1\105\64\0\1\240\62\0\1\240\3\0\1\241\1\242"+
  67.356 +    "\4\0\1\243\1\244\47\0\1\240\10\0\1\245\6\0"+
  67.357 +    "\1\246\1\0\1\247\24\0\1\250\13\0\1\240\7\0"+
  67.358 +    "\1\251\1\0\1\252\1\0\1\253\46\0\1\240\1\0"+
  67.359 +    "\1\254\1\0\1\255\6\0\1\256\47\0\1\240\20\0"+
  67.360 +    "\1\257\27\0\1\260\11\0\1\240\1\0\1\261\1\0"+
  67.361 +    "\1\262\44\0\1\263\11\0\1\240\1\0\1\264\2\0"+
  67.362 +    "\1\265\55\0\1\240\1\0\1\266\3\0\1\267\1\0"+
  67.363 +    "\1\270\2\0\1\271\5\0\1\272\1\273\26\0\1\274"+
  67.364 +    "\11\0\1\240\1\0\1\275\1\0\1\276\5\0\1\277"+
  67.365 +    "\50\0\1\240\1\0\1\300\1\0\1\301\1\302\43\0"+
  67.366 +    "\1\303\11\0\1\240\1\0\1\304\60\0\1\240\13\0"+
  67.367 +    "\1\305\1\306\4\0\1\307\26\0\1\310\11\0\1\240"+
  67.368 +    "\12\0\1\311\47\0\1\240\14\0\1\312\45\0\1\240"+
  67.369 +    "\1\0\1\313\1\0\1\314\6\0\1\315\47\0\1\240"+
  67.370 +    "\4\0\1\316\5\0\1\317\35\0\1\320\11\0\1\240"+
  67.371 +    "\1\0\1\321\43\0\2\16\1\72\1\16\5\0\1\16"+
  67.372 +    "\5\0\2\16\1\322\2\16\1\323\21\16\15\0\2\16"+
  67.373 +    "\1\72\1\16\5\0\1\16\5\0\3\16\1\324\23\16"+
  67.374 +    "\15\0\2\16\1\72\1\16\5\0\1\16\5\0\6\16"+
  67.375 +    "\1\325\20\16\15\0\2\16\1\72\1\16\5\0\1\16"+
  67.376 +    "\5\0\10\16\1\326\1\327\15\16\15\0\2\16\1\72"+
  67.377 +    "\1\16\5\0\1\16\5\0\12\16\1\330\14\16\15\0"+
  67.378 +    "\2\16\1\72\1\16\5\0\1\16\5\0\15\16\1\331"+
  67.379 +    "\11\16\15\0\2\16\1\72\1\16\5\0\1\16\5\0"+
  67.380 +    "\2\16\1\332\7\16\1\333\14\16\15\0\2\16\1\72"+
  67.381 +    "\1\16\5\0\1\16\5\0\22\16\1\334\4\16\15\0"+
  67.382 +    "\2\16\1\72\1\16\5\0\1\16\5\0\4\16\1\335"+
  67.383 +    "\22\16\15\0\2\16\1\72\1\336\5\0\1\16\5\0"+
  67.384 +    "\27\16\15\0\2\16\1\72\1\16\5\0\1\16\5\0"+
  67.385 +    "\4\16\1\337\1\16\1\340\4\16\1\341\4\16\1\342"+
  67.386 +    "\2\16\1\343\1\16\1\344\1\16\15\0\2\16\1\72"+
  67.387 +    "\1\16\5\0\1\16\5\0\11\16\1\345\1\16\1\346"+
  67.388 +    "\13\16\15\0\2\16\1\72\1\16\5\0\1\16\5\0"+
  67.389 +    "\3\16\1\347\23\16\15\0\2\16\1\72\1\16\5\0"+
  67.390 +    "\1\16\5\0\5\16\1\350\7\16\1\351\11\16\15\0"+
  67.391 +    "\2\16\1\72\1\16\5\0\1\16\5\0\17\16\1\352"+
  67.392 +    "\7\16\15\0\2\16\1\72\1\16\5\0\1\16\5\0"+
  67.393 +    "\7\16\1\353\17\16\15\0\2\16\1\72\1\354\5\0"+
  67.394 +    "\1\16\5\0\27\16\15\0\2\16\1\72\1\16\5\0"+
  67.395 +    "\1\16\5\0\7\16\1\355\1\356\16\16\15\0\2\16"+
  67.396 +    "\1\72\1\16\5\0\1\16\5\0\20\16\1\357\6\16"+
  67.397 +    "\15\0\2\16\1\72\1\16\5\0\1\16\5\0\13\16"+
  67.398 +    "\1\360\13\16\15\0\2\16\1\72\1\16\5\0\1\16"+
  67.399 +    "\5\0\1\16\1\361\25\16\15\0\2\16\1\72\1\16"+
  67.400 +    "\5\0\1\16\5\0\5\16\1\362\21\16\15\0\2\16"+
  67.401 +    "\1\72\1\16\5\0\1\16\5\0\13\16\1\363\13\16"+
  67.402 +    "\15\0\2\16\1\72\1\16\5\0\1\16\5\0\1\364"+
  67.403 +    "\26\16\15\0\2\16\1\72\1\16\5\0\1\16\5\0"+
  67.404 +    "\6\16\1\365\20\16\15\0\2\16\1\72\1\16\5\0"+
  67.405 +    "\1\16\5\0\1\366\1\16\1\367\6\16\1\370\15\16"+
  67.406 +    "\15\0\2\16\1\72\1\16\5\0\1\16\5\0\2\16"+
  67.407 +    "\1\371\24\16\15\0\2\16\1\72\1\16\5\0\1\16"+
  67.408 +    "\5\0\20\16\1\372\6\16\15\0\2\16\1\72\1\16"+
  67.409 +    "\5\0\1\16\5\0\4\16\1\373\22\16\15\0\2\16"+
  67.410 +    "\1\72\1\16\5\0\1\16\5\0\6\16\1\374\1\16"+
  67.411 +    "\1\375\16\16\15\0\2\16\1\72\1\16\5\0\1\16"+
  67.412 +    "\5\0\15\16\1\376\11\16\15\0\2\16\1\72\1\16"+
  67.413 +    "\5\0\1\16\5\0\21\16\1\377\5\16\15\0\2\16"+
  67.414 +    "\1\72\1\16\5\0\1\16\5\0\4\16\1\u0100\22\16"+
  67.415 +    "\15\0\2\16\1\72\1\16\5\0\1\16\5\0\10\16"+
  67.416 +    "\1\u0101\16\16\15\0\2\16\1\72\1\16\5\0\1\16"+
  67.417 +    "\5\0\13\16\1\u0102\13\16\15\0\2\16\1\72\1\16"+
  67.418 +    "\5\0\1\16\5\0\4\16\1\u0103\22\16\15\0\2\16"+
  67.419 +    "\1\72\1\16\5\0\1\16\5\0\3\16\1\u0104\23\16"+
  67.420 +    "\15\0\2\16\1\72\1\u0105\5\0\1\16\5\0\27\16"+
  67.421 +    "\15\0\2\16\1\72\1\16\5\0\1\16\5\0\4\16"+
  67.422 +    "\1\u0106\22\16\15\0\2\16\1\72\1\16\5\0\1\16"+
  67.423 +    "\5\0\12\16\1\u0107\14\16\15\0\2\16\1\72\1\16"+
  67.424 +    "\5\0\1\16\5\0\4\16\1\u0108\5\16\1\u0109\14\16"+
  67.425 +    "\15\0\2\16\1\72\1\u010a\5\0\1\16\5\0\11\16"+
  67.426 +    "\1\u010b\15\16\15\0\2\57\1\0\1\57\5\0\1\57"+
  67.427 +    "\5\0\27\57\15\0\1\223\1\0\1\224\60\0\1\223"+
  67.428 +    "\62\0\1\225\1\0\1\70\1\67\57\0\2\226\1\71"+
  67.429 +    "\1\226\2\0\1\u010c\2\u010d\6\0\2\226\4\0\1\226"+
  67.430 +    "\3\0\1\226\31\0\2\16\1\72\1\16\5\0\1\16"+
  67.431 +    "\5\0\5\16\1\u010e\21\16\15\0\2\16\1\72\1\16"+
  67.432 +    "\5\0\1\16\5\0\1\u010f\26\16\15\0\2\16\1\72"+
  67.433 +    "\1\16\5\0\1\16\5\0\6\16\1\u0110\20\16\15\0"+
  67.434 +    "\2\16\1\72\1\u0111\5\0\1\16\5\0\11\16\1\u0112"+
  67.435 +    "\15\16\15\0\2\16\1\72\1\16\5\0\1\16\5\0"+
  67.436 +    "\3\16\1\u0113\23\16\15\0\2\16\1\72\1\16\5\0"+
  67.437 +    "\1\16\5\0\27\16\1\u0114\14\0\2\16\1\72\1\u0115"+
  67.438 +    "\5\0\1\16\5\0\27\16\15\0\2\16\1\72\1\16"+
  67.439 +    "\5\0\1\16\5\0\4\16\1\u0116\22\16\37\0\1\u0117"+
  67.440 +    "\57\0\1\u0118\64\0\1\u0119\63\0\1\u011a\64\0\1\u011b"+
  67.441 +    "\61\0\1\u011c\2\0\1\u011d\53\0\1\u011e\66\0\1\u011f"+
  67.442 +    "\64\0\1\u0120\65\0\1\u0121\43\0\1\u0122\17\0\1\u0123"+
  67.443 +    "\55\0\1\u0117\67\0\1\u0124\54\0\1\u0125\62\0\1\306"+
  67.444 +    "\56\0\1\u0126\17\0\1\u0127\55\0\1\u0128\66\0\1\u0129"+
  67.445 +    "\46\0\1\u012a\74\0\1\u012b\64\0\1\u012c\25\0\1\u012d"+
  67.446 +    "\102\0\1\u012e\1\u012f\57\0\1\u0130\77\0\1\u0131\10\0"+
  67.447 +    "\1\u0117\42\0\1\u0132\54\0\1\u0133\73\0\1\u0134\61\0"+
  67.448 +    "\1\u0135\61\0\1\u0136\3\0\1\u0137\3\0\1\u0138\1\u0139"+
  67.449 +    "\42\0\1\u013a\65\0\1\u013b\64\0\1\u013c\41\0\1\u013d"+
  67.450 +    "\24\0\1\u013e\51\0\1\u013f\12\0\1\u0140\52\0\1\u0141"+
  67.451 +    "\1\0\1\u0142\41\0\1\u0143\105\0\1\u0144\53\0\1\u0128"+
  67.452 +    "\72\0\1\u0145\2\0\1\u0146\64\0\1\u0147\46\0\1\u0148"+
  67.453 +    "\4\0\1\u0149\62\0\1\u014a\4\0\1\u014b\2\0\1\u014c"+
  67.454 +    "\56\0\1\u014d\63\0\1\u012b\60\0\1\u014e\63\0\1\u014f"+
  67.455 +    "\53\0\1\u0150\67\0\1\u0151\33\0\2\16\1\72\1\16"+
  67.456 +    "\5\0\1\16\5\0\3\16\1\u0152\23\16\15\0\2\16"+
  67.457 +    "\1\72\1\16\5\0\1\16\5\0\4\16\1\u0153\22\16"+
  67.458 +    "\15\0\2\16\1\72\1\16\5\0\1\16\5\0\1\u0154"+
  67.459 +    "\26\16\15\0\2\16\1\72\1\u0155\5\0\1\16\5\0"+
  67.460 +    "\27\16\15\0\2\16\1\72\1\16\5\0\1\16\5\0"+
  67.461 +    "\1\u0156\26\16\15\0\2\16\1\72\1\16\5\0\1\16"+
  67.462 +    "\5\0\11\16\1\u0157\15\16\15\0\2\16\1\72\1\16"+
  67.463 +    "\5\0\1\16\5\0\10\16\1\u0158\16\16\15\0\2\16"+
  67.464 +    "\1\72\1\16\5\0\1\16\5\0\14\16\1\u0159\12\16"+
  67.465 +    "\15\0\2\16\1\72\1\u015a\5\0\1\16\5\0\27\16"+
  67.466 +    "\15\0\2\16\1\72\1\16\5\0\1\16\5\0\3\16"+
  67.467 +    "\1\u015b\23\16\15\0\2\16\1\72\1\16\5\0\1\16"+
  67.468 +    "\5\0\17\16\1\u015c\7\16\15\0\2\16\1\72\1\16"+
  67.469 +    "\5\0\1\16\5\0\2\16\1\u015d\24\16\15\0\2\16"+
  67.470 +    "\1\72\1\16\5\0\1\16\5\0\1\u015e\26\16\15\0"+
  67.471 +    "\2\16\1\72\1\u015f\5\0\1\16\5\0\27\16\15\0"+
  67.472 +    "\2\16\1\72\1\16\5\0\1\16\5\0\17\16\1\u0160"+
  67.473 +    "\7\16\15\0\2\16\1\72\1\16\5\0\1\16\5\0"+
  67.474 +    "\5\16\1\u0161\21\16\15\0\2\16\1\72\1\16\5\0"+
  67.475 +    "\1\16\5\0\15\16\1\u0162\11\16\15\0\2\16\1\72"+
  67.476 +    "\1\16\5\0\1\16\5\0\20\16\1\u0163\6\16\15\0"+
  67.477 +    "\2\16\1\72\1\16\5\0\1\16\5\0\24\16\1\u0164"+
  67.478 +    "\2\16\15\0\2\16\1\72\1\16\5\0\1\16\5\0"+
  67.479 +    "\15\16\1\u0165\11\16\15\0\2\16\1\72\1\u0166\5\0"+
  67.480 +    "\1\16\5\0\27\16\15\0\2\16\1\72\1\u0167\5\0"+
  67.481 +    "\1\16\5\0\27\16\15\0\2\16\1\72\1\16\5\0"+
  67.482 +    "\1\16\5\0\13\16\1\u0168\13\16\15\0\2\16\1\72"+
  67.483 +    "\1\16\5\0\1\16\5\0\1\u0169\26\16\15\0\2\16"+
  67.484 +    "\1\72\1\u016a\5\0\1\16\5\0\27\16\15\0\2\16"+
  67.485 +    "\1\72\1\u016b\5\0\1\16\5\0\27\16\15\0\2\16"+
  67.486 +    "\1\72\1\16\5\0\1\16\5\0\6\16\1\u016c\20\16"+
  67.487 +    "\15\0\2\16\1\72\1\16\5\0\1\16\5\0\4\16"+
  67.488 +    "\1\u016d\22\16\15\0\2\16\1\72\1\u016e\5\0\1\16"+
  67.489 +    "\5\0\27\16\15\0\2\16\1\72\1\16\5\0\1\16"+
  67.490 +    "\5\0\5\16\1\u016f\21\16\15\0\2\16\1\72\1\16"+
  67.491 +    "\5\0\1\16\5\0\3\16\1\u0170\23\16\15\0\2\16"+
  67.492 +    "\1\72\1\16\5\0\1\16\5\0\24\16\1\u0171\2\16"+
  67.493 +    "\15\0\2\16\1\72\1\16\5\0\1\16\5\0\15\16"+
  67.494 +    "\1\u0172\11\16\15\0\2\16\1\72\1\16\5\0\1\16"+
  67.495 +    "\5\0\4\16\1\u0173\1\16\1\u0174\20\16\15\0\2\16"+
  67.496 +    "\1\72\1\16\5\0\1\16\5\0\23\16\1\u0175\3\16"+
  67.497 +    "\15\0\2\16\1\72\1\16\5\0\1\16\5\0\7\16"+
  67.498 +    "\1\u0176\17\16\15\0\2\16\1\72\1\16\5\0\1\16"+
  67.499 +    "\5\0\11\16\1\u0177\15\16\15\0\2\16\1\72\1\u0178"+
  67.500 +    "\5\0\1\16\5\0\27\16\15\0\2\16\1\72\1\16"+
  67.501 +    "\5\0\1\16\5\0\10\16\1\u0179\16\16\15\0\2\16"+
  67.502 +    "\1\72\1\16\5\0\1\16\5\0\1\u017a\3\16\1\u017b"+
  67.503 +    "\22\16\15\0\2\16\1\72\1\16\5\0\1\16\5\0"+
  67.504 +    "\11\16\1\u017c\15\16\15\0\2\16\1\72\1\16\5\0"+
  67.505 +    "\1\16\5\0\10\16\1\u017d\16\16\15\0\2\16\1\72"+
  67.506 +    "\1\u017e\5\0\1\16\5\0\27\16\15\0\2\16\1\72"+
  67.507 +    "\1\16\5\0\1\16\5\0\2\16\1\u017f\24\16\15\0"+
  67.508 +    "\2\16\1\72\1\16\5\0\1\16\5\0\11\16\1\u0180"+
  67.509 +    "\15\16\15\0\2\16\1\72\1\16\5\0\1\16\5\0"+
  67.510 +    "\22\16\1\u0181\4\16\15\0\2\16\1\72\1\u0182\5\0"+
  67.511 +    "\1\16\5\0\27\16\15\0\2\16\1\72\1\16\5\0"+
  67.512 +    "\1\16\5\0\13\16\1\u0183\13\16\15\0\2\16\1\72"+
  67.513 +    "\1\16\5\0\1\16\5\0\10\16\1\u0184\16\16\15\0"+
  67.514 +    "\2\u0185\1\0\1\u0185\13\0\2\u0185\4\0\1\u0185\3\0"+
  67.515 +    "\1\u0185\34\0\1\u0186\57\0\2\16\1\72\1\u0187\5\0"+
  67.516 +    "\1\16\5\0\27\16\15\0\2\16\1\72\1\16\5\0"+
  67.517 +    "\1\16\5\0\4\16\1\u0188\22\16\15\0\2\16\1\72"+
  67.518 +    "\1\16\5\0\1\16\5\0\4\16\1\u0189\22\16\15\0"+
  67.519 +    "\1\16\1\u018a\1\72\1\16\5\0\1\16\5\0\27\16"+
  67.520 +    "\15\0\2\16\1\72\1\16\5\0\1\16\5\0\14\16"+
  67.521 +    "\1\u018b\12\16\42\0\1\u018c\1\0\1\u018d\1\u018e\32\0"+
  67.522 +    "\2\16\1\72\1\16\5\0\1\16\5\0\7\16\1\u018f"+
  67.523 +    "\17\16\20\0\1\u011f\104\0\1\u0190\56\0\1\u0191\65\0"+
  67.524 +    "\1\u0142\66\0\1\u0192\35\0\1\u0193\100\0\1\u0194\76\0"+
  67.525 +    "\1\u0195\30\0\1\u013a\113\0\1\u0196\45\0\1\u0197\65\0"+
  67.526 +    "\1\u0198\73\0\1\u0199\31\0\1\u019a\111\0\1\u012b\50\0"+
  67.527 +    "\1\u019b\77\0\1\u0117\60\0\1\u019c\67\0\1\u019d\55\0"+
  67.528 +    "\1\u019e\33\0\1\u019f\101\0\1\u01a0\43\0\1\u01a1\106\0"+
  67.529 +    "\1\u01a2\65\0\1\u01a3\55\0\1\u011f\64\0\1\u01a4\62\0"+
  67.530 +    "\1\u01a5\62\0\1\u01a6\66\0\1\u01a7\53\0\1\u01a8\70\0"+
  67.531 +    "\1\250\56\0\1\u01a9\60\0\1\u01aa\61\0\1\u01ab\67\0"+
  67.532 +    "\1\u01ac\63\0\1\u011f\52\0\1\u01ad\72\0\1\u01ae\65\0"+
  67.533 +    "\1\u01af\62\0\1\u01b0\51\0\1\u01b1\71\0\1\u01b2\66\0"+
  67.534 +    "\1\u01b3\47\0\1\u01b4\60\0\1\u01b5\71\0\1\u01b6\62\0"+
  67.535 +    "\1\u01b7\73\0\1\u01b8\62\0\1\u01b9\44\0\1\u01ba\41\0"+
  67.536 +    "\1\u01bb\63\0\1\u01bc\32\0\1\u01bd\47\0\1\u01be\42\0"+
  67.537 +    "\1\u01bf\17\0\1\u01c0\63\0\1\u01c1\66\0\1\u0126\5\0"+
  67.538 +    "\1\u0117\24\0\2\16\1\72\1\16\5\0\1\16\5\0"+
  67.539 +    "\4\16\1\u01c2\22\16\15\0\2\16\1\72\1\16\5\0"+
  67.540 +    "\1\16\5\0\3\16\1\u01c3\23\16\15\0\2\16\1\72"+
  67.541 +    "\1\16\5\0\1\16\5\0\14\16\1\u01c4\12\16\15\0"+
  67.542 +    "\2\16\1\72\1\16\5\0\1\16\5\0\5\16\1\u01c5"+
  67.543 +    "\1\16\1\u01c6\17\16\15\0\2\16\1\72\1\16\5\0"+
  67.544 +    "\1\16\5\0\5\16\1\u01c7\21\16\15\0\2\16\1\72"+
  67.545 +    "\1\16\5\0\1\16\5\0\13\16\1\u01c8\13\16\15\0"+
  67.546 +    "\2\16\1\72\1\u01c9\5\0\1\16\5\0\27\16\15\0"+
  67.547 +    "\2\16\1\72\1\16\5\0\1\16\5\0\3\16\1\u01ca"+
  67.548 +    "\23\16\15\0\2\16\1\72\1\16\5\0\1\16\5\0"+
  67.549 +    "\3\16\1\u01cb\23\16\15\0\2\16\1\72\1\16\5\0"+
  67.550 +    "\1\16\5\0\3\16\1\u01cc\23\16\15\0\2\16\1\72"+
  67.551 +    "\1\16\5\0\1\16\5\0\3\16\1\u01cd\23\16\15\0"+
  67.552 +    "\2\16\1\72\1\16\5\0\1\16\5\0\20\16\1\u01ce"+
  67.553 +    "\6\16\15\0\2\16\1\72\1\16\5\0\1\16\5\0"+
  67.554 +    "\3\16\1\u01cf\23\16\15\0\2\16\1\72\1\u01d0\5\0"+
  67.555 +    "\1\16\5\0\27\16\15\0\2\16\1\72\1\u01d1\5\0"+
  67.556 +    "\1\16\5\0\27\16\15\0\2\16\1\72\1\u01d2\5\0"+
  67.557 +    "\1\16\5\0\27\16\15\0\2\16\1\72\1\16\5\0"+
  67.558 +    "\1\16\5\0\11\16\1\u01d3\15\16\15\0\2\16\1\72"+
  67.559 +    "\1\u01d4\5\0\1\16\5\0\27\16\15\0\2\16\1\72"+
  67.560 +    "\1\16\5\0\1\16\5\0\3\16\1\u01d5\23\16\15\0"+
  67.561 +    "\2\16\1\72\1\16\5\0\1\16\5\0\6\16\1\u01d6"+
  67.562 +    "\20\16\15\0\2\16\1\72\1\16\5\0\1\16\5\0"+
  67.563 +    "\22\16\1\u01d7\4\16\15\0\2\16\1\72\1\16\5\0"+
  67.564 +    "\1\16\5\0\14\16\1\u01d8\12\16\15\0\2\16\1\72"+
  67.565 +    "\1\16\5\0\1\16\5\0\4\16\1\u01d9\22\16\15\0"+
  67.566 +    "\2\16\1\72\1\16\5\0\1\16\5\0\1\u01da\26\16"+
  67.567 +    "\15\0\2\16\1\72\1\16\5\0\1\16\5\0\1\u01db"+
  67.568 +    "\26\16\15\0\2\16\1\72\1\16\5\0\1\16\5\0"+
  67.569 +    "\20\16\1\u01dc\6\16\15\0\2\16\1\72\1\u01dd\5\0"+
  67.570 +    "\1\16\5\0\27\16\15\0\2\16\1\72\1\u01de\5\0"+
  67.571 +    "\1\16\5\0\27\16\15\0\2\16\1\72\1\16\5\0"+
  67.572 +    "\1\16\5\0\1\u01df\26\16\15\0\2\16\1\72\1\16"+
  67.573 +    "\5\0\1\16\5\0\4\16\1\u01e0\22\16\15\0\2\16"+
  67.574 +    "\1\72\1\16\5\0\1\16\5\0\3\16\1\u01e1\11\16"+
  67.575 +    "\1\u01e2\11\16\15\0\2\16\1\72\1\16\5\0\1\16"+
  67.576 +    "\5\0\1\u01e3\26\16\15\0\2\16\1\72\1\16\5\0"+
  67.577 +    "\1\16\5\0\14\16\1\u01e4\12\16\15\0\2\16\1\72"+
  67.578 +    "\1\16\5\0\1\16\5\0\1\u01e5\26\16\15\0\2\16"+
  67.579 +    "\1\72\1\16\5\0\1\16\5\0\4\16\1\u01e6\22\16"+
  67.580 +    "\15\0\2\16\1\72\1\16\5\0\1\16\5\0\3\16"+
  67.581 +    "\1\u01e7\23\16\15\0\2\16\1\72\1\16\5\0\1\16"+
  67.582 +    "\5\0\10\16\1\u01e8\16\16\15\0\2\16\1\u01e9\1\16"+
  67.583 +    "\5\0\1\16\5\0\27\16\15\0\2\16\1\72\1\u01ea"+
  67.584 +    "\5\0\1\16\5\0\27\16\15\0\2\u0185\1\u010c\1\u0185"+
  67.585 +    "\3\0\2\u010d\6\0\2\u0185\4\0\1\u0185\3\0\1\u0185"+
  67.586 +    "\31\0\1\u01eb\3\0\2\u01ec\55\0\2\16\1\72\1\16"+
  67.587 +    "\5\0\1\16\5\0\11\16\1\u01ed\15\16\34\0\1\u01ee"+
  67.588 +    "\64\0\1\u01ef\42\0\1\u01f0\61\0\2\16\1\72\1\16"+
  67.589 +    "\5\0\1\16\5\0\4\16\1\u01f1\22\16\40\0\1\u01c1"+
  67.590 +    "\61\0\1\u012b\67\0\1\u01f2\55\0\1\u01f3\72\0\1\u01f4"+
  67.591 +    "\62\0\1\u01f5\55\0\1\u01f4\40\0\1\u01f6\61\0\1\u01f7"+
  67.592 +    "\101\0\1\u01f8\71\0\1\u01f9\63\0\1\u01fa\61\0\1\u01fb"+
  67.593 +    "\57\0\1\u01fc\37\0\1\u01fd\77\0\1\u01fe\62\0\1\u01ff"+
  67.594 +    "\46\0\1\u012b\24\0\1\u0200\35\0\1\u0201\106\0\1\u011f"+
  67.595 +    "\63\0\1\u0200\35\0\1\u0191\13\0\1\u0202\45\0\1\u0203"+
  67.596 +    "\103\0\1\u0204\60\0\1\u0205\65\0\1\u012b\66\0\1\u0206"+
  67.597 +    "\55\0\1\u0207\61\0\1\u0208\70\0\1\u0209\55\0\1\u01c0"+
  67.598 +    "\42\0\1\u0195\61\0\1\u020a\103\0\1\u020b\62\0\1\u012b"+
  67.599 +    "\56\0\1\u011f\65\0\1\u020c\63\0\1\u020d\56\0\1\u020e"+
  67.600 +    "\46\0\1\u020f\107\0\1\u0210\62\0\1\u0211\56\0\1\u0212"+
  67.601 +    "\65\0\1\u0213\62\0\1\u0214\36\0\1\u012b\61\0\1\u0215"+
  67.602 +    "\121\0\1\u011f\51\0\1\u0216\32\0\2\16\1\72\1\16"+
  67.603 +    "\5\0\1\16\5\0\1\u0217\26\16\15\0\2\16\1\72"+
  67.604 +    "\1\16\5\0\1\16\5\0\5\16\1\u0218\21\16\15\0"+
  67.605 +    "\2\16\1\72\1\16\5\0\1\16\5\0\4\16\1\u0219"+
  67.606 +    "\22\16\15\0\2\16\1\72\1\u021a\5\0\1\16\5\0"+
  67.607 +    "\27\16\15\0\2\16\1\72\1\16\5\0\1\16\5\0"+
  67.608 +    "\1\u021b\26\16\15\0\2\16\1\72\1\16\5\0\1\16"+
  67.609 +    "\5\0\5\16\1\u021c\21\16\15\0\2\16\1\72\1\16"+
  67.610 +    "\5\0\1\16\5\0\11\16\1\u021d\15\16\15\0\2\16"+
  67.611 +    "\1\72\1\16\5\0\1\16\5\0\13\16\1\u021e\13\16"+
  67.612 +    "\15\0\2\16\1\72\1\16\5\0\1\16\5\0\12\16"+
  67.613 +    "\1\u021f\14\16\15\0\2\16\1\72\1\u0220\5\0\1\16"+
  67.614 +    "\5\0\27\16\15\0\2\16\1\72\1\16\5\0\1\16"+
  67.615 +    "\5\0\5\16\1\u0221\21\16\15\0\2\16\1\72\1\16"+
  67.616 +    "\5\0\1\16\5\0\17\16\1\u0222\7\16\15\0\2\16"+
  67.617 +    "\1\72\1\16\5\0\1\16\5\0\13\16\1\u0223\13\16"+
  67.618 +    "\15\0\2\16\1\72\1\16\5\0\1\16\5\0\12\16"+
  67.619 +    "\1\u0224\14\16\15\0\2\16\1\72\1\16\5\0\1\16"+
  67.620 +    "\5\0\1\u0225\26\16\15\0\2\16\1\72\1\16\5\0"+
  67.621 +    "\1\16\5\0\4\16\1\u0226\22\16\15\0\2\16\1\72"+
  67.622 +    "\1\16\5\0\1\16\5\0\3\16\1\u0227\23\16\15\0"+
  67.623 +    "\2\16\1\72\1\16\5\0\1\16\5\0\7\16\1\u0228"+
  67.624 +    "\17\16\15\0\2\16\1\72\1\16\5\0\1\16\5\0"+
  67.625 +    "\1\u0229\26\16\15\0\2\16\1\72\1\16\5\0\1\16"+
  67.626 +    "\5\0\6\16\1\u022a\20\16\15\0\2\16\1\72\1\16"+
  67.627 +    "\5\0\1\16\5\0\15\16\1\u022b\11\16\15\0\2\16"+
  67.628 +    "\1\72\1\16\5\0\1\16\5\0\1\u022c\26\16\15\0"+
  67.629 +    "\2\16\1\72\1\16\5\0\1\16\5\0\6\16\1\u022d"+
  67.630 +    "\20\16\15\0\2\16\1\72\1\16\5\0\1\16\5\0"+
  67.631 +    "\12\16\1\u022e\14\16\15\0\2\16\1\72\1\16\5\0"+
  67.632 +    "\1\16\5\0\4\16\1\u022f\22\16\15\0\2\16\1\72"+
  67.633 +    "\1\u0230\5\0\1\16\5\0\27\16\15\0\1\16\1\u0231"+
  67.634 +    "\1\72\1\16\5\0\1\16\5\0\27\16\15\0\2\16"+
  67.635 +    "\1\72\1\u0232\5\0\1\16\5\0\27\16\15\0\2\16"+
  67.636 +    "\1\72\1\16\5\0\1\16\5\0\3\16\1\u0233\23\16"+
  67.637 +    "\15\0\2\16\1\72\1\16\5\0\1\16\5\0\5\16"+
  67.638 +    "\1\u0234\21\16\15\0\2\16\1\72\1\16\5\0\1\16"+
  67.639 +    "\5\0\11\16\1\u0235\15\16\15\0\2\16\1\0\1\16"+
  67.640 +    "\5\0\1\16\5\0\6\16\1\u0236\20\16\15\0\1\u01eb"+
  67.641 +    "\1\0\1\u01ec\60\0\1\u01eb\62\0\2\16\1\72\1\16"+
  67.642 +    "\5\0\1\16\5\0\2\16\1\u0237\24\16\41\0\1\u0238"+
  67.643 +    "\57\0\1\u0239\41\0\2\16\1\72\1\16\5\0\1\16"+
  67.644 +    "\5\0\11\16\1\u023a\15\16\36\0\1\u023b\73\0\1\u023c"+
  67.645 +    "\33\0\1\u023d\116\0\1\u01f4\47\0\1\u020d\100\0\1\u023e"+
  67.646 +    "\42\0\1\u023f\72\0\1\u023f\62\0\1\u0240\47\0\1\u0190"+
  67.647 +    "\44\0\1\u0241\1\0\1\u0242\20\0\1\u0243\2\0\1\u0244"+
  67.648 +    "\67\0\1\u0245\65\0\1\u0246\55\0\1\264\61\0\1\u0247"+
  67.649 +    "\51\0\1\u0248\66\0\1\u0249\60\0\1\u024a\64\0\1\u01be"+
  67.650 +    "\5\0\1\u024b\53\0\1\u024c\67\0\1\u024d\62\0\1\u024e"+
  67.651 +    "\64\0\1\u024f\50\0\1\u0250\72\0\1\u0251\71\0\1\u012b"+
  67.652 +    "\47\0\1\u011f\62\0\1\u0252\63\0\1\u0253\67\0\1\u0254"+
  67.653 +    "\54\0\1\u0255\66\0\1\u0256\34\0\1\u0257\116\0\1\u01aa"+
  67.654 +    "\54\0\1\u0258\7\0\1\u0259\1\0\1\u025a\41\0\1\315"+
  67.655 +    "\41\0\2\16\1\72\1\16\5\0\1\16\5\0\6\16"+
  67.656 +    "\1\u025b\20\16\15\0\2\16\1\72\1\16\5\0\1\16"+
  67.657 +    "\5\0\12\16\1\u025c\14\16\15\0\2\16\1\72\1\16"+
  67.658 +    "\5\0\1\16\5\0\13\16\1\u025d\13\16\15\0\2\16"+
  67.659 +    "\1\72\1\16\5\0\1\16\5\0\12\16\1\u025e\14\16"+
  67.660 +    "\15\0\2\16\1\72\1\16\5\0\1\16\5\0\5\16"+
  67.661 +    "\1\u025f\21\16\15\0\2\16\1\72\1\u0260\5\0\1\16"+
  67.662 +    "\5\0\27\16\15\0\2\16\1\72\1\u0261\5\0\1\16"+
  67.663 +    "\5\0\27\16\15\0\2\16\1\72\1\16\5\0\1\16"+
  67.664 +    "\5\0\1\u0262\26\16\15\0\2\16\1\72\1\16\5\0"+
  67.665 +    "\1\16\5\0\4\16\1\u0263\22\16\15\0\2\16\1\72"+
  67.666 +    "\1\16\5\0\1\16\5\0\2\16\1\u0264\24\16\15\0"+
  67.667 +    "\2\16\1\72\1\u0265\5\0\1\16\5\0\27\16\15\0"+
  67.668 +    "\2\16\1\72\1\16\5\0\1\16\5\0\13\16\1\u0266"+
  67.669 +    "\13\16\15\0\2\16\1\72\1\16\5\0\1\16\5\0"+
  67.670 +    "\4\16\1\u0267\22\16\15\0\2\16\1\72\1\u0268\5\0"+
  67.671 +    "\1\16\5\0\27\16\15\0\2\16\1\72\1\16\5\0"+
  67.672 +    "\1\16\5\0\4\16\1\u0269\22\16\15\0\2\16\1\72"+
  67.673 +    "\1\16\5\0\1\16\5\0\17\16\1\u026a\7\16\15\0"+
  67.674 +    "\2\16\1\72\1\u026b\5\0\1\16\5\0\27\16\15\0"+
  67.675 +    "\2\16\1\72\1\16\5\0\1\16\5\0\12\16\1\u026c"+
  67.676 +    "\14\16\15\0\2\16\1\72\1\16\5\0\1\16\5\0"+
  67.677 +    "\1\u026d\26\16\15\0\2\16\1\72\1\16\5\0\1\16"+
  67.678 +    "\5\0\3\16\1\u026e\23\16\15\0\2\16\1\72\1\u026f"+
  67.679 +    "\5\0\1\16\5\0\27\16\15\0\2\16\1\72\1\16"+
  67.680 +    "\5\0\1\16\5\0\6\16\1\u0270\20\16\15\0\2\16"+
  67.681 +    "\1\72\1\16\5\0\1\16\5\0\22\16\1\u0271\4\16"+
  67.682 +    "\15\0\2\16\1\72\1\16\5\0\1\16\5\0\13\16"+
  67.683 +    "\1\u0272\13\16\20\0\1\u0273\105\0\1\u0274\34\0\2\16"+
  67.684 +    "\1\72\1\16\5\0\1\16\5\0\2\16\1\u0275\24\16"+
  67.685 +    "\47\0\1\u0195\47\0\1\u0276\75\0\1\u01b3\33\0\1\320"+
  67.686 +    "\110\0\1\u0277\50\0\1\u0278\73\0\1\u0279\71\0\1\247"+
  67.687 +    "\62\0\1\u027a\42\0\1\u027b\46\0\1\u027c\61\0\1\u027d"+
  67.688 +    "\62\0\1\u027e\107\0\1\u0117\63\0\1\u027f\51\0\1\u0280"+
  67.689 +    "\46\0\1\u0281\107\0\1\u0282\53\0\1\u0283\64\0\1\u0284"+
  67.690 +    "\73\0\1\u0285\56\0\1\250\55\0\1\u0286\42\0\1\u0287"+
  67.691 +    "\122\0\1\u0288\22\0\1\u0289\103\0\1\u028a\103\0\1\u028b"+
  67.692 +    "\20\0\1\u028c\20\0\1\u028d\12\0\1\u028e\62\0\1\u028f"+
  67.693 +    "\53\0\1\u0290\51\0\1\u0291\43\0\2\16\1\72\1\16"+
  67.694 +    "\5\0\1\16\5\0\4\16\1\u0292\22\16\15\0\2\16"+
  67.695 +    "\1\72\1\16\5\0\1\16\5\0\11\16\1\u0293\15\16"+
  67.696 +    "\15\0\2\16\1\72\1\16\5\0\1\16\5\0\4\16"+
  67.697 +    "\1\u0294\22\16\15\0\2\16\1\72\1\u0295\5\0\1\16"+
  67.698 +    "\5\0\27\16\15\0\2\16\1\72\1\16\5\0\1\16"+
  67.699 +    "\5\0\13\16\1\u0296\13\16\15\0\2\16\1\72\1\16"+
  67.700 +    "\5\0\1\16\5\0\4\16\1\u0297\22\16\15\0\2\16"+
  67.701 +    "\1\72\1\u0298\5\0\1\16\5\0\27\16\15\0\2\16"+
  67.702 +    "\1\72\1\u0299\5\0\1\16\5\0\27\16\15\0\2\16"+
  67.703 +    "\1\72\1\16\5\0\1\16\5\0\3\16\1\u029a\23\16"+
  67.704 +    "\15\0\2\16\1\72\1\16\5\0\1\16\5\0\6\16"+
  67.705 +    "\1\u029b\20\16\15\0\2\16\1\72\1\16\5\0\1\16"+
  67.706 +    "\5\0\1\u029c\26\16\15\0\2\16\1\72\1\16\5\0"+
  67.707 +    "\1\16\5\0\13\16\1\u029d\13\16\44\0\1\u029e\36\0"+
  67.708 +    "\1\u0191\102\0\1\u029f\61\0\1\u02a0\57\0\1\u02a1\65\0"+
  67.709 +    "\1\u0141\1\0\1\u01b3\40\0\1\u02a2\104\0\1\u02a3\103\0"+
  67.710 +    "\1\u02a4\51\0\1\315\56\0\1\u02a5\64\0\1\u02a6\51\0"+
  67.711 +    "\1\u02a7\73\0\1\u011f\63\0\1\u02a8\31\0\1\u02a9\113\0"+
  67.712 +    "\1\u012b\60\0\1\u02aa\34\0\1\u02ab\61\0\1\u02ac\77\0"+
  67.713 +    "\1\u0195\46\0\1\u02ad\105\0\1\u02ae\10\0\1\u02af\62\0"+
  67.714 +    "\1\u02b0\42\0\1\u02b1\62\0\1\u02b2\74\0\1\u02b3\60\0"+
  67.715 +    "\1\u02b4\33\0\2\16\1\72\1\16\5\0\1\16\5\0"+
  67.716 +    "\13\16\1\u02b5\13\16\15\0\2\16\1\72\1\u02b6\5\0"+
  67.717 +    "\1\16\5\0\27\16\15\0\2\16\1\72\1\16\5\0"+
  67.718 +    "\1\16\5\0\11\16\1\u02b7\15\16\15\0\2\16\1\72"+
  67.719 +    "\1\16\5\0\1\16\5\0\3\16\1\u02b8\23\16\15\0"+
  67.720 +    "\2\16\1\72\1\16\5\0\1\16\5\0\12\16\1\u02b9"+
  67.721 +    "\14\16\15\0\2\16\1\72\1\u02ba\5\0\1\16\5\0"+
  67.722 +    "\27\16\15\0\2\16\1\72\1\u02bb\5\0\1\16\5\0"+
  67.723 +    "\27\16\15\0\2\16\1\72\1\16\5\0\1\16\5\0"+
  67.724 +    "\3\16\1\u02bc\23\16\17\0\1\u02bd\63\0\1\u013d\103\0"+
  67.725 +    "\1\u01b3\65\0\1\u02be\57\0\1\u02bf\1\0\1\u02c0\64\0"+
  67.726 +    "\1\u02c1\35\0\1\u02c2\111\0\1\u029f\53\0\1\u02c3\71\0"+
  67.727 +    "\1\u02c4\56\0\1\u02c5\36\0\1\u02c6\111\0\1\u02c7\34\0"+
  67.728 +    "\1\u02c8\15\0\1\u02c9\1\u02ca\14\0\1\u02cb\25\0\1\u02cc"+
  67.729 +    "\104\0\1\u02cd\66\0\1\315\51\0\1\u02ce\75\0\1\u02cf"+
  67.730 +    "\64\0\1\u01be\31\0\1\u02d0\17\0\1\u02d1\75\0\1\u01be"+
  67.731 +    "\24\0\2\16\1\72\1\16\5\0\1\16\5\0\15\16"+
  67.732 +    "\1\u02d2\11\16\15\0\2\16\1\72\1\16\5\0\1\16"+
  67.733 +    "\5\0\26\16\1\u02d3\15\0\2\16\1\72\1\16\5\0"+
  67.734 +    "\1\16\5\0\1\u02d4\26\16\40\0\1\u02d5\66\0\1\u0195"+
  67.735 +    "\63\0\1\u02d6\53\0\1\u02d7\106\0\1\u02d8\37\0\1\u02d9"+
  67.736 +    "\42\0\1\u02da\62\0\1\u02db\77\0\1\u02dc\65\0\1\u02dd"+
  67.737 +    "\42\0\1\u02de\117\0\1\u02df\65\0\1\u02e0\37\0\1\u02e1"+
  67.738 +    "\1\0\1\u02e2\60\0\1\u02e3\73\0\1\u02e4\62\0\1\u02e5"+
  67.739 +    "\61\0\1\u02e6\56\0\1\u02e7\41\0\1\u02e8\121\0\1\u012b"+
  67.740 +    "\21\0\2\16\1\72\1\u02e9\5\0\1\16\5\0\27\16"+
  67.741 +    "\15\0\2\16\1\72\1\16\5\0\1\16\5\0\6\16"+
  67.742 +    "\1\u02ea\20\16\34\0\1\264\110\0\1\u0117\36\0\1\u02e6"+
  67.743 +    "\44\0\1\u02a8\100\0\1\u01aa\65\0\1\u02eb\66\0\1\u0126"+
  67.744 +    "\54\0\1\u01b3\61\0\1\u02ec\60\0\1\u02ed\62\0\1\u02ee"+
  67.745 +    "\10\0\1\u0283\35\0\1\u02ef\110\0\1\u02f0\67\0\1\u02f1"+
  67.746 +    "\56\0\1\u02f2\62\0\1\u02f3\57\0\1\u0216\62\0\1\u012b"+
  67.747 +    "\63\0\1\u02f4\62\0\1\u02f5\7\0\1\u02f6\1\0\1\u02f7"+
  67.748 +    "\20\0\2\16\1\72\1\16\5\0\1\16\5\0\12\16"+
  67.749 +    "\1\u02f8\14\16\15\0\2\16\1\72\1\16\5\0\1\16"+
  67.750 +    "\5\0\4\16\1\u02f9\22\16\45\0\1\u02fa\70\0\1\u02fb"+
  67.751 +    "\51\0\1\251\72\0\1\u011f\47\0\1\u02fc\70\0\1\u02ee"+
  67.752 +    "\64\0\1\u02fd\53\0\1\u02fe\41\0\1\u02ff\104\0\1\u0300"+
  67.753 +    "\75\0\1\u0301\53\0\1\u0302\51\0\1\u0303\43\0\2\16"+
  67.754 +    "\1\72\1\u0304\5\0\1\16\5\0\27\16\62\0\1\u01be"+
  67.755 +    "\47\0\1\u0305\31\0\1\u0306\112\0\1\u0307\61\0\1\u0308"+
  67.756 +    "\56\0\1\u0309\62\0\1\u030a\55\0\1\u030b\74\0\1\u030c"+
  67.757 +    "\60\0\1\u030d\33\0\2\16\1\72\1\16\5\0\1\16"+
  67.758 +    "\5\0\3\16\1\u030e\23\16\46\0\1\u01a5\60\0\1\u030f"+
  67.759 +    "\57\0\1\u011f\3\0\1\u0310\56\0\1\u0311\61\0\1\u0312"+
  67.760 +    "\56\0\1\u012b\77\0\1\u02d8\51\0\1\u0313\75\0\1\u02d8"+
  67.761 +    "\45\0\1\u0314\73\0\1\u0315\54\0\1\u01b4\57\0\1\u0316"+
  67.762 +    "\102\0\1\u02a8\61\0\1\u020d\56\0\1\u02a8\50\0\1\u0317"+
  67.763 +    "\57\0\1\u0318\77\0\1\u0319\31\0\1\u031a\61\0\1\u031b"+
  67.764 +    "\63\0\1\u031c\106\0\1\u031d\36\0\1\u031e\116\0\1\u031f"+
  67.765 +    "\26\0\1\u0320\111\0\1\u0321\53\0\1\u01aa\36\0";
  67.766 +
  67.767 +  private static int [] zzUnpackTrans() {
  67.768 +    int [] result = new int[35241];
  67.769 +    int offset = 0;
  67.770 +    offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
  67.771 +    return result;
  67.772 +  }
  67.773 +
  67.774 +  private static int zzUnpackTrans(String packed, int offset, int [] result) {
  67.775 +    int i = 0;       /* index in packed string  */
  67.776 +    int j = offset;  /* index in unpacked array */
  67.777 +    int l = packed.length();
  67.778 +    while (i < l) {
  67.779 +      int count = packed.charAt(i++);
  67.780 +      int value = packed.charAt(i++);
  67.781 +      value--;
  67.782 +      do result[j++] = value; while (--count > 0);
  67.783 +    }
  67.784 +    return j;
  67.785 +  }
  67.786 +
  67.787 +
  67.788 +  /* error codes */
  67.789 +  private static final int ZZ_UNKNOWN_ERROR = 0;
  67.790 +  private static final int ZZ_NO_MATCH = 1;
  67.791 +  private static final int ZZ_PUSHBACK_2BIG = 2;
  67.792 +
  67.793 +  /* error messages for the codes above */
  67.794 +  private static final String ZZ_ERROR_MSG[] = {
  67.795 +    "Unkown internal scanner error",
  67.796 +    "Error: could not match input",
  67.797 +    "Error: pushback value was too large"
  67.798 +  };
  67.799 +
  67.800 +  /**
  67.801 +   * ZZ_ATTRIBUTE[aState] contains the attributes of state <code>aState</code>
  67.802 +   */
  67.803 +  private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute();
  67.804 +
  67.805 +  private static final String ZZ_ATTRIBUTE_PACKED_0 =
  67.806 +    "\2\0\1\10\2\0\1\11\3\1\1\11\30\1\3\11"+
  67.807 +    "\1\1\1\11\1\1\1\11\3\1\2\11\3\1\1\11"+
  67.808 +    "\1\1\1\11\1\1\5\0\7\1\3\11\1\0\1\1"+
  67.809 +    "\22\0\60\1\10\11\1\0\1\11\1\1\1\0\1\1"+
  67.810 +    "\1\0\11\1\1\11\61\0\72\1\1\0\7\1\1\0"+
  67.811 +    "\2\1\10\0\1\11\13\0\1\11\20\0\1\1\17\0"+
  67.812 +    "\1\1\4\0\64\1\2\0\5\1\3\0\1\1\5\0"+
  67.813 +    "\1\11\33\0\1\1\20\0\47\1\1\0\2\1\1\0"+
  67.814 +    "\1\1\2\0\1\11\1\1\10\0\1\1\30\0\1\1"+
  67.815 +    "\3\0\41\1\2\0\1\1\40\0\30\1\2\11\1\1"+
  67.816 +    "\23\0\1\1\10\0\14\1\12\0\1\11\14\0\10\1"+
  67.817 +    "\25\0\3\1\24\0\2\1\15\0\2\1\12\0\1\1"+
  67.818 +    "\11\0\1\1\23\0";
  67.819 +
  67.820 +  private static int [] zzUnpackAttribute() {
  67.821 +    int [] result = new int[801];
  67.822 +    int offset = 0;
  67.823 +    offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
  67.824 +    return result;
  67.825 +  }
  67.826 +
  67.827 +  private static int zzUnpackAttribute(String packed, int offset, int [] result) {
  67.828 +    int i = 0;       /* index in packed string  */
  67.829 +    int j = offset;  /* index in unpacked array */
  67.830 +    int l = packed.length();
  67.831 +    while (i < l) {
  67.832 +      int count = packed.charAt(i++);
  67.833 +      int value = packed.charAt(i++);
  67.834 +      do result[j++] = value; while (--count > 0);
  67.835 +    }
  67.836 +    return j;
  67.837 +  }
  67.838 +
  67.839 +  /** the input device */
  67.840 +  private java.io.Reader zzReader;
  67.841 +
  67.842 +  /** the current state of the DFA */
  67.843 +  private int zzState;
  67.844 +
  67.845 +  /** the current lexical state */
  67.846 +  private int zzLexicalState = YYINITIAL;
  67.847 +
  67.848 +  /** this buffer contains the current text to be matched and is
  67.849 +      the source of the yytext() string */
  67.850 +  private char zzBuffer[] = new char[ZZ_BUFFERSIZE];
  67.851 +
  67.852 +  /** the textposition at the last accepting state */
  67.853 +  private int zzMarkedPos;
  67.854 +
  67.855 +  /** the textposition at the last state to be included in yytext */
  67.856 +  private int zzPushbackPos;
  67.857 +
  67.858 +  /** the current text position in the buffer */
  67.859 +  private int zzCurrentPos;
  67.860 +
  67.861 +  /** startRead marks the beginning of the yytext() string in the buffer */
  67.862 +  private int zzStartRead;
  67.863 +
  67.864 +  /** endRead marks the last character in the buffer, that has been read
  67.865 +      from input */
  67.866 +  private int zzEndRead;
  67.867 +
  67.868 +  /** number of newlines encountered up to the start of the matched text */
  67.869 +  private int yyline;
  67.870 +
  67.871 +  /** the number of characters up to the start of the matched text */
  67.872 +  private int yychar;
  67.873 +
  67.874 +  /**
  67.875 +   * the number of characters from the last newline up to the start of the 
  67.876 +   * matched text
  67.877 +   */
  67.878 +  private int yycolumn;
  67.879 +
  67.880 +  /** 
  67.881 +   * zzAtBOL == true <=> the scanner is currently at the beginning of a line
  67.882 +   */
  67.883 +  private boolean zzAtBOL = true;
  67.884 +
  67.885 +  /** zzAtEOF == true <=> the scanner is at the EOF */
  67.886 +  private boolean zzAtEOF = false;
  67.887 +
  67.888 +  /* user code: */
  67.889 +
  67.890 +    private StateStack stack = new StateStack();
  67.891 +
  67.892 +    private AdaLanguageOptions.AdaVersion adaVersion = AdaLanguageOptions.AdaVersion.ADA_95;
  67.893 +
  67.894 +    private LexerInput input;
  67.895 +    
  67.896 +    public AdaSyntaxLexer(LexerRestartInfo info, AdaLanguageOptions.AdaVersion adaVersion) {
  67.897 +        this.input = info.input();
  67.898 +        this.adaVersion = adaVersion;
  67.899 +
  67.900 +        if(info.state() != null) {
  67.901 +            //reset state
  67.902 +            setState((LexerState)info.state());
  67.903 +        } else {
  67.904 +            //initial state
  67.905 +            zzState = zzLexicalState = YYINITIAL;
  67.906 +            stack.clear();
  67.907 +        }
  67.908 +
  67.909 +    }
  67.910 +
  67.911 +    public static final class LexerState  {
  67.912 +        final StateStack stack;
  67.913 +        /** the current state of the DFA */
  67.914 +        final int zzState;
  67.915 +        /** the current lexical state */
  67.916 +        final int zzLexicalState;
  67.917 +        final AdaLanguageOptions.AdaVersion adaVersion;
  67.918 +
  67.919 +        LexerState (StateStack stack, int zzState, int zzLexicalState, AdaLanguageOptions.AdaVersion adaVersion) {
  67.920 +            this.stack = stack;
  67.921 +            this.zzState = zzState;
  67.922 +            this.zzLexicalState = zzLexicalState;
  67.923 +            this.adaVersion = adaVersion;
  67.924 +        }
  67.925 +
  67.926 +        @Override
  67.927 +        public boolean equals(Object obj) {
  67.928 +            if (this == obj) {
  67.929 +                    return true;
  67.930 +            }
  67.931 +
  67.932 +            if (obj == null || obj.getClass() != this.getClass()) {
  67.933 +                    return false;
  67.934 +            }
  67.935 +
  67.936 +            LexerState state = (LexerState) obj;
  67.937 +            return (this.stack.equals(state.stack)
  67.938 +                && (this.zzState == state.zzState)
  67.939 +                && (this.adaVersion == state.adaVersion)
  67.940 +                && (this.zzLexicalState == state.zzLexicalState));
  67.941 +        }
  67.942 +
  67.943 +        @Override
  67.944 +        public int hashCode() {
  67.945 +            int hash = 11;
  67.946 +            hash = 31 * hash + this.zzState;
  67.947 +            hash = 31 * hash + this.zzLexicalState;
  67.948 +            hash = 31 * hash + this.stack.hashCode();
  67.949 +            return hash;
  67.950 +        }
  67.951 +    }
  67.952 +        
  67.953 +    public LexerState getState() {
  67.954 +        return new LexerState(stack.createClone(), zzState, zzLexicalState, adaVersion);
  67.955 +    }
  67.956 +
  67.957 +    public void setState(LexerState state) {
  67.958 +        this.stack.copyFrom(state.stack);
  67.959 +        this.zzState = state.zzState;
  67.960 +        this.zzLexicalState = state.zzLexicalState;
  67.961 +        this.adaVersion = state.adaVersion;
  67.962 +    }
  67.963 +    
  67.964 +    public int[] getParamenters(){
  67.965 +    	return new int[]{zzMarkedPos, zzPushbackPos, zzCurrentPos, zzStartRead, zzEndRead, yyline, zzLexicalState};
  67.966 +    }
  67.967 +
  67.968 +    protected int getZZLexicalState() {
  67.969 +        return zzLexicalState;
  67.970 +    }
  67.971 +
  67.972 +    protected int getZZMarkedPos() {
  67.973 +        return zzMarkedPos;
  67.974 +    }
  67.975 +
  67.976 +    protected int getZZEndRead() {
  67.977 +        return zzEndRead;
  67.978 +    }
  67.979 +
  67.980 +    public char[] getZZBuffer() {
  67.981 +        return zzBuffer;
  67.982 +    }
  67.983 +    
  67.984 +    protected int getZZStartRead() {
  67.985 +    	return this.zzStartRead;
  67.986 +    }
  67.987 +
  67.988 +    protected int getZZPushBackPosition() {
  67.989 +    	return this.zzPushbackPos;
  67.990 +    }
  67.991 +
  67.992 +        protected void pushBack(int i) {
  67.993 +		yypushback(i);
  67.994 +	}
  67.995 +
  67.996 +        protected void popState() {
  67.997 +		yybegin(stack.popStack());
  67.998 +	}
  67.999 +
 67.1000 +	protected void pushState(final int state) {
 67.1001 +		stack.pushStack(getZZLexicalState());
 67.1002 +		yybegin(state);
 67.1003 +	}
 67.1004 +
 67.1005 +    
 67.1006 + // End user code
 67.1007 +
 67.1008 +
 67.1009 +
 67.1010 +  /**
 67.1011 +   * Creates a new scanner
 67.1012 +   * There is also a java.io.InputStream version of this constructor.
 67.1013 +   *
 67.1014 +   * @param   in  the java.io.Reader to read input from.
 67.1015 +   */
 67.1016 +  public AdaSyntaxLexer(java.io.Reader in) {
 67.1017 +    this.zzReader = in;
 67.1018 +  }
 67.1019 +
 67.1020 +  /**
 67.1021 +   * Creates a new scanner.
 67.1022 +   * There is also java.io.Reader version of this constructor.
 67.1023 +   *
 67.1024 +   * @param   in  the java.io.Inputstream to read input from.
 67.1025 +   */
 67.1026 +  public AdaSyntaxLexer(java.io.InputStream in) {
 67.1027 +    this(new java.io.InputStreamReader(in));
 67.1028 +  }
 67.1029 +
 67.1030 +  /** 
 67.1031 +   * Unpacks the compressed character translation table.
 67.1032 +   *
 67.1033 +   * @param packed   the packed character translation table
 67.1034 +   * @return         the unpacked character translation table
 67.1035 +   */
 67.1036 +  private static char [] zzUnpackCMap(String packed) {
 67.1037 +    char [] map = new char[0x10000];
 67.1038 +    int i = 0;  /* index in packed string  */
 67.1039 +    int j = 0;  /* index in unpacked array */
 67.1040 +    while (i < 172) {
 67.1041 +      int  count = packed.charAt(i++);
 67.1042 +      char value = packed.charAt(i++);
 67.1043 +      do map[j++] = value; while (--count > 0);
 67.1044 +    }
 67.1045 +    return map;
 67.1046 +  }
 67.1047 +
 67.1048 +
 67.1049 +    
 67.1050 +  /**
 67.1051 +   * Closes the input stream.
 67.1052 +   */
 67.1053 +  public final void yyclose() throws java.io.IOException {
 67.1054 +    zzAtEOF = true;            /* indicate end of file */
 67.1055 +    zzEndRead = zzStartRead;  /* invalidate buffer    */
 67.1056 +
 67.1057 +    if (zzReader != null)
 67.1058 +      zzReader.close();
 67.1059 +  }
 67.1060 +
 67.1061 +
 67.1062 +  /**
 67.1063 +   * Resets the scanner to read from a new input stream.
 67.1064 +   * Does not close the old reader.
 67.1065 +   *
 67.1066 +   * All internal variables are reset, the old input stream 
 67.1067 +   * <b>cannot</b> be reused (internal buffer is discarded and lost).
 67.1068 +   * Lexical state is set to <tt>ZZ_INITIAL</tt>.
 67.1069 +   *
 67.1070 +   * @param reader   the new input stream 
 67.1071 +   */
 67.1072 +  public final void yyreset(java.io.Reader reader) {
 67.1073 +    zzReader = reader;
 67.1074 +    zzAtBOL  = true;
 67.1075 +    zzAtEOF  = false;
 67.1076 +    zzEndRead = zzStartRead = 0;
 67.1077 +    zzCurrentPos = zzMarkedPos = zzPushbackPos = 0;
 67.1078 +    yyline = yychar = yycolumn = 0;
 67.1079 +    zzLexicalState = YYINITIAL;
 67.1080 +  }
 67.1081 +
 67.1082 +
 67.1083 +  /**
 67.1084 +   * Returns the current lexical state.
 67.1085 +   */
 67.1086 +  public final int yystate() {
 67.1087 +    return zzLexicalState;
 67.1088 +  }
 67.1089 +
 67.1090 +
 67.1091 +  /**
 67.1092 +   * Enters a new lexical state
 67.1093 +   *
 67.1094 +   * @param newState the new lexical state
 67.1095 +   */
 67.1096 +  public final void yybegin(int newState) {
 67.1097 +    zzLexicalState = newState;
 67.1098 +  }
 67.1099 +
 67.1100 +
 67.1101 +  /**
 67.1102 +   * Returns the text matched by the current regular expression.
 67.1103 +   */
 67.1104 +  public final String yytext() {
 67.1105 +    return input.readText().toString();
 67.1106 +  }
 67.1107 +
 67.1108 +
 67.1109 +  /**
 67.1110 +   * Returns the character at position <tt>pos</tt> from the 
 67.1111 +   * matched text. 
 67.1112 +   * 
 67.1113 +   * It is equivalent to yytext().charAt(pos), but faster
 67.1114 +   *
 67.1115 +   * @param pos the position of the character to fetch. 
 67.1116 +   *            A value from 0 to yylength()-1.
 67.1117 +   *
 67.1118 +   * @return the character at position pos
 67.1119 +   */
 67.1120 +  public final char yycharat(int pos) {
 67.1121 +     return input.readText().charAt(pos);
 67.1122 +  }
 67.1123 +
 67.1124 +
 67.1125 +  /**
 67.1126 +   * Returns the length of the matched text region.
 67.1127 +   */
 67.1128 +  public final int yylength() {
 67.1129 +    return input.readLength();
 67.1130 +  }
 67.1131 +
 67.1132 +
 67.1133 +  /**
 67.1134 +   * Reports an error that occured while scanning.
 67.1135 +   *
 67.1136 +   * In a wellformed scanner (no or only correct usage of 
 67.1137 +   * yypushback(int) and a match-all fallback rule) this method 
 67.1138 +   * will only be called with things that "Can't Possibly Happen".
 67.1139 +   * If this method is called, something is seriously wrong
 67.1140 +   * (e.g. a JFlex bug producing a faulty scanner etc.).
 67.1141 +   *
 67.1142 +   * Usual syntax/scanner level error handling should be done
 67.1143 +   * in error fallback rules.
 67.1144 +   *
 67.1145 +   * @param   errorCode  the code of the errormessage to display
 67.1146 +   */
 67.1147 +  private void zzScanError(int errorCode) {
 67.1148 +    String message;
 67.1149 +    try {
 67.1150 +      message = ZZ_ERROR_MSG[errorCode];
 67.1151 +    }
 67.1152 +    catch (ArrayIndexOutOfBoundsException e) {
 67.1153 +      message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR];
 67.1154 +    }
 67.1155 +
 67.1156 +    throw new Error(message);
 67.1157 +  } 
 67.1158 +
 67.1159 +
 67.1160 +  /**
 67.1161 +   * Pushes the specified amount of characters back into the input stream.
 67.1162 +   *
 67.1163 +   * They will be read again by then next call of the scanning method
 67.1164 +   *
 67.1165 +   * @param number  the number of characters to be read again.
 67.1166 +   *                This number must not be greater than yylength()!
 67.1167 +   */
 67.1168 +  public void yypushback(int number)  {
 67.1169 +    if ( number > yylength() )
 67.1170 +      zzScanError(ZZ_PUSHBACK_2BIG);
 67.1171 +
 67.1172 +    input.backup(number);
 67.1173 +    //zzMarkedPos -= number;
 67.1174 +  }
 67.1175 +
 67.1176 +
 67.1177 +  /**
 67.1178 +   * Resumes scanning until the next regular expression is matched,
 67.1179 +   * the end of input is encountered or an I/O-Error occurs.
 67.1180 +   *
 67.1181 +   * @return      the next token
 67.1182 +   * @exception   java.io.IOException  if any I/O-Error occurs
 67.1183 +   */
 67.1184 +  public AdaTokenId nextToken() throws java.io.IOException {
 67.1185 +    int zzInput;
 67.1186 +    int zzAction;
 67.1187 +
 67.1188 +    // cached fields:
 67.1189 +    //int zzCurrentPosL;
 67.1190 +    //int zzMarkedPosL;
 67.1191 +    //int zzEndReadL = zzEndRead;
 67.1192 +    //char [] zzBufferL = zzBuffer;
 67.1193 +    char [] zzCMapL = ZZ_CMAP;
 67.1194 +
 67.1195 +    int [] zzTransL = ZZ_TRANS;
 67.1196 +    int [] zzRowMapL = ZZ_ROWMAP;
 67.1197 +    int [] zzAttrL = ZZ_ATTRIBUTE;
 67.1198 +
 67.1199 +    while (true) {
 67.1200 +      //zzMarkedPosL = zzMarkedPos;
 67.1201 +
 67.1202 +      zzAction = -1;
 67.1203 +
 67.1204 +      //zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL;
 67.1205 +      int tokenLength = 0;
 67.1206 +  
 67.1207 +      zzState = ZZ_LEXSTATE[zzLexicalState];
 67.1208 +
 67.1209 +
 67.1210 +      zzForAction: {
 67.1211 +        while (true) {
 67.1212 +            zzInput = input.read();
 67.1213 +            
 67.1214 +            if(zzInput == LexerInput.EOF) {
 67.1215 +                //end of input reached
 67.1216 +                zzInput = YYEOF;
 67.1217 +                break zzForAction;
 67.1218 +                //notice: currently LexerInput.EOF == YYEOF
 67.1219 +            }
 67.1220 +
 67.1221 +          int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMapL[zzInput] ];
 67.1222 +          if (zzNext == -1) break zzForAction;
 67.1223 +          zzState = zzNext;
 67.1224 +
 67.1225 +          int zzAttributes = zzAttrL[zzState];
 67.1226 +          if ( (zzAttributes & 1) == 1 ) {
 67.1227 +            zzAction = zzState;
 67.1228 +            tokenLength = input.readLength();
 67.1229 +            if ( (zzAttributes & 8) == 8 ) break zzForAction;
 67.1230 +          }
 67.1231 +
 67.1232 +        }
 67.1233 +      }
 67.1234 +
 67.1235 +      // store back cached position
 67.1236 +      if(zzInput != YYEOF) {
 67.1237 +         input.backup(input.readLength() - tokenLength);
 67.1238 +      }
 67.1239 +
 67.1240 +      switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {
 67.1241 +        case 49: 
 67.1242 +          { return AdaTokenId.CHAR_LITERAL;
 67.1243 +          }
 67.1244 +        case 129: break;
 67.1245 +        case 42: 
 67.1246 +          { return AdaTokenId.BOX;
 67.1247 +          }
 67.1248 +        case 130: break;
 67.1249 +        case 51: 
 67.1250 +          { return AdaTokenId.ALL;
 67.1251 +          }
 67.1252 +        case 131: break;
 67.1253 +        case 61: 
 67.1254 +          { return AdaTokenId.ELSE;
 67.1255 +          }
 67.1256 +        case 132: break;
 67.1257 +        case 75: 
 67.1258 +          { return AdaTokenId.WITH;
 67.1259 +          }
 67.1260 +        case 133: break;
 67.1261 +        case 128: 
 67.1262 +          { return AdaTokenId.WIDE_CHARACTER;
 67.1263 +          }
 67.1264 +        case 134: break;
 67.1265 +        case 13: 
 67.1266 +          { return AdaTokenId.STAR;
 67.1267 +          }
 67.1268 +        case 135: break;
 67.1269 +        case 82: 
 67.1270 +          { return AdaTokenId.ABORT;
 67.1271 +          }
 67.1272 +        case 136: break;
 67.1273 +        case 89: 
 67.1274 +          { if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
 67.1275 +            return AdaTokenId.UNTIL;
 67.1276 +        }
 67.1277 +        else {
 67.1278 +            return AdaTokenId.IDENTIFIER;
 67.1279 +        }
 67.1280 +          }
 67.1281 +        case 137: break;
 67.1282 +        case 113: 
 67.1283 +          { return AdaTokenId.FUNCTION;
 67.1284 +          }
 67.1285 +        case 138: break;
 67.1286 +        case 74: 
 67.1287 +          { return AdaTokenId.GOTO;
 67.1288 +          }
 67.1289 +        case 139: break;
 67.1290 +        case 69: 
 67.1291 +          { return AdaTokenId.THEN;
 67.1292 +          }
 67.1293 +        case 140: break;
 67.1294 +        case 47: 
 67.1295 +          { return AdaTokenId.FOR;
 67.1296 +          }
 67.1297 +        case 141: break;
 67.1298 +        case 8: 
 67.1299 +          { return  AdaTokenId.WHITESPACE;
 67.1300 +          }
 67.1301 +        case 142: break;
 67.1302 +        case 14: 
 67.1303 +          { return AdaTokenId.COMMA;
 67.1304 +          }
 67.1305 +        case 143: break;
 67.1306 +        case 71: 
 67.1307 +          { return AdaTokenId.CASE;
 67.1308 +          }
 67.1309 +        case 144: break;
 67.1310 +        case 72: 
 67.1311 +          { return AdaTokenId.LOOP;
 67.1312 +          }
 67.1313 +        case 145: break;
 67.1314 +        case 122: 
 67.1315 +          { return AdaTokenId.CHARACTER;
 67.1316 +          }
 67.1317 +        case 146: break;
 67.1318 +        case 91: 
 67.1319 +          { return AdaTokenId.END_IF;
 67.1320 +          }
 67.1321 +        case 147: break;
 67.1322 +        case 124: 
 67.1323 +          { return AdaTokenId.PROCEDURE;
 67.1324 +          }
 67.1325 +        case 148: break;
 67.1326 +        case 85: 
 67.1327 +          { return AdaTokenId.RAISE;
 67.1328 +          }
 67.1329 +        case 149: break;
 67.1330 +        case 120: 
 67.1331 +          { if (adaVersion == AdaLanguageOptions.AdaVersion.ADA_2005) {
 67.1332 +            return AdaTokenId.ATTRIBUTE;
 67.1333 +        }
 67.1334 +          }
 67.1335 +        case 150: break;
 67.1336 +        case 103: 
 67.1337 +          { return AdaTokenId.RENAMES;
 67.1338 +          }
 67.1339 +        case 151: break;
 67.1340 +        case 93: 
 67.1341 +          { return AdaTokenId.ACCEPT;
 67.1342 +          }
 67.1343 +        case 152: break;
 67.1344 +        case 118: 
 67.1345 +          { return AdaTokenId.CONSTANT;
 67.1346 +          }
 67.1347 +        case 153: break;
 67.1348 +        case 50: 
 67.1349 +          { return AdaTokenId.ABS;
 67.1350 +          }
 67.1351 +        case 154: break;
 67.1352 +        case 107: 
 67.1353 +          { return AdaTokenId.PACKAGE;
 67.1354 +          }
 67.1355 +        case 155: break;
 67.1356 +        case 119: 
 67.1357 +          { return AdaTokenId.EXCEPTION;
 67.1358 +          }
 67.1359 +        case 156: break;
 67.1360 +        case 62: 
 67.1361 +          { return AdaTokenId.EXIT;
 67.1362 +          }
 67.1363 +        case 157: break;
 67.1364 +        case 12: 
 67.1365 +          { return AdaTokenId.RPAREN;
 67.1366 +          }
 67.1367 +        case 158: break;
 67.1368 +        case 1: 
 67.1369 +          { yypushback(1);
 67.1370 +    pushState(ST_HIGHLIGHTING_ERROR);
 67.1371 +          }
 67.1372 +        case 159: break;
 67.1373 +        case 123: 
 67.1374 +          { if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
 67.1375 +            return AdaTokenId.PROTECTED;
 67.1376 +        }
 67.1377 +        else {
 67.1378 +            return AdaTokenId.IDENTIFIER;
 67.1379 +        }
 67.1380 +          }
 67.1381 +        case 160: break;
 67.1382 +        case 11: 
 67.1383 +          { return AdaTokenId.LPAREN;
 67.1384 +          }
 67.1385 +        case 161: break;
 67.1386 +        case 92: 
 67.1387 +          { return AdaTokenId.ACCESS;
 67.1388 +          }
 67.1389 +        case 162: break;
 67.1390 +        case 52: 
 67.1391 +          { return AdaTokenId.AND;
 67.1392 +          }
 67.1393 +        case 163: break;
 67.1394 +        case 96: 
 67.1395 +          { return AdaTokenId.RECORD;
 67.1396 +          }
 67.1397 +        case 164: break;
 67.1398 +        case 97: 
 67.1399 +          { if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
 67.1400 +            return AdaTokenId.TAGGED;
 67.1401 +        }
 67.1402 +        else {
 67.1403 +            return AdaTokenId.IDENTIFIER;
 67.1404 +        }
 67.1405 +          }
 67.1406 +        case 165: break;
 67.1407 +        case 6: 
 67.1408 +          { pushState(ST_LOOKING_FOR_PROPERTY);
 67.1409 +                      return AdaTokenId.DOT;
 67.1410 +          }
 67.1411 +        case 166: break;
 67.1412 +        case 67: 
 67.1413 +          { return AdaTokenId.TRUE;
 67.1414 +          }
 67.1415 +        case 167: break;
 67.1416 +        case 18: 
 67.1417 +          { return AdaTokenId.EQ;
 67.1418 +          }
 67.1419 +        case 168: break;
 67.1420 +        case 60: 
 67.1421 +          { return AdaTokenId.BASED_LITERAL;
 67.1422 +          }
 67.1423 +        case 169: break;
 67.1424 +        case 10: 
 67.1425 +          { return AdaTokenId.AMP;
 67.1426 +          }
 67.1427 +        case 170: break;
 67.1428 +        case 111: 
 67.1429 +          { return AdaTokenId.DECLARE;
 67.1430 +          }
 67.1431 +        case 171: break;
 67.1432 +        case 44: 
 67.1433 +          { return AdaTokenId.GTEQ;
 67.1434 +          }
 67.1435 +        case 172: break;
 67.1436 +        case 77: 
 67.1437 +          { return AdaTokenId.FALSE;
 67.1438 +          }
 67.1439 +        case 173: break;
 67.1440 +        case 48: 
 67.1441 +          { return AdaTokenId.END;
 67.1442 +          }
 67.1443 +        case 174: break;
 67.1444 +        case 99: 
 67.1445 +          { return AdaTokenId.PRAGMA;
 67.1446 +          }
 67.1447 +        case 175: break;
 67.1448 +        case 101: 
 67.1449 +          { if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
 67.1450 +            return AdaTokenId.ALIASED;
 67.1451 +        }
 67.1452 +        else {
 67.1453 +            return AdaTokenId.IDENTIFIER;
 67.1454 +        }
 67.1455 +          }
 67.1456 +        case 176: break;
 67.1457 +        case 41: 
 67.1458 +          { return AdaTokenId.LTEQ;
 67.1459 +          }
 67.1460 +        case 177: break;
 67.1461 +        case 28: 
 67.1462 +          { return AdaTokenId.DOT_DOT;
 67.1463 +          }
 67.1464 +        case 178: break;
 67.1465 +        case 20: 
 67.1466 +          { return AdaTokenId.BAR;
 67.1467 +          }
 67.1468 +        case 179: break;
 67.1469 +        case 70: 
 67.1470 +          { if (adaVersion == AdaLanguageOptions.AdaVersion.ADA_2012) {
 67.1471 +            return AdaTokenId.SOME;
 67.1472 +        }
 67.1473 +        else {
 67.1474 +            return AdaTokenId.IDENTIFIER;
 67.1475 +        }
 67.1476 +          }
 67.1477 +        case 180: break;
 67.1478 +        case 116: 
 67.1479 +          { if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
 67.1480 +            return AdaTokenId.ABSTRACT;
 67.1481 +        }
 67.1482 +        else {
 67.1483 +            return AdaTokenId.IDENTIFIER;
 67.1484 +        }
 67.1485 +          }
 67.1486 +        case 181: break;
 67.1487 +        case 58: 
 67.1488 +          { return AdaTokenId.USE;
 67.1489 +          }
 67.1490 +        case 182: break;
 67.1491 +        case 30: 
 67.1492 +          { return AdaTokenId.STRING_LITERAL;
 67.1493 +          }
 67.1494 +        case 183: break;
 67.1495 +        case 79: 
 67.1496 +          { return AdaTokenId.ELSIF;
 67.1497 +          }
 67.1498 +        case 184: break;
 67.1499 +        case 117: 
 67.1500 +          { return AdaTokenId.SEPARATE;
 67.1501 +          }
 67.1502 +        case 185: break;
 67.1503 +        case 94: 
 67.1504 +          { return AdaTokenId.OTHERS;
 67.1505 +          }
 67.1506 +        case 186: break;
 67.1507 +        case 2: 
 67.1508 +          { return AdaTokenId.DECIMAL_LITERAL;
 67.1509 +          }
 67.1510 +        case 187: break;
 67.1511 +        case 78: 
 67.1512 +          { return AdaTokenId.FLOAT;
 67.1513 +          }
 67.1514 +        case 188: break;
 67.1515 +        case 110: 
 67.1516 +          { return AdaTokenId.INTEGER;
 67.1517 +          }
 67.1518 +        case 189: break;
 67.1519 +        case 27: 
 67.1520 +          { pushState(ST_LINE_COMMENT);
 67.1521 +    return AdaTokenId.COMMENT;
 67.1522 +          }
 67.1523 +        case 190: break;
 67.1524 +        case 76: 
 67.1525 +          { return AdaTokenId.WHEN;
 67.1526 +          }
 67.1527 +        case 191: break;
 67.1528 +        case 54: 
 67.1529 +          { return AdaTokenId.REM;
 67.1530 +          }
 67.1531 +        case 192: break;
 67.1532 +        case 26: 
 67.1533 +          { popState();
 67.1534 +        return AdaTokenId.WHITESPACE;
 67.1535 +          }
 67.1536 +        case 193: break;
 67.1537 +        case 25: 
 67.1538 +          { return AdaTokenId.UNKNOWN_TOKEN;
 67.1539 +          }
 67.1540 +        case 194: break;
 67.1541 +        case 59: 
 67.1542 +          { return AdaTokenId.MOD;
 67.1543 +          }
 67.1544 +        case 195: break;
 67.1545 +        case 3: 
 67.1546 +          { return  AdaTokenId.IDENTIFIER;
 67.1547 +          }
 67.1548 +        case 196: break;
 67.1549 +        case 15: 
 67.1550 +          { return AdaTokenId.SLASH;
 67.1551 +          }
 67.1552 +        case 197: break;
 67.1553 +        case 57: 
 67.1554 +          { return AdaTokenId.XOR;
 67.1555 +          }
 67.1556 +        case 198: break;
 67.1557 +        case 19: 
 67.1558 +          { return AdaTokenId.LT;
 67.1559 +          }
 67.1560 +        case 199: break;
 67.1561 +        case 109: 
 67.1562 +          { return AdaTokenId.LIMITED;
 67.1563 +          }
 67.1564 +        case 200: break;
 67.1565 +        case 95: 
 67.1566 +          { return AdaTokenId.RETURN;
 67.1567 +          }
 67.1568 +        case 201: break;
 67.1569 +        case 16: 
 67.1570 +          { return AdaTokenId.SEMICOLON;
 67.1571 +          }
 67.1572 +        case 202: break;
 67.1573 +        case 87: 
 67.1574 +          { return AdaTokenId.DELAY;
 67.1575 +          }
 67.1576 +        case 203: break;
 67.1577 +        case 106: 
 67.1578 +          { return AdaTokenId.SUBTYPE;
 67.1579 +          }
 67.1580 +        case 204: break;
 67.1581 +        case 4: 
 67.1582 +          { return AdaTokenId.PLUS;
 67.1583 +          }
 67.1584 +        case 205: break;
 67.1585 +        case 68: 
 67.1586 +          { return AdaTokenId.TYPE;
 67.1587 +          }
 67.1588 +        case 206: break;
 67.1589 +        case 38: 
 67.1590 +          { return AdaTokenId.EXPON;
 67.1591 +          }
 67.1592 +        case 207: break;
 67.1593 +        case 108: 
 67.1594 +          { return AdaTokenId.PRIVATE;
 67.1595 +          }
 67.1596 +        case 208: break;
 67.1597 +        case 21: 
 67.1598 +          { yypushback(1);
 67.1599 +    popState();
 67.1600 +          }
 67.1601 +        case 209: break;
 67.1602 +        case 104: 
 67.1603 +          { return AdaTokenId.REVERSE;
 67.1604 +          }
 67.1605 +        case 210: break;
 67.1606 +        case 64: 
 67.1607 +          { if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
 67.1608 +            return AdaTokenId.ATTRIBUTE;
 67.1609 +        }
 67.1610 +          }
 67.1611 +        case 211: break;
 67.1612 +        case 73: 
 67.1613 +          { return AdaTokenId.NULL;
 67.1614 +          }
 67.1615 +        case 212: break;
 67.1616 +        case 9: 
 67.1617 +          { return AdaTokenId.TICK;
 67.1618 +          }
 67.1619 +        case 213: break;
 67.1620 +        case 24: 
 67.1621 +          { popState();
 67.1622 +    return AdaTokenId.COMMENT;
 67.1623 +          }
 67.1624 +        case 214: break;
 67.1625 +        case 37: 
 67.1626 +          { return AdaTokenId.DO;
 67.1627 +          }
 67.1628 +        case 215: break;
 67.1629 +        case 36: 
 67.1630 +          { return AdaTokenId.IN;
 67.1631 +          }
 67.1632 +        case 216: break;
 67.1633 +        case 5: 
 67.1634 +          { return AdaTokenId.MINUS;
 67.1635 +          }
 67.1636 +        case 217: break;
 67.1637 +        case 125: 
 67.1638 +          { if (adaVersion == AdaLanguageOptions.AdaVersion.ADA_2005 ||
 67.1639 +            adaVersion == AdaLanguageOptions.AdaVersion.ADA_2012) {
 67.1640 +            return AdaTokenId.INTERFACE;
 67.1641 +        }
 67.1642 +        else {
 67.1643 +            return AdaTokenId.IDENTIFIER;
 67.1644 +        }
 67.1645 +          }
 67.1646 +        case 218: break;
 67.1647 +        case 86: 
 67.1648 +          { return AdaTokenId.RANGE;
 67.1649 +          }
 67.1650 +        case 219: break;
 67.1651 +        case 22: 
 67.1652 +          { popState();
 67.1653 +    return AdaTokenId.IDENTIFIER;
 67.1654 +          }
 67.1655 +        case 220: break;
 67.1656 +        case 84: 
 67.1657 +          { return AdaTokenId.BEGIN;
 67.1658 +          }
 67.1659 +        case 221: break;
 67.1660 +        case 40: 
 67.1661 +          { return AdaTokenId.LTLT;
 67.1662 +          }
 67.1663 +        case 222: break;
 67.1664 +        case 23: 
 67.1665 +          { return AdaTokenId.DOT;
 67.1666 +          }
 67.1667 +        case 223: break;
 67.1668 +        case 81: 
 67.1669 +          { if (adaVersion == AdaLanguageOptions.AdaVersion.ADA_83) {
 67.1670 +            return AdaTokenId.ATTRIBUTE;
 67.1671 +        }
 67.1672 +          }
 67.1673 +        case 224: break;
 67.1674 +        case 43: 
 67.1675 +          { return AdaTokenId.ARROW;
 67.1676 +          }
 67.1677 +        case 225: break;
 67.1678 +        case 105: 
 67.1679 +          { if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
 67.1680 +            return AdaTokenId.REQUEUE;
 67.1681 +        }
 67.1682 +        else {
 67.1683 +            return AdaTokenId.IDENTIFIER;
 67.1684 +        }
 67.1685 +          }
 67.1686 +        case 226: break;
 67.1687 +        case 80: 
 67.1688 +          { return AdaTokenId.ENTRY;
 67.1689 +          }
 67.1690 +        case 227: break;
 67.1691 +        case 46: 
 67.1692 +          { popState();
 67.1693 +    return AdaTokenId.DOT_DOT;
 67.1694 +          }
 67.1695 +        case 228: break;
 67.1696 +        case 63: 
 67.1697 +          { return AdaTokenId.ATTRIBUTE;
 67.1698 +          }
 67.1699 +        case 229: break;
 67.1700 +        case 17: 
 67.1701 +          { return AdaTokenId.GT;
 67.1702 +          }
 67.1703 +        case 230: break;
 67.1704 +        case 102: 
 67.1705 +          { return AdaTokenId.BOOLEAN;
 67.1706 +          }
 67.1707 +        case 231: break;
 67.1708 +        case 32: 
 67.1709 +          { return AdaTokenId.OF;
 67.1710 +          }
 67.1711 +        case 232: break;
 67.1712 +        case 55: 
 67.1713 +          { return AdaTokenId.NEW;
 67.1714 +          }
 67.1715 +        case 233: break;
 67.1716 +        case 45: 
 67.1717 +          { return AdaTokenId.GTGT;
 67.1718 +          }
 67.1719 +        case 234: break;
 67.1720 +        case 53: 
 67.1721 +          { return AdaTokenId.OUT;
 67.1722 +          }
 67.1723 +        case 235: break;
 67.1724 +        case 33: 
 67.1725 +          { return AdaTokenId.OR;
 67.1726 +          }
 67.1727 +        case 236: break;
 67.1728 +        case 39: 
 67.1729 +          { return AdaTokenId.INEQ;
 67.1730 +          }
 67.1731 +        case 237: break;
 67.1732 +        case 126: 
 67.1733 +          { if (adaVersion == AdaLanguageOptions.AdaVersion.ADA_2005 ||
 67.1734 +            adaVersion == AdaLanguageOptions.AdaVersion.ADA_2012) {
 67.1735 +            return AdaTokenId.OVERRIDING;
 67.1736 +        }
 67.1737 +        else {
 67.1738 +            return AdaTokenId.IDENTIFIER;
 67.1739 +        }
 67.1740 +          }
 67.1741 +        case 238: break;
 67.1742 +        case 83: 
 67.1743 +          { return AdaTokenId.ARRAY;
 67.1744 +          }
 67.1745 +        case 239: break;
 67.1746 +        case 35: 
 67.1747 +          { return AdaTokenId.IS;
 67.1748 +          }
 67.1749 +        case 240: break;
 67.1750 +        case 90: 
 67.1751 +          { return AdaTokenId.WHILE;
 67.1752 +          }
 67.1753 +        case 241: break;
 67.1754 +        case 114: 
 67.1755 +          { return AdaTokenId.END_CASE;
 67.1756 +          }
 67.1757 +        case 242: break;
 67.1758 +        case 127: 
 67.1759 +          { if (adaVersion == AdaLanguageOptions.AdaVersion.ADA_2005 ||
 67.1760 +            adaVersion == AdaLanguageOptions.AdaVersion.ADA_2012) {
 67.1761 +            return AdaTokenId.SYNCHRONIZED;
 67.1762 +        }
 67.1763 +        else {
 67.1764 +            return AdaTokenId.IDENTIFIER;
 67.1765 +        }
 67.1766 +          }
 67.1767 +        case 243: break;
 67.1768 +        case 115: 
 67.1769 +          { return AdaTokenId.END_LOOP;
 67.1770 +          }
 67.1771 +        case 244: break;
 67.1772 +        case 100: 
 67.1773 +          { return AdaTokenId.DIGITS;
 67.1774 +          }
 67.1775 +        case 245: break;
 67.1776 +        case 65: 
 67.1777 +          { return AdaTokenId.BODY;
 67.1778 +          }
 67.1779 +        case 246: break;
 67.1780 +        case 112: 
 67.1781 +          { return AdaTokenId.GENERIC;
 67.1782 +          }
 67.1783 +        case 247: break;
 67.1784 +        case 88: 
 67.1785 +          { return AdaTokenId.DELTA;
 67.1786 +          }
 67.1787 +        case 248: break;
 67.1788 +        case 7: 
 67.1789 +          { return AdaTokenId.COLON;
 67.1790 +          }
 67.1791 +        case 249: break;
 67.1792 +        case 98: 
 67.1793 +          { return AdaTokenId.SELECT;
 67.1794 +          }
 67.1795 +        case 250: break;
 67.1796 +        case 31: 
 67.1797 +          { return AdaTokenId.AT;
 67.1798 +          }
 67.1799 +        case 251: break;
 67.1800 +        case 66: 
 67.1801 +          { return AdaTokenId.TASK;
 67.1802 +          }
 67.1803 +        case 252: break;
 67.1804 +        case 29: 
 67.1805 +          { return AdaTokenId.ASSIGNMENT;
 67.1806 +          }
 67.1807 +        case 253: break;
 67.1808 +        case 34: 
 67.1809 +          { return AdaTokenId.IF;
 67.1810 +          }
 67.1811 +        case 254: break;
 67.1812 +        case 121: 
 67.1813 +          { return AdaTokenId.TERMINATE;
 67.1814 +          }
 67.1815 +        case 255: break;
 67.1816 +        case 56: 
 67.1817 +          { return AdaTokenId.NOT;
 67.1818 +          }
 67.1819 +        case 256: break;
 67.1820 +        default: 
 67.1821 +          if (zzInput == YYEOF) 
 67.1822 +            //zzAtEOF = true;
 67.1823 +              {        if(input.readLength() > 0) {
 67.1824 +            // backup eof
 67.1825 +            input.backup(1);
 67.1826 +            //and return the text as error token
 67.1827 +            return AdaTokenId.UNKNOWN_TOKEN;
 67.1828 +        } else {
 67.1829 +            return null;
 67.1830 +        }
 67.1831 + }
 67.1832 +          
 67.1833 +          else {
 67.1834 +            zzScanError(ZZ_NO_MATCH);
 67.1835 +          }
 67.1836 +      }
 67.1837 +    }
 67.1838 +  }
 67.1839 +
 67.1840 +
 67.1841 +}
    68.1 --- a/ada.editor/src/org/netbeans/modules/ada/editor/lexer/AdaTokenId.java	Tue Oct 02 21:55:21 2012 -0400
    68.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/lexer/AdaTokenId.java	Mon Oct 15 23:38:26 2012 +0200
    68.3 @@ -36,19 +36,26 @@
    68.4   *
    68.5   * Portions Copyrighted 2008 Sun Microsystems, Inc.
    68.6   */
    68.7 -
    68.8  package org.netbeans.modules.ada.editor.lexer;
    68.9  
   68.10  import java.util.Collection;
   68.11  import java.util.EnumSet;
   68.12  import java.util.HashMap;
   68.13  import java.util.Map;
   68.14 +import org.netbeans.api.lexer.InputAttributes;
   68.15  import org.netbeans.api.lexer.Language;
   68.16 +import org.netbeans.api.lexer.LanguagePath;
   68.17 +import org.netbeans.api.lexer.Token;
   68.18 +import org.netbeans.api.lexer.TokenHierarchy;
   68.19  import org.netbeans.api.lexer.TokenId;
   68.20  import org.netbeans.modules.ada.editor.AdaMimeResolver;
   68.21 +import org.netbeans.spi.lexer.LanguageEmbedding;
   68.22  import org.netbeans.spi.lexer.LanguageHierarchy;
   68.23  import org.netbeans.spi.lexer.Lexer;
   68.24 +import org.netbeans.spi.lexer.LexerInput;
   68.25  import org.netbeans.spi.lexer.LexerRestartInfo;
   68.26 +import org.netbeans.spi.lexer.TokenFactory;
   68.27 +import org.openide.filesystems.FileObject;
   68.28  
   68.29  /**
   68.30   *
   68.31 @@ -92,6 +99,7 @@
   68.32      GOTO("goto", "keyword"), //NOI18N
   68.33      IF("if", "keyword"), //NOI18N
   68.34      IN("in", "keyword"), //NOI18N
   68.35 +    INTERFACE("interface", "keyword"), //NOI18N
   68.36      IS("is", "keyword"), //NOI18N
   68.37      LIMITED("limited", "keyword"), //NOI18N
   68.38      LOOP("loop", "keyword"), //NOI18N
   68.39 @@ -103,6 +111,7 @@
   68.40      OR("or", "keyword"), //NOI18N
   68.41      OTHERS("others", "keyword"), //NOI18N
   68.42      OUT("out", "keyword"), //NOI18N
   68.43 +    OVERRIDING("overriding", "keyword"), //NOI18N
   68.44      PACKAGE("package", "keyword"), //NOI18N
   68.45      PRAGMA("pragma", "keyword"), //NOI18N
   68.46      PRIVATE("private", "keyword"), //NOI18N
   68.47 @@ -118,7 +127,9 @@
   68.48      REQUEUE("requeue", "keyword"), //NOI18N
   68.49      SELECT("select", "keyword"), //NOI18N
   68.50      SEPARATE("separate", "keyword"), //NOI18N
   68.51 +    SOME("some", "keyword"), //NOI18N
   68.52      SUBTYPE("subtype", "keyword"), //NOI18N
   68.53 +    SYNCHRONIZED("synchronized", "keyword"), //NOI18N
   68.54      TAGGED("tagged", "keyword"), //NOI18N
   68.55      TASK("task", "keyword"), //NOI18N
   68.56      TERMINATE("terminate", "keyword"), //NOI18N
   68.57 @@ -131,11 +142,11 @@
   68.58      WITH("with", "keyword"), //NOI18N
   68.59      XOR("xor", "keyword"), //NOI18N
   68.60  
   68.61 -    BOOLEAN("true", "literal"), //NOI18N
   68.62 -    CHARACTER("true", "literal"), //NOI18N
   68.63 -    FLOAT("true", "literal"), //NOI18N
   68.64 -    INTEGER("true", "literal"), //NOI18N
   68.65 -    WIDE_CHARECTER("true", "literal"), //NOI18N
   68.66 +    BOOLEAN("boolean", "literal"), //NOI18N
   68.67 +    CHARACTER("character", "literal"), //NOI18N
   68.68 +    FLOAT("float", "literal"), //NOI18N
   68.69 +    INTEGER("integer", "literal"), //NOI18N
   68.70 +    WIDE_CHARACTER("wide_character", "literal"), //NOI18N
   68.71      TRUE("true", "literal"), //NOI18N
   68.72      FALSE("false", "literal"), //NOI18N
   68.73  
   68.74 @@ -147,7 +158,7 @@
   68.75      DOT(".", "separator"), //NOI18N
   68.76      DOT_DOT("..", "separator"), //NOI18N
   68.77      ARROW("=>", "separator"), //NOI18N
   68.78 -            
   68.79 +
   68.80      EQ("=", "operator"), //NOI18N
   68.81      GT(">", "operator"), //NOI18N
   68.82      LT("<", "operator"), //NOI18N
   68.83 @@ -175,7 +186,7 @@
   68.84      COMMENT(null, "comment"), //NOI18N
   68.85      ATTRIBUTE(null, "attribute"), //NOI18N
   68.86      IDENTIFIER(null, "identifier"); //NOI18N
   68.87 -
   68.88 +    
   68.89      private final String fixedText;
   68.90      private final String primaryCategory;
   68.91  
   68.92 @@ -188,36 +199,80 @@
   68.93          return fixedText;
   68.94      }
   68.95  
   68.96 +    @Override
   68.97      public String primaryCategory() {
   68.98          return primaryCategory;
   68.99      }
  68.100 -    private static final Language<AdaTokenId> language =
  68.101 -            new LanguageHierarchy<AdaTokenId>() {
  68.102  
  68.103 -                @Override
  68.104 -                protected Collection<AdaTokenId> createTokenIds() {
  68.105 -                    return EnumSet.allOf(AdaTokenId.class);
  68.106 -                }
  68.107 +    private static final AdaLanguageHierarchy languageHierarchy = new AdaLanguageHierarchy();
  68.108  
  68.109 -                @Override
  68.110 -                protected Map<String, Collection<AdaTokenId>> createTokenCategories() {
  68.111 -                    Map<String, Collection<AdaTokenId>> cats = new HashMap<String, Collection<AdaTokenId>>();
  68.112 -                    return cats;
  68.113 -                }
  68.114 +    private static class AdaLanguageHierarchy extends LanguageHierarchy<AdaTokenId> {
  68.115  
  68.116 -                @Override
  68.117 -                protected Lexer<AdaTokenId> createLexer(LexerRestartInfo<AdaTokenId> info) {
  68.118 -                    return AdaLexer.create(info);
  68.119 -                }
  68.120 +        public AdaLanguageHierarchy() {
  68.121 +        }
  68.122  
  68.123 -                @Override
  68.124 -                protected String mimeType() {
  68.125 -                    return AdaMimeResolver.ADA_MIME_TYPE;
  68.126 -                }
  68.127 +        @Override
  68.128 +        protected Collection<AdaTokenId> createTokenIds() {
  68.129 +            return EnumSet.allOf(AdaTokenId.class);
  68.130 +        }
  68.131  
  68.132 -            }.language();
  68.133 +        @Override
  68.134 +        protected Map<String, Collection<AdaTokenId>> createTokenCategories() {
  68.135 +            Map<String, Collection<AdaTokenId>> cats = new HashMap<String, Collection<AdaTokenId>>();
  68.136 +            return cats;
  68.137 +        }
  68.138 +
  68.139 +        @Override
  68.140 +        protected Lexer<AdaTokenId> createLexer(LexerRestartInfo<AdaTokenId> info) {
  68.141 +            return AdaLexer.create(info);
  68.142 +        }
  68.143 +
  68.144 +        @Override
  68.145 +        protected String mimeType() {
  68.146 +            return AdaMimeResolver.ADA_MIME_TYPE;
  68.147 +        }
  68.148 +
  68.149 +        @Override
  68.150 +        protected LanguageEmbedding<?> embedding(Token<AdaTokenId> token,
  68.151 +                LanguagePath languagePath, InputAttributes inputAttributes) {
  68.152 +            return null; // No embedding
  68.153 +        }
  68.154 +    }
  68.155 +
  68.156 +//    private static final Language<AdaTokenId> language =
  68.157 +//            new LanguageHierarchy<AdaTokenId>() {
  68.158 +//
  68.159 +//                @Override
  68.160 +//                protected Collection<AdaTokenId> createTokenIds() {
  68.161 +//                    return EnumSet.allOf(AdaTokenId.class);
  68.162 +//                }
  68.163 +//
  68.164 +//                @Override
  68.165 +//                protected Map<String, Collection<AdaTokenId>> createTokenCategories() {
  68.166 +//                    Map<String, Collection<AdaTokenId>> cats = new HashMap<String, Collection<AdaTokenId>>();
  68.167 +//                    return cats;
  68.168 +//                }
  68.169 +//
  68.170 +//                @Override
  68.171 +//                protected Lexer<AdaTokenId> createLexer(LexerRestartInfo<AdaTokenId> info) {
  68.172 +//                    return AdaLexer.create(info);
  68.173 +//                }
  68.174 +//
  68.175 +//                @Override
  68.176 +//                protected String mimeType() {
  68.177 +//                    return AdaMimeResolver.ADA_MIME_TYPE;
  68.178 +//                }
  68.179 +//
  68.180 +//                @Override
  68.181 +//                protected LanguageEmbedding<?> embedding(
  68.182 +//                        Token<AdaTokenId> token, LanguagePath languagePath,
  68.183 +//                        InputAttributes inputAttributes) {
  68.184 +//                    return null; // No embedding
  68.185 +//                }
  68.186 +//            }.language();
  68.187  
  68.188      public static Language<AdaTokenId> language() {
  68.189 -        return language;
  68.190 +//        return language;
  68.191 +        return languageHierarchy.language();
  68.192      }
  68.193  }
    69.1 --- a/ada.editor/src/org/netbeans/modules/ada/editor/lexer/resources/ASTLexer.skeleton	Tue Oct 02 21:55:21 2012 -0400
    69.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/lexer/resources/ASTLexer.skeleton	Mon Oct 15 23:38:26 2012 +0200
    69.3 @@ -70,6 +70,9 @@
    69.4    /** zzAtEOF == true <=> the scanner is at the EOF */
    69.5    private boolean zzAtEOF;
    69.6  
    69.7 +  /** denotes if the user-EOF-code has already been executed */
    69.8 +  private boolean zzEOFDone;
    69.9 +
   69.10  --- user class code
   69.11  
   69.12    /**
   69.13 @@ -152,6 +155,7 @@
   69.14      zzReader = reader;
   69.15      zzAtBOL  = true;
   69.16      zzAtEOF  = false;
   69.17 +    zzEOFDone  = false;
   69.18      zzEndRead = zzStartRead = 0;
   69.19      zzCurrentPos = zzMarkedPos = zzPushbackPos = 0;
   69.20      yyline = yychar = yycolumn = 0;
    70.1 --- a/ada.editor/src/org/netbeans/modules/ada/editor/lexer/resources/Ada95ASTLexer.flex	Tue Oct 02 21:55:21 2012 -0400
    70.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    70.3 @@ -1,396 +0,0 @@
    70.4 -/*
    70.5 - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
    70.6 - *
    70.7 - * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
    70.8 - *
    70.9 - * The contents of this file are subject to the terms of either the GNU
   70.10 - * General Public License Version 2 only ("GPL") or the Common
   70.11 - * Development and Distribution License("CDDL") (collectively, the
   70.12 - * "License"). You may not use this file except in compliance with the
   70.13 - * License. You can obtain a copy of the License at
   70.14 - * http://www.netbeans.org/cddl-gplv2.html
   70.15 - * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
   70.16 - * specific language governing permissions and limitations under the
   70.17 - * License.  When distributing the software, include this License Header
   70.18 - * Notice in each file and include the License file at
   70.19 - * nbbuild/licenses/CDDL-GPL-2-CP.  Sun designates this
   70.20 - * particular file as subject to the "Classpath" exception as provided
   70.21 - * by Sun in the GPL Version 2 section of the License file that
   70.22 - * accompanied this code. If applicable, add the following below the
   70.23 - * License Header, with the fields enclosed by brackets [] replaced by
   70.24 - * your own identifying information:
   70.25 - * "Portions Copyrighted [year] [name of copyright owner]"
   70.26 - *
   70.27 - * If you wish your version of this file to be governed by only the CDDL
   70.28 - * or only the GPL Version 2, indicate your decision by adding
   70.29 - * "[Contributor] elects to include this software in this distribution
   70.30 - * under the [CDDL or GPL Version 2] license." If you do not indicate a
   70.31 - * single choice of license, a recipient has the option to distribute
   70.32 - * your version of this file under either the CDDL, the GPL Version 2 or
   70.33 - * to extend the choice of license to its licensees as provided above.
   70.34 - * However, if you add GPL Version 2 code and therefore, elected the GPL
   70.35 - * Version 2 license, then the option applies only if the new code is
   70.36 - * made subject to such option by the copyright holder.
   70.37 - *
   70.38 - * Contributor(s):
   70.39 - *
   70.40 - * Portions Copyrighted 2008 Sun Microsystems, Inc.
   70.41 - */
   70.42 -package org.netbeans.modules.ada.editor.lexer;
   70.43 -
   70.44 -import java.util.LinkedList;
   70.45 -import java.util.List;
   70.46 -import org.netbeans.modules.ada.editor.AdaVersion;
   70.47 -import org.netbeans.modules.ada.editor.parser.Ada95ASTSymbols;
   70.48 -import org.netbeans.modules.ada.editor.ast.nodes.*;
   70.49 -import java_cup.runtime.*;
   70.50 -
   70.51 -%%
   70.52 -// Options adn declarations section
   70.53 -
   70.54 -%class Ada95ASTLexer
   70.55 -%implements Scanner
   70.56 -%type Symbol
   70.57 -%function next_token
   70.58 -%public
   70.59 -
   70.60 -%eofval{
   70.61 -    return createSymbol(Ada95ASTSymbols.EOF);
   70.62 -%eofval}
   70.63 -%eofclose
   70.64 -
   70.65 -%unicode
   70.66 -%caseless
   70.67 -
   70.68 -//Turns character counting on
   70.69 -%char
   70.70 -//Turns line counting on
   70.71 -%line
   70.72 -//Turns column counting on
   70.73 -%column
   70.74 -
   70.75 -
   70.76 -%state ST_LOOKING_FOR_PROPERTY
   70.77 -%state ST_LINE_COMMENT
   70.78 -
   70.79 -%{
   70.80 -    private final List commentList = new LinkedList();
   70.81 -    private String comment = null;
   70.82 -    private StateStack stack = new StateStack();
   70.83 -    private char yy_old_buffer[] = new char[ZZ_BUFFERSIZE];
   70.84 -    private int yy_old_pushbackPos;
   70.85 -    protected int commentStartPosition;
   70.86 -
   70.87 -    public AdaVersion getAdaVersion() {
   70.88 -            return AdaVersion.ADA_95;
   70.89 -    }
   70.90 -
   70.91 -    public void reset(java.io.Reader reader) {
   70.92 -        yyreset(reader);
   70.93 -    }
   70.94 -
   70.95 -    public void setState(int state) {
   70.96 -        yybegin(state);
   70.97 -    }
   70.98 -
   70.99 -    public int getState() {
  70.100 -        return yystate();
  70.101 -    }
  70.102 -
  70.103 -    public void resetCommentList() {
  70.104 -            commentList.clear();
  70.105 -    }
  70.106 -
  70.107 -    public List getCommentList() {
  70.108 -            return commentList;
  70.109 -    }
  70.110 -	
  70.111 -    protected void addComment(Comment.Type type) {
  70.112 -            int leftPosition = getTokenStartPosition();
  70.113 -            Comment comm;
  70.114 -            comm = new Comment(commentStartPosition, leftPosition + getTokenLength());
  70.115 -            commentList.add(comm);
  70.116 -    }
  70.117 -	
  70.118 -    private void pushState(int state) {
  70.119 -        stack.pushStack(zzLexicalState);
  70.120 -        yybegin(state);
  70.121 -    }
  70.122 -
  70.123 -    private void popState() {
  70.124 -        yybegin(stack.popStack());
  70.125 -    }
  70.126 -
  70.127 -    public int getCurrentLine() {
  70.128 -        return yyline;
  70.129 -    }
  70.130 -
  70.131 -    protected int getTokenStartPosition() {
  70.132 -        return zzStartRead - zzPushbackPos;
  70.133 -    }
  70.134 -
  70.135 -    protected int getTokenLength() {
  70.136 -        return zzMarkedPos - zzStartRead;
  70.137 -    }
  70.138 -
  70.139 -    public int getLength() {
  70.140 -        return zzEndRead - zzPushbackPos;
  70.141 -    }
  70.142 -    
  70.143 -    private void handleCommentStart() {
  70.144 -        commentStartPosition = getTokenStartPosition();
  70.145 -    }
  70.146 -	
  70.147 -    private void handleLineCommentEnd() {
  70.148 -         addComment(Comment.Type.TYPE_SINGLE_LINE);
  70.149 -    }
  70.150 -        
  70.151 -    private Symbol createFullSymbol(int symbolNumber) {
  70.152 -        Symbol symbol = createSymbol(symbolNumber);
  70.153 -        symbol.value = yytext();
  70.154 -        return symbol;
  70.155 -    }
  70.156 -
  70.157 -    private Symbol createSymbol(int symbolNumber) {
  70.158 -        int leftPosition = getTokenStartPosition();
  70.159 -        Symbol symbol = new Symbol(symbolNumber, leftPosition, leftPosition + getTokenLength());
  70.160 -        return symbol;
  70.161 -    }
  70.162 -
  70.163 -    public int[] getParamenters(){
  70.164 -    	return new int[]{zzMarkedPos, zzPushbackPos, zzCurrentPos, zzStartRead, zzEndRead, yyline};
  70.165 -    }
  70.166 -    
  70.167 -    public void reset(java.io.Reader  reader, char[] buffer, int[] parameters){
  70.168 -            this.zzReader = reader;
  70.169 -            this.zzBuffer = buffer;
  70.170 -            this.zzMarkedPos = parameters[0];
  70.171 -            this.zzPushbackPos = parameters[1];
  70.172 -            this.zzCurrentPos = parameters[2];
  70.173 -            this.zzStartRead = parameters[3];
  70.174 -            this.zzEndRead = parameters[4];
  70.175 -            this.yyline = parameters[5];
  70.176 -            this.yychar = this.zzStartRead - this.zzPushbackPos;
  70.177 -    }
  70.178 -
  70.179 -%}
  70.180 -
  70.181 -/*********************************************************
  70.182 - *                                                       *
  70.183 - * Ada 95 AST Lexer, based on:                           *
  70.184 - *                                                       *
  70.185 - * 1. Ada Reference Manual                               *
  70.186 - *    ISO/IEC 8652:1995(E)                               *
  70.187 - *    with Technical Corrigendum 1                       *
  70.188 - *    Language and Standard Libraries                    *
  70.189 - *    Copyright © 1992,1993,1994,1995 Intermetrics, Inc. *
  70.190 - *    Copyright © 2000 The MITRE Corporation, Inc.       *
  70.191 - * 2. http://www.adaic.com/standards/95lrm/lexer9x.l     *
  70.192 - *                                                       *
  70.193 - * Author: Andrea Lucarelli                              *
  70.194 - * Lexer Generator: JFlex                                *
  70.195 - *                                                       *
  70.196 - *********************************************************/
  70.197 -
  70.198 -DIGIT=[0-9]
  70.199 -EXTENDED_DIGIT=[0-9a-fA-F]
  70.200 -INTEGER=({DIGIT}(_?{DIGIT})*)
  70.201 -EXPONENT=([eE](\+?|-){INTEGER})
  70.202 -DECIMAL_LITERAL={INTEGER}(\.?{INTEGER})?{EXPONENT}?
  70.203 -BASE={INTEGER}
  70.204 -BASED_INTEGER={EXTENDED_DIGIT}(_?{EXTENDED_DIGIT})*
  70.205 -BASED_LITERAL={BASE}(#|:){BASED_INTEGER}(\.{BASED_INTEGER})?(#|:){EXPONENT}?
  70.206 -IDENTIFIER=[a-zA-Z]("_"?[a-zA-Z0-9])*
  70.207 -WHITESPACE=[ \n\r\t]+
  70.208 -STRING_LITERAL=\"(\"\"|[^\n\"])*\"
  70.209 -CHAR_LITERAL=\'[^\n]\'
  70.210 -WHITESPACE=[ \n\r\t]+
  70.211 -NEWLINE=("\r"|"\n"|"\r\n")
  70.212 -ANY_CHAR=(.|[\n])
  70.213 -
  70.214 -%%
  70.215 -
  70.216 -// Ada 95 keywords
  70.217 -
  70.218 -<YYINITIAL> {
  70.219 -
  70.220 -    "abort"         { return createSymbol(Ada95ASTSymbols.ABORT); }
  70.221 -    "abs"           { return createSymbol(Ada95ASTSymbols.ABS); }
  70.222 -    "abstract"      { return createSymbol(Ada95ASTSymbols.ABSTRACT); }
  70.223 -    "access"        { return createSymbol(Ada95ASTSymbols.ACCESS); }
  70.224 -    "accept"        { return createSymbol(Ada95ASTSymbols.ACCEPT); }
  70.225 -    "aliased"       { return createSymbol(Ada95ASTSymbols.ALIASED); }
  70.226 -    "all"           { return createSymbol(Ada95ASTSymbols.ALL); }
  70.227 -    "and"           { return createSymbol(Ada95ASTSymbols.AND); }
  70.228 -    "array"         { return createSymbol(Ada95ASTSymbols.ARRAY); }
  70.229 -    "at"            { return createSymbol(Ada95ASTSymbols.AT); }
  70.230 -    "begin"         { return createSymbol(Ada95ASTSymbols.BEGIN); }
  70.231 -    "body"          { return createSymbol(Ada95ASTSymbols.BODY); }
  70.232 -    "constant"      { return createSymbol(Ada95ASTSymbols.CONSTANT); }
  70.233 -    "case"          { return createSymbol(Ada95ASTSymbols.CASE); }
  70.234 -    "declare"       { return createSymbol(Ada95ASTSymbols.DECLARE); }
  70.235 -    "delay"         { return createSymbol(Ada95ASTSymbols.DELAY); }
  70.236 -    "do"            { return createSymbol(Ada95ASTSymbols.DO); }
  70.237 -    "delta"         { return createSymbol(Ada95ASTSymbols.DELTA); }
  70.238 -    "else"          { return createSymbol(Ada95ASTSymbols.ELSE); }
  70.239 -    "elsif"         { return createSymbol(Ada95ASTSymbols.ELSIF); }
  70.240 -    "end"           { return createSymbol(Ada95ASTSymbols.END); }
  70.241 -    "entry"         { return createSymbol(Ada95ASTSymbols.ENTRY); }
  70.242 -    "exception"     { return createSymbol(Ada95ASTSymbols.EXCEPTION); }
  70.243 -    "exit"          { return createSymbol(Ada95ASTSymbols.EXIT); }
  70.244 -    "for"           { return createSymbol(Ada95ASTSymbols.FOR); }
  70.245 -    "function"      { return createSymbol(Ada95ASTSymbols.FUNCTION); }
  70.246 -    "generic"       { return createSymbol(Ada95ASTSymbols.GENERIC); }
  70.247 -    "goto"          { return createSymbol(Ada95ASTSymbols.GOTO); }
  70.248 -    "if"            { return createSymbol(Ada95ASTSymbols.IF); }
  70.249 -    "in"            { return createSymbol(Ada95ASTSymbols.IN); }
  70.250 -    "is"            { return createSymbol(Ada95ASTSymbols.IS); }
  70.251 -    "limited"       { return createSymbol(Ada95ASTSymbols.LIMITED); }
  70.252 -    "loop"          { return createSymbol(Ada95ASTSymbols.LOOP); }
  70.253 -    "mod"           { return createSymbol(Ada95ASTSymbols.MOD); }
  70.254 -    "new"           { return createSymbol(Ada95ASTSymbols.NEW); }
  70.255 -    "not"           { return createSymbol(Ada95ASTSymbols.NOT); }
  70.256 -    "null"          { return createSymbol(Ada95ASTSymbols.NULL); }
  70.257 -    "of"            { return createSymbol(Ada95ASTSymbols.OF); }
  70.258 -    "or"            { return createSymbol(Ada95ASTSymbols.OR); }
  70.259 -    "others"        { return createSymbol(Ada95ASTSymbols.OTHERS); }
  70.260 -    "out"           { return createSymbol(Ada95ASTSymbols.OUT); }
  70.261 -    "package"       { return createSymbol(Ada95ASTSymbols.PACKAGE); }
  70.262 -    "pragma"        { return createSymbol(Ada95ASTSymbols.PRAGMA); }
  70.263 -    "private"       { return createSymbol(Ada95ASTSymbols.PRIVATE); }
  70.264 -    "procedure"     { return createSymbol(Ada95ASTSymbols.PROCEDURE); }
  70.265 -    "protected"     { return createSymbol(Ada95ASTSymbols.PROTECTED); }
  70.266 -    "return"        { return createSymbol(Ada95ASTSymbols.RETURN); }
  70.267 -    "reverse"       { return createSymbol(Ada95ASTSymbols.REVERSE); }
  70.268 -    "raise"         { return createSymbol(Ada95ASTSymbols.RAISE); }
  70.269 -    "range"         { return createSymbol(Ada95ASTSymbols.RANGE); }
  70.270 -    "record"        { return createSymbol(Ada95ASTSymbols.RECORD); }
  70.271 -    "rem"           { return createSymbol(Ada95ASTSymbols.REM); }
  70.272 -    "renames"       { return createSymbol(Ada95ASTSymbols.RENAMES); }
  70.273 -    "requeue"       { return createSymbol(Ada95ASTSymbols.REQUEUE); }
  70.274 -    "select"        { return createSymbol(Ada95ASTSymbols.SELECT); }
  70.275 -    "separate"      { return createSymbol(Ada95ASTSymbols.SEPARATE); }
  70.276 -    "subtype"       { return createSymbol(Ada95ASTSymbols.SUBTYPE); }
  70.277 -    "tagged"        { return createSymbol(Ada95ASTSymbols.TAGGED); }
  70.278 -    "task"          { return createSymbol(Ada95ASTSymbols.TASK); }
  70.279 -    "terminate"     { return createSymbol(Ada95ASTSymbols.TERMINATE); }
  70.280 -    "then"          { return createSymbol(Ada95ASTSymbols.THEN); }
  70.281 -    "type"          { return createSymbol(Ada95ASTSymbols.TYPE); }
  70.282 -    "until"         { return createSymbol(Ada95ASTSymbols.UNTIL); }
  70.283 -    "use"           { return createSymbol(Ada95ASTSymbols.USE); }
  70.284 -    "when"          { return createSymbol(Ada95ASTSymbols.WHEN); }
  70.285 -    "while"         { return createSymbol(Ada95ASTSymbols.WHILE); }
  70.286 -    "with"          { return createSymbol(Ada95ASTSymbols.WITH); }
  70.287 -    "xor"           { return createSymbol(Ada95ASTSymbols.XOR); }
  70.288 -
  70.289 -}
  70.290 -
  70.291 -// delimiters
  70.292 -
  70.293 -<YYINITIAL> {
  70.294 -
  70.295 -    "&"             { return createSymbol(Ada95ASTSymbols.AMP); }
  70.296 -    "'"             { return createSymbol(Ada95ASTSymbols.TICK); }
  70.297 -    "("             { return createSymbol(Ada95ASTSymbols.LPAREN); }
  70.298 -    ")"             { return createSymbol(Ada95ASTSymbols.RPAREN); }
  70.299 -    "*"             { return createSymbol(Ada95ASTSymbols.STAR); }
  70.300 -    "+"             { return createSymbol(Ada95ASTSymbols.PLUS); }
  70.301 -    ","             { return createSymbol(Ada95ASTSymbols.COMMA); }
  70.302 -    "-"             { return createSymbol(Ada95ASTSymbols.MINUS); }
  70.303 -    "."             { pushState(ST_LOOKING_FOR_PROPERTY);
  70.304 -                      return createSymbol(Ada95ASTSymbols.DOT);
  70.305 -                    }
  70.306 -    "/"             { return createSymbol(Ada95ASTSymbols.SLASH); }
  70.307 -    ":"             { return createSymbol(Ada95ASTSymbols.COLON); }
  70.308 -    ";"             { return createSymbol(Ada95ASTSymbols.SEMICOLON); }
  70.309 -    "<"             { return createSymbol(Ada95ASTSymbols.GT); }
  70.310 -    "="             { return createSymbol(Ada95ASTSymbols.EQ); }
  70.311 -    ">"             { return createSymbol(Ada95ASTSymbols.LT); }
  70.312 -    "|"             { return createSymbol(Ada95ASTSymbols.BAR); }
  70.313 -    "!"             { return createSymbol(Ada95ASTSymbols.BAR); }
  70.314 -
  70.315 -}
  70.316 -
  70.317 -// compound delimiters
  70.318 -
  70.319 -<YYINITIAL> {
  70.320 -
  70.321 -    "=>"             { return createSymbol(Ada95ASTSymbols.ARROW); }
  70.322 -    ".."             { return createSymbol(Ada95ASTSymbols.DOT_DOT); }
  70.323 -    "**"             { return createSymbol(Ada95ASTSymbols.EXPON); }
  70.324 -    ":="             { return createSymbol(Ada95ASTSymbols.ASSIGNMENT); }
  70.325 -    "/="             { return createSymbol(Ada95ASTSymbols.INEQ); }
  70.326 -    ">="             { return createSymbol(Ada95ASTSymbols.GTEQ); }
  70.327 -    "<="             { return createSymbol(Ada95ASTSymbols.LTEQ); }
  70.328 -    "<<"             { return createSymbol(Ada95ASTSymbols.LTLT); }
  70.329 -    ">>"             { return createSymbol(Ada95ASTSymbols.GTGT); }
  70.330 -    "<>"             { return createSymbol(Ada95ASTSymbols.BOX); }
  70.331 -
  70.332 -}
  70.333 -
  70.334 -<ST_LOOKING_FOR_PROPERTY>"." {
  70.335 -    return createSymbol(Ada95ASTSymbols.DOT);
  70.336 -}
  70.337 -
  70.338 -<ST_LOOKING_FOR_PROPERTY>".." {
  70.339 -    popState();
  70.340 -    return createSymbol(Ada95ASTSymbols.DOT_DOT);
  70.341 -}
  70.342 -
  70.343 -<ST_LOOKING_FOR_PROPERTY>{IDENTIFIER} {
  70.344 -    popState();
  70.345 -    return createFullSymbol(Ada95ASTSymbols.IDENTIFIER);
  70.346 -}
  70.347 -
  70.348 -<ST_LOOKING_FOR_PROPERTY>{ANY_CHAR} {
  70.349 -    yypushback(yylength());
  70.350 -    popState();
  70.351 -}
  70.352 -
  70.353 -<YYINITIAL>{CHAR_LITERAL} {
  70.354 -    return createFullSymbol(Ada95ASTSymbols.CHAR_LITERAL);
  70.355 -}
  70.356 -
  70.357 -<YYINITIAL>{STRING_LITERAL} {
  70.358 -    return createFullSymbol(Ada95ASTSymbols.STRING_LITERAL);
  70.359 -}
  70.360 -
  70.361 -<YYINITIAL>{BASED_LITERAL} {
  70.362 -    return createFullSymbol(Ada95ASTSymbols.BASED_LITERAL);
  70.363 -}
  70.364 -
  70.365 -<YYINITIAL>{DECIMAL_LITERAL} {
  70.366 -    return createFullSymbol(Ada95ASTSymbols.DECIMAL_LITERAL);
  70.367 -}
  70.368 -
  70.369 -<YYINITIAL>{IDENTIFIER} {
  70.370 -    return createFullSymbol(Ada95ASTSymbols.IDENTIFIER);
  70.371 -}
  70.372 -
  70.373 -<YYINITIAL>{WHITESPACE} {
  70.374 -}
  70.375 -
  70.376 -<YYINITIAL>"--" {
  70.377 -	handleCommentStart();
  70.378 -	yybegin(ST_LINE_COMMENT);
  70.379 -}
  70.380 -
  70.381 -<ST_LINE_COMMENT>[^\n\r]*(ANY_CHAR|{NEWLINE}) {
  70.382 -    handleLineCommentEnd();
  70.383 -    yybegin(YYINITIAL);
  70.384 -}
  70.385 -
  70.386 -<YYINITIAL> <<EOF>> {
  70.387 -              if (yytext().length() > 0) {
  70.388 -                yypushback(1);  // backup eof
  70.389 -                comment = yytext();
  70.390 -              }
  70.391 -              else {
  70.392 -                return createSymbol(Ada95ASTSymbols.EOF);
  70.393 -              }
  70.394 -              
  70.395 -}
  70.396 -
  70.397 -<YYINITIAL>{ANY_CHAR} {
  70.398 -	// do nothing
  70.399 -}
  70.400 \ No newline at end of file
    71.1 --- a/ada.editor/src/org/netbeans/modules/ada/editor/lexer/resources/Ada95SyntaxLexer.flex	Tue Oct 02 21:55:21 2012 -0400
    71.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    71.3 @@ -1,520 +0,0 @@
    71.4 -/*
    71.5 - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
    71.6 - *
    71.7 - * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
    71.8 - *
    71.9 - * The contents of this file are subject to the terms of either the GNU
   71.10 - * General Public License Version 2 only ("GPL") or the Common
   71.11 - * Development and Distribution License("CDDL") (collectively, the
   71.12 - * "License"). You may not use this file except in compliance with the
   71.13 - * License. You can obtain a copy of the License at
   71.14 - * http://www.netbeans.org/cddl-gplv2.html
   71.15 - * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
   71.16 - * specific language governing permissions and limitations under the
   71.17 - * License.  When distributing the software, include this License Header
   71.18 - * Notice in each file and include the License file at
   71.19 - * nbbuild/licenses/CDDL-GPL-2-CP.  Sun designates this
   71.20 - * particular file as subject to the "Classpath" exception as provided
   71.21 - * by Sun in the GPL Version 2 section of the License file that
   71.22 - * accompanied this code. If applicable, add the following below the
   71.23 - * License Header, with the fields enclosed by brackets [] replaced by
   71.24 - * your own identifying information:
   71.25 - * "Portions Copyrighted [year] [name of copyright owner]"
   71.26 - *
   71.27 - * If you wish your version of this file to be governed by only the CDDL
   71.28 - * or only the GPL Version 2, indicate your decision by adding
   71.29 - * "[Contributor] elects to include this software in this distribution
   71.30 - * under the [CDDL or GPL Version 2] license." If you do not indicate a
   71.31 - * single choice of license, a recipient has the option to distribute
   71.32 - * your version of this file under either the CDDL, the GPL Version 2 or
   71.33 - * to extend the choice of license to its licensees as provided above.
   71.34 - * However, if you add GPL Version 2 code and therefore, elected the GPL
   71.35 - * Version 2 license, then the option applies only if the new code is
   71.36 - * made subject to such option by the copyright holder.
   71.37 - *
   71.38 - * Contributor(s):
   71.39 - *
   71.40 - * Portions Copyrighted 2008 Sun Microsystems, Inc.
   71.41 - */
   71.42 -package org.netbeans.modules.ada.editor.lexer;
   71.43 -
   71.44 -import org.netbeans.spi.lexer.LexerInput;
   71.45 -import org.netbeans.spi.lexer.LexerRestartInfo;
   71.46 -%%
   71.47 -
   71.48 -%public
   71.49 -%class Ada95SyntaxLexer
   71.50 -%type AdaTokenId
   71.51 -%function nextToken
   71.52 -%unicode
   71.53 -%caseless
   71.54 -%char
   71.55 -
   71.56 -%state ST_LOOKING_FOR_PROPERTY
   71.57 -%state ST_CHAR_LITERAL
   71.58 -%state ST_LINE_COMMENT
   71.59 -%state ST_HIGHLIGHTING_ERROR
   71.60 -
   71.61 -%eofval{
   71.62 -       if(input.readLength() > 0) {
   71.63 -            // backup eof
   71.64 -            input.backup(1);
   71.65 -            //and return the text as error token
   71.66 -            return AdaTokenId.UNKNOWN_TOKEN;
   71.67 -        } else {
   71.68 -            return null;
   71.69 -        }
   71.70 -%eofval}
   71.71 -
   71.72 -%{
   71.73 -
   71.74 -    private StateStack stack = new StateStack();
   71.75 -
   71.76 -    private boolean short_tags_allowed = true;
   71.77 -
   71.78 -    private LexerInput input;
   71.79 -    
   71.80 -    public Ada95SyntaxLexer(LexerRestartInfo info) {
   71.81 -        this.input = info.input();
   71.82 -
   71.83 -        if(info.state() != null) {
   71.84 -            //reset state
   71.85 -            setState((LexerState)info.state());
   71.86 -        } else {
   71.87 -            //initial state
   71.88 -            zzState = zzLexicalState = YYINITIAL;
   71.89 -            stack.clear();
   71.90 -        }
   71.91 -
   71.92 -    }
   71.93 -
   71.94 -    public static final class LexerState  {
   71.95 -        final StateStack stack;
   71.96 -        /** the current state of the DFA */
   71.97 -        final int zzState;
   71.98 -        /** the current lexical state */
   71.99 -        final int zzLexicalState;
  71.100 -
  71.101 -        LexerState (StateStack stack, int zzState, int zzLexicalState) {
  71.102 -            this.stack = stack;
  71.103 -            this.zzState = zzState;
  71.104 -            this.zzLexicalState = zzLexicalState;
  71.105 -        }
  71.106 -
  71.107 -        @Override
  71.108 -        public boolean equals(Object obj) {
  71.109 -            if (this == obj) {
  71.110 -                    return true;
  71.111 -            }
  71.112 -
  71.113 -            if (obj == null || obj.getClass() != this.getClass()) {
  71.114 -                    return false;
  71.115 -            }
  71.116 -
  71.117 -            LexerState state = (LexerState) obj;
  71.118 -            return (this.stack.equals(state.stack)
  71.119 -                && (this.zzState == state.zzState)
  71.120 -                && (this.zzLexicalState == state.zzLexicalState));
  71.121 -        }
  71.122 -
  71.123 -        @Override
  71.124 -        public int hashCode() {
  71.125 -            int hash = 11;
  71.126 -            hash = 31 * hash + this.zzState;
  71.127 -            hash = 31 * hash + this.zzLexicalState;
  71.128 -            hash = 31 * hash + this.stack.hashCode();
  71.129 -            return hash;
  71.130 -        }
  71.131 -    }
  71.132 -        
  71.133 -    public LexerState getState() {
  71.134 -        return new LexerState(stack.createClone(), zzState, zzLexicalState);
  71.135 -    }
  71.136 -
  71.137 -    public void setState(LexerState state) {
  71.138 -        this.stack.copyFrom(state.stack);
  71.139 -        this.zzState = state.zzState;
  71.140 -        this.zzLexicalState = state.zzLexicalState;
  71.141 -    }
  71.142 -    
  71.143 -    public int[] getParamenters(){
  71.144 -    	return new int[]{zzMarkedPos, zzPushbackPos, zzCurrentPos, zzStartRead, zzEndRead, yyline, zzLexicalState};
  71.145 -    }
  71.146 -
  71.147 -    protected int getZZLexicalState() {
  71.148 -        return zzLexicalState;
  71.149 -    }
  71.150 -
  71.151 -    protected int getZZMarkedPos() {
  71.152 -        return zzMarkedPos;
  71.153 -    }
  71.154 -
  71.155 -    protected int getZZEndRead() {
  71.156 -        return zzEndRead;
  71.157 -    }
  71.158 -
  71.159 -    public char[] getZZBuffer() {
  71.160 -        return zzBuffer;
  71.161 -    }
  71.162 -    
  71.163 -    protected int getZZStartRead() {
  71.164 -    	return this.zzStartRead;
  71.165 -    }
  71.166 -
  71.167 -    protected int getZZPushBackPosition() {
  71.168 -    	return this.zzPushbackPos;
  71.169 -    }
  71.170 -
  71.171 -        protected void pushBack(int i) {
  71.172 -		yypushback(i);
  71.173 -	}
  71.174 -
  71.175 -        protected void popState() {
  71.176 -		yybegin(stack.popStack());
  71.177 -	}
  71.178 -
  71.179 -	protected void pushState(final int state) {
  71.180 -		stack.pushStack(getZZLexicalState());
  71.181 -		yybegin(state);
  71.182 -	}
  71.183 -
  71.184 -    
  71.185 - // End user code
  71.186 -
  71.187 -%}
  71.188 -
  71.189 -/*********************************************************
  71.190 - *                                                       *
  71.191 - * Ada 95 Lexer, based on:                               *
  71.192 - *                                                       *
  71.193 - * 1. Ada Reference Manual                               *
  71.194 - *    ISO/IEC 8652:1995(E)                               *
  71.195 - *    with Technical Corrigendum 1                       *
  71.196 - *    Language and Standard Libraries                    *
  71.197 - *    Copyright © 1992,1993,1994,1995 Intermetrics, Inc. *
  71.198 - *    Copyright © 2000 The MITRE Corporation, Inc.       *
  71.199 - * 2. http://www.adaic.com/standards/95lrm/lexer9x.l     *
  71.200 - *                                                       *
  71.201 - * Author: Andrea Lucarelli                              *
  71.202 - * Lexer Generator: JFlex                                *
  71.203 - *                                                       *
  71.204 - *********************************************************/
  71.205 -
  71.206 -DIGIT=[0-9]
  71.207 -EXTENDED_DIGIT=[0-9a-fA-F]
  71.208 -INTEGER=({DIGIT}(_?{DIGIT})*)
  71.209 -EXPONENT=([eE](\+?|-){INTEGER})
  71.210 -DECIMAL_LITERAL={INTEGER}(\.?{INTEGER})?{EXPONENT}?
  71.211 -BASE={INTEGER}
  71.212 -BASED_INTEGER={EXTENDED_DIGIT}(_?{EXTENDED_DIGIT})*
  71.213 -BASED_LITERAL={BASE}(#|:){BASED_INTEGER}(\.{BASED_INTEGER})?(#|:){EXPONENT}?
  71.214 -IDENTIFIER=[a-zA-Z]("_"?[a-zA-Z0-9])*
  71.215 -WHITESPACE=[ \n\r\t]+
  71.216 -STRING_LITERAL=\"(\"\"|[^\n\"])*\"
  71.217 -CHAR_LITERAL=\'[^\n]\'
  71.218 -WHITESPACE=[ \n\r\t]+
  71.219 -NEWLINE=("\r"|"\n"|"\r\n")
  71.220 -ANY_CHAR=(.|[\n])
  71.221 -
  71.222 -%%
  71.223 -
  71.224 -// Ada 95 keywords
  71.225 -
  71.226 -<YYINITIAL> {
  71.227 -
  71.228 -    "abort"         { return AdaTokenId.ABORT; }
  71.229 -    "abs"           { return AdaTokenId.ABS; }
  71.230 -    "abstract"      { return AdaTokenId.ABSTRACT; }
  71.231 -    "access"        { return AdaTokenId.ACCESS; }
  71.232 -    "accept"        { return AdaTokenId.ACCEPT; }
  71.233 -    "aliased"       { return AdaTokenId.ALIASED; }
  71.234 -    "all"           { return AdaTokenId.ALL; }
  71.235 -    "and"           { return AdaTokenId.AND; }
  71.236 -    "array"         { return AdaTokenId.ARRAY; }
  71.237 -    "at"            { return AdaTokenId.AT; }
  71.238 -    "begin"         { return AdaTokenId.BEGIN; }
  71.239 -    "body"          { return AdaTokenId.BODY; }
  71.240 -    "constant"      { return AdaTokenId.CONSTANT; }
  71.241 -    "case"          { return AdaTokenId.CASE; }
  71.242 -    "declare"       { return AdaTokenId.DECLARE; }
  71.243 -    "delay"         { return AdaTokenId.DELAY; }
  71.244 -    "delta"         { return AdaTokenId.DELTA; }
  71.245 -    "digits"        { return AdaTokenId.DIGITS; }
  71.246 -    "do"            { return AdaTokenId.DO; }
  71.247 -    "else"          { return AdaTokenId.ELSE; }
  71.248 -    "elsif"         { return AdaTokenId.ELSIF; }
  71.249 -    "end"           { return AdaTokenId.END; }
  71.250 -    "entry"         { return AdaTokenId.ENTRY; }
  71.251 -    "exception"     { return AdaTokenId.EXCEPTION; }
  71.252 -    "exit"          { return AdaTokenId.EXIT; }
  71.253 -    "for"           { return AdaTokenId.FOR; }
  71.254 -    "function"      { return AdaTokenId.FUNCTION; }
  71.255 -    "generic"       { return AdaTokenId.GENERIC; }
  71.256 -    "goto"          { return AdaTokenId.GOTO; }
  71.257 -    "if"            { return AdaTokenId.IF; }
  71.258 -    "in"            { return AdaTokenId.IN; }
  71.259 -    "is"            { return AdaTokenId.IS; }
  71.260 -    "limited"       { return AdaTokenId.LIMITED; }
  71.261 -    "loop"          { return AdaTokenId.LOOP; }
  71.262 -    "mod"           { return AdaTokenId.MOD; }
  71.263 -    "new"           { return AdaTokenId.NEW; }
  71.264 -    "not"           { return AdaTokenId.NOT; }
  71.265 -    "null"          { return AdaTokenId.NULL; }
  71.266 -    "of"            { return AdaTokenId.OF; }
  71.267 -    "or"            { return AdaTokenId.OR; }
  71.268 -    "others"        { return AdaTokenId.OTHERS; }
  71.269 -    "out"           { return AdaTokenId.OUT; }
  71.270 -    "package"       { return AdaTokenId.PACKAGE; }
  71.271 -    "pragma"        { return AdaTokenId.PRAGMA; }
  71.272 -    "private"       { return AdaTokenId.PRIVATE; }
  71.273 -    "procedure"     { return AdaTokenId.PROCEDURE; }
  71.274 -    "protected"     { return AdaTokenId.PROTECTED; }
  71.275 -    "return"        { return AdaTokenId.RETURN; }
  71.276 -    "reverse"       { return AdaTokenId.REVERSE; }
  71.277 -    "raise"         { return AdaTokenId.RAISE; }
  71.278 -    "range"         { return AdaTokenId.RANGE; }
  71.279 -    "record"        { return AdaTokenId.RECORD; }
  71.280 -    "rem"           { return AdaTokenId.REM; }
  71.281 -    "renames"       { return AdaTokenId.RENAMES; }
  71.282 -    "requeue"       { return AdaTokenId.REQUEUE; }
  71.283 -    "select"        { return AdaTokenId.SELECT; }
  71.284 -    "separate"      { return AdaTokenId.SEPARATE; }
  71.285 -    "subtype"       { return AdaTokenId.SUBTYPE; }
  71.286 -    "tagged"        { return AdaTokenId.TAGGED; }
  71.287 -    "task"          { return AdaTokenId.TASK; }
  71.288 -    "terminate"     { return AdaTokenId.TERMINATE; }
  71.289 -    "then"          { return AdaTokenId.THEN; }
  71.290 -    "type"          { return AdaTokenId.TYPE; }
  71.291 -    "until"         { return AdaTokenId.UNTIL; }
  71.292 -    "use"           { return AdaTokenId.USE; }
  71.293 -    "when"          { return AdaTokenId.WHEN; }
  71.294 -    "while"         { return AdaTokenId.WHILE; }
  71.295 -    "with"          { return AdaTokenId.WITH; }
  71.296 -    "xor"           { return AdaTokenId.XOR; }
  71.297 -}
  71.298 -
  71.299 -// Ada 95 compound keywords
  71.300 -
  71.301 -<YYINITIAL> {
  71.302 -    "end case"      { return AdaTokenId.END_CASE; }
  71.303 -    "end if"        { return AdaTokenId.END_IF; }
  71.304 -    "end loop"      { return AdaTokenId.END_LOOP; }
  71.305 -}
  71.306 -
  71.307 -// attributes
  71.308 -
  71.309 -<YYINITIAL> {
  71.310 -
  71.311 -    \'"access"                          { return AdaTokenId.ATTRIBUTE; }
  71.312 -    \'"address"                         { return AdaTokenId.ATTRIBUTE; }
  71.313 -    \'"adjacent"                        { return AdaTokenId.ATTRIBUTE; }
  71.314 -    \'"aft"                             { return AdaTokenId.ATTRIBUTE; }
  71.315 -    \'"alignment"                       { return AdaTokenId.ATTRIBUTE; }
  71.316 -    \'"base"                            { return AdaTokenId.ATTRIBUTE; }
  71.317 -    \'"bit_order"                       { return AdaTokenId.ATTRIBUTE; }
  71.318 -    \'"body_version"                    { return AdaTokenId.ATTRIBUTE; }
  71.319 -    \'"callable"                        { return AdaTokenId.ATTRIBUTE; }
  71.320 -    \'"caller"                          { return AdaTokenId.ATTRIBUTE; }
  71.321 -    \'"ceiling"                         { return AdaTokenId.ATTRIBUTE; }
  71.322 -    \'"class"                           { return AdaTokenId.ATTRIBUTE; }
  71.323 -    \'"component_size"                  { return AdaTokenId.ATTRIBUTE; }
  71.324 -    \'"compose"                         { return AdaTokenId.ATTRIBUTE; }
  71.325 -    \'"constrained"                     { return AdaTokenId.ATTRIBUTE; }
  71.326 -    \'"copy_sign"                       { return AdaTokenId.ATTRIBUTE; }
  71.327 -    \'"count"                           { return AdaTokenId.ATTRIBUTE; }
  71.328 -    \'"delta"                           { return AdaTokenId.ATTRIBUTE; }
  71.329 -    \'"denorm"                          { return AdaTokenId.ATTRIBUTE; }
  71.330 -    \'"digits"                          { return AdaTokenId.ATTRIBUTE; }
  71.331 -    \'"exponent"                        { return AdaTokenId.ATTRIBUTE; }
  71.332 -    \'"external_tag"                    { return AdaTokenId.ATTRIBUTE; }
  71.333 -    \'"first"                           { return AdaTokenId.ATTRIBUTE; }
  71.334 -    \'"first_bit"                       { return AdaTokenId.ATTRIBUTE; }
  71.335 -    \'"floor"                           { return AdaTokenId.ATTRIBUTE; }
  71.336 -    \'"fore"                            { return AdaTokenId.ATTRIBUTE; }
  71.337 -    \'"fraction"                        { return AdaTokenId.ATTRIBUTE; }
  71.338 -    \'"identity"                        { return AdaTokenId.ATTRIBUTE; }
  71.339 -    \'"image"                           { return AdaTokenId.ATTRIBUTE; }
  71.340 -    \'"input"                           { return AdaTokenId.ATTRIBUTE; }
  71.341 -    \'"last"                            { return AdaTokenId.ATTRIBUTE; }
  71.342 -    \'"last_bit"                        { return AdaTokenId.ATTRIBUTE; }
  71.343 -    \'"leading_part"                    { return AdaTokenId.ATTRIBUTE; }
  71.344 -    \'"length"                          { return AdaTokenId.ATTRIBUTE; }
  71.345 -    \'"machine"                         { return AdaTokenId.ATTRIBUTE; }
  71.346 -    \'"machine_emax"                    { return AdaTokenId.ATTRIBUTE; }
  71.347 -    \'"machine_emin"                    { return AdaTokenId.ATTRIBUTE; }
  71.348 -    \'"machine_mantissa"                { return AdaTokenId.ATTRIBUTE; }
  71.349 -    \'"machine_overflows"               { return AdaTokenId.ATTRIBUTE; }
  71.350 -    \'"machine_radix"                   { return AdaTokenId.ATTRIBUTE; }
  71.351 -    \'"machine_rounds"                  { return AdaTokenId.ATTRIBUTE; }
  71.352 -    \'"max"                             { return AdaTokenId.ATTRIBUTE; }
  71.353 -    \'"max_size_in_storage_elements"    { return AdaTokenId.ATTRIBUTE; }
  71.354 -    \'"min"                             { return AdaTokenId.ATTRIBUTE; }
  71.355 -    \'"model"                           { return AdaTokenId.ATTRIBUTE; }
  71.356 -    \'"model_emin"                      { return AdaTokenId.ATTRIBUTE; }
  71.357 -    \'"Model_Epsilon"                   { return AdaTokenId.ATTRIBUTE; }
  71.358 -    \'"Model_Mantissa"                  { return AdaTokenId.ATTRIBUTE; }
  71.359 -    \'"Model_Small"                     { return AdaTokenId.ATTRIBUTE; }
  71.360 -    \'"Modulus"                         { return AdaTokenId.ATTRIBUTE; }
  71.361 -    \'"output"                          { return AdaTokenId.ATTRIBUTE; }
  71.362 -    \'"Partition_ID"                    { return AdaTokenId.ATTRIBUTE; }
  71.363 -    \'"Pos"                             { return AdaTokenId.ATTRIBUTE; }
  71.364 -    \'"Position"                        { return AdaTokenId.ATTRIBUTE; }
  71.365 -    \'"Range"                           { return AdaTokenId.ATTRIBUTE; }
  71.366 -    \'"Read"                            { return AdaTokenId.ATTRIBUTE; }
  71.367 -    \'"Remainder"                       { return AdaTokenId.ATTRIBUTE; }
  71.368 -    \'"Round"                           { return AdaTokenId.ATTRIBUTE; }
  71.369 -    \'"Rounding"                        { return AdaTokenId.ATTRIBUTE; }
  71.370 -    \'"Safe_First"                      { return AdaTokenId.ATTRIBUTE; }
  71.371 -    \'"Safe_Last"                       { return AdaTokenId.ATTRIBUTE; }
  71.372 -    \'"Scale"                           { return AdaTokenId.ATTRIBUTE; }
  71.373 -    \'"Scaling"                         { return AdaTokenId.ATTRIBUTE; }
  71.374 -    \'"Signed_Zeros"                    { return AdaTokenId.ATTRIBUTE; }
  71.375 -    \'"Size"                            { return AdaTokenId.ATTRIBUTE; }
  71.376 -    \'"Small"                           { return AdaTokenId.ATTRIBUTE; }
  71.377 -    \'"Storage_Pool"                    { return AdaTokenId.ATTRIBUTE; }
  71.378 -    \'"Storage_Size"                    { return AdaTokenId.ATTRIBUTE; }
  71.379 -    \'"Succ"                            { return AdaTokenId.ATTRIBUTE; }
  71.380 -    \'"Tag"                             { return AdaTokenId.ATTRIBUTE; }
  71.381 -    \'"Terminated"                      { return AdaTokenId.ATTRIBUTE; }
  71.382 -    \'"Truncation"                      { return AdaTokenId.ATTRIBUTE; }
  71.383 -    \'"Unbiased_Rounding"               { return AdaTokenId.ATTRIBUTE; }
  71.384 -    \'"Unchecked_Access"                { return AdaTokenId.ATTRIBUTE; }
  71.385 -    \'"Val"                             { return AdaTokenId.ATTRIBUTE; }
  71.386 -    \'"Valid"                           { return AdaTokenId.ATTRIBUTE; }
  71.387 -    \'"Value"                           { return AdaTokenId.ATTRIBUTE; }
  71.388 -    \'"Version"                         { return AdaTokenId.ATTRIBUTE; }
  71.389 -    \'"Wide_Image"                      { return AdaTokenId.ATTRIBUTE; }
  71.390 -    \'"Wide_Value"                      { return AdaTokenId.ATTRIBUTE; }
  71.391 -    \'"Wide_Width"                      { return AdaTokenId.ATTRIBUTE; }
  71.392 -    \'"Width"                           { return AdaTokenId.ATTRIBUTE; }
  71.393 -    \'"Write"                           { return AdaTokenId.ATTRIBUTE; }
  71.394 -
  71.395 -}
  71.396 -
  71.397 -// delimiters
  71.398 -
  71.399 -<YYINITIAL> {
  71.400 -
  71.401 -    "&"             { return AdaTokenId.AMP; }
  71.402 -    "'"             { return AdaTokenId.TICK; }
  71.403 -    "("             { return AdaTokenId.LPAREN; }
  71.404 -    ")"             { return AdaTokenId.RPAREN; }
  71.405 -    "*"             { return AdaTokenId.STAR; }
  71.406 -    "+"             { return AdaTokenId.PLUS; }
  71.407 -    ","             { return AdaTokenId.COMMA; }
  71.408 -    "-"             { return AdaTokenId.MINUS; }
  71.409 -    "."             { pushState(ST_LOOKING_FOR_PROPERTY);
  71.410 -                      return AdaTokenId.DOT;
  71.411 -                    }
  71.412 -    "/"             { return AdaTokenId.SLASH; }
  71.413 -    ":"             { return AdaTokenId.COLON; }
  71.414 -    ";"             { return AdaTokenId.SEMICOLON; }
  71.415 -    "<"             { return AdaTokenId.GT; }
  71.416 -    "="             { return AdaTokenId.EQ; }
  71.417 -    ">"             { return AdaTokenId.LT; }
  71.418 -    "|"             { return AdaTokenId.BAR; }
  71.419 -    "!"             { return AdaTokenId.BAR; }
  71.420 -
  71.421 -}
  71.422 -
  71.423 -// compound delimiters
  71.424 -
  71.425 -<YYINITIAL> {
  71.426 -
  71.427 -    "=>"             { return AdaTokenId.ARROW; }
  71.428 -    ".."             { return AdaTokenId.DOT_DOT; }
  71.429 -    "**"             { return AdaTokenId.EXPON; }
  71.430 -    ":="             { return AdaTokenId.ASSIGNMENT; }
  71.431 -    "/="             { return AdaTokenId.INEQ; }
  71.432 -    ">="             { return AdaTokenId.GTEQ; }
  71.433 -    "<="             { return AdaTokenId.LTEQ; }
  71.434 -    "<<"             { return AdaTokenId.LTLT; }
  71.435 -    ">>"             { return AdaTokenId.GTGT; }
  71.436 -    "<>"             { return AdaTokenId.BOX; }
  71.437 -
  71.438 -}
  71.439 -
  71.440 -<YYINITIAL> {
  71.441 -
  71.442 -    "boolean"           { return AdaTokenId.BOOLEAN; }
  71.443 -    "character"         { return AdaTokenId.CHARACTER; }
  71.444 -    "float"             { return AdaTokenId.FLOAT; }
  71.445 -    "integer"           { return AdaTokenId.INTEGER; }
  71.446 -    "wide_character"    { return AdaTokenId.WIDE_CHARECTER; }
  71.447 -    "true"              { return AdaTokenId.TRUE; }
  71.448 -    "false"             { return AdaTokenId.FALSE; }
  71.449 -
  71.450 -}
  71.451 -
  71.452 -<ST_LOOKING_FOR_PROPERTY>"." {
  71.453 -    return AdaTokenId.DOT;
  71.454 -}
  71.455 -
  71.456 -<ST_LOOKING_FOR_PROPERTY>".." {
  71.457 -    popState();
  71.458 -    return AdaTokenId.DOT_DOT;
  71.459 -}
  71.460 -
  71.461 -<ST_LOOKING_FOR_PROPERTY>{IDENTIFIER} {
  71.462 -    popState();
  71.463 -    return AdaTokenId.IDENTIFIER;
  71.464 -}
  71.465 -
  71.466 -<ST_LOOKING_FOR_PROPERTY>{ANY_CHAR} {
  71.467 -    yypushback(1);
  71.468 -    popState();
  71.469 -}
  71.470 -
  71.471 -<YYINITIAL>{IDENTIFIER} {
  71.472 -    return  AdaTokenId.IDENTIFIER;
  71.473 -}
  71.474 -
  71.475 -<ST_HIGHLIGHTING_ERROR> {
  71.476 -    {WHITESPACE} {
  71.477 -        popState();
  71.478 -        return AdaTokenId.WHITESPACE;
  71.479 -    }
  71.480 -    . {
  71.481 -        return AdaTokenId.UNKNOWN_TOKEN;
  71.482 -    }
  71.483 -}
  71.484 -
  71.485 -<YYINITIAL>{WHITESPACE} {
  71.486 -    return  AdaTokenId.WHITESPACE;
  71.487 -}
  71.488 -
  71.489 -<YYINITIAL>{DECIMAL_LITERAL} {
  71.490 -    return AdaTokenId.DECIMAL_LITERAL;
  71.491 -}
  71.492 -
  71.493 -<YYINITIAL>{BASED_LITERAL} {
  71.494 -    return AdaTokenId.BASED_LITERAL;
  71.495 -}
  71.496 -
  71.497 -<YYINITIAL>{STRING_LITERAL} {
  71.498 -    return AdaTokenId.STRING_LITERAL;
  71.499 -}
  71.500 -
  71.501 -<YYINITIAL>{CHAR_LITERAL} {
  71.502 -    return AdaTokenId.CHAR_LITERAL;
  71.503 -}
  71.504 -
  71.505 -<YYINITIAL>"--" {
  71.506 -    pushState(ST_LINE_COMMENT);
  71.507 -    return AdaTokenId.COMMENT;
  71.508 -}
  71.509 -
  71.510 -<ST_LINE_COMMENT>[^\n\r]*{ANY_CHAR} {
  71.511 -    popState();
  71.512 -    return AdaTokenId.COMMENT;
  71.513 -}
  71.514 -
  71.515 -<ST_LINE_COMMENT>{NEWLINE} {
  71.516 -    popState();
  71.517 -    return AdaTokenId.COMMENT;
  71.518 -}
  71.519 -
  71.520 -<YYINITIAL>. {
  71.521 -    yypushback(1);
  71.522 -    pushState(ST_HIGHLIGHTING_ERROR);
  71.523 -}
    72.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    72.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/lexer/resources/AdaASTLexer.flex	Mon Oct 15 23:38:26 2012 +0200
    72.3 @@ -0,0 +1,491 @@
    72.4 +/*
    72.5 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
    72.6 + *
    72.7 + * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
    72.8 + *
    72.9 + * The contents of this file are subject to the terms of either the GNU
   72.10 + * General Public License Version 2 only ("GPL") or the Common
   72.11 + * Development and Distribution License("CDDL") (collectively, the
   72.12 + * "License"). You may not use this file except in compliance with the
   72.13 + * License. You can obtain a copy of the License at
   72.14 + * http://www.netbeans.org/cddl-gplv2.html
   72.15 + * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
   72.16 + * specific language governing permissions and limitations under the
   72.17 + * License.  When distributing the software, include this License Header
   72.18 + * Notice in each file and include the License file at
   72.19 + * nbbuild/licenses/CDDL-GPL-2-CP.  Sun designates this
   72.20 + * particular file as subject to the "Classpath" exception as provided
   72.21 + * by Sun in the GPL Version 2 section of the License file that
   72.22 + * accompanied this code. If applicable, add the following below the
   72.23 + * License Header, with the fields enclosed by brackets [] replaced by
   72.24 + * your own identifying information:
   72.25 + * "Portions Copyrighted [year] [name of copyright owner]"
   72.26 + *
   72.27 + * If you wish your version of this file to be governed by only the CDDL
   72.28 + * or only the GPL Version 2, indicate your decision by adding
   72.29 + * "[Contributor] elects to include this software in this distribution
   72.30 + * under the [CDDL or GPL Version 2] license." If you do not indicate a
   72.31 + * single choice of license, a recipient has the option to distribute
   72.32 + * your version of this file under either the CDDL, the GPL Version 2 or
   72.33 + * to extend the choice of license to its licensees as provided above.
   72.34 + * However, if you add GPL Version 2 code and therefore, elected the GPL
   72.35 + * Version 2 license, then the option applies only if the new code is
   72.36 + * made subject to such option by the copyright holder.
   72.37 + *
   72.38 + * Contributor(s):
   72.39 + *
   72.40 + * Portions Copyrighted 2008 Sun Microsystems, Inc.
   72.41 + */
   72.42 +package org.netbeans.modules.ada.editor.lexer;
   72.43 +
   72.44 +import java.util.LinkedList;
   72.45 +import java.util.List;
   72.46 +import org.netbeans.modules.ada.editor.parser.AdaASTSymbols;
   72.47 +import org.netbeans.modules.ada.editor.ast.nodes.*;
   72.48 +import java_cup.runtime.*;
   72.49 +import org.netbeans.modules.ada.project.api.AdaLanguageOptions;
   72.50 +
   72.51 +%%
   72.52 +// Options adn declarations section
   72.53 +
   72.54 +%class AdaASTLexer
   72.55 +%implements Scanner
   72.56 +%type Symbol
   72.57 +%function next_token
   72.58 +%public
   72.59 +
   72.60 +%eofval{
   72.61 +    return createSymbol(AdaASTSymbols.EOF);
   72.62 +%eofval}
   72.63 +%eofclose
   72.64 +
   72.65 +%unicode
   72.66 +%caseless
   72.67 +
   72.68 +//Turns character counting on
   72.69 +%char
   72.70 +//Turns line counting on
   72.71 +%line
   72.72 +//Turns column counting on
   72.73 +%column
   72.74 +
   72.75 +
   72.76 +%state ST_LOOKING_FOR_PROPERTY
   72.77 +%state ST_LINE_COMMENT
   72.78 +
   72.79 +%{
   72.80 +    private final List commentList = new LinkedList();
   72.81 +    private String comment = null;
   72.82 +    private StateStack stack = new StateStack();
   72.83 +    private char yy_old_buffer[] = new char[ZZ_BUFFERSIZE];
   72.84 +    private int yy_old_pushbackPos;
   72.85 +    protected int commentStartPosition;
   72.86 +    private AdaLanguageOptions.AdaVersion adaVersion = AdaLanguageOptions.AdaVersion.ADA_95;
   72.87 +
   72.88 +    public AdaASTLexer(java.io.Reader in, AdaLanguageOptions.AdaVersion adaVersion) {
   72.89 +        this(in);
   72.90 +        this.adaVersion = adaVersion;
   72.91 +    }
   72.92 +
   72.93 +    public AdaLanguageOptions.AdaVersion getAdaVersion() {
   72.94 +            return this.adaVersion;
   72.95 +    }
   72.96 +
   72.97 +    public void reset(java.io.Reader reader) {
   72.98 +        yyreset(reader);
   72.99 +    }
  72.100 +
  72.101 +    public void setState(int state) {
  72.102 +        yybegin(state);
  72.103 +    }
  72.104 +
  72.105 +    public int getState() {
  72.106 +        return yystate();
  72.107 +    }
  72.108 +
  72.109 +    public void resetCommentList() {
  72.110 +            commentList.clear();
  72.111 +    }
  72.112 +
  72.113 +    public List getCommentList() {
  72.114 +            return commentList;
  72.115 +    }
  72.116 +	
  72.117 +    protected void addComment(Comment.Type type) {
  72.118 +            int leftPosition = getTokenStartPosition();
  72.119 +            Comment comm;
  72.120 +            comm = new Comment(commentStartPosition, leftPosition + getTokenLength());
  72.121 +            commentList.add(comm);
  72.122 +    }
  72.123 +	
  72.124 +    private void pushState(int state) {
  72.125 +        stack.pushStack(zzLexicalState);
  72.126 +        yybegin(state);
  72.127 +    }
  72.128 +
  72.129 +    private void popState() {
  72.130 +        yybegin(stack.popStack());
  72.131 +    }
  72.132 +
  72.133 +    public int getCurrentLine() {
  72.134 +        return yyline;
  72.135 +    }
  72.136 +
  72.137 +    protected int getTokenStartPosition() {
  72.138 +        return zzStartRead - zzPushbackPos;
  72.139 +    }
  72.140 +
  72.141 +    protected int getTokenLength() {
  72.142 +        return zzMarkedPos - zzStartRead;
  72.143 +    }
  72.144 +
  72.145 +    public int getLength() {
  72.146 +        return zzEndRead - zzPushbackPos;
  72.147 +    }
  72.148 +    
  72.149 +    private void handleCommentStart() {
  72.150 +        commentStartPosition = getTokenStartPosition();
  72.151 +    }
  72.152 +	
  72.153 +    private void handleLineCommentEnd() {
  72.154 +         addComment(Comment.Type.TYPE_SINGLE_LINE);
  72.155 +    }
  72.156 +        
  72.157 +    private Symbol createFullSymbol(int symbolNumber) {
  72.158 +        Symbol symbol = createSymbol(symbolNumber);
  72.159 +        symbol.value = yytext();
  72.160 +        return symbol;
  72.161 +    }
  72.162 +
  72.163 +    private Symbol createSymbol(int symbolNumber) {
  72.164 +        int leftPosition = getTokenStartPosition();
  72.165 +        Symbol symbol = new Symbol(symbolNumber, leftPosition, leftPosition + getTokenLength());
  72.166 +        return symbol;
  72.167 +    }
  72.168 +
  72.169 +    public int[] getParamenters(){
  72.170 +    	return new int[]{zzMarkedPos, zzPushbackPos, zzCurrentPos, zzStartRead, zzEndRead, yyline};
  72.171 +    }
  72.172 +    
  72.173 +    public void reset(java.io.Reader  reader, char[] buffer, int[] parameters){
  72.174 +            this.zzReader = reader;
  72.175 +            this.zzBuffer = buffer;
  72.176 +            this.zzMarkedPos = parameters[0];
  72.177 +            this.zzPushbackPos = parameters[1];
  72.178 +            this.zzCurrentPos = parameters[2];
  72.179 +            this.zzStartRead = parameters[3];
  72.180 +            this.zzEndRead = parameters[4];
  72.181 +            this.yyline = parameters[5];
  72.182 +            this.yychar = this.zzStartRead - this.zzPushbackPos;
  72.183 +    }
  72.184 +
  72.185 +%}
  72.186 +
  72.187 +/*********************************************************
  72.188 + *                                                       *
  72.189 + * Ada 83, 95, 2005 and 2012 AST Lexer, based on:        *
  72.190 + *                                                       *
  72.191 + * 1. Ada 83 Reference Manual                            *
  72.192 + * 2. Ada Reference Manual                               *
  72.193 + *    ISO/IEC 8652:1995(E)                               *
  72.194 + *    with Technical Corrigendum 1                       *
  72.195 + *    Language and Standard Libraries                    *
  72.196 + *    Copyright © 1992,1993,1994,1995 Intermetrics, Inc. *
  72.197 + *    Copyright © 2000 The MITRE Corporation, Inc.       *
  72.198 + * 3. http://www.adaic.com/standards/95lrm/lexer9x.l     *
  72.199 + * 4. Ada Reference Manual                               *
  72.200 + *    ISO/IEC 8652:201z Ed. 3                            *
  72.201 + *    with Technical Corrigendum 1                       *
  72.202 + *    and Amendment 1                                    *
  72.203 + *    and Amendment 2 (Draft 10)                         *
  72.204 + *    Language and Standard Libraries                    *
  72.205 + *    Copyright © 1992,1993,1994,1995 Intermetrics, Inc. *
  72.206 + *    Copyright © 2000 The MITRE Corporation, Inc.       *
  72.207 + *    Copyright © 2004, 2005, 2006 AXE Consultants       *
  72.208 + *    Copyright © 2004, 2005, 2006 Ada-Europe            *
  72.209 + *    Copyright © 2008, 2009, 2010 AXE Consultants       *
  72.210 + *                                                       *
  72.211 + * Author: Andrea Lucarelli                              *
  72.212 + * Lexer Generator: JFlex                                *
  72.213 + *                                                       *
  72.214 + *********************************************************/
  72.215 +
  72.216 +DIGIT=[0-9]
  72.217 +EXTENDED_DIGIT=[0-9a-fA-F]
  72.218 +INTEGER=({DIGIT}(_?{DIGIT})*)
  72.219 +EXPONENT=([eE](\+?|-){INTEGER})
  72.220 +DECIMAL_LITERAL={INTEGER}(\.?{INTEGER})?{EXPONENT}?
  72.221 +BASE={INTEGER}
  72.222 +BASED_INTEGER={EXTENDED_DIGIT}(_?{EXTENDED_DIGIT})*
  72.223 +BASED_LITERAL={BASE}(#|:){BASED_INTEGER}(\.{BASED_INTEGER})?(#|:){EXPONENT}?
  72.224 +IDENTIFIER=[a-zA-Z]("_"?[a-zA-Z0-9])*
  72.225 +WHITESPACE=[ \n\r\t]+
  72.226 +STRING_LITERAL=\"(\"\"|[^\n\"])*\"
  72.227 +CHAR_LITERAL=\'[^\n]\'
  72.228 +WHITESPACE=[ \n\r\t]+
  72.229 +NEWLINE=("\r"|"\n"|"\r\n")
  72.230 +ANY_CHAR=(.|[\n])
  72.231 +
  72.232 +%%
  72.233 +
  72.234 +// Ada 83, 95 and 2005 keywords
  72.235 +
  72.236 +<YYINITIAL> {
  72.237 +
  72.238 +    "abort"         { return createSymbol(AdaASTSymbols.ABORT); }
  72.239 +    "abs"           { return createSymbol(AdaASTSymbols.ABS); }
  72.240 +    "abstract"      {
  72.241 +        if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
  72.242 +            return createSymbol(AdaASTSymbols.ABSTRACT);
  72.243 +        }
  72.244 +        else {
  72.245 +            return createSymbol(AdaASTSymbols.IDENTIFIER);
  72.246 +        }
  72.247 +    }
  72.248 +    "access"        { return createSymbol(AdaASTSymbols.ACCESS); }
  72.249 +    "accept"        { return createSymbol(AdaASTSymbols.ACCEPT); }
  72.250 +    "aliased"       {
  72.251 +        if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
  72.252 +            return createSymbol(AdaASTSymbols.ALIASED);
  72.253 +        }
  72.254 +        else {
  72.255 +            return createSymbol(AdaASTSymbols.IDENTIFIER);
  72.256 +        }
  72.257 +    }
  72.258 +    "all"           { return createSymbol(AdaASTSymbols.ALL); }
  72.259 +    "and"           { return createSymbol(AdaASTSymbols.AND); }
  72.260 +    "array"         { return createSymbol(AdaASTSymbols.ARRAY); }
  72.261 +    "at"            { return createSymbol(AdaASTSymbols.AT); }
  72.262 +    "begin"         { return createSymbol(AdaASTSymbols.BEGIN); }
  72.263 +    "body"          { return createSymbol(AdaASTSymbols.BODY); }
  72.264 +    "constant"      { return createSymbol(AdaASTSymbols.CONSTANT); }
  72.265 +    "case"          { return createSymbol(AdaASTSymbols.CASE); }
  72.266 +    "declare"       { return createSymbol(AdaASTSymbols.DECLARE); }
  72.267 +    "delay"         { return createSymbol(AdaASTSymbols.DELAY); }
  72.268 +    "do"            { return createSymbol(AdaASTSymbols.DO); }
  72.269 +    "delta"         { return createSymbol(AdaASTSymbols.DELTA); }
  72.270 +    "else"          { return createSymbol(AdaASTSymbols.ELSE); }
  72.271 +    "elsif"         { return createSymbol(AdaASTSymbols.ELSIF); }
  72.272 +    "end"           { return createSymbol(AdaASTSymbols.END); }
  72.273 +    "entry"         { return createSymbol(AdaASTSymbols.ENTRY); }
  72.274 +    "exception"     { return createSymbol(AdaASTSymbols.EXCEPTION); }
  72.275 +    "exit"          { return createSymbol(AdaASTSymbols.EXIT); }
  72.276 +    "for"           { return createSymbol(AdaASTSymbols.FOR); }
  72.277 +    "function"      { return createSymbol(AdaASTSymbols.FUNCTION); }
  72.278 +    "generic"       { return createSymbol(AdaASTSymbols.GENERIC); }
  72.279 +    "goto"          { return createSymbol(AdaASTSymbols.GOTO); }
  72.280 +    "if"            { return createSymbol(AdaASTSymbols.IF); }
  72.281 +    "in"            { return createSymbol(AdaASTSymbols.IN); }
  72.282 +    "interface"     {
  72.283 +        if (adaVersion == AdaLanguageOptions.AdaVersion.ADA_2005 ||
  72.284 +            adaVersion == AdaLanguageOptions.AdaVersion.ADA_2012) {
  72.285 +            return createSymbol(AdaASTSymbols.INTERFACE);
  72.286 +        }
  72.287 +        else {
  72.288 +            return createFullSymbol(AdaASTSymbols.IDENTIFIER);
  72.289 +        }
  72.290 +    }
  72.291 +    "is"            { return createSymbol(AdaASTSymbols.IS); }
  72.292 +    "limited"       { return createSymbol(AdaASTSymbols.LIMITED); }
  72.293 +    "loop"          { return createSymbol(AdaASTSymbols.LOOP); }
  72.294 +    "mod"           { return createSymbol(AdaASTSymbols.MOD); }
  72.295 +    "new"           { return createSymbol(AdaASTSymbols.NEW); }
  72.296 +    "not"           { return createSymbol(AdaASTSymbols.NOT); }
  72.297 +    "null"          { return createSymbol(AdaASTSymbols.NULL); }
  72.298 +    "of"            { return createSymbol(AdaASTSymbols.OF); }
  72.299 +    "or"            { return createSymbol(AdaASTSymbols.OR); }
  72.300 +    "others"        { return createSymbol(AdaASTSymbols.OTHERS); }
  72.301 +    "out"           { return createSymbol(AdaASTSymbols.OUT); }
  72.302 +    "overriding"    {
  72.303 +        if (adaVersion == AdaLanguageOptions.AdaVersion.ADA_2005 ||
  72.304 +            adaVersion == AdaLanguageOptions.AdaVersion.ADA_2012) {
  72.305 +            return createSymbol(AdaASTSymbols.OVERRIDING);
  72.306 +        }
  72.307 +        else {
  72.308 +            return createFullSymbol(AdaASTSymbols.IDENTIFIER);
  72.309 +        }
  72.310 +    }
  72.311 +    "package"       { return createSymbol(AdaASTSymbols.PACKAGE); }
  72.312 +    "pragma"        { return createSymbol(AdaASTSymbols.PRAGMA); }
  72.313 +    "private"       { return createSymbol(AdaASTSymbols.PRIVATE); }
  72.314 +    "procedure"     { return createSymbol(AdaASTSymbols.PROCEDURE); }
  72.315 +    "protected"     {
  72.316 +        if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
  72.317 +            return createSymbol(AdaASTSymbols.PROTECTED);
  72.318 +        }
  72.319 +        else {
  72.320 +            return createSymbol(AdaASTSymbols.IDENTIFIER);
  72.321 +        }
  72.322 +    }
  72.323 +    "return"        { return createSymbol(AdaASTSymbols.RETURN); }
  72.324 +    "reverse"       { return createSymbol(AdaASTSymbols.REVERSE); }
  72.325 +    "raise"         { return createSymbol(AdaASTSymbols.RAISE); }
  72.326 +    "range"         { return createSymbol(AdaASTSymbols.RANGE); }
  72.327 +    "record"        { return createSymbol(AdaASTSymbols.RECORD); }
  72.328 +    "rem"           { return createSymbol(AdaASTSymbols.REM); }
  72.329 +    "renames"       { return createSymbol(AdaASTSymbols.RENAMES); }
  72.330 +    "requeue"       {
  72.331 +        if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
  72.332 +            return createSymbol(AdaASTSymbols.REQUEUE);
  72.333 +        }
  72.334 +        else {
  72.335 +            return createSymbol(AdaASTSymbols.IDENTIFIER);
  72.336 +        }
  72.337 +    }
  72.338 +    "select"        { return createSymbol(AdaASTSymbols.SELECT); }
  72.339 +    "separate"      { return createSymbol(AdaASTSymbols.SEPARATE); }
  72.340 +    "some"  {
  72.341 +        if (adaVersion == AdaLanguageOptions.AdaVersion.ADA_2012) {
  72.342 +            return createSymbol(AdaASTSymbols.SOME);
  72.343 +        }
  72.344 +        else {
  72.345 +            return createFullSymbol(AdaASTSymbols.IDENTIFIER);
  72.346 +        }
  72.347 +    }
  72.348 +    "subtype"       { return createSymbol(AdaASTSymbols.SUBTYPE); }
  72.349 +    "synchronized"  {
  72.350 +        if (adaVersion == AdaLanguageOptions.AdaVersion.ADA_2005 ||
  72.351 +            adaVersion == AdaLanguageOptions.AdaVersion.ADA_2012) {
  72.352 +            return createSymbol(AdaASTSymbols.SYNCHRONIZED);
  72.353 +        }
  72.354 +        else {
  72.355 +            return createFullSymbol(AdaASTSymbols.IDENTIFIER);
  72.356 +        }
  72.357 +    }
  72.358 +    "tagged"        {
  72.359 +        if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
  72.360 +            return createSymbol(AdaASTSymbols.TAGGED);
  72.361 +        }
  72.362 +        else {
  72.363 +            return createSymbol(AdaASTSymbols.IDENTIFIER);
  72.364 +        }
  72.365 +    }
  72.366 +    "task"          { return createSymbol(AdaASTSymbols.TASK); }
  72.367 +    "terminate"     { return createSymbol(AdaASTSymbols.TERMINATE); }
  72.368 +    "then"          { return createSymbol(AdaASTSymbols.THEN); }
  72.369 +    "type"          { return createSymbol(AdaASTSymbols.TYPE); }
  72.370 +    "until"         {
  72.371 +        if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
  72.372 +            return createSymbol(AdaASTSymbols.UNTIL);
  72.373 +        }
  72.374 +        else {
  72.375 +            return createSymbol(AdaASTSymbols.IDENTIFIER);
  72.376 +        }
  72.377 +    }
  72.378 +    "use"           { return createSymbol(AdaASTSymbols.USE); }
  72.379 +    "when"          { return createSymbol(AdaASTSymbols.WHEN); }
  72.380 +    "while"         { return createSymbol(AdaASTSymbols.WHILE); }
  72.381 +    "with"          { return createSymbol(AdaASTSymbols.WITH); }
  72.382 +    "xor"           { return createSymbol(AdaASTSymbols.XOR); }
  72.383 +
  72.384 +}
  72.385 +
  72.386 +// delimiters
  72.387 +
  72.388 +<YYINITIAL> {
  72.389 +
  72.390 +    "&"             { return createSymbol(AdaASTSymbols.AMP); }
  72.391 +    "'"             { return createSymbol(AdaASTSymbols.TICK); }
  72.392 +    "("             { return createSymbol(AdaASTSymbols.LPAREN); }
  72.393 +    ")"             { return createSymbol(AdaASTSymbols.RPAREN); }
  72.394 +    "*"             { return createSymbol(AdaASTSymbols.STAR); }
  72.395 +    "+"             { return createSymbol(AdaASTSymbols.PLUS); }
  72.396 +    ","             { return createSymbol(AdaASTSymbols.COMMA); }
  72.397 +    "-"             { return createSymbol(AdaASTSymbols.MINUS); }
  72.398 +    "."             { pushState(ST_LOOKING_FOR_PROPERTY);
  72.399 +                      return createSymbol(AdaASTSymbols.DOT);
  72.400 +                    }
  72.401 +    "/"             { return createSymbol(AdaASTSymbols.SLASH); }
  72.402 +    ":"             { return createSymbol(AdaASTSymbols.COLON); }
  72.403 +    ";"             { return createSymbol(AdaASTSymbols.SEMICOLON); }
  72.404 +    "<"             { return createSymbol(AdaASTSymbols.GT); }
  72.405 +    "="             { return createSymbol(AdaASTSymbols.EQ); }
  72.406 +    ">"             { return createSymbol(AdaASTSymbols.LT); }
  72.407 +    "|"             { return createSymbol(AdaASTSymbols.BAR); }
  72.408 +    "!"             { return createSymbol(AdaASTSymbols.BAR); }
  72.409 +
  72.410 +}
  72.411 +
  72.412 +// compound delimiters
  72.413 +
  72.414 +<YYINITIAL> {
  72.415 +
  72.416 +    "=>"             { return createSymbol(AdaASTSymbols.ARROW); }
  72.417 +    ".."             { return createSymbol(AdaASTSymbols.DOT_DOT); }
  72.418 +    "**"             { return createSymbol(AdaASTSymbols.EXPON); }
  72.419 +    ":="             { return createSymbol(AdaASTSymbols.ASSIGNMENT); }
  72.420 +    "/="             { return createSymbol(AdaASTSymbols.INEQ); }
  72.421 +    ">="             { return createSymbol(AdaASTSymbols.GTEQ); }
  72.422 +    "<="             { return createSymbol(AdaASTSymbols.LTEQ); }
  72.423 +    "<<"             { return createSymbol(AdaASTSymbols.LTLT); }
  72.424 +    ">>"             { return createSymbol(AdaASTSymbols.GTGT); }
  72.425 +    "<>"             { return createSymbol(AdaASTSymbols.BOX); }
  72.426 +
  72.427 +}
  72.428 +
  72.429 +<ST_LOOKING_FOR_PROPERTY>"." {
  72.430 +    return createSymbol(AdaASTSymbols.DOT);
  72.431 +}
  72.432 +
  72.433 +<ST_LOOKING_FOR_PROPERTY>".." {
  72.434 +    popState();
  72.435 +    return createSymbol(AdaASTSymbols.DOT_DOT);
  72.436 +}
  72.437 +
  72.438 +<ST_LOOKING_FOR_PROPERTY>{IDENTIFIER} {
  72.439 +    popState();
  72.440 +    return createFullSymbol(AdaASTSymbols.IDENTIFIER);
  72.441 +}
  72.442 +
  72.443 +<ST_LOOKING_FOR_PROPERTY>{ANY_CHAR} {
  72.444 +    yypushback(yylength());
  72.445 +    popState();
  72.446 +}
  72.447 +
  72.448 +<YYINITIAL>{CHAR_LITERAL} {
  72.449 +    return createFullSymbol(AdaASTSymbols.CHAR_LITERAL);
  72.450 +}
  72.451 +
  72.452 +<YYINITIAL>{STRING_LITERAL} {
  72.453 +    return createFullSymbol(AdaASTSymbols.STRING_LITERAL);
  72.454 +}
  72.455 +
  72.456 +<YYINITIAL>{BASED_LITERAL} {
  72.457 +    return createFullSymbol(AdaASTSymbols.BASED_LITERAL);
  72.458 +}
  72.459 +
  72.460 +<YYINITIAL>{DECIMAL_LITERAL} {
  72.461 +    return createFullSymbol(AdaASTSymbols.DECIMAL_LITERAL);
  72.462 +}
  72.463 +
  72.464 +<YYINITIAL>{IDENTIFIER} {
  72.465 +    return createFullSymbol(AdaASTSymbols.IDENTIFIER);
  72.466 +}
  72.467 +
  72.468 +<YYINITIAL>{WHITESPACE} {
  72.469 +}
  72.470 +
  72.471 +<YYINITIAL>"--" {
  72.472 +	handleCommentStart();
  72.473 +	yybegin(ST_LINE_COMMENT);
  72.474 +}
  72.475 +
  72.476 +<ST_LINE_COMMENT>[^\n\r]*(ANY_CHAR|{NEWLINE}) {
  72.477 +    handleLineCommentEnd();
  72.478 +    yybegin(YYINITIAL);
  72.479 +}
  72.480 +
  72.481 +<YYINITIAL> <<EOF>> {
  72.482 +              if (yytext().length() > 0) {
  72.483 +                yypushback(1);  // backup eof
  72.484 +                comment = yytext();
  72.485 +              }
  72.486 +              else {
  72.487 +                return createSymbol(AdaASTSymbols.EOF);
  72.488 +              }
  72.489 +              
  72.490 +}
  72.491 +
  72.492 +<YYINITIAL>{ANY_CHAR} {
  72.493 +	// do nothing
  72.494 +}
  72.495 \ No newline at end of file
    73.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    73.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/lexer/resources/AdaASTLexer.skeleton	Mon Oct 15 23:38:26 2012 +0200
    73.3 @@ -0,0 +1,321 @@
    73.4 +
    73.5 +  /** This character denotes the end of file */
    73.6 +  public static final int YYEOF = -1;
    73.7 +
    73.8 +  /** initial size of the lookahead buffer */
    73.9 +--- private static final int ZZ_BUFFERSIZE = ...;
   73.10 +
   73.11 +  /** lexical states */
   73.12 +---  lexical states, charmap
   73.13 +
   73.14 +  /* error codes */
   73.15 +  private static final int ZZ_UNKNOWN_ERROR = 0;
   73.16 +  private static final int ZZ_NO_MATCH = 1;
   73.17 +  private static final int ZZ_PUSHBACK_2BIG = 2;
   73.18 +
   73.19 +  /* error messages for the codes above */
   73.20 +  private static final String ZZ_ERROR_MSG[] = {
   73.21 +    "Unkown internal scanner error",
   73.22 +    "Error: could not match input",
   73.23 +    "Error: pushback value was too large"
   73.24 +  };
   73.25 +
   73.26 +--- isFinal list
   73.27 +  /** the input device */
   73.28 +  private java.io.Reader zzReader;
   73.29 +
   73.30 +  /** the current state of the DFA */
   73.31 +  private int zzState;
   73.32 +
   73.33 +  /** the current lexical state */
   73.34 +  private int zzLexicalState = YYINITIAL;
   73.35 +
   73.36 +  /** this buffer contains the current text to be matched and is
   73.37 +      the source of the yytext() string */
   73.38 +  private char zzBuffer[] = new char[ZZ_BUFFERSIZE];
   73.39 +
   73.40 +  /** the textposition at the last accepting state */
   73.41 +  private int zzMarkedPos;
   73.42 +
   73.43 +  /** the textposition at the last state to be included in yytext */
   73.44 +  private int zzPushbackPos;
   73.45 +
   73.46 +  /** the current text position in the buffer */
   73.47 +  private int zzCurrentPos;
   73.48 +
   73.49 +  /** startRead marks the beginning of the yytext() string in the buffer */
   73.50 +  private int zzStartRead;
   73.51 +
   73.52 +  /** endRead marks the last character in the buffer, that has been read
   73.53 +      from input */
   73.54 +  private int zzEndRead;
   73.55 +
   73.56 +  /** number of newlines encountered up to the start of the matched text */
   73.57 +  private int yyline;
   73.58 +
   73.59 +  /** the number of characters up to the start of the matched text */
   73.60 +  private int yychar;
   73.61 +
   73.62 +  /**
   73.63 +   * the number of characters from the last newline up to the start of the 
   73.64 +   * matched text
   73.65 +   */
   73.66 +  private int yycolumn;
   73.67 +
   73.68 +  /** 
   73.69 +   * zzAtBOL == true <=> the scanner is currently at the beginning of a line
   73.70 +   */
   73.71 +  private boolean zzAtBOL = true;
   73.72 +
   73.73 +  /** zzAtEOF == true <=> the scanner is at the EOF */
   73.74 +  private boolean zzAtEOF;
   73.75 +
   73.76 +  /** denotes if the user-EOF-code has already been executed */
   73.77 +  private boolean zzEOFDone;
   73.78 +
   73.79 +--- user class code
   73.80 +
   73.81 +  /**
   73.82 +   * Creates a new scanner
   73.83 +   * There is also a java.io.InputStream version of this constructor.
   73.84 +   *
   73.85 +   * @param   in  the java.io.Reader to read input from.
   73.86 +   */
   73.87 +--- constructor declaration
   73.88 +
   73.89 +
   73.90 +  /**
   73.91 +   * Refills the input buffer.
   73.92 +   *
   73.93 +   * @return      <code>false</code>, iff there was new input.
   73.94 +   * 
   73.95 +   * @exception   java.io.IOException  if any I/O-Error occurs
   73.96 +   */
   73.97 +  private boolean zzRefill() throws java.io.IOException {
   73.98 +
   73.99 +    /* first: make room (if you can) */
  73.100 +    if (zzStartRead > 0) {
  73.101 +      System.arraycopy(zzBuffer, zzStartRead,
  73.102 +                       zzBuffer, 0,
  73.103 +                       zzEndRead-zzStartRead);
  73.104 +
  73.105 +      /* translate stored positions */
  73.106 +      zzEndRead-= zzStartRead;
  73.107 +      zzCurrentPos-= zzStartRead;
  73.108 +      zzMarkedPos-= zzStartRead;
  73.109 +      zzPushbackPos-= zzStartRead;
  73.110 +      zzStartRead = 0;
  73.111 +    }
  73.112 +
  73.113 +    /* is the buffer big enough? */
  73.114 +    if (zzCurrentPos >= zzBuffer.length) {
  73.115 +      /* if not: blow it up */
  73.116 +      char newBuffer[] = new char[zzCurrentPos*2];
  73.117 +      System.arraycopy(zzBuffer, 0, newBuffer, 0, zzBuffer.length);
  73.118 +      zzBuffer = newBuffer;
  73.119 +    }
  73.120 +
  73.121 +    /* finally: fill the buffer with new input */
  73.122 +    int numRead = zzReader.read(zzBuffer, zzEndRead,
  73.123 +                                            zzBuffer.length-zzEndRead);
  73.124 +
  73.125 +    if (numRead < 0) {
  73.126 +      return true;
  73.127 +    }
  73.128 +    else {
  73.129 +      zzEndRead+= numRead;
  73.130 +      return false;
  73.131 +    }
  73.132 +  }
  73.133 +
  73.134 +    
  73.135 +  /**
  73.136 +   * Closes the input stream.
  73.137 +   */
  73.138 +  public final void yyclose() throws java.io.IOException {
  73.139 +    zzAtEOF = true;            /* indicate end of file */
  73.140 +    zzEndRead = zzStartRead;  /* invalidate buffer    */
  73.141 +
  73.142 +    if (zzReader != null)
  73.143 +      zzReader.close();
  73.144 +  }
  73.145 +
  73.146 +
  73.147 +  /**
  73.148 +   * Resets the scanner to read from a new input stream.
  73.149 +   * Does not close the old reader.
  73.150 +   *
  73.151 +   * All internal variables are reset, the old input stream 
  73.152 +   * <b>cannot</b> be reused (internal buffer is discarded and lost).
  73.153 +   * Lexical state is set to <tt>ZZ_INITIAL</tt>.
  73.154 +   *
  73.155 +   * @param reader   the new input stream 
  73.156 +   */
  73.157 +  public final void yyreset(java.io.Reader reader) {
  73.158 +    zzReader = reader;
  73.159 +    zzAtBOL  = true;
  73.160 +    zzAtEOF  = false;
  73.161 +    zzEOFDone  = false;
  73.162 +    zzEndRead = zzStartRead = 0;
  73.163 +    zzCurrentPos = zzMarkedPos = zzPushbackPos = 0;
  73.164 +    yyline = yychar = yycolumn = 0;
  73.165 +    zzLexicalState = YYINITIAL;
  73.166 +  }
  73.167 +
  73.168 +
  73.169 +  /**
  73.170 +   * Returns the current lexical state.
  73.171 +   */
  73.172 +  public final int yystate() {
  73.173 +    return zzLexicalState;
  73.174 +  }
  73.175 +
  73.176 +
  73.177 +  /**
  73.178 +   * Enters a new lexical state
  73.179 +   *
  73.180 +   * @param newState the new lexical state
  73.181 +   */
  73.182 +  public final void yybegin(int newState) {
  73.183 +    zzLexicalState = newState;
  73.184 +  }
  73.185 +
  73.186 +
  73.187 +  /**
  73.188 +   * Returns the text matched by the current regular expression.
  73.189 +   */
  73.190 +  public final String yytext() {
  73.191 +    return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead );
  73.192 +  }
  73.193 +
  73.194 +
  73.195 +  /**
  73.196 +   * Returns the character at position <tt>pos</tt> from the 
  73.197 +   * matched text. 
  73.198 +   * 
  73.199 +   * It is equivalent to yytext().charAt(pos), but faster
  73.200 +   *
  73.201 +   * @param pos the position of the character to fetch. 
  73.202 +   *            A value from 0 to yylength()-1.
  73.203 +   *
  73.204 +   * @return the character at position pos
  73.205 +   */
  73.206 +  public final char yycharat(int pos) {
  73.207 +    return zzBuffer[zzStartRead+pos];
  73.208 +  }
  73.209 +
  73.210 +
  73.211 +  /**
  73.212 +   * Returns the length of the matched text region.
  73.213 +   */
  73.214 +  public final int yylength() {
  73.215 +    return zzMarkedPos-zzStartRead;
  73.216 +  }
  73.217 +
  73.218 +
  73.219 +  /**
  73.220 +   * Reports an error that occured while scanning.
  73.221 +   *
  73.222 +   * In a wellformed scanner (no or only correct usage of 
  73.223 +   * yypushback(int) and a match-all fallback rule) this method 
  73.224 +   * will only be called with things that "Can't Possibly Happen".
  73.225 +   * If this method is called, something is seriously wrong
  73.226 +   * (e.g. a JFlex bug producing a faulty scanner etc.).
  73.227 +   *
  73.228 +   * Usual syntax/scanner level error handling should be done
  73.229 +   * in error fallback rules.
  73.230 +   *
  73.231 +   * @param   errorCode  the code of the errormessage to display
  73.232 +   */
  73.233 +--- zzScanError declaration
  73.234 +    String message;
  73.235 +    try {
  73.236 +      message = ZZ_ERROR_MSG[errorCode];
  73.237 +    }
  73.238 +    catch (ArrayIndexOutOfBoundsException e) {
  73.239 +      message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR];
  73.240 +    }
  73.241 +
  73.242 +--- throws clause
  73.243 +  } 
  73.244 +
  73.245 +
  73.246 +  /**
  73.247 +   * Pushes the specified amount of characters back into the input stream.
  73.248 +   *
  73.249 +   * They will be read again by then next call of the scanning method
  73.250 +   *
  73.251 +   * @param number  the number of characters to be read again.
  73.252 +   *                This number must not be greater than yylength()!
  73.253 +   */
  73.254 +--- yypushback decl (contains zzScanError exception)
  73.255 +    if ( number > yylength() )
  73.256 +      zzScanError(ZZ_PUSHBACK_2BIG);
  73.257 +
  73.258 +    zzMarkedPos -= number;
  73.259 +  }
  73.260 +
  73.261 +
  73.262 +--- zzDoEOF
  73.263 +  /**
  73.264 +   * Resumes scanning until the next regular expression is matched,
  73.265 +   * the end of input is encountered or an I/O-Error occurs.
  73.266 +   *
  73.267 +   * @return      the next token
  73.268 +   * @exception   java.io.IOException  if any I/O-Error occurs
  73.269 +   */
  73.270 +--- yylex declaration
  73.271 +    int zzInput;
  73.272 +    int zzAction;
  73.273 +
  73.274 +    // cached fields:
  73.275 +    int zzCurrentPosL;
  73.276 +    int zzMarkedPosL;
  73.277 +    int zzEndReadL = zzEndRead;
  73.278 +    char [] zzBufferL = zzBuffer;
  73.279 +    char [] zzCMapL = ZZ_CMAP;
  73.280 +
  73.281 +--- local declarations
  73.282 +
  73.283 +    while (true) {
  73.284 +      zzMarkedPosL = zzMarkedPos;
  73.285 +
  73.286 +--- start admin (line, char, col count)
  73.287 +      zzAction = -1;
  73.288 +
  73.289 +      zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL;
  73.290 +  
  73.291 +--- start admin (lexstate etc)
  73.292 +
  73.293 +      zzForAction: {
  73.294 +        while (true) {
  73.295 +    
  73.296 +--- next input, line, col, char count, next transition, isFinal action
  73.297 +            zzAction = zzState;
  73.298 +            zzMarkedPosL = zzCurrentPosL;
  73.299 +--- line count update
  73.300 +          }
  73.301 +
  73.302 +        }
  73.303 +      }
  73.304 +
  73.305 +      // store back cached position
  73.306 +      zzMarkedPos = zzMarkedPosL;
  73.307 +--- char count update
  73.308 +
  73.309 +--- actions
  73.310 +        default: 
  73.311 +          if (zzInput == YYEOF && (zzStartRead == zzCurrentPos)) {
  73.312 +            zzAtEOF = true;
  73.313 +--- eofvalue
  73.314 +          } 
  73.315 +          else {
  73.316 +--- no match
  73.317 +          }
  73.318 +      }
  73.319 +    }
  73.320 +  }
  73.321 +
  73.322 +--- main
  73.323 +
  73.324 +}
    74.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    74.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/lexer/resources/AdaSyntaxLexer.flex	Mon Oct 15 23:38:26 2012 +0200
    74.3 @@ -0,0 +1,882 @@
    74.4 +/*
    74.5 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
    74.6 + *
    74.7 + * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
    74.8 + *
    74.9 + * The contents of this file are subject to the terms of either the GNU
   74.10 + * General Public License Version 2 only ("GPL") or the Common
   74.11 + * Development and Distribution License("CDDL") (collectively, the
   74.12 + * "License"). You may not use this file except in compliance with the
   74.13 + * License. You can obtain a copy of the License at
   74.14 + * http://www.netbeans.org/cddl-gplv2.html
   74.15 + * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
   74.16 + * specific language governing permissions and limitations under the
   74.17 + * License.  When distributing the software, include this License Header
   74.18 + * Notice in each file and include the License file at
   74.19 + * nbbuild/licenses/CDDL-GPL-2-CP.  Sun designates this
   74.20 + * particular file as subject to the "Classpath" exception as provided
   74.21 + * by Sun in the GPL Version 2 section of the License file that
   74.22 + * accompanied this code. If applicable, add the following below the
   74.23 + * License Header, with the fields enclosed by brackets [] replaced by
   74.24 + * your own identifying information:
   74.25 + * "Portions Copyrighted [year] [name of copyright owner]"
   74.26 + *
   74.27 + * If you wish your version of this file to be governed by only the CDDL
   74.28 + * or only the GPL Version 2, indicate your decision by adding
   74.29 + * "[Contributor] elects to include this software in this distribution
   74.30 + * under the [CDDL or GPL Version 2] license." If you do not indicate a
   74.31 + * single choice of license, a recipient has the option to distribute
   74.32 + * your version of this file under either the CDDL, the GPL Version 2 or
   74.33 + * to extend the choice of license to its licensees as provided above.
   74.34 + * However, if you add GPL Version 2 code and therefore, elected the GPL
   74.35 + * Version 2 license, then the option applies only if the new code is
   74.36 + * made subject to such option by the copyright holder.
   74.37 + *
   74.38 + * Contributor(s):
   74.39 + *
   74.40 + * Portions Copyrighted 2008 Sun Microsystems, Inc.
   74.41 + */
   74.42 +package org.netbeans.modules.ada.editor.lexer;
   74.43 +
   74.44 +import org.netbeans.spi.lexer.LexerInput;
   74.45 +import org.netbeans.spi.lexer.LexerRestartInfo;
   74.46 +import org.netbeans.modules.ada.project.api.AdaLanguageOptions;
   74.47 +
   74.48 +%%
   74.49 +
   74.50 +%public
   74.51 +%class AdaSyntaxLexer
   74.52 +%type AdaTokenId
   74.53 +%function nextToken
   74.54 +%unicode
   74.55 +%caseless
   74.56 +%char
   74.57 +
   74.58 +%state ST_LOOKING_FOR_PROPERTY
   74.59 +%state ST_CHAR_LITERAL
   74.60 +%state ST_LINE_COMMENT
   74.61 +%state ST_HIGHLIGHTING_ERROR
   74.62 +
   74.63 +%eofval{
   74.64 +       if(input.readLength() > 0) {
   74.65 +            // backup eof
   74.66 +            input.backup(1);
   74.67 +            //and return the text as error token
   74.68 +            return AdaTokenId.UNKNOWN_TOKEN;
   74.69 +        } else {
   74.70 +            return null;
   74.71 +        }
   74.72 +%eofval}
   74.73 +
   74.74 +%{
   74.75 +
   74.76 +    private StateStack stack = new StateStack();
   74.77 +
   74.78 +    private AdaLanguageOptions.AdaVersion adaVersion = AdaLanguageOptions.AdaVersion.ADA_95;
   74.79 +
   74.80 +    private LexerInput input;
   74.81 +    
   74.82 +    public AdaSyntaxLexer(LexerRestartInfo info, AdaLanguageOptions.AdaVersion adaVersion) {
   74.83 +        this.input = info.input();
   74.84 +        this.adaVersion = adaVersion;
   74.85 +
   74.86 +        if(info.state() != null) {
   74.87 +            //reset state
   74.88 +            setState((LexerState)info.state());
   74.89 +        } else {
   74.90 +            //initial state
   74.91 +            zzState = zzLexicalState = YYINITIAL;
   74.92 +            stack.clear();
   74.93 +        }
   74.94 +
   74.95 +    }
   74.96 +
   74.97 +    public static final class LexerState  {
   74.98 +        final StateStack stack;
   74.99 +        /** the current state of the DFA */
  74.100 +        final int zzState;
  74.101 +        /** the current lexical state */
  74.102 +        final int zzLexicalState;
  74.103 +        final AdaLanguageOptions.AdaVersion adaVersion;
  74.104 +
  74.105 +        LexerState (StateStack stack, int zzState, int zzLexicalState, AdaLanguageOptions.AdaVersion adaVersion) {
  74.106 +            this.stack = stack;
  74.107 +            this.zzState = zzState;
  74.108 +            this.zzLexicalState = zzLexicalState;
  74.109 +            this.adaVersion = adaVersion;
  74.110 +        }
  74.111 +
  74.112 +        @Override
  74.113 +        public boolean equals(Object obj) {
  74.114 +            if (this == obj) {
  74.115 +                    return true;
  74.116 +            }
  74.117 +
  74.118 +            if (obj == null || obj.getClass() != this.getClass()) {
  74.119 +                    return false;
  74.120 +            }
  74.121 +
  74.122 +            LexerState state = (LexerState) obj;
  74.123 +            return (this.stack.equals(state.stack)
  74.124 +                && (this.zzState == state.zzState)
  74.125 +                && (this.adaVersion == state.adaVersion)
  74.126 +                && (this.zzLexicalState == state.zzLexicalState));
  74.127 +        }
  74.128 +
  74.129 +        @Override
  74.130 +        public int hashCode() {
  74.131 +            int hash = 11;
  74.132 +            hash = 31 * hash + this.zzState;
  74.133 +            hash = 31 * hash + this.zzLexicalState;
  74.134 +            hash = 31 * hash + this.stack.hashCode();
  74.135 +            return hash;
  74.136 +        }
  74.137 +    }
  74.138 +        
  74.139 +    public LexerState getState() {
  74.140 +        return new LexerState(stack.createClone(), zzState, zzLexicalState, adaVersion);
  74.141 +    }
  74.142 +
  74.143 +    public void setState(LexerState state) {
  74.144 +        this.stack.copyFrom(state.stack);
  74.145 +        this.zzState = state.zzState;
  74.146 +        this.zzLexicalState = state.zzLexicalState;
  74.147 +        this.adaVersion = state.adaVersion;
  74.148 +    }
  74.149 +    
  74.150 +    public int[] getParamenters(){
  74.151 +    	return new int[]{zzMarkedPos, zzPushbackPos, zzCurrentPos, zzStartRead, zzEndRead, yyline, zzLexicalState};
  74.152 +    }
  74.153 +
  74.154 +    protected int getZZLexicalState() {
  74.155 +        return zzLexicalState;
  74.156 +    }
  74.157 +
  74.158 +    protected int getZZMarkedPos() {
  74.159 +        return zzMarkedPos;
  74.160 +    }
  74.161 +
  74.162 +    protected int getZZEndRead() {
  74.163 +        return zzEndRead;
  74.164 +    }
  74.165 +
  74.166 +    public char[] getZZBuffer() {
  74.167 +        return zzBuffer;
  74.168 +    }
  74.169 +    
  74.170 +    protected int getZZStartRead() {
  74.171 +    	return this.zzStartRead;
  74.172 +    }
  74.173 +
  74.174 +    protected int getZZPushBackPosition() {
  74.175 +    	return this.zzPushbackPos;
  74.176 +    }
  74.177 +
  74.178 +        protected void pushBack(int i) {
  74.179 +		yypushback(i);
  74.180 +	}
  74.181 +
  74.182 +        protected void popState() {
  74.183 +		yybegin(stack.popStack());
  74.184 +	}
  74.185 +
  74.186 +	protected void pushState(final int state) {
  74.187 +		stack.pushStack(getZZLexicalState());
  74.188 +		yybegin(state);
  74.189 +	}
  74.190 +
  74.191 +    
  74.192 + // End user code
  74.193 +
  74.194 +%}
  74.195 +
  74.196 +/*********************************************************
  74.197 + *                                                       *
  74.198 + * Ada 83, 95, 2005 and 2012 Lexer, based on:            *
  74.199 + *                                                       *
  74.200 + * 1. Ada 83 Reference Manual                            *
  74.201 + * 2. Ada Reference Manual                               *
  74.202 + *    ISO/IEC 8652:1995(E)                               *
  74.203 + *    with Technical Corrigendum 1                       *
  74.204 + *    Language and Standard Libraries                    *
  74.205 + *    Copyright © 1992,1993,1994,1995 Intermetrics, Inc. *
  74.206 + *    Copyright © 2000 The MITRE Corporation, Inc.       *
  74.207 + * 3. http://www.adaic.com/standards/95lrm/lexer9x.l     *
  74.208 + * 4. Ada Reference Manual                               *
  74.209 + *    ISO/IEC 8652:201z Ed. 3                            *
  74.210 + *    with Technical Corrigendum 1                       *
  74.211 + *    and Amendment 1                                    *
  74.212 + *    and Amendment 2 (Draft 10)                         *
  74.213 + *    Language and Standard Libraries                    *
  74.214 + *    Copyright © 1992,1993,1994,1995 Intermetrics, Inc. *
  74.215 + *    Copyright © 2000 The MITRE Corporation, Inc.       *
  74.216 + *    Copyright © 2004, 2005, 2006 AXE Consultants       *
  74.217 + *    Copyright © 2004, 2005, 2006 Ada-Europe            *
  74.218 + *    Copyright © 2008, 2009, 2010 AXE Consultants       *
  74.219 + *                                                       *
  74.220 + * Author: Andrea Lucarelli                              *
  74.221 + * Lexer Generator: JFlex                                *
  74.222 + *                                                       *
  74.223 + *********************************************************/
  74.224 +
  74.225 +DIGIT=[0-9]
  74.226 +EXTENDED_DIGIT=[0-9a-fA-F]
  74.227 +INTEGER=({DIGIT}(_?{DIGIT})*)
  74.228 +EXPONENT=([eE](\+?|-){INTEGER})
  74.229 +DECIMAL_LITERAL={INTEGER}(\.?{INTEGER})?{EXPONENT}?
  74.230 +BASE={INTEGER}
  74.231 +BASED_INTEGER={EXTENDED_DIGIT}(_?{EXTENDED_DIGIT})*
  74.232 +BASED_LITERAL={BASE}(#|:){BASED_INTEGER}(\.{BASED_INTEGER})?(#|:){EXPONENT}?
  74.233 +IDENTIFIER=[a-zA-Z]("_"?[a-zA-Z0-9])*
  74.234 +WHITESPACE=[ \n\r\t]+
  74.235 +STRING_LITERAL=\"(\"\"|[^\n\"])*\"
  74.236 +CHAR_LITERAL=\'[^\n]\'
  74.237 +WHITESPACE=[ \n\r\t]+
  74.238 +NEWLINE=("\r"|"\n"|"\r\n")
  74.239 +ANY_CHAR=(.|[\n])
  74.240 +
  74.241 +%%
  74.242 +
  74.243 +// Ada 83, 95 and 2005 keywords
  74.244 +
  74.245 +<YYINITIAL> {
  74.246 +
  74.247 +    "abort"         { return AdaTokenId.ABORT; }
  74.248 +    "abs"           { return AdaTokenId.ABS; }
  74.249 +    "abstract"      { 
  74.250 +        if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
  74.251 +            return AdaTokenId.ABSTRACT;
  74.252 +        }
  74.253 +        else {
  74.254 +            return AdaTokenId.IDENTIFIER;
  74.255 +        }
  74.256 +    }
  74.257 +    "access"        { return AdaTokenId.ACCESS; }
  74.258 +    "accept"        { return AdaTokenId.ACCEPT; }
  74.259 +    "aliased"       {
  74.260 +        if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
  74.261 +            return AdaTokenId.ALIASED;
  74.262 +        }
  74.263 +        else {
  74.264 +            return AdaTokenId.IDENTIFIER;
  74.265 +        }
  74.266 +    }
  74.267 +    "all"           { return AdaTokenId.ALL; }
  74.268 +    "and"           { return AdaTokenId.AND; }
  74.269 +    "array"         { return AdaTokenId.ARRAY; }
  74.270 +    "at"            { return AdaTokenId.AT; }
  74.271 +    "begin"         { return AdaTokenId.BEGIN; }
  74.272 +    "body"          { return AdaTokenId.BODY; }
  74.273 +    "constant"      { return AdaTokenId.CONSTANT; }
  74.274 +    "case"          { return AdaTokenId.CASE; }
  74.275 +    "declare"       { return AdaTokenId.DECLARE; }
  74.276 +    "delay"         { return AdaTokenId.DELAY; }
  74.277 +    "delta"         { return AdaTokenId.DELTA; }
  74.278 +    "digits"        { return AdaTokenId.DIGITS; }
  74.279 +    "do"            { return AdaTokenId.DO; }
  74.280 +    "else"          { return AdaTokenId.ELSE; }
  74.281 +    "elsif"         { return AdaTokenId.ELSIF; }
  74.282 +    "end"           { return AdaTokenId.END; }
  74.283 +    "entry"         { return AdaTokenId.ENTRY; }
  74.284 +    "exception"     { return AdaTokenId.EXCEPTION; }
  74.285 +    "exit"          { return AdaTokenId.EXIT; }
  74.286 +    "for"           { return AdaTokenId.FOR; }
  74.287 +    "function"      { return AdaTokenId.FUNCTION; }
  74.288 +    "generic"       { return AdaTokenId.GENERIC; }
  74.289 +    "goto"          { return AdaTokenId.GOTO; }
  74.290 +    "if"            { return AdaTokenId.IF; }
  74.291 +    "in"            { return AdaTokenId.IN; }
  74.292 +    "interface"     {
  74.293 +        if (adaVersion == AdaLanguageOptions.AdaVersion.ADA_2005 ||
  74.294 +            adaVersion == AdaLanguageOptions.AdaVersion.ADA_2012) {
  74.295 +            return AdaTokenId.INTERFACE;
  74.296 +        }
  74.297 +        else {
  74.298 +            return AdaTokenId.IDENTIFIER;
  74.299 +        }
  74.300 +    }
  74.301 +    "is"            { return AdaTokenId.IS; }
  74.302 +    "limited"       { return AdaTokenId.LIMITED; }
  74.303 +    "loop"          { return AdaTokenId.LOOP; }
  74.304 +    "mod"           { return AdaTokenId.MOD; }
  74.305 +    "new"           { return AdaTokenId.NEW; }
  74.306 +    "not"           { return AdaTokenId.NOT; }
  74.307 +    "null"          { return AdaTokenId.NULL; }
  74.308 +    "of"            { return AdaTokenId.OF; }
  74.309 +    "or"            { return AdaTokenId.OR; }
  74.310 +    "others"        { return AdaTokenId.OTHERS; }
  74.311 +    "out"           { return AdaTokenId.OUT; }
  74.312 +    "overriding"    {
  74.313 +        if (adaVersion == AdaLanguageOptions.AdaVersion.ADA_2005 ||
  74.314 +            adaVersion == AdaLanguageOptions.AdaVersion.ADA_2012) {
  74.315 +            return AdaTokenId.OVERRIDING;
  74.316 +        }
  74.317 +        else {
  74.318 +            return AdaTokenId.IDENTIFIER;
  74.319 +        }
  74.320 +    }
  74.321 +    "package"       { return AdaTokenId.PACKAGE; }
  74.322 +    "pragma"        { return AdaTokenId.PRAGMA; }
  74.323 +    "private"       { return AdaTokenId.PRIVATE; }
  74.324 +    "procedure"     { return AdaTokenId.PROCEDURE; }
  74.325 +    "protected"     {
  74.326 +        if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
  74.327 +            return AdaTokenId.PROTECTED;
  74.328 +        }
  74.329 +        else {
  74.330 +            return AdaTokenId.IDENTIFIER;
  74.331 +        }
  74.332 +    }
  74.333 +    "raise"         { return AdaTokenId.RAISE; }
  74.334 +    "range"         { return AdaTokenId.RANGE; }
  74.335 +    "record"        { return AdaTokenId.RECORD; }
  74.336 +    "rem"           { return AdaTokenId.REM; }
  74.337 +    "renames"       { return AdaTokenId.RENAMES; }
  74.338 +    "return"        { return AdaTokenId.RETURN; }
  74.339 +    "reverse"       { return AdaTokenId.REVERSE; }
  74.340 +    "requeue"       {
  74.341 +        if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
  74.342 +            return AdaTokenId.REQUEUE;
  74.343 +        }
  74.344 +        else {
  74.345 +            return AdaTokenId.IDENTIFIER;
  74.346 +        }
  74.347 +    }
  74.348 +    "select"        { return AdaTokenId.SELECT; }
  74.349 +    "separate"      { return AdaTokenId.SEPARATE; }
  74.350 +    "some"  {
  74.351 +        if (adaVersion == AdaLanguageOptions.AdaVersion.ADA_2012) {
  74.352 +            return AdaTokenId.SOME;
  74.353 +        }
  74.354 +        else {
  74.355 +            return AdaTokenId.IDENTIFIER;
  74.356 +        }
  74.357 +    }
  74.358 +    "subtype"       { return AdaTokenId.SUBTYPE; }
  74.359 +    "synchronized"  {
  74.360 +        if (adaVersion == AdaLanguageOptions.AdaVersion.ADA_2005 ||
  74.361 +            adaVersion == AdaLanguageOptions.AdaVersion.ADA_2012) {
  74.362 +            return AdaTokenId.SYNCHRONIZED;
  74.363 +        }
  74.364 +        else {
  74.365 +            return AdaTokenId.IDENTIFIER;
  74.366 +        }
  74.367 +    }
  74.368 +    "tagged"        {
  74.369 +        if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
  74.370 +            return AdaTokenId.TAGGED;
  74.371 +        }
  74.372 +        else {
  74.373 +            return AdaTokenId.IDENTIFIER;
  74.374 +        }
  74.375 +    }
  74.376 +    "task"          { return AdaTokenId.TASK; }
  74.377 +    "terminate"     { return AdaTokenId.TERMINATE; }
  74.378 +    "then"          { return AdaTokenId.THEN; }
  74.379 +    "type"          { return AdaTokenId.TYPE; }
  74.380 +    "until"         {
  74.381 +        if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
  74.382 +            return AdaTokenId.UNTIL;
  74.383 +        }
  74.384 +        else {
  74.385 +            return AdaTokenId.IDENTIFIER;
  74.386 +        }
  74.387 +    }
  74.388 +    "use"           { return AdaTokenId.USE; }
  74.389 +    "when"          { return AdaTokenId.WHEN; }
  74.390 +    "while"         { return AdaTokenId.WHILE; }
  74.391 +    "with"          { return AdaTokenId.WITH; }
  74.392 +    "xor"           { return AdaTokenId.XOR; }
  74.393 +
  74.394 +}
  74.395 +
  74.396 +// Ada 95 compound keywords
  74.397 +
  74.398 +<YYINITIAL> {
  74.399 +    "end case"      { return AdaTokenId.END_CASE; }
  74.400 +    "end if"        { return AdaTokenId.END_IF; }
  74.401 +    "end loop"      { return AdaTokenId.END_LOOP; }
  74.402 +}
  74.403 +
  74.404 +// attributes
  74.405 +
  74.406 +<YYINITIAL> {
  74.407 +
  74.408 +    \'"access"                          {
  74.409 +        if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
  74.410 +            return AdaTokenId.ATTRIBUTE;
  74.411 +        }
  74.412 +    }
  74.413 +    \'"address"                         { return AdaTokenId.ATTRIBUTE; }
  74.414 +    \'"adjacent"                        {
  74.415 +        if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
  74.416 +            return AdaTokenId.ATTRIBUTE;
  74.417 +        }
  74.418 +    }
  74.419 +    \'"aft"                             { return AdaTokenId.ATTRIBUTE; }
  74.420 +    \'"alignment"                       {
  74.421 +        if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
  74.422 +            return AdaTokenId.ATTRIBUTE;
  74.423 +        }
  74.424 +    }
  74.425 +    \'"base"                            { return AdaTokenId.ATTRIBUTE; }
  74.426 +    \'"bit_order"                       {
  74.427 +        if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
  74.428 +            return AdaTokenId.ATTRIBUTE;
  74.429 +        }
  74.430 +    }
  74.431 +    \'"body_version"                    {
  74.432 +        if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
  74.433 +            return AdaTokenId.ATTRIBUTE;
  74.434 +        }
  74.435 +    }
  74.436 +    \'"callable"                        { return AdaTokenId.ATTRIBUTE; }
  74.437 +    \'"caller"                          {
  74.438 +        if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
  74.439 +            return AdaTokenId.ATTRIBUTE;
  74.440 +        }
  74.441 +    }
  74.442 +    \'"ceiling"                         {
  74.443 +        if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
  74.444 +            return AdaTokenId.ATTRIBUTE;
  74.445 +        }
  74.446 +    }
  74.447 +    \'"class"                           {
  74.448 +        if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
  74.449 +            return AdaTokenId.ATTRIBUTE;
  74.450 +        }
  74.451 +    }
  74.452 +    \'"component_size"                  {
  74.453 +        if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
  74.454 +            return AdaTokenId.ATTRIBUTE;
  74.455 +        }
  74.456 +    }
  74.457 +    \'"compose"                         {
  74.458 +        if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
  74.459 +            return AdaTokenId.ATTRIBUTE;
  74.460 +        }
  74.461 +    }
  74.462 +    \'"constrained"                     { return AdaTokenId.ATTRIBUTE; }
  74.463 +    \'"copy_sign"                       {
  74.464 +        if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
  74.465 +            return AdaTokenId.ATTRIBUTE;
  74.466 +        }
  74.467 +    }
  74.468 +    \'"count"                           { return AdaTokenId.ATTRIBUTE; }
  74.469 +    \'"delta"                           { return AdaTokenId.ATTRIBUTE; }
  74.470 +    \'"denorm"                          {
  74.471 +        if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
  74.472 +            return AdaTokenId.ATTRIBUTE;
  74.473 +        }
  74.474 +    }
  74.475 +    \'"digits"                          { return AdaTokenId.ATTRIBUTE; }
  74.476 +    \'"exponent"                        {
  74.477 +        if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
  74.478 +            return AdaTokenId.ATTRIBUTE;
  74.479 +        }
  74.480 +    }
  74.481 +    \'"external_tag"                    {
  74.482 +        if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
  74.483 +            return AdaTokenId.ATTRIBUTE;
  74.484 +        }
  74.485 +    }
  74.486 +    \'"emax"                        {
  74.487 +        if (adaVersion == AdaLanguageOptions.AdaVersion.ADA_83) {
  74.488 +            return AdaTokenId.ATTRIBUTE;
  74.489 +        }
  74.490 +    }
  74.491 +    \'"epsilon"                    {
  74.492 +        if (adaVersion == AdaLanguageOptions.AdaVersion.ADA_83) {
  74.493 +            return AdaTokenId.ATTRIBUTE;
  74.494 +        }
  74.495 +    }
  74.496 +    \'"first"                           { return AdaTokenId.ATTRIBUTE; }
  74.497 +    \'"first_bit"                       { return AdaTokenId.ATTRIBUTE; }
  74.498 +    \'"floor"                           {
  74.499 +        if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
  74.500 +            return AdaTokenId.ATTRIBUTE;
  74.501 +        }
  74.502 +    }
  74.503 +    \'"fore"                            { return AdaTokenId.ATTRIBUTE; }
  74.504 +    \'"fraction"                        {
  74.505 +        if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
  74.506 +            return AdaTokenId.ATTRIBUTE;
  74.507 +        }
  74.508 +    }
  74.509 +    \'"identity"                        {
  74.510 +        if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
  74.511 +            return AdaTokenId.ATTRIBUTE;
  74.512 +        }
  74.513 +    }
  74.514 +    \'"image"                           { return AdaTokenId.ATTRIBUTE; }
  74.515 +    \'"input"                           {
  74.516 +        if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
  74.517 +            return AdaTokenId.ATTRIBUTE;
  74.518 +        }
  74.519 +    }
  74.520 +    \'"large"                           {
  74.521 +        if (adaVersion == AdaLanguageOptions.AdaVersion.ADA_83) {
  74.522 +            return AdaTokenId.ATTRIBUTE;
  74.523 +        }
  74.524 +    }
  74.525 +    \'"last"                            { return AdaTokenId.ATTRIBUTE; }
  74.526 +    \'"last_bit"                        { return AdaTokenId.ATTRIBUTE; }
  74.527 +    \'"leading_part"                    {
  74.528 +        if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
  74.529 +            return AdaTokenId.ATTRIBUTE;
  74.530 +        }
  74.531 +    }
  74.532 +    \'"length"                          { return AdaTokenId.ATTRIBUTE; }
  74.533 +    \'"machine"                         {
  74.534 +        if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
  74.535 +            return AdaTokenId.ATTRIBUTE;
  74.536 +        }
  74.537 +    }
  74.538 +    \'"machine_emax"                    { return AdaTokenId.ATTRIBUTE; }
  74.539 +    \'"machine_emin"                    { return AdaTokenId.ATTRIBUTE; }
  74.540 +    \'"machine_mantissa"                { return AdaTokenId.ATTRIBUTE; }
  74.541 +    \'"machine_overflows"               { return AdaTokenId.ATTRIBUTE; }
  74.542 +    \'"machine_radix"                   { return AdaTokenId.ATTRIBUTE; }
  74.543 +    \'"machine_rounding"                {
  74.544 +        if (adaVersion == AdaLanguageOptions.AdaVersion.ADA_2005) {
  74.545 +            return AdaTokenId.ATTRIBUTE;
  74.546 +        }
  74.547 +    }
  74.548 +    \'"machine_rounds"                  { return AdaTokenId.ATTRIBUTE; }
  74.549 +    \'"max"                             { return AdaTokenId.ATTRIBUTE; }
  74.550 +    \'"mantissa"                        {
  74.551 +        if (adaVersion == AdaLanguageOptions.AdaVersion.ADA_83) {
  74.552 +            return AdaTokenId.ATTRIBUTE;
  74.553 +        }
  74.554 +    }
  74.555 +    \'"max_size_in_storage_elements"    {
  74.556 +        if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
  74.557 +            return AdaTokenId.ATTRIBUTE;
  74.558 +        }
  74.559 +    }
  74.560 +    \'"min"                             {
  74.561 +        if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
  74.562 +            return AdaTokenId.ATTRIBUTE;
  74.563 +        }
  74.564 +    }
  74.565 +    \'"model"                           {
  74.566 +        if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
  74.567 +            return AdaTokenId.ATTRIBUTE;
  74.568 +        }
  74.569 +    }
  74.570 +    \'"model_emin"                      {
  74.571 +        if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
  74.572 +            return AdaTokenId.ATTRIBUTE;
  74.573 +        }
  74.574 +    }
  74.575 +    \'"model_epsilon"                   {
  74.576 +        if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
  74.577 +            return AdaTokenId.ATTRIBUTE;
  74.578 +        }
  74.579 +    }
  74.580 +    \'"model_mantissa"                  {
  74.581 +        if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
  74.582 +            return AdaTokenId.ATTRIBUTE;
  74.583 +        }
  74.584 +    }
  74.585 +    \'"model_small"                     {
  74.586 +        if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
  74.587 +            return AdaTokenId.ATTRIBUTE;
  74.588 +        }
  74.589 +    }
  74.590 +    \'"modulus"                         {
  74.591 +        if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
  74.592 +            return AdaTokenId.ATTRIBUTE;
  74.593 +        }
  74.594 +    }
  74.595 +    \'"output"                          {
  74.596 +        if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
  74.597 +            return AdaTokenId.ATTRIBUTE;
  74.598 +        }
  74.599 +    }
  74.600 +    \'"partition_id"                    {
  74.601 +        if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
  74.602 +            return AdaTokenId.ATTRIBUTE;
  74.603 +        }
  74.604 +    }
  74.605 +    \'"pos"                             { return AdaTokenId.ATTRIBUTE; }
  74.606 +    \'"position"                        { return AdaTokenId.ATTRIBUTE; }
  74.607 +    \'"pred"                            { return AdaTokenId.ATTRIBUTE; }
  74.608 +    \'"priority"                        {
  74.609 +        if (adaVersion == AdaLanguageOptions.AdaVersion.ADA_2005) {
  74.610 +            return AdaTokenId.ATTRIBUTE;
  74.611 +        }
  74.612 +    }
  74.613 +    \'"range"                           { return AdaTokenId.ATTRIBUTE; }
  74.614 +    \'"read"                            {
  74.615 +        if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
  74.616 +            return AdaTokenId.ATTRIBUTE;
  74.617 +        }
  74.618 +    }
  74.619 +    \'"remainder"                       {
  74.620 +        if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
  74.621 +            return AdaTokenId.ATTRIBUTE;
  74.622 +        }
  74.623 +    }
  74.624 +    \'"round"                           {
  74.625 +        if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
  74.626 +            return AdaTokenId.ATTRIBUTE;
  74.627 +        }
  74.628 +    }
  74.629 +    \'"rounding"                        {
  74.630 +        if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
  74.631 +            return AdaTokenId.ATTRIBUTE;
  74.632 +        }
  74.633 +    }
  74.634 +    \'"safe_emax"                       {
  74.635 +        if (adaVersion == AdaLanguageOptions.AdaVersion.ADA_83) {
  74.636 +            return AdaTokenId.ATTRIBUTE;
  74.637 +        }
  74.638 +    }
  74.639 +    \'"safe_first"                      {
  74.640 +        if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
  74.641 +            return AdaTokenId.ATTRIBUTE;
  74.642 +        }
  74.643 +    }
  74.644 +    \'"safe_last"                       {
  74.645 +        if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
  74.646 +            return AdaTokenId.ATTRIBUTE;
  74.647 +        }
  74.648 +    }
  74.649 +    \'"safe_large"                       {
  74.650 +        if (adaVersion == AdaLanguageOptions.AdaVersion.ADA_83) {
  74.651 +            return AdaTokenId.ATTRIBUTE;
  74.652 +        }
  74.653 +    }
  74.654 +    \'"safe_small"                       {
  74.655 +        if (adaVersion == AdaLanguageOptions.AdaVersion.ADA_83) {
  74.656 +            return AdaTokenId.ATTRIBUTE;
  74.657 +        }
  74.658 +    }
  74.659 +    \'"scale"                           {
  74.660 +        if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
  74.661 +            return AdaTokenId.ATTRIBUTE;
  74.662 +        }
  74.663 +    }
  74.664 +    \'"scaling"                         {
  74.665 +        if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
  74.666 +            return AdaTokenId.ATTRIBUTE;
  74.667 +        }
  74.668 +    }
  74.669 +    \'"signed_zeros"                    {
  74.670 +        if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
  74.671 +            return AdaTokenId.ATTRIBUTE;
  74.672 +        }
  74.673 +    }
  74.674 +    \'"size"                            { return AdaTokenId.ATTRIBUTE; }
  74.675 +    \'"small"                           { return AdaTokenId.ATTRIBUTE; }
  74.676 +    \'"storage_pool"                    {
  74.677 +        if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
  74.678 +            return AdaTokenId.ATTRIBUTE;
  74.679 +        }
  74.680 +    }
  74.681 +    \'"storage_size"                    { return AdaTokenId.ATTRIBUTE; }
  74.682 +    \'"stream_size"                     {
  74.683 +        if (adaVersion == AdaLanguageOptions.AdaVersion.ADA_2005) {
  74.684 +            return AdaTokenId.ATTRIBUTE;
  74.685 +        }
  74.686 +    }
  74.687 +    \'"succ"                            { return AdaTokenId.ATTRIBUTE; }
  74.688 +    \'"tag"                             {
  74.689 +        if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
  74.690 +            return AdaTokenId.ATTRIBUTE;
  74.691 +        }
  74.692 +    }
  74.693 +    \'"terminated"                      { return AdaTokenId.ATTRIBUTE; }
  74.694 +    \'"truncation"                      {
  74.695 +        if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
  74.696 +            return AdaTokenId.ATTRIBUTE;
  74.697 +        }
  74.698 +    }
  74.699 +    \'"unbiased_rounding"               {
  74.700 +        if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
  74.701 +            return AdaTokenId.ATTRIBUTE;
  74.702 +        }
  74.703 +    }
  74.704 +    \'"unchecked_access"                {
  74.705 +        if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
  74.706 +            return AdaTokenId.ATTRIBUTE;
  74.707 +        }
  74.708 +    }
  74.709 +    \'"val"                             { return AdaTokenId.ATTRIBUTE; }
  74.710 +    \'"valid"                           {
  74.711 +        if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
  74.712 +            return AdaTokenId.ATTRIBUTE;
  74.713 +        }
  74.714 +    }
  74.715 +    \'"value"                           { return AdaTokenId.ATTRIBUTE; }
  74.716 +    \'"version"                         {
  74.717 +        if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
  74.718 +            return AdaTokenId.ATTRIBUTE;
  74.719 +        }
  74.720 +    }
  74.721 +    \'"wide_image"                      {
  74.722 +        if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
  74.723 +            return AdaTokenId.ATTRIBUTE;
  74.724 +        }
  74.725 +    }
  74.726 +    \'"wide_value"                      {
  74.727 +        if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
  74.728 +            return AdaTokenId.ATTRIBUTE;
  74.729 +        }
  74.730 +    }
  74.731 +    \'"wide_wide_image"                 {
  74.732 +        if (adaVersion == AdaLanguageOptions.AdaVersion.ADA_2005) {
  74.733 +            return AdaTokenId.ATTRIBUTE;
  74.734 +        }
  74.735 +    }
  74.736 +    \'"wide_wide_value"                 {
  74.737 +        if (adaVersion == AdaLanguageOptions.AdaVersion.ADA_2005) {
  74.738 +            return AdaTokenId.ATTRIBUTE;
  74.739 +        }
  74.740 +    }
  74.741 +    \'"wide_wide_width"                 {
  74.742 +        if (adaVersion == AdaLanguageOptions.AdaVersion.ADA_2005) {
  74.743 +            return AdaTokenId.ATTRIBUTE;
  74.744 +        }
  74.745 +    }
  74.746 +    \'"wide_width"                      {
  74.747 +        if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
  74.748 +            return AdaTokenId.ATTRIBUTE;
  74.749 +        }
  74.750 +    }
  74.751 +    \'"width"                           { return AdaTokenId.ATTRIBUTE; }
  74.752 +    \'"write"                           {
  74.753 +        if (adaVersion != AdaLanguageOptions.AdaVersion.ADA_83) {
  74.754 +            return AdaTokenId.ATTRIBUTE;
  74.755 +        }
  74.756 +    }
  74.757 +}
  74.758 +
  74.759 +// delimiters
  74.760 +
  74.761 +<YYINITIAL> {
  74.762 +
  74.763 +    "&"             { return AdaTokenId.AMP; }
  74.764 +    "'"             { return AdaTokenId.TICK; }
  74.765 +    "("             { return AdaTokenId.LPAREN; }
  74.766 +    ")"             { return AdaTokenId.RPAREN; }
  74.767 +    "*"             { return AdaTokenId.STAR; }
  74.768 +    "+"             { return AdaTokenId.PLUS; }
  74.769 +    ","             { return AdaTokenId.COMMA; }
  74.770 +    "-"             { return AdaTokenId.MINUS; }
  74.771 +    "."             { pushState(ST_LOOKING_FOR_PROPERTY);
  74.772 +                      return AdaTokenId.DOT;
  74.773 +                    }
  74.774 +    "/"             { return AdaTokenId.SLASH; }
  74.775 +    ":"             { return AdaTokenId.COLON; }
  74.776 +    ";"             { return AdaTokenId.SEMICOLON; }
  74.777 +    "<"             { return AdaTokenId.GT; }
  74.778 +    "="             { return AdaTokenId.EQ; }
  74.779 +    ">"             { return AdaTokenId.LT; }
  74.780 +    "|"             { return AdaTokenId.BAR; }
  74.781 +    "!"             { return AdaTokenId.BAR; }
  74.782 +
  74.783 +}
  74.784 +
  74.785 +// compound delimiters
  74.786 +
  74.787 +<YYINITIAL> {
  74.788 +
  74.789 +    "=>"             { return AdaTokenId.ARROW; }
  74.790 +    ".."             { return AdaTokenId.DOT_DOT; }
  74.791 +    "**"             { return AdaTokenId.EXPON; }
  74.792 +    ":="             { return AdaTokenId.ASSIGNMENT; }
  74.793 +    "/="             { return AdaTokenId.INEQ; }
  74.794 +    ">="             { return AdaTokenId.GTEQ; }
  74.795 +    "<="             { return AdaTokenId.LTEQ; }
  74.796 +    "<<"             { return AdaTokenId.LTLT; }
  74.797 +    ">>"             { return AdaTokenId.GTGT; }
  74.798 +    "<>"             { return AdaTokenId.BOX; }
  74.799 +
  74.800 +}
  74.801 +
  74.802 +<YYINITIAL> {
  74.803 +
  74.804 +    "boolean"           { return AdaTokenId.BOOLEAN; }
  74.805 +    "character"         { return AdaTokenId.CHARACTER; }
  74.806 +    "float"             { return AdaTokenId.FLOAT; }
  74.807 +    "integer"           { return AdaTokenId.INTEGER; }
  74.808 +    "wide_character"    { return AdaTokenId.WIDE_CHARACTER; }
  74.809 +    "true"              { return AdaTokenId.TRUE; }
  74.810 +    "false"             { return AdaTokenId.FALSE; }
  74.811 +
  74.812 +}
  74.813 +
  74.814 +<ST_LOOKING_FOR_PROPERTY>"." {
  74.815 +    return AdaTokenId.DOT;
  74.816 +}
  74.817 +
  74.818 +<ST_LOOKING_FOR_PROPERTY>".." {
  74.819 +    popState();
  74.820 +    return AdaTokenId.DOT_DOT;
  74.821 +}
  74.822 +
  74.823 +<ST_LOOKING_FOR_PROPERTY>{IDENTIFIER} {
  74.824 +    popState();
  74.825 +    return AdaTokenId.IDENTIFIER;
  74.826 +}
  74.827 +
  74.828 +<ST_LOOKING_FOR_PROPERTY>{ANY_CHAR} {
  74.829 +    yypushback(1);
  74.830 +    popState();
  74.831 +}
  74.832 +
  74.833 +<YYINITIAL>{IDENTIFIER} {
  74.834 +    return  AdaTokenId.IDENTIFIER;
  74.835 +}
  74.836 +
  74.837 +<ST_HIGHLIGHTING_ERROR> {
  74.838 +    {WHITESPACE} {
  74.839 +        popState();
  74.840 +        return AdaTokenId.WHITESPACE;
  74.841 +    }
  74.842 +    . {
  74.843 +        return AdaTokenId.UNKNOWN_TOKEN;
  74.844 +    }
  74.845 +}
  74.846 +
  74.847 +<YYINITIAL>{WHITESPACE} {
  74.848 +    return  AdaTokenId.WHITESPACE;
  74.849 +}
  74.850 +
  74.851 +<YYINITIAL>{DECIMAL_LITERAL} {
  74.852 +    return AdaTokenId.DECIMAL_LITERAL;
  74.853 +}
  74.854 +
  74.855 +<YYINITIAL>{BASED_LITERAL} {
  74.856 +    return AdaTokenId.BASED_LITERAL;
  74.857 +}
  74.858 +
  74.859 +<YYINITIAL>{STRING_LITERAL} {
  74.860 +    return AdaTokenId.STRING_LITERAL;
  74.861 +}
  74.862 +
  74.863 +<YYINITIAL>{CHAR_LITERAL} {
  74.864 +    return AdaTokenId.CHAR_LITERAL;
  74.865 +}
  74.866 +
  74.867 +<YYINITIAL>"--" {
  74.868 +    pushState(ST_LINE_COMMENT);
  74.869 +    return AdaTokenId.COMMENT;
  74.870 +}
  74.871 +
  74.872 +<ST_LINE_COMMENT>[^\n\r]*{ANY_CHAR} {
  74.873 +    popState();
  74.874 +    return AdaTokenId.COMMENT;
  74.875 +}
  74.876 +
  74.877 +<ST_LINE_COMMENT>{NEWLINE} {
  74.878 +    popState();
  74.879 +    return AdaTokenId.COMMENT;
  74.880 +}
  74.881 +
  74.882 +<YYINITIAL>. {
  74.883 +    yypushback(1);
  74.884 +    pushState(ST_HIGHLIGHTING_ERROR);
  74.885 +}
    75.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    75.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/lexer/resources/AdaSyntaxLexer.skeleton	Mon Oct 15 23:38:26 2012 +0200
    75.3 @@ -0,0 +1,285 @@
    75.4 +
    75.5 +  /** This character denotes the end of file */
    75.6 +  public static final int YYEOF = LexerInput.EOF;
    75.7 +
    75.8 +  /** initial size of the lookahead buffer */
    75.9 +--- private static final int ZZ_BUFFERSIZE = ...;
   75.10 +
   75.11 +  /** lexical states */
   75.12 +---  lexical states, charmap
   75.13 +
   75.14 +  /* error codes */
   75.15 +  private static final int ZZ_UNKNOWN_ERROR = 0;
   75.16 +  private static final int ZZ_NO_MATCH = 1;
   75.17 +  private static final int ZZ_PUSHBACK_2BIG = 2;
   75.18 +
   75.19 +  /* error messages for the codes above */
   75.20 +  private static final String ZZ_ERROR_MSG[] = {
   75.21 +    "Unkown internal scanner error",
   75.22 +    "Error: could not match input",
   75.23 +    "Error: pushback value was too large"
   75.24 +  };
   75.25 +
   75.26 +--- isFinal list
   75.27 +  /** the input device */
   75.28 +  private java.io.Reader zzReader;
   75.29 +
   75.30 +  /** the current state of the DFA */
   75.31 +  private int zzState;
   75.32 +
   75.33 +  /** the current lexical state */
   75.34 +  private int zzLexicalState = YYINITIAL;
   75.35 +
   75.36 +  /** this buffer contains the current text to be matched and is
   75.37 +      the source of the yytext() string */
   75.38 +  private char zzBuffer[] = new char[ZZ_BUFFERSIZE];
   75.39 +
   75.40 +  /** the textposition at the last accepting state */
   75.41 +  private int zzMarkedPos;
   75.42 +
   75.43 +  /** the textposition at the last state to be included in yytext */
   75.44 +  private int zzPushbackPos;
   75.45 +
   75.46 +  /** the current text position in the buffer */
   75.47 +  private int zzCurrentPos;
   75.48 +
   75.49 +  /** startRead marks the beginning of the yytext() string in the buffer */
   75.50 +  private int zzStartRead;
   75.51 +
   75.52 +  /** endRead marks the last character in the buffer, that has been read
   75.53 +      from input */
   75.54 +  private int zzEndRead;
   75.55 +
   75.56 +  /** number of newlines encountered up to the start of the matched text */
   75.57 +  private int yyline;
   75.58 +
   75.59 +  /** the number of characters up to the start of the matched text */
   75.60 +  private int yychar;
   75.61 +
   75.62 +  /**
   75.63 +   * the number of characters from the last newline up to the start of the 
   75.64 +   * matched text
   75.65 +   */
   75.66 +  private int yycolumn;
   75.67 +
   75.68 +  /** 
   75.69 +   * zzAtBOL == true <=> the scanner is currently at the beginning of a line
   75.70 +   */
   75.71 +  private boolean zzAtBOL = true;
   75.72 +
   75.73 +  /** zzAtEOF == true <=> the scanner is at the EOF */
   75.74 +  private boolean zzAtEOF = false;
   75.75 +
   75.76 +--- user class code
   75.77 +
   75.78 +  /**
   75.79 +   * Creates a new scanner
   75.80 +   * There is also a java.io.InputStream version of this constructor.
   75.81 +   *
   75.82 +   * @param   in  the java.io.Reader to read input from.
   75.83 +   */
   75.84 +--- constructor declaration
   75.85 +
   75.86 +
   75.87 +    
   75.88 +  /**
   75.89 +   * Closes the input stream.
   75.90 +   */
   75.91 +  public final void yyclose() throws java.io.IOException {
   75.92 +    zzAtEOF = true;            /* indicate end of file */
   75.93 +    zzEndRead = zzStartRead;  /* invalidate buffer    */
   75.94 +
   75.95 +    if (zzReader != null)
   75.96 +      zzReader.close();
   75.97 +  }
   75.98 +
   75.99 +
  75.100 +  /**
  75.101 +   * Resets the scanner to read from a new input stream.
  75.102 +   * Does not close the old reader.
  75.103 +   *
  75.104 +   * All internal variables are reset, the old input stream 
  75.105 +   * <b>cannot</b> be reused (internal buffer is discarded and lost).
  75.106 +   * Lexical state is set to <tt>ZZ_INITIAL</tt>.
  75.107 +   *
  75.108 +   * @param reader   the new input stream 
  75.109 +   */
  75.110 +  public final void yyreset(java.io.Reader reader) {
  75.111 +    zzReader = reader;
  75.112 +    zzAtBOL  = true;
  75.113 +    zzAtEOF  = false;
  75.114 +    zzEndRead = zzStartRead = 0;
  75.115 +    zzCurrentPos = zzMarkedPos = zzPushbackPos = 0;
  75.116 +    yyline = yychar = yycolumn = 0;
  75.117 +    zzLexicalState = YYINITIAL;
  75.118 +  }
  75.119 +
  75.120 +
  75.121 +  /**
  75.122 +   * Returns the current lexical state.
  75.123 +   */
  75.124 +  public final int yystate() {
  75.125 +    return zzLexicalState;
  75.126 +  }
  75.127 +
  75.128 +
  75.129 +  /**
  75.130 +   * Enters a new lexical state
  75.131 +   *
  75.132 +   * @param newState the new lexical state
  75.133 +   */
  75.134 +  public final void yybegin(int newState) {
  75.135 +    zzLexicalState = newState;
  75.136 +  }
  75.137 +
  75.138 +
  75.139 +  /**
  75.140 +   * Returns the text matched by the current regular expression.
  75.141 +   */
  75.142 +  public final String yytext() {
  75.143 +    return input.readText().toString();
  75.144 +  }
  75.145 +
  75.146 +
  75.147 +  /**
  75.148 +   * Returns the character at position <tt>pos</tt> from the 
  75.149 +   * matched text. 
  75.150 +   * 
  75.151 +   * It is equivalent to yytext().charAt(pos), but faster
  75.152 +   *
  75.153 +   * @param pos the position of the character to fetch. 
  75.154 +   *            A value from 0 to yylength()-1.
  75.155 +   *
  75.156 +   * @return the character at position pos
  75.157 +   */
  75.158 +  public final char yycharat(int pos) {
  75.159 +     return input.readText().charAt(pos);
  75.160 +  }
  75.161 +
  75.162 +
  75.163 +  /**
  75.164 +   * Returns the length of the matched text region.
  75.165 +   */
  75.166 +  public final int yylength() {
  75.167 +    return input.readLength();
  75.168 +  }
  75.169 +
  75.170 +
  75.171 +  /**
  75.172 +   * Reports an error that occured while scanning.
  75.173 +   *
  75.174 +   * In a wellformed scanner (no or only correct usage of 
  75.175 +   * yypushback(int) and a match-all fallback rule) this method 
  75.176 +   * will only be called with things that "Can't Possibly Happen".
  75.177 +   * If this method is called, something is seriously wrong
  75.178 +   * (e.g. a JFlex bug producing a faulty scanner etc.).
  75.179 +   *
  75.180 +   * Usual syntax/scanner level error handling should be done
  75.181 +   * in error fallback rules.
  75.182 +   *
  75.183 +   * @param   errorCode  the code of the errormessage to display
  75.184 +   */
  75.185 +--- zzScanError declaration
  75.186 +    String message;
  75.187 +    try {
  75.188 +      message = ZZ_ERROR_MSG[errorCode];
  75.189 +    }
  75.190 +    catch (ArrayIndexOutOfBoundsException e) {
  75.191 +      message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR];
  75.192 +    }
  75.193 +
  75.194 +--- throws clause
  75.195 +  } 
  75.196 +
  75.197 +
  75.198 +  /**
  75.199 +   * Pushes the specified amount of characters back into the input stream.
  75.200 +   *
  75.201 +   * They will be read again by then next call of the scanning method
  75.202 +   *
  75.203 +   * @param number  the number of characters to be read again.
  75.204 +   *                This number must not be greater than yylength()!
  75.205 +   */
  75.206 +--- yypushback decl (contains zzScanError exception)
  75.207 +    if ( number > yylength() )
  75.208 +      zzScanError(ZZ_PUSHBACK_2BIG);
  75.209 +
  75.210 +    input.backup(number);
  75.211 +    //zzMarkedPos -= number;
  75.212 +  }
  75.213 +
  75.214 +
  75.215 +--- zzDoEOF
  75.216 +  /**
  75.217 +   * Resumes scanning until the next regular expression is matched,
  75.218 +   * the end of input is encountered or an I/O-Error occurs.
  75.219 +   *
  75.220 +   * @return      the next token
  75.221 +   * @exception   java.io.IOException  if any I/O-Error occurs
  75.222 +   */
  75.223 +--- yylex declaration
  75.224 +    int zzInput;
  75.225 +    int zzAction;
  75.226 +
  75.227 +    // cached fields:
  75.228 +    //int zzCurrentPosL;
  75.229 +    //int zzMarkedPosL;
  75.230 +    //int zzEndReadL = zzEndRead;
  75.231 +    //char [] zzBufferL = zzBuffer;
  75.232 +    char [] zzCMapL = ZZ_CMAP;
  75.233 +
  75.234 +--- local declarations
  75.235 +
  75.236 +    while (true) {
  75.237 +      //zzMarkedPosL = zzMarkedPos;
  75.238 +
  75.239 +--- start admin (line, char, col count)
  75.240 +      zzAction = -1;
  75.241 +
  75.242 +      //zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL;
  75.243 +      int tokenLength = 0;
  75.244 +  
  75.245 +--- start admin (lexstate etc)
  75.246 +
  75.247 +      zzForAction: {
  75.248 +        while (true) {
  75.249 +            zzInput = input.read();
  75.250 +            
  75.251 +            if(zzInput == LexerInput.EOF) {
  75.252 +                //end of input reached
  75.253 +                zzInput = YYEOF;
  75.254 +                break zzForAction;
  75.255 +                //notice: currently LexerInput.EOF == YYEOF
  75.256 +            }
  75.257 +
  75.258 +--- line, col, char count, next transition, isFinal action
  75.259 +            zzAction = zzState;
  75.260 +            tokenLength = input.readLength();
  75.261 +--- line count update
  75.262 +          }
  75.263 +
  75.264 +        }
  75.265 +      }
  75.266 +
  75.267 +      // store back cached position
  75.268 +      if(zzInput != YYEOF) {
  75.269 +         input.backup(input.readLength() - tokenLength);
  75.270 +      }
  75.271 +--- char count update
  75.272 +
  75.273 +--- actions
  75.274 +        default: 
  75.275 +          if (zzInput == YYEOF) 
  75.276 +            //zzAtEOF = true;
  75.277 +--- eofvalue
  75.278 +          
  75.279 +          else {
  75.280 +--- no match
  75.281 +          }
  75.282 +      }
  75.283 +    }
  75.284 +  }
  75.285 +
  75.286 +--- main
  75.287 +
  75.288 +}
    76.1 --- a/ada.editor/src/org/netbeans/modules/ada/editor/navigator/AdaDeclarationFinder.java	Tue Oct 02 21:55:21 2012 -0400
    76.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/navigator/AdaDeclarationFinder.java	Mon Oct 15 23:38:26 2012 +0200
    76.3 @@ -38,7 +38,6 @@
    76.4   */
    76.5  package org.netbeans.modules.ada.editor.navigator;
    76.6  
    76.7 -import java.io.IOException;
    76.8  import java.util.Collections;
    76.9  import java.util.LinkedList;
   76.10  import java.util.List;
   76.11 @@ -180,7 +179,8 @@
   76.12  
   76.13          public String getDisplayHtml(HtmlFormatter formatter) {
   76.14              formatter.reset();
   76.15 -            ElementKind ek = null;
   76.16 +            ElementKind ek = el.getKind();
   76.17 +
   76.18              switch (k) {
   76.19                  case SUBPROG_SPEC:
   76.20                  case SUBPROG_BODY:
    77.1 --- a/ada.editor/src/org/netbeans/modules/ada/editor/navigator/AdaInstantRenamer.java	Tue Oct 02 21:55:21 2012 -0400
    77.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/navigator/AdaInstantRenamer.java	Mon Oct 15 23:38:26 2012 +0200
    77.3 @@ -51,7 +51,7 @@
    77.4  public class AdaInstantRenamer implements InstantRenamer {
    77.5  
    77.6      public boolean isRenameAllowed(ParserResult info, int caretOffset, String[] explanationRetValue) {
    77.7 -		// TODO: to implement.
    77.8 +        // TODO: to implement.
    77.9          return true;
   77.10      }
   77.11  
    78.1 --- a/ada.editor/src/org/netbeans/modules/ada/editor/navigator/AdaOccurrencesFinder.java	Tue Oct 02 21:55:21 2012 -0400
    78.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/navigator/AdaOccurrencesFinder.java	Mon Oct 15 23:38:26 2012 +0200
    78.3 @@ -156,15 +156,12 @@
    78.4  
    78.5              @Override
    78.6              public void visit(TypeDeclaration node) {
    78.7 -                LOGGER.fine("called visist(TypeDeclaration): " + node.getTypeName().getName());
    78.8                  boolean found = false;
    78.9                  if (element instanceof SemiAttribute.PackageMemberElement) {
   78.10 -                    LOGGER.fine("package element: " + node.getTypeName().getName());
   78.11                      SemiAttribute.PackageMemberElement pkgEl = (SemiAttribute.PackageMemberElement) element;
   78.12                      Identifier type = node.getTypeName();
   78.13                      String typeName = type.getName();
   78.14                      if (pkgName != null && pkgEl.getPackageName().equals(pkgName) && pkgEl.getName().equals(typeName)) {
   78.15 -                        LOGGER.fine("if: " + node.getTypeName().getName());
   78.16                          memberDeclaration.add(type);
   78.17                          usages.add(type);
   78.18                          found = true;
   78.19 @@ -177,15 +174,12 @@
   78.20  
   78.21              @Override
   78.22              public void visit(SingleFieldDeclaration node) {
   78.23 -                LOGGER.fine("called visist(SingleFieldDeclaration): " + CodeUtils.extractVariableName(node.getName()));
   78.24                  boolean found = false;
   78.25                  if (element instanceof SemiAttribute.PackageMemberElement) {
   78.26 -                    LOGGER.fine("package element: " + CodeUtils.extractVariableName(node.getName()));
   78.27                      SemiAttribute.PackageMemberElement pkgEl = (SemiAttribute.PackageMemberElement) element;
   78.28                      Variable variable = node.getName();
   78.29                      String varName = CodeUtils.extractVariableName(variable);
   78.30                      if (pkgName != null && pkgEl.getPackageName().equals(pkgName) && pkgEl.getName().equals(varName)) {
   78.31 -                        LOGGER.fine("if: " + CodeUtils.extractVariableName(node.getName()));
   78.32                          memberDeclaration.add(variable);
   78.33                          usages.add(variable);
   78.34                          found = true;
   78.35 @@ -266,7 +260,7 @@
   78.36                          usages.add(parameterName);
   78.37                      }
   78.38                  }
   78.39 -                TypeName parameterType = node.getParameterType();
   78.40 +                TypeName parameterType = CodeUtils.extractType(node.getParameterType());
   78.41                  if (parameterType != null) {
   78.42                      String name = parameterType.getTypeName().getName();
   78.43                      if (name != null && element == attribute.getElement(parameterType)) {
   78.44 @@ -301,10 +295,15 @@
   78.45              }
   78.46          }.scan(ASTUtils.getRoot(parameter));
   78.47  
   78.48 +        int occur = 0;
   78.49          for (ASTNode n : usages) {
   78.50              OffsetRange forNode = forNode(n, element.getKind());
   78.51 +            if (n instanceof Identifier) {
   78.52 +                LOGGER.fine("result " + occur + ": " + ((Identifier)n).getName());
   78.53 +                LOGGER.fine("result " + occur + ": " + forNode);
   78.54 +                occur++;
   78.55 +            }
   78.56              if (forNode != null) {
   78.57 -                LOGGER.fine("usage item: " + forNode);
   78.58                  result.add(forNode);
   78.59              }
   78.60          }
    79.1 --- a/ada.editor/src/org/netbeans/modules/ada/editor/navigator/NavUtils.java	Tue Oct 02 21:55:21 2012 -0400
    79.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/navigator/NavUtils.java	Mon Oct 15 23:38:26 2012 +0200
    79.3 @@ -46,7 +46,6 @@
    79.4  import org.netbeans.modules.ada.editor.ast.ASTNode;
    79.5  import org.netbeans.modules.ada.editor.ast.ASTUtils;
    79.6  import org.netbeans.modules.ada.editor.ast.nodes.FormalParameter;
    79.7 -import org.netbeans.modules.ada.editor.ast.nodes.Identifier;
    79.8  import org.netbeans.modules.ada.editor.ast.nodes.PackageBody;
    79.9  import org.netbeans.modules.ada.editor.ast.nodes.PackageName;
   79.10  import org.netbeans.modules.ada.editor.ast.nodes.PackageSpecification;
   79.11 @@ -54,6 +53,7 @@
   79.12  import org.netbeans.modules.ada.editor.ast.nodes.SubprogramBody;
   79.13  import org.netbeans.modules.ada.editor.ast.nodes.SubprogramSpecification;
   79.14  import org.netbeans.modules.ada.editor.ast.nodes.TypeDeclaration;
   79.15 +import org.netbeans.modules.ada.editor.ast.nodes.TypeName;
   79.16  import org.netbeans.modules.ada.editor.ast.nodes.Variable;
   79.17  import org.netbeans.modules.ada.editor.ast.nodes.With;
   79.18  import org.netbeans.modules.ada.editor.ast.nodes.visitors.DefaultVisitor;
   79.19 @@ -142,6 +142,12 @@
   79.20                  continue;
   79.21              }
   79.22  
   79.23 +            if (leaf instanceof TypeName) {
   79.24 +                result = a.getElement(leaf);
   79.25 +                previous = leaf;
   79.26 +                continue;
   79.27 +            }
   79.28 +
   79.29              if (leaf instanceof Scalar) {
   79.30                  AttributedElement e = a.getElement(leaf);
   79.31  
   79.32 @@ -160,13 +166,13 @@
   79.33  
   79.34              if (leaf instanceof PackageSpecification) {
   79.35                  PackageSpecification cDeclaration = (PackageSpecification) leaf;
   79.36 -                //class declaration
   79.37 +                //package specification declaration
   79.38                  if (cDeclaration.getName() == previous) {
   79.39                      return a.getElement(leaf);
   79.40                  }
   79.41              } else if (leaf instanceof PackageBody) {
   79.42                  PackageBody iDeclaration = (PackageBody) leaf;
   79.43 -                //class declaration
   79.44 +                //package body declaration
   79.45                  if (iDeclaration.getName() == previous) {
   79.46                      return a.getElement(leaf);
   79.47                  }
    80.1 --- a/ada.editor/src/org/netbeans/modules/ada/editor/navigator/SemiAttribute.java	Tue Oct 02 21:55:21 2012 -0400
    80.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/navigator/SemiAttribute.java	Mon Oct 15 23:38:26 2012 +0200
    80.3 @@ -73,7 +73,8 @@
    80.4  import org.netbeans.modules.ada.editor.ast.nodes.TypeDeclaration;
    80.5  import org.netbeans.modules.ada.editor.ast.nodes.TypeName;
    80.6  import org.netbeans.modules.ada.editor.ast.nodes.Variable;
    80.7 -import org.netbeans.modules.ada.editor.ast.nodes.VariableBase;
    80.8 +import org.netbeans.modules.ada.editor.ast.nodes.NameBase;
    80.9 +import org.netbeans.modules.ada.editor.ast.nodes.TypeAccess;
   80.10  import org.netbeans.modules.ada.editor.ast.nodes.visitors.DefaultVisitor;
   80.11  import org.netbeans.modules.ada.editor.indexer.AdaIndex;
   80.12  import org.netbeans.modules.ada.editor.indexer.IndexedElement;
   80.13 @@ -144,7 +145,7 @@
   80.14  
   80.15      @Override
   80.16      public void visit(Assignment node) {
   80.17 -        final VariableBase vb = node.getLeftHandSide();
   80.18 +        final NameBase vb = node.getLeftHandSide();
   80.19  
   80.20          if (vb instanceof Variable) {
   80.21              AttributedType at = null;
   80.22 @@ -247,7 +248,7 @@
   80.23      public void visit(FormalParameter node) {
   80.24          Variable var = null;
   80.25          if (node.getParameterName() instanceof Variable) {
   80.26 -            var = (Variable) node.getParameterName();
   80.27 +            var = node.getParameterName();
   80.28          }
   80.29          if (var != null) {
   80.30              String name = extractVariableName(var);
   80.31 @@ -255,7 +256,14 @@
   80.32                  scopes.peek().enterWrite(name, Kind.VARIABLE, var);
   80.33              }
   80.34          }
   80.35 -        TypeName parameterType = node.getParameterType();
   80.36 +
   80.37 +        TypeName parameterType;
   80.38 +        if (node.getParameterType() instanceof TypeAccess) {
   80.39 +            parameterType = ((TypeAccess)node.getParameterType()).getField();
   80.40 +        } else {
   80.41 +            parameterType = (TypeName)node.getParameterType();
   80.42 +        }
   80.43 +
   80.44          if (parameterType != null) {
   80.45              String name = parameterType.getTypeName().getName();
   80.46              if (name != null) {
   80.47 @@ -539,8 +547,8 @@
   80.48  
   80.49      @CheckForNull
   80.50      //TODO converge this method with CodeUtils.extractTypeName()
   80.51 -    public static String extractTypeName(TypeDeclaration var) {
   80.52 -        String typeName = CodeUtils.extractTypeName(var);
   80.53 +    public static String extractTypeName(TypeDeclaration type) {
   80.54 +        String typeName = CodeUtils.extractTypeName(type);
   80.55  
   80.56          return typeName;
   80.57      }
    81.1 --- a/ada.editor/src/org/netbeans/modules/ada/editor/parser/Ada95ASTParser.java	Tue Oct 02 21:55:21 2012 -0400
    81.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    81.3 @@ -1,9130 +0,0 @@
    81.4 -
    81.5 -//----------------------------------------------------
    81.6 -// The following code was generated by CUP v0.11a beta 20060608
    81.7 -// Tue Sep 22 18:19:43 CEST 2009
    81.8 -//----------------------------------------------------
    81.9 -
   81.10 -package org.netbeans.modules.ada.editor.parser;
   81.11 -
   81.12 -import java.util.*;
   81.13 -import org.netbeans.modules.ada.editor.lexer.Ada95ASTLexer;
   81.14 -import org.netbeans.modules.ada.editor.ast.*;
   81.15 -import org.netbeans.modules.ada.editor.ast.nodes.*;
   81.16 -
   81.17 -/** CUP v0.11a beta 20060608 generated parser.
   81.18 -  * @version Tue Sep 22 18:19:43 CEST 2009
   81.19 -  */
   81.20 -public class Ada95ASTParser extends java_cup.runtime.lr_parser {
   81.21 -
   81.22 -  /** Default constructor. */
   81.23 -  public Ada95ASTParser() {super();}
   81.24 -
   81.25 -  /** Constructor which sets the default scanner. */
   81.26 -  public Ada95ASTParser(java_cup.runtime.Scanner s) {super(s);}
   81.27 -
   81.28 -  /** Constructor which sets the default scanner. */
   81.29 -  public Ada95ASTParser(java_cup.runtime.Scanner s, java_cup.runtime.SymbolFactory sf) {super(s,sf);}
   81.30 -
   81.31 -  /** Production table. */
   81.32 -  protected static final short _production_table[][] = 
   81.33 -    unpackFromStrings(new String[] {
   81.34 -    "\000\u0204\000\002\002\004\000\002\170\005\000\002\170" +
   81.35 -    "\010\000\002\171\003\000\002\171\005\000\002\172\003" +
   81.36 -    "\000\002\172\005\000\002\173\002\000\002\173\004\000" +
   81.37 -    "\002\003\003\000\002\003\003\000\002\004\003\000\002" +
   81.38 -    "\004\003\000\002\002\003\000\002\002\003\000\002\002" +
   81.39 -    "\003\000\002\002\003\000\002\002\003\000\002\002\003" +
   81.40 -    "\000\002\002\004\000\002\006\003\000\002\022\010\000" +
   81.41 -    "\002\023\003\000\002\023\005\000\002\024\002\000\002" +
   81.42 -    "\024\003\000\002\024\003\000\002\024\004\000\002\142" +
   81.43 -    "\003\000\002\142\003\000\002\143\002\000\002\143\004" +
   81.44 -    "\000\002\025\010\000\002\144\007\000\002\177\002\000" +
   81.45 -    "\002\177\003\000\002\177\005\000\002\145\002\000\002" +
   81.46 -    "\145\004\000\002\017\003\000\002\017\003\000\002\017" +
   81.47 -    "\003\000\002\017\003\000\002\017\003\000\002\017\003" +
   81.48 -    "\000\002\017\003\000\002\017\003\000\002\020\007\000" +
   81.49 -    "\002\021\004\000\002\021\003\000\002\210\003\000\002" +
   81.50 -    "\210\003\000\002\212\005\000\002\207\004\000\002\207" +
   81.51 -    "\006\000\002\207\006\000\002\207\007\000\002\207\007" +
   81.52 -    "\000\002\211\004\000\002\167\005\000\002\167\005\000" +
   81.53 -    "\002\167\010\000\002\201\005\000\002\215\003\000\002" +
   81.54 -    "\215\005\000\002\216\003\000\002\216\003\000\002\202" +
   81.55 -    "\003\000\002\202\004\000\002\217\003\000\002\220\002" +
   81.56 -    "\000\002\220\003\000\002\203\003\000\002\203\003\000" +
   81.57 -    "\002\221\005\000\002\222\005\000\002\222\007\000\002" +
   81.58 -    "\204\003\000\002\204\003\000\002\223\010\000\002\224" +
   81.59 -    "\006\000\002\227\004\000\002\230\002\000\002\230\003" +
   81.60 -    "\000\002\225\003\000\002\225\005\000\002\226\005\000" +
   81.61 -    "\002\231\005\000\002\232\003\000\002\232\005\000\002" +
   81.62 -    "\166\004\000\002\166\003\000\002\213\002\000\002\213" +
   81.63 -    "\003\000\002\205\005\000\002\214\007\000\002\214\004" +
   81.64 -    "\000\002\112\002\000\002\112\003\000\002\112\004\000" +
   81.65 -    "\002\233\004\000\002\233\004\000\002\233\005\000\002" +
   81.66 -    "\234\003\000\002\234\005\000\002\236\003\000\002\236" +
   81.67 -    "\005\000\002\235\007\000\002\235\004\000\002\200\005" +
   81.68 -    "\000\002\240\003\000\002\240\005\000\002\241\007\000" +
   81.69 -    "\002\241\003\000\002\242\002\000\002\242\003\000\002" +
   81.70 -    "\237\012\000\002\243\003\000\002\243\004\000\002\244" +
   81.71 -    "\007\000\002\161\003\000\002\161\005\000\002\245\003" +
   81.72 -    "\000\002\245\003\000\002\245\003\000\002\246\004\000" +
   81.73 -    "\002\246\003\000\002\206\004\000\002\206\005\000\002" +
   81.74 -    "\206\005\000\002\206\006\000\002\206\010\000\002\247" +
   81.75 -    "\002\000\002\247\003\000\002\012\002\000\002\012\003" +
   81.76 -    "\000\002\007\002\000\002\007\003\000\002\010\003\000" +
   81.77 -    "\002\010\004\000\002\011\003\000\002\011\003\000\002" +
   81.78 -    "\011\003\000\002\011\003\000\002\011\003\000\002\011" +
   81.79 -    "\003\000\002\011\003\000\002\011\003\000\002\013\003" +
   81.80 -    "\000\002\013\004\000\002\251\003\000\002\251\003\000" +
   81.81 -    "\002\110\003\000\002\110\003\000\002\110\003\000\002" +
   81.82 -    "\110\003\000\002\015\003\000\002\015\003\000\002\015" +
   81.83 -    "\003\000\002\015\003\000\002\026\003\000\002\026\003" +
   81.84 -    "\000\002\026\003\000\002\026\003\000\002\026\003\000" +
   81.85 -    "\002\146\003\000\002\146\005\000\002\146\005\000\002" +
   81.86 -    "\027\003\000\002\140\003\000\002\140\005\000\002\133" +
   81.87 -    "\003\000\002\133\005\000\002\160\003\000\002\164\006" +
   81.88 -    "\000\002\165\003\000\002\165\005\000\002\253\003\000" +
   81.89 -    "\002\253\003\000\002\253\003\000\002\253\003\000\002" +
   81.90 -    "\030\005\000\002\030\005\000\002\030\005\000\002\030" +
   81.91 -    "\005\000\002\163\005\000\002\252\003\000\002\252\003" +
   81.92 -    "\000\002\252\003\000\002\252\003\000\002\154\003\000" +
   81.93 -    "\002\154\003\000\002\154\003\000\002\154\003\000\002" +
   81.94 -    "\255\005\000\002\255\005\000\002\255\007\000\002\255" +
   81.95 -    "\010\000\002\255\006\000\002\256\005\000\002\256\005" +
   81.96 -    "\000\002\254\005\000\002\037\003\000\002\037\003\000" +
   81.97 -    "\002\037\003\000\002\257\004\000\002\257\004\000\002" +
   81.98 -    "\040\003\000\002\040\003\000\002\040\003\000\002\040" +
   81.99 -    "\003\000\002\040\003\000\002\040\003\000\002\260\003" +
  81.100 -    "\000\002\260\004\000\002\042\003\000\002\042\003\000" +
  81.101 -    "\002\041\003\000\002\041\003\000\002\041\003\000\002" +
  81.102 -    "\043\003\000\002\043\003\000\002\043\003\000\002\043" +
  81.103 -    "\003\000\002\031\003\000\002\031\005\000\002\031\005" +
  81.104 -    "\000\002\032\003\000\002\032\005\000\002\032\005\000" +
  81.105 -    "\002\032\005\000\002\033\004\000\002\033\003\000\002" +
  81.106 -    "\033\005\000\002\034\003\000\002\034\005\000\002\035" +
  81.107 -    "\003\000\002\035\004\000\002\035\004\000\002\035\005" +
  81.108 -    "\000\002\036\003\000\002\036\003\000\002\036\003\000" +
  81.109 -    "\002\036\003\000\002\036\003\000\002\155\003\000\002" +
  81.110 -    "\155\005\000\002\044\005\000\002\261\004\000\002\261" +
  81.111 -    "\004\000\002\045\003\000\002\045\004\000\002\150\003" +
  81.112 -    "\000\002\150\004\000\002\153\003\000\002\153\003\000" +
  81.113 -    "\002\153\003\000\002\046\003\000\002\046\003\000\002" +
  81.114 -    "\046\003\000\002\046\003\000\002\046\003\000\002\046" +
  81.115 -    "\003\000\002\046\003\000\002\046\003\000\002\046\003" +
  81.116 -    "\000\002\046\003\000\002\046\003\000\002\046\004\000" +
  81.117 -    "\002\047\003\000\002\047\003\000\002\047\003\000\002" +
  81.118 -    "\047\003\000\002\047\003\000\002\047\003\000\002\262" +
  81.119 -    "\005\000\002\050\004\000\002\051\006\000\002\052\010" +
  81.120 -    "\000\002\053\005\000\002\053\007\000\002\054\003\000" +
  81.121 -    "\002\055\002\000\002\055\004\000\002\056\012\000\002" +
  81.122 -    "\057\002\000\002\057\004\000\002\060\006\000\002\061" +
  81.123 -    "\007\000\002\162\002\000\002\162\004\000\002\063\002" +
  81.124 -    "\000\002\063\004\000\002\063\005\000\002\266\005\000" +
  81.125 -    "\002\267\002\000\002\267\003\000\002\062\006\000\002" +
  81.126 -    "\152\002\000\002\152\003\000\002\064\010\000\002\065" +
  81.127 -    "\002\000\002\065\004\000\002\066\004\000\002\147\004" +
  81.128 -    "\000\002\270\002\000\002\270\003\000\002\067\006\000" +
  81.129 -    "\002\070\002\000\002\070\003\000\002\156\002\000\002" +
  81.130 -    "\156\004\000\002\104\004\000\002\104\005\000\002\071" +
  81.131 -    "\005\000\002\005\004\000\002\005\004\000\002\005\006" +
  81.132 -    "\000\002\072\005\000\002\072\007\000\002\072\004\000" +
  81.133 -    "\002\102\003\000\002\102\003\000\002\076\002\000\002" +
  81.134 -    "\076\003\000\002\077\005\000\002\075\003\000\002\075" +
  81.135 -    "\005\000\002\100\007\000\002\100\004\000\002\101\002" +
  81.136 -    "\000\002\101\003\000\002\101\003\000\002\101\004\000" +
  81.137 -    "\002\101\003\000\002\103\003\000\002\074\011\000\002" +
  81.138 -    "\157\004\000\002\105\004\000\002\105\004\000\002\106" +
  81.139 -    "\011\000\002\014\002\000\002\014\004\000\002\141\002" +
  81.140 -    "\000\002\141\003\000\002\107\013\000\002\273\002\000" +
  81.141 -    "\002\273\003\000\002\111\005\000\002\113\002\000\002" +
  81.142 -    "\113\003\000\002\114\005\000\002\114\006\000\002\115" +
  81.143 -    "\003\000\002\115\005\000\002\116\003\000\002\116\005" +
  81.144 -    "\000\002\117\011\000\002\117\010\000\002\117\003\000" +
  81.145 -    "\002\120\007\000\002\120\006\000\002\120\010\000\002" +
  81.146 -    "\120\007\000\002\174\004\000\002\275\005\000\002\275" +
  81.147 -    "\007\000\002\276\002\000\002\276\010\000\002\301\002" +
  81.148 -    "\000\002\301\005\000\002\016\013\000\002\175\004\000" +
  81.149 -    "\002\302\005\000\002\302\007\000\002\303\007\000\002" +
  81.150 -    "\305\002\000\002\305\004\000\002\304\002\000\002\304" +
  81.151 -    "\004\000\002\307\003\000\002\307\004\000\002\307\003" +
  81.152 -    "\000\002\307\003\000\002\306\002\000\002\306\004\000" +
  81.153 -    "\002\311\003\000\002\311\003\000\002\121\012\000\002" +
  81.154 -    "\312\003\000\002\312\005\000\002\313\003\000\002\313" +
  81.155 -    "\003\000\002\313\004\000\002\277\003\000\002\277\005" +
  81.156 -    "\000\002\310\006\000\002\310\011\000\002\314\010\000" +
  81.157 -    "\002\314\014\000\002\315\003\000\002\315\010\000\002" +
  81.158 -    "\300\002\000\002\300\005\000\002\317\003\000\002\264" +
  81.159 -    "\004\000\002\264\010\000\002\316\005\000\002\320\003" +
  81.160 -    "\000\002\320\006\000\002\122\005\000\002\122\006\000" +
  81.161 -    "\002\265\003\000\002\265\003\000\002\265\003\000\002" +
  81.162 -    "\265\003\000\002\321\011\000\002\325\003\000\002\325" +
  81.163 -    "\006\000\002\326\002\000\002\326\005\000\002\327\004" +
  81.164 -    "\000\002\327\004\000\002\327\004\000\002\331\004\000" +
  81.165 -    "\002\331\004\000\002\322\012\000\002\323\013\000\002" +
  81.166 -    "\324\012\000\002\330\002\000\002\330\003\000\002\123" +
  81.167 -    "\005\000\002\124\003\000\002\124\005\000\002\125\003" +
  81.168 -    "\000\002\126\002\000\002\126\004\000\002\126\004\000" +
  81.169 -    "\002\127\006\000\002\127\005\000\002\332\002\000\002" +
  81.170 -    "\332\003\000\002\130\003\000\002\130\003\000\002\130" +
  81.171 -    "\003\000\002\130\003\000\002\130\003\000\002\130\003" +
  81.172 -    "\000\002\130\003\000\002\131\003\000\002\131\003\000" +
  81.173 -    "\002\131\004\000\002\131\004\000\002\131\004\000\002" +
  81.174 -    "\132\005\000\002\151\007\000\002\134\010\000\002\134" +
  81.175 -    "\010\000\002\134\006\000\002\134\010\000\002\176\006" +
  81.176 -    "\000\002\271\004\000\002\271\004\000\002\333\006\000" +
  81.177 -    "\002\333\010\000\002\334\003\000\002\334\005\000\002" +
  81.178 -    "\335\003\000\002\335\003\000\002\135\005\000\002\263" +
  81.179 -    "\005\000\002\263\007\000\002\136\005\000\002\136\005" +
  81.180 -    "\000\002\274\003\000\002\274\004\000\002\336\004\000" +
  81.181 -    "\002\336\010\000\002\336\010\000\002\336\012\000\002" +
  81.182 -    "\336\014\000\002\336\011\000\002\336\003\000\002\337" +
  81.183 -    "\002\000\002\337\003\000\002\337\005\000\002\341\002" +
  81.184 -    "\000\002\341\004\000\002\341\004\000\002\340\005\000" +
  81.185 -    "\002\340\004\000\002\340\004\000\002\340\004\000\002" +
  81.186 -    "\340\006\000\002\340\004\000\002\340\003\000\002\340" +
  81.187 -    "\003\000\002\340\003\000\002\340\003\000\002\342\004" +
  81.188 -    "\000\002\342\006\000\002\342\007\000\002\073\005\000" +
  81.189 -    "\002\272\006\000\002\343\004\000\002\250\003\000\002" +
  81.190 -    "\250\003\000\002\250\003\000\002\344\007\000\002\345" +
  81.191 -    "\013\000\002\347\002\000\002\347\006\000\002\350\002" +
  81.192 -    "\000\002\350\011\000\002\346\010\000\002\137\004" });
  81.193 -
  81.194 -  /** Access to production table. */
  81.195 -  public short[][] production_table() {return _production_table;}
  81.196 -
  81.197 -  /** Parse-action table. */
  81.198 -  protected static final short[][] _action_table = 
  81.199 -    unpackFromStrings(new String[] {
  81.200 -    "\000\u03db\000\026\002\ufe4e\036\ufe4e\037\ufe4e\056\ufe4e\057" +
  81.201 -    "\004\060\ufe4e\061\ufe4e\074\ufe4e\104\ufe4e\107\ufe4e\001\002" +
  81.202 -    "\000\004\144\u03d0\001\002\000\004\002\u03cf\001\002\000" +
  81.203 -    "\026\002\ufffa\036\ufffa\037\ufffa\056\ufffa\057\ufffa\060\ufffa" +
  81.204 -    "\061\ufffa\074\ufffa\104\ufffa\107\ufffa\001\002\000\024\002" +
  81.205 -    "\ufe4f\036\ufe49\037\ufe49\056\ufe49\060\017\061\ufe49\074\ufe49" +
  81.206 -    "\104\015\107\013\001\002\000\024\036\ufe49\037\ufe49\056" +
  81.207 -    "\ufe49\057\004\060\017\061\ufe49\074\ufe49\104\015\107\013" +
  81.208 -    "\001\002\000\024\036\ufe40\037\ufe40\056\ufe40\057\ufe40\060" +
  81.209 -    "\ufe40\061\ufe40\074\ufe40\104\ufe40\107\ufe40\001\002\000\024" +
  81.210 -    "\036\ufe3f\037\ufe3f\056\ufe3f\057\ufe3f\060\ufe3f\061\ufe3f\074" +
  81.211 -    "\ufe3f\104\ufe3f\107\ufe3f\001\002\000\004\144\045\001\002" +
  81.212 -    "\000\024\002\ufe4d\036\ufe4d\037\ufe4d\056\ufe4d\060\ufe4d\061" +
  81.213 -    "\ufe4d\074\ufe4d\104\ufe4d\107\ufe4d\001\002\000\010\102\u03ba" +
  81.214 -    "\144\045\147\205\001\002\000\014\036\027\037\030\056" +
  81.215 -    "\036\061\021\074\022\001\002\000\014\036\ufe48\037\ufe48" +
  81.216 -    "\056\ufe48\061\ufe48\074\ufe48\001\002\000\022\003\u012f\036" +
  81.217 -    "\027\056\u0369\061\021\102\u036b\104\015\107\u036d\144\126" +
  81.218 -    "\001\002\000\004\144\045\001\002\000\004\113\u0353\001" +
  81.219 -    "\002\000\026\002\ufe46\036\ufe46\037\ufe46\056\ufe46\057\ufe46" +
  81.220 -    "\060\ufe46\061\ufe46\074\ufe46\104\ufe46\107\ufe46\001\002\000" +
  81.221 -    "\004\124\u0352\001\002\000\004\124\u0351\001\002\000\026" +
  81.222 -    "\002\ufe45\036\ufe45\037\ufe45\056\ufe45\057\ufe45\060\ufe45\061" +
  81.223 -    "\ufe45\074\ufe45\104\ufe45\107\ufe45\001\002\000\006\144\045" +
  81.224 -    "\147\205\001\002\000\022\003\ufe27\036\ufe27\056\ufe27\061" +
  81.225 -    "\ufe27\102\ufe27\104\ufe27\107\ufe27\144\ufe27\001\002\000\026" +
  81.226 -    "\002\ufe47\036\ufe47\037\ufe47\056\ufe47\057\ufe47\060\ufe47\061" +
  81.227 -    "\ufe47\074\ufe47\104\ufe47\107\ufe47\001\002\000\026\002\ufe42" +
  81.228 -    "\036\ufe42\037\ufe42\056\ufe42\057\ufe42\060\ufe42\061\ufe42\074" +
  81.229 -    "\ufe42\104\ufe42\107\ufe42\001\002\000\026\002\ufe41\036\ufe41" +
  81.230 -    "\037\ufe41\056\ufe41\057\ufe41\060\ufe41\061\ufe41\074\ufe41\104" +
  81.231 -    "\ufe41\107\ufe41\001\002\000\026\002\ufffa\036\ufffa\037\ufffa" +
  81.232 -    "\056\ufffa\057\ufffa\060\ufffa\061\ufffa\074\ufffa\104\ufffa\107" +
  81.233 -    "\ufffa\001\002\000\010\043\u034b\071\u024e\124\u024d\001\002" +
  81.234 -    "\000\006\017\044\144\045\001\002\000\004\124\042\001" +
  81.235 -    "\002\000\026\002\ufe44\036\ufe44\037\ufe44\056\ufe44\057\ufe44" +
  81.236 -    "\060\ufe44\061\ufe44\074\ufe44\104\ufe44\107\ufe44\001\002\000" +
  81.237 -    "\026\002\ufe43\036\ufe43\037\ufe43\056\ufe43\057\ufe43\060\ufe43" +
  81.238 -    "\061\ufe43\074\ufe43\104\ufe43\107\ufe43\001\002\000\050\002" +
  81.239 -    "\ufeaf\003\ufeaf\016\ufeaf\031\ufeaf\035\ufeaf\036\ufeaf\037\ufeaf" +
  81.240 -    "\056\ufeaf\057\ufeaf\060\ufeaf\061\ufeaf\062\ufeaf\074\ufeaf\075" +
  81.241 -    "\ufeaf\077\ufeaf\102\ufeaf\104\ufeaf\107\ufeaf\144\ufeaf\001\002" +
  81.242 -    "\000\010\043\u0330\071\u032f\121\051\001\002\000\004\144" +
  81.243 -    "\045\001\002\000\124\013\uff59\015\uff59\025\uff59\026\uff59" +
  81.244 -    "\042\uff59\043\uff59\045\uff59\046\uff59\050\uff59\053\uff59\063" +
  81.245 -    "\uff59\066\uff59\070\uff59\071\uff59\101\uff59\104\uff59\105\uff59" +
  81.246 -    "\107\uff59\110\uff59\111\uff59\112\uff59\113\uff59\114\uff59\115" +
  81.247 -    "\uff59\116\uff59\117\uff59\120\uff59\121\uff59\122\uff59\124\uff59" +
  81.248 -    "\125\uff59\126\uff59\127\uff59\130\uff59\131\uff59\132\uff59\133" +
  81.249 -    "\uff59\134\uff59\135\uff59\136\uff59\137\uff59\001\002\000\022" +
  81.250 -    "\043\uff58\063\uff58\071\uff58\113\uff58\114\uff58\117\uff58\121" +
  81.251 -    "\uff58\124\uff58\001\002\000\006\043\050\121\051\001\002" +
  81.252 -    "\000\040\003\105\016\uff7b\031\uff7b\035\070\036\027\037" +
  81.253 -    "\030\056\121\057\004\061\021\062\117\075\076\077\060" +
  81.254 -    "\102\074\104\015\144\126\001\002\000\004\144\045\001" +
  81.255 -    "\002\000\022\043\uff57\063\uff57\071\uff57\113\uff57\114\uff57" +
  81.256 -    "\117\uff57\121\uff57\124\uff57\001\002\000\040\003\uff67\016" +
  81.257 -    "\uff67\031\uff67\035\uff67\036\uff67\037\uff67\056\uff67\057\uff67" +
  81.258 -    "\061\uff67\062\uff67\075\uff67\077\uff67\102\uff67\104\uff67\144" +
  81.259 -    "\uff67\001\002\000\004\124\u032e\001\002\000\042\003\uff74" +
  81.260 -    "\016\uff74\031\uff74\035\uff74\036\uff74\037\uff74\056\uff74\057" +
  81.261 -    "\uff74\060\uff74\061\uff74\062\uff74\075\uff74\077\uff74\102\uff74" +
  81.262 -    "\104\uff74\144\uff74\001\002\000\044\003\ufe06\016\ufe06\031" +
  81.263 -    "\ufe06\032\ufe06\035\ufe06\036\ufe06\037\ufe06\056\ufe06\057\ufe06" +
  81.264 -    "\060\ufe06\061\ufe06\062\ufe06\075\ufe06\077\ufe06\102\ufe06\104" +
  81.265 -    "\ufe06\144\ufe06\001\002\000\042\003\ufff2\016\ufff2\031\ufff2" +
  81.266 -    "\035\ufff2\036\ufff2\037\ufff2\056\ufff2\057\ufff2\060\ufff2\061" +
  81.267 -    "\ufff2\062\ufff2\075\ufff2\077\ufff2\102\ufff2\104\ufff2\144\ufff2" +
  81.268 -    "\001\002\000\010\017\u0310\102\u0312\144\045\001\002\000" +
  81.269 -    "\042\003\ufff8\016\ufff8\031\ufff8\035\ufff8\036\ufff8\037\ufff8" +
  81.270 -    "\056\ufff8\057\ufff8\060\ufff8\061\ufff8\062\ufff8\075\ufff8\077" +
  81.271 -    "\ufff8\102\ufff8\104\ufff8\144\ufff8\001\002\000\006\117\155" +
  81.272 -    "\123\u02fb\001\002\000\042\003\uff75\016\uff75\031\uff75\035" +
  81.273 -    "\uff75\036\uff75\037\uff75\056\uff75\057\uff75\060\uff75\061\uff75" +
  81.274 -    "\062\uff75\075\uff75\077\uff75\102\uff75\104\uff75\144\uff75\001" +
  81.275 -    "\002\000\042\003\uff6f\016\uff6f\031\uff6f\035\uff6f\036\uff6f" +
  81.276 -    "\037\uff6f\056\uff6f\057\uff6f\060\uff6f\061\uff6f\062\uff6f\075" +
  81.277 -    "\uff6f\077\uff6f\102\uff6f\104\uff6f\144\uff6f\001\002\000\042" +
  81.278 -    "\003\ufff0\016\ufff0\031\ufff0\035\ufff0\036\ufff0\037\ufff0\056" +
  81.279 -    "\ufff0\057\ufff0\060\ufff0\061\ufff0\062\ufff0\075\ufff0\077\ufff0" +
  81.280 -    "\102\ufff0\104\ufff0\144\ufff0\001\002\000\042\003\ufff6\016" +
  81.281 -    "\ufff6\031\ufff6\035\ufff6\036\ufff6\037\ufff6\056\ufff6\057\ufff6" +
  81.282 -    "\060\ufff6\061\ufff6\062\ufff6\075\ufff6\077\ufff6\102\ufff6\104" +
  81.283 -    "\ufff6\144\ufff6\001\002\000\040\003\105\016\uff7a\031\uff7a" +
  81.284 -    "\035\070\036\027\037\030\056\121\057\004\061\021\062" +
  81.285 -    "\117\075\076\077\060\102\074\104\015\144\126\001\002" +
  81.286 -    "\000\004\144\045\001\002\000\042\003\uff72\016\uff72\031" +
  81.287 -    "\uff72\035\uff72\036\uff72\037\uff72\056\uff72\057\uff72\060\uff72" +
  81.288 -    "\061\uff72\062\uff72\075\uff72\077\uff72\102\uff72\104\uff72\144" +
  81.289 -    "\uff72\001\002\000\040\003\uff68\016\uff68\031\uff68\035\uff68" +
  81.290 -    "\036\uff68\037\uff68\056\uff68\057\uff68\061\uff68\062\uff68\075" +
  81.291 -    "\uff68\077\uff68\102\uff68\104\uff68\144\uff68\001\002\000\040" +
  81.292 -    "\003\uff69\016\uff69\031\uff69\035\uff69\036\uff69\037\uff69\056" +
  81.293 -    "\uff69\057\uff69\061\uff69\062\uff69\075\uff69\077\uff69\102\uff69" +
  81.294 -    "\104\uff69\144\uff69\001\002\000\004\144\126\001\002\000" +
  81.295 -    "\006\016\u015c\031\ufea7\001\002\000\004\144\126\001\002" +
  81.296 -    "\000\010\043\u024f\071\u024e\124\u024d\001\002\000\042\003" +
  81.297 -    "\ufe9a\016\ufe9a\031\ufe9a\035\ufe9a\036\ufe9a\037\ufe9a\056\ufe9a" +
  81.298 -    "\057\ufe9a\060\ufe9a\061\ufe9a\062\ufe9a\075\ufe9a\077\ufe9a\102" +
  81.299 -    "\ufe9a\104\ufe9a\144\ufe9a\001\002\000\042\003\ufff4\016\ufff4" +
  81.300 -    "\031\ufff4\035\ufff4\036\ufff4\037\ufff4\056\ufff4\057\ufff4\060" +
  81.301 -    "\ufff4\061\ufff4\062\ufff4\075\ufff4\077\ufff4\102\ufff4\104\ufff4" +
  81.302 -    "\144\ufff4\001\002\000\042\003\uff73\016\uff73\031\uff73\035" +
  81.303 -    "\uff73\036\uff73\037\uff73\056\uff73\057\uff73\060\uff73\061\uff73" +
  81.304 -    "\062\uff73\075\uff73\077\uff73\102\uff73\104\uff73\144\uff73\001" +
  81.305 -    "\002\000\006\117\uffeb\123\uffeb\001\002\000\040\003\uff6b" +
  81.306 -    "\016\uff6b\031\uff6b\035\uff6b\036\uff6b\037\uff6b\056\uff6b\057" +
  81.307 -    "\uff6b\061\uff6b\062\uff6b\075\uff6b\077\uff6b\102\uff6b\104\uff6b" +
  81.308 -    "\144\uff6b\001\002\000\004\124\u024c\001\002\000\040\003" +
  81.309 -    "\uff6a\016\uff6a\031\uff6a\035\uff6a\036\uff6a\037\uff6a\056\uff6a" +
  81.310 -    "\057\uff6a\061\uff6a\062\uff6a\075\uff6a\077\uff6a\102\uff6a\104" +
  81.311 -    "\uff6a\144\uff6a\001\002\000\040\003\uff66\016\uff66\031\uff66" +
  81.312 -    "\035\uff66\036\uff66\037\uff66\056\uff66\057\uff66\061\uff66\062" +
  81.313 -    "\uff66\075\uff66\077\uff66\102\uff66\104\uff66\144\uff66\001\002" +
  81.314 -    "\000\042\003\uff70\016\uff70\031\uff70\035\uff70\036\uff70\037" +
  81.315 -    "\uff70\056\uff70\057\uff70\060\uff70\061\uff70\062\uff70\075\uff70" +
  81.316 -    "\077\uff70\102\uff70\104\uff70\144\uff70\001\002\000\040\003" +
  81.317 -    "\uff6d\016\uff6d\031\uff6d\035\uff6d\036\uff6d\037\uff6d\056\uff6d" +
  81.318 -    "\057\uff6d\061\uff6d\062\uff6d\075\uff6d\077\uff6d\102\uff6d\104" +
  81.319 -    "\uff6d\144\uff6d\001\002\000\042\003\ufff3\016\ufff3\031\ufff3" +
  81.320 -    "\035\ufff3\036\ufff3\037\ufff3\056\ufff3\057\ufff3\060\ufff3\061" +
  81.321 -    "\ufff3\062\ufff3\075\ufff3\077\ufff3\102\ufff3\104\ufff3\144\ufff3" +
  81.322 -    "\001\002\000\044\003\ufe08\016\ufe08\031\ufe08\032\ufe08\035" +
  81.323 -    "\ufe08\036\ufe08\037\ufe08\056\ufe08\057\ufe08\060\ufe08\061\ufe08" +
  81.324 -    "\062\ufe08\075\ufe08\077\ufe08\102\ufe08\104\ufe08\144\ufe08\001" +
  81.325 -    "\002\000\042\003\uffef\016\uffef\031\uffef\035\uffef\036\uffef" +
  81.326 -    "\037\uffef\056\uffef\057\uffef\060\uffef\061\uffef\062\uffef\075" +
  81.327 -    "\uffef\077\uffef\102\uffef\104\uffef\144\uffef\001\002\000\044" +
  81.328 -    "\003\ufe07\016\ufe07\031\ufe07\032\ufe07\035\ufe07\036\ufe07\037" +
  81.329 -    "\ufe07\056\ufe07\057\ufe07\060\ufe07\061\ufe07\062\ufe07\075\ufe07" +
  81.330 -    "\077\ufe07\102\ufe07\104\ufe07\144\ufe07\001\002\000\042\003" +
  81.331 -    "\ufff1\016\ufff1\031\ufff1\035\ufff1\036\ufff1\037\ufff1\056\ufff1" +
  81.332 -    "\057\ufff1\060\ufff1\061\ufff1\062\ufff1\075\ufff1\077\ufff1\102" +
  81.333 -    "\ufff1\104\ufff1\144\ufff1\001\002\000\010\017\135\102\137" +
  81.334 -    "\144\136\001\002\000\042\003\ufff7\016\ufff7\031\ufff7\035" +
  81.335 -    "\ufff7\036\ufff7\037\ufff7\056\ufff7\057\ufff7\060\ufff7\061\ufff7" +
  81.336 -    "\062\ufff7\075\ufff7\077\ufff7\102\ufff7\104\ufff7\144\ufff7\001" +
  81.337 -    "\002\000\006\017\130\144\045\001\002\000\004\124\127" +
  81.338 -    "\001\002\000\042\003\uff6e\016\uff6e\031\uff6e\035\uff6e\036" +
  81.339 -    "\uff6e\037\uff6e\056\uff6e\057\uff6e\060\uff6e\061\uff6e\062\uff6e" +
  81.340 -    "\075\uff6e\077\uff6e\102\uff6e\104\uff6e\144\uff6e\001\002\000" +
  81.341 -    "\042\003\ufff5\016\ufff5\031\ufff5\035\ufff5\036\ufff5\037\ufff5" +
  81.342 -    "\056\ufff5\057\ufff5\060\ufff5\061\ufff5\062\ufff5\075\ufff5\077" +
  81.343 -    "\ufff5\102\ufff5\104\ufff5\144\ufff5\001\002\000\042\003\uff71" +
  81.344 -    "\016\uff71\031\uff71\035\uff71\036\uff71\037\uff71\056\uff71\057" +
  81.345 -    "\uff71\060\uff71\061\uff71\062\uff71\075\uff71\077\uff71\102\uff71" +
  81.346 -    "\104\uff71\144\uff71\001\002\000\014\043\uffed\113\uffed\117" +
  81.347 -    "\uffed\123\uffed\124\uffed\001\002\000\042\003\ufe95\016\ufe95" +
  81.348 -    "\031\ufe95\035\ufe95\036\ufe95\037\ufe95\056\ufe95\057\ufe95\060" +
  81.349 -    "\ufe95\061\ufe95\062\ufe95\075\ufe95\077\ufe95\102\ufe95\104\ufe95" +
  81.350 -    "\144\ufe95\001\002\000\004\144\045\001\002\000\006\043" +
  81.351 -    "\132\121\051\001\002\000\042\003\105\016\uff7b\031\uff7b" +
  81.352 -    "\035\070\036\027\037\030\056\121\057\004\061\021\062" +
  81.353 -    "\117\074\133\075\076\077\060\102\074\104\015\144\126" +
  81.354 -    "\001\002\000\004\124\134\001\002\000\042\003\ufe38\016" +
  81.355 -    "\ufe38\031\ufe38\035\ufe38\036\ufe38\037\ufe38\056\ufe38\057\ufe38" +
  81.356 -    "\060\ufe38\061\ufe38\062\ufe38\075\ufe38\077\ufe38\102\ufe38\104" +
  81.357 -    "\ufe38\144\ufe38\001\002\000\004\144\045\001\002\000\004" +
  81.358 -    "\043\u0104\001\002\000\004\144\045\001\002\000\006\043" +
  81.359 -    "\uffdf\113\143\001\002\000\006\043\uffde\124\uffde\001\002" +
  81.360 -    "\000\004\043\u0104\001\002\000\010\003\145\142\146\144" +
  81.361 -    "\126\001\002\000\006\117\155\123\156\001\002\000\006" +
  81.362 -    "\114\uff90\124\uff90\001\002\000\004\114\154\001\002\000" +
  81.363 -    "\006\114\152\124\151\001\002\000\006\114\uff93\124\uff93" +
  81.364 -    "\001\002\000\006\003\145\144\126\001\002\000\006\043" +
  81.365 -    "\uff94\124\uff94\001\002\000\006\114\uff92\124\uff92\001\002" +
  81.366 -    "\000\006\043\uffdd\124\uffdd\001\002\000\004\144\126\001" +
  81.367 -    "\002\000\006\007\160\144\uff8f\001\002\000\004\144\045" +
  81.368 -    "\001\002\000\004\144\uff8e\001\002\000\020\015\uff5c\104" +
  81.369 -    "\uff5c\112\uff5c\114\uff5c\121\uff5c\124\uff5c\134\uff5c\001\002" +
  81.370 -    "\000\014\112\165\114\uffe3\121\166\124\uffe3\134\164\001" +
  81.371 -    "\002\000\006\114\uff91\124\uff91\001\002\000\032\005\213" +
  81.372 -    "\047\224\050\200\051\227\113\204\116\175\120\217\143" +
  81.373 -    "\215\144\045\145\176\146\231\147\205\001\002\000\012" +
  81.374 -    "\007\173\024\174\025\171\144\172\001\002\000\004\144" +
  81.375 -    "\045\001\002\000\020\015\uff5a\104\uff5a\112\uff5a\114\uff5a" +
  81.376 -    "\121\uff5a\124\uff5a\134\uff5a\001\002\000\020\015\uff5b\104" +
  81.377 -    "\uff5b\112\uff5b\114\uff5b\121\uff5b\124\uff5b\134\uff5b\001\002" +
  81.378 -    "\000\120\013\uff46\015\uff46\025\uff46\042\uff46\043\uff46\045" +
  81.379 -    "\uff46\046\uff46\050\uff46\053\uff46\066\uff46\070\uff46\071\uff46" +
  81.380 -    "\101\uff46\104\uff46\105\uff46\107\uff46\110\uff46\111\uff46\112" +
  81.381 -    "\uff46\113\uff46\114\uff46\115\uff46\116\uff46\117\uff46\120\uff46" +
  81.382 -    "\121\uff46\122\uff46\124\uff46\125\uff46\126\uff46\127\uff46\130" +
  81.383 -    "\uff46\131\uff46\132\uff46\133\uff46\134\uff46\135\uff46\136\uff46" +
  81.384 -    "\137\uff46\001\002\000\120\013\uff47\015\uff47\025\uff47\042" +
  81.385 -    "\uff47\043\uff47\045\uff47\046\uff47\050\uff47\053\uff47\066\uff47" +
  81.386 -    "\070\uff47\071\uff47\101\uff47\104\uff47\105\uff47\107\uff47\110" +
  81.387 -    "\uff47\111\uff47\112\uff47\113\uff47\114\uff47\115\uff47\116\uff47" +
  81.388 -    "\117\uff47\120\uff47\121\uff47\122\uff47\124\uff47\125\uff47\126" +
  81.389 -    "\uff47\127\uff47\130\uff47\131\uff47\132\uff47\133\uff47\134\uff47" +
  81.390 -    "\135\uff47\136\uff47\137\uff47\001\002\000\120\013\uff44\015" +
  81.391 -    "\uff44\025\uff44\042\uff44\043\uff44\045\uff44\046\uff44\050\uff44" +
  81.392 -    "\053\uff44\066\uff44\070\uff44\071\uff44\101\uff44\104\uff44\105" +
  81.393 -    "\uff44\107\uff44\110\uff44\111\uff44\112\uff44\113\uff44\114\uff44" +
  81.394 -    "\115\uff44\116\uff44\117\uff44\120\uff44\121\uff44\122\uff44\124" +
  81.395 -    "\uff44\125\uff44\126\uff44\127\uff44\130\uff44\131\uff44\132\uff44" +
  81.396 -    "\133\uff44\134\uff44\135\uff44\136\uff44\137\uff44\001\002\000" +
  81.397 -    "\120\013\uff45\015\uff45\025\uff45\042\uff45\043\uff45\045\uff45" +
  81.398 -    "\046\uff45\050\uff45\053\uff45\066\uff45\070\uff45\071\uff45\101" +
  81.399 -    "\uff45\104\uff45\105\uff45\107\uff45\110\uff45\111\uff45\112\uff45" +
  81.400 -    "\113\uff45\114\uff45\115\uff45\116\uff45\117\uff45\120\uff45\121" +
  81.401 -    "\uff45\122\uff45\124\uff45\125\uff45\126\uff45\127\uff45\130\uff45" +
  81.402 -    "\131\uff45\132\uff45\133\uff45\134\uff45\135\uff45\136\uff45\137" +
  81.403 -    "\uff45\001\002\000\026\005\uff2a\047\uff2a\050\uff2a\051\uff2a" +
  81.404 -    "\113\uff2a\143\uff2a\144\uff2a\145\uff2a\146\uff2a\147\uff2a\001" +
  81.405 -    "\002\000\104\013\uff43\025\uff43\042\uff43\043\uff43\045\uff43" +
  81.406 -    "\046\uff43\050\uff43\053\uff43\066\uff43\070\uff43\071\uff43\101" +
  81.407 -    "\uff43\107\uff43\110\uff43\111\uff43\114\uff43\115\uff43\116\uff43" +
  81.408 -    "\117\uff43\120\uff43\122\uff43\124\uff43\125\uff43\126\uff43\127" +
  81.409 -    "\uff43\130\uff43\131\uff43\132\uff43\133\uff43\134\uff43\135\uff43" +
  81.410 -    "\136\uff43\137\uff43\001\002\000\114\013\uff60\025\uff60\042" +
  81.411 -    "\uff60\043\uff60\045\uff60\046\uff60\050\uff60\053\uff60\066\uff60" +
  81.412 -    "\070\uff60\071\uff60\101\uff60\105\uff60\107\uff60\110\uff60\111" +
  81.413 -    "\uff60\112\uff60\113\uff60\114\uff60\115\uff60\116\uff60\117\uff60" +
  81.414 -    "\120\uff60\121\uff60\122\uff60\124\uff60\125\uff60\126\uff60\127" +
  81.415 -    "\uff60\130\uff60\131\uff60\132\uff60\133\uff60\134\uff60\135\uff60" +
  81.416 -    "\136\uff60\137\uff60\001\002\000\022\047\224\051\227\113" +
  81.417 -    "\204\143\215\144\045\145\176\146\231\147\205\001\002" +
  81.418 -    "\000\104\013\uff0f\025\uff0f\042\uff0f\043\uff0f\045\uff0f\046" +
  81.419 -    "\uff0f\050\uff0f\053\uff0f\066\uff0f\070\uff0f\071\uff0f\101\uff0f" +
  81.420 -    "\107\uff0f\110\uff0f\111\uff0f\114\uff0f\115\uff0f\116\uff0f\117" +
  81.421 -    "\uff0f\120\uff0f\122\uff0f\124\uff0f\125\uff0f\126\uff0f\127\uff0f" +
  81.422 -    "\130\uff0f\131\uff0f\132\uff0f\133\uff0f\134\uff0f\135\uff0f\136" +
  81.423 -    "\uff0f\137\uff0f\001\002\000\042\013\uff21\025\uff21\043\uff21" +
  81.424 -    "\045\uff21\053\uff21\066\uff21\071\uff21\101\uff21\107\uff21\110" +
  81.425 -    "\uff21\114\uff21\117\uff21\124\uff21\130\uff21\131\uff21\134\uff21" +
  81.426 -    "\001\002\000\114\013\uff61\025\uff61\042\uff61\043\uff61\045" +
  81.427 -    "\uff61\046\uff61\050\uff61\053\uff61\066\uff61\070\uff61\071\uff61" +
  81.428 -    "\101\uff61\105\uff61\107\uff61\110\uff61\111\uff61\112\uff61\113" +
  81.429 -    "\uff61\114\uff61\115\uff61\116\uff61\117\uff61\120\uff61\121\uff61" +
  81.430 -    "\122\uff61\124\uff61\125\uff61\126\uff61\127\uff61\130\uff61\131" +
  81.431 -    "\uff61\132\uff61\133\uff61\134\uff61\135\uff61\136\uff61\137\uff61" +
  81.432 -    "\001\002\000\036\003\251\005\213\047\224\050\200\051" +
  81.433 -    "\357\054\253\113\204\116\175\120\217\143\215\144\045" +
  81.434 -    "\145\176\146\231\147\205\001\002\000\116\013\ufeb2\025" +
  81.435 -    "\ufeb2\042\ufeb2\043\ufeb2\045\ufeb2\046\ufeb2\050\ufeb2\053\ufeb2" +
  81.436 -    "\063\ufeb2\066\ufeb2\070\ufeb2\071\ufeb2\101\ufeb2\105\ufeb2\107" +
  81.437 -    "\ufeb2\110\ufeb2\111\ufeb2\112\ufeb2\113\ufeb2\114\ufeb2\115\ufeb2" +
  81.438 -    "\116\ufeb2\117\ufeb2\120\ufeb2\121\ufeb2\122\ufeb2\124\ufeb2\125" +
  81.439 -    "\ufeb2\126\ufeb2\127\ufeb2\130\ufeb2\131\ufeb2\132\ufeb2\133\ufeb2" +
  81.440 -    "\134\ufeb2\135\ufeb2\136\ufeb2\137\ufeb2\001\002\000\114\013" +
  81.441 -    "\uff5e\025\uff5e\042\uff5e\043\uff5e\045\uff5e\046\uff5e\050\uff5e" +
  81.442 -    "\053\uff5e\066\uff5e\070\uff5e\071\uff5e\101\uff5e\105\uff5e\107" +
  81.443 -    "\uff5e\110\uff5e\111\uff5e\112\uff5e\113\uff5e\114\uff5e\115\uff5e" +
  81.444 -    "\116\uff5e\117\uff5e\120\uff5e\121\uff5e\122\uff5e\124\uff5e\125" +
  81.445 -    "\uff5e\126\uff5e\127\uff5e\130\uff5e\131\uff5e\132\uff5e\133\uff5e" +
  81.446 -    "\134\uff5e\135\uff5e\136\uff5e\137\uff5e\001\002\000\014\013" +
  81.447 -    "\321\053\324\110\322\114\uffe2\124\uffe2\001\002\000\104" +
  81.448 -    "\013\uff0c\025\uff0c\042\uff0c\043\uff0c\045\uff0c\046\uff0c\050" +
  81.449 -    "\uff0c\053\uff0c\066\uff0c\070\uff0c\071\uff0c\101\uff0c\107\uff0c" +
  81.450 -    "\110\uff0c\111\uff0c\114\uff0c\115\uff0c\116\uff0c\117\uff0c\120" +
  81.451 -    "\uff0c\122\uff0c\124\uff0c\125\uff0c\126\uff0c\127\uff0c\130\uff0c" +
  81.452 -    "\131\uff0c\132\uff0c\133\uff0c\134\uff0c\135\uff0c\136\uff0c\137" +
  81.453 -    "\uff0c\001\002\000\102\013\uff17\025\uff17\042\uff17\043\uff17" +
  81.454 -    "\045\uff17\046\uff17\050\uff17\053\uff17\066\uff17\070\uff17\071" +
  81.455 -    "\uff17\101\uff17\107\uff17\110\uff17\111\uff17\114\uff17\115\uff17" +
  81.456 -    "\116\uff17\117\uff17\120\uff17\122\uff17\124\uff17\125\uff17\126" +
  81.457 -    "\uff17\127\uff17\130\uff17\131\uff17\132\uff17\134\uff17\135\uff17" +
  81.458 -    "\136\uff17\137\uff17\001\002\000\102\013\uff19\025\uff19\042" +
  81.459 -    "\uff19\043\uff19\045\uff19\046\303\050\uff19\053\uff19\066\uff19" +
  81.460 -    "\070\306\071\uff19\101\uff19\107\uff19\110\uff19\111\uff19\114" +
  81.461 -    "\uff19\115\302\116\uff19\117\uff19\120\uff19\122\305\124\uff19" +
  81.462 -    "\125\uff19\126\uff19\127\uff19\130\uff19\131\uff19\132\uff19\134" +
  81.463 -    "\uff19\135\uff19\136\uff19\137\uff19\001\002\000\022\047\224" +
  81.464 -    "\051\227\113\204\143\215\144\045\145\176\146\231\147" +
  81.465 -    "\205\001\002\000\070\013\uff1e\025\uff1e\042\261\043\uff1e" +
  81.466 -    "\045\uff1e\050\273\053\uff1e\066\uff1e\071\uff1e\101\uff1e\107" +
  81.467 -    "\uff1e\110\uff1e\111\274\114\uff1e\116\267\117\uff1e\120\260" +
  81.468 -    "\124\uff1e\125\271\126\266\127\276\130\uff1e\131\uff1e\134" +
  81.469 -    "\uff1e\135\264\136\262\137\275\001\002\000\114\013\uff54" +
  81.470 -    "\025\uff54\042\uff54\043\uff54\045\uff54\046\uff54\050\uff54\053" +
  81.471 -    "\uff54\066\uff54\070\uff54\071\uff54\101\uff54\105\uff54\107\uff54" +
  81.472 -    "\110\uff54\111\uff54\112\uff54\113\uff54\114\uff54\115\uff54\116" +
  81.473 -    "\uff54\117\uff54\120\uff54\121\uff54\122\uff54\124\uff54\125\uff54" +
  81.474 -    "\126\uff54\127\uff54\130\uff54\131\uff54\132\uff54\133\uff54\134" +
  81.475 -    "\uff54\135\uff54\136\uff54\137\uff54\001\002\000\104\013\uff0d" +
  81.476 -    "\025\uff0d\042\uff0d\043\uff0d\045\uff0d\046\uff0d\050\uff0d\053" +
  81.477 -    "\uff0d\066\uff0d\070\uff0d\071\uff0d\101\uff0d\107\uff0d\110\uff0d" +
  81.478 -    "\111\uff0d\114\uff0d\115\uff0d\116\uff0d\117\uff0d\120\uff0d\122" +
  81.479 -    "\uff0d\124\uff0d\125\uff0d\126\uff0d\127\uff0d\130\uff0d\131\uff0d" +
  81.480 -    "\132\uff0d\133\uff0d\134\uff0d\135\uff0d\136\uff0d\137\uff0d\001" +
  81.481 -    "\002\000\026\005\uff29\047\uff29\050\uff29\051\uff29\113\uff29" +
  81.482 -    "\143\uff29\144\uff29\145\uff29\146\uff29\147\uff29\001\002\000" +
  81.483 -    "\104\013\uff15\025\uff15\042\uff15\043\uff15\045\uff15\046\uff15" +
  81.484 -    "\050\uff15\053\uff15\066\uff15\070\uff15\071\uff15\101\uff15\107" +
  81.485 -    "\uff15\110\uff15\111\uff15\114\uff15\115\uff15\116\uff15\117\uff15" +
  81.486 -    "\120\uff15\122\uff15\124\uff15\125\uff15\126\uff15\127\uff15\130" +
  81.487 -    "\uff15\131\uff15\132\uff15\133\352\134\uff15\135\uff15\136\uff15" +
  81.488 -    "\137\uff15\001\002\000\104\013\uff11\025\uff11\042\uff11\043" +
  81.489 -    "\uff11\045\uff11\046\uff11\050\uff11\053\uff11\066\uff11\070\uff11" +
  81.490 -    "\071\uff11\101\uff11\107\uff11\110\uff11\111\uff11\114\uff11\115" +
  81.491 -    "\uff11\116\uff11\117\uff11\120\uff11\122\uff11\124\uff11\125\uff11" +
  81.492 -    "\126\uff11\127\uff11\130\uff11\131\uff11\132\uff11\133\uff11\134" +
  81.493 -    "\uff11\135\uff11\136\uff11\137\uff11\001\002\000\114\013\uff5d" +
  81.494 -    "\025\uff5d\042\uff5d\043\uff5d\045\uff5d\046\uff5d\050\uff5d\053" +
  81.495 -    "\uff5d\066\uff5d\070\uff5d\071\uff5d\101\uff5d\105\uff5d\107\uff5d" +
  81.496 -    "\110\uff5d\111\uff5d\112\uff5d\113\uff5d\114\uff5d\115\uff5d\116" +
  81.497 -    "\uff5d\117\uff5d\120\uff5d\121\uff5d\122\uff5d\124\uff5d\125\uff5d" +
  81.498 -    "\126\uff5d\127\uff5d\130\uff5d\131\uff5d\132\uff5d\133\uff5d\134" +
  81.499 -    "\uff5d\135\uff5d\136\uff5d\137\uff5d\001\002\000\026\005\213" +
  81.500 -    "\047\224\050\200\051\227\113\204\143\215\144\045\145" +
  81.501 -    "\176\146\231\147\205\001\002\000\006\144\045\147\205" +
  81.502 -    "\001\002\000\114\013\uff5f\025\uff5f\042\uff5f\043\uff5f\045" +
  81.503 -    "\uff5f\046\uff5f\050\uff5f\053\uff5f\066\uff5f\070\uff5f\071\uff5f" +
  81.504 -    "\101\uff5f\105\uff5f\107\uff5f\110\uff5f\111\uff5f\112\uff5f\113" +
  81.505 -    "\uff5f\114\uff5f\115\uff5f\116\uff5f\117\uff5f\120\uff5f\121\uff5f" +
  81.506 -    "\122\uff5f\124\uff5f\125\uff5f\126\uff5f\127\uff5f\130\uff5f\131" +
  81.507 -    "\uff5f\132\uff5f\133\uff5f\134\uff5f\135\uff5f\136\uff5f\137\uff5f" +
  81.508 -    "\001\002\000\104\013\uff0e\025\uff0e\042\uff0e\043\uff0e\045" +
  81.509 -    "\uff0e\046\uff0e\050\uff0e\053\uff0e\066\uff0e\070\uff0e\071\uff0e" +
  81.510 -    "\101\uff0e\107\uff0e\110\uff0e\111\uff0e\114\uff0e\115\uff0e\116" +
  81.511 -    "\uff0e\117\uff0e\120\uff0e\122\uff0e\124\uff0e\125\uff0e\126\uff0e" +
  81.512 -    "\127\uff0e\130\uff0e\131\uff0e\132\uff0e\133\uff0e\134\uff0e\135" +
  81.513 -    "\uff0e\136\uff0e\137\uff0e\001\002\000\104\013\uff40\025\uff40" +
  81.514 -    "\042\uff40\043\uff40\045\uff40\046\uff40\050\uff40\053\uff40\066" +
  81.515 -    "\uff40\070\uff40\071\uff40\101\uff40\107\uff40\110\uff40\111\uff40" +
  81.516 -    "\114\uff40\115\uff40\116\uff40\117\uff40\120\uff40\122\uff40\124" +
  81.517 -    "\uff40\125\uff40\126\uff40\127\uff40\130\uff40\131\uff40\132\uff40" +
  81.518 -    "\133\uff40\134\uff40\135\uff40\136\uff40\137\uff40\001\002\000" +
  81.519 -    "\104\013\uff41\025\uff41\042\uff41\043\uff41\045\uff41\046\uff41" +
  81.520 -    "\050\uff41\053\uff41\066\uff41\070\uff41\071\uff41\101\uff41\107" +
  81.521 -    "\uff41\110\uff41\111\uff41\114\uff41\115\uff41\116\uff41\117\uff41" +
  81.522 -    "\120\uff41\122\uff41\124\uff41\125\uff41\126\uff41\127\uff41\130" +
  81.523 -    "\uff41\131\uff41\132\uff41\133\uff41\134\uff41\135\uff41\136\uff41" +
  81.524 -    "\137\uff41\001\002\000\104\013\uff42\025\uff42\042\uff42\043" +
  81.525 -    "\uff42\045\uff42\046\uff42\050\uff42\053\uff42\066\uff42\070\uff42" +
  81.526 -    "\071\uff42\101\uff42\107\uff42\110\uff42\111\uff42\114\uff42\115" +
  81.527 -    "\uff42\116\uff42\117\uff42\120\uff42\122\uff42\124\uff42\125\uff42" +
  81.528 -    "\126\uff42\127\uff42\130\uff42\131\uff42\132\uff42\133\uff42\134" +
  81.529 -    "\uff42\135\uff42\136\uff42\137\uff42\001\002\000\112\013\uff10" +
  81.530 -    "\025\uff10\042\uff10\043\uff10\045\uff10\046\uff10\050\uff10\053" +
  81.531 -    "\uff10\066\uff10\070\uff10\071\uff10\101\uff10\107\uff10\110\uff10" +
  81.532 -    "\111\uff10\112\234\113\233\114\uff10\115\uff10\116\uff10\117" +
  81.533 -    "\uff10\120\uff10\121\235\122\uff10\124\uff10\125\uff10\126\uff10" +
  81.534 -    "\127\uff10\130\uff10\131\uff10\132\uff10\133\uff10\134\uff10\135" +
  81.535 -    "\uff10\136\uff10\137\uff10\001\002\000\036\003\251\005\213" +
  81.536 -    "\047\224\050\200\051\227\054\253\113\204\116\175\120" +
  81.537 -    "\217\143\215\144\045\145\176\146\231\147\205\001\002" +
  81.538 -    "\000\014\007\173\024\174\025\171\113\204\144\172\001" +
  81.539 -    "\002\000\012\012\236\143\215\144\045\147\205\001\002" +
  81.540 -    "\000\114\013\uff49\025\uff49\042\uff49\043\uff49\045\uff49\046" +
  81.541 -    "\uff49\050\uff49\053\uff49\066\uff49\070\uff49\071\uff49\101\uff49" +
  81.542 -    "\105\uff49\107\uff49\110\uff49\111\uff49\112\uff49\113\uff49\114" +
  81.543 -    "\uff49\115\uff49\116\uff49\117\uff49\120\uff49\121\uff49\122\uff49" +
  81.544 -    "\124\uff49\125\uff49\126\uff49\127\uff49\130\uff49\131\uff49\132" +
  81.545 -    "\uff49\133\uff49\134\uff49\135\uff49\136\uff49\137\uff49\001\002" +
  81.546 -    "\000\114\013\uff4a\025\uff4a\042\uff4a\043\uff4a\045\uff4a\046" +
  81.547 -    "\uff4a\050\uff4a\053\uff4a\066\uff4a\070\uff4a\071\uff4a\101\uff4a" +
  81.548 -    "\105\uff4a\107\uff4a\110\uff4a\111\uff4a\112\uff4a\113\uff4a\114" +
  81.549 -    "\uff4a\115\uff4a\116\uff4a\117\uff4a\120\uff4a\121\uff4a\122\uff4a" +
  81.550 -    "\124\uff4a\125\uff4a\126\uff4a\127\uff4a\130\uff4a\131\uff4a\132" +
  81.551 -    "\uff4a\133\uff4a\134\uff4a\135\uff4a\136\uff4a\137\uff4a\001\002" +
  81.552 -    "\000\114\013\uff4c\025\uff4c\042\uff4c\043\uff4c\045\uff4c\046" +
  81.553 -    "\uff4c\050\uff4c\053\uff4c\066\uff4c\070\uff4c\071\uff4c\101\uff4c" +
  81.554 -    "\105\uff4c\107\uff4c\110\uff4c\111\uff4c\112\uff4c\113\uff4c\114" +
  81.555 -    "\uff4c\115\uff4c\116\uff4c\117\uff4c\120\uff4c\121\uff4c\122\uff4c" +
  81.556 -    "\124\uff4c\125\uff4c\126\uff4c\127\uff4c\130\uff4c\131\uff4c\132" +
  81.557 -    "\uff4c\133\uff4c\134\uff4c\135\uff4c\136\uff4c\137\uff4c\001\002" +
  81.558 -    "\000\114\013\uff4b\025\uff4b\042\uff4b\043\uff4b\045\uff4b\046" +
  81.559 -    "\uff4b\050\uff4b\053\uff4b\066\uff4b\070\uff4b\071\uff4b\101\uff4b" +
  81.560 -    "\105\uff4b\107\uff4b\110\uff4b\111\uff4b\112\uff4b\113\uff4b\114" +
  81.561 -    "\uff4b\115\uff4b\116\uff4b\117\uff4b\120\uff4b\121\uff4b\122\uff4b" +
  81.562 -    "\124\uff4b\125\uff4b\126\uff4b\127\uff4b\130\uff4b\131\uff4b\132" +
  81.563 -    "\uff4b\133\uff4b\134\uff4b\135\uff4b\136\uff4b\137\uff4b\001\002" +
  81.564 -    "\000\114\013\uff48\025\uff48\042\uff48\043\uff48\045\uff48\046" +
  81.565 -    "\uff48\050\uff48\053\uff48\066\uff48\070\uff48\071\uff48\101\uff48" +
  81.566 -    "\105\uff48\107\uff48\110\uff48\111\uff48\112\uff48\113\uff48\114" +
  81.567 -    "\uff48\115\uff48\116\uff48\117\uff48\120\uff48\121\uff48\122\uff48" +
  81.568 -    "\124\uff48\125\uff48\126\uff48\127\uff48\130\uff48\131\uff48\132" +
  81.569 -    "\uff48\133\uff48\134\uff48\135\uff48\136\uff48\137\uff48\001\002" +
  81.570 -    "\000\104\013\uff0a\025\uff0a\042\uff0a\043\uff0a\045\uff0a\046" +
  81.571 -    "\uff0a\050\uff0a\053\uff0a\066\uff0a\070\uff0a\071\uff0a\101\uff0a" +
  81.572 -    "\107\uff0a\110\uff0a\111\uff0a\114\uff0a\115\uff0a\116\uff0a\117" +
  81.573 -    "\uff0a\120\uff0a\122\uff0a\124\uff0a\125\uff0a\126\uff0a\127\uff0a" +
  81.574 -    "\130\uff0a\131\uff0a\132\uff0a\133\uff0a\134\uff0a\135\uff0a\136" +
  81.575 -    "\uff0a\137\uff0a\001\002\000\012\114\uff4e\117\uff4e\130\uff86" +
  81.576 -    "\131\uff86\001\002\000\012\114\uff83\117\uff83\130\uff83\131" +
  81.577 -    "\uff83\001\002\000\006\130\341\131\342\001\002\000\074" +
  81.578 -    "\013\uff10\042\uff10\046\uff10\050\uff10\053\uff10\066\335\070" +
  81.579 -    "\uff10\107\uff10\110\uff10\111\uff10\112\313\113\233\114\uff10" +
  81.580 -    "\115\uff10\116\uff10\117\uff10\120\uff10\121\235\122\uff10\125" +
  81.581 -    "\uff10\126\uff10\127\uff10\130\uff10\131\uff10\132\uff10\133\uff10" +
  81.582 -    "\135\uff10\136\uff10\137\uff10\001\002\000\020\013\321\053" +
  81.583 -    "\324\110\322\114\uff50\117\uff50\130\uff87\131\uff87\001\002" +
  81.584 -    "\000\006\114\uff4d\117\uff4d\001\002\000\006\130\uff89\131" +
  81.585 -    "\uff89\001\002\000\006\130\uff85\131\uff85\001\002\000\006" +
  81.586 -    "\114\uff4f\117\uff4f\001\002\000\006\114\uff52\117\uff52\001" +
  81.587 -    "\002\000\006\114\333\117\332\001\002\000\052\013\uff1e" +
  81.588 -    "\042\261\050\273\053\uff1e\107\uff1e\110\uff1e\111\274\114" +
  81.589 -    "\uff1e\116\267\117\uff1e\120\260\125\271\126\266\127\276" +
  81.590 -    "\130\uff1e\131\uff1e\132\272\135\264\136\262\137\275\001" +
  81.591 -    "\002\000\026\005\uff27\047\uff27\050\uff27\051\uff27\113\uff27" +
  81.592 -    "\143\uff27\144\uff27\145\uff27\146\uff27\147\uff27\001\002\000" +
  81.593 -    "\032\005\uff2c\047\uff2c\050\uff2c\051\uff2c\113\uff2c\116\uff2c" +
  81.594 -    "\120\uff2c\143\uff2c\144\uff2c\145\uff2c\146\uff2c\147\uff2c\001" +
  81.595 -    "\002\000\032\005\uff2d\047\uff2d\050\uff2d\051\uff2d\113\uff2d" +
  81.596 -    "\116\uff2d\120\uff2d\143\uff2d\144\uff2d\145\uff2d\146\uff2d\147" +
  81.597 -    "\uff2d\001\002\000\032\005\213\047\224\050\200\051\227" +
  81.598 -    "\113\204\116\175\120\217\143\215\144\045\145\176\146" +
  81.599 -    "\231\147\205\001\002\000\032\005\uff31\047\uff31\050\uff31" +
  81.600 -    "\051\uff31\113\uff31\116\uff31\120\uff31\143\uff31\144\uff31\145" +
  81.601 -    "\uff31\146\uff31\147\uff31\001\002\000\032\005\213\047\224" +
  81.602 -    "\050\200\051\227\113\204\116\175\120\217\143\215\144" +
  81.603 -    "\045\145\176\146\231\147\205\001\002\000\032\005\uff32" +
  81.604 -    "\047\uff32\050\uff32\051\uff32\113\uff32\116\uff32\120\uff32\143" +
  81.605 -    "\uff32\144\uff32\145\uff32\146\uff32\147\uff32\001\002\000\026" +
  81.606 -    "\005\uff28\047\uff28\050\uff28\051\uff28\113\uff28\143\uff28\144" +
  81.607 -    "\uff28\145\uff28\146\uff28\147\uff28\001\002\000\026\005\213" +
  81.608 -    "\047\224\050\200\051\227\113\204\143\215\144\045\145" +
  81.609 -    "\176\146\231\147\205\001\002\000\032\005\uff30\047\uff30" +
  81.610 -    "\050\uff30\051\uff30\113\uff30\116\uff30\120\uff30\143\uff30\144" +
  81.611 -    "\uff30\145\uff30\146\uff30\147\uff30\001\002\000\032\005\213" +
  81.612 -    "\047\224\050\200\051\227\113\204\116\175\120\217\143" +
  81.613 -    "\215\144\045\145\176\146\231\147\205\001\002\000\004" +
  81.614 -    "\042\277\001\002\000\026\005\uff26\047\uff26\050\uff26\051" +
  81.615 -    "\uff26\113\uff26\143\uff26\144\uff26\145\uff26\146\uff26\147\uff26" +
  81.616 -    "\001\002\000\032\005\uff2f\047\uff2f\050\uff2f\051\uff2f\113" +
  81.617 -    "\uff2f\116\uff2f\120\uff2f\143\uff2f\144\uff2f\145\uff2f\146\uff2f" +
  81.618 -    "\147\uff2f\001\002\000\032\005\uff2e\047\uff2e\050\uff2e\051" +
  81.619 -    "\uff2e\113\uff2e\116\uff2e\120\uff2e\143\uff2e\144\uff2e\145\uff2e" +
  81.620 -    "\146\uff2e\147\uff2e\001\002\000\032\005\uff2b\047\uff2b\050" +
  81.621 -    "\uff2b\051\uff2b\113\uff2b\116\uff2b\120\uff2b\143\uff2b\144\uff2b" +
  81.622 -    "\145\uff2b\146\uff2b\147\uff2b\001\002\000\050\013\uffc6\025" +
  81.623 -    "\uffc6\043\uffc6\045\uffc6\053\uffc6\066\uffc6\071\uffc6\101\uffc6" +
  81.624 -    "\107\uffc6\110\uffc6\111\274\114\uffc6\116\267\117\uffc6\120" +
  81.625 -    "\260\124\uffc6\130\uffc6\131\uffc6\134\uffc6\001\002\000\102" +
  81.626 -    "\013\uff18\025\uff18\042\uff18\043\uff18\045\uff18\046\303\050" +
  81.627 -    "\uff18\053\uff18\066\uff18\070\306\071\uff18\101\uff18\107\uff18" +
  81.628 -    "\110\uff18\111\uff18\114\uff18\115\302\116\uff18\117\uff18\120" +
  81.629 -    "\uff18\122\305\124\uff18\125\uff18\126\uff18\127\uff18\130\uff18" +
  81.630 -    "\131\uff18\132\uff18\134\uff18\135\uff18\136\uff18\137\uff18\001" +
  81.631 -    "\002\000\026\005\uff25\047\uff25\050\uff25\051\uff25\113\uff25" +
  81.632 -    "\143\uff25\144\uff25\145\uff25\146\uff25\147\uff25\001\002\000" +
  81.633 -    "\026\005\uff23\047\uff23\050\uff23\051\uff23\113\uff23\143\uff23" +
  81.634 -    "\144\uff23\145\uff23\146\uff23\147\uff23\001\002\000\026\005" +
  81.635 -    "\213\047\224\050\200\051\227\113\204\143\215\144\045" +
  81.636 -    "\145\176\146\231\147\205\001\002\000\026\005\uff24\047" +
  81.637 -    "\uff24\050\uff24\051\uff24\113\uff24\143\uff24\144\uff24\145\uff24" +
  81.638 -    "\146\uff24\147\uff24\001\002\000\026\005\uff22\047\uff22\050" +
  81.639 -    "\uff22\051\uff22\113\uff22\143\uff22\144\uff22\145\uff22\146\uff22" +
  81.640 -    "\147\uff22\001\002\000\102\013\uff16\025\uff16\042\uff16\043" +
  81.641 -    "\uff16\045\uff16\046\uff16\050\uff16\053\uff16\066\uff16\070\uff16" +
  81.642 -    "\071\uff16\101\uff16\107\uff16\110\uff16\111\uff16\114\uff16\115" +
  81.643 -    "\uff16\116\uff16\117\uff16\120\uff16\122\uff16\124\uff16\125\uff16" +
  81.644 -    "\126\uff16\127\uff16\130\uff16\131\uff16\132\uff16\134\uff16\135" +
  81.645 -    "\uff16\136\uff16\137\uff16\001\002\000\042\013\uff1c\025\uff1c" +
  81.646 -    "\043\uff1c\045\uff1c\053\uff1c\066\uff1c\071\uff1c\101\uff1c\107" +
  81.647 -    "\uff1c\110\uff1c\114\uff1c\117\uff1c\124\uff1c\130\uff1c\131\uff1c" +
  81.648 -    "\134\uff1c\001\002\000\012\111\274\116\267\120\260\132" +
  81.649 -    "\272\001\002\000\072\013\uff1b\025\uff1b\043\uff1b\045\uff1b" +
  81.650 -    "\046\uff10\053\uff1b\066\uff1b\070\uff10\071\uff1b\101\uff1b\107" +
  81.651 -    "\uff1b\110\uff1b\111\uff10\112\313\113\233\114\uff1b\115\uff10" +
  81.652 -    "\116\uff10\117\uff1b\120\uff10\121\235\122\uff10\124\uff1b\130" +
  81.653 -    "\uff1b\131\uff1b\132\uff10\133\uff10\134\uff1b\001\002\000\016" +
  81.654 -    "\007\173\024\174\025\171\066\314\113\204\144\172\001" +
  81.655 -    "\002\000\044\013\uffc5\025\uffc5\043\uffc5\045\uffc5\053\uffc5" +
  81.656 -    "\066\uffc5\071\uffc5\101\uffc5\107\uffc5\110\uffc5\113\315\114" +
  81.657 -    "\uffc5\117\uffc5\124\uffc5\130\uffc5\131\uffc5\134\uffc5\001\002" +
  81.658 -    "\000\032\005\213\047\224\050\200\051\227\113\204\116" +
  81.659 -    "\175\120\217\143\215\144\045\145\176\146\231\147\205" +
  81.660 -    "\001\002\000\012\013\321\053\324\110\322\114\320\001" +
  81.661 -    "\002\000\032\005\213\047\224\050\200\051\227\113\204" +
  81.662 -    "\116\175\120\217\143\215\144\045\145\176\146\231\147" +
  81.663 -    "\205\001\002\000\042\013\uffc4\025\uffc4\043\uffc4\045\uffc4" +
  81.664 -    "\053\uffc4\066\uffc4\071\uffc4\101\uffc4\107\uffc4\110\uffc4\114" +
  81.665 -    "\uffc4\117\uffc4\124\uffc4\130\uffc4\131\uffc4\134\uffc4\001\002" +
  81.666 -    "\000\034\005\uff37\047\uff37\050\uff37\051\uff37\101\327\113" +
  81.667 -    "\uff37\116\uff37\120\uff37\143\uff37\144\uff37\145\uff37\146\uff37" +
  81.668 -    "\147\uff37\001\002\000\032\005\uff35\047\uff35\050\uff35\051" +
  81.669 -    "\uff35\113\uff35\116\uff35\120\uff35\143\uff35\144\uff35\145\uff35" +
  81.670 -    "\146\uff35\147\uff35\001\002\000\032\005\213\047\224\050" +
  81.671 -    "\200\051\227\113\204\116\175\120\217\143\215\144\045" +
  81.672 -    "\145\176\146\231\147\205\001\002\000\034\005\uff36\027" +
  81.673 -    "\325\047\uff36\050\uff36\051\uff36\113\uff36\116\uff36\120\uff36" +
  81.674 -    "\143\uff36\144\uff36\145\uff36\146\uff36\147\uff36\001\002\000" +
  81.675 -    "\032\005\uff33\047\uff33\050\uff33\051\uff33\113\uff33\116\uff33" +
  81.676 -    "\120\uff33\143\uff33\144\uff33\145\uff33\146\uff33\147\uff33\001" +
  81.677 -    "\002\000\042\013\uff20\025\uff20\043\uff20\045\uff20\053\uff20" +
  81.678 -    "\066\uff20\071\uff20\101\uff20\107\uff20\110\uff20\114\uff20\117" +
  81.679 -    "\uff20\124\uff20\130\uff20\131\uff20\134\uff20\001\002\000\032" +
  81.680 -    "\005\uff34\047\uff34\050\uff34\051\uff34\113\uff34\116\uff34\120" +
  81.681 -    "\uff34\143\uff34\144\uff34\145\uff34\146\uff34\147\uff34\001\002" +
  81.682 -    "\000\042\013\uff1f\025\uff1f\043\uff1f\045\uff1f\053\uff1f\066" +
  81.683 -    "\uff1f\071\uff1f\101\uff1f\107\uff1f\110\uff1f\114\uff1f\117\uff1f" +
  81.684 -    "\124\uff1f\130\uff1f\131\uff1f\134\uff1f\001\002\000\050\013" +
  81.685 -    "\uff1d\025\uff1d\043\uff1d\045\uff1d\053\uff1d\066\uff1d\071\uff1d" +
  81.686 -    "\101\uff1d\107\uff1d\110\uff1d\111\274\114\uff1d\116\267\117" +
  81.687 -    "\uff1d\120\260\124\uff1d\130\uff1d\131\uff1d\134\uff1d\001\002" +
  81.688 -    "\000\036\003\251\005\213\047\224\050\200\051\227\054" +
  81.689 -    "\253\113\204\116\175\120\217\143\215\144\045\145\176" +
  81.690 -    "\146\231\147\205\001\002\000\114\013\uff53\025\uff53\042" +
  81.691 -    "\uff53\043\uff53\045\uff53\046\uff53\050\uff53\053\uff53\066\uff53" +
  81.692 -    "\070\uff53\071\uff53\101\uff53\105\uff53\107\uff53\110\uff53\111" +
  81.693 -    "\uff53\112\uff53\113\uff53\114\uff53\115\uff53\116\uff53\117\uff53" +
  81.694 -    "\120\uff53\121\uff53\122\uff53\124\uff53\125\uff53\126\uff53\127" +
  81.695 -    "\uff53\130\uff53\131\uff53\132\uff53\133\uff53\134\uff53\135\uff53" +
  81.696 -    "\136\uff53\137\uff53\001\002\000\006\114\uff51\117\uff51\001" +
  81.697 -    "\002\000\032\005\213\047\224\050\200\051\227\113\204" +
  81.698 -    "\116\175\120\217\143\215\144\045\145\176\146\231\147" +
  81.699 -    "\205\001\002\000\012\114\uff84\117\uff84\130\uff84\131\uff84" +
  81.700 -    "\001\002\000\024\045\uffc7\071\uffc7\107\uffc7\114\uffc7\117" +
  81.701 -    "\uffc7\124\uffc7\130\uffc7\131\uffc7\134\uffc7\001\002\000\032" +
  81.702 -    "\046\uff10\070\uff10\111\uff10\112\313\113\233\115\uff10\116" +
  81.703 -    "\uff10\120\uff10\121\235\122\uff10\132\uff10\133\uff10\001\002" +
  81.704 -    "\000\034\005\213\047\224\050\200\051\227\054\253\113" +
  81.705 -    "\204\116\175\120\217\143\215\144\045\145\176\146\231" +
  81.706 -    "\147\205\001\002\000\032\005\213\047\224\050\200\051" +
  81.707 -    "\227\113\204\116\175\120\217\143\215\144\045\145\176" +
  81.708 -    "\146\231\147\205\001\002\000\014\013\321\053\324\110" +
  81.709 -    "\322\114\uff38\117\uff38\001\002\000\006\130\uff86\131\uff86" +
  81.710 -    "\001\002\000\006\130\uff88\131\uff88\001\002\000\014\013" +
  81.711 -    "\321\053\324\110\322\130\uff87\131\uff87\001\002\000\112" +
  81.712 -    "\013\uff09\025\uff09\042\uff09\043\uff09\045\uff09\046\uff09\050" +
  81.713 -    "\uff09\053\uff09\066\uff09\070\uff09\071\uff09\101\uff09\107\uff09" +
  81.714 -    "\110\uff09\111\uff09\112\234\113\233\114\uff09\115\uff09\116" +
  81.715 -    "\uff09\117\uff09\120\uff09\121\235\122\uff09\124\uff09\125\uff09" +
  81.716 -    "\126\uff09\127\uff09\130\uff09\131\uff09\132\uff09\133\uff09\134" +
  81.717 -    "\uff09\135\uff09\136\uff09\137\uff09\001\002\000\104\013\uff08" +
  81.718 -    "\025\uff08\042\uff08\043\uff08\045\uff08\046\uff08\050\uff08\053" +
  81.719 -    "\uff08\066\uff08\070\uff08\071\uff08\101\uff08\107\uff08\110\uff08" +
  81.720 -    "\111\uff08\114\uff08\115\uff08\116\uff08\117\uff08\120\uff08\122" +
  81.721 -    "\uff08\124\uff08\125\uff08\126\uff08\127\uff08\130\uff08\131\uff08" +
  81.722 -    "\132\uff08\133\uff08\134\uff08\135\uff08\136\uff08\137\uff08\001" +
  81.723 -    "\002\000\102\013\uff1a\025\uff1a\042\uff1a\043\uff1a\045\uff1a" +
  81.724 -    "\046\303\050\uff1a\053\uff1a\066\uff1a\070\306\071\uff1a\101" +
  81.725 -    "\uff1a\107\uff1a\110\uff1a\111\uff1a\114\uff1a\115\302\116\uff1a" +
  81.726 -    "\117\uff1a\120\uff1a\122\305\124\uff1a\125\uff1a\126\uff1a\127" +
  81.727 -    "\uff1a\130\uff1a\131\uff1a\132\uff1a\134\uff1a\135\uff1a\136\uff1a" +
  81.728 -    "\137\uff1a\001\002\000\022\047\224\051\227\113\204\143" +
  81.729 -    "\215\144\045\145\176\146\231\147\205\001\002\000\102" +
  81.730 -    "\013\uff12\025\uff12\042\uff12\043\uff12\045\uff12\046\uff12\050" +
  81.731 -    "\uff12\053\uff12\066\uff12\070\uff12\071\uff12\101\uff12\107\uff12" +
  81.732 -    "\110\uff12\111\uff12\114\uff12\115\uff12\116\uff12\117\uff12\120" +
  81.733 -    "\uff12\122\uff12\124\uff12\125\uff12\126\uff12\127\uff12\130\uff12" +
  81.734 -    "\131\uff12\132\uff12\134\uff12\135\uff12\136\uff12\137\uff12\001" +
  81.735 -    "\002\000\102\013\uff13\025\uff13\042\uff13\043\uff13\045\uff13" +
  81.736 -    "\046\uff13\050\uff13\053\uff13\066\uff13\070\uff13\071\uff13\101" +
  81.737 -    "\uff13\107\uff13\110\uff13\111\uff13\114\uff13\115\uff13\116\uff13" +
  81.738 -    "\117\uff13\120\uff13\122\uff13\124\uff13\125\uff13\126\uff13\127" +
  81.739 -    "\uff13\130\uff13\131\uff13\132\uff13\134\uff13\135\uff13\136\uff13" +
  81.740 -    "\137\uff13\001\002\000\006\114\377\117\376\001\002\000" +
  81.741 -    "\022\013\321\053\324\107\370\110\322\114\367\117\uff50" +
  81.742 -    "\130\uff87\131\uff87\001\002\000\066\013\uff40\042\uff40\046" +
  81.743 -    "\uff40\050\uff40\053\uff40\067\365\070\uff40\107\uff40\110\uff40" +
  81.744 -    "\111\uff40\114\uff40\115\uff40\116\uff40\117\uff40\120\uff40\122" +
  81.745 -    "\uff40\125\uff40\126\uff40\127\uff40\130\uff40\131\uff40\132\uff40" +
  81.746 -    "\133\uff40\135\uff40\136\uff40\137\uff40\001\002\000\006\114" +
  81.747 -    "\364\117\uff4f\001\002\000\004\117\362\001\002\000\036" +
  81.748 -    "\003\251\005\213\047\224\050\200\051\227\054\253\113" +
  81.749 -    "\204\116\175\120\217\143\215\144\045\145\176\146\231" +
  81.750 -    "\147\205\001\002\000\006\114\uff3a\117\uff3a\001\002\000" +
  81.751 -    "\104\013\uff3f\025\uff3f\042\uff3f\043\uff3f\045\uff3f\046\uff3f" +
  81.752 -    "\050\uff3f\053\uff3f\066\uff3f\070\uff3f\071\uff3f\101\uff3f\107" +
  81.753 -    "\uff3f\110\uff3f\111\uff3f\114\uff3f\115\uff3f\116\uff3f\117\uff3f" +
  81.754 -    "\120\uff3f\122\uff3f\124\uff3f\125\uff3f\126\uff3f\127\uff3f\130" +
  81.755 -    "\uff3f\131\uff3f\132\uff3f\133\uff3f\134\uff3f\135\uff3f\136\uff3f" +
  81.756 -    "\137\uff3f\001\002\000\004\114\366\001\002\000\104\013" +
  81.757 -    "\uff3b\025\uff3b\042\uff3b\043\uff3b\045\uff3b\046\uff3b\050\uff3b" +
  81.758 -    "\053\uff3b\066\uff3b\070\uff3b\071\uff3b\101\uff3b\107\uff3b\110" +
  81.759 -    "\uff3b\111\uff3b\114\uff3b\115\uff3b\116\uff3b\117\uff3b\120\uff3b" +
  81.760 -    "\122\uff3b\124\uff3b\125\uff3b\126\uff3b\127\uff3b\130\uff3b\131" +
  81.761 -    "\uff3b\132\uff3b\133\uff3b\134\uff3b\135\uff3b\136\uff3b\137\uff3b" +
  81.762 -    "\001\002\000\104\013\uff0b\025\uff0b\042\uff0b\043\uff0b\045" +
  81.763 -    "\uff0b\046\uff0b\050\uff0b\053\uff0b\066\uff0b\070\uff0b\071\uff0b" +
  81.764 -    "\101\uff0b\107\uff0b\110\uff0b\111\uff0b\114\uff0b\115\uff0b\116" +
  81.765 -    "\uff0b\117\uff0b\120\uff0b\122\uff0b\124\uff0b\125\uff0b\126\uff0b" +
  81.766 -    "\127\uff0b\130\uff0b\131\uff0b\132\uff0b\133\uff0b\134\uff0b\135" +
  81.767 -    "\uff0b\136\uff0b\137\uff0b\001\002\000\036\003\251\005\213" +
  81.768 -    "\047\224\050\200\051\371\054\253\113\204\116\175\120" +
  81.769 -    "\217\143\215\144\045\145\176\146\231\147\205\001\002" +
  81.770 -    "\000\064\013\uff40\042\uff40\046\uff40\050\uff40\053\uff40\067" +
  81.771 -    "\374\070\uff40\110\uff40\111\uff40\114\uff40\115\uff40\116\uff40" +
  81.772 -    "\117\uff40\120\uff40\122\uff40\125\uff40\126\uff40\127\uff40\130" +
  81.773 -    "\uff40\131\uff40\132\uff40\133\uff40\135\uff40\136\uff40\137\uff40" +
  81.774 -    "\001\002\000\006\114\373\117\332\001\002\000\104\013" +
  81.775 -    "\uff3d\025\uff3d\042\uff3d\043\uff3d\045\uff3d\046\uff3d\050\uff3d" +
  81.776 -    "\053\uff3d\066\uff3d\070\uff3d\071\uff3d\101\uff3d\107\uff3d\110" +
  81.777 -    "\uff3d\111\uff3d\114\uff3d\115\uff3d\116\uff3d\117\uff3d\120\uff3d" +
  81.778 -    "\122\uff3d\124\uff3d\125\uff3d\126\uff3d\127\uff3d\130\uff3d\131" +
  81.779 -    "\uff3d\132\uff3d\133\uff3d\134\uff3d\135\uff3d\136\uff3d\137\uff3d" +
  81.780 -    "\001\002\000\004\114\375\001\002\000\104\013\uff3c\025" +
  81.781 -    "\uff3c\042\uff3c\043\uff3c\045\uff3c\046\uff3c\050\uff3c\053\uff3c" +
  81.782 -    "\066\uff3c\070\uff3c\071\uff3c\101\uff3c\107\uff3c\110\uff3c\111" +
  81.783 -    "\uff3c\114\uff3c\115\uff3c\116\uff3c\117\uff3c\120\uff3c\122\uff3c" +
  81.784 -    "\124\uff3c\125\uff3c\126\uff3c\127\uff3c\130\uff3c\131\uff3c\132" +
  81.785 -    "\uff3c\133\uff3c\134\uff3c\135\uff3c\136\uff3c\137\uff3c\001\002" +
  81.786 -    "\000\036\003\251\005\213\047\224\050\200\051\227\054" +
  81.787 -    "\253\113\204\116\175\120\217\143\215\144\045\145\176" +
  81.788 -    "\146\231\147\205\001\002\000\104\013\uff3e\025\uff3e\042" +
  81.789 -    "\uff3e\043\uff3e\045\uff3e\046\uff3e\050\uff3e\053\uff3e\066\uff3e" +
  81.790 -    "\070\uff3e\071\uff3e\101\uff3e\107\uff3e\110\uff3e\111\uff3e\114" +
  81.791 -    "\uff3e\115\uff3e\116\uff3e\117\uff3e\120\uff3e\122\uff3e\124\uff3e" +
  81.792 -    "\125\uff3e\126\uff3e\127\uff3e\130\uff3e\131\uff3e\132\uff3e\133" +
  81.793 -    "\uff3e\134\uff3e\135\uff3e\136\uff3e\137\uff3e\001\002\000\006" +
  81.794 -    "\114\uff39\117\uff39\001\002\000\102\013\uff14\025\uff14\042" +
  81.795 -    "\uff14\043\uff14\045\uff14\046\uff14\050\uff14\053\uff14\066\uff14" +
  81.796 -    "\070\uff14\071\uff14\101\uff14\107\uff14\110\uff14\111\uff14\114" +
  81.797 -    "\uff14\115\uff14\116\uff14\117\uff14\120\uff14\122\uff14\124\uff14" +
  81.798 -    "\125\uff14\126\uff14\127\uff14\130\uff14\131\uff14\132\uff14\134" +
  81.799 -    "\uff14\135\uff14\136\uff14\137\uff14\001\002\000\006\117\uffea" +
  81.800 -    "\123\uffea\001\002\000\004\124\ufe8b\001\002\000\020\031" +
  81.801 -    "\ufe87\032\ufe87\035\ufe87\036\ufe87\057\ufe87\060\ufe87\061\ufe87" +
  81.802 -    "\001\002\000\020\031\ufe89\032\u010a\035\070\036\027\057" +
  81.803 -    "\004\060\u010b\061\021\001\002\000\020\031\ufe86\032\ufe86" +
  81.804 -    "\035\ufe86\036\ufe86\057\ufe86\060\ufe86\061\ufe86\001\002\000" +
  81.805 -    "\024\003\ufe83\031\ufe83\032\ufe83\035\ufe83\036\ufe83\057\ufe83" +
  81.806 -    "\060\ufe83\061\ufe83\144\ufe83\001\002\000\024\003\ufe82\031" +
  81.807 -    "\ufe82\032\ufe82\035\ufe82\036\ufe82\057\ufe82\060\ufe82\061\ufe82" +
  81.808 -    "\144\ufe82\001\002\000\004\031\u0144\001\002\000\004\144" +
  81.809 -    "\u0126\001\002\000\022\003\ufe81\031\ufe81\032\ufe81\035\ufe81" +
  81.810 -    "\036\ufe81\057\ufe81\061\ufe81\144\ufe81\001\002\000\024\003" +
  81.811 -    "\ufe85\031\ufe85\032\ufe85\035\ufe85\036\ufe85\057\ufe85\060\ufe85" +
  81.812 -    "\061\ufe85\144\ufe85\001\002\000\004\124\u010e\001\002\000" +
  81.813 -    "\024\003\ufe84\031\ufe84\032\ufe84\035\ufe84\036\ufe84\057\ufe84" +
  81.814 -    "\060\ufe84\061\ufe84\144\ufe84\001\002\000\022\003\u0114\031" +
  81.815 -    "\ufe88\032\u010a\035\070\036\027\057\004\061\021\144\126" +
  81.816 -    "\001\002\000\022\003\ufe80\031\ufe80\032\ufe80\035\ufe80\036" +
  81.817 -    "\ufe80\057\ufe80\061\ufe80\144\ufe80\001\002\000\006\117\155" +
  81.818 -    "\123\u0116\001\002\000\022\003\ufe7e\031\ufe7e\032\ufe7e\035" +
  81.819 -    "\ufe7e\036\ufe7e\057\ufe7e\061\ufe7e\144\ufe7e\001\002\000\022" +
  81.820 -    "\003\ufe7f\031\ufe7f\032\ufe7f\035\ufe7f\036\ufe7f\057\ufe7f\061" +
  81.821 -    "\ufe7f\144\ufe7f\001\002\000\004\124\u0115\001\002\000\026" +
  81.822 -    "\003\uff95\021\uff95\031\uff95\032\uff95\035\uff95\036\uff95\057" +
  81.823 -    "\uff95\061\uff95\105\uff95\144\uff95\001\002\000\010\011\u0117" +
  81.824 -    "\144\uffaf\147\uffaf\001\002\000\006\144\uffae\147\uffae\001" +
  81.825 -    "\002\000\006\144\045\147\205\001\002\000\006\124\uffe3" +
  81.826 -    "\134\164\001\002\000\004\124\u011b\001\002\000\026\003" +
  81.827 -    "\uff96\021\uff96\031\uff96\032\uff96\035\uff96\036\uff96\057\uff96" +
  81.828 -    "\061\uff96\105\uff96\144\uff96\001\002\000\024\025\u011e\066" +
  81.829 -    "\335\071\uffd0\107\uffd0\112\u0122\113\233\121\235\124\uffd0" +
  81.830 -    "\134\uffd0\001\002\000\006\124\uffb0\134\uffb0\001\002\000" +
  81.831 -    "\032\005\213\047\224\050\200\051\227\113\204\116\175" +
  81.832 -    "\120\217\143\215\144\045\145\176\146\231\147\205\001" +
  81.833 -    "\002\000\012\071\uffce\107\uffce\124\uffce\134\uffce\001\002" +
  81.834 -    "\000\012\071\uffcf\107\uffcf\124\uffcf\134\uffcf\001\002\000" +
  81.835 -    "\012\071\uffd1\107\uffd1\124\uffd1\134\uffd1\001\002\000\012" +
  81.836 -    "\007\173\024\174\025\171\144\172\001\002\000\022\013" +
  81.837 -    "\321\053\324\066\335\071\uffa5\107\uffa5\110\322\124\uffa5" +
  81.838 -    "\134\uffa5\001\002\000\012\071\uffcd\107\uffcd\124\uffcd\134" +
  81.839 -    "\uffcd\001\002\000\020\045\uffa4\071\uffa4\107\uffa4\114\uffa4" +
  81.840 -    "\117\uffa4\124\uffa4\134\uffa4\001\002\000\006\113\u0129\124" +
  81.841 -    "\ufebe\001\002\000\004\124\u0143\001\002\000\016\026\ufebd" +
  81.842 -    "\043\ufebd\063\ufebd\071\ufebd\105\ufebd\124\ufebd\001\002\000" +
  81.843 -    "\034\003\u012f\005\213\047\224\050\200\051\227\113\204" +
  81.844 -    "\116\175\120\217\143\215\144\u0131\145\176\146\231\147" +
  81.845 -    "\205\001\002\000\006\114\u0141\124\u0140\001\002\000\006" +
  81.846 -    "\114\ufebb\124\ufebb\001\002\000\006\117\155\123\u0138\001" +
  81.847 -    "\002\000\010\045\uffa6\114\uffa6\117\uffa6\001\002\000\042" +
  81.848 -    "\045\uffa5\046\uff10\066\335\070\uff10\111\uff10\112\313\113" +
  81.849 -    "\233\114\uffa5\115\uff10\116\uff10\117\uffa5\120\uff10\121\235" +
  81.850 -    "\122\uff10\132\uff10\133\uff10\001\002\000\004\124\u0136\001" +
  81.851 -    "\002\000\004\114\u0132\001\002\000\070\013\uff59\042\uff59" +
  81.852 -    "\046\uff59\050\uff59\053\uff59\066\uff59\070\uff59\110\uff59\111" +
  81.853 -    "\uff59\112\uff59\113\uff59\114\uff59\115\uff59\116\uff59\117\uffed" +
  81.854 -    "\120\uff59\121\uff59\122\uff59\123\uffed\125\uff59\126\uff59\127" +
  81.855 -    "\uff59\132\uff59\133\uff59\135\uff59\136\uff59\137\uff59\001\002" +
  81.856 -    "\000\006\113\u0134\124\ufebe\001\002\000\004\124\u0135\001" +
  81.857 -    "\002\000\006\003\u012f\144\126\001\002\000\024\003\ufe74" +
  81.858 -    "\031\ufe74\032\ufe74\035\ufe74\036\ufe74\057\ufe74\060\ufe74\061" +
  81.859 -    "\ufe74\144\ufe74\001\002\000\006\114\ufeb8\124\ufeb8\001\002" +
  81.860 -    "\000\010\045\uffa7\114\uffa7\117\uffa7\001\002\000\012\007" +
  81.861 -    "\u013b\042\u013a\055\u0139\144\ufeb7\001\002\000\004\144\ufeb5" +
  81.862 -    "\001\002\000\006\055\u013f\144\ufeb6\001\002\000\004\144" +
  81.863 -    "\ufeb3\001\002\000\004\144\045\001\002\000\014\112\165" +
  81.864 -    "\114\uffe3\121\166\124\uffe3\134\164\001\002\000\006\114" +
  81.865 -    "\ufeb9\124\ufeb9\001\002\000\004\144\ufeb4\001\002\000\006" +
  81.866 -    "\003\u012f\144\126\001\002\000\016\026\ufebc\043\ufebc\063" +
  81.867 -    "\ufebc\071\ufebc\105\ufebc\124\ufebc\001\002\000\006\114\ufeba" +
  81.868 -    "\124\ufeba\001\002\000\024\003\ufe75\031\ufe75\032\ufe75\035" +
  81.869 -    "\ufe75\036\ufe75\057\ufe75\060\ufe75\061\ufe75\144\ufe75\001\002" +
  81.870 -    "\000\010\124\ufed7\144\045\147\205\001\002\000\004\124" +
  81.871 -    "\ufed6\001\002\000\016\043\ufec0\063\ufec0\071\ufec0\113\ufec0" +
  81.872 -    "\121\051\124\ufec0\001\002\000\014\043\ufebf\063\ufebf\071" +
  81.873 -    "\ufebf\113\ufebf\124\ufebf\001\002\000\004\124\ufe8a\001\002" +
  81.874 -    "\000\004\124\ufe8c\001\002\000\004\043\u014b\001\002\000" +
  81.875 -    "\016\031\ufffa\032\ufffa\036\ufffa\057\ufffa\061\ufffa\074\u014c" +
  81.876 -    "\001\002\000\004\124\u024b\001\002\000\012\031\u0155\032" +
  81.877 -    "\u0151\036\027\061\021\001\002\000\014\031\ufe7c\032\ufe7c" +
  81.878 -    "\036\ufe7c\057\004\061\ufe7c\001\002\000\046\002\ufff9\003" +
  81.879 -    "\ufff9\021\ufff9\031\ufff9\032\ufff9\035\ufff9\036\ufff9\037\ufff9" +
  81.880 -    "\051\ufff9\056\ufff9\057\ufff9\060\ufff9\061\ufff9\074\ufff9\104" +
  81.881 -    "\ufff9\105\ufff9\107\ufff9\144\ufff9\001\002\000\014\031\ufe7a" +
  81.882 -    "\032\ufe7a\036\ufe7a\057\ufe7a\061\ufe7a\001\002\000\004\144" +
  81.883 -    "\u0237\001\002\000\006\043\u015a\124\u0159\001\002\000\014" +
  81.884 -    "\031\ufffa\032\ufffa\036\ufffa\057\ufffa\061\ufffa\001\002\000" +
  81.885 -    "\014\031\ufe79\032\ufe79\036\ufe79\057\ufe79\061\ufe79\001\002" +
  81.886 -    "\000\010\124\ufed7\144\045\147\205\001\002\000\004\124" +
  81.887 -    "\u0157\001\002\000\050\002\ufe7d\003\ufe7d\016\ufe7d\031\ufe7d" +
  81.888 -    "\035\ufe7d\036\ufe7d\037\ufe7d\056\ufe7d\057\ufe7d\060\ufe7d\061" +
  81.889 -    "\ufe7d\062\ufe7d\074\ufe7d\075\ufe7d\077\ufe7d\102\ufe7d\104\ufe7d" +
  81.890 -    "\107\ufe7d\144\ufe7d\001\002\000\014\031\ufe7b\032\ufe7b\036" +
  81.891 -    "\ufe7b\057\004\061\ufe7b\001\002\000\014\031\ufe78\032\ufe78" +
  81.892 -    "\036\ufe78\057\ufe78\061\ufe78\001\002\000\036\003\105\016" +
  81.893 -    "\uff7b\035\070\036\027\037\030\056\121\057\004\061\021" +
  81.894 -    "\062\117\075\076\077\060\102\074\104\015\144\126\001" +
  81.895 -    "\002\000\004\016\u015c\001\002\000\056\003\u017e\004\u017d" +
  81.896 -    "\010\u0183\016\ufee0\021\u0169\022\ufee0\023\u0185\034\u0176\035" +
  81.897 -    "\ufee0\040\u0184\041\u0177\045\ufee0\051\u0180\057\004\063\u017c" +
  81.898 -    "\065\u018f\072\u0164\073\u0175\106\ufee0\140\u0187\144\u0190\147" +
  81.899 -    "\205\001\002\000\004\031\u015e\001\002\000\010\124\ufed7" +
  81.900 -    "\144\045\147\205\001\002\000\004\124\u0160\001\002\000" +
  81.901 -    "\052\002\ufeb1\003\ufeb1\016\ufeb1\031\ufeb1\032\ufeb1\035\ufeb1" +
  81.902 -    "\036\ufeb1\037\ufeb1\056\ufeb1\057\ufeb1\060\ufeb1\061\ufeb1\062" +
  81.903 -    "\ufeb1\074\ufeb1\075\ufeb1\077\ufeb1\102\ufeb1\104\ufeb1\107\ufeb1" +
  81.904 -    "\144\ufeb1\001\002\000\004\031\ufed2\001\002\000\074\003" +
  81.905 -    "\ufe63\004\ufe63\010\ufe63\016\ufe63\021\ufe63\022\ufe63\023\ufe63" +
  81.906 -    "\027\ufe63\030\ufe63\031\ufe63\033\ufe63\034\ufe63\035\ufe63\040" +
  81.907 -    "\ufe63\041\ufe63\045\ufe63\051\ufe63\053\ufe63\057\ufe63\063\ufe63" +
  81.908 -    "\065\ufe63\072\ufe63\073\ufe63\101\ufe63\105\ufe63\106\ufe63\140" +
  81.909 -    "\ufe63\144\ufe63\147\ufe63\001\002\000\004\124\u0236\001\002" +
  81.910 -    "\000\006\144\045\147\205\001\002\000\074\003\ufefb\004" +
  81.911 -    "\ufefb\010\ufefb\016\ufefb\021\ufefb\022\ufefb\023\ufefb\027\ufefb" +
  81.912 -    "\030\ufefb\031\ufefb\033\ufefb\034\ufefb\035\ufefb\040\ufefb\041" +
  81.913 -    "\ufefb\045\ufefb\051\ufefb\053\ufefb\057\ufefb\063\ufefb\065\ufefb" +
  81.914 -    "\072\ufefb\073\ufefb\101\ufefb\105\ufefb\106\ufefb\140\ufefb\144" +
  81.915 -    "\ufefb\147\ufefb\001\002\000\074\003\ufefc\004\ufefc\010\ufefc" +
  81.916 -    "\016\ufefc\021\ufefc\022\ufefc\023\ufefc\027\ufefc\030\ufefc\031" +
  81.917 -    "\ufefc\033\ufefc\034\ufefc\035\ufefc\040\ufefc\041\ufefc\045\ufefc" +
  81.918 -    "\051\ufefc\053\ufefc\057\ufefc\063\ufefc\065\ufefc\072\ufefc\073" +
  81.919 -    "\ufefc\101\ufefc\105\ufefc\106\ufefc\140\ufefc\144\ufefc\147\ufefc" +
  81.920 -    "\001\002\000\074\003\ufef0\004\ufef0\010\ufef0\016\ufef0\021" +
  81.921 -    "\ufef0\022\ufef0\023\ufef0\027\ufef0\030\ufef0\031\ufef0\033\ufef0" +
  81.922 -    "\034\ufef0\035\ufef0\040\ufef0\041\ufef0\045\ufef0\051\ufef0\053" +
  81.923 -    "\ufef0\057\ufef0\063\ufef0\065\ufef0\072\ufef0\073\ufef0\101\ufef0" +
  81.924 -    "\105\ufef0\106\ufef0\140\ufef0\144\ufef0\147\ufef0\001\002\000" +
  81.925 -    "\074\003\ufef6\004\ufef6\010\ufef6\016\ufef6\021\ufef6\022\ufef6" +
  81.926 -    "\023\ufef6\027\ufef6\030\ufef6\031\ufef6\033\ufef6\034\ufef6\035" +
  81.927 -    "\ufef6\040\ufef6\041\ufef6\045\ufef6\051\ufef6\053\ufef6\057\ufef6" +
  81.928 -    "\063\ufef6\065\ufef6\072\ufef6\073\ufef6\101\ufef6\105\ufef6\106" +
  81.929 -    "\ufef6\140\ufef6\144\ufef6\147\ufef6\001\002\000\032\005\213" +
  81.930 -    "\047\224\050\200\051\227\113\204\116\175\120\217\143" +
  81.931 -    "\215\144\045\145\176\146\231\147\205\001\002\000\074" +
  81.932 -    "\003\ufef7\004\ufef7\010\ufef7\016\ufef7\021\ufef7\022\ufef7\023" +
  81.933 -    "\ufef7\027\ufef7\030\ufef7\031\ufef7\033\ufef7\034\ufef7\035\ufef7" +
  81.934 -    "\040\ufef7\041\ufef7\045\ufef7\051\ufef7\053\ufef7\057\ufef7\063" +
  81.935 -    "\ufef7\065\ufef7\072\ufef7\073\ufef7\101\ufef7\105\ufef7\106\ufef7" +
  81.936 -    "\140\ufef7\144\ufef7\147\ufef7\001\002\000\074\003\uff02\004" +
  81.937 -    "\uff02\010\uff02\016\uff02\021\uff02\022\uff02\023\uff02\027\uff02" +
  81.938 -    "\030\uff02\031\uff02\033\uff02\034\uff02\035\uff02\040\uff02\041" +
  81.939 -    "\uff02\045\uff02\051\uff02\053\uff02\057\uff02\063\uff02\065\uff02" +
  81.940 -    "\072\uff02\073\uff02\101\uff02\105\uff02\106\uff02\140\uff02\144" +
  81.941 -    "\uff02\147\uff02\001\002\000\074\003\ufefe\004\ufefe\010\ufefe" +
  81.942 -    "\016\ufefe\021\ufefe\022\ufefe\023\ufefe\027\ufefe\030\ufefe\031" +
  81.943 -    "\ufefe\033\ufefe\034\ufefe\035\ufefe\040\ufefe\041\ufefe\045\ufefe" +
  81.944 -    "\051\ufefe\053\ufefe\057\ufefe\063\ufefe\065\ufefe\072\ufefe\073" +
  81.945 -    "\ufefe\101\ufefe\105\ufefe\106\ufefe\140\ufefe\144\ufefe\147\ufefe" +
  81.946 -    "\001\002\000\074\003\uff03\004\uff03\010\uff03\016\uff03\021" +
  81.947 -    "\uff03\022\uff03\023\uff03\027\uff03\030\uff03\031\uff03\033\uff03" +
  81.948 -    "\034\uff03\035\uff03\040\uff03\041\uff03\045\uff03\051\uff03\053" +
  81.949 -    "\uff03\057\uff03\063\uff03\065\uff03\072\uff03\073\uff03\101\uff03" +
  81.950 -    "\105\uff03\106\uff03\140\uff03\144\uff03\147\uff03\001\002\000" +
  81.951 -    "\074\003\ufeef\004\ufeef\010\ufeef\016\ufeef\021\ufeef\022\ufeef" +
  81.952 -    "\023\ufeef\027\ufeef\030\ufeef\031\ufeef\033\ufeef\034\ufeef\035" +
  81.953 -    "\ufeef\040\ufeef\041\ufeef\045\ufeef\051\ufeef\053\ufeef\057\ufeef" +
  81.954 -    "\063\ufeef\065\ufeef\072\ufeef\073\ufeef\101\ufeef\105\ufeef\106" +
  81.955 -    "\ufeef\140\ufeef\144\ufeef\147\ufeef\001\002\000\014\112\234" +
  81.956 -    "\113\233\121\235\124\u01ff\134\u0222\001\002\000\074\003" +
  81.957 -    "\ufe64\004\ufe64\010\ufe64\016\ufe64\021\ufe64\022\ufe64\023\ufe64" +
  81.958 -    "\027\ufe64\030\ufe64\031\ufe64\033\ufe64\034\ufe64\035\ufe64\040" +
  81.959 -    "\ufe64\041\ufe64\045\ufe64\051\ufe64\053\ufe64\057\ufe64\063\ufe64" +
  81.960 -    "\065\ufe64\072\ufe64\073\ufe64\101\ufe64\105\ufe64\106\ufe64\140" +
  81.961 -    "\ufe64\144\ufe64\147\ufe64\001\002\000\074\003\ufef4\004\ufef4" +
  81.962 -    "\010\ufef4\016\ufef4\021\ufef4\022\ufef4\023\ufef4\027\ufef4\030" +
  81.963 -    "\ufef4\031\ufef4\033\ufef4\034\ufef4\035\ufef4\040\ufef4\041\ufef4" +
  81.964 -    "\045\ufef4\051\ufef4\053\ufef4\057\ufef4\063\ufef4\065\ufef4\072" +
  81.965 -    "\ufef4\073\ufef4\101\ufef4\105\ufef4\106\ufef4\140\ufef4\144\ufef4" +
  81.966 -    "\147\ufef4\001\002\000\074\003\ufef8\004\ufef8\010\ufef8\016" +
  81.967 -    "\ufef8\021\ufef8\022\ufef8\023\ufef8\027\ufef8\030\ufef8\031\ufef8" +
  81.968 -    "\033\ufef8\034\ufef8\035\ufef8\040\ufef8\041\ufef8\045\ufef8\051" +
  81.969 -    "\ufef8\053\ufef8\057\ufef8\063\ufef8\065\ufef8\072\ufef8\073\ufef8" +
  81.970 -    "\101\ufef8\105\ufef8\106\ufef8\140\ufef8\144\ufef8\147\ufef8\001" +
  81.971 -    "\002\000\074\003\ufe65\004\ufe65\010\ufe65\016\ufe65\021\ufe65" +
  81.972 -    "\022\ufe65\023\ufe65\027\ufe65\030\ufe65\031\ufe65\033\ufe65\034" +
  81.973 -    "\ufe65\035\ufe65\040\ufe65\041\ufe65\045\ufe65\051\ufe65\053\ufe65" +
  81.974 -    "\057\ufe65\063\ufe65\065\ufe65\072\ufe65\073\ufe65\101\ufe65\105" +
  81.975 -    "\ufe65\106\ufe65\140\ufe65\144\ufe65\147\ufe65\001\002\000\074" +
  81.976 -    "\003\ufeff\004\ufeff\010\ufeff\016\ufeff\021\ufeff\022\ufeff\023" +
  81.977 -    "\ufeff\027\ufeff\030\ufeff\031\ufeff\033\ufeff\034\ufeff\035\ufeff" +
  81.978 -    "\040\ufeff\041\ufeff\045\ufeff\051\ufeff\053\ufeff\057\ufeff\063" +
  81.979 -    "\ufeff\065\ufeff\072\ufeff\073\ufeff\101\ufeff\105\ufeff\106\ufeff" +
  81.980 -    "\140\ufeff\144\ufeff\147\ufeff\001\002\000\016\010\u0183\023" +
  81.981 -    "\u0185\100\u01fa\105\u01fb\144\045\147\205\001\002\000\012" +
  81.982 -    "\105\ufecd\124\ufecd\144\045\147\205\001\002\000\032\005" +
  81.983 -    "\213\047\224\050\200\051\227\113\204\116\175\120\217" +
  81.984 -    "\143\215\144\045\145\176\146\231\147\205\001\002\000" +
  81.985 -    "\074\003\ufef3\004\ufef3\010\ufef3\016\ufef3\021\ufef3\022\ufef3" +
  81.986 -    "\023\ufef3\027\ufef3\030\ufef3\031\ufef3\033\ufef3\034\ufef3\035" +
  81.987 -    "\ufef3\040\ufef3\041\ufef3\045\ufef3\051\ufef3\053\ufef3\057\ufef3" +
  81.988 -    "\063\ufef3\065\ufef3\072\ufef3\073\ufef3\101\ufef3\105\ufef3\106" +
  81.989 -    "\ufef3\140\ufef3\144\ufef3\147\ufef3\001\002\000\074\003\uff07" +
  81.990 -    "\004\uff07\010\uff07\016\uff07\021\uff07\022\uff07\023\uff07\027" +
  81.991 -    "\uff07\030\uff07\031\uff07\033\uff07\034\uff07\035\uff07\040\uff07" +
  81.992 -    "\041\uff07\045\uff07\051\uff07\053\uff07\057\uff07\063\uff07\065" +
  81.993 -    "\uff07\072\uff07\073\uff07\101\uff07\105\uff07\106\uff07\140\uff07" +
  81.994 -    "\144\uff07\147\uff07\001\002\000\074\003\ufef2\004\ufef2\010" +
  81.995 -    "\ufef2\016\ufef2\021\ufef2\022\ufef2\023\ufef2\027\ufef2\030\ufef2" +
  81.996 -    "\031\ufef2\033\ufef2\034\ufef2\035\ufef2\040\ufef2\041\ufef2\045" +
  81.997 -    "\ufef2\051\ufef2\053\ufef2\057\ufef2\063\ufef2\065\ufef2\072\ufef2" +
  81.998 -    "\073\ufef2\101\ufef2\105\ufef2\106\ufef2\140\ufef2\144\ufef2\147" +
  81.999 -    "\ufef2\001\002\000\006\026\u01dc\124\u01dd\001\002\000\034" +
 81.1000 -    "\005\213\047\224\050\200\051\227\113\204\116\175\120" +
 81.1001 -    "\217\124\u01d9\143\215\144\045\145\176\146\231\147\205" +
 81.1002 -    "\001\002\000\006\144\045\147\205\001\002\000\004\124" +
 81.1003 -    "\u01d3\001\002\000\062\003\u017e\004\u017d\010\u0183\016\ufee0" +
 81.1004 -    "\021\u0169\022\ufee0\023\u0185\031\ufed0\033\u01c1\034\u0176\035" +
 81.1005 -    "\ufee0\040\u0184\041\u0177\045\ufee0\051\u0180\057\004\063\u017c" +
 81.1006 -    "\065\u018f\072\u0164\073\u0175\106\ufee0\140\u0187\144\u0190\147" +
 81.1007 -    "\205\001\002\000\004\124\u01bf\001\002\000\074\003\ufefd" +
 81.1008 -    "\004\ufefd\010\ufefd\016\ufefd\021\ufefd\022\ufefd\023\ufefd\027" +
 81.1009 -    "\ufefd\030\ufefd\031\ufefd\033\ufefd\034\ufefd\035\ufefd\040\ufefd" +
 81.1010 -    "\041\ufefd\045\ufefd\051\ufefd\053\ufefd\057\ufefd\063\ufefd\065" +
 81.1011 -    "\ufefd\072\ufefd\073\ufefd\101\ufefd\105\ufefd\106\ufefd\140\ufefd" +
 81.1012 -    "\144\ufefd\147\ufefd\001\002\000\074\003\ufe62\004\ufe62\010" +
 81.1013 -    "\ufe62\016\ufe62\021\ufe62\022\ufe62\023\ufe62\027\ufe62\030\ufe62" +
 81.1014 -    "\031\ufe62\033\ufe62\034\ufe62\035\ufe62\040\ufe62\041\ufe62\045" +
 81.1015 -    "\ufe62\051\ufe62\053\ufe62\057\ufe62\063\ufe62\065\ufe62\072\ufe62" +
 81.1016 -    "\073\ufe62\101\ufe62\105\ufe62\106\ufe62\140\ufe62\144\ufe62\147" +
 81.1017 -    "\ufe62\001\002\000\004\144\045\001\002\000\006\144\045" +
 81.1018 -    "\147\205\001\002\000\034\005\213\047\224\050\200\051" +
 81.1019 -    "\227\103\u01b3\113\204\116\175\120\217\143\215\144\045" +
 81.1020 -    "\145\176\146\231\147\205\001\002\000\074\003\ufef1\004" +
 81.1021 -    "\ufef1\010\ufef1\016\ufef1\021\ufef1\022\ufef1\023\ufef1\027\ufef1" +
 81.1022 -    "\030\ufef1\031\ufef1\033\ufef1\034\ufef1\035\ufef1\040\ufef1\041" +
 81.1023 -    "\ufef1\045\ufef1\051\ufef1\053\ufef1\057\ufef1\063\ufef1\065\ufef1" +
 81.1024 -    "\072\ufef1\073\ufef1\101\ufef1\105\ufef1\106\ufef1\140\ufef1\144" +
 81.1025 -    "\ufef1\147\ufef1\001\002\000\004\144\u01b0\001\002\000\014" +
 81.1026 -    "\016\ufed4\022\u0196\035\u0198\045\ufede\106\u019b\001\002\000" +
 81.1027 -    "\074\003\uff00\004\uff00\010\uff00\016\uff00\021\uff00\022\uff00" +
 81.1028 -    "\023\uff00\027\uff00\030\uff00\031\uff00\033\uff00\034\uff00\035" +
 81.1029 -    "\uff00\040\uff00\041\uff00\045\uff00\051\uff00\053\uff00\057\uff00" +
 81.1030 -    "\063\uff00\065\uff00\072\uff00\073\uff00\101\uff00\105\uff00\106" +
 81.1031 -    "\uff00\140\uff00\144\uff00\147\uff00\001\002\000\056\003\u017e" +
 81.1032 -    "\004\u017d\010\u0183\016\ufee0\021\u0169\022\ufee0\023\u0185\034" +
 81.1033 -    "\u0176\035\ufee0\040\u0184\041\u0177\045\ufee0\051\u0180\057\004" +
 81.1034 -    "\063\u017c\065\u018f\072\u0164\073\u0175\106\ufee0\140\u0187\144" +
 81.1035 -    "\u0190\147\205\001\002\000\074\003\ufefa\004\ufefa\010\ufefa" +
 81.1036 -    "\016\ufefa\021\ufefa\022\ufefa\023\ufefa\027\ufefa\030\ufefa\031" +
 81.1037 -    "\ufefa\033\ufefa\034\ufefa\035\ufefa\040\ufefa\041\ufefa\045\ufefa" +
 81.1038 -    "\051\ufefa\053\ufefa\057\ufefa\063\ufefa\065\ufefa\072\ufefa\073" +
 81.1039 -    "\ufefa\101\ufefa\105\ufefa\106\ufefa\140\ufefa\144\ufefa\147\ufefa" +
 81.1040 -    "\001\002\000\074\003\ufef9\004\ufef9\010\ufef9\016\ufef9\021" +
 81.1041 -    "\ufef9\022\ufef9\023\ufef9\027\ufef9\030\ufef9\031\ufef9\033\ufef9" +
 81.1042 -    "\034\ufef9\035\ufef9\040\ufef9\041\ufef9\045\ufef9\051\ufef9\053" +
 81.1043 -    "\ufef9\057\ufef9\063\ufef9\065\ufef9\072\ufef9\073\ufef9\101\ufef9" +
 81.1044 -    "\105\ufef9\106\ufef9\140\ufef9\144\ufef9\147\ufef9\001\002\000" +
 81.1045 -    "\074\003\uff05\004\uff05\010\uff05\016\uff05\021\uff05\022\uff05" +
 81.1046 -    "\023\uff05\027\uff05\030\uff05\031\uff05\033\uff05\034\uff05\035" +
 81.1047 -    "\uff05\040\uff05\041\uff05\045\uff05\051\uff05\053\uff05\057\uff05" +
 81.1048 -    "\063\uff05\065\uff05\072\uff05\073\uff05\101\uff05\105\uff05\106" +
 81.1049 -    "\uff05\140\uff05\144\uff05\147\uff05\001\002\000\074\003\uff01" +
 81.1050 -    "\004\uff01\010\uff01\016\uff01\021\uff01\022\uff01\023\uff01\027" +
 81.1051 -    "\uff01\030\uff01\031\uff01\033\uff01\034\uff01\035\uff01\040\uff01" +
 81.1052 -    "\041\uff01\045\uff01\051\uff01\053\uff01\057\uff01\063\uff01\065" +
 81.1053 -    "\uff01\072\uff01\073\uff01\101\uff01\105\uff01\106\uff01\140\uff01" +
 81.1054 -    "\144\uff01\147\uff01\001\002\000\010\124\ufecd\144\045\147" +
 81.1055 -    "\205\001\002\000\016\112\uff59\113\uff59\121\uff59\123\u0191" +
 81.1056 -    "\124\uff59\134\uff59\001\002\000\014\016\ufedf\022\ufedf\035" +
 81.1057 -    "\ufedf\045\ufedf\106\ufedf\001\002\000\014\105\ufecc\112\u0122" +
 81.1058 -    "\113\233\121\235\124\ufecc\001\002\000\004\124\u0194\001" +
 81.1059 -    "\002\000\074\003\ufe2c\004\ufe2c\010\ufe2c\016\ufe2c\021\ufe2c" +
 81.1060 -    "\022\ufe2c\023\ufe2c\027\ufe2c\030\ufe2c\031\ufe2c\033\ufe2c\034" +
 81.1061 -    "\ufe2c\035\ufe2c\040\ufe2c\041\ufe2c\045\ufe2c\051\ufe2c\053\ufe2c" +
 81.1062 -    "\057\ufe2c\063\ufe2c\065\ufe2c\072\ufe2c\073\ufe2c\101\ufe2c\105" +
 81.1063 -    "\ufe2c\106\ufe2c\140\ufe2c\144\ufe2c\147\ufe2c\001\002\000\074" +
 81.1064 -    "\003\uff04\004\uff04\010\uff04\016\uff04\021\uff04\022\uff04\023" +
 81.1065 -    "\uff04\027\uff04\030\uff04\031\uff04\033\uff04\034\uff04\035\uff04" +
 81.1066 -    "\040\uff04\041\uff04\045\uff04\051\uff04\053\uff04\057\uff04\063" +
 81.1067 -    "\uff04\065\uff04\072\uff04\073\uff04\101\uff04\105\uff04\106\uff04" +
 81.1068 -    "\140\uff04\144\uff04\147\uff04\001\002\000\036\003\105\016" +
 81.1069 -    "\uff7b\035\070\036\027\037\030\056\121\057\004\061\021" +
 81.1070 -    "\062\117\075\076\077\060\102\074\104\015\144\126\001" +
 81.1071 -    "\002\000\004\016\u015c\001\002\000\004\144\u01a9\001\002" +
 81.1072 -    "\000\034\005\ufeda\047\ufeda\050\ufeda\051\ufeda\064\u01a7\113" +
 81.1073 -    "\ufeda\116\ufeda\120\ufeda\143\ufeda\144\ufeda\145\ufeda\146\ufeda" +
 81.1074 -    "\147\ufeda\001\002\000\004\045\u019f\001\002\000\032\005" +
 81.1075 -    "\213\047\224\050\200\051\227\113\204\116\175\120\217" +
 81.1076 -    "\143\215\144\045\145\176\146\231\147\205\001\002\000" +
 81.1077 -    "\022\013\321\043\ufee8\045\ufee8\053\324\101\ufee8\110\322" +
 81.1078 -    "\124\ufee8\131\ufee8\001\002\000\004\045\ufedd\001\002\000" +
 81.1079 -    "\010\124\ufed7\144\045\147\205\001\002\000\056\003\u017e" +
 81.1080 -    "\004\u017d\010\u0183\016\ufee0\021\u0169\022\ufee0\023\u0185\034" +
 81.1081 -    "\u0176\035\ufee0\040\u0184\041\u0177\045\ufee0\051\u0180\057\004" +
 81.1082 -    "\063\u017c\065\u018f\072\u0164\073\u0175\106\ufee0\140\u0187\144" +
 81.1083 -    "\u0190\147\205\001\002\000\060\003\u017e\004\u017d\010\u0183" +
 81.1084 -    "\016\ufee0\021\u0169\022\ufee0\023\u0185\031\u01a2\034\u0176\035" +
 81.1085 -    "\ufee0\040\u0184\041\u0177\045\ufee0\051\u0180\057\004\063\u017c" +
 81.1086 -    "\065\u018f\072\u0164\073\u0175\106\ufee0\140\u0187\144\u0190\147" +
 81.1087 -    "\205\001\002\000\074\003\uff06\004\uff06\010\uff06\016\uff06" +
 81.1088 -    "\021\uff06\022\uff06\023\uff06\027\uff06\030\uff06\031\uff06\033" +
 81.1089 -    "\uff06\034\uff06\035\uff06\040\uff06\041\uff06\045\uff06\051\uff06" +
 81.1090 -    "\053\uff06\057\uff06\063\uff06\065\uff06\072\uff06\073\uff06\101" +
 81.1091 -    "\uff06\105\uff06\106\uff06\140\uff06\144\uff06\147\uff06\001\002" +
 81.1092 -    "\000\004\045\u01a3\001\002\000\010\124\ufed8\144\ufed8\147" +
 81.1093 -    "\ufed8\001\002\000\004\124\u01a5\001\002\000\074\003\ufee1" +
 81.1094 -    "\004\ufee1\010\ufee1\016\ufee1\021\ufee1\022\ufee1\023\ufee1\027" +
 81.1095 -    "\ufee1\030\ufee1\031\ufee1\033\ufee1\034\ufee1\035\ufee1\040\ufee1" +
 81.1096 -    "\041\ufee1\045\ufee1\051\ufee1\053\ufee1\057\ufee1\063\ufee1\065" +
 81.1097 -    "\ufee1\072\ufee1\073\ufee1\101\ufee1\105\ufee1\106\ufee1\140\ufee1" +
 81.1098 -    "\144\ufee1\147\ufee1\001\002\000\032\005\213\047\224\050" +
 81.1099 -    "\200\051\227\113\204\116\175\120\217\143\215\144\045" +
 81.1100 -    "\145\176\146\231\147\205\001\002\000\032\005\ufed9\047" +
 81.1101 -    "\ufed9\050\ufed9\051\ufed9\113\ufed9\116\ufed9\120\ufed9\143\ufed9" +
 81.1102 -    "\144\ufed9\145\ufed9\146\ufed9\147\ufed9\001\002\000\004\045" +
 81.1103 -    "\ufedc\001\002\000\004\042\u01aa\001\002\000\034\005\ufedb" +
 81.1104 -    "\047\ufedb\050\ufedb\051\ufedb\064\ufedb\113\ufedb\116\ufedb\120" +
 81.1105 -    "\ufedb\143\ufedb\144\ufedb\145\ufedb\146\ufedb\147\ufedb\001\002" +
 81.1106 -    "\000\004\031\u01ac\001\002\000\010\124\ufed7\144\045\147" +
 81.1107 -    "\205\001\002\000\004\124\u01ae\001\002\000\074\003\ufed5" +
 81.1108 -    "\004\ufed5\010\ufed5\016\ufed5\021\ufed5\022\ufed5\023\ufed5\027" +
 81.1109 -    "\ufed5\030\ufed5\031\ufed5\033\ufed5\034\ufed5\035\ufed5\040\ufed5" +
 81.1110 -    "\041\ufed5\045\ufed5\051\ufed5\053\ufed5\057\ufed5\063\ufed5\065" +
 81.1111 -    "\ufed5\072\ufed5\073\ufed5\101\ufed5\105\ufed5\106\ufed5\140\ufed5" +
 81.1112 -    "\144\ufed5\147\ufed5\001\002\000\004\016\ufed3\001\002\000" +
 81.1113 -    "\004\141\u01b1\001\002\000\056\003\ufeee\004\ufeee\010\ufeee" +
 81.1114 -    "\016\ufeee\021\ufeee\022\ufeee\023\ufeee\034\ufeee\035\ufeee\040" +
 81.1115 -    "\ufeee\041\ufeee\045\ufeee\051\ufeee\057\ufeee\063\ufeee\065\ufeee" +
 81.1116 -    "\072\ufeee\073\ufeee\106\ufeee\140\ufeee\144\ufeee\147\ufeee\001" +
 81.1117 -    "\002\000\012\013\321\053\324\110\322\124\u01b6\001\002" +
 81.1118 -    "\000\032\005\213\047\224\050\200\051\227\113\204\116" +
 81.1119 -    "\175\120\217\143\215\144\045\145\176\146\231\147\205" +
 81.1120 -    "\001\002\000\012\013\321\053\324\110\322\124\u01b5\001" +
 81.1121 -    "\002\000\074\003\ufe66\004\ufe66\010\ufe66\016\ufe66\021\ufe66" +
 81.1122 -    "\022\ufe66\023\ufe66\027\ufe66\030\ufe66\031\ufe66\033\ufe66\034" +
 81.1123 -    "\ufe66\035\ufe66\040\ufe66\041\ufe66\045\ufe66\051\ufe66\053\ufe66" +
 81.1124 -    "\057\ufe66\063\ufe66\065\ufe66\072\ufe66\073\ufe66\101\ufe66\105" +
 81.1125 -    "\ufe66\106\ufe66\140\ufe66\144\ufe66\147\ufe66\001\002\000\074" +
 81.1126 -    "\003\ufe67\004\ufe67\010\ufe67\016\ufe67\021\ufe67\022\ufe67\023" +
 81.1127 -    "\ufe67\027\ufe67\030\ufe67\031\ufe67\033\ufe67\034\ufe67\035\ufe67" +
 81.1128 -    "\040\ufe67\041\ufe67\045\ufe67\051\ufe67\053\ufe67\057\ufe67\063" +
 81.1129 -    "\ufe67\065\ufe67\072\ufe67\073\ufe67\101\ufe67\105\ufe67\106\ufe67" +
 81.1130 -    "\140\ufe67\144\ufe67\147\ufe67\001\002\000\012\112\u0122\113" +
 81.1131 -    "\233\121\235\124\u01b8\001\002\000\074\003\ufec7\004\ufec7" +
 81.1132 -    "\010\ufec7\016\ufec7\021\ufec7\022\ufec7\023\ufec7\027\ufec7\030" +
 81.1133 -    "\ufec7\031\ufec7\033\ufec7\034\ufec7\035\ufec7\040\ufec7\041\ufec7" +
 81.1134 -    "\045\ufec7\051\ufec7\053\ufec7\057\ufec7\063\ufec7\065\ufec7\072" +
 81.1135 -    "\ufec7\073\ufec7\101\ufec7\105\ufec7\106\ufec7\140\ufec7\144\ufec7" +
 81.1136 -    "\147\ufec7\001\002\000\010\026\ufebe\113\u01bc\124\ufebe\001" +
 81.1137 -    "\002\000\010\026\ufe69\113\ufe69\124\ufe69\001\002\000\006" +
 81.1138 -    "\026\ufe6a\124\ufe6a\001\002\000\034\003\u012f\005\213\047" +
 81.1139 -    "\224\050\200\051\227\113\204\116\175\120\217\143\215" +
 81.1140 -    "\144\u0131\145\176\146\231\147\205\001\002\000\012\013" +
 81.1141 -    "\321\053\324\110\322\114\u01be\001\002\000\010\026\ufe68" +
 81.1142 -    "\113\ufe68\124\ufe68\001\002\000\074\003\ufeed\004\ufeed\010" +
 81.1143 -    "\ufeed\016\ufeed\021\ufeed\022\ufeed\023\ufeed\027\ufeed\030\ufeed" +
 81.1144 -    "\031\ufeed\033\ufeed\034\ufeed\035\ufeed\040\ufeed\041\ufeed\045" +
 81.1145 -    "\ufeed\051\ufeed\053\ufeed\057\ufeed\063\ufeed\065\ufeed\072\ufeed" +
 81.1146 -    "\073\ufeed\101\ufeed\105\ufeed\106\ufeed\140\ufeed\144\ufeed\147" +
 81.1147 -    "\ufeed\001\002\000\006\031\ufecf\105\u01c3\001\002\000\004" +
 81.1148 -    "\105\u01c3\001\002\000\004\031\ufed1\001\002\000\010\054" +
 81.1149 -    "\u01c5\144\u01c7\147\205\001\002\000\006\031\ufe34\105\ufe34" +
 81.1150 -    "\001\002\000\006\130\ufe2d\131\ufe2d\001\002\000\014\112" +
 81.1151 -    "\u0122\113\233\121\235\130\ufe2e\131\ufe2e\001\002\000\016" +
 81.1152 -    "\112\uff59\113\uff59\121\uff59\123\u01ce\130\uff59\131\uff59\001" +
 81.1153 -    "\002\000\006\130\u01ca\131\u01cb\001\002\000\006\130\ufe30" +
 81.1154 -    "\131\ufe30\001\002\000\010\054\u01c5\144\045\147\205\001" +
 81.1155 -    "\002\000\056\003\u017e\004\u017d\010\u0183\016\ufee0\021\u0169" +
 81.1156 -    "\022\ufee0\023\u0185\034\u0176\035\ufee0\040\u0184\041\u0177\045" +
 81.1157 -    "\ufee0\051\u0180\057\004\063\u017c\065\u018f\072\u0164\073\u0175" +
 81.1158 -    "\106\ufee0\140\u0187\144\u0190\147\205\001\002\000\062\003" +
 81.1159 -    "\u017e\004\u017d\010\u0183\016\ufee0\021\u0169\022\ufee0\023\u0185" +
 81.1160 -    "\031\ufe32\034\u0176\035\ufee0\040\u0184\041\u0177\045\ufee0\051" +
 81.1161 -    "\u0180\057\004\063\u017c\065\u018f\072\u0164\073\u0175\105\ufe32" +
 81.1162 -    "\106\ufee0\140\u0187\144\u0190\147\205\001\002\000\006\130" +
 81.1163 -    "\ufe2f\131\ufe2f\001\002\000\010\054\u01c5\144\045\147\205" +
 81.1164 -    "\001\002\000\006\130\u01ca\131\u01d0\001\002\000\056\003" +
 81.1165 -    "\u017e\004\u017d\010\u0183\016\ufee0\021\u0169\022\ufee0\023\u0185" +
 81.1166 -    "\034\u0176\035\ufee0\040\u0184\041\u0177\045\ufee0\051\u0180\057" +
 81.1167 -    "\004\063\u017c\065\u018f\072\u0164\073\u0175\106\ufee0\140\u0187" +
 81.1168 -    "\144\u0190\147\205\001\002\000\062\003\u017e\004\u017d\010" +
 81.1169 -    "\u0183\016\ufee0\021\u0169\022\ufee0\023\u0185\031\ufe31\034\u0176" +
 81.1170 -    "\035\ufee0\040\u0184\041\u0177\045\ufee0\051\u0180\057\004\063" +
 81.1171 -    "\u017c\065\u018f\072\u0164\073\u0175\105\ufe31\106\ufee0\140\u0187" +
 81.1172 -    "\144\u0190\147\205\001\002\000\006\031\ufe33\105\ufe33\001" +
 81.1173 -    "\002\000\074\003\ufef5\004\ufef5\010\ufef5\016\ufef5\021\ufef5" +
 81.1174 -    "\022\ufef5\023\ufef5\027\ufef5\030\ufef5\031\ufef5\033\ufef5\034" +
 81.1175 -    "\ufef5\035\ufef5\040\ufef5\041\ufef5\045\ufef5\051\ufef5\053\ufef5" +
 81.1176 -    "\057\ufef5\063\ufef5\065\ufef5\072\ufef5\073\ufef5\101\ufef5\105" +
 81.1177 -    "\ufef5\106\ufef5\140\ufef5\144\ufef5\147\ufef5\001\002\000\014" +
 81.1178 -    "\112\u0122\113\233\117\ufe51\121\235\124\ufe51\001\002\000" +
 81.1179 -    "\006\117\u01d6\124\u01d7\001\002\000\006\144\045\147\205" +
 81.1180 -    "\001\002\000\074\003\ufe52\004\ufe52\010\ufe52\016\ufe52\021" +
 81.1181 -    "\ufe52\022\ufe52\023\ufe52\027\ufe52\030\ufe52\031\ufe52\033\ufe52" +
 81.1182 -    "\034\ufe52\035\ufe52\040\ufe52\041\ufe52\045\ufe52\051\ufe52\053" +
 81.1183 -    "\ufe52\057\ufe52\063\ufe52\065\ufe52\072\ufe52\073\ufe52\101\ufe52" +
 81.1184 -    "\105\ufe52\106\ufe52\140\ufe52\144\ufe52\147\ufe52\001\002\000" +
 81.1185 -    "\014\112\u0122\113\233\117\ufe50\121\235\124\ufe50\001\002" +
 81.1186 -    "\000\074\003\ufec9\004\ufec9\010\ufec9\016\ufec9\021\ufec9\022" +
 81.1187 -    "\ufec9\023\ufec9\027\ufec9\030\ufec9\031\ufec9\033\ufec9\034\ufec9" +
 81.1188 -    "\035\ufec9\040\ufec9\041\ufec9\045\ufec9\051\ufec9\053\ufec9\057" +
 81.1189 -    "\ufec9\063\ufec9\065\ufec9\072\ufec9\073\ufec9\101\ufec9\105\ufec9" +
 81.1190 -    "\106\ufec9\140\ufec9\144\ufec9\147\ufec9\001\002\000\012\013" +
 81.1191 -    "\321\053\324\110\322\124\u01db\001\002\000\074\003\ufec8" +
 81.1192 -    "\004\ufec8\010\ufec8\016\ufec8\021\ufec8\022\ufec8\023\ufec8\027" +
 81.1193 -    "\ufec8\030\ufec8\031\ufec8\033\ufec8\034\ufec8\035\ufec8\040\ufec8" +
 81.1194 -    "\041\ufec8\045\ufec8\051\ufec8\053\ufec8\057\ufec8\063\ufec8\065" +
 81.1195 -    "\ufec8\072\ufec8\073\ufec8\101\ufec8\105\ufec8\106\ufec8\140\ufec8" +
 81.1196 -    "\144\ufec8\147\ufec8\001\002\000\056\003\u017e\004\u017d\010" +
 81.1197 -    "\u0183\016\ufee0\021\u0169\022\ufee0\023\u0185\034\u0176\035\ufee0" +
 81.1198 -    "\040\u0184\041\u0177\045\ufee0\051\u0180\057\004\063\u017c\065" +
 81.1199 -    "\u018f\072\u0164\073\u0175\106\ufee0\140\u0187\144\u0190\147\205" +
 81.1200 -    "\001\002\000\074\003\ufe6c\004\ufe6c\010\ufe6c\016\ufe6c\021" +
 81.1201 -    "\ufe6c\022\ufe6c\023\ufe6c\027\ufe6c\030\ufe6c\031\ufe6c\033\ufe6c" +
 81.1202 -    "\034\ufe6c\035\ufe6c\040\ufe6c\041\ufe6c\045\ufe6c\051\ufe6c\053" +
 81.1203 -    "\ufe6c\057\ufe6c\063\ufe6c\065\ufe6c\072\ufe6c\073\ufe6c\101\ufe6c" +
 81.1204 -    "\105\ufe6c\106\ufe6c\140\ufe6c\144\ufe6c\147\ufe6c\001\002\000" +
 81.1205 -    "\004\031\u01df\001\002\000\010\124\ufed7\144\045\147\205" +
 81.1206 -    "\001\002\000\004\124\u01e1\001\002\000\074\003\ufe6b\004" +
 81.1207 -    "\ufe6b\010\ufe6b\016\ufe6b\021\ufe6b\022\ufe6b\023\ufe6b\027\ufe6b" +
 81.1208 -    "\030\ufe6b\031\ufe6b\033\ufe6b\034\ufe6b\035\ufe6b\040\ufe6b\041" +
 81.1209 -    "\ufe6b\045\ufe6b\051\ufe6b\053\ufe6b\057\ufe6b\063\ufe6b\065\ufe6b" +
 81.1210 -    "\072\ufe6b\073\ufe6b\101\ufe6b\105\ufe6b\106\ufe6b\140\ufe6b\144" +
 81.1211 -    "\ufe6b\147\ufe6b\001\002\000\010\027\u01e6\030\u01e7\031\ufee7" +
 81.1212 -    "\001\002\000\004\101\u01e4\001\002\000\056\003\u017e\004" +
 81.1213 -    "\u017d\010\u0183\016\ufee0\021\u0169\022\ufee0\023\u0185\034\u0176" +
 81.1214 -    "\035\ufee0\040\u0184\041\u0177\045\ufee0\051\u0180\057\004\063" +
 81.1215 -    "\u017c\065\u018f\072\u0164\073\u0175\106\ufee0\140\u0187\144\u0190" +
 81.1216 -    "\147\205\001\002\000\064\003\u017e\004\u017d\010\u0183\016" +
 81.1217 -    "\ufee0\021\u0169\022\ufee0\023\u0185\027\ufeea\030\ufeea\031\ufeea" +
 81.1218 -    "\034\u0176\035\ufee0\040\u0184\041\u0177\045\ufee0\051\u0180\057" +
 81.1219 -    "\004\063\u017c\065\u018f\072\u0164\073\u0175\106\ufee0\140\u0187" +
 81.1220 -    "\144\u0190\147\205\001\002\000\056\003\u017e\004\u017d\010" +
 81.1221 -    "\u0183\016\ufee0\021\u0169\022\ufee0\023\u0185\034\u0176\035\ufee0" +
 81.1222 -    "\040\u0184\041\u0177\045\ufee0\051\u0180\057\004\063\u017c\065" +
 81.1223 -    "\u018f\072\u0164\073\u0175\106\ufee0\140\u0187\144\u0190\147\205" +
 81.1224 -    "\001\002\000\032\005\213\047\224\050\200\051\227\113" +
 81.1225 -    "\204\116\175\120\217\143\215\144\045\145\176\146\231" +
 81.1226 -    "\147\205\001\002\000\004\031\u01e9\001\002\000\004\041" +
 81.1227 -    "\u01ea\001\002\000\004\124\u01eb\001\002\000\074\003\ufeeb" +
 81.1228 -    "\004\ufeeb\010\ufeeb\016\ufeeb\021\ufeeb\022\ufeeb\023\ufeeb\027" +
 81.1229 -    "\ufeeb\030\ufeeb\031\ufeeb\033\ufeeb\034\ufeeb\035\ufeeb\040\ufeeb" +
 81.1230 -    "\041\ufeeb\045\ufeeb\051\ufeeb\053\ufeeb\057\ufeeb\063\ufeeb\065" +
 81.1231 -    "\ufeeb\072\ufeeb\073\ufeeb\101\ufeeb\105\ufeeb\106\ufeeb\140\ufeeb" +
 81.1232 -    "\144\ufeeb\147\ufeeb\001\002\000\004\101\u01ed\001\002\000" +
 81.1233 -    "\056\003\u017e\004\u017d\010\u0183\016\ufee0\021\u0169\022\ufee0" +
 81.1234 -    "\023\u0185\034\u0176\035\ufee0\040\u0184\041\u0177\045\ufee0\051" +
 81.1235 -    "\u0180\057\004\063\u017c\065\u018f\072\u0164\073\u0175\106\ufee0" +
 81.1236 -    "\140\u0187\144\u0190\147\205\001\002\000\064\003\u017e\004" +
 81.1237 -    "\u017d\010\u0183\016\ufee0\021\u0169\022\ufee0\023\u0185\027\ufee9" +
 81.1238 -    "\030\ufee9\031\ufee9\034\u0176\035\ufee0\040\u0184\041\u0177\045" +
 81.1239 -    "\ufee0\051\u0180\057\004\063\u017c\065\u018f\072\u0164\073\u0175" +
 81.1240 -    "\106\ufee0\140\u0187\144\u0190\147\205\001\002\000\060\003" +
 81.1241 -    "\u017e\004\u017d\010\u0183\016\ufee0\021\u0169\022\ufee0\023\u0185" +
 81.1242 -    "\031\ufee6\034\u0176\035\ufee0\040\u0184\041\u0177\045\ufee0\051" +
 81.1243 -    "\u0180\057\004\063\u017c\065\u018f\072\u0164\073\u0175\106\ufee0" +
 81.1244 -    "\140\u0187\144\u0190\147\205\001\002\000\006\105\u01f2\124" +
 81.1245 -    "\ufecb\001\002\000\004\124\u01f4\001\002\000\032\005\213" +
 81.1246 -    "\047\224\050\200\051\227\113\204\116\175\120\217\143" +
 81.1247 -    "\215\144\045\145\176\146\231\147\205\001\002\000\004" +
 81.1248 -    "\124\ufeca\001\002\000\074\003\ufece\004\ufece\010\ufece\016" +
 81.1249 -    "\ufece\021\ufece\022\ufece\023\ufece\027\ufece\030\ufece\031\ufece" +
 81.1250 -    "\033\ufece\034\ufece\035\ufece\040\ufece\041\ufece\045\ufece\051" +
 81.1251 -    "\ufece\053\ufece\057\ufece\063\ufece\065\ufece\072\ufece\073\ufece" +
 81.1252 -    "\101\ufece\105\ufece\106\ufece\140\ufece\144\ufece\147\ufece\001" +
 81.1253 -    "\002\000\066\003\u017e\004\u017d\010\u0183\016\ufee0\021\u0169" +
 81.1254 -    "\022\ufee0\023\u0185\027\ufe54\031\ufe54\034\u0176\035\ufee0\040" +
 81.1255 -    "\u0184\041\u0177\045\ufee0\051\u0180\053\ufe54\057\004\063\u017c" +
 81.1256 -    "\065\u018f\072\u0164\073\u0175\101\ufe54\106\ufee0\140\u0187\144" +
 81.1257 -    "\u0190\147\205\001\002\000\064\003\u017e\004\u017d\010\u0183" +
 81.1258 -    "\016\ufee0\021\u0169\022\ufee0\023\u0185\027\ufe54\034\u0176\035" +
 81.1259 -    "\ufee0\040\u0184\041\u0177\045\ufee0\051\u0180\053\ufe54\057\004" +
 81.1260 -    "\063\u017c\065\u018f\072\u0164\073\u0175\101\ufe54\106\ufee0\140" +
 81.1261 -    "\u0187\144\u0190\147\205\001\002\000\010\027\ufe60\031\ufe60" +
 81.1262 -    "\053\ufe60\001\002\000\004\101\u020f\001\002\000\064\003" +
 81.1263 -    "\ufe6d\004\ufe6d\010\ufe6d\016\ufe6d\021\ufe6d\022\ufe6d\023\ufe6d" +
 81.1264 -    "\027\ufe6d\034\ufe6d\035\ufe6d\040\ufe6d\041\ufe6d\045\ufe6d\051" +
 81.1265 -    "\ufe6d\053\ufe6d\057\ufe6d\063\ufe6d\065\ufe6d\072\ufe6d\073\ufe6d" +
 81.1266 -    "\101\ufe6d\106\ufe6d\140\ufe6d\144\ufe6d\147\ufe6d\001\002\000" +
 81.1267 -    "\004\124\u020e\001\002\000\032\005\213\047\224\050\200" +
 81.1268 -    "\051\227\113\204\116\175\120\217\143\215\144\045\145" +
 81.1269 -    "\176\146\231\147\205\001\002\000\064\003\u017e\004\u017d" +
 81.1270 -    "\010\u0183\016\ufee0\021\u0169\022\ufee0\023\u0185\027\ufe54\031" +
 81.1271 -    "\ufe54\034\u0176\035\ufee0\040\u0184\041\u0177\045\ufee0\051\u0180" +
 81.1272 -    "\053\ufe54\057\004\063\u017c\065\u018f\072\u0164\073\u0175\106" +
 81.1273 -    "\ufee0\140\u0187\144\u0190\147\205\001\002\000\010\027\ufe5e" +
 81.1274 -    "\031\ufe5e\053\ufe5e\001\002\000\012\112\u0122\113\233\121" +
 81.1275 -    "\235\124\u01ff\001\002\000\074\003\ufeb0\004\ufeb0\010\ufeb0" +
 81.1276 -    "\016\ufeb0\021\ufeb0\022\ufeb0\023\ufeb0\027\ufeb0\030\ufeb0\031" +
 81.1277 -    "\ufeb0\033\ufeb0\034\ufeb0\035\ufeb0\040\ufeb0\041\ufeb0\045\ufeb0" +
 81.1278 -    "\051\ufeb0\053\ufeb0\057\ufeb0\063\ufeb0\065\ufeb0\072\ufeb0\073" +
 81.1279 -    "\ufeb0\101\ufeb0\105\ufeb0\106\ufeb0\140\ufeb0\144\ufeb0\147\ufeb0" +
 81.1280 -    "\001\002\000\010\027\u01e6\031\ufee7\053\u0202\001\002\000" +
 81.1281 -    "\004\031\u0207\001\002\000\012\010\u0183\023\u0185\100\u01fa" +
 81.1282 -    "\105\u01fb\001\002\000\064\003\u017e\004\u017d\010\u0183\016" +
 81.1283 -    "\ufee0\021\u0169\022\ufee0\023\u0185\027\ufe54\031\ufe54\034\u0176" +
 81.1284 -    "\035\ufee0\040\u0184\041\u0177\045\ufee0\051\u0180\053\ufe54\057" +
 81.1285 -    "\004\063\u017c\065\u018f\072\u0164\073\u0175\106\ufee0\140\u0187" +
 81.1286 -    "\144\u0190\147\205\001\002\000\010\027\ufe5d\031\ufe5d\053" +
 81.1287 -    "\ufe5d\001\002\000\010\027\ufe5b\031\ufe5b\053\ufe5b\001\002" +
 81.1288 -    "\000\066\003\u017e\004\u017d\010\u0183\016\ufee0\021\u0169\022" +
 81.1289 -    "\ufee0\023\u0185\027\ufe53\031\ufe53\034\u0176\035\ufee0\040\u0184" +
 81.1290 -    "\041\u0177\045\ufee0\051\u0180\053\ufe53\057\004\063\u017c\065" +
 81.1291 -    "\u018f\072\u0164\073\u0175\101\ufe53\106\ufee0\140\u0187\144\u0190" +
 81.1292 -    "\147\205\001\002\000\004\073\u0208\001\002\000\004\124" +
 81.1293 -    "\u0209\001\002\000\074\003\ufe61\004\ufe61\010\ufe61\016\ufe61" +
 81.1294 -    "\021\ufe61\022\ufe61\023\ufe61\027\ufe61\030\ufe61\031\ufe61\033" +
 81.1295 -    "\ufe61\034\ufe61\035\ufe61\040\ufe61\041\ufe61\045\ufe61\051\ufe61" +
 81.1296 -    "\053\ufe61\057\ufe61\063\ufe61\065\ufe61\072\ufe61\073\ufe61\101" +
 81.1297 -    "\ufe61\105\ufe61\106\ufe61\140\ufe61\144\ufe61\147\ufe61\001\002" +
 81.1298 -    "\000\010\027\ufe5c\031\ufe5c\053\ufe5c\001\002\000\004\131" +
 81.1299 -    "\u020c\001\002\000\010\010\u0183\023\u0185\100\u01fa\001\002" +
 81.1300 -    "\000\010\027\ufe5f\031\ufe5f\053\ufe5f\001\002\000\010\027" +
 81.1301 -    "\ufe5a\031\ufe5a\053\ufe5a\001\002\000\004\004\u0210\001\002" +
 81.1302 -    "\000\056\003\u017e\004\u017d\010\u0183\016\ufee0\021\u0169\022" +
 81.1303 -    "\ufee0\023\u0185\034\u0176\035\ufee0\040\u0184\041\u0177\045\ufee0" +
 81.1304 -    "\051\u0180\057\004\063\u017c\065\u018f\072\u0164\073\u0175\106" +
 81.1305 -    "\ufee0\140\u0187\144\u0190\147\205\001\002\000\060\003\u017e" +
 81.1306 -    "\004\u017d\010\u0183\016\ufee0\021\u0169\022\ufee0\023\u0185\031" +
 81.1307 -    "\u0212\034\u0176\035\ufee0\040\u0184\041\u0177\045\ufee0\051\u0180" +
 81.1308 -    "\057\004\063\u017c\065\u018f\072\u0164\073\u0175\106\ufee0\140" +
 81.1309 -    "\u0187\144\u0190\147\205\001\002\000\004\073\u0213\001\002" +
 81.1310 -    "\000\004\124\u0214\001\002\000\074\003\ufe57\004\ufe57\010" +
 81.1311 -    "\ufe57\016\ufe57\021\ufe57\022\ufe57\023\ufe57\027\ufe57\030\ufe57" +
 81.1312 -    "\031\ufe57\033\ufe57\034\ufe57\035\ufe57\040\ufe57\041\ufe57\045" +
 81.1313 -    "\ufe57\051\ufe57\053\ufe57\057\ufe57\063\ufe57\065\ufe57\072\ufe57" +
 81.1314 -    "\073\ufe57\101\ufe57\105\ufe57\106\ufe57\140\ufe57\144\ufe57\147" +
 81.1315 -    "\ufe57\001\002\000\010\027\u0216\053\u0217\101\ufe58\001\002" +
 81.1316 -    "\000\056\003\u017e\004\u017d\010\u0183\016\ufee0\021\u0169\022" +
 81.1317 -    "\ufee0\023\u0185\034\u0176\035\ufee0\040\u0184\041\u0177\045\ufee0" +
 81.1318 -    "\051\u0180\057\004\063\u017c\065\u018f\072\u0164\073\u0175\106" +
 81.1319 -    "\ufee0\140\u0187\144\u0190\147\205\001\002\000\004\023\u0185" +
 81.1320 -    "\001\002\000\060\003\u017e\004\u017d\010\u0183\016\ufee0\021" +
 81.1321 -    "\u0169\022\ufee0\023\u0185\031\ufe54\034\u0176\035\ufee0\040\u0184" +
 81.1322 -    "\041\u0177\045\ufee0\051\u0180\057\004\063\u017c\065\u018f\072" +
 81.1323 -    "\u0164\073\u0175\106\ufee0\140\u0187\144\u0190\147\205\001\002" +
 81.1324 -    "\000\004\031\u021a\001\002\000\004\073\u021b\001\002\000" +
 81.1325 -    "\004\124\u021c\001\002\000\074\003\ufe56\004\ufe56\010\ufe56" +
 81.1326 -    "\016\ufe56\021\ufe56\022\ufe56\023\ufe56\027\ufe56\030\ufe56\031" +
 81.1327 -    "\ufe56\033\ufe56\034\ufe56\035\ufe56\040\ufe56\041\ufe56\045\ufe56" +
 81.1328 -    "\051\ufe56\053\ufe56\057\ufe56\063\ufe56\065\ufe56\072\ufe56\073" +
 81.1329 -    "\ufe56\101\ufe56\105\ufe56\106\ufe56\140\ufe56\144\ufe56\147\ufe56" +
 81.1330 -    "\001\002\000\060\003\u017e\004\u017d\010\u0183\016\ufee0\021" +
 81.1331 -    "\u0169\022\ufee0\023\u0185\031\u021e\034\u0176\035\ufee0\040\u0184" +
 81.1332 -    "\041\u0177\045\ufee0\051\u0180\057\004\063\u017c\065\u018f\072" +
 81.1333 -    "\u0164\073\u0175\106\ufee0\140\u0187\144\u0190\147\205\001\002" +
 81.1334 -    "\000\004\073\u021f\001\002\000\004\124\u0220\001\002\000" +
 81.1335 -    "\074\003\ufe55\004\ufe55\010\ufe55\016\ufe55\021\ufe55\022\ufe55" +
 81.1336 -    "\023\ufe55\027\ufe55\030\ufe55\031\ufe55\033\ufe55\034\ufe55\035" +
 81.1337 -    "\ufe55\040\ufe55\041\ufe55\045\ufe55\051\ufe55\053\ufe55\057\ufe55" +
 81.1338 -    "\063\ufe55\065\ufe55\072\ufe55\073\ufe55\101\ufe55\105\ufe55\106" +
 81.1339 -    "\ufe55\140\ufe55\144\ufe55\147\ufe55\001\002\000\012\027\ufe5b" +
 81.1340 -    "\031\ufe5b\053\ufe5b\101\ufe59\001\002\000\032\005\213\047" +
 81.1341 -    "\224\050\200\051\227\113\204\116\175\120\217\143\215" +
 81.1342 -    "\144\045\145\176\146\231\147\205\001\002\000\012\013" +
 81.1343 -    "\321\053\324\110\322\124\u0224\001\002\000\074\003\ufeec" +
 81.1344 -    "\004\ufeec\010\ufeec\016\ufeec\021\ufeec\022\ufeec\023\ufeec\027" +
 81.1345 -    "\ufeec\030\ufeec\031\ufeec\033\ufeec\034\ufeec\035\ufeec\040\ufeec" +
 81.1346 -    "\041\ufeec\045\ufeec\051\ufeec\053\ufeec\057\ufeec\063\ufeec\065" +
 81.1347 -    "\ufeec\072\ufeec\073\ufeec\101\ufeec\105\ufeec\106\ufeec\140\ufeec" +
 81.1348 -    "\144\ufeec\147\ufeec\001\002\000\012\013\321\043\u0226\053" +
 81.1349 -    "\324\110\322\001\002\000\010\031\ufffa\057\ufffa\105\ufffa" +
 81.1350 -    "\001\002\000\010\031\ufee4\057\004\105\ufee4\001\002\000" +
 81.1351 -    "\006\031\u022b\105\u022a\001\002\000\006\031\ufee3\105\ufee3" +
 81.1352 -    "\001\002\000\034\005\213\047\224\050\200\051\227\054" +
 81.1353 -    "\253\113\204\116\175\120\217\143\215\144\045\145\176" +
 81.1354 -    "\146\231\147\205\001\002\000\004\021\u022c\001\002\000" +
 81.1355 -    "\004\124\u022d\001\002\000\074\003\ufee5\004\ufee5\010\ufee5" +
 81.1356 -    "\016\ufee5\021\ufee5\022\ufee5\023\ufee5\027\ufee5\030\ufee5\031" +
 81.1357 -    "\ufee5\033\ufee5\034\ufee5\035\ufee5\040\ufee5\041\ufee5\045\ufee5" +
 81.1358 -    "\051\ufee5\053\ufee5\057\ufee5\063\ufee5\065\ufee5\072\ufee5\073" +
 81.1359 -    "\ufee5\101\ufee5\105\ufee5\106\ufee5\140\ufee5\144\ufee5\147\ufee5" +
 81.1360 -    "\001\002\000\006\130\341\131\u022f\001\002\000\056\003" +
 81.1361 -    "\u017e\004\u017d\010\u0183\016\ufee0\021\u0169\022\ufee0\023\u0185" +
 81.1362 -    "\034\u0176\035\ufee0\040\u0184\041\u0177\045\ufee0\051\u0180\057" +
 81.1363 -    "\004\063\u017c\065\u018f\072\u0164\073\u0175\106\ufee0\140\u0187" +
 81.1364 -    "\144\u0190\147\205\001\002\000\062\003\u017e\004\u017d\010" +
 81.1365 -    "\u0183\016\ufee0\021\u0169\022\ufee0\023\u0185\031\ufee2\034\u0176" +
 81.1366 -    "\035\ufee0\040\u0184\041\u0177\045\ufee0\051\u0180\057\004\063" +
 81.1367 -    "\u017c\065\u018f\072\u0164\073\u0175\105\ufee2\106\ufee0\140\u0187" +
 81.1368 -    "\144\u0190\147\205\001\002\000\014\107\u0233\112\u0122\113" +
 81.1369 -    "\233\121\235\124\u0232\001\002\000\074\003\ufe2b\004\ufe2b" +
 81.1370 -    "\010\ufe2b\016\ufe2b\021\ufe2b\022\ufe2b\023\ufe2b\027\ufe2b\030" +
 81.1371 -    "\ufe2b\031\ufe2b\033\ufe2b\034\ufe2b\035\ufe2b\040\ufe2b\041\ufe2b" +
 81.1372 -    "\045\ufe2b\051\ufe2b\053\ufe2b\057\ufe2b\063\ufe2b\065\ufe2b\072" +
 81.1373 -    "\ufe2b\073\ufe2b\101\ufe2b\105\ufe2b\106\ufe2b\140\ufe2b\144\ufe2b" +
 81.1374 -    "\147\ufe2b\001\002\000\004\004\u0234\001\002\000\004\124" +
 81.1375 -    "\u0235\001\002\000\074\003\ufe2a\004\ufe2a\010\ufe2a\016\ufe2a" +
 81.1376 -    "\021\ufe2a\022\ufe2a\023\ufe2a\027\ufe2a\030\ufe2a\031\ufe2a\033" +
 81.1377 -    "\ufe2a\034\ufe2a\035\ufe2a\040\ufe2a\041\ufe2a\045\ufe2a\051\ufe2a" +
 81.1378 -    "\053\ufe2a\057\ufe2a\063\ufe2a\065\ufe2a\072\ufe2a\073\ufe2a\101" +
 81.1379 -    "\ufe2a\105\ufe2a\106\ufe2a\140\ufe2a\144\ufe2a\147\ufe2a\001\002" +
 81.1380 -    "\000\074\003\ufdfe\004\ufdfe\010\ufdfe\016\ufdfe\021\ufdfe\022" +
 81.1381 -    "\ufdfe\023\ufdfe\027\ufdfe\030\ufdfe\031\ufdfe\033\ufdfe\034\ufdfe" +
 81.1382 -    "\035\ufdfe\040\ufdfe\041\ufdfe\045\ufdfe\051\ufdfe\053\ufdfe\057" +
 81.1383 -    "\ufdfe\063\ufdfe\065\ufdfe\072\ufdfe\073\ufdfe\101\ufdfe\105\ufdfe" +
 81.1384 -    "\106\ufdfe\140\ufdfe\144\ufdfe\147\ufdfe\001\002\000\006\105" +
 81.1385 -    "\ufebe\113\u0239\001\002\000\004\105\u0248\001\002\000\010" +
 81.1386 -    "\003\u012f\035\u0198\144\126\001\002\000\032\005\213\047" +
 81.1387 -    "\224\050\200\051\227\113\204\116\175\120\217\143\215" +
 81.1388 -    "\144\045\145\176\146\231\147\205\001\002\000\004\114" +
 81.1389 -    "\u023c\001\002\000\006\105\ufebe\113\u0134\001\002\000\004" +
 81.1390 -    "\105\u023e\001\002\000\032\005\213\047\224\050\200\051" +
 81.1391 -    "\227\113\204\116\175\120\217\143\215\144\045\145\176" +
 81.1392 -    "\146\231\147\205\001\002\000\006\043\u0241\124\u0240\001" +
 81.1393 -    "\002\000\014\031\ufe71\032\ufe71\036\ufe71\057\ufe71\061\ufe71" +
 81.1394 -    "\001\002\000\036\003\105\016\uff7b\035\070\036\027\037" +
 81.1395 -    "\030\056\121\057\004\061\021\062\117\075\076\077\060" +
 81.1396 -    "\102\074\104\015\144\126\001\002\000\014\031\ufe72\032" +
 81.1397 -    "\ufe72\036\ufe72\057\ufe72\061\ufe72\001\002\000\004\016\u015c" +
 81.1398 -    "\001\002\000\004\031\u0245\001\002\000\010\124\ufed7\144" +
 81.1399 -    "\045\147\205\001\002\000\004\124\u0247\001\002\000\014" +
 81.1400 -    "\031\ufe70\032\ufe70\036\ufe70\057\ufe70\061\ufe70\001\002\000" +
 81.1401 -    "\032\005\213\047\224\050\200\051\227\113\204\116\175" +
 81.1402 -    "\120\217\143\215\144\045\145\176\146\231\147\205\001" +
 81.1403 -    "\002\000\006\043\u0241\124\u0240\001\002\000\014\031\ufe73" +
 81.1404 -    "\032\ufe73\036\ufe73\057\ufe73\061\ufe73\001\002\000\042\003" +
 81.1405 -    "\ufe36\016\ufe36\031\ufe36\035\ufe36\036\ufe36\037\ufe36\056\ufe36" +
 81.1406 -    "\057\ufe36\060\ufe36\061\ufe36\062\ufe36\075\ufe36\077\ufe36\102" +
 81.1407 -    "\ufe36\104\ufe36\144\ufe36\001\002\000\042\003\uffee\016\uffee" +
 81.1408 -    "\031\uffee\035\uffee\036\uffee\037\uffee\056\uffee\057\uffee\060" +
 81.1409 -    "\uffee\061\uffee\062\uffee\075\uffee\077\uffee\102\uffee\104\uffee" +
 81.1410 -    "\144\uffee\001\002\000\050\002\ufec6\003\ufec6\016\ufec6\031" +
 81.1411 -    "\ufec6\035\ufec6\036\ufec6\037\ufec6\056\ufec6\057\ufec6\060\ufec6" +
 81.1412 -    "\061\ufec6\062\ufec6\074\ufec6\075\ufec6\077\ufec6\102\ufec6\104" +
 81.1413 -    "\ufec6\107\ufec6\144\ufec6\001\002\000\006\144\045\147\205" +
 81.1414 -    "\001\002\000\044\003\105\006\u0252\016\uff7b\035\070\036" +
 81.1415 -    "\027\037\030\047\u0253\056\121\057\004\061\021\062\117" +
 81.1416 -    "\074\u0250\075\076\077\060\102\074\104\015\144\126\001" +
 81.1417 -    "\002\000\004\124\u0256\001\002\000\004\124\ufe0b\001\002" +
 81.1418 -    "\000\004\124\u0255\001\002\000\006\144\045\147\205\001" +
 81.1419 -    "\002\000\012\112\u0122\113\233\121\235\124\ufe09\001\002" +
 81.1420 -    "\000\050\002\ufec4\003\ufec4\016\ufec4\031\ufec4\035\ufec4\036" +
 81.1421 -    "\ufec4\037\ufec4\056\ufec4\057\ufec4\060\ufec4\061\ufec4\062\ufec4" +
 81.1422 -    "\074\ufec4\075\ufec4\077\ufec4\102\ufec4\104\ufec4\107\ufec4\144" +
 81.1423 -    "\ufec4\001\002\000\042\003\ufe37\016\ufe37\031\ufe37\035\ufe37" +
 81.1424 -    "\036\ufe37\037\ufe37\056\ufe37\057\ufe37\060\ufe37\061\ufe37\062" +
 81.1425 -    "\ufe37\075\ufe37\077\ufe37\102\ufe37\104\ufe37\144\ufe37\001\002" +
 81.1426 -    "\000\012\112\u0122\113\233\121\235\124\u0258\001\002\000" +
 81.1427 -    "\050\002\ufe98\003\ufe98\016\ufe98\031\ufe98\035\ufe98\036\ufe98" +
 81.1428 -    "\037\ufe98\056\ufe98\057\ufe98\060\ufe98\061\ufe98\062\ufe98\074" +
 81.1429 -    "\ufe98\075\ufe98\077\ufe98\102\ufe98\104\ufe98\107\ufe98\144\ufe98" +
 81.1430 -    "\001\002\000\004\043\u025a\001\002\000\006\144\045\147" +
 81.1431 -    "\205\001\002\000\004\124\u025c\001\002\000\042\003\uffd2" +
 81.1432 -    "\016\uffd2\031\uffd2\035\uffd2\036\uffd2\037\uffd2\056\uffd2\057" +
 81.1433 -    "\uffd2\060\uffd2\061\uffd2\062\uffd2\075\uffd2\077\uffd2\102\uffd2" +
 81.1434 -    "\104\uffd2\144\uffd2\001\002\000\004\031\ufea6\001\002\000" +
 81.1435 -    "\004\031\u025f\001\002\000\006\124\ufeaa\144\045\001\002" +
 81.1436 -    "\000\006\121\051\124\ufea9\001\002\000\004\124\u0262\001" +
 81.1437 -    "\002\000\050\002\ufea8\003\ufea8\016\ufea8\031\ufea8\035\ufea8" +
 81.1438 -    "\036\ufea8\037\ufea8\056\ufea8\057\ufea8\060\ufea8\061\ufea8\062" +
 81.1439 -    "\ufea8\074\ufea8\075\ufea8\077\ufea8\102\ufea8\104\ufea8\107\ufea8" +
 81.1440 -    "\144\ufea8\001\002\000\010\043\uffdf\113\143\124\uffdf\001" +
 81.1441 -    "\002\000\006\043\u0266\124\uffdc\001\002\000\004\124\u02e2" +
 81.1442 -    "\001\002\000\036\006\u0279\007\u026b\014\u027d\024\u0274\025" +
 81.1443 -    "\u0275\044\uffa0\046\u0267\047\u027a\051\uffa0\060\uffa0\066\335" +
 81.1444 -    "\067\uffa0\076\u026a\113\u026f\001\002\000\032\005\213\047" +
 81.1445 -    "\224\050\200\051\227\113\204\116\175\120\217\143\215" +
 81.1446 -    "\144\045\145\176\146\231\147\205\001\002\000\004\124" +
 81.1447 -    "\uffda\001\002\000\012\044\u02dd\051\ufea4\060\ufea4\067\ufea4" +
 81.1448 -    "\001\002\000\012\044\uff9f\051\uff9f\060\uff9f\067\uff9f\001" +
 81.1449 -    "\002\000\020\012\u02d2\020\u02d0\036\uff7d\061\uff7d\062\u02d3" +
 81.1450 -    "\144\045\147\205\001\002\000\004\124\uffd5\001\002\000" +
 81.1451 -    "\004\124\uffdb\001\002\000\004\124\uffbe\001\002\000\006" +
 81.1452 -    "\143\u02c9\144\u02ca\001\002\000\004\124\uffd6\001\002\000" +
 81.1453 -    "\004\124\uffb9\001\002\000\004\124\uffd9\001\002\000\004" +
 81.1454 -    "\124\uffd3\001\002\000\032\005\213\047\224\050\200\051" +
 81.1455 -    "\227\113\204\116\175\120\217\143\215\144\045\145\176" +
 81.1456 -    "\146\231\147\205\001\002\000\032\005\213\047\224\050" +
 81.1457 -    "\200\051\227\113\204\116\175\120\217\143\215\144\045" +
 81.1458 -    "\145\176\146\231\147\205\001\002\000\004\124\uffd8\001" +
 81.1459 -    "\002\000\004\124\uffb8\001\002\000\004\124\uffd4\001\002" +
 81.1460 -    "\000\006\047\u02bc\076\u02bb\001\002\000\006\144\045\147" +
 81.1461 -    "\205\001\002\000\004\124\uffbc\001\002\000\004\124\uffd7" +
 81.1462 -    "\001\002\000\004\113\u0281\001\002\000\006\124\uffb4\134" +
 81.1463 -    "\uffb4\001\002\000\006\124\uffb3\134\uffb3\001\002\000\004" +
 81.1464 -    "\052\u0293\001\002\000\032\005\213\047\224\050\200\051" +
 81.1465 -    "\227\113\204\116\175\120\217\143\215\144\045\145\176" +
 81.1466 -    "\146\231\147\205\001\002\000\006\114\u028d\117\u028c\001" +
 81.1467 -    "\002\000\006\114\uffad\117\uffad\001\002\000\006\114\u028a" +
 81.1468 -    "\117\u0289\001\002\000\006\114\uffa9\117\uffa9\001\002\000" +
 81.1469 -    "\040\046\uff10\066\u0287\070\uff10\111\uff10\112\313\113\233" +
 81.1470 -    "\114\uffa5\115\uff10\116\uff10\117\uffa5\120\uff10\121\235\122" +
 81.1471 -    "\uff10\132\uff10\133\uff10\001\002\000\034\005\213\047\224" +
 81.1472 -    "\050\200\051\227\113\204\116\175\120\217\142\u0288\143" +
 81.1473 -    "\215\144\045\145\176\146\231\147\205\001\002\000\006" +
 81.1474 -    "\114\uffab\117\uffab\001\002\000\032\005\213\047\224\050" +
 81.1475 -    "\200\051\227\113\204\116\175\120\217\143\215\144\045" +
 81.1476 -    "\145\176\146\231\147\205\001\002\000\004\052\uffaa\001" +
 81.1477 -    "\002\000\006\114\uffa8\117\uffa8\001\002\000\006\144\045" +
 81.1478 -    "\147\205\001\002\000\004\052\u028e\001\002\000\010\011" +
 81.1479 -    "\u0117\144\uffaf\147\uffaf\001\002\000\006\124\uffb2\134\uffb2" +
 81.1480 -    "\001\002\000\012\066\u0292\112\u0122\113\233\121\235\001" +
 81.1481 -    "\002\000\006\114\uffac\117\uffac\001\002\000\004\142\u0288" +
 81.1482 -    "\001\002\000\010\011\u0117\144\uffaf\147\uffaf\001\002\000" +
 81.1483 -    "\006\124\uffb1\134\uffb1\001\002\000\006\107\u0296\124\uffcc" +
 81.1484 -    "\001\002\000\010\051\u0299\060\u029a\067\u0297\001\002\000" +
 81.1485 -    "\014\003\ufffa\021\ufffa\051\ufffa\057\ufffa\144\ufffa\001\002" +
 81.1486 -    "\000\004\124\uffca\001\002\000\004\067\u029b\001\002\000" +
 81.1487 -    "\004\124\uffcb\001\002\000\004\124\uffa1\001\002\000\014" +
 81.1488 -    "\003\u0114\021\u02a0\051\u029d\057\004\144\126\001\002\000" +
 81.1489 -    "\004\124\u02b9\001\002\000\016\003\ufffa\021\ufffa\031\ufffa" +
 81.1490 -    "\057\ufffa\105\ufffa\144\ufffa\001\002\000\004\031\u02b2\001" +
 81.1491 -    "\002\000\004\144\045\001\002\000\016\003\uff9a\021\uff9a" +
 81.1492 -    "\031\uff9a\057\uff9a\105\uff9a\144\uff9a\001\002\000\010\031" +
 81.1493 -    "\ufffa\057\ufffa\105\ufffa\001\002\000\010\031\uff9c\057\004" +
 81.1494 -    "\105\uff9c\001\002\000\004\043\u02a5\001\002\000\006\057" +
 81.1495 -    "\ufffa\105\ufffa\001\002\000\006\057\004\105\u02a8\001\002" +
 81.1496 -    "\000\006\031\uff8c\105\uff8c\001\002\000\034\005\213\047" +
 81.1497 -    "\224\050\200\051\227\054\253\113\204\116\175\120\217" +
 81.1498 -    "\143\215\144\045\145\176\146\231\147\205\001\002\000" +
 81.1499 -    "\006\031\u02ab\105\u02a8\001\002\000\006\031\uff8b\105\uff8b" +
 81.1500 -    "\001\002\000\004\021\u02ac\001\002\000\004\124\u02ad\001" +
 81.1501 -    "\002\000\010\031\uff8d\057\uff8d\105\uff8d\001\002\000\006" +
 81.1502 -    "\130\341\131\u02af\001\002\000\014\003\ufffa\021\ufffa\051" +
 81.1503 -    "\ufffa\057\ufffa\144\ufffa\001\002\000\014\003\u0114\021\u02a0" +
 81.1504 -    "\051\u029d\057\004\144\126\001\002\000\006\031\uff8a\105" +
 81.1505 -    "\uff8a\001\002\000\004\067\u02b3\001\002\000\004\124\uffa2" +
 81.1506 -    "\001\002\000\006\031\uff9d\105\uff9d\001\002\000\016\003" +
 81.1507 -    "\u0114\021\u02a0\031\uff98\057\004\105\uff98\144\126\001\002" +
 81.1508 -    "\000\016\003\uff99\021\uff99\031\uff99\057\uff99\105\uff99\144" +
 81.1509 -    "\uff99\001\002\000\010\031\ufffa\057\ufffa\105\ufffa\001\002" +
 81.1510 -    "\000\010\031\uff97\057\004\105\uff97\001\002\000\010\031" +
 81.1511 -    "\ufffa\057\ufffa\105\ufffa\001\002\000\010\031\uff9b\057\004" +
 81.1512 -    "\105\uff9b\001\002\000\012\044\uff9e\051\uff9e\060\uff9e\067" +
 81.1513 -    "\uff9e\001\002\000\006\144\045\147\205\001\002\000\004" +
 81.1514 -    "\107\u02be\001\002\000\010\051\u0299\060\u02c0\067\u0297\001" +
 81.1515 -    "\002\000\004\124\uffc8\001\002\000\004\124\uffc9\001\002" +
 81.1516 -    "\000\014\013\321\053\324\066\335\110\322\124\uffbb\001" +
 81.1517 -    "\002\000\004\124\uffb7\001\002\000\004\124\uffba\001\002" +
 81.1518 -    "\000\014\013\321\025\u02c6\053\324\066\335\110\322\001" +
 81.1519 -    "\002\000\004\124\uffb6\001\002\000\032\005\213\047\224" +
 81.1520 -    "\050\200\051\227\113\204\116\175\120\217\143\215\144" +
 81.1521 -    "\045\145\176\146\231\147\205\001\002\000\014\013\321" +
 81.1522 -    "\053\324\066\335\110\322\124\uffbb\001\002\000\004\124" +
 81.1523 -    "\uffb5\001\002\000\006\114\uffbf\117\uffbf\001\002\000\006" +
 81.1524 -    "\114\uffc0\117\uffc0\001\002\000\006\114\uffc2\117\uffc2\001" +
 81.1525 -    "\002\000\006\114\u02ce\117\u02cd\001\002\000\006\143\u02c9" +
 81.1526 -    "\144\u02ca\001\002\000\004\124\uffc3\001\002\000\006\114" +
 81.1527 -    "\uffc1\117\uffc1\001\002\000\006\144\045\147\205\001\002" +
 81.1528 -    "\000\006\036\u02d7\061\u02d6\001\002\000\006\144\045\147" +
 81.1529 -    "\205\001\002\000\006\036\uff7c\061\uff7c\001\002\000\004" +
 81.1530 -    "\124\uff82\001\002\000\004\124\uff80\001\002\000\006\113" +
 81.1531 -    "\u0134\124\ufebe\001\002\000\006\063\ufebe\113\u0134\001\002" +
 81.1532 -    "\000\004\063\u02d9\001\002\000\004\144\045\001\002\000" +
 81.1533 -    "\010\112\165\121\166\124\uff7e\001\002\000\004\124\uff7f" +
 81.1534 -    "\001\002\000\004\124\uff81\001\002\000\010\051\ufea3\060" +
 81.1535 -    "\ufea3\067\ufea3\001\002\000\010\051\u0299\060\u02e0\067\u0297" +
 81.1536 -    "\001\002\000\004\124\uffa3\001\002\000\004\124\ufea5\001" +
 81.1537 -    "\002\000\012\013\321\053\324\110\322\124\uffbd\001\002" +
 81.1538 -    "\000\042\003\uffe0\016\uffe0\031\uffe0\035\uffe0\036\uffe0\037" +
 81.1539 -    "\uffe0\056\uffe0\057\uffe0\060\uffe0\061\uffe0\062\uffe0\075\uffe0" +
 81.1540 -    "\077\uffe0\102\uffe0\104\uffe0\144\uffe0\001\002\000\010\104" +
 81.1541 -    "\u02e4\112\165\121\166\001\002\000\036\005\213\015\u02e5" +
 81.1542 -    "\047\224\050\200\051\227\067\u02e7\113\204\116\175\120" +
 81.1543 -    "\217\143\215\144\045\145\176\146\231\147\205\001\002" +
 81.1544 -    "\000\032\005\213\047\224\050\200\051\227\113\204\116" +
 81.1545 -    "\175\120\217\143\215\144\045\145\176\146\231\147\205" +
 81.1546 -    "\001\002\000\012\013\321\053\324\110\322\124\u02f7\001" +
 81.1547 -    "\002\000\010\015\u02e8\031\ufe03\144\ufe03\001\002\000\004" +
 81.1548 -    "\046\u02f4\001\002\000\006\031\ufe01\144\ufe01\001\002\000" +
 81.1549 -    "\006\031\u02eb\144\045\001\002\000\004\067\u02f2\001\002" +
 81.1550 -    "\000\010\015\u02ed\112\165\121\166\001\002\000\032\005" +
 81.1551 -    "\213\047\224\050\200\051\227\113\204\116\175\120\217" +
 81.1552 -    "\143\215\144\045\145\176\146\231\147\205\001\002\000" +
 81.1553 -    "\012\013\321\053\324\066\u02ef\110\322\001\002\000\032" +
 81.1554 -    "\005\213\047\224\050\200\051\227\113\204\116\175\120" +
 81.1555 -    "\217\143\215\144\045\145\176\146\231\147\205\001\002" +
 81.1556 -    "\000\004\124\u02f1\001\002\000\006\031\ufe00\144\ufe00\001" +
 81.1557 -    "\002\000\004\124\u02f3\001\002\000\044\003\ufe04\016\ufe04" +
 81.1558 -    "\031\ufe04\032\ufe04\035\ufe04\036\ufe04\037\ufe04\056\ufe04\057" +
 81.1559 -    "\ufe04\060\ufe04\061\ufe04\062\ufe04\075\ufe04\077\ufe04\102\ufe04" +
 81.1560 -    "\104\ufe04\144\ufe04\001\002\000\032\005\213\047\224\050" +
 81.1561 -    "\200\051\227\113\204\116\175\120\217\143\215\144\045" +
 81.1562 -    "\145\176\146\231\147\205\001\002\000\012\013\321\053" +
 81.1563 -    "\324\110\322\124\u02f6\001\002\000\006\031\ufe02\144\ufe02" +
 81.1564 -    "\001\002\000\044\003\ufe05\016\ufe05\031\ufe05\032\ufe05\035" +
 81.1565 -    "\ufe05\036\ufe05\037\ufe05\056\ufe05\057\ufe05\060\ufe05\061\ufe05" +
 81.1566 -    "\062\ufe05\075\ufe05\077\ufe05\102\ufe05\104\ufe05\144\ufe05\001" +
 81.1567 -    "\002\000\012\013\321\053\324\110\322\124\u02f9\001\002" +
 81.1568 -    "\000\044\003\ufdff\016\ufdff\031\ufdff\032\ufdff\035\ufdff\036" +
 81.1569 -    "\ufdff\037\ufdff\056\ufdff\057\ufdff\060\ufdff\061\ufdff\062\ufdff" +
 81.1570 -    "\075\ufdff\077\ufdff\102\ufdff\104\ufdff\144\ufdff\001\002\000" +
 81.1571 -    "\040\003\uff6c\016\uff6c\031\uff6c\035\uff6c\036\uff6c\037\uff6c" +
 81.1572 -    "\056\uff6c\057\uff6c\061\uff6c\062\uff6c\075\uff6c\077\uff6c\102" +
 81.1573 -    "\uff6c\104\uff6c\144\uff6c\001\002\000\016\011\u02fd\014\uffe9" +
 81.1574 -    "\020\u02fe\033\u02fc\144\uffe9\147\uffe9\001\002\000\006\071" +
 81.1575 -    "\u030d\124\u030c\001\002\000\012\014\uffe8\020\u030b\144\uffe8" +
 81.1576 -    "\147\uffe8\001\002\000\012\014\uffe7\134\u0308\144\uffe7\147" +
 81.1577 -    "\uffe7\001\002\000\010\014\u027d\144\045\147\205\001\002" +
 81.1578 -    "\000\006\124\uffe3\134\164\001\002\000\010\071\u0303\124" +
 81.1579 -    "\uffe5\134\uffe5\001\002\000\006\124\uffe4\134\uffe4\001\002" +
 81.1580 -    "\000\006\144\045\147\205\001\002\000\012\112\u0122\113" +
 81.1581 -    "\233\121\235\124\u0305\001\002\000\042\003\ufe9c\016\ufe9c" +
 81.1582 -    "\031\ufe9c\035\ufe9c\036\ufe9c\037\ufe9c\056\ufe9c\057\ufe9c\060" +
 81.1583 -    "\ufe9c\061\ufe9c\062\ufe9c\075\ufe9c\077\ufe9c\102\ufe9c\104\ufe9c" +
 81.1584 -    "\144\ufe9c\001\002\000\004\124\u0307\001\002\000\042\003" +
 81.1585 -    "\uffec\016\uffec\031\uffec\035\uffec\036\uffec\037\uffec\056\uffec" +
 81.1586 -    "\057\uffec\060\uffec\061\uffec\062\uffec\075\uffec\077\uffec\102" +
 81.1587 -    "\uffec\104\uffec\144\uffec\001\002\000\032\005\213\047\224" +
 81.1588 -    "\050\200\051\227\113\204\116\175\120\217\143\215\144" +
 81.1589 -    "\045\145\176\146\231\147\205\001\002\000\012\013\321" +
 81.1590 -    "\053\324\110\322\124\u030a\001\002\000\042\003\uffe1\016" +
 81.1591 -    "\uffe1\031\uffe1\035\uffe1\036\uffe1\037\uffe1\056\uffe1\057\uffe1" +
 81.1592 -    "\060\uffe1\061\uffe1\062\uffe1\075\uffe1\077\uffe1\102\uffe1\104" +
 81.1593 -    "\uffe1\144\uffe1\001\002\000\010\014\uffe6\144\uffe6\147\uffe6" +
 81.1594 -    "\001\002\000\042\003\ufe35\016\ufe35\031\ufe35\035\ufe35\036" +
 81.1595 -    "\ufe35\037\ufe35\056\ufe35\057\ufe35\060\ufe35\061\ufe35\062\ufe35" +
 81.1596 -    "\075\ufe35\077\ufe35\102\ufe35\104\ufe35\144\ufe35\001\002\000" +
 81.1597 -    "\006\144\045\147\205\001\002\000\012\112\u0122\113\233" +
 81.1598 -    "\121\235\124\u030f\001\002\000\042\003\ufe9b\016\ufe9b\031" +
 81.1599 -    "\ufe9b\035\ufe9b\036\ufe9b\037\ufe9b\056\ufe9b\057\ufe9b\060\ufe9b" +
 81.1600 -    "\061\ufe9b\062\ufe9b\075\ufe9b\077\ufe9b\102\ufe9b\104\ufe9b\144" +
 81.1601 -    "\ufe9b\001\002\000\004\144\045\001\002\000\006\043\u0315" +
 81.1602 -    "\124\ufe92\001\002\000\004\144\045\001\002\000\010\043" +
 81.1603 -    "\uffdf\113\143\124\uffdf\001\002\000\006\043\u0315\124\ufe92" +
 81.1604 -    "\001\002\000\014\031\ufffa\032\ufffa\035\ufffa\057\ufffa\060" +
 81.1605 -    "\ufffa\001\002\000\004\124\ufe93\001\002\000\012\031\ufe6f" +
 81.1606 -    "\032\u010a\035\ufe6f\060\ufe6f\001\002\000\014\031\ufe77\032" +
 81.1607 -    "\ufe77\035\ufe77\057\004\060\ufe77\001\002\000\014\031\ufffa" +
 81.1608 -    "\032\ufffa\035\ufffa\057\ufffa\060\ufffa\001\002\000\010\031" +
 81.1609 -    "\ufe90\035\070\060\u031d\001\002\000\012\031\ufffa\035\ufffa" +
 81.1610 -    "\057\ufffa\060\ufffa\001\002\000\004\031\u0320\001\002\000" +
 81.1611 -    "\012\031\ufffa\032\ufffa\035\ufffa\057\ufffa\001\002\000\010" +
 81.1612 -    "\031\ufe6f\032\u010a\035\ufe6f\001\002\000\006\031\ufe8f\035" +
 81.1613 -    "\070\001\002\000\010\124\ufed7\144\045\147\205\001\002" +
 81.1614 -    "\000\004\124\ufe91\001\002\000\012\031\ufe6e\035\ufe6e\057" +
 81.1615 -    "\004\060\ufe6e\001\002\000\014\031\ufe76\032\ufe76\035\ufe76" +
 81.1616 -    "\057\004\060\ufe76\001\002\000\004\124\ufe94\001\002\000" +
 81.1617 -    "\004\043\u0326\001\002\000\040\003\105\016\uff7b\035\070" +
 81.1618 -    "\036\027\037\030\056\121\057\004\061\021\062\117\074" +
 81.1619 -    "\u0327\075\076\077\060\102\074\104\015\144\126\001\002" +
 81.1620 -    "\000\004\124\u032d\001\002\000\004\016\u015c\001\002\000" +
 81.1621 -    "\004\031\u032a\001\002\000\010\124\ufed7\144\045\147\205" +
 81.1622 -    "\001\002\000\004\124\u032c\001\002\000\050\002\ufe8e\003" +
 81.1623 -    "\ufe8e\016\ufe8e\031\ufe8e\035\ufe8e\036\ufe8e\037\ufe8e\056\ufe8e" +
 81.1624 -    "\057\ufe8e\060\ufe8e\061\ufe8e\062\ufe8e\074\ufe8e\075\ufe8e\077" +
 81.1625 -    "\ufe8e\102\ufe8e\104\ufe8e\107\ufe8e\144\ufe8e\001\002\000\042" +
 81.1626 -    "\003\ufe39\016\ufe39\031\ufe39\035\ufe39\036\ufe39\037\ufe39\056" +
 81.1627 -    "\ufe39\057\ufe39\060\ufe39\061\ufe39\062\ufe39\075\ufe39\077\ufe39" +
 81.1628 -    "\102\ufe39\104\ufe39\144\ufe39\001\002\000\042\003\ufe8d\016" +
 81.1629 -    "\ufe8d\031\ufe8d\035\ufe8d\036\ufe8d\037\ufe8d\056\ufe8d\057\ufe8d" +
 81.1630 -    "\060\ufe8d\061\ufe8d\062\ufe8d\075\ufe8d\077\ufe8d\102\ufe8d\104" +
 81.1631 -    "\ufe8d\144\ufe8d\001\002\000\006\144\045\147\205\001\002" +
 81.1632 -    "\000\042\003\105\031\uff79\035\070\036\027\037\030\047" +
 81.1633 -    "\u0253\056\u0337\057\004\060\uff79\061\021\062\u0336\075\076" +
 81.1634 -    "\077\u0331\102\074\104\015\144\126\001\002\000\010\017" +
 81.1635 -    "\u0346\102\u0312\144\045\001\002\000\004\124\ufe0a\001\002" +
 81.1636 -    "\000\010\043\u0345\071\u024e\124\u024d\001\002\000\006\031" +
 81.1637 -    "\ufeac\060\u0341\001\002\000\040\003\uff77\031\uff77\035\uff77" +
 81.1638 -    "\036\uff77\037\uff77\056\uff77\057\uff77\060\uff77\061\uff77\062" +
 81.1639 -    "\uff77\075\uff77\077\uff77\102\uff77\104\uff77\144\uff77\001\002" +
 81.1640 -    "\000\010\017\u033d\102\137\144\136\001\002\000\006\017" +
 81.1641 -    "\u033a\144\045\001\002\000\040\003\105\031\uff78\035\070" +
 81.1642 -    "\036\027\037\030\056\u0337\057\004\060\uff78\061\021\062" +
 81.1643 -    "\u0336\075\076\077\u0331\102\074\104\015\144\126\001\002" +
 81.1644 -    "\000\040\003\uff76\031\uff76\035\uff76\036\uff76\037\uff76\056" +
 81.1645 -    "\uff76\057\uff76\060\uff76\061\uff76\062\uff76\075\uff76\077\uff76" +
 81.1646 -    "\102\uff76\104\uff76\144\uff76\001\002\000\004\144\045\001" +
 81.1647 -    "\002\000\006\043\u033c\121\051\001\002\000\004\074\133" +
 81.1648 -    "\001\002\000\004\144\045\001\002\000\004\043\u033f\001" +
 81.1649 -    "\002\000\004\074\u014c\001\002\000\004\031\u0343\001\002" +
 81.1650 -    "\000\036\003\105\031\uff79\035\070\036\027\037\030\056" +
 81.1651 -    "\u0337\057\004\061\021\062\u0336\075\076\077\u0331\102\074" +
 81.1652 -    "\104\015\144\126\001\002\000\004\031\ufeab\001\002\000" +
 81.1653 -    "\006\124\ufeaa\144\045\001\002\000\004\124\ufead\001\002" +
 81.1654 -    "\000\010\006\u0252\047\u0253\074\u0250\001\002\000\004\144" +
 81.1655 -    "\045\001\002\000\004\043\u0348\001\002\000\004\074\u0327" +
 81.1656 -    "\001\002\000\012\112\u0122\113\233\121\235\124\u034a\001" +
 81.1657 -    "\002\000\050\002\ufe99\003\ufe99\016\ufe99\031\ufe99\035\ufe99" +
 81.1658 -    "\036\ufe99\037\ufe99\056\ufe99\057\ufe99\060\ufe99\061\ufe99\062" +
 81.1659 -    "\ufe99\074\ufe99\075\ufe99\077\ufe99\102\ufe99\104\ufe99\107\ufe99" +
 81.1660 -    "\144\ufe99\001\002\000\042\003\105\006\u0252\016\uff7b\035" +
 81.1661 -    "\070\036\027\037\030\047\u0253\056\121\057\004\061\021" +
 81.1662 -    "\062\117\075\076\077\060\102\074\104\015\144\126\001" +
 81.1663 -    "\002\000\026\002\ufe4a\036\ufe4a\037\ufe4a\056\ufe4a\057\004" +
 81.1664 -    "\060\ufe4a\061\ufe4a\074\ufe4a\104\ufe4a\107\ufe4a\001\002\000" +
 81.1665 -    "\014\043\ufec1\063\ufebe\071\ufec1\113\u0134\124\ufec1\001\002" +
 81.1666 -    "\000\004\063\u034f\001\002\000\006\144\045\147\205\001" +
 81.1667 -    "\002\000\016\043\ufec2\071\ufec2\112\u0122\113\233\121\235" +
 81.1668 -    "\124\ufec2\001\002\000\050\002\ufeae\003\ufeae\016\ufeae\031" +
 81.1669 -    "\ufeae\035\ufeae\036\ufeae\037\ufeae\056\ufeae\057\ufeae\060\ufeae" +
 81.1670 -    "\061\ufeae\062\ufeae\074\ufeae\075\ufeae\077\ufeae\102\ufeae\104" +
 81.1671 -    "\ufeae\107\ufeae\144\ufeae\001\002\000\050\002\ufec5\003\ufec5" +
 81.1672 -    "\016\ufec5\031\ufec5\035\ufec5\036\ufec5\037\ufec5\056\ufec5\057" +
 81.1673 -    "\ufec5\060\ufec5\061\ufec5\062\ufec5\074\ufec5\075\ufec5\077\ufec5" +
 81.1674 -    "\102\ufec5\104\ufec5\107\ufec5\144\ufec5\001\002\000\004\144" +
 81.1675 -    "\045\001\002\000\006\114\u0355\121\051\001\002\000\014" +
 81.1676 -    "\036\027\056\u0358\061\021\062\u035b\077\u0356\001\002\000" +
 81.1677 -    "\004\017\u0362\001\002\000\026\002\uff65\036\uff65\037\uff65" +
 81.1678 -    "\056\uff65\057\uff65\060\uff65\061\uff65\074\uff65\104\uff65\107" +
 81.1679 -    "\uff65\001\002\000\004\017\044\001\002\000\026\002\uff63" +
 81.1680 -    "\036\uff63\037\uff63\056\uff63\057\uff63\060\uff63\061\uff63\074" +
 81.1681 -    "\uff63\104\uff63\107\uff63\001\002\000\026\002\uff62\036\uff62" +
 81.1682 -    "\037\uff62\056\uff62\057\uff62\060\uff62\061\uff62\074\uff62\104" +
 81.1683 -    "\uff62\107\uff62\001\002\000\004\017\u035f\001\002\000\026" +
 81.1684 -    "\002\ufe3a\036\ufe3a\037\ufe3a\056\ufe3a\057\ufe3a\060\ufe3a\061" +
 81.1685 -    "\ufe3a\074\ufe3a\104\ufe3a\107\ufe3a\001\002\000\026\002\uff64" +
 81.1686 -    "\036\uff64\037\uff64\056\uff64\057\uff64\060\uff64\061\uff64\074" +
 81.1687 -    "\uff64\104\uff64\107\uff64\001\002\000\004\043\u015a\001\002" +
 81.1688 -    "\000\004\144\045\001\002\000\004\043\u0361\001\002\000" +
 81.1689 -    "\014\031\ufffa\032\ufffa\036\ufffa\057\ufffa\061\ufffa\001\002" +
 81.1690 -    "\000\004\144\045\001\002\000\004\043\u0364\001\002\000" +
 81.1691 -    "\036\003\105\016\uff7b\035\070\036\027\037\030\056\121" +
 81.1692 -    "\057\004\061\021\062\117\075\076\077\060\102\074\104" +
 81.1693 -    "\015\144\126\001\002\000\014\043\ufebe\071\ufebe\113\u0134" +
 81.1694 -    "\121\051\124\ufebe\001\002\000\010\043\ufec3\071\ufec3\124" +
 81.1695 -    "\ufec3\001\002\000\022\003\ufe1f\036\ufe1f\056\ufe1f\061\ufe1f" +
 81.1696 -    "\102\ufe1f\104\ufe1f\107\ufe1f\144\ufe1f\001\002\000\022\003" +
 81.1697 -    "\ufe26\036\ufe26\056\ufe26\061\ufe26\102\ufe26\104\ufe26\107\ufe26" +
 81.1698 -    "\144\ufe26\001\002\000\004\144\045\001\002\000\004\124" +
 81.1699 -    "\u03b2\001\002\000\004\144\045\001\002\000\004\124\u038c" +
 81.1700 -    "\001\002\000\010\036\u0375\056\u0374\061\u0373\001\002\000" +
 81.1701 -    "\006\071\u0370\124\u036f\001\002\000\050\002\ufe29\003\ufe29" +
 81.1702 -    "\016\ufe29\031\ufe29\035\ufe29\036\ufe29\037\ufe29\056\ufe29\057" +
 81.1703 -    "\ufe29\060\ufe29\061\ufe29\062\ufe29\074\ufe29\075\ufe29\077\ufe29" +
 81.1704 -    "\102\ufe29\104\ufe29\107\ufe29\144\ufe29\001\002\000\006\144" +
 81.1705 -    "\045\147\205\001\002\000\012\112\u0122\113\233\121\235" +
 81.1706 -    "\124\u0372\001\002\000\050\002\ufe96\003\ufe96\016\ufe96\031" +
 81.1707 -    "\ufe96\035\ufe96\036\ufe96\037\ufe96\056\ufe96\057\ufe96\060\ufe96" +
 81.1708 -    "\061\ufe96\062\ufe96\074\ufe96\075\ufe96\077\ufe96\102\ufe96\104" +
 81.1709 -    "\ufe96\107\ufe96\144\ufe96\001\002\000\004\144\045\001\002" +
 81.1710 -    "\000\004\144\045\001\002\000\006\144\045\147\205\001" +
 81.1711 -    "\002\000\006\063\ufebe\113\u0134\001\002\000\004\063\u0378" +
 81.1712 -    "\001\002\000\006\144\045\147\205\001\002\000\014\043" +
 81.1713 -    "\u037a\112\u0122\113\233\121\235\124\ufe1b\001\002\000\010" +
 81.1714 -    "\142\u037d\144\045\147\205\001\002\000\004\124\u037c\001" +
 81.1715 -    "\002\000\022\003\ufe22\036\ufe22\056\ufe22\061\ufe22\102\ufe22" +
 81.1716 -    "\104\ufe22\107\ufe22\144\ufe22\001\002\000\004\124\ufe19\001" +
 81.1717 -    "\002\000\012\112\u0122\113\233\121\235\124\ufe1a\001\002" +
 81.1718 -    "\000\004\043\u0380\001\002\000\004\047\u0381\001\002\000" +
 81.1719 -    "\006\144\045\147\205\001\002\000\012\112\u0122\113\u0384" +
 81.1720 -    "\121\235\124\u0383\001\002\000\022\003\ufe20\036\ufe20\056" +
 81.1721 -    "\ufe20\061\ufe20\102\ufe20\104\ufe20\107\ufe20\144\ufe20\001\002" +
 81.1722 -    "\000\040\003\251\005\213\047\224\050\200\051\227\054" +
 81.1723 -    "\253\113\204\116\175\120\217\142\u0385\143\215\144\045" +
 81.1724 -    "\145\176\146\231\147\205\001\002\000\004\114\u0386\001" +
 81.1725 -    "\002\000\004\124\u0387\001\002\000\022\003\ufe21\036\ufe21" +
 81.1726 -    "\056\ufe21\061\ufe21\102\ufe21\104\ufe21\107\ufe21\144\ufe21\001" +
 81.1727 -    "\002\000\010\043\ufebe\113\u0134\124\ufebe\001\002\000\006" +
 81.1728 -    "\043\u037a\124\ufe1b\001\002\000\004\124\u038b\001\002\000" +
 81.1729 -    "\022\003\ufe23\036\ufe23\056\ufe23\061\ufe23\102\ufe23\104\ufe23" +
 81.1730 -    "\107\ufe23\144\ufe23\001\002\000\050\002\ufe28\003\ufe28\016" +
 81.1731 -    "\ufe28\031\ufe28\035\ufe28\036\ufe28\037\ufe28\056\ufe28\057\ufe28" +
 81.1732 -    "\060\ufe28\061\ufe28\062\ufe28\074\ufe28\075\ufe28\077\ufe28\102" +
 81.1733 -    "\ufe28\104\ufe28\107\ufe28\144\ufe28\001\002\000\006\043\ufe1e" +
 81.1734 -    "\113\u038f\001\002\000\004\043\ufe1d\001\002\000\010\003" +
 81.1735 -    "\145\142\u03b0\144\126\001\002\000\004\043\u0391\001\002" +
 81.1736 -    "\000\032\006\u039c\007\u026b\014\u027d\024\u0399\025\u039a\044" +
 81.1737 -    "\uffa0\046\u0392\047\u039d\060\uffa0\066\u0393\076\u026a\113\u0397" +
 81.1738 -    "\001\002\000\004\142\u03af\001\002\000\004\142\u03ae\001" +
 81.1739 -    "\002\000\006\044\u02dd\060\ufea4\001\002\000\004\124\u03ac" +
 81.1740 -    "\001\002\000\004\124\ufe11\001\002\000\004\142\u03aa\001" +
 81.1741 -    "\002\000\004\124\ufe10\001\002\000\004\142\u03a7\001\002" +
 81.1742 -    "\000\004\142\u03a6\001\002\000\004\124\ufe0f\001\002\000" +
 81.1743 -    "\006\047\u03a2\076\u02bb\001\002\000\006\144\045\147\205" +
 81.1744 -    "\001\002\000\004\124\ufe12\001\002\000\006\107\u03a0\124" +
 81.1745 -    "\ufe0e\001\002\000\004\060\u03a1\001\002\000\004\124\ufe0d" +
 81.1746 -    "\001\002\000\006\144\045\147\205\001\002\000\004\107" +
 81.1747 -    "\u03a4\001\002\000\004\060\u03a5\001\002\000\004\124\ufe0c" +
 81.1748 -    "\001\002\000\004\124\ufe13\001\002\000\006\025\u03a8\124" +
 81.1749 -    "\ufe15\001\002\000\004\142\u03a9\001\002\000\004\124\ufe14" +
 81.1750 -    "\001\002\000\004\114\u03ab\001\002\000\004\124\ufe18\001" +
 81.1751 -    "\002\000\022\003\ufe24\036\ufe24\056\ufe24\061\ufe24\102\ufe24" +
 81.1752 -    "\104\ufe24\107\ufe24\144\ufe24\001\002\000\004\060\u02e0\001" +
 81.1753 -    "\002\000\004\124\ufe17\001\002\000\004\124\ufe16\001\002" +
 81.1754 -    "\000\004\114\u03b1\001\002\000\004\043\ufe1c\001\002\000" +
 81.1755 -    "\022\003\ufe25\036\ufe25\056\ufe25\061\ufe25\102\ufe25\104\ufe25" +
 81.1756 -    "\107\ufe25\144\ufe25\001\002\000\010\043\u03b5\071\u03b4\121" +
 81.1757 -    "\051\001\002\000\006\144\045\147\205\001\002\000\040" +
 81.1758 -    "\003\105\031\uff79\035\070\036\027\037\030\056\u0337\057" +
 81.1759 -    "\004\060\uff79\061\021\062\u0336\075\076\077\u0331\102\074" +
 81.1760 -    "\104\015\144\126\001\002\000\012\112\u0122\113\233\121" +
 81.1761 -    "\235\124\u03b7\001\002\000\050\002\ufe97\003\ufe97\016\ufe97" +
 81.1762 -    "\031\ufe97\035\ufe97\036\ufe97\037\ufe97\056\ufe97\057\ufe97\060" +
 81.1763 -    "\ufe97\061\ufe97\062\ufe97\074\ufe97\075\ufe97\077\ufe97\102\ufe97" +
 81.1764 -    "\104\ufe97\107\ufe97\144\ufe97\001\002\000\014\112\u0122\113" +
 81.1765 -    "\233\117\ufea0\121\235\124\ufea0\001\002\000\006\117\u03c0" +
 81.1766 -    "\124\u03c1\001\002\000\006\144\045\147\205\001\002\000" +
 81.1767 -    "\014\112\u0122\113\233\117\ufe9e\121\235\124\ufe9e\001\002" +
 81.1768 -    "\000\006\117\u03bd\124\u03be\001\002\000\006\144\045\147" +
 81.1769 -    "\205\001\002\000\046\003\ufea1\016\ufea1\031\ufea1\035\ufea1" +
 81.1770 -    "\036\ufea1\037\ufea1\056\ufea1\057\ufea1\060\ufea1\061\ufea1\062" +
 81.1771 -    "\ufea1\074\ufea1\075\ufea1\077\ufea1\102\ufea1\104\ufea1\107\ufea1" +
 81.1772 -    "\144\ufea1\001\002\000\014\112\u0122\113\233\117\ufe9d\121" +
 81.1773 -    "\235\124\ufe9d\001\002\000\006\144\045\147\205\001\002" +
 81.1774 -    "\000\046\003\ufea2\016\ufea2\031\ufea2\035\ufea2\036\ufea2\037" +
 81.1775 -    "\ufea2\056\ufea2\057\ufea2\060\ufea2\061\ufea2\062\ufea2\074\ufea2" +
 81.1776 -    "\075\ufea2\077\ufea2\102\ufea2\104\ufea2\107\ufea2\144\ufea2\001" +
 81.1777 -    "\002\000\014\112\u0122\113\233\117\ufe9f\121\235\124\ufe9f" +
 81.1778 -    "\001\002\000\010\117\uff56\121\051\124\uff56\001\002\000" +
 81.1779 -    "\006\117\u03c5\124\u03c6\001\002\000\004\144\045\001\002" +
 81.1780 -    "\000\024\036\ufe3b\037\ufe3b\056\ufe3b\057\ufe3b\060\ufe3b\061" +
 81.1781 -    "\ufe3b\074\ufe3b\104\ufe3b\107\ufe3b\001\002\000\010\117\uff55" +
 81.1782 -    "\121\051\124\uff55\001\002\000\024\036\ufe3c\037\ufe3c\056" +
 81.1783 -    "\ufe3c\057\ufe3c\060\ufe3c\061\ufe3c\074\ufe3c\104\ufe3c\107\ufe3c" +
 81.1784 -    "\001\002\000\024\036\ufe3e\037\ufe3e\056\ufe3e\057\ufe3e\060" +
 81.1785 -    "\ufe3e\061\ufe3e\074\ufe3e\104\ufe3e\107\ufe3e\001\002\000\024" +
 81.1786 -    "\036\ufe3d\037\ufe3d\056\ufe3d\057\ufe3d\060\ufe3d\061\ufe3d\074" +
 81.1787 -    "\ufe3d\104\ufe3d\107\ufe3d\001\002\000\014\036\027\037\030" +
 81.1788 -    "\056\036\061\021\074\022\001\002\000\026\002\ufffa\036" +
 81.1789 -    "\ufffa\037\ufffa\056\ufffa\057\ufffa\060\ufffa\061\ufffa\074\ufffa" +
 81.1790 -    "\104\ufffa\107\ufffa\001\002\000\026\002\ufe4b\036\ufe4b\037" +
 81.1791 -    "\ufe4b\056\ufe4b\057\004\060\ufe4b\061\ufe4b\074\ufe4b\104\ufe4b" +
 81.1792 -    "\107\ufe4b\001\002\000\026\002\ufe4c\036\ufe4c\037\ufe4c\056" +
 81.1793 -    "\ufe4c\057\004\060\ufe4c\061\ufe4c\074\ufe4c\104\ufe4c\107\ufe4c" +
 81.1794 -    "\001\002\000\004\002\001\001\002\000\006\113\uff59\124" +
 81.1795 -    "\u03dd\001\002\000\004\113\u03d2\001\002\000\032\005\213" +
 81.1796 -    "\047\224\050\200\051\227\113\204\116\175\120\217\143" +
 81.1797 -    "\215\144\045\145\176\146\231\147\205\001\002\000\006" +
 81.1798 -    "\114\ufffe\117\ufffe\001\002\000\006\114\u03da\117\u03d9\001" +
 81.1799 -    "\002\000\064\013\uff61\042\uff61\046\uff61\050\uff61\053\uff61" +
 81.1800 -    "\070\uff61\110\uff61\111\uff61\112\uff61\113\uff61\114\uff61\115" +
 81.1801 -    "\uff61\116\uff61\117\uff61\120\uff61\121\uff61\122\uff61\125\uff61" +
 81.1802 -    "\126\uff61\127\uff61\131\u03d7\133\uff61\135\uff61\136\uff61\137" +
 81.1803 -    "\uff61\001\002\000\014\013\321\053\324\110\322\114\ufffc" +
 81.1804 -    "\117\ufffc\001\002\000\032\005\213\047\224\050\200\051" +
 81.1805 -    "\227\113\204\116\175\120\217\143\215\144\045\145\176" +
 81.1806 -    "\146\231\147\205\001\002\000\014\013\321\053\324\110" +
 81.1807 -    "\322\114\ufffb\117\ufffb\001\002\000\032\005\213\047\224" +
 81.1808 -    "\050\200\051\227\113\204\116\175\120\217\143\215\144" +
 81.1809 -    "\045\145\176\146\231\147\205\001\002\000\004\124\u03db" +
 81.1810 -    "\001\002\000\130\002\uffff\003\uffff\004\uffff\010\uffff\016" +
 81.1811 -    "\uffff\021\uffff\022\uffff\023\uffff\027\uffff\030\uffff\031\uffff" +
 81.1812 -    "\032\uffff\033\uffff\034\uffff\035\uffff\036\uffff\037\uffff\040" +
 81.1813 -    "\uffff\041\uffff\045\uffff\051\uffff\053\uffff\056\uffff\057\uffff" +
 81.1814 -    "\060\uffff\061\uffff\062\uffff\063\uffff\065\uffff\072\uffff\073" +
 81.1815 -    "\uffff\074\uffff\075\uffff\077\uffff\101\uffff\102\uffff\104\uffff" +
 81.1816 -    "\105\uffff\106\uffff\107\uffff\140\uffff\144\uffff\147\uffff\001" +
 81.1817 -    "\002\000\006\114\ufffd\117\ufffd\001\002\000\130\002\000" +
 81.1818 -    "\003\000\004\000\010\000\016\000\021\000\022\000\023" +
 81.1819 -    "\000\027\000\030\000\031\000\032\000\033\000\034\000" +
 81.1820 -    "\035\000\036\000\037\000\040\000\041\000\045\000\051" +
 81.1821 -    "\000\053\000\056\000\057\000\060\000\061\000\062\000" +
 81.1822 -    "\063\000\065\000\072\000\073\000\074\000\075\000\077" +
 81.1823 -    "\000\101\000\102\000\104\000\105\000\106\000\107\000" +
 81.1824 -    "\140\000\144\000\147\000\001\002" });
 81.1825 -
 81.1826 -  /** Access to parse-action table. */
 81.1827 -  public short[][] action_table() {return _action_table;}
 81.1828 -
 81.1829 -  /** <code>reduce_goto</code> table. */
 81.1830 -  protected static final short[][] _reduce_table = 
 81.1831 -    unpackFromStrings(new String[] {
 81.1832 -    "\000\u03db\000\010\125\004\126\006\170\005\001\001\000" +
 81.1833 -    "\004\027\u03d0\001\001\000\002\001\001\000\004\173\u03cd" +
 81.1834 -    "\001\001\000\014\114\011\127\013\131\007\132\010\332" +
 81.1835 -    "\015\001\001\000\012\114\u03c9\132\u03c8\170\u03c7\332\u03ca" +
 81.1836 -    "\001\001\000\002\001\001\000\002\001\001\000\010\027" +
 81.1837 -    "\045\133\u03c3\140\u03c2\001\001\000\002\001\001\000\020" +
 81.1838 -    "\026\u03b7\027\202\030\224\103\221\115\u03b8\163\205\164" +
 81.1839 -    "\176\001\001\000\034\005\025\072\034\073\023\074\037" +
 81.1840 -    "\105\030\106\036\107\022\120\032\130\033\136\031\151" +
 81.1841 -    "\040\272\024\274\017\001\001\000\002\001\001\000\020" +
 81.1842 -    "\006\102\023\u012b\072\u036d\100\u0369\106\u036b\114\u0366\336" +
 81.1843 -    "\u0367\001\001\000\006\027\045\140\u0364\001\001\000\002" +
 81.1844 -    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
 81.1845 -    "\001\000\002\001\001\000\012\027\045\102\u034c\103\u0146" +
 81.1846 -    "\140\u0145\001\001\000\002\001\001\000\002\001\001\000" +
 81.1847 -    "\002\001\001\000\002\001\001\000\004\173\u034b\001\001" +
 81.1848 -    "\000\002\001\001\000\006\027\045\140\042\001\001\000" +
 81.1849 -    "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
 81.1850 -    "\001\001\000\002\001\001\000\006\027\045\140\046\001" +
 81.1851 -    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
 81.1852 -    "\000\122\002\124\003\062\004\054\005\101\006\102\011" +
 81.1853 -    "\105\012\074\013\066\016\052\020\123\022\060\023\061" +
 81.1854 -    "\025\117\072\076\073\023\074\072\105\070\106\036\107" +
 81.1855 -    "\071\110\103\114\107\117\115\120\077\121\106\134\113" +
 81.1856 -    "\136\064\144\065\170\122\174\100\175\111\176\056\250" +
 81.1857 -    "\063\251\110\272\024\274\017\275\121\302\053\344\112" +
 81.1858 -    "\345\114\346\055\001\001\000\004\027\051\001\001\000" +
 81.1859 -    "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
 81.1860 -    "\001\001\000\002\001\001\000\002\001\001\000\004\027" +
 81.1861 -    "\u0310\001\001\000\002\001\001\000\002\001\001\000\002" +
 81.1862 -    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
 81.1863 -    "\001\000\116\002\124\003\062\004\054\005\101\006\102" +
 81.1864 -    "\011\105\016\052\020\123\022\060\023\061\025\117\072" +
 81.1865 -    "\076\073\023\074\072\105\070\106\036\107\071\110\103" +
 81.1866 -    "\114\107\117\115\120\077\121\106\134\113\136\064\144" +
 81.1867 -    "\065\170\122\174\100\175\111\176\056\250\063\251\u02f9" +
 81.1868 -    "\272\024\274\017\275\121\302\053\344\112\345\114\346" +
 81.1869 -    "\055\001\001\000\006\027\160\146\u02e2\001\001\000\002" +
 81.1870 -    "\001\001\000\002\001\001\000\002\001\001\000\004\006" +
 81.1871 -    "\u0262\001\001\000\006\066\u025c\273\u025d\001\001\000\004" +
 81.1872 -    "\006\u0258\001\001\000\002\001\001\000\002\001\001\000" +
 81.1873 -    "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
 81.1874 -    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
 81.1875 -    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
 81.1876 -    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
 81.1877 -    "\002\001\001\000\002\001\001\000\002\001\001\000\006" +
 81.1878 -    "\027\045\140\042\001\001\000\002\001\001\000\002\001" +
 81.1879 -    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
 81.1880 -    "\000\002\001\001\000\006\027\045\140\130\001\001\000" +
 81.1881 -    "\002\001\001\000\122\002\124\003\062\004\054\005\101" +
 81.1882 -    "\006\102\011\105\012\074\013\066\016\052\020\123\022" +
 81.1883 -    "\060\023\061\025\117\072\076\073\023\074\072\105\070" +
 81.1884 -    "\106\036\107\071\110\103\114\107\117\115\120\077\121" +
 81.1885 -    "\106\134\113\136\064\144\065\170\122\174\100\175\111" +
 81.1886 -    "\176\056\250\063\251\110\272\024\274\017\275\121\302" +
 81.1887 -    "\053\344\112\345\114\346\055\001\001\000\002\001\001" +
 81.1888 -    "\000\002\001\001\000\004\027\u0149\001\001\000\004\303" +
 81.1889 -    "\u0148\001\001\000\004\027\137\001\001\000\006\177\141" +
 81.1890 -    "\200\140\001\001\000\002\001\001\000\004\303\u0102\001" +
 81.1891 -    "\001\000\012\006\102\023\143\240\146\241\147\001\001" +
 81.1892 -    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
 81.1893 -    "\002\001\001\000\002\001\001\000\010\006\102\023\143" +
 81.1894 -    "\241\152\001\001\000\002\001\001\000\002\001\001\000" +
 81.1895 -    "\002\001\001\000\004\006\u0101\001\001\000\004\242\156" +
 81.1896 -    "\001\001\000\006\027\160\146\161\001\001\000\002\001" +
 81.1897 -    "\001\000\002\001\001\000\004\143\162\001\001\000\002" +
 81.1898 -    "\001\001\000\050\026\231\027\202\030\224\031\206\032" +
 81.1899 -    "\201\033\213\034\211\035\210\036\217\042\222\044\225" +
 81.1900 -    "\103\221\154\220\155\215\160\227\163\205\164\176\255" +
 81.1901 -    "\207\261\200\001\001\000\004\252\167\001\001\000\004" +
 81.1902 -    "\027\166\001\001\000\002\001\001\000\002\001\001\000" +
 81.1903 -    "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
 81.1904 -    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
 81.1905 -    "\001\000\034\026\231\027\202\030\224\036\u0100\044\225" +
 81.1906 -    "\103\221\154\220\155\215\160\227\163\205\164\176\255" +
 81.1907 -    "\207\261\200\001\001\000\002\001\001\000\002\001\001" +
 81.1908 -    "\000\002\001\001\000\066\026\246\027\202\030\224\031" +
 81.1909 -    "\355\032\201\033\256\034\211\035\210\036\217\042\222" +
 81.1910 -    "\044\225\103\221\154\220\155\215\160\227\161\245\163" +
 81.1911 -    "\205\164\176\167\244\245\251\246\243\253\360\254\357" +
 81.1912 -    "\255\207\256\354\261\200\001\001\000\002\001\001\000" +
 81.1913 -    "\002\001\001\000\006\037\322\257\316\001\001\000\002" +
 81.1914 -    "\001\001\000\002\001\001\000\004\043\303\001\001\000" +
 81.1915 -    "\034\026\231\027\202\030\224\036\353\044\225\103\221" +
 81.1916 -    "\154\220\155\215\160\227\163\205\164\176\255\207\261" +
 81.1917 -    "\200\001\001\000\010\040\262\041\267\260\264\001\001" +
 81.1918 -    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
 81.1919 -    "\002\001\001\000\002\001\001\000\002\001\001\000\040" +
 81.1920 -    "\026\231\027\202\030\224\034\350\035\210\036\217\044" +
 81.1921 -    "\225\103\221\154\220\155\215\160\227\163\205\164\176" +
 81.1922 -    "\255\207\261\200\001\001\000\020\026\346\027\202\030" +
 81.1923 -    "\224\044\347\103\221\163\205\164\176\001\001\000\002" +
 81.1924 -    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
 81.1925 -    "\001\000\002\001\001\000\002\001\001\000\066\026\246" +
 81.1926 -    "\027\202\030\224\031\247\032\201\033\256\034\211\035" +
 81.1927 -    "\210\036\217\042\222\044\225\103\221\154\220\155\215" +
 81.1928 -    "\160\227\161\245\163\205\164\176\165\255\167\244\245" +
 81.1929 -    "\251\246\243\253\254\254\253\255\207\261\200\001\001" +
 81.1930 -    "\000\010\155\242\252\241\255\207\001\001\000\010\027" +
 81.1931 -    "\237\103\236\160\240\001\001\000\002\001\001\000\002" +
 81.1932 -    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
 81.1933 -    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
 81.1934 -    "\000\002\001\001\000\004\211\335\001\001\000\006\037" +
 81.1935 -    "\322\257\316\001\001\000\002\001\001\000\002\001\001" +
 81.1936 -    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
 81.1937 -    "\002\001\001\000\010\040\262\041\267\260\264\001\001" +
 81.1938 -    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
 81.1939 -    "\044\026\231\027\202\030\224\033\330\034\211\035\210" +
 81.1940 -    "\036\217\042\222\044\225\103\221\154\220\155\215\160" +
 81.1941 -    "\227\163\205\164\176\255\207\261\200\001\001\000\002" +
 81.1942 -    "\001\001\000\046\026\311\027\202\030\224\033\310\034" +
 81.1943 -    "\211\035\210\036\217\042\222\044\225\103\221\154\220" +
 81.1944 -    "\155\215\160\227\163\205\164\176\167\307\255\207\261" +
 81.1945 -    "\200\001\001\000\002\001\001\000\002\001\001\000\040" +
 81.1946 -    "\026\231\027\202\030\224\034\300\035\210\036\217\044" +
 81.1947 -    "\225\103\221\154\220\155\215\160\227\163\205\164\176" +
 81.1948 -    "\255\207\261\200\001\001\000\002\001\001\000\044\026" +
 81.1949 -    "\231\027\202\030\224\033\277\034\211\035\210\036\217" +
 81.1950 -    "\042\222\044\225\103\221\154\220\155\215\160\227\163" +
 81.1951 -    "\205\164\176\255\207\261\200\001\001\000\002\001\001" +
 81.1952 -    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
 81.1953 -    "\002\001\001\000\004\041\267\001\001\000\004\043\303" +
 81.1954 -    "\001\001\000\002\001\001\000\002\001\001\000\036\026" +
 81.1955 -    "\231\027\202\030\224\035\306\036\217\044\225\103\221" +
 81.1956 -    "\154\220\155\215\160\227\163\205\164\176\255\207\261" +
 81.1957 -    "\200\001\001\000\002\001\001\000\002\001\001\000\002" +
 81.1958 -    "\001\001\000\002\001\001\000\004\041\267\001\001\000" +
 81.1959 -    "\002\001\001\000\010\155\242\252\241\255\207\001\001" +
 81.1960 -    "\000\002\001\001\000\050\026\231\027\202\030\224\031" +
 81.1961 -    "\315\032\201\033\213\034\211\035\210\036\217\042\222" +
 81.1962 -    "\044\225\103\221\154\220\155\215\160\227\163\205\164" +
 81.1963 -    "\176\255\207\261\200\001\001\000\006\037\322\257\316" +
 81.1964 -    "\001\001\000\046\026\231\027\202\030\224\032\327\033" +
 81.1965 -    "\213\034\211\035\210\036\217\042\222\044\225\103\221" +
 81.1966 -    "\154\220\155\215\160\227\163\205\164\176\255\207\261" +
 81.1967 -    "\200\001\001\000\002\001\001\000\002\001\001\000\002" +
 81.1968 -    "\001\001\000\046\026\231\027\202\030\224\032\325\033" +
 81.1969 -    "\213\034\211\035\210\036\217\042\222\044\225\103\221" +
 81.1970 -    "\154\220\155\215\160\227\163\205\164\176\255\207\261" +
 81.1971 -    "\200\001\001\000\002\001\001\000\002\001\001\000\002" +
 81.1972 -    "\001\001\000\002\001\001\000\002\001\001\000\004\041" +
 81.1973 -    "\267\001\001\000\064\026\246\027\202\030\224\031\247" +
 81.1974 -    "\032\201\033\256\034\211\035\210\036\217\042\222\044" +
 81.1975 -    "\225\103\221\154\220\155\215\160\227\161\245\163\205" +
 81.1976 -    "\164\176\167\244\245\251\246\243\253\333\254\253\255" +
 81.1977 -    "\207\261\200\001\001\000\002\001\001\000\002\001\001" +
 81.1978 -    "\000\046\026\337\027\202\030\224\033\310\034\211\035" +
 81.1979 -    "\210\036\217\042\222\044\225\103\221\154\220\155\215" +
 81.1980 -    "\160\227\163\205\164\176\167\336\255\207\261\200\001" +
 81.1981 -    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
 81.1982 -    "\000\056\026\246\027\202\030\224\031\345\032\201\033" +
 81.1983 -    "\256\034\211\035\210\036\217\042\222\044\225\103\221" +
 81.1984 -    "\154\220\155\215\160\227\163\205\164\176\167\244\245" +
 81.1985 -    "\344\246\343\255\207\261\200\001\001\000\050\026\231" +
 81.1986 -    "\027\202\030\224\031\342\032\201\033\213\034\211\035" +
 81.1987 -    "\210\036\217\042\222\044\225\103\221\154\220\155\215" +
 81.1988 -    "\160\227\163\205\164\176\255\207\261\200\001\001\000" +
 81.1989 -    "\006\037\322\257\316\001\001\000\002\001\001\000\002" +
 81.1990 -    "\001\001\000\006\037\322\257\316\001\001\000\002\001" +
 81.1991 -    "\001\000\002\001\001\000\004\043\303\001\001\000\034" +
 81.1992 -    "\026\231\027\202\030\224\036\352\044\225\103\221\154" +
 81.1993 -    "\220\155\215\160\227\163\205\164\176\255\207\261\200" +
 81.1994 -    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
 81.1995 -    "\001\000\006\037\322\257\316\001\001\000\002\001\001" +
 81.1996 -    "\000\002\001\001\000\002\001\001\000\064\026\246\027" +
 81.1997 -    "\202\030\224\031\247\032\201\033\256\034\211\035\210" +
 81.1998 -    "\036\217\042\222\044\225\103\221\154\220\155\215\160" +
 81.1999 -    "\227\161\245\163\205\164\176\167\244\245\251\246\243" +
 81.2000 -    "\253\362\254\253\255\207\261\200\001\001\000\002\001" +
 81.2001 -    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
 81.2002 -    "\000\002\001\001\000\066\026\246\027\202\030\224\031" +
 81.2003 -    "\247\032\201\033\256\034\211\035\210\036\217\042\222" +
 81.2004 -    "\044\225\103\221\154\220\155\215\160\227\161\245\163" +
 81.2005 -    "\205\164\176\165\371\167\244\245\251\246\243\253\254" +
 81.2006 -    "\254\253\255\207\261\200\001\001\000\002\001\001\000" +
 81.2007 -    "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
 81.2008 -    "\001\001\000\064\026\246\027\202\030\224\031\247\032" +
 81.2009 -    "\201\033\256\034\211\035\210\036\217\042\222\044\225" +
 81.2010 -    "\103\221\154\220\155\215\160\227\161\245\163\205\164" +
 81.2011 -    "\176\167\244\245\251\246\243\253\377\254\253\255\207" +
 81.2012 -    "\261\200\001\001\000\002\001\001\000\002\001\001\000" +
 81.2013 -    "\002\001\001\000\002\001\001\000\002\001\001\000\004" +
 81.2014 -    "\304\u0104\001\001\000\024\072\u010c\170\u0107\250\u0106\305" +
 81.2015 -    "\u0108\307\u0105\310\u010b\344\112\345\114\346\055\001\001" +
 81.2016 -    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
 81.2017 -    "\002\001\001\000\002\001\001\000\004\306\u010e\001\001" +
 81.2018 -    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
 81.2019 -    "\032\006\102\023\u0110\072\u010c\170\u0107\235\u0111\250\u0106" +
 81.2020 -    "\307\u0112\310\u010b\311\u010f\344\112\345\114\346\055\001" +
 81.2021 -    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
 81.2022 -    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
 81.2023 -    "\006\227\u0118\230\u0117\001\001\000\002\001\001\000\020" +
 81.2024 -    "\021\u011c\026\u011b\027\202\030\224\103\221\163\205\164" +
 81.2025 -    "\176\001\001\000\004\143\u0119\001\001\000\002\001\001" +
 81.2026 -    "\000\002\001\001\000\010\210\u0120\211\u011f\212\u011e\001" +
 81.2027 -    "\001\000\002\001\001\000\050\026\231\027\202\030\224" +
 81.2028 -    "\031\u0122\032\201\033\213\034\211\035\210\036\217\042" +
 81.2029 -    "\222\044\225\103\221\154\220\155\215\160\227\163\205" +
 81.2030 -    "\164\176\255\207\261\200\001\001\000\002\001\001\000" +
 81.2031 -    "\002\001\001\000\002\001\001\000\004\252\241\001\001" +
 81.2032 -    "\000\012\037\322\211\u0124\213\u0123\257\316\001\001\000" +
 81.2033 -    "\002\001\001\000\002\001\001\000\006\076\u0126\077\u0127" +
 81.2034 -    "\001\001\000\002\001\001\000\002\001\001\000\060\006" +
 81.2035 -    "\102\023\u012b\026\u012d\027\202\030\224\033\310\034\211" +
 81.2036 -    "\035\210\036\217\042\222\044\225\075\u0129\100\u012a\103" +
 81.2037 -    "\221\154\220\155\215\160\227\163\205\164\176\166\u012f" +
 81.2038 -    "\167\u012c\255\207\261\200\001\001\000\002\001\001\000" +
 81.2039 -    "\002\001\001\000\002\001\001\000\002\001\001\000\006" +
 81.2040 -    "\211\u0124\213\u0136\001\001\000\002\001\001\000\002\001" +
 81.2041 -    "\001\000\002\001\001\000\006\076\u0132\077\u0127\001\001" +
 81.2042 -    "\000\002\001\001\000\012\006\102\023\u012b\075\u0129\100" +
 81.2043 -    "\u012a\001\001\000\002\001\001\000\002\001\001\000\002" +
 81.2044 -    "\001\001\000\004\101\u013b\001\001\000\002\001\001\000" +
 81.2045 -    "\002\001\001\000\002\001\001\000\006\027\160\146\u013c" +
 81.2046 -    "\001\001\000\004\143\u013d\001\001\000\002\001\001\000" +
 81.2047 -    "\002\001\001\000\010\006\102\023\u012b\100\u0141\001\001" +
 81.2048 -    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
 81.2049 -    "\014\027\045\102\u0144\103\u0146\140\u0145\152\u0147\001\001" +
 81.2050 -    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
 81.2051 -    "\002\001\001\000\002\001\001\000\002\001\001\000\006" +
 81.2052 -    "\173\u014d\312\u014c\001\001\000\002\001\001\000\012\072" +
 81.2053 -    "\u0151\074\u0153\313\u0152\314\u014f\001\001\000\004\170\u014e" +
 81.2054 -    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
 81.2055 -    "\001\000\002\001\001\000\004\173\u0157\001\001\000\002" +
 81.2056 -    "\001\001\000\014\027\045\102\u0144\103\u0146\140\u0145\152" +
 81.2057 -    "\u0155\001\001\000\002\001\001\000\002\001\001\000\004" +
 81.2058 -    "\170\u014e\001\001\000\002\001\001\000\122\002\124\003" +
 81.2059 -    "\062\004\054\005\101\006\102\011\105\012\u015a\013\066" +
 81.2060 -    "\016\052\020\123\022\060\023\061\025\117\072\076\073" +
 81.2061 -    "\023\074\072\105\070\106\036\107\071\110\103\114\107" +
 81.2062 -    "\117\115\120\077\121\106\134\113\136\064\144\065\170" +
 81.2063 -    "\122\174\100\175\111\176\056\250\063\251\110\272\024" +
 81.2064 -    "\274\017\275\121\302\053\344\112\345\114\346\055\001" +
 81.2065 -    "\001\000\004\066\u015c\001\001\000\116\026\u016e\027\202" +
 81.2066 -    "\030\224\044\u0162\045\u017e\046\u016c\047\u016a\050\u0188\051" +
 81.2067 -    "\u0173\052\u0170\056\u0177\061\u0179\064\u0185\067\u016b\071\u0165" +
 81.2068 -    "\103\221\104\u0180\122\u018a\123\u018b\135\u0171\137\u0169\147" +
 81.2069 -    "\u0160\150\u0178\153\u018c\157\u0164\162\u0187\163\205\164\176" +
 81.2070 -    "\170\u018d\262\u0189\263\u0167\264\u0166\265\u016d\316\u017a\321" +
 81.2071 -    "\u0172\322\u016f\323\u0161\324\u0181\001\001\000\002\001\001" +
 81.2072 -    "\000\014\027\045\102\u0144\103\u0146\140\u0145\152\u015e\001" +
 81.2073 -    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
 81.2074 -    "\000\002\001\001\000\002\001\001\000\016\026\u0230\027" +
 81.2075 -    "\202\030\224\103\221\163\205\164\176\001\001\000\002" +
 81.2076 -    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
 81.2077 -    "\001\000\050\026\231\027\202\030\224\031\u0224\032\201" +
 81.2078 -    "\033\213\034\211\035\210\036\217\042\222\044\225\103" +
 81.2079 -    "\221\154\220\155\215\160\227\163\205\164\176\255\207" +
 81.2080 -    "\261\200\001\001\000\002\001\001\000\002\001\001\000" +
 81.2081 -    "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
 81.2082 -    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
 81.2083 -    "\001\000\002\001\001\000\002\001\001\000\036\026\u01fd" +
 81.2084 -    "\027\202\030\224\103\221\122\u01f4\157\u01f8\163\205\164" +
 81.2085 -    "\176\264\u01fb\316\u017a\317\u01f5\325\u01fc\327\u01f6\331\u01f7" +
 81.2086 -    "\001\001\000\020\026\u0191\027\202\030\224\070\u01ef\103" +
 81.2087 -    "\221\163\205\164\176\001\001\000\054\026\231\027\202" +
 81.2088 -    "\030\224\031\u019b\032\201\033\213\034\211\035\210\036" +
 81.2089 -    "\217\042\222\044\225\053\u01e1\054\u01e2\103\221\154\220" +
 81.2090 -    "\155\215\160\227\163\205\164\176\255\207\261\200\001" +
 81.2091 -    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
 81.2092 -    "\000\002\001\001\000\050\026\231\027\202\030\224\031" +
 81.2093 -    "\u01d9\032\201\033\213\034\211\035\210\036\217\042\222" +
 81.2094 -    "\044\225\103\221\154\220\155\215\160\227\163\205\164" +
 81.2095 -    "\176\255\207\261\200\001\001\000\020\026\u01d3\027\202" +
 81.2096 -    "\030\224\103\221\124\u01d4\163\205\164\176\001\001\000" +
 81.2097 -    "\002\001\001\000\116\026\u016e\027\202\030\224\044\u0162" +
 81.2098 -    "\046\u016c\047\u016a\050\u0188\051\u0173\052\u0170\056\u0177\061" +
 81.2099 -    "\u0179\064\u0185\067\u016b\071\u0165\103\221\104\u0180\122\u018a" +
 81.2100 -    "\123\u018b\135\u0171\137\u0169\150\u01a0\153\u018c\157\u0164\162" +
 81.2101 -    "\u0187\163\205\164\176\170\u018d\262\u0189\263\u0167\264\u0166" +
 81.2102 -    "\265\u016d\270\u01c1\271\u01bf\316\u017a\321\u0172\322\u016f\323" +
 81.2103 -    "\u0161\324\u0181\001\001\000\002\001\001\000\002\001\001" +
 81.2104 -    "\000\002\001\001\000\006\027\u01b9\320\u01b8\001\001\000" +
 81.2105 -    "\016\026\u01b6\027\202\030\224\103\221\163\205\164\176" +
 81.2106 -    "\001\001\000\050\026\231\027\202\030\224\031\u01b1\032" +
 81.2107 -    "\201\033\213\034\211\035\210\036\217\042\222\044\225" +
 81.2108 -    "\103\221\154\220\155\215\160\227\163\205\164\176\255" +
 81.2109 -    "\207\261\200\001\001\000\002\001\001\000\002\001\001" +
 81.2110 -    "\000\010\063\u0199\065\u0196\266\u0198\001\001\000\002\001" +
 81.2111 -    "\001\000\112\026\u016e\027\202\030\224\044\u0162\046\u016c" +
 81.2112 -    "\047\u016a\050\u0188\051\u0173\052\u0170\056\u0177\061\u0179\064" +
 81.2113 -    "\u0185\067\u016b\071\u0165\103\221\104\u0180\122\u018a\123\u018b" +
 81.2114 -    "\135\u0171\137\u0169\150\u0194\153\u018c\157\u0164\162\u0187\163" +
 81.2115 -    "\205\164\176\170\u018d\262\u0189\263\u0167\264\u0166\265\u016d" +
 81.2116 -    "\316\u017a\321\u0172\322\u016f\323\u0161\324\u0181\001\001\000" +
 81.2117 -    "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
 81.2118 -    "\001\001\000\020\026\u0191\027\202\030\224\070\u0192\103" +
 81.2119 -    "\221\163\205\164\176\001\001\000\002\001\001\000\002" +
 81.2120 -    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
 81.2121 -    "\001\000\002\001\001\000\122\002\124\003\062\004\054" +
 81.2122 -    "\005\101\006\102\011\105\012\u01ae\013\066\016\052\020" +
 81.2123 -    "\123\022\060\023\061\025\117\072\076\073\023\074\072" +
 81.2124 -    "\105\070\106\036\107\071\110\103\114\107\117\115\120" +
 81.2125 -    "\077\121\106\134\113\136\064\144\065\170\122\174\100" +
 81.2126 -    "\175\111\176\056\250\063\251\110\272\024\274\017\275" +
 81.2127 -    "\121\302\053\344\112\345\114\346\055\001\001\000\004" +
 81.2128 -    "\066\u01aa\001\001\000\002\001\001\000\004\267\u01a5\001" +
 81.2129 -    "\001\000\004\062\u019d\001\001\000\052\026\231\027\202" +
 81.2130 -    "\030\224\031\u019b\032\201\033\213\034\211\035\210\036" +
 81.2131 -    "\217\042\222\044\225\054\u019c\103\221\154\220\155\215" +
 81.2132 -    "\160\227\163\205\164\176\255\207\261\200\001\001\000" +
 81.2133 -    "\006\037\322\257\316\001\001\000\002\001\001\000\014" +
 81.2134 -    "\027\045\102\u0144\103\u0146\140\u0145\152\u01a3\001\001\000" +
 81.2135 -    "\114\026\u016e\027\202\030\224\044\u0162\045\u019f\046\u016c" +
 81.2136 -    "\047\u016a\050\u0188\051\u0173\052\u0170\056\u0177\061\u0179\064" +
 81.2137 -    "\u0185\067\u016b\071\u0165\103\221\104\u0180\122\u018a\123\u018b" +
 81.2138 -    "\135\u0171\137\u0169\150\u0178\153\u018c\157\u0164\162\u0187\163" +
 81.2139 -    "\205\164\176\170\u018d\262\u0189\263\u0167\264\u0166\265\u016d" +
 81.2140 -    "\316\u017a\321\u0172\322\u016f\323\u0161\324\u0181\001\001\000" +
 81.2141 -    "\112\026\u016e\027\202\030\224\044\u0162\046\u016c\047\u016a" +
 81.2142 -    "\050\u0188\051\u0173\052\u0170\056\u0177\061\u0179\064\u0185\067" +
 81.2143 -    "\u016b\071\u0165\103\221\104\u0180\122\u018a\123\u018b\135\u0171" +
 81.2144 -    "\137\u0169\150\u01a0\153\u018c\157\u0164\162\u0187\163\205\164" +
 81.2145 -    "\176\170\u018d\262\u0189\263\u0167\264\u0166\265\u016d\316\u017a" +
 81.2146 -    "\321\u0172\322\u016f\323\u0161\324\u0181\001\001\000\002\001" +
 81.2147 -    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
 81.2148 -    "\000\002\001\001\000\050\026\u012d\027\202\030\224\033" +
 81.2149 -    "\310\034\211\035\210\036\217\042\222\044\225\103\221" +
 81.2150 -    "\154\220\155\215\160\227\163\205\164\176\166\u01a7\167" +
 81.2151 -    "\u012c\255\207\261\200\001\001\000\002\001\001\000\002" +
 81.2152 -    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
 81.2153 -    "\001\000\014\027\045\102\u0144\103\u0146\140\u0145\152\u01ac" +
 81.2154 -    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
 81.2155 -    "\001\000\002\001\001\000\002\001\001\000\006\037\322" +
 81.2156 -    "\257\316\001\001\000\050\026\231\027\202\030\224\031" +
 81.2157 -    "\u01b3\032\201\033\213\034\211\035\210\036\217\042\222" +
 81.2158 -    "\044\225\103\221\154\220\155\215\160\227\163\205\164" +
 81.2159 -    "\176\255\207\261\200\001\001\000\006\037\322\257\316" +
 81.2160 -    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
 81.2161 -    "\001\000\002\001\001\000\006\076\u01ba\077\u0127\001\001" +
 81.2162 -    "\000\002\001\001\000\002\001\001\000\060\006\102\023" +
 81.2163 -    "\u012b\026\231\027\202\030\224\031\u01bc\032\201\033\213" +
 81.2164 -    "\034\211\035\210\036\217\042\222\044\225\075\u0129\100" +
 81.2165 -    "\u012a\103\221\154\220\155\215\160\227\163\205\164\176" +
 81.2166 -    "\255\207\261\200\001\001\000\006\037\322\257\316\001" +
 81.2167 -    "\001\000\002\001\001\000\002\001\001\000\004\333\u01d1" +
 81.2168 -    "\001\001\000\004\333\u01c3\001\001\000\002\001\001\000" +
 81.2169 -    "\022\026\u01c5\027\202\030\224\103\221\163\205\164\176" +
 81.2170 -    "\334\u01c7\335\u01c8\001\001\000\002\001\001\000\002\001" +
 81.2171 -    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
 81.2172 -    "\000\002\001\001\000\020\026\u01c5\027\202\030\224\103" +
 81.2173 -    "\221\163\205\164\176\335\u01cc\001\001\000\114\026\u016e" +
 81.2174 -    "\027\202\030\224\044\u0162\045\u01cb\046\u016c\047\u016a\050" +
 81.2175 -    "\u0188\051\u0173\052\u0170\056\u0177\061\u0179\064\u0185\067\u016b" +
 81.2176 -    "\071\u0165\103\221\104\u0180\122\u018a\123\u018b\135\u0171\137" +
 81.2177 -    "\u0169\150\u0178\153\u018c\157\u0164\162\u0187\163\205\164\176" +
 81.2178 -    "\170\u018d\262\u0189\263\u0167\264\u0166\265\u016d\316\u017a\321" +
 81.2179 -    "\u0172\322\u016f\323\u0161\324\u0181\001\001\000\112\026\u016e" +
 81.2180 -    "\027\202\030\224\044\u0162\046\u016c\047\u016a\050\u0188\051" +
 81.2181 -    "\u0173\052\u0170\056\u0177\061\u0179\064\u0185\067\u016b\071\u0165" +
 81.2182 -    "\103\221\104\u0180\122\u018a\123\u018b\135\u0171\137\u0169\150" +
 81.2183 -    "\u01a0\153\u018c\157\u0164\162\u0187\163\205\164\176\170\u018d" +
 81.2184 -    "\262\u0189\263\u0167\264\u0166\265\u016d\316\u017a\321\u0172\322" +
 81.2185 -    "\u016f\323\u0161\324\u0181\001\001\000\002\001\001\000\022" +
 81.2186 -    "\026\u01c5\027\202\030\224\103\221\163\205\164\176\334" +
 81.2187 -    "\u01ce\335\u01c8\001\001\000\002\001\001\000\114\026\u016e" +
 81.2188 -    "\027\202\030\224\044\u0162\045\u01d0\046\u016c\047\u016a\050" +
 81.2189 -    "\u0188\051\u0173\052\u0170\056\u0177\061\u0179\064\u0185\067\u016b" +
 81.2190 -    "\071\u0165\103\221\104\u0180\122\u018a\123\u018b\135\u0171\137" +
 81.2191 -    "\u0169\150\u0178\153\u018c\157\u0164\162\u0187\163\205\164\176" +
 81.2192 -    "\170\u018d\262\u0189\263\u0167\264\u0166\265\u016d\316\u017a\321" +
 81.2193 -    "\u0172\322\u016f\323\u0161\324\u0181\001\001\000\112\026\u016e" +
 81.2194 -    "\027\202\030\224\044\u0162\046\u016c\047\u016a\050\u0188\051" +
 81.2195 -    "\u0173\052\u0170\056\u0177\061\u0179\064\u0185\067\u016b\071\u0165" +
 81.2196 -    "\103\221\104\u0180\122\u018a\123\u018b\135\u0171\137\u0169\150" +
 81.2197 -    "\u01a0\153\u018c\157\u0164\162\u0187\163\205\164\176\170\u018d" +
 81.2198 -    "\262\u0189\263\u0167\264\u0166\265\u016d\316\u017a\321\u0172\322" +
 81.2199 -    "\u016f\323\u0161\324\u0181\001\001\000\002\001\001\000\002" +
 81.2200 -    "\001\001\000\002\001\001\000\002\001\001\000\016\026" +
 81.2201 -    "\u01d7\027\202\030\224\103\221\163\205\164\176\001\001" +
 81.2202 -    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
 81.2203 -    "\006\037\322\257\316\001\001\000\002\001\001\000\116" +
 81.2204 -    "\026\u016e\027\202\030\224\044\u0162\045\u017e\046\u016c\047" +
 81.2205 -    "\u016a\050\u0188\051\u0173\052\u0170\056\u0177\061\u0179\064\u0185" +
 81.2206 -    "\067\u016b\071\u0165\103\221\104\u0180\122\u018a\123\u018b\135" +
 81.2207 -    "\u0171\137\u0169\147\u01dd\150\u0178\153\u018c\157\u0164\162\u0187" +
 81.2208 -    "\163\205\164\176\170\u018d\262\u0189\263\u0167\264\u0166\265" +
 81.2209 -    "\u016d\316\u017a\321\u0172\322\u016f\323\u0161\324\u0181\001\001" +
 81.2210 -    "\000\002\001\001\000\002\001\001\000\014\027\045\102" +
 81.2211 -    "\u0144\103\u0146\140\u0145\152\u01df\001\001\000\002\001\001" +
 81.2212 -    "\000\002\001\001\000\004\055\u01e7\001\001\000\002\001" +
 81.2213 -    "\001\000\114\026\u016e\027\202\030\224\044\u0162\045\u01e4" +
 81.2214 -    "\046\u016c\047\u016a\050\u0188\051\u0173\052\u0170\056\u0177\061" +
 81.2215 -    "\u0179\064\u0185\067\u016b\071\u0165\103\221\104\u0180\122\u018a" +
 81.2216 -    "\123\u018b\135\u0171\137\u0169\150\u0178\153\u018c\157\u0164\162" +
 81.2217 -    "\u0187\163\205\164\176\170\u018d\262\u0189\263\u0167\264\u0166" +
 81.2218 -    "\265\u016d\316\u017a\321\u0172\322\u016f\323\u0161\324\u0181\001" +
 81.2219 -    "\001\000\112\026\u016e\027\202\030\224\044\u0162\046\u016c" +
 81.2220 -    "\047\u016a\050\u0188\051\u0173\052\u0170\056\u0177\061\u0179\064" +
 81.2221 -    "\u0185\067\u016b\071\u0165\103\221\104\u0180\122\u018a\123\u018b" +
 81.2222 -    "\135\u0171\137\u0169\150\u01a0\153\u018c\157\u0164\162\u0187\163" +
 81.2223 -    "\205\164\176\170\u018d\262\u0189\263\u0167\264\u0166\265\u016d" +
 81.2224 -    "\316\u017a\321\u0172\322\u016f\323\u0161\324\u0181\001\001\000" +
 81.2225 -    "\114\026\u016e\027\202\030\224\044\u0162\045\u01ee\046\u016c" +
 81.2226 -    "\047\u016a\050\u0188\051\u0173\052\u0170\056\u0177\061\u0179\064" +
 81.2227 -    "\u0185\067\u016b\071\u0165\103\221\104\u0180\122\u018a\123\u018b" +
 81.2228 -    "\135\u0171\137\u0169\150\u0178\153\u018c\157\u0164\162\u0187\163" +
 81.2229 -    "\205\164\176\170\u018d\262\u0189\263\u0167\264\u0166\265\u016d" +
 81.2230 -    "\316\u017a\321\u0172\322\u016f\323\u0161\324\u0181\001\001\000" +
 81.2231 -    "\052\026\231\027\202\030\224\031\u019b\032\201\033\213" +
 81.2232 -    "\034\211\035\210\036\217\042\222\044\225\054\u01eb\103" +
 81.2233 -    "\221\154\220\155\215\160\227\163\205\164\176\255\207" +
 81.2234 -    "\261\200\001\001\000\002\001\001\000\002\001\001\000" +
 81.2235 -    "\002\001\001\000\002\001\001\000\002\001\001\000\114" +
 81.2236 -    "\026\u016e\027\202\030\224\044\u0162\045\u01ed\046\u016c\047" +
 81.2237 -    "\u016a\050\u0188\051\u0173\052\u0170\056\u0177\061\u0179\064\u0185" +
 81.2238 -    "\067\u016b\071\u0165\103\221\104\u0180\122\u018a\123\u018b\135" +
 81.2239 -    "\u0171\137\u0169\150\u0178\153\u018c\157\u0164\162\u0187\163\205" +
 81.2240 -    "\164\176\170\u018d\262\u0189\263\u0167\264\u0166\265\u016d\316" +
 81.2241 -    "\u017a\321\u0172\322\u016f\323\u0161\324\u0181\001\001\000\112" +
 81.2242 -    "\026\u016e\027\202\030\224\044\u0162\046\u016c\047\u016a\050" +
 81.2243 -    "\u0188\051\u0173\052\u0170\056\u0177\061\u0179\064\u0185\067\u016b" +
 81.2244 -    "\071\u0165\103\221\104\u0180\122\u018a\123\u018b\135\u0171\137" +
 81.2245 -    "\u0169\150\u01a0\153\u018c\157\u0164\162\u0187\163\205\164\176" +
 81.2246 -    "\170\u018d\262\u0189\263\u0167\264\u0166\265\u016d\316\u017a\321" +
 81.2247 -    "\u0172\322\u016f\323\u0161\324\u0181\001\001\000\112\026\u016e" +
 81.2248 -    "\027\202\030\224\044\u0162\046\u016c\047\u016a\050\u0188\051" +
 81.2249 -    "\u0173\052\u0170\056\u0177\061\u0179\064\u0185\067\u016b\071\u0165" +
 81.2250 -    "\103\221\104\u0180\122\u018a\123\u018b\135\u0171\137\u0169\150" +
 81.2251 -    "\u01a0\153\u018c\157\u0164\162\u0187\163\205\164\176\170\u018d" +
 81.2252 -    "\262\u0189\263\u0167\264\u0166\265\u016d\316\u017a\321\u0172\322" +
 81.2253 -    "\u016f\323\u0161\324\u0181\001\001\000\004\156\u01f0\001\001" +
 81.2254 -    "\000\002\001\001\000\052\026\231\027\202\030\224\031" +
 81.2255 -    "\u019b\032\201\033\213\034\211\035\210\036\217\042\222" +
 81.2256 -    "\044\225\054\u01f2\103\221\154\220\155\215\160\227\163" +
 81.2257 -    "\205\164\176\255\207\261\200\001\001\000\002\001\001" +
 81.2258 -    "\000\002\001\001\000\116\026\u016e\027\202\030\224\044" +
 81.2259 -    "\u0162\045\u0205\046\u016c\047\u016a\050\u0188\051\u0173\052\u0170" +
 81.2260 -    "\056\u0177\061\u0179\064\u0185\067\u016b\071\u0165\103\221\104" +
 81.2261 -    "\u0180\122\u018a\123\u018b\135\u0171\137\u0169\150\u0178\153\u018c" +
 81.2262 -    "\157\u0164\162\u0187\163\205\164\176\170\u018d\262\u0189\263" +
 81.2263 -    "\u0167\264\u0166\265\u016d\316\u017a\321\u0172\322\u016f\323\u0161" +
 81.2264 -    "\324\u0181\330\u0220\001\001\000\116\026\u016e\027\202\030" +
 81.2265 -    "\224\044\u0162\045\u0205\046\u016c\047\u016a\050\u0188\051\u0173" +
 81.2266 -    "\052\u0170\056\u0177\061\u0179\064\u0185\067\u016b\071\u0165\103" +
 81.2267 -    "\221\104\u0180\122\u018a\123\u018b\135\u0171\137\u0169\150\u0178" +
 81.2268 -    "\153\u018c\157\u0164\162\u0187\163\205\164\176\170\u018d\262" +
 81.2269 -    "\u0189\263\u0167\264\u0166\265\u016d\316\u017a\321\u0172\322\u016f" +
 81.2270 -    "\323\u0161\324\u0181\330\u0214\001\001\000\002\001\001\000" +
 81.2271 -    "\002\001\001\000\002\001\001\000\002\001\001\000\052" +
 81.2272 -    "\026\231\027\202\030\224\031\u019b\032\201\033\213\034" +
 81.2273 -    "\211\035\210\036\217\042\222\044\225\054\u020a\103\221" +
 81.2274 -    "\154\220\155\215\160\227\163\205\164\176\255\207\261" +
 81.2275 -    "\200\001\001\000\116\026\u016e\027\202\030\224\044\u0162" +
 81.2276 -    "\045\u0205\046\u016c\047\u016a\050\u0188\051\u0173\052\u0170\056" +
 81.2277 -    "\u0177\061\u0179\064\u0185\067\u016b\071\u0165\103\221\104\u0180" +
 81.2278 -    "\122\u018a\123\u018b\135\u0171\137\u0169\150\u0178\153\u018c\157" +
 81.2279 -    "\u0164\162\u0187\163\205\164\176\170\u018d\262\u0189\263\u0167" +
 81.2280 -    "\264\u0166\265\u016d\316\u017a\321\u0172\322\u016f\323\u0161\324" +
 81.2281 -    "\u0181\330\u0209\001\001\000\004\326\u01ff\001\001\000\002" +
 81.2282 -    "\001\001\000\002\001\001\000\004\055\u0200\001\001\000" +
 81.2283 -    "\002\001\001\000\014\122\u0202\264\u01fb\316\u017a\325\u0203" +
 81.2284 -    "\327\u01f6\001\001\000\116\026\u016e\027\202\030\224\044" +
 81.2285 -    "\u0162\045\u0205\046\u016c\047\u016a\050\u0188\051\u0173\052\u0170" +
 81.2286 -    "\056\u0177\061\u0179\064\u0185\067\u016b\071\u0165\103\221\104" +
 81.2287 -    "\u0180\122\u018a\123\u018b\135\u0171\137\u0169\150\u0178\153\u018c" +
 81.2288 -    "\157\u0164\162\u0187\163\205\164\176\170\u018d\262\u0189\263" +
 81.2289 -    "\u0167\264\u0166\265\u016d\316\u017a\321\u0172\322\u016f\323\u0161" +
 81.2290 -    "\324\u0181\330\u0204\001\001\000\002\001\001\000\002\001" +
 81.2291 -    "\001\000\112\026\u016e\027\202\030\224\044\u0162\046\u016c" +
 81.2292 -    "\047\u016a\050\u0188\051\u0173\052\u0170\056\u0177\061\u0179\064" +
 81.2293 -    "\u0185\067\u016b\071\u0165\103\221\104\u0180\122\u018a\123\u018b" +
 81.2294 -    "\135\u0171\137\u0169\150\u01a0\153\u018c\157\u0164\162\u0187\163" +
 81.2295 -    "\205\164\176\170\u018d\262\u0189\263\u0167\264\u0166\265\u016d" +
 81.2296 -    "\316\u017a\321\u0172\322\u016f\323\u0161\324\u0181\001\001\000" +
 81.2297 -    "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
 81.2298 -    "\001\001\000\002\001\001\000\012\122\u0202\264\u01fb\316" +
 81.2299 -    "\u017a\327\u020c\001\001\000\002\001\001\000\002\001\001" +
 81.2300 -    "\000\002\001\001\000\114\026\u016e\027\202\030\224\044" +
 81.2301 -    "\u0162\045\u0210\046\u016c\047\u016a\050\u0188\051\u0173\052\u0170" +
 81.2302 -    "\056\u0177\061\u0179\064\u0185\067\u016b\071\u0165\103\221\104" +
 81.2303 -    "\u0180\122\u018a\123\u018b\135\u0171\137\u0169\150\u0178\153\u018c" +
 81.2304 -    "\157\u0164\162\u0187\163\205\164\176\170\u018d\262\u0189\263" +
 81.2305 -    "\u0167\264\u0166\265\u016d\316\u017a\321\u0172\322\u016f\323\u0161" +
 81.2306 -    "\324\u0181\001\001\000\112\026\u016e\027\202\030\224\044" +
 81.2307 -    "\u0162\046\u016c\047\u016a\050\u0188\051\u0173\052\u0170\056\u0177" +
 81.2308 -    "\061\u0179\064\u0185\067\u016b\071\u0165\103\221\104\u0180\122" +
 81.2309 -    "\u018a\123\u018b\135\u0171\137\u0169\150\u01a0\153\u018c\157\u0164" +
 81.2310 -    "\162\u0187\163\205\164\176\170\u018d\262\u0189\263\u0167\264" +
 81.2311 -    "\u0166\265\u016d\316\u017a\321\u0172\322\u016f\323\u0161\324\u0181" +
 81.2312 -    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
 81.2313 -    "\001\000\002\001\001\000\114\026\u016e\027\202\030\224" +
 81.2314 -    "\044\u0162\045\u021c\046\u016c\047\u016a\050\u0188\051\u0173\052" +
 81.2315 -    "\u0170\056\u0177\061\u0179\064\u0185\067\u016b\071\u0165\103\221" +
 81.2316 -    "\104\u0180\122\u018a\123\u018b\135\u0171\137\u0169\150\u0178\153" +
 81.2317 -    "\u018c\157\u0164\162\u0187\163\205\164\176\170\u018d\262\u0189" +
 81.2318 -    "\263\u0167\264\u0166\265\u016d\316\u017a\321\u0172\322\u016f\323" +
 81.2319 -    "\u0161\324\u0181\001\001\000\004\122\u0217\001\001\000\116" +
 81.2320 -    "\026\u016e\027\202\030\224\044\u0162\045\u0205\046\u016c\047" +
 81.2321 -    "\u016a\050\u0188\051\u0173\052\u0170\056\u0177\061\u0179\064\u0185" +
 81.2322 -    "\067\u016b\071\u0165\103\221\104\u0180\122\u018a\123\u018b\135" +
 81.2323 -    "\u0171\137\u0169\150\u0178\153\u018c\157\u0164\162\u0187\163\205" +
 81.2324 -    "\164\176\170\u018d\262\u0189\263\u0167\264\u0166\265\u016d\316" +
 81.2325 -    "\u017a\321\u0172\322\u016f\323\u0161\324\u0181\330\u0218\001\001" +
 81.2326 -    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
 81.2327 -    "\002\001\001\000\112\026\u016e\027\202\030\224\044\u0162" +
 81.2328 -    "\046\u016c\047\u016a\050\u0188\051\u0173\052\u0170\056\u0177\061" +
 81.2329 -    "\u0179\064\u0185\067\u016b\071\u0165\103\221\104\u0180\122\u018a" +
 81.2330 -    "\123\u018b\135\u0171\137\u0169\150\u01a0\153\u018c\157\u0164\162" +
 81.2331 -    "\u0187\163\205\164\176\170\u018d\262\u0189\263\u0167\264\u0166" +
 81.2332 -    "\265\u016d\316\u017a\321\u0172\322\u016f\323\u0161\324\u0181\001" +
 81.2333 -    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
 81.2334 -    "\000\002\001\001\000\050\026\231\027\202\030\224\031" +
 81.2335 -    "\u0222\032\201\033\213\034\211\035\210\036\217\042\222" +
 81.2336 -    "\044\225\103\221\154\220\155\215\160\227\163\205\164" +
 81.2337 -    "\176\255\207\261\200\001\001\000\006\037\322\257\316" +
 81.2338 -    "\001\001\000\002\001\001\000\006\037\322\257\316\001" +
 81.2339 -    "\001\000\004\173\u0226\001\001\000\006\057\u0227\170\u014e" +
 81.2340 -    "\001\001\000\004\060\u0228\001\001\000\002\001\001\000" +
 81.2341 -    "\060\026\246\027\202\030\224\031\345\032\201\033\256" +
 81.2342 -    "\034\211\035\210\036\217\042\222\044\225\103\221\154" +
 81.2343 -    "\220\155\215\160\227\161\u022d\163\205\164\176\167\244" +
 81.2344 -    "\245\251\246\343\255\207\261\200\001\001\000\002\001" +
 81.2345 -    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
 81.2346 -    "\000\114\026\u016e\027\202\030\224\044\u0162\045\u022f\046" +
 81.2347 -    "\u016c\047\u016a\050\u0188\051\u0173\052\u0170\056\u0177\061\u0179" +
 81.2348 -    "\064\u0185\067\u016b\071\u0165\103\221\104\u0180\122\u018a\123" +
 81.2349 -    "\u018b\135\u0171\137\u0169\150\u0178\153\u018c\157\u0164\162\u0187" +
 81.2350 -    "\163\205\164\176\170\u018d\262\u0189\263\u0167\264\u0166\265" +
 81.2351 -    "\u016d\316\u017a\321\u0172\322\u016f\323\u0161\324\u0181\001\001" +
 81.2352 -    "\000\112\026\u016e\027\202\030\224\044\u0162\046\u016c\047" +
 81.2353 -    "\u016a\050\u0188\051\u0173\052\u0170\056\u0177\061\u0179\064\u0185" +
 81.2354 -    "\067\u016b\071\u0165\103\221\104\u0180\122\u018a\123\u018b\135" +
 81.2355 -    "\u0171\137\u0169\150\u01a0\153\u018c\157\u0164\162\u0187\163\205" +
 81.2356 -    "\164\176\170\u018d\262\u0189\263\u0167\264\u0166\265\u016d\316" +
 81.2357 -    "\u017a\321\u0172\322\u016f\323\u0161\324\u0181\001\001\000\002" +
 81.2358 -    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
 81.2359 -    "\001\000\002\001\001\000\002\001\001\000\006\076\u0237" +
 81.2360 -    "\077\u0127\001\001\000\002\001\001\000\014\006\102\023" +
 81.2361 -    "\u012b\075\u0129\100\u012a\266\u0239\001\001\000\050\026\u012d" +
 81.2362 -    "\027\202\030\224\033\310\034\211\035\210\036\217\042" +
 81.2363 -    "\222\044\225\103\221\154\220\155\215\160\227\163\205" +
 81.2364 -    "\164\176\166\u023a\167\u012c\255\207\261\200\001\001\000" +
 81.2365 -    "\002\001\001\000\006\076\u023c\077\u0127\001\001\000\002" +
 81.2366 -    "\001\001\000\052\026\231\027\202\030\224\031\u019b\032" +
 81.2367 -    "\201\033\213\034\211\035\210\036\217\042\222\044\225" +
 81.2368 -    "\054\u023e\103\221\154\220\155\215\160\227\163\205\164" +
 81.2369 -    "\176\255\207\261\200\001\001\000\004\315\u0241\001\001" +
 81.2370 -    "\000\002\001\001\000\122\002\124\003\062\004\054\005" +
 81.2371 -    "\101\006\102\011\105\012\u0242\013\066\016\052\020\123" +
 81.2372 -    "\022\060\023\061\025\117\072\076\073\023\074\072\105" +
 81.2373 -    "\070\106\036\107\071\110\103\114\107\117\115\120\077" +
 81.2374 -    "\121\106\134\113\136\064\144\065\170\122\174\100\175" +
 81.2375 -    "\111\176\056\250\063\251\110\272\024\274\017\275\121" +
 81.2376 -    "\302\053\344\112\345\114\346\055\001\001\000\002\001" +
 81.2377 -    "\001\000\004\066\u0243\001\001\000\002\001\001\000\014" +
 81.2378 -    "\027\045\102\u0144\103\u0146\140\u0145\152\u0245\001\001\000" +
 81.2379 -    "\002\001\001\000\002\001\001\000\052\026\231\027\202" +
 81.2380 -    "\030\224\031\u019b\032\201\033\213\034\211\035\210\036" +
 81.2381 -    "\217\042\222\044\225\054\u0248\103\221\154\220\155\215" +
 81.2382 -    "\160\227\163\205\164\176\255\207\261\200\001\001\000" +
 81.2383 -    "\004\315\u0249\001\001\000\002\001\001\000\002\001\001" +
 81.2384 -    "\000\002\001\001\000\002\001\001\000\016\026\u0256\027" +
 81.2385 -    "\202\030\224\103\221\163\205\164\176\001\001\000\124" +
 81.2386 -    "\002\124\003\062\004\054\005\101\006\102\011\105\012" +
 81.2387 -    "\u015a\013\066\016\052\020\123\022\060\023\061\025\117" +
 81.2388 -    "\072\076\073\023\074\072\105\070\106\036\107\071\110" +
 81.2389 -    "\103\114\107\117\115\120\077\121\106\134\113\136\064" +
 81.2390 -    "\144\065\170\122\174\100\175\111\176\056\250\063\251" +
 81.2391 -    "\110\272\024\274\017\275\121\302\053\343\u0250\344\112" +
 81.2392 -    "\345\114\346\055\001\001\000\002\001\001\000\002\001" +
 81.2393 -    "\001\000\002\001\001\000\016\026\u0253\027\202\030\224" +
 81.2394 -    "\103\221\163\205\164\176\001\001\000\002\001\001\000" +
 81.2395 -    "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
 81.2396 -    "\001\001\000\002\001\001\000\020\021\u025a\026\u011b\027" +
 81.2397 -    "\202\030\224\103\221\163\205\164\176\001\001\000\002" +
 81.2398 -    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
 81.2399 -    "\001\000\010\027\045\140\u025f\141\u0260\001\001\000\002" +
 81.2400 -    "\001\001\000\002\001\001\000\002\001\001\000\006\177" +
 81.2401 -    "\u0263\200\140\001\001\000\004\145\u0264\001\001\000\002" +
 81.2402 -    "\001\001\000\042\017\u026c\111\u0272\112\u0268\201\u0267\202" +
 81.2403 -    "\u0271\203\u0275\204\u027b\205\u026f\206\u026b\207\u0277\211\u027a" +
 81.2404 -    "\217\u026d\221\u0270\222\u0276\223\u027d\224\u027e\001\001\000" +
 81.2405 -    "\050\026\231\027\202\030\224\031\u02e0\032\201\033\213" +
 81.2406 -    "\034\211\035\210\036\217\042\222\044\225\103\221\154" +
 81.2407 -    "\220\155\215\160\227\163\205\164\176\255\207\261\200" +
 81.2408 -    "\001\001\000\002\001\001\000\004\113\u02dd\001\001\000" +
 81.2409 -    "\002\001\001\000\022\021\u02d3\026\u011b\027\202\030\224" +
 81.2410 -    "\103\221\163\205\164\176\247\u02d0\001\001\000\002\001" +
 81.2411 -    "\001\000\002\001\001\000\002\001\001\000\006\215\u02cb" +
 81.2412 -    "\216\u02ca\001\001\000\002\001\001\000\002\001\001\000" +
 81.2413 -    "\002\001\001\000\002\001\001\000\050\026\231\027\202" +
 81.2414 -    "\030\224\031\u02c3\032\201\033\213\034\211\035\210\036" +
 81.2415 -    "\217\042\222\044\225\103\221\154\220\155\215\160\227" +
 81.2416 -    "\163\205\164\176\255\207\261\200\001\001\000\050\026" +
 81.2417 -    "\231\027\202\030\224\031\u02c0\032\201\033\213\034\211" +
 81.2418 -    "\035\210\036\217\042\222\044\225\103\221\154\220\155" +
 81.2419 -    "\215\160\227\163\205\164\176\255\207\261\200\001\001" +
 81.2420 -    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
 81.2421 -    "\002\001\001\000\020\021\u0294\026\u011b\027\202\030\224" +
 81.2422 -    "\103\221\163\205\164\176\001\001\000\002\001\001\000" +
 81.2423 -    "\002\001\001\000\004\231\u027f\001\001\000\002\001\001" +
 81.2424 -    "\000\002\001\001\000\002\001\001\000\056\026\u0285\027" +
 81.2425 -    "\202\030\224\033\310\034\211\035\210\036\217\042\222" +
 81.2426 -    "\044\225\103\221\154\220\155\215\160\227\163\205\164" +
 81.2427 -    "\176\166\u0284\167\u012c\225\u0281\226\u0282\232\u0283\255\207" +
 81.2428 -    "\261\200\001\001\000\002\001\001\000\002\001\001\000" +
 81.2429 -    "\002\001\001\000\002\001\001\000\006\211\u0124\213\u0136" +
 81.2430 -    "\001\001\000\046\026\337\027\202\030\224\033\310\034" +
 81.2431 -    "\211\035\210\036\217\042\222\044\225\103\221\154\220" +
 81.2432 -    "\155\215\160\227\163\205\164\176\167\336\255\207\261" +
 81.2433 -    "\200\001\001\000\002\001\001\000\050\026\u012d\027\202" +
 81.2434 -    "\030\224\033\310\034\211\035\210\036\217\042\222\044" +
 81.2435 -    "\225\103\221\154\220\155\215\160\227\163\205\164\176" +
 81.2436 -    "\166\u028a\167\u012c\255\207\261\200\001\001\000\002\001" +
 81.2437 -    "\001\000\002\001\001\000\020\026\u028f\027\202\030\224" +
 81.2438 -    "\103\221\163\205\164\176\226\u0290\001\001\000\002\001" +
 81.2439 -    "\001\000\006\227\u028e\230\u0117\001\001\000\002\001\001" +
 81.2440 -    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
 81.2441 -    "\006\227\u0293\230\u0117\001\001\000\002\001\001\000\002" +
 81.2442 -    "\001\001\000\004\214\u0297\001\001\000\004\173\u029b\001" +
 81.2443 -    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
 81.2444 -    "\000\002\001\001\000\020\006\102\023\u0110\170\u014e\233" +
 81.2445 -    "\u029e\234\u029d\235\u02a0\237\u02a1\001\001\000\002\001\001" +
 81.2446 -    "\000\006\173\u02b4\236\u02b3\001\001\000\002\001\001\000" +
 81.2447 -    "\004\027\u02a3\001\001\000\002\001\001\000\004\173\u02a2" +
 81.2448 -    "\001\001\000\004\170\u014e\001\001\000\002\001\001\000" +
 81.2449 -    "\004\173\u02a5\001\001\000\010\170\u014e\243\u02a8\244\u02a6" +
 81.2450 -    "\001\001\000\002\001\001\000\060\026\246\027\202\030" +
 81.2451 -    "\224\031\345\032\201\033\256\034\211\035\210\036\217" +
 81.2452 -    "\042\222\044\225\103\221\154\220\155\215\160\227\161" +
 81.2453 -    "\u02ad\163\205\164\176\167\244\245\251\246\343\255\207" +
 81.2454 -    "\261\200\001\001\000\004\244\u02a9\001\001\000\002\001" +
 81.2455 -    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
 81.2456 -    "\000\002\001\001\000\004\173\u02af\001\001\000\020\006" +
 81.2457 -    "\102\023\u0110\170\u014e\233\u02b0\234\u029d\235\u02a0\237\u02a1" +
 81.2458 -    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
 81.2459 -    "\001\000\002\001\001\000\014\006\102\023\u0110\170\u014e" +
 81.2460 -    "\235\u02b5\237\u02b6\001\001\000\002\001\001\000\004\173" +
 81.2461 -    "\u02b7\001\001\000\004\170\u014e\001\001\000\004\173\u02b9" +
 81.2462 -    "\001\001\000\004\170\u014e\001\001\000\002\001\001\000" +
 81.2463 -    "\020\021\u02bc\026\u011b\027\202\030\224\103\221\163\205" +
 81.2464 -    "\164\176\001\001\000\002\001\001\000\004\214\u02be\001" +
 81.2465 -    "\001\000\002\001\001\000\002\001\001\000\014\037\322" +
 81.2466 -    "\211\u027a\217\u02c2\220\u02c1\257\316\001\001\000\002\001" +
 81.2467 -    "\001\000\002\001\001\000\012\037\322\211\u027a\217\u02c4" +
 81.2468 -    "\257\316\001\001\000\002\001\001\000\050\026\231\027" +
 81.2469 -    "\202\030\224\031\u02c6\032\201\033\213\034\211\035\210" +
 81.2470 -    "\036\217\042\222\044\225\103\221\154\220\155\215\160" +
 81.2471 -    "\227\163\205\164\176\255\207\261\200\001\001\000\014" +
 81.2472 -    "\037\322\211\u027a\217\u02c2\220\u02c7\257\316\001\001\000" +
 81.2473 -    "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
 81.2474 -    "\001\001\000\002\001\001\000\004\216\u02ce\001\001\000" +
 81.2475 -    "\002\001\001\000\002\001\001\000\020\021\u02db\026\u011b" +
 81.2476 -    "\027\202\030\224\103\221\163\205\164\176\001\001\000" +
 81.2477 -    "\002\001\001\000\020\021\u02d4\026\u011b\027\202\030\224" +
 81.2478 -    "\103\221\163\205\164\176\001\001\000\002\001\001\000" +
 81.2479 -    "\002\001\001\000\002\001\001\000\006\076\u02da\077\u0127" +
 81.2480 -    "\001\001\000\006\076\u02d7\077\u0127\001\001\000\002\001" +
 81.2481 -    "\001\000\006\027\160\146\u02d9\001\001\000\002\001\001" +
 81.2482 -    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
 81.2483 -    "\004\214\u02de\001\001\000\002\001\001\000\002\001\001" +
 81.2484 -    "\000\006\037\322\257\316\001\001\000\002\001\001\000" +
 81.2485 -    "\002\001\001\000\050\026\231\027\202\030\224\031\u02e5" +
 81.2486 -    "\032\201\033\213\034\211\035\210\036\217\042\222\044" +
 81.2487 -    "\225\103\221\154\220\155\215\160\227\163\205\164\176" +
 81.2488 -    "\255\207\261\200\001\001\000\050\026\231\027\202\030" +
 81.2489 -    "\224\031\u02f7\032\201\033\213\034\211\035\210\036\217" +
 81.2490 -    "\042\222\044\225\103\221\154\220\155\215\160\227\163" +
 81.2491 -    "\205\164\176\255\207\261\200\001\001\000\006\037\322" +
 81.2492 -    "\257\316\001\001\000\004\347\u02e8\001\001\000\002\001" +
 81.2493 -    "\001\000\004\350\u02e9\001\001\000\006\027\160\146\u02eb" +
 81.2494 -    "\001\001\000\002\001\001\000\002\001\001\000\050\026" +
 81.2495 -    "\231\027\202\030\224\031\u02ed\032\201\033\213\034\211" +
 81.2496 -    "\035\210\036\217\042\222\044\225\103\221\154\220\155" +
 81.2497 -    "\215\160\227\163\205\164\176\255\207\261\200\001\001" +
 81.2498 -    "\000\006\037\322\257\316\001\001\000\046\026\337\027" +
 81.2499 -    "\202\030\224\033\310\034\211\035\210\036\217\042\222" +
 81.2500 -    "\044\225\103\221\154\220\155\215\160\227\163\205\164" +
 81.2501 -    "\176\167\u02ef\255\207\261\200\001\001\000\002\001\001" +
 81.2502 -    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
 81.2503 -    "\050\026\231\027\202\030\224\031\u02f4\032\201\033\213" +
 81.2504 -    "\034\211\035\210\036\217\042\222\044\225\103\221\154" +
 81.2505 -    "\220\155\215\160\227\163\205\164\176\255\207\261\200" +
 81.2506 -    "\001\001\000\006\037\322\257\316\001\001\000\002\001" +
 81.2507 -    "\001\000\002\001\001\000\006\037\322\257\316\001\001" +
 81.2508 -    "\000\002\001\001\000\002\001\001\000\004\024\u02fe\001" +
 81.2509 -    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
 81.2510 -    "\000\030\021\u0300\026\u011b\027\202\030\224\103\221\142" +
 81.2511 -    "\u02ff\163\205\164\176\204\u0301\223\u027d\224\u027e\001\001" +
 81.2512 -    "\000\004\143\u0305\001\001\000\002\001\001\000\002\001" +
 81.2513 -    "\001\000\016\026\u0303\027\202\030\224\103\221\163\205" +
 81.2514 -    "\164\176\001\001\000\002\001\001\000\002\001\001\000" +
 81.2515 -    "\002\001\001\000\002\001\001\000\050\026\231\027\202" +
 81.2516 -    "\030\224\031\u0308\032\201\033\213\034\211\035\210\036" +
 81.2517 -    "\217\042\222\044\225\103\221\154\220\155\215\160\227" +
 81.2518 -    "\163\205\164\176\255\207\261\200\001\001\000\006\037" +
 81.2519 -    "\322\257\316\001\001\000\002\001\001\000\002\001\001" +
 81.2520 -    "\000\002\001\001\000\016\026\u030d\027\202\030\224\103" +
 81.2521 -    "\221\163\205\164\176\001\001\000\002\001\001\000\002" +
 81.2522 -    "\001\001\000\004\027\u0324\001\001\000\004\276\u0323\001" +
 81.2523 -    "\001\000\004\027\u0312\001\001\000\006\177\u0313\200\140" +
 81.2524 -    "\001\001\000\004\276\u0315\001\001\000\006\173\u0317\277" +
 81.2525 -    "\u0316\001\001\000\002\001\001\000\006\300\u0319\310\u0318" +
 81.2526 -    "\001\001\000\004\170\u014e\001\001\000\004\173\u0322\001" +
 81.2527 -    "\001\000\014\250\u031a\301\u031b\344\112\345\114\346\055" +
 81.2528 -    "\001\001\000\004\173\u0321\001\001\000\002\001\001\000" +
 81.2529 -    "\006\173\u0317\277\u031d\001\001\000\006\300\u031e\310\u0318" +
 81.2530 -    "\001\001\000\012\250\u031a\344\112\345\114\346\055\001" +
 81.2531 -    "\001\000\014\027\045\102\u0144\103\u0146\140\u0145\152\u0320" +
 81.2532 -    "\001\001\000\002\001\001\000\004\170\u014e\001\001\000" +
 81.2533 -    "\004\170\u014e\001\001\000\002\001\001\000\002\001\001" +
 81.2534 -    "\000\122\002\124\003\062\004\054\005\101\006\102\011" +
 81.2535 -    "\105\012\u0327\013\066\016\052\020\123\022\060\023\061" +
 81.2536 -    "\025\117\072\076\073\023\074\072\105\070\106\036\107" +
 81.2537 -    "\071\110\103\114\107\117\115\120\077\121\106\134\113" +
 81.2538 -    "\136\064\144\065\170\122\174\100\175\111\176\056\250" +
 81.2539 -    "\063\251\110\272\024\274\017\275\121\302\053\344\112" +
 81.2540 -    "\345\114\346\055\001\001\000\002\001\001\000\004\066" +
 81.2541 -    "\u0328\001\001\000\002\001\001\000\014\027\045\102\u0144" +
 81.2542 -    "\103\u0146\140\u0145\152\u032a\001\001\000\002\001\001\000" +
 81.2543 -    "\002\001\001\000\002\001\001\000\002\001\001\000\016" +
 81.2544 -    "\026\u0348\027\202\030\224\103\221\163\205\164\176\001" +
 81.2545 -    "\001\000\110\002\124\003\062\004\054\005\101\006\102" +
 81.2546 -    "\007\u0333\010\u0337\011\u0334\020\123\022\060\023\061\025" +
 81.2547 -    "\117\072\u0332\073\023\105\070\106\036\114\107\117\115" +
 81.2548 -    "\120\077\134\113\136\064\144\065\170\122\174\100\175" +
 81.2549 -    "\111\176\056\250\063\272\024\274\017\275\121\302\053" +
 81.2550 -    "\343\u0331\344\112\345\114\346\055\001\001\000\004\027" +
 81.2551 -    "\u0310\001\001\000\002\001\001\000\002\001\001\000\004" +
 81.2552 -    "\014\u033f\001\001\000\002\001\001\000\002\001\001\000" +
 81.2553 -    "\006\027\045\140\042\001\001\000\102\002\124\003\062" +
 81.2554 -    "\004\054\005\101\006\102\011\u0338\020\123\022\060\023" +
 81.2555 -    "\061\025\117\072\u0332\073\023\105\070\106\036\114\107" +
 81.2556 -    "\117\115\120\077\134\113\136\064\144\065\170\122\174" +
 81.2557 -    "\100\175\111\176\056\250\063\272\024\274\017\275\121" +
 81.2558 -    "\302\053\344\112\345\114\346\055\001\001\000\002\001" +
 81.2559 -    "\001\000\006\027\045\140\u033a\001\001\000\002\001\001" +
 81.2560 -    "\000\002\001\001\000\004\027\u033d\001\001\000\002\001" +
 81.2561 -    "\001\000\002\001\001\000\002\001\001\000\106\002\124" +
 81.2562 -    "\003\062\004\054\005\101\006\102\007\u0341\010\u0337\011" +
 81.2563 -    "\u0334\020\123\022\060\023\061\025\117\072\u0332\073\023" +
 81.2564 -    "\105\070\106\036\114\107\117\115\120\077\134\113\136" +
 81.2565 -    "\064\144\065\170\122\174\100\175\111\176\056\250\063" +
 81.2566 -    "\272\024\274\017\275\121\302\053\344\112\345\114\346" +
 81.2567 -    "\055\001\001\000\002\001\001\000\010\027\045\140\u025f" +
 81.2568 -    "\141\u0343\001\001\000\002\001\001\000\004\343\u0250\001" +
 81.2569 -    "\001\000\004\027\u0346\001\001\000\002\001\001\000\002" +
 81.2570 -    "\001\001\000\002\001\001\000\002\001\001\000\124\002" +
 81.2571 -    "\124\003\062\004\054\005\101\006\102\011\105\012\u015a" +
 81.2572 -    "\013\066\016\052\020\123\022\060\023\061\025\117\072" +
 81.2573 -    "\076\073\023\074\072\105\070\106\036\107\071\110\103" +
 81.2574 -    "\114\107\117\115\120\077\121\106\134\113\136\064\144" +
 81.2575 -    "\065\170\122\174\100\175\111\176\056\250\063\251\110" +
 81.2576 -    "\272\024\274\017\275\121\302\053\343\u0250\344\112\345" +
 81.2577 -    "\114\346\055\001\001\000\004\170\u014e\001\001\000\006" +
 81.2578 -    "\076\u034d\077\u0127\001\001\000\002\001\001\000\016\026" +
 81.2579 -    "\u034f\027\202\030\224\103\221\163\205\164\176\001\001" +
 81.2580 -    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
 81.2581 -    "\006\027\045\140\u0353\001\001\000\002\001\001\000\016" +
 81.2582 -    "\015\u035b\016\u0358\072\u035d\074\u0356\107\u035c\121\u0359\001" +
 81.2583 -    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
 81.2584 -    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
 81.2585 -    "\002\001\001\000\002\001\001\000\002\001\001\000\004" +
 81.2586 -    "\027\u035f\001\001\000\002\001\001\000\006\173\u014d\312" +
 81.2587 -    "\u014c\001\001\000\004\027\u0362\001\001\000\002\001\001" +
 81.2588 -    "\000\122\002\124\003\062\004\054\005\101\006\102\011" +
 81.2589 -    "\105\012\u0327\013\066\016\052\020\123\022\060\023\061" +
 81.2590 -    "\025\117\072\076\073\023\074\072\105\070\106\036\107" +
 81.2591 -    "\071\110\103\114\107\117\115\120\077\121\106\134\113" +
 81.2592 -    "\136\064\144\065\170\122\174\100\175\111\176\056\250" +
 81.2593 -    "\063\251\110\272\024\274\017\275\121\302\053\344\112" +
 81.2594 -    "\345\114\346\055\001\001\000\006\076\u0365\077\u0127\001" +
 81.2595 -    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
 81.2596 -    "\000\006\027\045\140\u03b2\001\001\000\002\001\001\000" +
 81.2597 -    "\004\027\u038c\001\001\000\002\001\001\000\002\001\001" +
 81.2598 -    "\000\002\001\001\000\002\001\001\000\016\026\u0370\027" +
 81.2599 -    "\202\030\224\103\221\163\205\164\176\001\001\000\002" +
 81.2600 -    "\001\001\000\002\001\001\000\004\027\u0387\001\001\000" +
 81.2601 -    "\004\027\u037e\001\001\000\012\027\045\102\u0375\103\u0146" +
 81.2602 -    "\140\u0145\001\001\000\006\076\u0376\077\u0127\001\001\000" +
 81.2603 -    "\002\001\001\000\016\026\u0378\027\202\030\224\103\221" +
 81.2604 -    "\163\205\164\176\001\001\000\004\341\u037a\001\001\000" +
 81.2605 -    "\016\026\u037d\027\202\030\224\103\221\163\205\164\176" +
 81.2606 -    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
 81.2607 -    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
 81.2608 -    "\000\016\026\u0381\027\202\030\224\103\221\163\205\164" +
 81.2609 -    "\176\001\001\000\002\001\001\000\002\001\001\000\066" +
 81.2610 -    "\026\246\027\202\030\224\031\247\032\201\033\256\034" +
 81.2611 -    "\211\035\210\036\217\042\222\044\225\103\221\154\220" +
 81.2612 -    "\155\215\160\227\161\245\163\205\164\176\165\255\167" +
 81.2613 -    "\244\245\251\246\243\253\254\254\253\255\207\261\200" +
 81.2614 -    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
 81.2615 -    "\001\000\006\076\u0388\077\u0127\001\001\000\004\341\u0389" +
 81.2616 -    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
 81.2617 -    "\001\000\006\200\u038d\337\u038f\001\001\000\002\001\001" +
 81.2618 -    "\000\012\006\102\023\143\240\146\241\147\001\001\000" +
 81.2619 -    "\002\001\001\000\022\111\u0397\112\u0393\204\u039d\206\u0395" +
 81.2620 -    "\223\u027d\224\u027e\340\u0394\342\u039a\001\001\000\002\001" +
 81.2621 -    "\001\000\002\001\001\000\004\113\u03ac\001\001\000\002" +
 81.2622 -    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
 81.2623 -    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
 81.2624 -    "\000\002\001\001\000\020\021\u039e\026\u011b\027\202\030" +
 81.2625 -    "\224\103\221\163\205\164\176\001\001\000\002\001\001" +
 81.2626 -    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
 81.2627 -    "\020\021\u03a2\026\u011b\027\202\030\224\103\221\163\205" +
 81.2628 -    "\164\176\001\001\000\002\001\001\000\002\001\001\000" +
 81.2629 -    "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
 81.2630 -    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
 81.2631 -    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
 81.2632 -    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
 81.2633 -    "\002\001\001\000\002\001\001\000\016\026\u03b5\027\202" +
 81.2634 -    "\030\224\103\221\163\205\164\176\001\001\000\106\002" +
 81.2635 -    "\124\003\062\004\054\005\101\006\102\007\u0333\010\u0337" +
 81.2636 -    "\011\u0334\020\123\022\060\023\061\025\117\072\u0332\073" +
 81.2637 -    "\023\105\070\106\036\114\107\117\115\120\077\134\113" +
 81.2638 -    "\136\064\144\065\170\122\174\100\175\111\176\056\250" +
 81.2639 -    "\063\272\024\274\017\275\121\302\053\344\112\345\114" +
 81.2640 -    "\346\055\001\001\000\002\001\001\000\002\001\001\000" +
 81.2641 -    "\002\001\001\000\002\001\001\000\020\026\u03ba\027\202" +
 81.2642 -    "\030\224\103\221\116\u03bb\163\205\164\176\001\001\000" +
 81.2643 -    "\002\001\001\000\002\001\001\000\016\026\u03be\027\202" +
 81.2644 -    "\030\224\103\221\163\205\164\176\001\001\000\002\001" +
 81.2645 -    "\001\000\002\001\001\000\016\026\u03c1\027\202\030\224" +
 81.2646 -    "\103\221\163\205\164\176\001\001\000\002\001\001\000" +
 81.2647 -    "\002\001\001\000\002\001\001\000\002\001\001\000\006" +
 81.2648 -    "\027\045\140\u03c6\001\001\000\002\001\001\000\002\001" +
 81.2649 -    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
 81.2650 -    "\000\034\005\025\072\034\073\023\074\037\105\030\106" +
 81.2651 -    "\036\107\022\120\032\130\u03cb\136\031\151\040\272\024" +
 81.2652 -    "\274\017\001\001\000\004\173\u03cc\001\001\000\004\170" +
 81.2653 -    "\u014e\001\001\000\004\170\u014e\001\001\000\002\001\001" +
 81.2654 -    "\000\002\001\001\000\002\001\001\000\054\026\231\027" +
 81.2655 -    "\u03d4\030\224\031\u03d5\032\201\033\213\034\211\035\210" +
 81.2656 -    "\036\217\042\222\044\225\103\221\154\220\155\215\160" +
 81.2657 -    "\227\163\205\164\176\171\u03d3\172\u03d2\255\207\261\200" +
 81.2658 -    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
 81.2659 -    "\001\000\006\037\322\257\316\001\001\000\050\026\231" +
 81.2660 -    "\027\202\030\224\031\u03d7\032\201\033\213\034\211\035" +
 81.2661 -    "\210\036\217\042\222\044\225\103\221\154\220\155\215" +
 81.2662 -    "\160\227\163\205\164\176\255\207\261\200\001\001\000" +
 81.2663 -    "\006\037\322\257\316\001\001\000\052\026\231\027\u03d4" +
 81.2664 -    "\030\224\031\u03d5\032\201\033\213\034\211\035\210\036" +
 81.2665 -    "\217\042\222\044\225\103\221\154\220\155\215\160\227" +
 81.2666 -    "\163\205\164\176\172\u03db\255\207\261\200\001\001\000" +
 81.2667 -    "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
 81.2668 -    "\001\001" });
 81.2669 -
 81.2670 -  /** Access to <code>reduce_goto</code> table. */
 81.2671 -  public short[][] reduce_table() {return _reduce_table;}
 81.2672 -
 81.2673 -  /** Instance of action encapsulation class. */
 81.2674 -  protected CUP$Ada95ASTParser$actions action_obj;
 81.2675 -
 81.2676 -  /** Action encapsulation object initializer. */
 81.2677 -  protected void init_actions()
 81.2678 -    {
 81.2679 -      action_obj = new CUP$Ada95ASTParser$actions(this);
 81.2680 -    }
 81.2681 -
 81.2682 -  /** Invoke a user supplied parse action. */
 81.2683 -  public java_cup.runtime.Symbol do_action(
 81.2684 -    int                        act_num,
 81.2685 -    java_cup.runtime.lr_parser parser,
 81.2686 -    java.util.Stack            stack,
 81.2687 -    int                        top)
 81.2688 -    throws java.lang.Exception
 81.2689 -  {
 81.2690 -    /* call code in generated class */
 81.2691 -    return action_obj.CUP$Ada95ASTParser$do_action(act_num, parser, stack, top);
 81.2692 -  }
 81.2693 -
 81.2694 -  /** Indicates start state. */
 81.2695 -  public int start_state() {return 0;}
 81.2696 -  /** Indicates start production. */
 81.2697 -  public int start_production() {return 0;}
 81.2698 -
 81.2699 -  /** <code>EOF</code> Symbol index. */
 81.2700 -  public int EOF_sym() {return 0;}
 81.2701 -
 81.2702 -  /** <code>error</code> Symbol index. */
 81.2703 -  public int error_sym() {return 1;}
 81.2704 -
 81.2705 -
 81.2706 -
 81.2707 -    protected final static Integer PUBLIC = new Integer(BodyDeclaration.Modifier.PUBLIC);
 81.2708 -    protected final static Integer PRIVATE = new Integer(BodyDeclaration.Modifier.PRIVATE);
 81.2709 -    protected final static Integer TAGGED = new Integer(BodyDeclaration.Modifier.TAGGED);
 81.2710 -    protected final static Integer LIMITED = new Integer(BodyDeclaration.Modifier.LIMITED);
 81.2711 -    protected final static Integer ABSTRACT = new Integer(BodyDeclaration.Modifier.ABSTRACT);
 81.2712 -
 81.2713 -    private ErrorStrategy defaultStrategy = new DefaultErrorStrategy();;
 81.2714 -    private ErrorStrategy errorStrategy = defaultStrategy;
 81.2715 -
 81.2716 -    private ParserErrorHandler errorHandler = null;
 81.2717 -
 81.2718 -    public void setErrorHandler (ParserErrorHandler handler) {
 81.2719 -        this.errorHandler = handler;
 81.2720 -    }
 81.2721 -
 81.2722 -    public ParserErrorHandler getErrorHandler () {
 81.2723 -        return this.errorHandler;
 81.2724 -    }
 81.2725 -
 81.2726 -/*
 81.2727 -    public Dispatch createDispatch(VariableBase dispatcher, VariableBase property) {
 81.2728 -        Dispatch dispatch = null;
 81.2729 -	if (property instanceof Variable) {
 81.2730 -	   dispatch = new FieldAccess(dispatcher.getStartOffset(), property.getEndOffset(), dispatcher, (Variable)property);
 81.2731 -	} else if (property instanceof FunctionInvocation) {
 81.2732 -	   dispatch = new MethodInvocation(dispatcher.getStartOffset(), property.getEndOffset(), dispatcher, (FunctionInvocation)property);
 81.2733 -	} else if (property instanceof ProcedureInvocation) {
 81.2734 -	   dispatch = new MethodInvocation(dispatcher.getStartOffset(), property.getEndOffset(), dispatcher, (ProcedureInvocation)property);
 81.2735 -	} else {
 81.2736 -	   throw new IllegalArgumentException();
 81.2737 -	}
 81.2738 -        return dispatch;
 81.2739 -    }
 81.2740 -*/
 81.2741 -
 81.2742 -    public List setModifier(List items, int modifier) {
 81.2743 -        List list = new LinkedList();
 81.2744 -        for (Iterator iter = items.iterator(); iter.hasNext();) {
 81.2745 -            final Object next = iter.next();
 81.2746 -            if (next instanceof TypeDeclaration) {
 81.2747 -                ((TypeDeclaration)next).setModifier(modifier);
 81.2748 -                list.add(next);
 81.2749 -            } else if (next instanceof MethodDeclaration) {
 81.2750 -                ((MethodDeclaration)next).setModifier(modifier);
 81.2751 -                list.add(next);
 81.2752 -            } else if (next instanceof FieldsDeclaration) {
 81.2753 -                ((FieldsDeclaration)next).setModifier(modifier);
 81.2754 -                list.add(next);
 81.2755 -            } else {
 81.2756 -                list.add(next);
 81.2757 -            }
 81.2758 -        }
 81.2759 -        return list;
 81.2760 -    }
 81.2761 -
 81.2762 -    interface ErrorStrategy {
 81.2763 -        public boolean errorRecovery(boolean debug) throws Exception;
 81.2764 -    }
 81.2765 -
 81.2766 -    class DefaultErrorStrategy implements ErrorStrategy {
 81.2767 -
 81.2768 -        public boolean errorRecovery(boolean debug) throws Exception {
 81.2769 -            return Ada95ASTParser.super.error_recovery(debug);
 81.2770 -        }
 81.2771 -    }
 81.2772 -
 81.2773 -    /**
 81.2774 -     * Attempt to recover from a syntax error.  This returns false if recovery fails,
 81.2775 -     * true if it succeeds.
 81.2776 -     * @param debug should we produce debugging messages as we parse.
 81.2777 -     */
 81.2778 -    @Override
 81.2779 -    protected boolean error_recovery(boolean debug) throws java.lang.Exception {
 81.2780 -        return errorStrategy.errorRecovery(debug);
 81.2781 -    }
 81.2782 -
 81.2783 -    /**
 81.2784 -     * Report a non fatal error (or warning).  This method takes a message
 81.2785 -     * string and an additional object (to be used by specializations implemented in subclasses).
 81.2786 -     * The super class prints the message to System.err.
 81.2787 -     * @param message an error message.
 81.2788 -     * @param info    an extra object reserved for use by specialized subclasses.
 81.2789 -     */
 81.2790 -    @Override
 81.2791 -    public void report_error(String message, Object info) {
 81.2792 -        System.out.print("report_eror"  + message);
 81.2793 -    }	
 81.2794 -
 81.2795 -    /**
 81.2796 -     * This method is called when a syntax error has been detected and recovery is about to be invoked.
 81.2797 -     * The super class just emit a "Syntax error" error message.
 81.2798 -     * @param cur_token the current lookahead Symbol.
 81.2799 -     */
 81.2800 -    @Override
 81.2801 -    public void syntax_error(java_cup.runtime.Symbol cur_token) {
 81.2802 -        java_cup.runtime.Symbol symbol = (java_cup.runtime.Symbol)stack.peek();
 81.2803 -        int state = symbol.parse_state;
 81.2804 -        short[] rowOfProbe = action_tab[state];
 81.2805 -        if (errorHandler != null) {
 81.2806 -            errorHandler.handleError(ParserErrorHandler.Type.SYNTAX_ERROR, rowOfProbe, cur_token, symbol);
 81.2807 -        }
 81.2808 -     }
 81.2809 -
 81.2810 -    /**
 81.2811 -     * This method is called when a syntax error has been detected during action.
 81.2812 -     * @param message an error message.
 81.2813 -     */
 81.2814 -    public void message_error(String message) {
 81.2815 -        java_cup.runtime.Symbol symbol = (java_cup.runtime.Symbol)stack.peek();
 81.2816 -        if (errorHandler != null) {
 81.2817 -            errorHandler.handleError(ParserErrorHandler.Type.SYNTAX_ERROR, symbol, message);
 81.2818 -        }
 81.2819 -     }
 81.2820 -
 81.2821 -     /**
 81.2822 -     * Report a fatal error.  This method takes a message string and an additional object
 81.2823 -     * (to be used by specializations implemented in subclasses).
 81.2824 -     * The super class reports the error then throws an exception.
 81.2825 -     * @param message an error message.
 81.2826 -     * @param info    an extra object reserved for use by specialized subclasses.
 81.2827 -     */
 81.2828 -    @Override
 81.2829 -    public void report_fatal_error(String message, Object info) throws Exception {
 81.2830 -        if (errorHandler != null) {
 81.2831 -            errorHandler.handleError(ParserErrorHandler.Type.FATAL_PARSER_ERROR, null, cur_token, null);
 81.2832 -        }
 81.2833 -    }
 81.2834 -
 81.2835 -    @Override
 81.2836 -    protected int error_sync_size() {
 81.2837 -        return 1;
 81.2838 -    }
 81.2839 -
 81.2840 -
 81.2841 -}
 81.2842 -
 81.2843 -/** Cup generated class to encapsulate user supplied action code.*/
 81.2844 -class CUP$Ada95ASTParser$actions {
 81.2845 -  private final Ada95ASTParser parser;
 81.2846 -
 81.2847 -  /** Constructor */
 81.2848 -  CUP$Ada95ASTParser$actions(Ada95ASTParser parser) {
 81.2849 -    this.parser = parser;
 81.2850 -  }
 81.2851 -
 81.2852 -  /** Method with the actual generated action code. */
 81.2853 -  public final java_cup.runtime.Symbol CUP$Ada95ASTParser$do_action(
 81.2854 -    int                        CUP$Ada95ASTParser$act_num,
 81.2855 -    java_cup.runtime.lr_parser CUP$Ada95ASTParser$parser,
 81.2856 -    java.util.Stack            CUP$Ada95ASTParser$stack,
 81.2857 -    int                        CUP$Ada95ASTParser$top)
 81.2858 -    throws java.lang.Exception
 81.2859 -    {
 81.2860 -      /* Symbol object for return from actions */
 81.2861 -      java_cup.runtime.Symbol CUP$Ada95ASTParser$result;
 81.2862 -
 81.2863 -      /* select the action based on the action number */
 81.2864 -      switch (CUP$Ada95ASTParser$act_num)
 81.2865 -        {
 81.2866 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.2867 -          case 515: // code_statement ::= qualified_expression SEMICOLON 
 81.2868 -            {
 81.2869 -              Statement RESULT =null;
 81.2870 -		int exprleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).left;
 81.2871 -		int exprright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).right;
 81.2872 -		Expression expr = (Expression)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).value;
 81.2873 -		int endleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.2874 -		int endright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.2875 -		Object end = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.2876 -		
 81.2877 -    RESULT = new CodeStatement (exprleft, endright, expr);
 81.2878 -
 81.2879 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("code_statement",93, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.2880 -            }
 81.2881 -          return CUP$Ada95ASTParser$result;
 81.2882 -
 81.2883 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.2884 -          case 514: // address_spec ::= FOR subtype_mark USE AT expression SEMICOLON 
 81.2885 -            {
 81.2886 -              Object RESULT =null;
 81.2887 -
 81.2888 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("address_spec",228, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-5)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.2889 -            }
 81.2890 -          return CUP$Ada95ASTParser$result;
 81.2891 -
 81.2892 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.2893 -          case 513: // comp_loc_s ::= comp_loc_s subtype_mark AT expression RANGE range SEMICOLON 
 81.2894 -            {
 81.2895 -              Object RESULT =null;
 81.2896 -
 81.2897 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("comp_loc_s",230, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-6)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.2898 -            }
 81.2899 -          return CUP$Ada95ASTParser$result;
 81.2900 -
 81.2901 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.2902 -          case 512: // comp_loc_s ::= 
 81.2903 -            {
 81.2904 -              Object RESULT =null;
 81.2905 -
 81.2906 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("comp_loc_s",230, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.2907 -            }
 81.2908 -          return CUP$Ada95ASTParser$result;
 81.2909 -
 81.2910 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.2911 -          case 511: // align_opt ::= AT MOD expression SEMICOLON 
 81.2912 -            {
 81.2913 -              Object RESULT =null;
 81.2914 -
 81.2915 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("align_opt",229, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.2916 -            }
 81.2917 -          return CUP$Ada95ASTParser$result;
 81.2918 -
 81.2919 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.2920 -          case 510: // align_opt ::= 
 81.2921 -            {
 81.2922 -              Object RESULT =null;
 81.2923 -
 81.2924 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("align_opt",229, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.2925 -            }
 81.2926 -          return CUP$Ada95ASTParser$result;
 81.2927 -
 81.2928 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.2929 -          case 509: // record_type_spec ::= FOR subtype_mark USE RECORD align_opt comp_loc_s END RECORD SEMICOLON 
 81.2930 -            {
 81.2931 -              Object RESULT =null;
 81.2932 -
 81.2933 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("record_type_spec",227, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-8)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.2934 -            }
 81.2935 -          return CUP$Ada95ASTParser$result;
 81.2936 -
 81.2937 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.2938 -          case 508: // attrib_def ::= FOR subtype_mark USE expression SEMICOLON 
 81.2939 -            {
 81.2940 -              Object RESULT =null;
 81.2941 -
 81.2942 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("attrib_def",226, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-4)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.2943 -            }
 81.2944 -          return CUP$Ada95ASTParser$result;
 81.2945 -
 81.2946 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.2947 -          case 507: // rep_spec ::= address_spec 
 81.2948 -            {
 81.2949 -              Object RESULT =null;
 81.2950 -
 81.2951 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("rep_spec",166, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.2952 -            }
 81.2953 -          return CUP$Ada95ASTParser$result;
 81.2954 -
 81.2955 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.2956 -          case 506: // rep_spec ::= record_type_spec 
 81.2957 -            {
 81.2958 -              Object RESULT =null;
 81.2959 -
 81.2960 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("rep_spec",166, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.2961 -            }
 81.2962 -          return CUP$Ada95ASTParser$result;
 81.2963 -
 81.2964 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.2965 -          case 505: // rep_spec ::= attrib_def 
 81.2966 -            {
 81.2967 -              Object RESULT =null;
 81.2968 -
 81.2969 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("rep_spec",166, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.2970 -            }
 81.2971 -          return CUP$Ada95ASTParser$result;
 81.2972 -
 81.2973 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.2974 -          case 504: // generic_inst ::= NEW name 
 81.2975 -            {
 81.2976 -              Object RESULT =null;
 81.2977 -
 81.2978 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("generic_inst",225, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.2979 -            }
 81.2980 -          return CUP$Ada95ASTParser$result;
 81.2981 -
 81.2982 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.2983 -          case 503: // generic_package_instantiation ::= PACKAGE compound_name IS generic_inst 
 81.2984 -            {
 81.2985 -              Object RESULT =null;
 81.2986 -
 81.2987 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("generic_package_instantiation",184, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.2988 -            }
 81.2989 -          return CUP$Ada95ASTParser$result;
 81.2990 -
 81.2991 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.2992 -          case 502: // generic_subp_inst ::= subprogram_specification IS generic_inst 
 81.2993 -            {
 81.2994 -              SubprogramSpecification RESULT =null;
 81.2995 -		int subprogleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).left;
 81.2996 -		int subprogright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).right;
 81.2997 -		SubprogramSpecification subprog = (SubprogramSpecification)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).value;
 81.2998 -		
 81.2999 -    RESULT = subprog;
 81.3000 -
 81.3001 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("generic_subp_inst",57, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3002 -            }
 81.3003 -          return CUP$Ada95ASTParser$result;
 81.3004 -
 81.3005 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3006 -          case 501: // generic_derived_type ::= ABSTRACT NEW subtype_indication WITH PRIVATE 
 81.3007 -            {
 81.3008 -              Object RESULT =null;
 81.3009 -
 81.3010 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("generic_derived_type",224, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-4)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3011 -            }
 81.3012 -          return CUP$Ada95ASTParser$result;
 81.3013 -
 81.3014 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3015 -          case 500: // generic_derived_type ::= NEW subtype_indication WITH PRIVATE 
 81.3016 -            {
 81.3017 -              Object RESULT =null;
 81.3018 -
 81.3019 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("generic_derived_type",224, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3020 -            }
 81.3021 -          return CUP$Ada95ASTParser$result;
 81.3022 -
 81.3023 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3024 -          case 499: // generic_derived_type ::= NEW subtype_indication 
 81.3025 -            {
 81.3026 -              Object RESULT =null;
 81.3027 -
 81.3028 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("generic_derived_type",224, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3029 -            }
 81.3030 -          return CUP$Ada95ASTParser$result;
 81.3031 -
 81.3032 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3033 -          case 498: // generic_type_def ::= generic_derived_type 
 81.3034 -            {
 81.3035 -              Object RESULT =null;
 81.3036 -
 81.3037 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("generic_type_def",222, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3038 -            }
 81.3039 -          return CUP$Ada95ASTParser$result;
 81.3040 -
 81.3041 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3042 -          case 497: // generic_type_def ::= private_type_declaration 
 81.3043 -            {
 81.3044 -              Object RESULT =null;
 81.3045 -
 81.3046 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("generic_type_def",222, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3047 -            }
 81.3048 -          return CUP$Ada95ASTParser$result;
 81.3049 -
 81.3050 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3051 -          case 496: // generic_type_def ::= access_type 
 81.3052 -            {
 81.3053 -              Object RESULT =null;
 81.3054 -
 81.3055 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("generic_type_def",222, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3056 -            }
 81.3057 -          return CUP$Ada95ASTParser$result;
 81.3058 -
 81.3059 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3060 -          case 495: // generic_type_def ::= array_type 
 81.3061 -            {
 81.3062 -              Object RESULT =null;
 81.3063 -
 81.3064 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("generic_type_def",222, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3065 -            }
 81.3066 -          return CUP$Ada95ASTParser$result;
 81.3067 -
 81.3068 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3069 -          case 494: // generic_type_def ::= DIGITS BOX 
 81.3070 -            {
 81.3071 -              Object RESULT =null;
 81.3072 -
 81.3073 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("generic_type_def",222, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3074 -            }
 81.3075 -          return CUP$Ada95ASTParser$result;
 81.3076 -
 81.3077 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3078 -          case 493: // generic_type_def ::= DELTA BOX DIGITS BOX 
 81.3079 -            {
 81.3080 -              Object RESULT =null;
 81.3081 -
 81.3082 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("generic_type_def",222, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3083 -            }
 81.3084 -          return CUP$Ada95ASTParser$result;
 81.3085 -
 81.3086 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3087 -          case 492: // generic_type_def ::= DELTA BOX 
 81.3088 -            {
 81.3089 -              Object RESULT =null;
 81.3090 -
 81.3091 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("generic_type_def",222, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3092 -            }
 81.3093 -          return CUP$Ada95ASTParser$result;
 81.3094 -
 81.3095 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3096 -          case 491: // generic_type_def ::= MOD BOX 
 81.3097 -            {
 81.3098 -              Object RESULT =null;
 81.3099 -
 81.3100 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("generic_type_def",222, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3101 -            }
 81.3102 -          return CUP$Ada95ASTParser$result;
 81.3103 -
 81.3104 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3105 -          case 490: // generic_type_def ::= RANGE BOX 
 81.3106 -            {
 81.3107 -              Object RESULT =null;
 81.3108 -
 81.3109 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("generic_type_def",222, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3110 -            }
 81.3111 -          return CUP$Ada95ASTParser$result;
 81.3112 -
 81.3113 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3114 -          case 489: // generic_type_def ::= LPAREN BOX RPAREN 
 81.3115 -            {
 81.3116 -              Object RESULT =null;
 81.3117 -
 81.3118 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("generic_type_def",222, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3119 -            }
 81.3120 -          return CUP$Ada95ASTParser$result;
 81.3121 -
 81.3122 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3123 -          case 488: // subp_default ::= IS BOX 
 81.3124 -            {
 81.3125 -              Object RESULT =null;
 81.3126 -
 81.3127 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("subp_default",223, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3128 -            }
 81.3129 -          return CUP$Ada95ASTParser$result;
 81.3130 -
 81.3131 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3132 -          case 487: // subp_default ::= IS name 
 81.3133 -            {
 81.3134 -              Object RESULT =null;
 81.3135 -
 81.3136 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("subp_default",223, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3137 -            }
 81.3138 -          return CUP$Ada95ASTParser$result;
 81.3139 -
 81.3140 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3141 -          case 486: // subp_default ::= 
 81.3142 -            {
 81.3143 -              Object RESULT =null;
 81.3144 -
 81.3145 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("subp_default",223, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3146 -            }
 81.3147 -          return CUP$Ada95ASTParser$result;
 81.3148 -
 81.3149 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3150 -          case 485: // generic_discrim_part_opt ::= LPAREN BOX RPAREN 
 81.3151 -            {
 81.3152 -              Object RESULT =null;
 81.3153 -
 81.3154 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("generic_discrim_part_opt",221, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3155 -            }
 81.3156 -          return CUP$Ada95ASTParser$result;
 81.3157 -
 81.3158 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3159 -          case 484: // generic_discrim_part_opt ::= discrim_part 
 81.3160 -            {
 81.3161 -              Object RESULT =null;
 81.3162 -
 81.3163 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("generic_discrim_part_opt",221, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3164 -            }
 81.3165 -          return CUP$Ada95ASTParser$result;
 81.3166 -
 81.3167 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3168 -          case 483: // generic_discrim_part_opt ::= 
 81.3169 -            {
 81.3170 -              Object RESULT =null;
 81.3171 -
 81.3172 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("generic_discrim_part_opt",221, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3173 -            }
 81.3174 -          return CUP$Ada95ASTParser$result;
 81.3175 -
 81.3176 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3177 -          case 482: // generic_formal ::= use_clause 
 81.3178 -            {
 81.3179 -              Object RESULT =null;
 81.3180 -
 81.3181 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("generic_formal",220, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3182 -            }
 81.3183 -          return CUP$Ada95ASTParser$result;
 81.3184 -
 81.3185 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3186 -          case 481: // generic_formal ::= WITH PACKAGE simple_name IS NEW name SEMICOLON 
 81.3187 -            {
 81.3188 -              Object RESULT =null;
 81.3189 -
 81.3190 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("generic_formal",220, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-6)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3191 -            }
 81.3192 -          return CUP$Ada95ASTParser$result;
 81.3193 -
 81.3194 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3195 -          case 480: // generic_formal ::= WITH PACKAGE simple_name IS NEW name LPAREN BOX RPAREN SEMICOLON 
 81.3196 -            {
 81.3197 -              Object RESULT =null;
 81.3198 -
 81.3199 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("generic_formal",220, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-9)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3200 -            }
 81.3201 -          return CUP$Ada95ASTParser$result;
 81.3202 -
 81.3203 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3204 -          case 479: // generic_formal ::= WITH FUNCTION designator formal_part_opt RETURN name subp_default SEMICOLON 
 81.3205 -            {
 81.3206 -              Object RESULT =null;
 81.3207 -
 81.3208 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("generic_formal",220, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-7)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3209 -            }
 81.3210 -          return CUP$Ada95ASTParser$result;
 81.3211 -
 81.3212 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3213 -          case 478: // generic_formal ::= WITH PROCEDURE simple_name formal_part_opt subp_default SEMICOLON 
 81.3214 -            {
 81.3215 -              Object RESULT =null;
 81.3216 -
 81.3217 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("generic_formal",220, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-5)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3218 -            }
 81.3219 -          return CUP$Ada95ASTParser$result;
 81.3220 -
 81.3221 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3222 -          case 477: // generic_formal ::= TYPE simple_name generic_discrim_part_opt IS generic_type_def SEMICOLON 
 81.3223 -            {
 81.3224 -              Object RESULT =null;
 81.3225 -
 81.3226 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("generic_formal",220, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-5)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3227 -            }
 81.3228 -          return CUP$Ada95ASTParser$result;
 81.3229 -
 81.3230 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3231 -          case 476: // generic_formal ::= param SEMICOLON 
 81.3232 -            {
 81.3233 -              Object RESULT =null;
 81.3234 -
 81.3235 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("generic_formal",220, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3236 -            }
 81.3237 -          return CUP$Ada95ASTParser$result;
 81.3238 -
 81.3239 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3240 -          case 475: // generic_formal_part ::= generic_formal_part generic_formal 
 81.3241 -            {
 81.3242 -              Object RESULT =null;
 81.3243 -
 81.3244 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("generic_formal_part",186, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3245 -            }
 81.3246 -          return CUP$Ada95ASTParser$result;
 81.3247 -
 81.3248 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3249 -          case 474: // generic_formal_part ::= GENERIC 
 81.3250 -            {
 81.3251 -              Object RESULT =null;
 81.3252 -
 81.3253 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("generic_formal_part",186, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3254 -            }
 81.3255 -          return CUP$Ada95ASTParser$result;
 81.3256 -
 81.3257 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3258 -          case 473: // generic_declaration ::= generic_formal_part package_specification SEMICOLON 
 81.3259 -            {
 81.3260 -              Statement RESULT =null;
 81.3261 -		int statementleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).left;
 81.3262 -		int statementright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).right;
 81.3263 -		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).value;
 81.3264 -		
 81.3265 -    RESULT = statement;
 81.3266 -
 81.3267 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("generic_declaration",92, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3268 -            }
 81.3269 -          return CUP$Ada95ASTParser$result;
 81.3270 -
 81.3271 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3272 -          case 472: // generic_declaration ::= generic_formal_part subprogram_specification SEMICOLON 
 81.3273 -            {
 81.3274 -              Statement RESULT =null;
 81.3275 -
 81.3276 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("generic_declaration",92, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3277 -            }
 81.3278 -          return CUP$Ada95ASTParser$result;
 81.3279 -
 81.3280 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3281 -          case 471: // requeue_stmt ::= REQUEUE name WITH ABORT SEMICOLON 
 81.3282 -            {
 81.3283 -              Object RESULT =null;
 81.3284 -
 81.3285 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("requeue_stmt",177, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-4)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3286 -            }
 81.3287 -          return CUP$Ada95ASTParser$result;
 81.3288 -
 81.3289 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3290 -          case 470: // requeue_stmt ::= REQUEUE name SEMICOLON 
 81.3291 -            {
 81.3292 -              Object RESULT =null;
 81.3293 -
 81.3294 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("requeue_stmt",177, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3295 -            }
 81.3296 -          return CUP$Ada95ASTParser$result;
 81.3297 -
 81.3298 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3299 -          case 469: // raise_statement ::= RAISE name_opt SEMICOLON 
 81.3300 -            {
 81.3301 -              Statement RESULT =null;
 81.3302 -		int tokenleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).left;
 81.3303 -		int tokenright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).right;
 81.3304 -		Object token = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).value;
 81.3305 -		int exceptionNameleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).left;
 81.3306 -		int exceptionNameright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).right;
 81.3307 -		String exceptionName = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).value;
 81.3308 -		int endleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.3309 -		int endright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.3310 -		Object end = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.3311 -		
 81.3312 -    RESULT = new RaiseStatement(tokenleft, endright, exceptionName); 
 81.3313 -
 81.3314 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("raise_statement",91, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3315 -            }
 81.3316 -          return CUP$Ada95ASTParser$result;
 81.3317 -
 81.3318 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3319 -          case 468: // except_choice ::= OTHERS 
 81.3320 -            {
 81.3321 -              Object RESULT =null;
 81.3322 -
 81.3323 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("except_choice",219, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3324 -            }
 81.3325 -          return CUP$Ada95ASTParser$result;
 81.3326 -
 81.3327 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3328 -          case 467: // except_choice ::= name 
 81.3329 -            {
 81.3330 -              Object RESULT =null;
 81.3331 -
 81.3332 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("except_choice",219, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3333 -            }
 81.3334 -          return CUP$Ada95ASTParser$result;
 81.3335 -
 81.3336 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3337 -          case 466: // except_choice_s ::= except_choice_s BAR except_choice 
 81.3338 -            {
 81.3339 -              Object RESULT =null;
 81.3340 -
 81.3341 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("except_choice_s",218, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3342 -            }
 81.3343 -          return CUP$Ada95ASTParser$result;
 81.3344 -
 81.3345 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3346 -          case 465: // except_choice_s ::= except_choice 
 81.3347 -            {
 81.3348 -              Object RESULT =null;
 81.3349 -
 81.3350 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("except_choice_s",218, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3351 -            }
 81.3352 -          return CUP$Ada95ASTParser$result;
 81.3353 -
 81.3354 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3355 -          case 464: // exception_handler ::= WHEN IDENTIFIER COLON except_choice_s ARROW sequence_of_statements 
 81.3356 -            {
 81.3357 -              Object RESULT =null;
 81.3358 -
 81.3359 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("exception_handler",217, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-5)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3360 -            }
 81.3361 -          return CUP$Ada95ASTParser$result;
 81.3362 -
 81.3363 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3364 -          case 463: // exception_handler ::= WHEN except_choice_s ARROW sequence_of_statements 
 81.3365 -            {
 81.3366 -              Object RESULT =null;
 81.3367 -
 81.3368 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("exception_handler",217, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3369 -            }
 81.3370 -          return CUP$Ada95ASTParser$result;
 81.3371 -
 81.3372 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3373 -          case 462: // except_handler_part ::= except_handler_part exception_handler 
 81.3374 -            {
 81.3375 -              Object RESULT =null;
 81.3376 -
 81.3377 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("except_handler_part",183, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3378 -            }
 81.3379 -          return CUP$Ada95ASTParser$result;
 81.3380 -
 81.3381 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3382 -          case 461: // except_handler_part ::= EXCEPTION exception_handler 
 81.3383 -            {
 81.3384 -              Object RESULT =null;
 81.3385 -
 81.3386 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("except_handler_part",183, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3387 -            }
 81.3388 -          return CUP$Ada95ASTParser$result;
 81.3389 -
 81.3390 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3391 -          case 460: // exception_decl ::= defining_identifier_list COLON EXCEPTION SEMICOLON 
 81.3392 -            {
 81.3393 -              Object RESULT =null;
 81.3394 -
 81.3395 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("exception_decl",124, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3396 -            }
 81.3397 -          return CUP$Ada95ASTParser$result;
 81.3398 -
 81.3399 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3400 -          case 459: // body_stub ::= PROTECTED BODY simple_name IS SEPARATE SEMICOLON 
 81.3401 -            {
 81.3402 -              Statement RESULT =null;
 81.3403 -
 81.3404 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("body_stub",90, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-5)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3405 -            }
 81.3406 -          return CUP$Ada95ASTParser$result;
 81.3407 -
 81.3408 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3409 -          case 458: // body_stub ::= subprogram_specification IS SEPARATE SEMICOLON 
 81.3410 -            {
 81.3411 -              Statement RESULT =null;
 81.3412 -		int subprogleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)).left;
 81.3413 -		int subprogright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)).right;
 81.3414 -		SubprogramSpecification subprog = (SubprogramSpecification)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)).value;
 81.3415 -		
 81.3416 -    RESULT = subprog;
 81.3417 -
 81.3418 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("body_stub",90, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3419 -            }
 81.3420 -          return CUP$Ada95ASTParser$result;
 81.3421 -
 81.3422 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3423 -          case 457: // body_stub ::= PACKAGE BODY compound_name IS SEPARATE SEMICOLON 
 81.3424 -            {
 81.3425 -              Statement RESULT =null;
 81.3426 -
 81.3427 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("body_stub",90, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-5)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3428 -            }
 81.3429 -          return CUP$Ada95ASTParser$result;
 81.3430 -
 81.3431 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3432 -          case 456: // body_stub ::= TASK BODY simple_name IS SEPARATE SEMICOLON 
 81.3433 -            {
 81.3434 -              Statement RESULT =null;
 81.3435 -
 81.3436 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("body_stub",90, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-5)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3437 -            }
 81.3438 -          return CUP$Ada95ASTParser$result;
 81.3439 -
 81.3440 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3441 -          case 455: // subunit ::= SEPARATE LPAREN compound_name RPAREN proper_body 
 81.3442 -            {
 81.3443 -              Statement RESULT =null;
 81.3444 -		int statementleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.3445 -		int statementright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.3446 -		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.3447 -		
 81.3448 -    RESULT = statement;
 81.3449 -
 81.3450 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("subunit",103, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-4)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3451 -            }
 81.3452 -          return CUP$Ada95ASTParser$result;
 81.3453 -
 81.3454 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3455 -          case 454: // with_clause ::= WITH library_unit_name_list SEMICOLON 
 81.3456 -            {
 81.3457 -              Statement RESULT =null;
 81.3458 -		int tokenleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).left;
 81.3459 -		int tokenright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).right;
 81.3460 -		Object token = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).value;
 81.3461 -		int packageListleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).left;
 81.3462 -		int packageListright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).right;
 81.3463 -		List packageList = (List)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).value;
 81.3464 -		int endleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.3465 -		int endright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.3466 -		Object end = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.3467 -		
 81.3468 -    RESULT = new With(tokenleft, endright, packageList);
 81.3469 -
 81.3470 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("with_clause",88, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3471 -            }
 81.3472 -          return CUP$Ada95ASTParser$result;
 81.3473 -
 81.3474 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3475 -          case 453: // context_clause ::= context_clause pragma 
 81.3476 -            {
 81.3477 -              Statement RESULT =null;
 81.3478 -
 81.3479 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("context_clause",87, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3480 -            }
 81.3481 -          return CUP$Ada95ASTParser$result;
 81.3482 -
 81.3483 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3484 -          case 452: // context_clause ::= context_clause use_clause 
 81.3485 -            {
 81.3486 -              Statement RESULT =null;
 81.3487 -		int statementleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.3488 -		int statementright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.3489 -		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.3490 -		
 81.3491 -    RESULT = statement;
 81.3492 -
 81.3493 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("context_clause",87, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3494 -            }
 81.3495 -          return CUP$Ada95ASTParser$result;
 81.3496 -
 81.3497 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3498 -          case 451: // context_clause ::= context_clause with_clause 
 81.3499 -            {
 81.3500 -              Statement RESULT =null;
 81.3501 -		int statementleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.3502 -		int statementright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.3503 -		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.3504 -		
 81.3505 -    RESULT = statement;
 81.3506 -
 81.3507 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("context_clause",87, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3508 -            }
 81.3509 -          return CUP$Ada95ASTParser$result;
 81.3510 -
 81.3511 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3512 -          case 450: // context_clause ::= use_clause 
 81.3513 -            {
 81.3514 -              Statement RESULT =null;
 81.3515 -		int statementleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.3516 -		int statementright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.3517 -		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.3518 -		
 81.3519 -    RESULT = statement;
 81.3520 -
 81.3521 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("context_clause",87, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3522 -            }
 81.3523 -          return CUP$Ada95ASTParser$result;
 81.3524 -
 81.3525 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3526 -          case 449: // context_clause ::= with_clause 
 81.3527 -            {
 81.3528 -              Statement RESULT =null;
 81.3529 -		int statementleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.3530 -		int statementright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.3531 -		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.3532 -		
 81.3533 -    RESULT = statement;
 81.3534 -
 81.3535 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("context_clause",87, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3536 -            }
 81.3537 -          return CUP$Ada95ASTParser$result;
 81.3538 -
 81.3539 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3540 -          case 448: // unit ::= rename_unit 
 81.3541 -            {
 81.3542 -              Statement RESULT =null;
 81.3543 -
 81.3544 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("unit",86, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3545 -            }
 81.3546 -          return CUP$Ada95ASTParser$result;
 81.3547 -
 81.3548 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3549 -          case 447: // unit ::= generic_declaration 
 81.3550 -            {
 81.3551 -              Statement RESULT =null;
 81.3552 -		int statementleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.3553 -		int statementright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.3554 -		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.3555 -		
 81.3556 -    RESULT = statement;
 81.3557 -
 81.3558 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("unit",86, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3559 -            }
 81.3560 -          return CUP$Ada95ASTParser$result;
 81.3561 -
 81.3562 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3563 -          case 446: // unit ::= subunit 
 81.3564 -            {
 81.3565 -              Statement RESULT =null;
 81.3566 -		int statementleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.3567 -		int statementright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.3568 -		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.3569 -		
 81.3570 -    RESULT = statement;
 81.3571 -
 81.3572 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("unit",86, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3573 -            }
 81.3574 -          return CUP$Ada95ASTParser$result;
 81.3575 -
 81.3576 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3577 -          case 445: // unit ::= subprogram_body 
 81.3578 -            {
 81.3579 -              Statement RESULT =null;
 81.3580 -		int statementleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.3581 -		int statementright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.3582 -		MethodDeclaration statement = (MethodDeclaration)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.3583 -		
 81.3584 -    RESULT = statement;
 81.3585 -
 81.3586 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("unit",86, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3587 -            }
 81.3588 -          return CUP$Ada95ASTParser$result;
 81.3589 -
 81.3590 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3591 -          case 444: // unit ::= subprog_declaration 
 81.3592 -            {
 81.3593 -              Statement RESULT =null;
 81.3594 -		int statementleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.3595 -		int statementright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.3596 -		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.3597 -		
 81.3598 -    RESULT = statement;
 81.3599 -
 81.3600 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("unit",86, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3601 -            }
 81.3602 -          return CUP$Ada95ASTParser$result;
 81.3603 -
 81.3604 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3605 -          case 443: // unit ::= package_body 
 81.3606 -            {
 81.3607 -              Statement RESULT =null;
 81.3608 -		int statementleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.3609 -		int statementright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.3610 -		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.3611 -		
 81.3612 -    RESULT = statement;
 81.3613 -
 81.3614 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("unit",86, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3615 -            }
 81.3616 -          return CUP$Ada95ASTParser$result;
 81.3617 -
 81.3618 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3619 -          case 442: // unit ::= package_declaration 
 81.3620 -            {
 81.3621 -              Statement RESULT =null;
 81.3622 -		int statementleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.3623 -		int statementright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.3624 -		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.3625 -		
 81.3626 -    RESULT = statement;
 81.3627 -
 81.3628 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("unit",86, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3629 -            }
 81.3630 -          return CUP$Ada95ASTParser$result;
 81.3631 -
 81.3632 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3633 -          case 441: // private_opt ::= PRIVATE 
 81.3634 -            {
 81.3635 -              Object RESULT =null;
 81.3636 -
 81.3637 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("private_opt",216, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3638 -            }
 81.3639 -          return CUP$Ada95ASTParser$result;
 81.3640 -
 81.3641 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3642 -          case 440: // private_opt ::= 
 81.3643 -            {
 81.3644 -              Object RESULT =null;
 81.3645 -
 81.3646 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("private_opt",216, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3647 -            }
 81.3648 -          return CUP$Ada95ASTParser$result;
 81.3649 -
 81.3650 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3651 -          case 439: // compilation_unit ::= private_opt unit pragma_s 
 81.3652 -            {
 81.3653 -              Statement RESULT =null;
 81.3654 -		int unitleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).left;
 81.3655 -		int unitright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).right;
 81.3656 -		Statement unit = (Statement)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).value;
 81.3657 -		
 81.3658 -    RESULT = unit;
 81.3659 -
 81.3660 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("compilation_unit",85, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3661 -            }
 81.3662 -          return CUP$Ada95ASTParser$result;
 81.3663 -
 81.3664 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3665 -          case 438: // compilation_unit ::= context_clause private_opt unit pragma_s 
 81.3666 -            {
 81.3667 -              Statement RESULT =null;
 81.3668 -		int unitleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).left;
 81.3669 -		int unitright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).right;
 81.3670 -		Statement unit = (Statement)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).value;
 81.3671 -		
 81.3672 -    RESULT = unit;
 81.3673 -
 81.3674 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("compilation_unit",85, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3675 -            }
 81.3676 -          return CUP$Ada95ASTParser$result;
 81.3677 -
 81.3678 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3679 -          case 437: // compilation_units ::= pragma pragma_s 
 81.3680 -            {
 81.3681 -              List RESULT =null;
 81.3682 -		
 81.3683 -    RESULT = new LinkedList();
 81.3684 -
 81.3685 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("compilation_units",84, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3686 -            }
 81.3687 -          return CUP$Ada95ASTParser$result;
 81.3688 -
 81.3689 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3690 -          case 436: // compilation_units ::= compilation_units compilation_unit 
 81.3691 -            {
 81.3692 -              List RESULT =null;
 81.3693 -		int unitsleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).left;
 81.3694 -		int unitsright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).right;
 81.3695 -		List units = (List)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).value;
 81.3696 -		int unitleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.3697 -		int unitright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.3698 -		Statement unit = (Statement)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.3699 -		
 81.3700 -    if(units != null) {
 81.3701 -        units.add(unit);
 81.3702 -    }
 81.3703 -    RESULT = units;
 81.3704 -
 81.3705 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("compilation_units",84, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3706 -            }
 81.3707 -          return CUP$Ada95ASTParser$result;
 81.3708 -
 81.3709 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3710 -          case 435: // compilation_units ::= 
 81.3711 -            {
 81.3712 -              List RESULT =null;
 81.3713 -		
 81.3714 -    RESULT = new LinkedList();
 81.3715 -
 81.3716 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("compilation_units",84, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3717 -            }
 81.3718 -          return CUP$Ada95ASTParser$result;
 81.3719 -
 81.3720 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3721 -          case 434: // compilation ::= compilation_units 
 81.3722 -            {
 81.3723 -              Program RESULT =null;
 81.3724 -		int unitsleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.3725 -		int unitsright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.3726 -		List units = (List)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.3727 -		
 81.3728 -    Ada95ASTLexer adaAstLexer = (Ada95ASTLexer) parser.getScanner();
 81.3729 -    List comments = adaAstLexer.getCommentList();
 81.3730 -    Program program = new Program(unitsleft, unitsright, units, comments);
 81.3731 -    RESULT = program;
 81.3732 -
 81.3733 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("compilation",83, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3734 -            }
 81.3735 -          return CUP$Ada95ASTParser$result;
 81.3736 -
 81.3737 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3738 -          case 433: // task_name_list ::= task_name_list COMMA name 
 81.3739 -            {
 81.3740 -              List RESULT =null;
 81.3741 -		int idListleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).left;
 81.3742 -		int idListright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).right;
 81.3743 -		List idList = (List)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).value;
 81.3744 -		int nameleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.3745 -		int nameright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.3746 -		String name = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.3747 -		
 81.3748 -    Identifier id = new Identifier(nameleft, nameright, name);
 81.3749 -    TaskName taskName = new TaskName(nameleft, nameright, id);
 81.3750 -    idList.add(taskName);
 81.3751 -    RESULT = idList;
 81.3752 -
 81.3753 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("task_name_list",82, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3754 -            }
 81.3755 -          return CUP$Ada95ASTParser$result;
 81.3756 -
 81.3757 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3758 -          case 432: // task_name_list ::= name 
 81.3759 -            {
 81.3760 -              List RESULT =null;
 81.3761 -		int nameleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.3762 -		int nameright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.3763 -		String name = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.3764 -		
 81.3765 -    List idList = new LinkedList();
 81.3766 -    Identifier id = new Identifier(nameleft, nameright, name);
 81.3767 -    TaskName taskName = new TaskName(nameleft, nameright, id);
 81.3768 -    idList.add(taskName);
 81.3769 -    RESULT = idList;
 81.3770 -
 81.3771 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("task_name_list",82, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3772 -            }
 81.3773 -          return CUP$Ada95ASTParser$result;
 81.3774 -
 81.3775 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3776 -          case 431: // abort_statement ::= ABORT task_name_list SEMICOLON 
 81.3777 -            {
 81.3778 -              Statement RESULT =null;
 81.3779 -		int tokenleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).left;
 81.3780 -		int tokenright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).right;
 81.3781 -		Object token = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).value;
 81.3782 -		int taskListleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).left;
 81.3783 -		int taskListright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).right;
 81.3784 -		List taskList = (List)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).value;
 81.3785 -		int endleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.3786 -		int endright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.3787 -		Object end = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.3788 -		
 81.3789 -    RESULT = new AbortStatement(tokenleft, endright, taskList);
 81.3790 -
 81.3791 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("abort_statement",81, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3792 -            }
 81.3793 -          return CUP$Ada95ASTParser$result;
 81.3794 -
 81.3795 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3796 -          case 430: // stmts_opt ::= sequence_of_statements 
 81.3797 -            {
 81.3798 -              Object RESULT =null;
 81.3799 -
 81.3800 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("stmts_opt",214, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3801 -            }
 81.3802 -          return CUP$Ada95ASTParser$result;
 81.3803 -
 81.3804 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3805 -          case 429: // stmts_opt ::= 
 81.3806 -            {
 81.3807 -              Object RESULT =null;
 81.3808 -
 81.3809 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("stmts_opt",214, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3810 -            }
 81.3811 -          return CUP$Ada95ASTParser$result;
 81.3812 -
 81.3813 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3814 -          case 428: // cond_entry_call ::= SELECT entry_call stmts_opt ELSE sequence_of_statements END SELECT SEMICOLON 
 81.3815 -            {
 81.3816 -              Object RESULT =null;
 81.3817 -
 81.3818 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("cond_entry_call",210, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-7)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3819 -            }
 81.3820 -          return CUP$Ada95ASTParser$result;
 81.3821 -
 81.3822 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3823 -          case 427: // timed_entry_call ::= SELECT entry_call stmts_opt OR delay_statement stmts_opt END SELECT SEMICOLON 
 81.3824 -            {
 81.3825 -              Object RESULT =null;
 81.3826 -
 81.3827 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("timed_entry_call",209, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-8)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3828 -            }
 81.3829 -          return CUP$Ada95ASTParser$result;
 81.3830 -
 81.3831 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3832 -          case 426: // async_select ::= SELECT delay_or_entry_alt THEN ABORT sequence_of_statements END SELECT SEMICOLON 
 81.3833 -            {
 81.3834 -              Object RESULT =null;
 81.3835 -
 81.3836 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("async_select",208, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-7)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3837 -            }
 81.3838 -          return CUP$Ada95ASTParser$result;
 81.3839 -
 81.3840 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3841 -          case 425: // delay_or_entry_alt ::= entry_call stmts_opt 
 81.3842 -            {
 81.3843 -              Object RESULT =null;
 81.3844 -
 81.3845 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("delay_or_entry_alt",215, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3846 -            }
 81.3847 -          return CUP$Ada95ASTParser$result;
 81.3848 -
 81.3849 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3850 -          case 424: // delay_or_entry_alt ::= delay_statement stmts_opt 
 81.3851 -            {
 81.3852 -              Object RESULT =null;
 81.3853 -
 81.3854 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("delay_or_entry_alt",215, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3855 -            }
 81.3856 -          return CUP$Ada95ASTParser$result;
 81.3857 -
 81.3858 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3859 -          case 423: // select_alt ::= TERMINATE SEMICOLON 
 81.3860 -            {
 81.3861 -              Object RESULT =null;
 81.3862 -
 81.3863 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("select_alt",213, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3864 -            }
 81.3865 -          return CUP$Ada95ASTParser$result;
 81.3866 -
 81.3867 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3868 -          case 422: // select_alt ::= delay_statement stmts_opt 
 81.3869 -            {
 81.3870 -              Object RESULT =null;
 81.3871 -
 81.3872 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("select_alt",213, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3873 -            }
 81.3874 -          return CUP$Ada95ASTParser$result;
 81.3875 -
 81.3876 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3877 -          case 421: // select_alt ::= accept_stmt stmts_opt 
 81.3878 -            {
 81.3879 -              Object RESULT =null;
 81.3880 -
 81.3881 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("select_alt",213, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3882 -            }
 81.3883 -          return CUP$Ada95ASTParser$result;
 81.3884 -
 81.3885 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3886 -          case 420: // or_select ::= or_select OR guarded_select_alt 
 81.3887 -            {
 81.3888 -              Object RESULT =null;
 81.3889 -
 81.3890 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("or_select",212, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3891 -            }
 81.3892 -          return CUP$Ada95ASTParser$result;
 81.3893 -
 81.3894 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3895 -          case 419: // or_select ::= 
 81.3896 -            {
 81.3897 -              Object RESULT =null;
 81.3898 -
 81.3899 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("or_select",212, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3900 -            }
 81.3901 -          return CUP$Ada95ASTParser$result;
 81.3902 -
 81.3903 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3904 -          case 418: // guarded_select_alt ::= WHEN condition ARROW select_alt 
 81.3905 -            {
 81.3906 -              Object RESULT =null;
 81.3907 -
 81.3908 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("guarded_select_alt",211, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3909 -            }
 81.3910 -          return CUP$Ada95ASTParser$result;
 81.3911 -
 81.3912 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3913 -          case 417: // guarded_select_alt ::= select_alt 
 81.3914 -            {
 81.3915 -              Object RESULT =null;
 81.3916 -
 81.3917 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("guarded_select_alt",211, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3918 -            }
 81.3919 -          return CUP$Ada95ASTParser$result;
 81.3920 -
 81.3921 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3922 -          case 416: // select_wait ::= SELECT guarded_select_alt or_select else_opt END SELECT SEMICOLON 
 81.3923 -            {
 81.3924 -              Object RESULT =null;
 81.3925 -
 81.3926 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("select_wait",207, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-6)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3927 -            }
 81.3928 -          return CUP$Ada95ASTParser$result;
 81.3929 -
 81.3930 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3931 -          case 415: // select_stmt ::= cond_entry_call 
 81.3932 -            {
 81.3933 -              Object RESULT =null;
 81.3934 -
 81.3935 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("select_stmt",179, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3936 -            }
 81.3937 -          return CUP$Ada95ASTParser$result;
 81.3938 -
 81.3939 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3940 -          case 414: // select_stmt ::= timed_entry_call 
 81.3941 -            {
 81.3942 -              Object RESULT =null;
 81.3943 -
 81.3944 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("select_stmt",179, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3945 -            }
 81.3946 -          return CUP$Ada95ASTParser$result;
 81.3947 -
 81.3948 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3949 -          case 413: // select_stmt ::= async_select 
 81.3950 -            {
 81.3951 -              Object RESULT =null;
 81.3952 -
 81.3953 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("select_stmt",179, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3954 -            }
 81.3955 -          return CUP$Ada95ASTParser$result;
 81.3956 -
 81.3957 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3958 -          case 412: // select_stmt ::= select_wait 
 81.3959 -            {
 81.3960 -              Object RESULT =null;
 81.3961 -
 81.3962 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("select_stmt",179, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3963 -            }
 81.3964 -          return CUP$Ada95ASTParser$result;
 81.3965 -
 81.3966 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3967 -          case 411: // delay_statement ::= DELAY UNTIL expression SEMICOLON 
 81.3968 -            {
 81.3969 -              Statement RESULT =null;
 81.3970 -		int tokenleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)).left;
 81.3971 -		int tokenright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)).right;
 81.3972 -		Object token = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)).value;
 81.3973 -		int exprleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).left;
 81.3974 -		int exprright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).right;
 81.3975 -		Expression expr = (Expression)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).value;
 81.3976 -		int endleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.3977 -		int endright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.3978 -		Object end = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.3979 -		
 81.3980 -    RESULT = new ReturnStatement(tokenleft, endright, expr);
 81.3981 -
 81.3982 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("delay_statement",80, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.3983 -            }
 81.3984 -          return CUP$Ada95ASTParser$result;
 81.3985 -
 81.3986 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.3987 -          case 410: // delay_statement ::= DELAY expression SEMICOLON 
 81.3988 -            {
 81.3989 -              Statement RESULT =null;
 81.3990 -		int tokenleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).left;
 81.3991 -		int tokenright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).right;
 81.3992 -		Object token = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).value;
 81.3993 -		int exprleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).left;
 81.3994 -		int exprright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).right;
 81.3995 -		Expression expr = (Expression)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).value;
 81.3996 -		int endleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.3997 -		int endright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.3998 -		Object end = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.3999 -		
 81.4000 -    RESULT = new ReturnStatement(tokenleft, endright, expr);
 81.4001 -
 81.4002 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("delay_statement",80, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4003 -            }
 81.4004 -          return CUP$Ada95ASTParser$result;
 81.4005 -
 81.4006 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4007 -          case 409: // entry_name ::= entry_name LPAREN expression RPAREN 
 81.4008 -            {
 81.4009 -              Object RESULT =null;
 81.4010 -
 81.4011 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("entry_name",206, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4012 -            }
 81.4013 -          return CUP$Ada95ASTParser$result;
 81.4014 -
 81.4015 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4016 -          case 408: // entry_name ::= simple_name 
 81.4017 -            {
 81.4018 -              Object RESULT =null;
 81.4019 -
 81.4020 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("entry_name",206, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4021 -            }
 81.4022 -          return CUP$Ada95ASTParser$result;
 81.4023 -
 81.4024 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4025 -          case 407: // accept_hdr ::= ACCEPT entry_name formal_part_opt 
 81.4026 -            {
 81.4027 -              Object RESULT =null;
 81.4028 -
 81.4029 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("accept_hdr",204, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4030 -            }
 81.4031 -          return CUP$Ada95ASTParser$result;
 81.4032 -
 81.4033 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4034 -          case 406: // accept_stmt ::= accept_hdr DO handled_stmt_s END id_opt SEMICOLON 
 81.4035 -            {
 81.4036 -              Object RESULT =null;
 81.4037 -
 81.4038 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("accept_stmt",178, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-5)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4039 -            }
 81.4040 -          return CUP$Ada95ASTParser$result;
 81.4041 -
 81.4042 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4043 -          case 405: // accept_stmt ::= accept_hdr SEMICOLON 
 81.4044 -            {
 81.4045 -              Object RESULT =null;
 81.4046 -
 81.4047 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("accept_stmt",178, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4048 -            }
 81.4049 -          return CUP$Ada95ASTParser$result;
 81.4050 -
 81.4051 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4052 -          case 404: // entry_call ::= procedure_call_statement 
 81.4053 -            {
 81.4054 -              Object RESULT =null;
 81.4055 -		int statementleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.4056 -		int statementright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.4057 -		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.4058 -		
 81.4059 -    RESULT = statement;
 81.4060 -
 81.4061 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("entry_call",205, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4062 -            }
 81.4063 -          return CUP$Ada95ASTParser$result;
 81.4064 -
 81.4065 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4066 -          case 403: // rep_spec_s ::= rep_spec_s rep_spec pragma_s 
 81.4067 -            {
 81.4068 -              Object RESULT =null;
 81.4069 -
 81.4070 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("rep_spec_s",190, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4071 -            }
 81.4072 -          return CUP$Ada95ASTParser$result;
 81.4073 -
 81.4074 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4075 -          case 402: // rep_spec_s ::= 
 81.4076 -            {
 81.4077 -              Object RESULT =null;
 81.4078 -
 81.4079 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("rep_spec_s",190, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4080 -            }
 81.4081 -          return CUP$Ada95ASTParser$result;
 81.4082 -
 81.4083 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4084 -          case 401: // entry_body_part ::= IS declarative_part block_body END id_opt SEMICOLON 
 81.4085 -            {
 81.4086 -              Object RESULT =null;
 81.4087 -
 81.4088 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("entry_body_part",203, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-5)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4089 -            }
 81.4090 -          return CUP$Ada95ASTParser$result;
 81.4091 -
 81.4092 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4093 -          case 400: // entry_body_part ::= SEMICOLON 
 81.4094 -            {
 81.4095 -              Object RESULT =null;
 81.4096 -
 81.4097 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("entry_body_part",203, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4098 -            }
 81.4099 -          return CUP$Ada95ASTParser$result;
 81.4100 -
 81.4101 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4102 -          case 399: // entry_body ::= ENTRY IDENTIFIER LPAREN iter_part discrete_range RPAREN formal_part_opt WHEN condition entry_body_part 
 81.4103 -            {
 81.4104 -              Object RESULT =null;
 81.4105 -
 81.4106 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("entry_body",202, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-9)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4107 -            }
 81.4108 -          return CUP$Ada95ASTParser$result;
 81.4109 -
 81.4110 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4111 -          case 398: // entry_body ::= ENTRY IDENTIFIER formal_part_opt WHEN condition entry_body_part 
 81.4112 -            {
 81.4113 -              Object RESULT =null;
 81.4114 -
 81.4115 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("entry_body",202, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-5)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4116 -            }
 81.4117 -          return CUP$Ada95ASTParser$result;
 81.4118 -
 81.4119 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4120 -          case 397: // entry_decl ::= ENTRY IDENTIFIER LPAREN discrete_range RPAREN formal_part_opt SEMICOLON 
 81.4121 -            {
 81.4122 -              Object RESULT =null;
 81.4123 -
 81.4124 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("entry_decl",198, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-6)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4125 -            }
 81.4126 -          return CUP$Ada95ASTParser$result;
 81.4127 -
 81.4128 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4129 -          case 396: // entry_decl ::= ENTRY IDENTIFIER formal_part_opt SEMICOLON 
 81.4130 -            {
 81.4131 -              Object RESULT =null;
 81.4132 -
 81.4133 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("entry_decl",198, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4134 -            }
 81.4135 -          return CUP$Ada95ASTParser$result;
 81.4136 -
 81.4137 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4138 -          case 395: // entry_decl_s ::= entry_decl_s entry_decl pragma_s 
 81.4139 -            {
 81.4140 -              Object RESULT =null;
 81.4141 -
 81.4142 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("entry_decl_s",189, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4143 -            }
 81.4144 -          return CUP$Ada95ASTParser$result;
 81.4145 -
 81.4146 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4147 -          case 394: // entry_decl_s ::= pragma_s 
 81.4148 -            {
 81.4149 -              Object RESULT =null;
 81.4150 -
 81.4151 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("entry_decl_s",189, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4152 -            }
 81.4153 -          return CUP$Ada95ASTParser$result;
 81.4154 -
 81.4155 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4156 -          case 393: // prot_op_body ::= subprogram_specification SEMICOLON 
 81.4157 -            {
 81.4158 -              Object RESULT =null;
 81.4159 -
 81.4160 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("prot_op_body",201, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4161 -            }
 81.4162 -          return CUP$Ada95ASTParser$result;
 81.4163 -
 81.4164 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4165 -          case 392: // prot_op_body ::= subprogram_body 
 81.4166 -            {
 81.4167 -              Object RESULT =null;
 81.4168 -
 81.4169 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("prot_op_body",201, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4170 -            }
 81.4171 -          return CUP$Ada95ASTParser$result;
 81.4172 -
 81.4173 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4174 -          case 391: // prot_op_body ::= entry_body 
 81.4175 -            {
 81.4176 -              Object RESULT =null;
 81.4177 -
 81.4178 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("prot_op_body",201, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4179 -            }
 81.4180 -          return CUP$Ada95ASTParser$result;
 81.4181 -
 81.4182 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4183 -          case 390: // prot_op_body_s ::= prot_op_body_s prot_op_body pragma_s 
 81.4184 -            {
 81.4185 -              Object RESULT =null;
 81.4186 -
 81.4187 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("prot_op_body_s",200, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4188 -            }
 81.4189 -          return CUP$Ada95ASTParser$result;
 81.4190 -
 81.4191 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4192 -          case 389: // prot_op_body_s ::= pragma_s 
 81.4193 -            {
 81.4194 -              Object RESULT =null;
 81.4195 -
 81.4196 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("prot_op_body_s",200, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4197 -            }
 81.4198 -          return CUP$Ada95ASTParser$result;
 81.4199 -
 81.4200 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4201 -          case 388: // protected_body ::= PROTECTED BODY simple_name IS prot_op_body_s END id_opt SEMICOLON 
 81.4202 -            {
 81.4203 -              Statement RESULT =null;
 81.4204 -		int nameleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-5)).left;
 81.4205 -		int nameright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-5)).right;
 81.4206 -		String name = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-5)).value;
 81.4207 -
 81.4208 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("protected_body",79, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-7)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4209 -            }
 81.4210 -          return CUP$Ada95ASTParser$result;
 81.4211 -
 81.4212 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4213 -          case 387: // prot_elem_decl ::= comp_decl 
 81.4214 -            {
 81.4215 -              Object RESULT =null;
 81.4216 -
 81.4217 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("prot_elem_decl",199, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4218 -            }
 81.4219 -          return CUP$Ada95ASTParser$result;
 81.4220 -
 81.4221 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4222 -          case 386: // prot_elem_decl ::= prot_op_decl 
 81.4223 -            {
 81.4224 -              Object RESULT =null;
 81.4225 -
 81.4226 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("prot_elem_decl",199, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4227 -            }
 81.4228 -          return CUP$Ada95ASTParser$result;
 81.4229 -
 81.4230 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4231 -          case 385: // prot_elem_decl_s ::= prot_elem_decl_s prot_elem_decl 
 81.4232 -            {
 81.4233 -              Object RESULT =null;
 81.4234 -
 81.4235 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("prot_elem_decl_s",196, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4236 -            }
 81.4237 -          return CUP$Ada95ASTParser$result;
 81.4238 -
 81.4239 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4240 -          case 384: // prot_elem_decl_s ::= 
 81.4241 -            {
 81.4242 -              Object RESULT =null;
 81.4243 -
 81.4244 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("prot_elem_decl_s",196, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4245 -            }
 81.4246 -          return CUP$Ada95ASTParser$result;
 81.4247 -
 81.4248 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4249 -          case 383: // prot_op_decl ::= pragma 
 81.4250 -            {
 81.4251 -              Object RESULT =null;
 81.4252 -
 81.4253 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("prot_op_decl",197, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4254 -            }
 81.4255 -          return CUP$Ada95ASTParser$result;
 81.4256 -
 81.4257 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4258 -          case 382: // prot_op_decl ::= rep_spec 
 81.4259 -            {
 81.4260 -              Object RESULT =null;
 81.4261 -
 81.4262 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("prot_op_decl",197, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4263 -            }
 81.4264 -          return CUP$Ada95ASTParser$result;
 81.4265 -
 81.4266 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4267 -          case 381: // prot_op_decl ::= subprogram_specification SEMICOLON 
 81.4268 -            {
 81.4269 -              Object RESULT =null;
 81.4270 -
 81.4271 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("prot_op_decl",197, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4272 -            }
 81.4273 -          return CUP$Ada95ASTParser$result;
 81.4274 -
 81.4275 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4276 -          case 380: // prot_op_decl ::= entry_decl 
 81.4277 -            {
 81.4278 -              Object RESULT =null;
 81.4279 -
 81.4280 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("prot_op_decl",197, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4281 -            }
 81.4282 -          return CUP$Ada95ASTParser$result;
 81.4283 -
 81.4284 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4285 -          case 379: // prot_op_decl_s ::= prot_op_decl_s prot_op_decl 
 81.4286 -            {
 81.4287 -              Object RESULT =null;
 81.4288 -
 81.4289 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("prot_op_decl_s",194, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4290 -            }
 81.4291 -          return CUP$Ada95ASTParser$result;
 81.4292 -
 81.4293 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4294 -          case 378: // prot_op_decl_s ::= 
 81.4295 -            {
 81.4296 -              Object RESULT =null;
 81.4297 -
 81.4298 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("prot_op_decl_s",194, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4299 -            }
 81.4300 -          return CUP$Ada95ASTParser$result;
 81.4301 -
 81.4302 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4303 -          case 377: // prot_private_opt ::= PRIVATE prot_elem_decl_s 
 81.4304 -            {
 81.4305 -              Object RESULT =null;
 81.4306 -
 81.4307 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("prot_private_opt",195, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4308 -            }
 81.4309 -          return CUP$Ada95ASTParser$result;
 81.4310 -
 81.4311 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4312 -          case 376: // prot_private_opt ::= 
 81.4313 -            {
 81.4314 -              Object RESULT =null;
 81.4315 -
 81.4316 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("prot_private_opt",195, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4317 -            }
 81.4318 -          return CUP$Ada95ASTParser$result;
 81.4319 -
 81.4320 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4321 -          case 375: // prot_def ::= IS prot_op_decl_s prot_private_opt END id_opt 
 81.4322 -            {
 81.4323 -              Object RESULT =null;
 81.4324 -
 81.4325 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("prot_def",193, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-4)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4326 -            }
 81.4327 -          return CUP$Ada95ASTParser$result;
 81.4328 -
 81.4329 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4330 -          case 374: // prot_spec ::= PROTECTED TYPE simple_name discrim_part_opt prot_def 
 81.4331 -            {
 81.4332 -              Object RESULT =null;
 81.4333 -
 81.4334 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("prot_spec",192, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-4)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4335 -            }
 81.4336 -          return CUP$Ada95ASTParser$result;
 81.4337 -
 81.4338 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4339 -          case 373: // prot_spec ::= PROTECTED IDENTIFIER prot_def 
 81.4340 -            {
 81.4341 -              Object RESULT =null;
 81.4342 -
 81.4343 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("prot_spec",192, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4344 -            }
 81.4345 -          return CUP$Ada95ASTParser$result;
 81.4346 -
 81.4347 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4348 -          case 372: // prot_decl ::= prot_spec SEMICOLON 
 81.4349 -            {
 81.4350 -              Object RESULT =null;
 81.4351 -
 81.4352 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("prot_decl",123, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4353 -            }
 81.4354 -          return CUP$Ada95ASTParser$result;
 81.4355 -
 81.4356 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4357 -          case 371: // task_body ::= TASK BODY simple_name IS declarative_part block_body END id_opt SEMICOLON 
 81.4358 -            {
 81.4359 -              Statement RESULT =null;
 81.4360 -
 81.4361 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("task_body",12, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-8)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4362 -            }
 81.4363 -          return CUP$Ada95ASTParser$result;
 81.4364 -
 81.4365 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4366 -          case 370: // task_private_opt ::= PRIVATE entry_decl_s rep_spec_s 
 81.4367 -            {
 81.4368 -              Object RESULT =null;
 81.4369 -
 81.4370 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("task_private_opt",191, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4371 -            }
 81.4372 -          return CUP$Ada95ASTParser$result;
 81.4373 -
 81.4374 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4375 -          case 369: // task_private_opt ::= 
 81.4376 -            {
 81.4377 -              Object RESULT =null;
 81.4378 -
 81.4379 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("task_private_opt",191, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4380 -            }
 81.4381 -          return CUP$Ada95ASTParser$result;
 81.4382 -
 81.4383 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4384 -          case 368: // task_def ::= IS entry_decl_s rep_spec_s task_private_opt END id_opt 
 81.4385 -            {
 81.4386 -              Object RESULT =null;
 81.4387 -
 81.4388 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("task_def",188, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-5)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4389 -            }
 81.4390 -          return CUP$Ada95ASTParser$result;
 81.4391 -
 81.4392 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4393 -          case 367: // task_def ::= 
 81.4394 -            {
 81.4395 -              Object RESULT =null;
 81.4396 -
 81.4397 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("task_def",188, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4398 -            }
 81.4399 -          return CUP$Ada95ASTParser$result;
 81.4400 -
 81.4401 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4402 -          case 366: // task_spec ::= TASK TYPE simple_name discrim_part_opt task_def 
 81.4403 -            {
 81.4404 -              Object RESULT =null;
 81.4405 -
 81.4406 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("task_spec",187, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-4)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4407 -            }
 81.4408 -          return CUP$Ada95ASTParser$result;
 81.4409 -
 81.4410 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4411 -          case 365: // task_spec ::= TASK simple_name task_def 
 81.4412 -            {
 81.4413 -              Object RESULT =null;
 81.4414 -
 81.4415 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("task_spec",187, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4416 -            }
 81.4417 -          return CUP$Ada95ASTParser$result;
 81.4418 -
 81.4419 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4420 -          case 364: // task_decl ::= task_spec SEMICOLON 
 81.4421 -            {
 81.4422 -              Object RESULT =null;
 81.4423 -
 81.4424 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("task_decl",122, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4425 -            }
 81.4426 -          return CUP$Ada95ASTParser$result;
 81.4427 -
 81.4428 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4429 -          case 363: // rename_unit ::= generic_formal_part subprogram_specification RENAMES name SEMICOLON 
 81.4430 -            {
 81.4431 -              Statement RESULT =null;
 81.4432 -
 81.4433 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("rename_unit",78, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-4)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4434 -            }
 81.4435 -          return CUP$Ada95ASTParser$result;
 81.4436 -
 81.4437 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4438 -          case 362: // rename_unit ::= generic_formal_part PACKAGE compound_name RENAMES name SEMICOLON 
 81.4439 -            {
 81.4440 -              Statement RESULT =null;
 81.4441 -
 81.4442 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("rename_unit",78, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-5)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4443 -            }
 81.4444 -          return CUP$Ada95ASTParser$result;
 81.4445 -
 81.4446 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4447 -          case 361: // rename_unit ::= subprogram_specification RENAMES name SEMICOLON 
 81.4448 -            {
 81.4449 -              Statement RESULT =null;
 81.4450 -		int endleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.4451 -		int endright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.4452 -		Object end = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.4453 -
 81.4454 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("rename_unit",78, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4455 -            }
 81.4456 -          return CUP$Ada95ASTParser$result;
 81.4457 -
 81.4458 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4459 -          case 360: // rename_unit ::= PACKAGE compound_name RENAMES name SEMICOLON 
 81.4460 -            {
 81.4461 -              Statement RESULT =null;
 81.4462 -		int tokenleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-4)).left;
 81.4463 -		int tokenright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-4)).right;
 81.4464 -		Object token = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-4)).value;
 81.4465 -		int nameleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)).left;
 81.4466 -		int nameright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)).right;
 81.4467 -		String name = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)).value;
 81.4468 -		int renamesleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).left;
 81.4469 -		int renamesright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).right;
 81.4470 -		String renames = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).value;
 81.4471 -		int endleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.4472 -		int endright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.4473 -		Object end = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.4474 -		
 81.4475 -    Identifier packageNameId = new Identifier(nameleft, nameright, name);
 81.4476 -    Identifier packageRenamesId = new Identifier(renamesleft, renamesright, renames);
 81.4477 -    PackageRenames packageRenames = new PackageRenames(tokenleft, endright, packageNameId, packageRenamesId);
 81.4478 -    RESULT = packageRenames;
 81.4479 -
 81.4480 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("rename_unit",78, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-4)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4481 -            }
 81.4482 -          return CUP$Ada95ASTParser$result;
 81.4483 -
 81.4484 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4485 -          case 359: // renaming_declaration ::= rename_unit 
 81.4486 -            {
 81.4487 -              Statement RESULT =null;
 81.4488 -		int unitleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.4489 -		int unitright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.4490 -		Statement unit = (Statement)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.4491 -		
 81.4492 -    RESULT = unit;
 81.4493 -
 81.4494 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("renaming_declaration",77, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4495 -            }
 81.4496 -          return CUP$Ada95ASTParser$result;
 81.4497 -
 81.4498 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4499 -          case 358: // renaming_declaration ::= defining_identifier_list COLON EXCEPTION RENAMES name SEMICOLON 
 81.4500 -            {
 81.4501 -              Statement RESULT =null;
 81.4502 -
 81.4503 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("renaming_declaration",77, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-5)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4504 -            }
 81.4505 -          return CUP$Ada95ASTParser$result;
 81.4506 -
 81.4507 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4508 -          case 357: // renaming_declaration ::= defining_identifier_list COLON object_qualifier_opt subtype_indication RENAMES name SEMICOLON 
 81.4509 -            {
 81.4510 -              Statement RESULT =null;
 81.4511 -
 81.4512 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("renaming_declaration",77, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-6)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4513 -            }
 81.4514 -          return CUP$Ada95ASTParser$result;
 81.4515 -
 81.4516 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4517 -          case 356: // subtype_mark_list ::= subtype_mark_list COMMA name 
 81.4518 -            {
 81.4519 -              List RESULT =null;
 81.4520 -		int idListleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).left;
 81.4521 -		int idListright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).right;
 81.4522 -		List idList = (List)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).value;
 81.4523 -		int nameleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.4524 -		int nameright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.4525 -		String name = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.4526 -		
 81.4527 -    Identifier id = new Identifier(nameleft, nameright, name);
 81.4528 -    TypeName typeName = new TypeName(nameleft, nameright, id);
 81.4529 -    idList.add(typeName);
 81.4530 -    RESULT = idList;
 81.4531 -
 81.4532 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("subtype_mark_list",76, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4533 -            }
 81.4534 -          return CUP$Ada95ASTParser$result;
 81.4535 -
 81.4536 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4537 -          case 355: // subtype_mark_list ::= name 
 81.4538 -            {
 81.4539 -              List RESULT =null;
 81.4540 -		int nameleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.4541 -		int nameright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.4542 -		String name = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.4543 -		
 81.4544 -    List idList = new LinkedList();
 81.4545 -    Identifier id = new Identifier(nameleft, nameright, name);
 81.4546 -    TypeName typeName = new TypeName(nameleft, nameright, id);
 81.4547 -    idList.add(typeName);
 81.4548 -    RESULT = idList;
 81.4549 -
 81.4550 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("subtype_mark_list",76, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4551 -            }
 81.4552 -          return CUP$Ada95ASTParser$result;
 81.4553 -
 81.4554 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4555 -          case 354: // package_name_list ::= package_name_list COMMA name 
 81.4556 -            {
 81.4557 -              List RESULT =null;
 81.4558 -		int idListleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).left;
 81.4559 -		int idListright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).right;
 81.4560 -		List idList = (List)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).value;
 81.4561 -		int nameleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.4562 -		int nameright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.4563 -		String name = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.4564 -		
 81.4565 -    Identifier id = new Identifier(nameleft, nameright, name);
 81.4566 -    PackageName packageName = new PackageName(nameleft, nameright, id);
 81.4567 -    idList.add(packageName);
 81.4568 -    RESULT = idList;
 81.4569 -
 81.4570 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("package_name_list",75, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4571 -            }
 81.4572 -          return CUP$Ada95ASTParser$result;
 81.4573 -
 81.4574 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4575 -          case 353: // package_name_list ::= name 
 81.4576 -            {
 81.4577 -              List RESULT =null;
 81.4578 -		int nameleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.4579 -		int nameright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.4580 -		String name = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.4581 -		
 81.4582 -    List idList = new LinkedList();
 81.4583 -    Identifier id = new Identifier(nameleft, nameright, name);
 81.4584 -    PackageName packageName = new PackageName(nameleft, nameright, id);
 81.4585 -    idList.add(packageName);
 81.4586 -    RESULT = idList;
 81.4587 -
 81.4588 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("package_name_list",75, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4589 -            }
 81.4590 -          return CUP$Ada95ASTParser$result;
 81.4591 -
 81.4592 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4593 -          case 352: // use_clause ::= USE TYPE subtype_mark_list SEMICOLON 
 81.4594 -            {
 81.4595 -              Statement RESULT =null;
 81.4596 -		int tokenleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)).left;
 81.4597 -		int tokenright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)).right;
 81.4598 -		Object token = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)).value;
 81.4599 -		int subTypeListleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).left;
 81.4600 -		int subTypeListright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).right;
 81.4601 -		List subTypeList = (List)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).value;
 81.4602 -		int endleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.4603 -		int endright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.4604 -		Object end = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.4605 -		
 81.4606 -    RESULT = new UseType(tokenleft, endright, subTypeList);
 81.4607 -
 81.4608 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("use_clause",74, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4609 -            }
 81.4610 -          return CUP$Ada95ASTParser$result;
 81.4611 -
 81.4612 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4613 -          case 351: // use_clause ::= USE package_name_list SEMICOLON 
 81.4614 -            {
 81.4615 -              Statement RESULT =null;
 81.4616 -		int tokenleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).left;
 81.4617 -		int tokenright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).right;
 81.4618 -		Object token = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).value;
 81.4619 -		int packageListleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).left;
 81.4620 -		int packageListright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).right;
 81.4621 -		List packageList = (List)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).value;
 81.4622 -		int endleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.4623 -		int endright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.4624 -		Object end = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.4625 -		
 81.4626 -    RESULT = new Use(tokenleft, endright, packageList);
 81.4627 -
 81.4628 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("use_clause",74, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4629 -            }
 81.4630 -          return CUP$Ada95ASTParser$result;
 81.4631 -
 81.4632 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4633 -          case 350: // limited_opt ::= LIMITED 
 81.4634 -            {
 81.4635 -              Integer RESULT =null;
 81.4636 -		
 81.4637 -    RESULT = Ada95ASTParser.LIMITED;
 81.4638 -
 81.4639 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("limited_opt",73, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4640 -            }
 81.4641 -          return CUP$Ada95ASTParser$result;
 81.4642 -
 81.4643 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4644 -          case 349: // limited_opt ::= 
 81.4645 -            {
 81.4646 -              Integer RESULT =null;
 81.4647 -		
 81.4648 -    RESULT = 0;
 81.4649 -
 81.4650 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("limited_opt",73, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4651 -            }
 81.4652 -          return CUP$Ada95ASTParser$result;
 81.4653 -
 81.4654 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4655 -          case 348: // private_type_declaration ::= tagged_opt limited_opt PRIVATE 
 81.4656 -            {
 81.4657 -              PrivateType RESULT =null;
 81.4658 -		int taggedleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).left;
 81.4659 -		int taggedright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).right;
 81.4660 -		Integer tagged = (Integer)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).value;
 81.4661 -		int limitedleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).left;
 81.4662 -		int limitedright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).right;
 81.4663 -		Integer limited = (Integer)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).value;
 81.4664 -		int privateKeywordleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.4665 -		int privateKeywordright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.4666 -		Object privateKeyword = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.4667 -		
 81.4668 -    PrivateType privateType = new PrivateType(taggedleft, privateKeywordright, tagged + limited + Ada95ASTParser.PRIVATE);
 81.4669 -    RESULT = privateType;
 81.4670 -
 81.4671 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("private_type_declaration",71, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4672 -            }
 81.4673 -          return CUP$Ada95ASTParser$result;
 81.4674 -
 81.4675 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4676 -          case 347: // body_opt ::= block_body 
 81.4677 -            {
 81.4678 -              Object RESULT =null;
 81.4679 -
 81.4680 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("body_opt",185, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4681 -            }
 81.4682 -          return CUP$Ada95ASTParser$result;
 81.4683 -
 81.4684 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4685 -          case 346: // body_opt ::= 
 81.4686 -            {
 81.4687 -              Object RESULT =null;
 81.4688 -
 81.4689 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("body_opt",185, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4690 -            }
 81.4691 -          return CUP$Ada95ASTParser$result;
 81.4692 -
 81.4693 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4694 -          case 345: // package_body ::= PACKAGE BODY compound_name IS declarative_part body_opt END compound_name_opt SEMICOLON 
 81.4695 -            {
 81.4696 -              Statement RESULT =null;
 81.4697 -		int declarationStartleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-8)).left;
 81.4698 -		int declarationStartright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-8)).right;
 81.4699 -		Object declarationStart = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-8)).value;
 81.4700 -		int packageNameleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-6)).left;
 81.4701 -		int packageNameright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-6)).right;
 81.4702 -		String packageName = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-6)).value;
 81.4703 -		int blockStartleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-5)).left;
 81.4704 -		int blockStartright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-5)).right;
 81.4705 -		Object blockStart = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-5)).value;
 81.4706 -		int declarativePartleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-4)).left;
 81.4707 -		int declarativePartright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-4)).right;
 81.4708 -		List declarativePart = (List)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-4)).value;
 81.4709 -		int packageNameEndleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).left;
 81.4710 -		int packageNameEndright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).right;
 81.4711 -		String packageNameEnd = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).value;
 81.4712 -		int declarationEndleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.4713 -		int declarationEndright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.4714 -		Object declarationEnd = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.4715 -		
 81.4716 -    if (packageNameEnd != null && !packageNameEnd.equalsIgnoreCase (packageName)) {
 81.4717 -        this.parser.message_error("mispelling of " + packageName);
 81.4718 -    }
 81.4719 -    else {
 81.4720 -        Identifier packageId = new Identifier(packageNameleft, packageNameright, packageName);
 81.4721 -        Identifier packageIdEnd = new Identifier(packageNameEndleft, packageNameEndright, packageNameEnd);
 81.4722 -
 81.4723 -        List list = this.parser.setModifier (declarativePart, Ada95ASTParser.PRIVATE);
 81.4724 -        Block block = new Block(blockStartleft, declarationEndright, list);
 81.4725 -
 81.4726 -        PackageBody packageBody = new PackageBody(declarationStartleft, declarationEndright, packageId, packageIdEnd, block);
 81.4727 -        RESULT = packageBody;
 81.4728 -    }
 81.4729 -
 81.4730 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("package_body",69, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-8)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4731 -            }
 81.4732 -          return CUP$Ada95ASTParser$result;
 81.4733 -
 81.4734 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4735 -          case 344: // compound_name_opt ::= compound_name 
 81.4736 -            {
 81.4737 -              String RESULT =null;
 81.4738 -		int compoundNameleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.4739 -		int compoundNameright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.4740 -		String compoundName = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.4741 -		
 81.4742 -    RESULT = compoundName;
 81.4743 -
 81.4744 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("compound_name_opt",95, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4745 -            }
 81.4746 -          return CUP$Ada95ASTParser$result;
 81.4747 -
 81.4748 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4749 -          case 343: // compound_name_opt ::= 
 81.4750 -            {
 81.4751 -              String RESULT =null;
 81.4752 -
 81.4753 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("compound_name_opt",95, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4754 -            }
 81.4755 -          return CUP$Ada95ASTParser$result;
 81.4756 -
 81.4757 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4758 -          case 342: // private_part ::= PRIVATE declarative_items_opt 
 81.4759 -            {
 81.4760 -              List RESULT =null;
 81.4761 -		int declarativeItemsleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.4762 -		int declarativeItemsright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.4763 -		List declarativeItems = (List)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.4764 -		
 81.4765 -    RESULT = this.parser.setModifier (declarativeItems, Ada95ASTParser.PRIVATE);
 81.4766 -
 81.4767 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("private_part",10, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4768 -            }
 81.4769 -          return CUP$Ada95ASTParser$result;
 81.4770 -
 81.4771 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4772 -          case 341: // private_part ::= 
 81.4773 -            {
 81.4774 -              List RESULT =null;
 81.4775 -		
 81.4776 -    RESULT = new LinkedList();
 81.4777 -
 81.4778 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("private_part",10, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4779 -            }
 81.4780 -          return CUP$Ada95ASTParser$result;
 81.4781 -
 81.4782 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4783 -          case 340: // package_specification ::= PACKAGE compound_name IS declarative_items_opt private_part END compound_name_opt 
 81.4784 -            {
 81.4785 -              Statement RESULT =null;
 81.4786 -		int declarationStartleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-6)).left;
 81.4787 -		int declarationStartright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-6)).right;
 81.4788 -		Object declarationStart = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-6)).value;
 81.4789 -		int packageNameleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-5)).left;
 81.4790 -		int packageNameright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-5)).right;
 81.4791 -		String packageName = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-5)).value;
 81.4792 -		int blockStartleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-4)).left;
 81.4793 -		int blockStartright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-4)).right;
 81.4794 -		Object blockStart = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-4)).value;
 81.4795 -		int declarativeItemsleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)).left;
 81.4796 -		int declarativeItemsright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)).right;
 81.4797 -		List declarativeItems = (List)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)).value;
 81.4798 -		int privateDeclarativeItemsleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).left;
 81.4799 -		int privateDeclarativeItemsright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).right;
 81.4800 -		List privateDeclarativeItems = (List)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).value;
 81.4801 -		int declarationEndleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).left;
 81.4802 -		int declarationEndright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).right;
 81.4803 -		Object declarationEnd = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).value;
 81.4804 -		int packageNameEndleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.4805 -		int packageNameEndright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.4806 -		String packageNameEnd = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.4807 -		
 81.4808 -    if (packageNameEnd != null && !packageNameEnd.equalsIgnoreCase (packageName)) {
 81.4809 -        this.parser.message_error("mispelling of " + packageName);
 81.4810 -    }
 81.4811 -    else {
 81.4812 -        Identifier packageId = new Identifier(packageNameleft, packageNameright, packageName);
 81.4813 -        Identifier packageIdEnd = new Identifier(packageNameEndleft, packageNameEndright, packageNameEnd);
 81.4814 -        declarativeItems.addAll (privateDeclarativeItems);
 81.4815 -        // Add private part on block statements
 81.4816 -        Block block = new Block(blockStartleft, declarationEndright, declarativeItems);
 81.4817 -        PackageSpecification packageSpecification = new PackageSpecification(declarationStartleft, declarationEndright, packageId, packageIdEnd, block);
 81.4818 -        RESULT = packageSpecification;
 81.4819 -    }
 81.4820 -
 81.4821 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("package_specification",68, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-6)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4822 -            }
 81.4823 -          return CUP$Ada95ASTParser$result;
 81.4824 -
 81.4825 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4826 -          case 339: // package_declaration ::= generic_package_instantiation SEMICOLON 
 81.4827 -            {
 81.4828 -              Statement RESULT =null;
 81.4829 -
 81.4830 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("package_declaration",67, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4831 -            }
 81.4832 -          return CUP$Ada95ASTParser$result;
 81.4833 -
 81.4834 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4835 -          case 338: // package_declaration ::= package_specification SEMICOLON 
 81.4836 -            {
 81.4837 -              Statement RESULT =null;
 81.4838 -		int statementleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).left;
 81.4839 -		int statementright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).right;
 81.4840 -		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).value;
 81.4841 -		
 81.4842 -    RESULT = statement;
 81.4843 -
 81.4844 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("package_declaration",67, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4845 -            }
 81.4846 -          return CUP$Ada95ASTParser$result;
 81.4847 -
 81.4848 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4849 -          case 337: // procedure_call_statement ::= name SEMICOLON 
 81.4850 -            {
 81.4851 -              Statement RESULT =null;
 81.4852 -
 81.4853 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("procedure_call_statement",109, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4854 -            }
 81.4855 -          return CUP$Ada95ASTParser$result;
 81.4856 -
 81.4857 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4858 -          case 336: // subprogram_body ::= subprogram_specification IS declarative_part block_body END id_opt SEMICOLON 
 81.4859 -            {
 81.4860 -              MethodDeclaration RESULT =null;
 81.4861 -		int subprogleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-6)).left;
 81.4862 -		int subprogright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-6)).right;
 81.4863 -		SubprogramSpecification subprog = (SubprogramSpecification)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-6)).value;
 81.4864 -		int declarativePartleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-4)).left;
 81.4865 -		int declarativePartright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-4)).right;
 81.4866 -		List declarativePart = (List)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-4)).value;
 81.4867 -		int bodyleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)).left;
 81.4868 -		int bodyright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)).right;
 81.4869 -		Block body = (Block)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)).value;
 81.4870 -		int idOptleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).left;
 81.4871 -		int idOptright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).right;
 81.4872 -		String idOpt = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).value;
 81.4873 -		int endleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.4874 -		int endright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.4875 -		Object end = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.4876 -		
 81.4877 -    if (idOpt != null && !idOpt.equalsIgnoreCase (subprog.getSubprogramName().getName())) {
 81.4878 -        this.parser.message_error("mispelling of " + subprog.getSubprogramName().getName());
 81.4879 -    } else {
 81.4880 -        Block declarations = new Block(subprogright, bodyleft, declarativePart);
 81.4881 -        body.setEndOffset(endright);
 81.4882 -        Identifier nameEnd = new Identifier(idOptleft, idOptright, idOpt);
 81.4883 -        SubprogramBody subprogramBody = new SubprogramBody(subprogleft, endright, subprog, declarations, body, nameEnd);
 81.4884 -        MethodDeclaration methodDeclaration = new MethodDeclaration(subprogleft, endright, 0/*modifier*/, subprogramBody);
 81.4885 -        RESULT = methodDeclaration;
 81.4886 -    }
 81.4887 -
 81.4888 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("subprogram_body",58, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-6)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4889 -            }
 81.4890 -          return CUP$Ada95ASTParser$result;
 81.4891 -
 81.4892 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4893 -          case 335: // operator_symbol ::= STRING_LITERAL 
 81.4894 -            {
 81.4895 -              String RESULT =null;
 81.4896 -		int stringLiteralleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.4897 -		int stringLiteralright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.4898 -		String stringLiteral = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.4899 -		
 81.4900 -    RESULT = stringLiteral;
 81.4901 -
 81.4902 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("operator_symbol",65, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4903 -            }
 81.4904 -          return CUP$Ada95ASTParser$result;
 81.4905 -
 81.4906 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4907 -          case 334: // mode ::= ACCESS 
 81.4908 -            {
 81.4909 -              FormalParameter.Mode RESULT =null;
 81.4910 -		
 81.4911 -    RESULT = FormalParameter.Mode.ACCESS;
 81.4912 -
 81.4913 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("mode",63, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4914 -            }
 81.4915 -          return CUP$Ada95ASTParser$result;
 81.4916 -
 81.4917 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4918 -          case 333: // mode ::= IN OUT 
 81.4919 -            {
 81.4920 -              FormalParameter.Mode RESULT =null;
 81.4921 -		
 81.4922 -    RESULT = FormalParameter.Mode.IN_OUT;
 81.4923 -
 81.4924 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("mode",63, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4925 -            }
 81.4926 -          return CUP$Ada95ASTParser$result;
 81.4927 -
 81.4928 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4929 -          case 332: // mode ::= OUT 
 81.4930 -            {
 81.4931 -              FormalParameter.Mode RESULT =null;
 81.4932 -		
 81.4933 -    RESULT = FormalParameter.Mode.OUT;
 81.4934 -
 81.4935 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("mode",63, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4936 -            }
 81.4937 -          return CUP$Ada95ASTParser$result;
 81.4938 -
 81.4939 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4940 -          case 331: // mode ::= IN 
 81.4941 -            {
 81.4942 -              FormalParameter.Mode RESULT =null;
 81.4943 -		
 81.4944 -    RESULT = FormalParameter.Mode.IN;
 81.4945 -
 81.4946 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("mode",63, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4947 -            }
 81.4948 -          return CUP$Ada95ASTParser$result;
 81.4949 -
 81.4950 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4951 -          case 330: // mode ::= 
 81.4952 -            {
 81.4953 -              FormalParameter.Mode RESULT =null;
 81.4954 -		
 81.4955 -    RESULT = FormalParameter.Mode.IN;
 81.4956 -
 81.4957 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("mode",63, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4958 -            }
 81.4959 -          return CUP$Ada95ASTParser$result;
 81.4960 -
 81.4961 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4962 -          case 329: // param ::= error SEMICOLON 
 81.4963 -            {
 81.4964 -              List RESULT =null;
 81.4965 -		int theErrorleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).left;
 81.4966 -		int theErrorright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).right;
 81.4967 -		Object theError = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).value;
 81.4968 -		
 81.4969 -    List list = new LinkedList();
 81.4970 -    ASTError error = new ASTError(theErrorleft, theErrorright);
 81.4971 -    list.add(error);
 81.4972 -    RESULT = list;
 81.4973 -
 81.4974 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("param",62, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.4975 -            }
 81.4976 -          return CUP$Ada95ASTParser$result;
 81.4977 -
 81.4978 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.4979 -          case 328: // param ::= defining_identifier_list COLON mode subtype_mark init_opt 
 81.4980 -            {
 81.4981 -              List RESULT =null;
 81.4982 -		int identifierListleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-4)).left;
 81.4983 -		int identifierListright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-4)).right;
 81.4984 -		List identifierList = (List)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-4)).value;
 81.4985 -		int modeleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).left;
 81.4986 -		int moderight = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).right;
 81.4987 -		FormalParameter.Mode mode = (FormalParameter.Mode)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).value;
 81.4988 -		int subtypeleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).left;
 81.4989 -		int subtyperight = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).right;
 81.4990 -		String subtype = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).value;
 81.4991 -		int initleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.4992 -		int initright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.4993 -		Expression init = (Expression)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.4994 -		
 81.4995 -    List list = new LinkedList();
 81.4996 -    Identifier subtypeId = new Identifier(subtypeleft, subtyperight, subtype);
 81.4997 -    TypeName typeName = new TypeName(subtypeleft, subtyperight, subtypeId);
 81.4998 -    for (Object item : identifierList) {
 81.4999 -        Identifier identifier = (Identifier)item;
 81.5000 -        Variable variable = new Variable (identifier.getStartOffset(), identifier.getEndOffset(), identifier);
 81.5001 -	    int end = init == null ? subtyperight : initright;
 81.5002 -        FormalParameter parameter = new FormalParameter(identifierListleft, end, variable, mode, typeName, init);
 81.5003 -    	list.add(parameter);
 81.5004 -    }
 81.5005 -    RESULT = list;
 81.5006 -
 81.5007 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("param",62, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-4)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.5008 -            }
 81.5009 -          return CUP$Ada95ASTParser$result;
 81.5010 -
 81.5011 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.5012 -          case 327: // param_s ::= param_s SEMICOLON param 
 81.5013 -            {
 81.5014 -              List RESULT =null;
 81.5015 -		int listleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).left;
 81.5016 -		int listright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).right;
 81.5017 -		List list = (List)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).value;
 81.5018 -		int parameterleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.5019 -		int parameterright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.5020 -		List parameter = (List)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.5021 -		
 81.5022 -    list.addAll(parameter);
 81.5023 -    RESULT = list;
 81.5024 -
 81.5025 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("param_s",59, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.5026 -            }
 81.5027 -          return CUP$Ada95ASTParser$result;
 81.5028 -
 81.5029 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.5030 -          case 326: // param_s ::= param 
 81.5031 -            {
 81.5032 -              List RESULT =null;
 81.5033 -		int parameterleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.5034 -		int parameterright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.5035 -		List parameter = (List)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.5036 -		
 81.5037 -    List list = new LinkedList();
 81.5038 -    list.addAll(parameter);
 81.5039 -    RESULT = list;
 81.5040 -
 81.5041 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("param_s",59, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.5042 -            }
 81.5043 -          return CUP$Ada95ASTParser$result;
 81.5044 -
 81.5045 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.5046 -          case 325: // formal_part ::= LPAREN param_s RPAREN 
 81.5047 -            {
 81.5048 -              List RESULT =null;
 81.5049 -		int listleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).left;
 81.5050 -		int listright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).right;
 81.5051 -		List list = (List)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).value;
 81.5052 -		
 81.5053 -	RESULT = list;
 81.5054 -
 81.5055 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("formal_part",61, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.5056 -            }
 81.5057 -          return CUP$Ada95ASTParser$result;
 81.5058 -
 81.5059 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.5060 -          case 324: // formal_part_opt ::= formal_part 
 81.5061 -            {
 81.5062 -              List RESULT =null;
 81.5063 -		int listleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.5064 -		int listright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.5065 -		List list = (List)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.5066 -		
 81.5067 -	RESULT = list;
 81.5068 -
 81.5069 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("formal_part_opt",60, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.5070 -            }
 81.5071 -          return CUP$Ada95ASTParser$result;
 81.5072 -
 81.5073 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.5074 -          case 323: // formal_part_opt ::= 
 81.5075 -            {
 81.5076 -              List RESULT =null;
 81.5077 -		
 81.5078 -	List list = new LinkedList();
 81.5079 -	RESULT = list;
 81.5080 -
 81.5081 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("formal_part_opt",60, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.5082 -            }
 81.5083 -          return CUP$Ada95ASTParser$result;
 81.5084 -
 81.5085 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.5086 -          case 322: // designator ::= operator_symbol 
 81.5087 -            {
 81.5088 -              String RESULT =null;
 81.5089 -		int nameleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.5090 -		int nameright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.5091 -		String name = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.5092 -		
 81.5093 -    RESULT = name;
 81.5094 -
 81.5095 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("designator",64, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.5096 -            }
 81.5097 -          return CUP$Ada95ASTParser$result;
 81.5098 -
 81.5099 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.5100 -          case 321: // designator ::= compound_name 
 81.5101 -            {
 81.5102 -              String RESULT =null;
 81.5103 -		int nameleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.5104 -		int nameright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.5105 -		String name = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.5106 -		
 81.5107 -    RESULT = name;
 81.5108 -
 81.5109 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("designator",64, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.5110 -            }
 81.5111 -          return CUP$Ada95ASTParser$result;
 81.5112 -
 81.5113 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.5114 -          case 320: // subprogram_specification ::= FUNCTION designator 
 81.5115 -            {
 81.5116 -              SubprogramSpecification RESULT =null;
 81.5117 -		int functionleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).left;
 81.5118 -		int functionright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).right;
 81.5119 -		Object function = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).value;
 81.5120 -		int functionNameleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.5121 -		int functionNameright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.5122 -		String functionName = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.5123 -		
 81.5124 -    Identifier functionId = new Identifier(functionNameleft, functionNameright, functionName);
 81.5125 -    SubprogramSpecification subprogramSpecification = new SubprogramSpecification(functionleft, functionNameright, functionId);
 81.5126 -    RESULT = subprogramSpecification;
 81.5127 -
 81.5128 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("subprogram_specification",56, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.5129 -            }
 81.5130 -          return CUP$Ada95ASTParser$result;
 81.5131 -
 81.5132 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.5133 -          case 319: // subprogram_specification ::= FUNCTION designator formal_part_opt RETURN name 
 81.5134 -            {
 81.5135 -              SubprogramSpecification RESULT =null;
 81.5136 -		int functionleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-4)).left;
 81.5137 -		int functionright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-4)).right;
 81.5138 -		Object function = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-4)).value;
 81.5139 -		int functionNameleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)).left;
 81.5140 -		int functionNameright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)).right;
 81.5141 -		String functionName = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)).value;
 81.5142 -		int formalPartleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).left;
 81.5143 -		int formalPartright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).right;
 81.5144 -		List formalPart = (List)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).value;
 81.5145 -		int subtypeMarkleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.5146 -		int subtypeMarkright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.5147 -		String subtypeMark = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.5148 -		
 81.5149 -    Identifier functionId = new Identifier(functionNameleft, functionNameright, functionName);
 81.5150 -    Identifier subtypeReturn = new Identifier(subtypeMarkleft, subtypeMarkright, subtypeMark);
 81.5151 -    SubprogramSpecification subprogramSpecification = new SubprogramSpecification(functionleft, subtypeMarkright, functionId, formalPart, subtypeReturn);
 81.5152 -    RESULT = subprogramSpecification;
 81.5153 -
 81.5154 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("subprogram_specification",56, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-4)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.5155 -            }
 81.5156 -          return CUP$Ada95ASTParser$result;
 81.5157 -
 81.5158 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.5159 -          case 318: // subprogram_specification ::= PROCEDURE compound_name formal_part_opt 
 81.5160 -            {
 81.5161 -              SubprogramSpecification RESULT =null;
 81.5162 -		int procedureleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).left;
 81.5163 -		int procedureright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).right;
 81.5164 -		Object procedure = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).value;
 81.5165 -		int procedureNameleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).left;
 81.5166 -		int procedureNameright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).right;
 81.5167 -		String procedureName = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).value;
 81.5168 -		int formalPartleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.5169 -		int formalPartright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.5170 -		List formalPart = (List)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.5171 -		
 81.5172 -    Identifier procedureId = new Identifier(procedureNameleft, procedureNameright, procedureName);
 81.5173 -    SubprogramSpecification subprogramSpecification = new SubprogramSpecification(procedureleft, formalPartright, procedureId, formalPart);
 81.5174 -    RESULT = subprogramSpecification;
 81.5175 -
 81.5176 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("subprogram_specification",56, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.5177 -            }
 81.5178 -          return CUP$Ada95ASTParser$result;
 81.5179 -
 81.5180 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.5181 -          case 317: // subprog_declaration ::= subprogram_specification IS ABSTRACT SEMICOLON 
 81.5182 -            {
 81.5183 -              Statement RESULT =null;
 81.5184 -		int subprogleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)).left;
 81.5185 -		int subprogright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)).right;
 81.5186 -		SubprogramSpecification subprog = (SubprogramSpecification)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)).value;
 81.5187 -		int endleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.5188 -		int endright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.5189 -		Object end = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.5190 -		
 81.5191 -    RESULT = new MethodDeclaration(subprogleft, endright, Ada95ASTParser.ABSTRACT, subprog);
 81.5192 -
 81.5193 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("subprog_declaration",3, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.5194 -            }
 81.5195 -          return CUP$Ada95ASTParser$result;
 81.5196 -
 81.5197 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.5198 -          case 316: // subprog_declaration ::= generic_subp_inst SEMICOLON 
 81.5199 -            {
 81.5200 -              Statement RESULT =null;
 81.5201 -		int subprogleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).left;
 81.5202 -		int subprogright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).right;
 81.5203 -		SubprogramSpecification subprog = (SubprogramSpecification)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).value;
 81.5204 -		int endleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.5205 -		int endright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.5206 -		Object end = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.5207 -		
 81.5208 -    RESULT = new MethodDeclaration(subprogleft, endright, 0/*modifier*/, subprog);
 81.5209 -
 81.5210 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("subprog_declaration",3, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.5211 -            }
 81.5212 -          return CUP$Ada95ASTParser$result;
 81.5213 -
 81.5214 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.5215 -          case 315: // subprog_declaration ::= subprogram_specification SEMICOLON 
 81.5216 -            {
 81.5217 -              Statement RESULT =null;
 81.5218 -		int subprogleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).left;
 81.5219 -		int subprogright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).right;
 81.5220 -		SubprogramSpecification subprog = (SubprogramSpecification)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).value;
 81.5221 -		int endleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.5222 -		int endright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.5223 -		Object end = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.5224 -		
 81.5225 -    RESULT = new MethodDeclaration(subprogleft, endright, 0/*modifier*/, subprog);
 81.5226 -
 81.5227 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("subprog_declaration",3, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.5228 -            }
 81.5229 -          return CUP$Ada95ASTParser$result;
 81.5230 -
 81.5231 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.5232 -          case 314: // goto_statement ::= GOTO name SEMICOLON 
 81.5233 -            {
 81.5234 -              Statement RESULT =null;
 81.5235 -		int tokenleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).left;
 81.5236 -		int tokenright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).right;
 81.5237 -		Object token = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).value;
 81.5238 -		int labelNameleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).left;
 81.5239 -		int labelNameright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).right;
 81.5240 -		String labelName = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).value;
 81.5241 -		int endleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.5242 -		int endright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.5243 -		Object end = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.5244 -		
 81.5245 -    RESULT = new GotoStatement(tokenleft, endright, labelName);
 81.5246 -
 81.5247 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("goto_statement",55, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.5248 -            }
 81.5249 -          return CUP$Ada95ASTParser$result;
 81.5250 -
 81.5251 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.5252 -          case 313: // return_statement ::= RETURN expression SEMICOLON 
 81.5253 -            {
 81.5254 -              Statement RESULT =null;
 81.5255 -		int tokenleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).left;
 81.5256 -		int tokenright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).right;
 81.5257 -		Object token = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).value;
 81.5258 -		int exprleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).left;
 81.5259 -		int exprright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).right;
 81.5260 -		Expression expr = (Expression)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).value;
 81.5261 -		int endleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.5262 -		int endright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.5263 -		Object end = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.5264 -		
 81.5265 -    RESULT = new ReturnStatement(tokenleft, endright, expr);
 81.5266 -
 81.5267 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("return_statement",66, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.5268 -            }
 81.5269 -          return CUP$Ada95ASTParser$result;
 81.5270 -
 81.5271 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.5272 -          case 312: // return_statement ::= RETURN SEMICOLON 
 81.5273 -            {
 81.5274 -              Statement RESULT =null;
 81.5275 -		int tokenleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).left;
 81.5276 -		int tokenright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).right;
 81.5277 -		Object token = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).value;
 81.5278 -		int endleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.5279 -		int endright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.5280 -		Object end = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.5281 -		
 81.5282 -    RESULT = new ReturnStatement(tokenleft, endright);
 81.5283 -
 81.5284 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("return_statement",66, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.5285 -            }
 81.5286 -          return CUP$Ada95ASTParser$result;
 81.5287 -
 81.5288 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.5289 -          case 311: // when_opt ::= WHEN condition 
 81.5290 -            {
 81.5291 -              Expression RESULT =null;
 81.5292 -		int condleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.5293 -		int condright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.5294 -		Expression cond = (Expression)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.5295 -		
 81.5296 -    RESULT = cond;
 81.5297 -
 81.5298 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("when_opt",108, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.5299 -            }
 81.5300 -          return CUP$Ada95ASTParser$result;
 81.5301 -
 81.5302 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.5303 -          case 310: // when_opt ::= 
 81.5304 -            {
 81.5305 -              Expression RESULT =null;
 81.5306 -		
 81.5307 -    RESULT = null;
 81.5308 -
 81.5309 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("when_opt",108, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.5310 -            }
 81.5311 -          return CUP$Ada95ASTParser$result;
 81.5312 -
 81.5313 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.5314 -          case 309: // name_opt ::= name 
 81.5315 -            {
 81.5316 -              String RESULT =null;
 81.5317 -		int nameleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.5318 -		int nameright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.5319 -		String name = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.5320 -		
 81.5321 -    RESULT = name;
 81.5322 -
 81.5323 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("name_opt",54, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.5324 -            }
 81.5325 -          return CUP$Ada95ASTParser$result;
 81.5326 -
 81.5327 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.5328 -          case 308: // name_opt ::= 
 81.5329 -            {
 81.5330 -              String RESULT =null;
 81.5331 -		
 81.5332 -    RESULT = null;
 81.5333 -
 81.5334 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("name_opt",54, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.5335 -            }
 81.5336 -          return CUP$Ada95ASTParser$result;
 81.5337 -
 81.5338 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.5339 -          case 307: // exit_statement ::= EXIT name_opt when_opt SEMICOLON 
 81.5340 -            {
 81.5341 -              Statement RESULT =null;
 81.5342 -		int tokenleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)).left;
 81.5343 -		int tokenright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)).right;
 81.5344 -		Object token = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)).value;
 81.5345 -		int loopNameleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).left;
 81.5346 -		int loopNameright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).right;
 81.5347 -		String loopName = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).value;
 81.5348 -		int whenConditionleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).left;
 81.5349 -		int whenConditionright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).right;
 81.5350 -		Expression whenCondition = (Expression)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).value;
 81.5351 -		int endleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.5352 -		int endright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.5353 -		Object end = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.5354 -		
 81.5355 -    RESULT = new ExitStatement(tokenleft, endright, loopName, whenCondition); 
 81.5356 -
 81.5357 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("exit_statement",53, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.5358 -            }
 81.5359 -          return CUP$Ada95ASTParser$result;
 81.5360 -
 81.5361 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.5362 -          case 306: // except_handler_part_opt ::= except_handler_part 
 81.5363 -            {
 81.5364 -              Object RESULT =null;
 81.5365 -
 81.5366 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("except_handler_part_opt",182, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.5367 -            }
 81.5368 -          return CUP$Ada95ASTParser$result;
 81.5369 -
 81.5370 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.5371 -          case 305: // except_handler_part_opt ::= 
 81.5372 -            {
 81.5373 -              Object RESULT =null;
 81.5374 -
 81.5375 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("except_handler_part_opt",182, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.5376 -            }
 81.5377 -          return CUP$Ada95ASTParser$result;
 81.5378 -
 81.5379 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.5380 -          case 304: // handled_stmt_s ::= sequence_of_statements except_handler_part_opt 
 81.5381 -            {
 81.5382 -              List RESULT =null;
 81.5383 -		int statementsleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).left;
 81.5384 -		int statementsright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).right;
 81.5385 -		List statements = (List)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).value;
 81.5386 -		
 81.5387 -    RESULT = statements;
 81.5388 -
 81.5389 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("handled_stmt_s",101, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.5390 -            }
 81.5391 -          return CUP$Ada95ASTParser$result;
 81.5392 -
 81.5393 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.5394 -          case 303: // block_body ::= BEGIN handled_stmt_s 
 81.5395 -            {
 81.5396 -              Block RESULT =null;
 81.5397 -		int tokenleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).left;
 81.5398 -		int tokenright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).right;
 81.5399 -		Object token = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).value;
 81.5400 -		int statementsleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.5401 -		int statementsright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.5402 -		List statements = (List)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.5403 -		
 81.5404 -    Block body = new Block(tokenright, statementsright, statements);
 81.5405 -    RESULT = body;
 81.5406 -
 81.5407 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("block_body",52, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.5408 -            }
 81.5409 -          return CUP$Ada95ASTParser$result;
 81.5410 -
 81.5411 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.5412 -          case 302: // block_declarative ::= DECLARE declarative_part 
 81.5413 -            {
 81.5414 -              Block RESULT =null;
 81.5415 -		int tokenleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).left;
 81.5416 -		int tokenright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).right;
 81.5417 -		Object token = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).value;
 81.5418 -		int declarativePartleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.5419 -		int declarativePartright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.5420 -		List declarativePart = (List)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.5421 -		
 81.5422 -    Block declarations = new Block(tokenright, declarativePartleft, declarativePart);
 81.5423 -    RESULT = declarations;
 81.5424 -
 81.5425 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("block_declarative",51, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.5426 -            }
 81.5427 -          return CUP$Ada95ASTParser$result;
 81.5428 -
 81.5429 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.5430 -          case 301: // block_declarative ::= 
 81.5431 -            {
 81.5432 -              Block RESULT =null;
 81.5433 -		
 81.5434 -    RESULT = null;
 81.5435 -
 81.5436 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("block_declarative",51, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.5437 -            }
 81.5438 -          return CUP$Ada95ASTParser$result;
 81.5439 -
 81.5440 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.5441 -          case 300: // block_statement ::= label_opt block_declarative block_body END id_opt SEMICOLON 
 81.5442 -            {
 81.5443 -              BlockStatement RESULT =null;
 81.5444 -		int labelleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-5)).left;
 81.5445 -		int labelright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-5)).right;
 81.5446 -		String label = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-5)).value;
 81.5447 -		int declarationsleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-4)).left;
 81.5448 -		int declarationsright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-4)).right;
 81.5449 -		Block declarations = (Block)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-4)).value;
 81.5450 -		int bodyleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)).left;
 81.5451 -		int bodyright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)).right;
 81.5452 -		Block body = (Block)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)).value;
 81.5453 -		int endleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.5454 -		int endright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.5455 -		Object end = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.5456 -		
 81.5457 -    int start = (label == null) ? declarationsleft : labelleft;
 81.5458 -    Identifier identifier = new Identifier(labelleft, labelright, label);
 81.5459 -    BlockStatement blockStatement = new BlockStatement (start, endleft, identifier, declarations, body);
 81.5460 -    RESULT = blockStatement;
 81.5461 -
 81.5462 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("block_statement",50, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-5)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.5463 -            }
 81.5464 -          return CUP$Ada95ASTParser$result;
 81.5465 -
 81.5466 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.5467 -          case 299: // id_opt ::= designator 
 81.5468 -            {
 81.5469 -              String RESULT =null;
 81.5470 -		int nameleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.5471 -		int nameright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.5472 -		String name = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.5473 -		
 81.5474 -    RESULT = name;
 81.5475 -
 81.5476 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("id_opt",104, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.5477 -            }
 81.5478 -          return CUP$Ada95ASTParser$result;
 81.5479 -
 81.5480 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.5481 -          case 298: // id_opt ::= 
 81.5482 -            {
 81.5483 -              String RESULT =null;
 81.5484 -		
 81.5485 -    RESULT = null;
 81.5486 -
 81.5487 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("id_opt",104, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.5488 -            }
 81.5489 -          return CUP$Ada95ASTParser$result;
 81.5490 -
 81.5491 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.5492 -          case 297: // basic_loop ::= LOOP sequence_of_statements END LOOP 
 81.5493 -            {
 81.5494 -              Block RESULT =null;
 81.5495 -		int statementsleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).left;
 81.5496 -		int statementsright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).right;
 81.5497 -		List statements = (List)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).value;
 81.5498 -		
 81.5499 -    Block loopBlock = new Block(statementsleft, statementsright, statements);
 81.5500 -    RESULT = loopBlock;
 81.5501 -
 81.5502 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("basic_loop",48, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.5503 -            }
 81.5504 -          return CUP$Ada95ASTParser$result;
 81.5505 -
 81.5506 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.5507 -          case 296: // reverse_opt ::= REVERSE 
 81.5508 -            {
 81.5509 -              Object RESULT =null;
 81.5510 -
 81.5511 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("reverse_opt",181, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.5512 -            }
 81.5513 -          return CUP$Ada95ASTParser$result;
 81.5514 -
 81.5515 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.5516 -          case 295: // reverse_opt ::= 
 81.5517 -            {
 81.5518 -              Object RESULT =null;
 81.5519 -
 81.5520 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("reverse_opt",181, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.5521 -            }
 81.5522 -          return CUP$Ada95ASTParser$result;
 81.5523 -
 81.5524 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.5525 -          case 294: // iter_part ::= FOR IDENTIFIER IN 
 81.5526 -            {
 81.5527 -              Object RESULT =null;
 81.5528 -
 81.5529 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("iter_part",180, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.5530 -            }
 81.5531 -          return CUP$Ada95ASTParser$result;
 81.5532 -
 81.5533 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.5534 -          case 293: // iteration ::= iter_part reverse_opt discrete_range 
 81.5535 -            {
 81.5536 -              Expression RESULT =null;
 81.5537 -		int conditionleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.5538 -		int conditionright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.5539 -		Expression condition = (Expression)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.5540 -		
 81.5541 -    RESULT = condition;
 81.5542 -
 81.5543 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("iteration",49, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.5544 -            }
 81.5545 -          return CUP$Ada95ASTParser$result;
 81.5546 -
 81.5547 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.5548 -          case 292: // iteration ::= WHILE condition 
 81.5549 -            {
 81.5550 -              Expression RESULT =null;
 81.5551 -		int conditionleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.5552 -		int conditionright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.5553 -		Expression condition = (Expression)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.5554 -		
 81.5555 -    RESULT = condition;
 81.5556 -
 81.5557 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("iteration",49, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.5558 -            }
 81.5559 -          return CUP$Ada95ASTParser$result;
 81.5560 -
 81.5561 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.5562 -          case 291: // iteration ::= 
 81.5563 -            {
 81.5564 -              Expression RESULT =null;
 81.5565 -		
 81.5566 -    RESULT = null;
 81.5567 -
 81.5568 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("iteration",49, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.5569 -            }
 81.5570 -          return CUP$Ada95ASTParser$result;
 81.5571 -
 81.5572 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.5573 -          case 290: // label_opt ::= IDENTIFIER COLON 
 81.5574 -            {
 81.5575 -              String RESULT =null;
 81.5576 -		int idleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).left;
 81.5577 -		int idright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).right;
 81.5578 -		String id = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).value;
 81.5579 -		
 81.5580 -    RESULT = id;
 81.5581 -
 81.5582 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("label_opt",112, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.5583 -            }
 81.5584 -          return CUP$Ada95ASTParser$result;
 81.5585 -
 81.5586 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.5587 -          case 289: // label_opt ::= 
 81.5588 -            {
 81.5589 -              String RESULT =null;
 81.5590 -		
 81.5591 -    RESULT = null;
 81.5592 -
 81.5593 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("label_opt",112, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.5594 -            }
 81.5595 -          return CUP$Ada95ASTParser$result;
 81.5596 -
 81.5597 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.5598 -          case 288: // loop_statement ::= label_opt iteration basic_loop id_opt SEMICOLON 
 81.5599 -            {
 81.5600 -              LoopStatement RESULT =null;
 81.5601 -		int labelleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-4)).left;
 81.5602 -		int labelright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-4)).right;
 81.5603 -		String label = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-4)).value;
 81.5604 -		int iterationleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)).left;
 81.5605 -		int iterationright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)).right;
 81.5606 -		Expression iteration = (Expression)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)).value;
 81.5607 -		int statementleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).left;
 81.5608 -		int statementright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).right;
 81.5609 -		Block statement = (Block)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).value;
 81.5610 -		int endleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.5611 -		int endright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.5612 -		Object end = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.5613 -		
 81.5614 -    int start = (label == null) ? iterationleft : labelleft;
 81.5615 -    Identifier identifier = new Identifier(labelleft, labelright, label);
 81.5616 -    LoopStatement loopStatement = new LoopStatement(start, endright, identifier, iteration, statement);
 81.5617 -    RESULT = loopStatement;
 81.5618 -
 81.5619 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("loop_statement",47, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-4)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.5620 -            }
 81.5621 -          return CUP$Ada95ASTParser$result;
 81.5622 -
 81.5623 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.5624 -          case 287: // alternative ::= WHEN choice_s ARROW sequence_of_statements 
 81.5625 -            {
 81.5626 -              CaseWhen RESULT =null;
 81.5627 -		int tokenleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)).left;
 81.5628 -		int tokenright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)).right;
 81.5629 -		Object token = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)).value;
 81.5630 -		int exprleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).left;
 81.5631 -		int exprright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).right;
 81.5632 -		Expression expr = (Expression)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).value;
 81.5633 -		int statementsleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.5634 -		int statementsright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.5635 -		List statements = (List)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.5636 -		
 81.5637 -    CaseWhen caseWhen = new CaseWhen(tokenleft, statementsright, expr, statements);
 81.5638 -    RESULT = caseWhen;
 81.5639 -
 81.5640 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("alternative",46, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.5641 -            }
 81.5642 -          return CUP$Ada95ASTParser$result;
 81.5643 -
 81.5644 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.5645 -          case 286: // alternative_s ::= alternative_s alternative 
 81.5646 -            {
 81.5647 -              List RESULT =null;
 81.5648 -		int whenListleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).left;
 81.5649 -		int whenListright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).right;
 81.5650 -		List whenList = (List)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).value;
 81.5651 -		int whenleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.5652 -		int whenright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.5653 -		CaseWhen when = (CaseWhen)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.5654 -		
 81.5655 -    whenList.add (when);
 81.5656 -    RESULT = whenList;
 81.5657 -
 81.5658 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("alternative_s",45, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.5659 -            }
 81.5660 -          return CUP$Ada95ASTParser$result;
 81.5661 -
 81.5662 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.5663 -          case 285: // alternative_s ::= 
 81.5664 -            {
 81.5665 -              List RESULT =null;
 81.5666 -		
 81.5667 -    RESULT = new LinkedList();
 81.5668 -
 81.5669 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("alternative_s",45, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.5670 -            }
 81.5671 -          return CUP$Ada95ASTParser$result;
 81.5672 -
 81.5673 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.5674 -          case 284: // case_statement ::= CASE expression IS pragma_s alternative_s END CASE SEMICOLON 
 81.5675 -            {
 81.5676 -              CaseStatement RESULT =null;
 81.5677 -		int tokenleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-7)).left;
 81.5678 -		int tokenright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-7)).right;
 81.5679 -		Object token = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-7)).value;
 81.5680 -		int exprleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-6)).left;
 81.5681 -		int exprright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-6)).right;
 81.5682 -		Expression expr = (Expression)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-6)).value;
 81.5683 -		int whenListleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)).left;
 81.5684 -		int whenListright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)).right;
 81.5685 -		List whenList = (List)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)).value;
 81.5686 -		int endleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.5687 -		int endright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.5688 -		Object end = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.5689 -		
 81.5690 -    Block whenBlock = new Block(whenListleft, whenListright, whenList);
 81.5691 -    CaseStatement caseStatement = new CaseStatement(tokenleft, endright, expr, whenBlock);
 81.5692 -    RESULT = caseStatement;
 81.5693 -
 81.5694 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("case_statement",44, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-7)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.5695 -            }
 81.5696 -          return CUP$Ada95ASTParser$result;
 81.5697 -
 81.5698 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.5699 -          case 283: // else_opt ::= ELSE sequence_of_statements 
 81.5700 -            {
 81.5701 -              Block RESULT =null;
 81.5702 -		int statementsleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.5703 -		int statementsright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.5704 -		List statements = (List)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.5705 -		
 81.5706 -    Block block = new Block(statementsleft, statementsright, statements);
 81.5707 -    RESULT = block;
 81.5708 -
 81.5709 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("else_opt",43, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.5710 -            }
 81.5711 -          return CUP$Ada95ASTParser$result;
 81.5712 -
 81.5713 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.5714 -          case 282: // else_opt ::= 
 81.5715 -            {
 81.5716 -              Block RESULT =null;
 81.5717 -		
 81.5718 -    RESULT = null;
 81.5719 -
 81.5720 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("else_opt",43, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.5721 -            }
 81.5722 -          return CUP$Ada95ASTParser$result;
 81.5723 -
 81.5724 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.5725 -          case 281: // condition ::= expression 
 81.5726 -            {
 81.5727 -              Expression RESULT =null;
 81.5728 -		int exprleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.5729 -		int exprright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.5730 -		Expression expr = (Expression)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.5731 -		
 81.5732 -    RESULT = expr;
 81.5733 -
 81.5734 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("condition",42, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.5735 -            }
 81.5736 -          return CUP$Ada95ASTParser$result;
 81.5737 -
 81.5738 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.5739 -          case 280: // cond_clause_s ::= cond_clause_s ELSIF condition THEN sequence_of_statements 
 81.5740 -            {
 81.5741 -              List[] RESULT =null;
 81.5742 -		int condListleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-4)).left;
 81.5743 -		int condListright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-4)).right;
 81.5744 -		List[] condList = (List[])((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-4)).value;
 81.5745 -		int tokenleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)).left;
 81.5746 -		int tokenright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)).right;
 81.5747 -		Object token = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)).value;
 81.5748 -		int conditionleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).left;
 81.5749 -		int conditionright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).right;
 81.5750 -		Expression condition = (Expression)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).value;
 81.5751 -		int iftrueleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.5752 -		int iftrueright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.5753 -		List iftrue = (List)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.5754 -		
 81.5755 -    Block block = new Block(iftrueleft, iftrueright, iftrue);
 81.5756 -    ((LinkedList)condList[0]).addFirst(condition);
 81.5757 -    ((LinkedList)condList[1]).addFirst(block);
 81.5758 -    ((LinkedList)condList[2]).addFirst(new Integer(tokenleft));
 81.5759 -
 81.5760 -    RESULT = condList;
 81.5761 -
 81.5762 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("cond_clause_s",41, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-4)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.5763 -            }
 81.5764 -          return CUP$Ada95ASTParser$result;
 81.5765 -
 81.5766 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.5767 -          case 279: // cond_clause_s ::= condition THEN sequence_of_statements 
 81.5768 -            {
 81.5769 -              List[] RESULT =null;
 81.5770 -		int conditionleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).left;
 81.5771 -		int conditionright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).right;
 81.5772 -		Expression condition = (Expression)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).value;
 81.5773 -		int tokenleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).left;
 81.5774 -		int tokenright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).right;
 81.5775 -		Object token = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).value;
 81.5776 -		int iftrueleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.5777 -		int iftrueright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.5778 -		List iftrue = (List)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.5779 -		
 81.5780 -    List listConditions = new LinkedList();
 81.5781 -    List listStatements = new LinkedList();
 81.5782 -    List listTokens = new LinkedList();
 81.5783 -
 81.5784 -    Block block = new Block(iftrueleft, iftrueright, iftrue);
 81.5785 -    listConditions.add(condition);
 81.5786 -    listStatements.add(block);
 81.5787 -    listTokens.add(new Integer(tokenleft));
 81.5788 -
 81.5789 -    List[] returnList = new List[] { listConditions, listStatements, listTokens };
 81.5790 -	
 81.5791 -    RESULT = returnList;
 81.5792 -
 81.5793 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("cond_clause_s",41, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.5794 -            }
 81.5795 -          return CUP$Ada95ASTParser$result;
 81.5796 -
 81.5797 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.5798 -          case 278: // if_statement ::= IF cond_clause_s else_opt END IF SEMICOLON 
 81.5799 -            {
 81.5800 -              IfStatement RESULT =null;
 81.5801 -		int tokenleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-5)).left;
 81.5802 -		int tokenright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-5)).right;
 81.5803 -		Object token = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-5)).value;
 81.5804 -		int condListleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-4)).left;
 81.5805 -		int condListright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-4)).right;
 81.5806 -		List[] condList = (List[])((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-4)).value;
 81.5807 -		int iffalseleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)).left;
 81.5808 -		int iffalseright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)).right;
 81.5809 -		Block iffalse = (Block)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)).value;
 81.5810 -		int endleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.5811 -		int endright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.5812 -		Object end = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.5813 -		
 81.5814 -    Expression innerCondition = null;
 81.5815 -    Expression firstCondition = null;
 81.5816 -    Statement trueStatement = null;
 81.5817 -    Statement falseStatement = iffalse;
 81.5818 -		
 81.5819 -    for (int i=1 ; i < condList[0].size() ; i++) {
 81.5820 -        innerCondition = (Expression)condList[0].get(i);
 81.5821 -        trueStatement = (Statement)condList[1].get(i);
 81.5822 -        int start = ((Integer)condList[2].get(i)).intValue();
 81.5823 -        falseStatement = new IfStatement(start, endright, innerCondition, trueStatement, falseStatement);
 81.5824 -    }
 81.5825 -    
 81.5826 -    firstCondition = (Expression)condList[0].get(0);
 81.5827 -    trueStatement = (Statement)condList[1].get(0);
 81.5828 -    int start = ((Integer)condList[2].get(0)).intValue();
 81.5829 -    IfStatement ifStatement = new IfStatement(tokenleft, endright, firstCondition, trueStatement, falseStatement);		
 81.5830 -	
 81.5831 -    RESULT = ifStatement;
 81.5832 -
 81.5833 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("if_statement",40, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-5)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.5834 -            }
 81.5835 -          return CUP$Ada95ASTParser$result;
 81.5836 -
 81.5837 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.5838 -          case 277: // assignment_statement ::= name ASSIGNMENT expression SEMICOLON 
 81.5839 -            {
 81.5840 -              Statement RESULT =null;
 81.5841 -		int varleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)).left;
 81.5842 -		int varright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)).right;
 81.5843 -		String var = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)).value;
 81.5844 -		int exprleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).left;
 81.5845 -		int exprright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).right;
 81.5846 -		Expression expr = (Expression)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).value;
 81.5847 -		
 81.5848 -    System.out.println ("assignment_statement ::= var => " + var);
 81.5849 -    System.out.println ("assignment_statement ::= expr => " + expr);
 81.5850 -    Identifier id = new Identifier(varleft, varright, var);
 81.5851 -    Variable variable = new Variable (varleft, varright, (Identifier)id);
 81.5852 -    Assignment assignment = new Assignment(varleft, exprright, variable, expr);
 81.5853 -    RESULT = assignment;
 81.5854 -
 81.5855 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("assignment_statement",39, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.5856 -            }
 81.5857 -          return CUP$Ada95ASTParser$result;
 81.5858 -
 81.5859 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.5860 -          case 276: // null_statement ::= NULL SEMICOLON 
 81.5861 -            {
 81.5862 -              Statement RESULT =null;
 81.5863 -		int tokenleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).left;
 81.5864 -		int tokenright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).right;
 81.5865 -		Object token = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).value;
 81.5866 -		int endleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.5867 -		int endright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.5868 -		Object end = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.5869 -		
 81.5870 -    RESULT = new NullStatement(tokenleft, endright);
 81.5871 -
 81.5872 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("null_statement",38, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.5873 -            }
 81.5874 -          return CUP$Ada95ASTParser$result;
 81.5875 -
 81.5876 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.5877 -          case 275: // label ::= LTLT IDENTIFIER GTGT 
 81.5878 -            {
 81.5879 -              Object RESULT =null;
 81.5880 -
 81.5881 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("label",176, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.5882 -            }
 81.5883 -          return CUP$Ada95ASTParser$result;
 81.5884 -
 81.5885 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.5886 -          case 274: // compound_statement ::= select_stmt 
 81.5887 -            {
 81.5888 -              Statement RESULT =null;
 81.5889 -
 81.5890 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("compound_statement",37, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.5891 -            }
 81.5892 -          return CUP$Ada95ASTParser$result;
 81.5893 -
 81.5894 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.5895 -          case 273: // compound_statement ::= accept_stmt 
 81.5896 -            {
 81.5897 -              Statement RESULT =null;
 81.5898 -
 81.5899 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("compound_statement",37, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.5900 -            }
 81.5901 -          return CUP$Ada95ASTParser$result;
 81.5902 -
 81.5903 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.5904 -          case 272: // compound_statement ::= block_statement 
 81.5905 -            {
 81.5906 -              Statement RESULT =null;
 81.5907 -		int statementleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.5908 -		int statementright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.5909 -		BlockStatement statement = (BlockStatement)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.5910 -		
 81.5911 -    RESULT = statement;
 81.5912 -
 81.5913 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("compound_statement",37, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.5914 -            }
 81.5915 -          return CUP$Ada95ASTParser$result;
 81.5916 -
 81.5917 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.5918 -          case 271: // compound_statement ::= loop_statement 
 81.5919 -            {
 81.5920 -              Statement RESULT =null;
 81.5921 -		int statementleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.5922 -		int statementright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.5923 -		LoopStatement statement = (LoopStatement)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.5924 -		
 81.5925 -    RESULT = statement;
 81.5926 -
 81.5927 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("compound_statement",37, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.5928 -            }
 81.5929 -          return CUP$Ada95ASTParser$result;
 81.5930 -
 81.5931 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.5932 -          case 270: // compound_statement ::= case_statement 
 81.5933 -            {
 81.5934 -              Statement RESULT =null;
 81.5935 -		int statementleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.5936 -		int statementright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.5937 -		CaseStatement statement = (CaseStatement)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.5938 -		
 81.5939 -    RESULT = statement;
 81.5940 -
 81.5941 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("compound_statement",37, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.5942 -            }
 81.5943 -          return CUP$Ada95ASTParser$result;
 81.5944 -
 81.5945 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.5946 -          case 269: // compound_statement ::= if_statement 
 81.5947 -            {
 81.5948 -              Statement RESULT =null;
 81.5949 -		int statementleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.5950 -		int statementright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.5951 -		IfStatement statement = (IfStatement)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.5952 -		
 81.5953 -    RESULT = statement;
 81.5954 -
 81.5955 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("compound_statement",37, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.5956 -            }
 81.5957 -          return CUP$Ada95ASTParser$result;
 81.5958 -
 81.5959 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.5960 -          case 268: // simple_statement ::= error SEMICOLON 
 81.5961 -            {
 81.5962 -              Statement RESULT =null;
 81.5963 -		int theErrorleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).left;
 81.5964 -		int theErrorright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).right;
 81.5965 -		Object theError = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).value;
 81.5966 -		
 81.5967 -    ASTError error = new ASTError(theErrorleft, theErrorright);
 81.5968 -    RESULT = error;
 81.5969 -
 81.5970 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("simple_statement",36, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.5971 -            }
 81.5972 -          return CUP$Ada95ASTParser$result;
 81.5973 -
 81.5974 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.5975 -          case 267: // simple_statement ::= requeue_stmt 
 81.5976 -            {
 81.5977 -              Statement RESULT =null;
 81.5978 -
 81.5979 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("simple_statement",36, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.5980 -            }
 81.5981 -          return CUP$Ada95ASTParser$result;
 81.5982 -
 81.5983 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.5984 -          case 266: // simple_statement ::= code_statement 
 81.5985 -            {
 81.5986 -              Statement RESULT =null;
 81.5987 -		int statementleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.5988 -		int statementright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.5989 -		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.5990 -		
 81.5991 -    RESULT = statement;
 81.5992 -
 81.5993 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("simple_statement",36, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.5994 -            }
 81.5995 -          return CUP$Ada95ASTParser$result;
 81.5996 -
 81.5997 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.5998 -          case 265: // simple_statement ::= raise_statement 
 81.5999 -            {
 81.6000 -              Statement RESULT =null;
 81.6001 -		int statementleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.6002 -		int statementright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.6003 -		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.6004 -		
 81.6005 -    RESULT = statement;
 81.6006 -
 81.6007 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("simple_statement",36, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6008 -            }
 81.6009 -          return CUP$Ada95ASTParser$result;
 81.6010 -
 81.6011 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6012 -          case 264: // simple_statement ::= abort_statement 
 81.6013 -            {
 81.6014 -              Statement RESULT =null;
 81.6015 -		int statementleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.6016 -		int statementright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.6017 -		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.6018 -		
 81.6019 -    RESULT = statement;
 81.6020 -
 81.6021 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("simple_statement",36, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6022 -            }
 81.6023 -          return CUP$Ada95ASTParser$result;
 81.6024 -
 81.6025 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6026 -          case 263: // simple_statement ::= delay_statement 
 81.6027 -            {
 81.6028 -              Statement RESULT =null;
 81.6029 -		int statementleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.6030 -		int statementright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.6031 -		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.6032 -		
 81.6033 -    RESULT = statement;
 81.6034 -
 81.6035 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("simple_statement",36, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6036 -            }
 81.6037 -          return CUP$Ada95ASTParser$result;
 81.6038 -
 81.6039 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6040 -          case 262: // simple_statement ::= procedure_call_statement 
 81.6041 -            {
 81.6042 -              Statement RESULT =null;
 81.6043 -		int statementleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.6044 -		int statementright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.6045 -		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.6046 -		
 81.6047 -    RESULT = statement;
 81.6048 -
 81.6049 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("simple_statement",36, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6050 -            }
 81.6051 -          return CUP$Ada95ASTParser$result;
 81.6052 -
 81.6053 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6054 -          case 261: // simple_statement ::= goto_statement 
 81.6055 -            {
 81.6056 -              Statement RESULT =null;
 81.6057 -		int statementleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.6058 -		int statementright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.6059 -		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.6060 -		
 81.6061 -    RESULT = statement;
 81.6062 -
 81.6063 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("simple_statement",36, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6064 -            }
 81.6065 -          return CUP$Ada95ASTParser$result;
 81.6066 -
 81.6067 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6068 -          case 260: // simple_statement ::= return_statement 
 81.6069 -            {
 81.6070 -              Statement RESULT =null;
 81.6071 -		int statementleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.6072 -		int statementright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.6073 -		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.6074 -		
 81.6075 -    RESULT = statement;
 81.6076 -
 81.6077 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("simple_statement",36, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6078 -            }
 81.6079 -          return CUP$Ada95ASTParser$result;
 81.6080 -
 81.6081 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6082 -          case 259: // simple_statement ::= exit_statement 
 81.6083 -            {
 81.6084 -              Statement RESULT =null;
 81.6085 -		int statementleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.6086 -		int statementright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.6087 -		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.6088 -		
 81.6089 -    RESULT = statement;
 81.6090 -
 81.6091 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("simple_statement",36, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6092 -            }
 81.6093 -          return CUP$Ada95ASTParser$result;
 81.6094 -
 81.6095 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6096 -          case 258: // simple_statement ::= assignment_statement 
 81.6097 -            {
 81.6098 -              Statement RESULT =null;
 81.6099 -		int statementleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.6100 -		int statementright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.6101 -		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.6102 -		
 81.6103 -    RESULT = statement;
 81.6104 -
 81.6105 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("simple_statement",36, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6106 -            }
 81.6107 -          return CUP$Ada95ASTParser$result;
 81.6108 -
 81.6109 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6110 -          case 257: // simple_statement ::= null_statement 
 81.6111 -            {
 81.6112 -              Statement RESULT =null;
 81.6113 -		int statementleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.6114 -		int statementright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.6115 -		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.6116 -		
 81.6117 -    RESULT = statement;
 81.6118 -
 81.6119 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("simple_statement",36, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6120 -            }
 81.6121 -          return CUP$Ada95ASTParser$result;
 81.6122 -
 81.6123 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6124 -          case 256: // unlabeled ::= pragma 
 81.6125 -            {
 81.6126 -              Statement RESULT =null;
 81.6127 -
 81.6128 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("unlabeled",105, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6129 -            }
 81.6130 -          return CUP$Ada95ASTParser$result;
 81.6131 -
 81.6132 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6133 -          case 255: // unlabeled ::= compound_statement 
 81.6134 -            {
 81.6135 -              Statement RESULT =null;
 81.6136 -		int statementleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.6137 -		int statementright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.6138 -		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.6139 -		
 81.6140 -    RESULT = statement;
 81.6141 -
 81.6142 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("unlabeled",105, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6143 -            }
 81.6144 -          return CUP$Ada95ASTParser$result;
 81.6145 -
 81.6146 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6147 -          case 254: // unlabeled ::= simple_statement 
 81.6148 -            {
 81.6149 -              Statement RESULT =null;
 81.6150 -		int statementleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.6151 -		int statementright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.6152 -		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.6153 -		
 81.6154 -    RESULT = statement;
 81.6155 -
 81.6156 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("unlabeled",105, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6157 -            }
 81.6158 -          return CUP$Ada95ASTParser$result;
 81.6159 -
 81.6160 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6161 -          case 253: // statement ::= label statement 
 81.6162 -            {
 81.6163 -              Statement RESULT =null;
 81.6164 -		int statementleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.6165 -		int statementright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.6166 -		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.6167 -		
 81.6168 -    RESULT = statement;
 81.6169 -
 81.6170 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("statement",102, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6171 -            }
 81.6172 -          return CUP$Ada95ASTParser$result;
 81.6173 -
 81.6174 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6175 -          case 252: // statement ::= unlabeled 
 81.6176 -            {
 81.6177 -              Statement RESULT =null;
 81.6178 -		int statementleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.6179 -		int statementright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.6180 -		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.6181 -		
 81.6182 -    RESULT = statement;
 81.6183 -
 81.6184 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("statement",102, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6185 -            }
 81.6186 -          return CUP$Ada95ASTParser$result;
 81.6187 -
 81.6188 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6189 -          case 251: // sequence_of_statements ::= sequence_of_statements statement 
 81.6190 -            {
 81.6191 -              List RESULT =null;
 81.6192 -		int listleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).left;
 81.6193 -		int listright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).right;
 81.6194 -		List list = (List)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).value;
 81.6195 -		int statementleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.6196 -		int statementright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.6197 -		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.6198 -		
 81.6199 -    list.add(statement);
 81.6200 -    RESULT = list;
 81.6201 -
 81.6202 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("sequence_of_statements",35, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6203 -            }
 81.6204 -          return CUP$Ada95ASTParser$result;
 81.6205 -
 81.6206 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6207 -          case 250: // sequence_of_statements ::= statement 
 81.6208 -            {
 81.6209 -              List RESULT =null;
 81.6210 -		int statementleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.6211 -		int statementright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.6212 -		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.6213 -		
 81.6214 -    List list = new LinkedList();
 81.6215 -    list.add(statement);
 81.6216 -    RESULT = list;
 81.6217 -
 81.6218 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("sequence_of_statements",35, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6219 -            }
 81.6220 -          return CUP$Ada95ASTParser$result;
 81.6221 -
 81.6222 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6223 -          case 249: // allocator ::= NEW qualified_expression 
 81.6224 -            {
 81.6225 -              Object RESULT =null;
 81.6226 -
 81.6227 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("allocator",175, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6228 -            }
 81.6229 -          return CUP$Ada95ASTParser$result;
 81.6230 -
 81.6231 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6232 -          case 248: // allocator ::= NEW name 
 81.6233 -            {
 81.6234 -              Object RESULT =null;
 81.6235 -
 81.6236 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("allocator",175, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6237 -            }
 81.6238 -          return CUP$Ada95ASTParser$result;
 81.6239 -
 81.6240 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6241 -          case 247: // qualified_expression ::= name TICK parenthesized_primary 
 81.6242 -            {
 81.6243 -              Expression RESULT =null;
 81.6244 -		int nameleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).left;
 81.6245 -		int nameright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).right;
 81.6246 -		String name = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).value;
 81.6247 -		int exprleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.6248 -		int exprright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.6249 -		Expression expr = (Expression)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.6250 -		
 81.6251 -    Identifier subtypeMark = new Identifier (nameleft, nameright, name);
 81.6252 -    RESULT = new QualifiedExpression (nameleft, exprright, subtypeMark, expr);
 81.6253 -
 81.6254 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("qualified_expression",34, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6255 -            }
 81.6256 -          return CUP$Ada95ASTParser$result;
 81.6257 -
 81.6258 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6259 -          case 246: // parenthesized_primary ::= LPAREN expression RPAREN 
 81.6260 -            {
 81.6261 -              Expression RESULT =null;
 81.6262 -		int exprleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).left;
 81.6263 -		int exprright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).right;
 81.6264 -		Expression expr = (Expression)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).value;
 81.6265 -		
 81.6266 -    RESULT = expr;
 81.6267 -
 81.6268 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("parenthesized_primary",107, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6269 -            }
 81.6270 -          return CUP$Ada95ASTParser$result;
 81.6271 -
 81.6272 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6273 -          case 245: // parenthesized_primary ::= aggregate 
 81.6274 -            {
 81.6275 -              Expression RESULT =null;
 81.6276 -
 81.6277 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("parenthesized_primary",107, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6278 -            }
 81.6279 -          return CUP$Ada95ASTParser$result;
 81.6280 -
 81.6281 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6282 -          case 244: // primary ::= parenthesized_primary 
 81.6283 -            {
 81.6284 -              Expression RESULT =null;
 81.6285 -		int exprleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.6286 -		int exprright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.6287 -		Expression expr = (Expression)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.6288 -		
 81.6289 -    System.out.println ("primary ::= parenthesized_primary => " + expr);
 81.6290 -    RESULT = expr;
 81.6291 -
 81.6292 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("primary",28, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6293 -            }
 81.6294 -          return CUP$Ada95ASTParser$result;
 81.6295 -
 81.6296 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6297 -          case 243: // primary ::= qualified_expression 
 81.6298 -            {
 81.6299 -              Expression RESULT =null;
 81.6300 -		int exprleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.6301 -		int exprright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.6302 -		Expression expr = (Expression)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.6303 -		
 81.6304 -    System.out.println ("primary ::= qualified_expression => " + expr);
 81.6305 -    RESULT = expr;
 81.6306 -
 81.6307 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("primary",28, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6308 -            }
 81.6309 -          return CUP$Ada95ASTParser$result;
 81.6310 -
 81.6311 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6312 -          case 242: // primary ::= allocator 
 81.6313 -            {
 81.6314 -              Expression RESULT =null;
 81.6315 -
 81.6316 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("primary",28, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6317 -            }
 81.6318 -          return CUP$Ada95ASTParser$result;
 81.6319 -
 81.6320 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6321 -          case 241: // primary ::= name 
 81.6322 -            {
 81.6323 -              Expression RESULT =null;
 81.6324 -		int nameleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.6325 -		int nameright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.6326 -		String name = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.6327 -		
 81.6328 -    System.out.println ("primary ::= name => " + name);
 81.6329 -    Scalar scalar = new Scalar(nameleft, nameright, name, Scalar.Type.STRING);
 81.6330 -    RESULT = scalar;
 81.6331 -
 81.6332 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("primary",28, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6333 -            }
 81.6334 -          return CUP$Ada95ASTParser$result;
 81.6335 -
 81.6336 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6337 -          case 240: // primary ::= literal 
 81.6338 -            {
 81.6339 -              Expression RESULT =null;
 81.6340 -		int literalleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.6341 -		int literalright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.6342 -		Expression literal = (Expression)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.6343 -		
 81.6344 -    System.out.println ("primary ::= literal => " + literal);
 81.6345 -    RESULT = literal;
 81.6346 -
 81.6347 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("primary",28, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6348 -            }
 81.6349 -          return CUP$Ada95ASTParser$result;
 81.6350 -
 81.6351 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6352 -          case 239: // factor ::= primary EXPON primary 
 81.6353 -            {
 81.6354 -              Expression RESULT =null;
 81.6355 -		int primaryleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.6356 -		int primaryright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.6357 -		Expression primary = (Expression)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.6358 -		
 81.6359 -    RESULT = primary;
 81.6360 -
 81.6361 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("factor",27, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6362 -            }
 81.6363 -          return CUP$Ada95ASTParser$result;
 81.6364 -
 81.6365 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6366 -          case 238: // factor ::= ABS primary 
 81.6367 -            {
 81.6368 -              Expression RESULT =null;
 81.6369 -		int primaryleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.6370 -		int primaryright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.6371 -		Expression primary = (Expression)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.6372 -		
 81.6373 -    RESULT = primary;
 81.6374 -
 81.6375 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("factor",27, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6376 -            }
 81.6377 -          return CUP$Ada95ASTParser$result;
 81.6378 -
 81.6379 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6380 -          case 237: // factor ::= NOT primary 
 81.6381 -            {
 81.6382 -              Expression RESULT =null;
 81.6383 -		int primaryleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.6384 -		int primaryright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.6385 -		Expression primary = (Expression)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.6386 -		
 81.6387 -    RESULT = primary;
 81.6388 -
 81.6389 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("factor",27, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6390 -            }
 81.6391 -          return CUP$Ada95ASTParser$result;
 81.6392 -
 81.6393 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6394 -          case 236: // factor ::= primary 
 81.6395 -            {
 81.6396 -              Expression RESULT =null;
 81.6397 -		int primaryleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.6398 -		int primaryright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.6399 -		Expression primary = (Expression)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.6400 -		
 81.6401 -    RESULT = primary;
 81.6402 -
 81.6403 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("factor",27, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6404 -            }
 81.6405 -          return CUP$Ada95ASTParser$result;
 81.6406 -
 81.6407 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6408 -          case 235: // term ::= term multiplying_operator factor 
 81.6409 -            {
 81.6410 -              Expression RESULT =null;
 81.6411 -		int factorleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.6412 -		int factorright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.6413 -		Expression factor = (Expression)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.6414 -		
 81.6415 -    RESULT = factor;
 81.6416 -
 81.6417 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("term",26, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6418 -            }
 81.6419 -          return CUP$Ada95ASTParser$result;
 81.6420 -
 81.6421 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6422 -          case 234: // term ::= factor 
 81.6423 -            {
 81.6424 -              Expression RESULT =null;
 81.6425 -		int factorleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.6426 -		int factorright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.6427 -		Expression factor = (Expression)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.6428 -		
 81.6429 -    RESULT = factor;
 81.6430 -
 81.6431 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("term",26, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6432 -            }
 81.6433 -          return CUP$Ada95ASTParser$result;
 81.6434 -
 81.6435 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6436 -          case 233: // simple_expression ::= simple_expression binary_adding_operator term 
 81.6437 -            {
 81.6438 -              Expression RESULT =null;
 81.6439 -		int exprleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).left;
 81.6440 -		int exprright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).right;
 81.6441 -		Expression expr = (Expression)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).value;
 81.6442 -		int opleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).left;
 81.6443 -		int opright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).right;
 81.6444 -		UnaryOperation.Operator op = (UnaryOperation.Operator)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).value;
 81.6445 -		int termleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.6446 -		int termright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.6447 -		Expression term = (Expression)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.6448 -		
 81.6449 -	RESULT = new UnaryOperation(exprleft, termright, term, op);
 81.6450 -
 81.6451 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("simple_expression",25, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6452 -            }
 81.6453 -          return CUP$Ada95ASTParser$result;
 81.6454 -
 81.6455 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6456 -          case 232: // simple_expression ::= term 
 81.6457 -            {
 81.6458 -              Expression RESULT =null;
 81.6459 -		int termleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.6460 -		int termright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.6461 -		Expression term = (Expression)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.6462 -		
 81.6463 -    RESULT = term;
 81.6464 -
 81.6465 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("simple_expression",25, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6466 -            }
 81.6467 -          return CUP$Ada95ASTParser$result;
 81.6468 -
 81.6469 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6470 -          case 231: // simple_expression ::= unary_adding_operator term 
 81.6471 -            {
 81.6472 -              Expression RESULT =null;
 81.6473 -		int opleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).left;
 81.6474 -		int opright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).right;
 81.6475 -		UnaryOperation.Operator op = (UnaryOperation.Operator)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).value;
 81.6476 -		int termleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.6477 -		int termright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.6478 -		Expression term = (Expression)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.6479 -		
 81.6480 -	RESULT = new UnaryOperation(opleft, termright, term, op);
 81.6481 -
 81.6482 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("simple_expression",25, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6483 -            }
 81.6484 -          return CUP$Ada95ASTParser$result;
 81.6485 -
 81.6486 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6487 -          case 230: // relation ::= simple_expression membership name 
 81.6488 -            {
 81.6489 -              Expression RESULT =null;
 81.6490 -		int simple_exprleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).left;
 81.6491 -		int simple_exprright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).right;
 81.6492 -		Expression simple_expr = (Expression)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).value;
 81.6493 -		
 81.6494 -    RESULT = simple_expr;
 81.6495 -
 81.6496 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("relation",24, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6497 -            }
 81.6498 -          return CUP$Ada95ASTParser$result;
 81.6499 -
 81.6500 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6501 -          case 229: // relation ::= simple_expression membership range 
 81.6502 -            {
 81.6503 -              Expression RESULT =null;
 81.6504 -		int simple_exprleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).left;
 81.6505 -		int simple_exprright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).right;
 81.6506 -		Expression simple_expr = (Expression)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).value;
 81.6507 -		
 81.6508 -    RESULT = simple_expr;
 81.6509 -
 81.6510 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("relation",24, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6511 -            }
 81.6512 -          return CUP$Ada95ASTParser$result;
 81.6513 -
 81.6514 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6515 -          case 228: // relation ::= simple_expression relational_operator simple_expression 
 81.6516 -            {
 81.6517 -              Expression RESULT =null;
 81.6518 -		int simple_exprleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).left;
 81.6519 -		int simple_exprright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).right;
 81.6520 -		Expression simple_expr = (Expression)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).value;
 81.6521 -		
 81.6522 -    RESULT = simple_expr;
 81.6523 -
 81.6524 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("relation",24, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6525 -            }
 81.6526 -          return CUP$Ada95ASTParser$result;
 81.6527 -
 81.6528 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6529 -          case 227: // relation ::= simple_expression 
 81.6530 -            {
 81.6531 -              Expression RESULT =null;
 81.6532 -		int simple_exprleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.6533 -		int simple_exprright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.6534 -		Expression simple_expr = (Expression)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.6535 -		
 81.6536 -    RESULT = simple_expr;
 81.6537 -
 81.6538 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("relation",24, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6539 -            }
 81.6540 -          return CUP$Ada95ASTParser$result;
 81.6541 -
 81.6542 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6543 -          case 226: // expression ::= expression short_circuit relation 
 81.6544 -            {
 81.6545 -              Expression RESULT =null;
 81.6546 -		int exprleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).left;
 81.6547 -		int exprright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).right;
 81.6548 -		Expression expr = (Expression)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).value;
 81.6549 -		int relleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.6550 -		int relright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.6551 -		Expression rel = (Expression)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.6552 -		
 81.6553 -    System.out.println ("expression ::= expression => " + expr);
 81.6554 -    System.out.println ("expression ::= relation => " + rel);
 81.6555 -	RESULT = expr;
 81.6556 -
 81.6557 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("expression",23, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6558 -            }
 81.6559 -          return CUP$Ada95ASTParser$result;
 81.6560 -
 81.6561 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6562 -          case 225: // expression ::= expression logical_operator relation 
 81.6563 -            {
 81.6564 -              Expression RESULT =null;
 81.6565 -		int exprleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).left;
 81.6566 -		int exprright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).right;
 81.6567 -		Expression expr = (Expression)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).value;
 81.6568 -		int relleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.6569 -		int relright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.6570 -		Expression rel = (Expression)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.6571 -		
 81.6572 -    System.out.println ("expression ::= expression => " + expr);
 81.6573 -    System.out.println ("expression ::= relation => " + rel);
 81.6574 -	RESULT = expr;
 81.6575 -
 81.6576 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("expression",23, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6577 -            }
 81.6578 -          return CUP$Ada95ASTParser$result;
 81.6579 -
 81.6580 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6581 -          case 224: // expression ::= relation 
 81.6582 -            {
 81.6583 -              Expression RESULT =null;
 81.6584 -		int relleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.6585 -		int relright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.6586 -		Expression rel = (Expression)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.6587 -		
 81.6588 -    System.out.println ("expression ::= relation => " + rel);
 81.6589 -	RESULT = rel;
 81.6590 -
 81.6591 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("expression",23, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6592 -            }
 81.6593 -          return CUP$Ada95ASTParser$result;
 81.6594 -
 81.6595 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6596 -          case 223: // multiplying_operator ::= REM 
 81.6597 -            {
 81.6598 -              String RESULT =null;
 81.6599 -
 81.6600 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("multiplying_operator",33, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6601 -            }
 81.6602 -          return CUP$Ada95ASTParser$result;
 81.6603 -
 81.6604 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6605 -          case 222: // multiplying_operator ::= MOD 
 81.6606 -            {
 81.6607 -              String RESULT =null;
 81.6608 -
 81.6609 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("multiplying_operator",33, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6610 -            }
 81.6611 -          return CUP$Ada95ASTParser$result;
 81.6612 -
 81.6613 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6614 -          case 221: // multiplying_operator ::= SLASH 
 81.6615 -            {
 81.6616 -              String RESULT =null;
 81.6617 -
 81.6618 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("multiplying_operator",33, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6619 -            }
 81.6620 -          return CUP$Ada95ASTParser$result;
 81.6621 -
 81.6622 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6623 -          case 220: // multiplying_operator ::= STAR 
 81.6624 -            {
 81.6625 -              String RESULT =null;
 81.6626 -
 81.6627 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("multiplying_operator",33, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6628 -            }
 81.6629 -          return CUP$Ada95ASTParser$result;
 81.6630 -
 81.6631 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6632 -          case 219: // binary_adding_operator ::= AMP 
 81.6633 -            {
 81.6634 -              UnaryOperation.Operator RESULT =null;
 81.6635 -		
 81.6636 -    RESULT = UnaryOperation.Operator.AMP;
 81.6637 -
 81.6638 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("binary_adding_operator",31, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6639 -            }
 81.6640 -          return CUP$Ada95ASTParser$result;
 81.6641 -
 81.6642 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6643 -          case 218: // binary_adding_operator ::= MINUS 
 81.6644 -            {
 81.6645 -              UnaryOperation.Operator RESULT =null;
 81.6646 -		
 81.6647 -    RESULT = UnaryOperation.Operator.MINUS;
 81.6648 -
 81.6649 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("binary_adding_operator",31, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6650 -            }
 81.6651 -          return CUP$Ada95ASTParser$result;
 81.6652 -
 81.6653 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6654 -          case 217: // binary_adding_operator ::= PLUS 
 81.6655 -            {
 81.6656 -              UnaryOperation.Operator RESULT =null;
 81.6657 -		
 81.6658 -    RESULT = UnaryOperation.Operator.PLUS;
 81.6659 -
 81.6660 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("binary_adding_operator",31, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6661 -            }
 81.6662 -          return CUP$Ada95ASTParser$result;
 81.6663 -
 81.6664 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6665 -          case 216: // unary_adding_operator ::= MINUS 
 81.6666 -            {
 81.6667 -              UnaryOperation.Operator RESULT =null;
 81.6668 -		
 81.6669 -    RESULT = UnaryOperation.Operator.MINUS;
 81.6670 -
 81.6671 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("unary_adding_operator",32, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6672 -            }
 81.6673 -          return CUP$Ada95ASTParser$result;
 81.6674 -
 81.6675 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6676 -          case 215: // unary_adding_operator ::= PLUS 
 81.6677 -            {
 81.6678 -              UnaryOperation.Operator RESULT =null;
 81.6679 -		
 81.6680 -    RESULT = UnaryOperation.Operator.PLUS;
 81.6681 -
 81.6682 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("unary_adding_operator",32, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6683 -            }
 81.6684 -          return CUP$Ada95ASTParser$result;
 81.6685 -
 81.6686 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6687 -          case 214: // membership ::= NOT IN 
 81.6688 -            {
 81.6689 -              Object RESULT =null;
 81.6690 -
 81.6691 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("membership",174, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6692 -            }
 81.6693 -          return CUP$Ada95ASTParser$result;
 81.6694 -
 81.6695 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6696 -          case 213: // membership ::= IN 
 81.6697 -            {
 81.6698 -              Object RESULT =null;
 81.6699 -
 81.6700 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("membership",174, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6701 -            }
 81.6702 -          return CUP$Ada95ASTParser$result;
 81.6703 -
 81.6704 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6705 -          case 212: // relational_operator ::= GTEQ 
 81.6706 -            {
 81.6707 -              String RESULT =null;
 81.6708 -
 81.6709 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("relational_operator",30, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6710 -            }
 81.6711 -          return CUP$Ada95ASTParser$result;
 81.6712 -
 81.6713 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6714 -          case 211: // relational_operator ::= LT 
 81.6715 -            {
 81.6716 -              String RESULT =null;
 81.6717 -
 81.6718 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("relational_operator",30, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6719 -            }
 81.6720 -          return CUP$Ada95ASTParser$result;
 81.6721 -
 81.6722 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6723 -          case 210: // relational_operator ::= LTEQ 
 81.6724 -            {
 81.6725 -              String RESULT =null;
 81.6726 -
 81.6727 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("relational_operator",30, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6728 -            }
 81.6729 -          return CUP$Ada95ASTParser$result;
 81.6730 -
 81.6731 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6732 -          case 209: // relational_operator ::= GT 
 81.6733 -            {
 81.6734 -              String RESULT =null;
 81.6735 -
 81.6736 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("relational_operator",30, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6737 -            }
 81.6738 -          return CUP$Ada95ASTParser$result;
 81.6739 -
 81.6740 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6741 -          case 208: // relational_operator ::= INEQ 
 81.6742 -            {
 81.6743 -              String RESULT =null;
 81.6744 -
 81.6745 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("relational_operator",30, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6746 -            }
 81.6747 -          return CUP$Ada95ASTParser$result;
 81.6748 -
 81.6749 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6750 -          case 207: // relational_operator ::= EQ 
 81.6751 -            {
 81.6752 -              String RESULT =null;
 81.6753 -
 81.6754 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("relational_operator",30, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6755 -            }
 81.6756 -          return CUP$Ada95ASTParser$result;
 81.6757 -
 81.6758 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6759 -          case 206: // short_circuit ::= OR ELSE 
 81.6760 -            {
 81.6761 -              Object RESULT =null;
 81.6762 -
 81.6763 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("short_circuit",173, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6764 -            }
 81.6765 -          return CUP$Ada95ASTParser$result;
 81.6766 -
 81.6767 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6768 -          case 205: // short_circuit ::= AND THEN 
 81.6769 -            {
 81.6770 -              Object RESULT =null;
 81.6771 -
 81.6772 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("short_circuit",173, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6773 -            }
 81.6774 -          return CUP$Ada95ASTParser$result;
 81.6775 -
 81.6776 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6777 -          case 204: // logical_operator ::= XOR 
 81.6778 -            {
 81.6779 -              String RESULT =null;
 81.6780 -
 81.6781 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("logical_operator",29, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6782 -            }
 81.6783 -          return CUP$Ada95ASTParser$result;
 81.6784 -
 81.6785 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6786 -          case 203: // logical_operator ::= OR 
 81.6787 -            {
 81.6788 -              String RESULT =null;
 81.6789 -
 81.6790 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("logical_operator",29, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6791 -            }
 81.6792 -          return CUP$Ada95ASTParser$result;
 81.6793 -
 81.6794 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6795 -          case 202: // logical_operator ::= AND 
 81.6796 -            {
 81.6797 -              String RESULT =null;
 81.6798 -
 81.6799 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("logical_operator",29, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6800 -            }
 81.6801 -          return CUP$Ada95ASTParser$result;
 81.6802 -
 81.6803 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6804 -          case 201: // comp_assoc ::= choice_s ARROW expression 
 81.6805 -            {
 81.6806 -              Object RESULT =null;
 81.6807 -
 81.6808 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("comp_assoc",170, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6809 -            }
 81.6810 -          return CUP$Ada95ASTParser$result;
 81.6811 -
 81.6812 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6813 -          case 200: // value_s_2 ::= value_s_2 COMMA value 
 81.6814 -            {
 81.6815 -              Object RESULT =null;
 81.6816 -
 81.6817 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("value_s_2",172, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6818 -            }
 81.6819 -          return CUP$Ada95ASTParser$result;
 81.6820 -
 81.6821 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6822 -          case 199: // value_s_2 ::= value COMMA value 
 81.6823 -            {
 81.6824 -              Object RESULT =null;
 81.6825 -
 81.6826 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("value_s_2",172, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6827 -            }
 81.6828 -          return CUP$Ada95ASTParser$result;
 81.6829 -
 81.6830 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6831 -          case 198: // aggregate ::= LPAREN NULL RECORD RPAREN 
 81.6832 -            {
 81.6833 -              Object RESULT =null;
 81.6834 -
 81.6835 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("aggregate",171, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6836 -            }
 81.6837 -          return CUP$Ada95ASTParser$result;
 81.6838 -
 81.6839 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6840 -          case 197: // aggregate ::= LPAREN expression WITH NULL RECORD RPAREN 
 81.6841 -            {
 81.6842 -              Object RESULT =null;
 81.6843 -
 81.6844 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("aggregate",171, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-5)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6845 -            }
 81.6846 -          return CUP$Ada95ASTParser$result;
 81.6847 -
 81.6848 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6849 -          case 196: // aggregate ::= LPAREN expression WITH value_s RPAREN 
 81.6850 -            {
 81.6851 -              Object RESULT =null;
 81.6852 -
 81.6853 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("aggregate",171, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-4)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6854 -            }
 81.6855 -          return CUP$Ada95ASTParser$result;
 81.6856 -
 81.6857 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6858 -          case 195: // aggregate ::= LPAREN value_s_2 RPAREN 
 81.6859 -            {
 81.6860 -              Object RESULT =null;
 81.6861 -
 81.6862 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("aggregate",171, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6863 -            }
 81.6864 -          return CUP$Ada95ASTParser$result;
 81.6865 -
 81.6866 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6867 -          case 194: // aggregate ::= LPAREN comp_assoc RPAREN 
 81.6868 -            {
 81.6869 -              Object RESULT =null;
 81.6870 -
 81.6871 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("aggregate",171, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6872 -            }
 81.6873 -          return CUP$Ada95ASTParser$result;
 81.6874 -
 81.6875 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6876 -          case 193: // literal ::= NULL 
 81.6877 -            {
 81.6878 -              Expression RESULT =null;
 81.6879 -
 81.6880 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("literal",106, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6881 -            }
 81.6882 -          return CUP$Ada95ASTParser$result;
 81.6883 -
 81.6884 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6885 -          case 192: // literal ::= used_char 
 81.6886 -            {
 81.6887 -              Expression RESULT =null;
 81.6888 -		int usedCharleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.6889 -		int usedCharright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.6890 -		String usedChar = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.6891 -		
 81.6892 -	Scalar scalar = new Scalar(usedCharleft, usedCharright, usedChar, Scalar.Type.STRING);
 81.6893 -	RESULT = scalar;
 81.6894 -
 81.6895 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("literal",106, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6896 -            }
 81.6897 -          return CUP$Ada95ASTParser$result;
 81.6898 -
 81.6899 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6900 -          case 191: // literal ::= BASED_LITERAL 
 81.6901 -            {
 81.6902 -              Expression RESULT =null;
 81.6903 -		int decleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.6904 -		int decright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.6905 -		String dec = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.6906 -		
 81.6907 -	Scalar scalar = new Scalar(decleft, decright, dec, Scalar.Type.INT);
 81.6908 -	RESULT = scalar;
 81.6909 -
 81.6910 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("literal",106, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6911 -            }
 81.6912 -          return CUP$Ada95ASTParser$result;
 81.6913 -
 81.6914 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6915 -          case 190: // literal ::= DECIMAL_LITERAL 
 81.6916 -            {
 81.6917 -              Expression RESULT =null;
 81.6918 -		int decleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.6919 -		int decright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.6920 -		String dec = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.6921 -		
 81.6922 -	Scalar scalar = new Scalar(decleft, decright, dec, Scalar.Type.INT);
 81.6923 -	RESULT = scalar;
 81.6924 -
 81.6925 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("literal",106, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6926 -            }
 81.6927 -          return CUP$Ada95ASTParser$result;
 81.6928 -
 81.6929 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6930 -          case 189: // attribute_id ::= ACCESS 
 81.6931 -            {
 81.6932 -              Object RESULT =null;
 81.6933 -
 81.6934 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("attribute_id",168, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6935 -            }
 81.6936 -          return CUP$Ada95ASTParser$result;
 81.6937 -
 81.6938 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6939 -          case 188: // attribute_id ::= DELTA 
 81.6940 -            {
 81.6941 -              Object RESULT =null;
 81.6942 -
 81.6943 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("attribute_id",168, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6944 -            }
 81.6945 -          return CUP$Ada95ASTParser$result;
 81.6946 -
 81.6947 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6948 -          case 187: // attribute_id ::= DIGITS 
 81.6949 -            {
 81.6950 -              Object RESULT =null;
 81.6951 -
 81.6952 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("attribute_id",168, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6953 -            }
 81.6954 -          return CUP$Ada95ASTParser$result;
 81.6955 -
 81.6956 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6957 -          case 186: // attribute_id ::= IDENTIFIER 
 81.6958 -            {
 81.6959 -              Object RESULT =null;
 81.6960 -
 81.6961 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("attribute_id",168, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6962 -            }
 81.6963 -          return CUP$Ada95ASTParser$result;
 81.6964 -
 81.6965 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6966 -          case 185: // attribute ::= name TICK attribute_id 
 81.6967 -            {
 81.6968 -              String RESULT =null;
 81.6969 -		int nameleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).left;
 81.6970 -		int nameright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).right;
 81.6971 -		String name = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).value;
 81.6972 -		
 81.6973 -    RESULT = name;
 81.6974 -
 81.6975 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("attribute",113, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6976 -            }
 81.6977 -          return CUP$Ada95ASTParser$result;
 81.6978 -
 81.6979 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6980 -          case 184: // selected_component ::= name DOT ALL 
 81.6981 -            {
 81.6982 -              String RESULT =null;
 81.6983 -		int nameleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).left;
 81.6984 -		int nameright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).right;
 81.6985 -		String name = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).value;
 81.6986 -		int allleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.6987 -		int allright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.6988 -		Object all = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.6989 -		
 81.6990 -    RESULT = name + "." + all;
 81.6991 -
 81.6992 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("selected_component",22, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.6993 -            }
 81.6994 -          return CUP$Ada95ASTParser$result;
 81.6995 -
 81.6996 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.6997 -          case 183: // selected_component ::= name DOT operator_symbol 
 81.6998 -            {
 81.6999 -              String RESULT =null;
 81.7000 -		int nameleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).left;
 81.7001 -		int nameright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).right;
 81.7002 -		String name = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).value;
 81.7003 -		int operatorleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.7004 -		int operatorright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.7005 -		String operator = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.7006 -		
 81.7007 -    RESULT = name + "." + operator;
 81.7008 -
 81.7009 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("selected_component",22, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7010 -            }
 81.7011 -          return CUP$Ada95ASTParser$result;
 81.7012 -
 81.7013 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7014 -          case 182: // selected_component ::= name DOT used_char 
 81.7015 -            {
 81.7016 -              String RESULT =null;
 81.7017 -		int nameleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).left;
 81.7018 -		int nameright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).right;
 81.7019 -		String name = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).value;
 81.7020 -		int usedCharleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.7021 -		int usedCharright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.7022 -		String usedChar = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.7023 -		
 81.7024 -    RESULT = name + "." + usedChar;
 81.7025 -
 81.7026 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("selected_component",22, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7027 -            }
 81.7028 -          return CUP$Ada95ASTParser$result;
 81.7029 -
 81.7030 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7031 -          case 181: // selected_component ::= name DOT simple_name 
 81.7032 -            {
 81.7033 -              String RESULT =null;
 81.7034 -		int nameleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).left;
 81.7035 -		int nameright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).right;
 81.7036 -		String name = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).value;
 81.7037 -		int simpleNameleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.7038 -		int simpleNameright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.7039 -		String simpleName = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.7040 -		
 81.7041 -    RESULT = name + "." + simpleName;
 81.7042 -
 81.7043 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("selected_component",22, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7044 -            }
 81.7045 -          return CUP$Ada95ASTParser$result;
 81.7046 -
 81.7047 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7048 -          case 180: // value ::= error 
 81.7049 -            {
 81.7050 -              Object RESULT =null;
 81.7051 -		int theErrorleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.7052 -		int theErrorright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.7053 -		Object theError = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.7054 -		
 81.7055 -    ASTError error = new ASTError(theErrorleft, theErrorright);
 81.7056 -    RESULT = error;
 81.7057 -
 81.7058 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("value",169, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7059 -            }
 81.7060 -          return CUP$Ada95ASTParser$result;
 81.7061 -
 81.7062 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7063 -          case 179: // value ::= discrete_with_range 
 81.7064 -            {
 81.7065 -              Object RESULT =null;
 81.7066 -
 81.7067 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("value",169, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7068 -            }
 81.7069 -          return CUP$Ada95ASTParser$result;
 81.7070 -
 81.7071 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7072 -          case 178: // value ::= comp_assoc 
 81.7073 -            {
 81.7074 -              Object RESULT =null;
 81.7075 -
 81.7076 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("value",169, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7077 -            }
 81.7078 -          return CUP$Ada95ASTParser$result;
 81.7079 -
 81.7080 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7081 -          case 177: // value ::= expression 
 81.7082 -            {
 81.7083 -              Object RESULT =null;
 81.7084 -
 81.7085 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("value",169, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7086 -            }
 81.7087 -          return CUP$Ada95ASTParser$result;
 81.7088 -
 81.7089 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7090 -          case 176: // value_s ::= value_s COMMA value 
 81.7091 -            {
 81.7092 -              Expression RESULT =null;
 81.7093 -
 81.7094 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("value_s",115, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7095 -            }
 81.7096 -          return CUP$Ada95ASTParser$result;
 81.7097 -
 81.7098 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7099 -          case 175: // value_s ::= value 
 81.7100 -            {
 81.7101 -              Expression RESULT =null;
 81.7102 -
 81.7103 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("value_s",115, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7104 -            }
 81.7105 -          return CUP$Ada95ASTParser$result;
 81.7106 -
 81.7107 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7108 -          case 174: // indexed_comp ::= name LPAREN value_s RPAREN 
 81.7109 -            {
 81.7110 -              String RESULT =null;
 81.7111 -		int nameleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)).left;
 81.7112 -		int nameright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)).right;
 81.7113 -		String name = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)).value;
 81.7114 -		int indexleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).left;
 81.7115 -		int indexright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).right;
 81.7116 -		Expression index = (Expression)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).value;
 81.7117 -		int endleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.7118 -		int endright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.7119 -		Object end = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.7120 -		
 81.7121 -    System.out.println ("indexed_comp ::= name => " + name);
 81.7122 -    Identifier identifier = new Identifier(nameleft, nameright, name);
 81.7123 -    //Variable variable = new Variable (nameleft, nameright, name);
 81.7124 -	Variable indexedVar = new ArrayAccess(nameleft, endright, identifier, index, ArrayAccess.Type.VARIABLE_ARRAY);
 81.7125 -    //RESULT = indexedVar;
 81.7126 -    RESULT = name;
 81.7127 -
 81.7128 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("indexed_comp",114, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7129 -            }
 81.7130 -          return CUP$Ada95ASTParser$result;
 81.7131 -
 81.7132 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7133 -          case 173: // used_char ::= CHAR_LITERAL 
 81.7134 -            {
 81.7135 -              String RESULT =null;
 81.7136 -		int charLiteralleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.7137 -		int charLiteralright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.7138 -		String charLiteral = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.7139 -		
 81.7140 -    RESULT = charLiteral;
 81.7141 -
 81.7142 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("used_char",110, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7143 -            }
 81.7144 -          return CUP$Ada95ASTParser$result;
 81.7145 -
 81.7146 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7147 -          case 172: // library_unit_name_list ::= library_unit_name_list COMMA compound_name 
 81.7148 -            {
 81.7149 -              List RESULT =null;
 81.7150 -		int nameListleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).left;
 81.7151 -		int nameListright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).right;
 81.7152 -		List nameList = (List)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).value;
 81.7153 -		int compoundNameleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.7154 -		int compoundNameright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.7155 -		String compoundName = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.7156 -		
 81.7157 -    nameList.add(compoundName);
 81.7158 -    RESULT = nameList;
 81.7159 -
 81.7160 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("library_unit_name_list",89, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7161 -            }
 81.7162 -          return CUP$Ada95ASTParser$result;
 81.7163 -
 81.7164 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7165 -          case 171: // library_unit_name_list ::= compound_name 
 81.7166 -            {
 81.7167 -              List RESULT =null;
 81.7168 -		int compoundNameleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.7169 -		int compoundNameright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.7170 -		String compoundName = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.7171 -		
 81.7172 -    List nameList = new LinkedList();
 81.7173 -    Identifier id = new Identifier(compoundNameleft, compoundNameright, (String)compoundName);
 81.7174 -    PackageName packageName = new PackageName(compoundNameleft, compoundNameright, id);
 81.7175 -    nameList.add(packageName);
 81.7176 -    RESULT = nameList;
 81.7177 -
 81.7178 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("library_unit_name_list",89, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7179 -            }
 81.7180 -          return CUP$Ada95ASTParser$result;
 81.7181 -
 81.7182 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7183 -          case 170: // compound_name ::= compound_name DOT simple_name 
 81.7184 -            {
 81.7185 -              String RESULT =null;
 81.7186 -		int compoundNameleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).left;
 81.7187 -		int compoundNameright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).right;
 81.7188 -		String compoundName = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).value;
 81.7189 -		int simpleNameleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.7190 -		int simpleNameright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.7191 -		String simpleName = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.7192 -		
 81.7193 -    RESULT = compoundName + "." + simpleName;
 81.7194 -
 81.7195 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("compound_name",94, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7196 -            }
 81.7197 -          return CUP$Ada95ASTParser$result;
 81.7198 -
 81.7199 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7200 -          case 169: // compound_name ::= simple_name 
 81.7201 -            {
 81.7202 -              String RESULT =null;
 81.7203 -		int simpleNameleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.7204 -		int simpleNameright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.7205 -		String simpleName = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.7206 -		
 81.7207 -    RESULT = simpleName;
 81.7208 -
 81.7209 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("compound_name",94, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7210 -            }
 81.7211 -          return CUP$Ada95ASTParser$result;
 81.7212 -
 81.7213 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7214 -          case 168: // simple_name ::= IDENTIFIER 
 81.7215 -            {
 81.7216 -              String RESULT =null;
 81.7217 -		int identifierleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.7218 -		int identifierright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.7219 -		String identifier = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.7220 -		
 81.7221 -    RESULT = identifier;
 81.7222 -
 81.7223 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("simple_name",21, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7224 -            }
 81.7225 -          return CUP$Ada95ASTParser$result;
 81.7226 -
 81.7227 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7228 -          case 167: // subtype_mark ::= subtype_mark DOT simple_name 
 81.7229 -            {
 81.7230 -              String RESULT =null;
 81.7231 -		int nameleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).left;
 81.7232 -		int nameright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).right;
 81.7233 -		String name = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).value;
 81.7234 -		int simpleNameleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.7235 -		int simpleNameright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.7236 -		String simpleName = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.7237 -		
 81.7238 -    RESULT = name + "." + simpleName;
 81.7239 -
 81.7240 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("subtype_mark",100, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7241 -            }
 81.7242 -          return CUP$Ada95ASTParser$result;
 81.7243 -
 81.7244 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7245 -          case 166: // subtype_mark ::= subtype_mark TICK attribute_id 
 81.7246 -            {
 81.7247 -              String RESULT =null;
 81.7248 -		int nameleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).left;
 81.7249 -		int nameright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).right;
 81.7250 -		String name = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).value;
 81.7251 -		
 81.7252 -    // TODO: manage the attribute
 81.7253 -    RESULT = name;
 81.7254 -
 81.7255 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("subtype_mark",100, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7256 -            }
 81.7257 -          return CUP$Ada95ASTParser$result;
 81.7258 -
 81.7259 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7260 -          case 165: // subtype_mark ::= simple_name 
 81.7261 -            {
 81.7262 -              String RESULT =null;
 81.7263 -		int nameleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.7264 -		int nameright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.7265 -		String name = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.7266 -		
 81.7267 -    RESULT = name;
 81.7268 -
 81.7269 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("subtype_mark",100, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7270 -            }
 81.7271 -          return CUP$Ada95ASTParser$result;
 81.7272 -
 81.7273 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7274 -          case 164: // name ::= operator_symbol 
 81.7275 -            {
 81.7276 -              String RESULT =null;
 81.7277 -		int opleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.7278 -		int opright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.7279 -		String op = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.7280 -		
 81.7281 -    RESULT = op;
 81.7282 -
 81.7283 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("name",20, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7284 -            }
 81.7285 -          return CUP$Ada95ASTParser$result;
 81.7286 -
 81.7287 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7288 -          case 163: // name ::= attribute 
 81.7289 -            {
 81.7290 -              String RESULT =null;
 81.7291 -		int attrleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.7292 -		int attrright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.7293 -		String attr = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.7294 -		
 81.7295 -    RESULT = attr;
 81.7296 -
 81.7297 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("name",20, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7298 -            }
 81.7299 -          return CUP$Ada95ASTParser$result;
 81.7300 -
 81.7301 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7302 -          case 162: // name ::= selected_component 
 81.7303 -            {
 81.7304 -              String RESULT =null;
 81.7305 -		int compleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.7306 -		int compright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.7307 -		String comp = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.7308 -		
 81.7309 -    RESULT = comp;
 81.7310 -
 81.7311 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("name",20, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7312 -            }
 81.7313 -          return CUP$Ada95ASTParser$result;
 81.7314 -
 81.7315 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7316 -          case 161: // name ::= indexed_comp 
 81.7317 -            {
 81.7318 -              String RESULT =null;
 81.7319 -		int compleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.7320 -		int compright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.7321 -		String comp = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.7322 -		
 81.7323 -    RESULT = comp;
 81.7324 -
 81.7325 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("name",20, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7326 -            }
 81.7327 -          return CUP$Ada95ASTParser$result;
 81.7328 -
 81.7329 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7330 -          case 160: // name ::= simple_name 
 81.7331 -            {
 81.7332 -              String RESULT =null;
 81.7333 -		int nameleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.7334 -		int nameright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.7335 -		String name = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.7336 -		
 81.7337 -    RESULT = name;
 81.7338 -
 81.7339 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("name",20, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7340 -            }
 81.7341 -          return CUP$Ada95ASTParser$result;
 81.7342 -
 81.7343 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7344 -          case 159: // proper_body ::= protected_body 
 81.7345 -            {
 81.7346 -              Statement RESULT =null;
 81.7347 -		int statementleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.7348 -		int statementright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.7349 -		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.7350 -		
 81.7351 -    RESULT = statement;
 81.7352 -
 81.7353 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("proper_body",11, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7354 -            }
 81.7355 -          return CUP$Ada95ASTParser$result;
 81.7356 -
 81.7357 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7358 -          case 158: // proper_body ::= task_body 
 81.7359 -            {
 81.7360 -              Statement RESULT =null;
 81.7361 -		int statementleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.7362 -		int statementright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.7363 -		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.7364 -		
 81.7365 -    RESULT = statement;
 81.7366 -
 81.7367 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("proper_body",11, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7368 -            }
 81.7369 -          return CUP$Ada95ASTParser$result;
 81.7370 -
 81.7371 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7372 -          case 157: // proper_body ::= package_body 
 81.7373 -            {
 81.7374 -              Statement RESULT =null;
 81.7375 -		int statementleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.7376 -		int statementright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.7377 -		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.7378 -		
 81.7379 -    RESULT = statement;
 81.7380 -
 81.7381 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("proper_body",11, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7382 -            }
 81.7383 -          return CUP$Ada95ASTParser$result;
 81.7384 -
 81.7385 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7386 -          case 156: // proper_body ::= subprogram_body 
 81.7387 -            {
 81.7388 -              Statement RESULT =null;
 81.7389 -		int statementleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.7390 -		int statementright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.7391 -		MethodDeclaration statement = (MethodDeclaration)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.7392 -		
 81.7393 -    RESULT = statement;
 81.7394 -
 81.7395 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("proper_body",11, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7396 -            }
 81.7397 -          return CUP$Ada95ASTParser$result;
 81.7398 -
 81.7399 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7400 -          case 155: // body ::= protected_body 
 81.7401 -            {
 81.7402 -              Statement RESULT =null;
 81.7403 -		int statementleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.7404 -		int statementright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.7405 -		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.7406 -		
 81.7407 -    RESULT = statement;
 81.7408 -
 81.7409 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("body",70, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7410 -            }
 81.7411 -          return CUP$Ada95ASTParser$result;
 81.7412 -
 81.7413 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7414 -          case 154: // body ::= task_body 
 81.7415 -            {
 81.7416 -              Statement RESULT =null;
 81.7417 -		int statementleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.7418 -		int statementright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.7419 -		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.7420 -		
 81.7421 -    RESULT = statement;
 81.7422 -
 81.7423 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("body",70, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7424 -            }
 81.7425 -          return CUP$Ada95ASTParser$result;
 81.7426 -
 81.7427 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7428 -          case 153: // body ::= package_body 
 81.7429 -            {
 81.7430 -              Statement RESULT =null;
 81.7431 -		int statementleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.7432 -		int statementright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.7433 -		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.7434 -		
 81.7435 -    RESULT = statement;
 81.7436 -
 81.7437 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("body",70, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7438 -            }
 81.7439 -          return CUP$Ada95ASTParser$result;
 81.7440 -
 81.7441 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7442 -          case 152: // body ::= subprogram_body 
 81.7443 -            {
 81.7444 -              Statement RESULT =null;
 81.7445 -		int statementleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.7446 -		int statementright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.7447 -		MethodDeclaration statement = (MethodDeclaration)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.7448 -		
 81.7449 -    RESULT = statement;
 81.7450 -
 81.7451 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("body",70, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7452 -            }
 81.7453 -          return CUP$Ada95ASTParser$result;
 81.7454 -
 81.7455 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7456 -          case 151: // declarative_item_or_body ::= declarative_item 
 81.7457 -            {
 81.7458 -              Object RESULT =null;
 81.7459 -		int statementleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.7460 -		int statementright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.7461 -		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.7462 -		
 81.7463 -    RESULT = statement;
 81.7464 -
 81.7465 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("declarative_item_or_body",167, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7466 -            }
 81.7467 -          return CUP$Ada95ASTParser$result;
 81.7468 -
 81.7469 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7470 -          case 150: // declarative_item_or_body ::= body 
 81.7471 -            {
 81.7472 -              Object RESULT =null;
 81.7473 -		int statementleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.7474 -		int statementright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.7475 -		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.7476 -		
 81.7477 -    RESULT = statement;
 81.7478 -
 81.7479 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("declarative_item_or_body",167, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7480 -            }
 81.7481 -          return CUP$Ada95ASTParser$result;
 81.7482 -
 81.7483 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7484 -          case 149: // declarative_item_or_body_s1 ::= declarative_item_or_body_s1 declarative_item_or_body 
 81.7485 -            {
 81.7486 -              List RESULT =null;
 81.7487 -		int declaritiveItemListleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).left;
 81.7488 -		int declaritiveItemListright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).right;
 81.7489 -		List declaritiveItemList = (List)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).value;
 81.7490 -		int declaritiveItemleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.7491 -		int declaritiveItemright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.7492 -		Object declaritiveItem = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.7493 -		
 81.7494 -    declaritiveItemList.add(declaritiveItem);
 81.7495 -    RESULT = declaritiveItemList;
 81.7496 -
 81.7497 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("declarative_item_or_body_s1",9, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7498 -            }
 81.7499 -          return CUP$Ada95ASTParser$result;
 81.7500 -
 81.7501 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7502 -          case 148: // declarative_item_or_body_s1 ::= declarative_item_or_body 
 81.7503 -            {
 81.7504 -              List RESULT =null;
 81.7505 -		int declaritiveItemleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.7506 -		int declaritiveItemright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.7507 -		Object declaritiveItem = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.7508 -		
 81.7509 -    List declaritiveItemList = new LinkedList();
 81.7510 -    declaritiveItemList.add(declaritiveItem);
 81.7511 -    RESULT = declaritiveItemList;
 81.7512 -
 81.7513 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("declarative_item_or_body_s1",9, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7514 -            }
 81.7515 -          return CUP$Ada95ASTParser$result;
 81.7516 -
 81.7517 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7518 -          case 147: // declarative_item ::= pragma 
 81.7519 -            {
 81.7520 -              Statement RESULT =null;
 81.7521 -
 81.7522 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("declarative_item",7, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7523 -            }
 81.7524 -          return CUP$Ada95ASTParser$result;
 81.7525 -
 81.7526 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7527 -          case 146: // declarative_item ::= rep_spec 
 81.7528 -            {
 81.7529 -              Statement RESULT =null;
 81.7530 -
 81.7531 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("declarative_item",7, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7532 -            }
 81.7533 -          return CUP$Ada95ASTParser$result;
 81.7534 -
 81.7535 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7536 -          case 145: // declarative_item ::= use_clause 
 81.7537 -            {
 81.7538 -              Statement RESULT =null;
 81.7539 -		int statementleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.7540 -		int statementright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.7541 -		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.7542 -		
 81.7543 -    RESULT = statement;
 81.7544 -
 81.7545 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("declarative_item",7, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7546 -            }
 81.7547 -          return CUP$Ada95ASTParser$result;
 81.7548 -
 81.7549 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7550 -          case 144: // declarative_item ::= declaration 
 81.7551 -            {
 81.7552 -              Statement RESULT =null;
 81.7553 -		int statementleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.7554 -		int statementright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.7555 -		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.7556 -		
 81.7557 -    RESULT = statement;
 81.7558 -
 81.7559 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("declarative_item",7, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7560 -            }
 81.7561 -          return CUP$Ada95ASTParser$result;
 81.7562 -
 81.7563 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7564 -          case 143: // declarative_item ::= package_declaration 
 81.7565 -            {
 81.7566 -              Statement RESULT =null;
 81.7567 -		int statementleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.7568 -		int statementright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.7569 -		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.7570 -		
 81.7571 -    RESULT = statement;
 81.7572 -
 81.7573 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("declarative_item",7, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7574 -            }
 81.7575 -          return CUP$Ada95ASTParser$result;
 81.7576 -
 81.7577 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7578 -          case 142: // declarative_item ::= subprog_declaration 
 81.7579 -            {
 81.7580 -              Statement RESULT =null;
 81.7581 -		int statementleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.7582 -		int statementright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.7583 -		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.7584 -		
 81.7585 -    RESULT = statement;
 81.7586 -
 81.7587 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("declarative_item",7, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7588 -            }
 81.7589 -          return CUP$Ada95ASTParser$result;
 81.7590 -
 81.7591 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7592 -          case 141: // declarative_item ::= type_declaration 
 81.7593 -            {
 81.7594 -              Statement RESULT =null;
 81.7595 -		int statementleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.7596 -		int statementright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.7597 -		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.7598 -		
 81.7599 -    RESULT = statement;
 81.7600 -
 81.7601 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("declarative_item",7, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7602 -            }
 81.7603 -          return CUP$Ada95ASTParser$result;
 81.7604 -
 81.7605 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7606 -          case 140: // declarative_item ::= fields_declaration 
 81.7607 -            {
 81.7608 -              Statement RESULT =null;
 81.7609 -		int listleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.7610 -		int listright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.7611 -		List list = (List)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.7612 -		
 81.7613 -    FieldsDeclaration fieldsDeclaration = new FieldsDeclaration(listleft, listright, list);
 81.7614 -    RESULT = fieldsDeclaration;
 81.7615 -
 81.7616 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("declarative_item",7, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7617 -            }
 81.7618 -          return CUP$Ada95ASTParser$result;
 81.7619 -
 81.7620 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7621 -          case 139: // declarative_item_list ::= declarative_item_list declarative_item 
 81.7622 -            {
 81.7623 -              List RESULT =null;
 81.7624 -		int declaritiveItemListleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).left;
 81.7625 -		int declaritiveItemListright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).right;
 81.7626 -		List declaritiveItemList = (List)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).value;
 81.7627 -		int declaritiveItemleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.7628 -		int declaritiveItemright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.7629 -		Statement declaritiveItem = (Statement)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.7630 -		
 81.7631 -    declaritiveItemList.add(declaritiveItem);
 81.7632 -    RESULT = declaritiveItemList;
 81.7633 -
 81.7634 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("declarative_item_list",6, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7635 -            }
 81.7636 -          return CUP$Ada95ASTParser$result;
 81.7637 -
 81.7638 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7639 -          case 138: // declarative_item_list ::= declarative_item 
 81.7640 -            {
 81.7641 -              List RESULT =null;
 81.7642 -		int declaritiveItemleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.7643 -		int declaritiveItemright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.7644 -		Statement declaritiveItem = (Statement)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.7645 -		
 81.7646 -    List declaritiveItemList = new LinkedList();
 81.7647 -    declaritiveItemList.add(declaritiveItem);
 81.7648 -    RESULT = declaritiveItemList;
 81.7649 -
 81.7650 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("declarative_item_list",6, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7651 -            }
 81.7652 -          return CUP$Ada95ASTParser$result;
 81.7653 -
 81.7654 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7655 -          case 137: // declarative_items_opt ::= declarative_item_list 
 81.7656 -            {
 81.7657 -              List RESULT =null;
 81.7658 -		int declaritiveItemListleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.7659 -		int declaritiveItemListright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.7660 -		List declaritiveItemList = (List)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.7661 -		
 81.7662 -    RESULT = declaritiveItemList;
 81.7663 -
 81.7664 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("declarative_items_opt",5, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7665 -            }
 81.7666 -          return CUP$Ada95ASTParser$result;
 81.7667 -
 81.7668 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7669 -          case 136: // declarative_items_opt ::= 
 81.7670 -            {
 81.7671 -              List RESULT =null;
 81.7672 -		
 81.7673 -    RESULT = new LinkedList();
 81.7674 -
 81.7675 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("declarative_items_opt",5, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7676 -            }
 81.7677 -          return CUP$Ada95ASTParser$result;
 81.7678 -
 81.7679 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7680 -          case 135: // declarative_part ::= declarative_item_or_body_s1 
 81.7681 -            {
 81.7682 -              List RESULT =null;
 81.7683 -		int statementleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.7684 -		int statementright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.7685 -		List statement = (List)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.7686 -		
 81.7687 -    RESULT = statement;
 81.7688 -
 81.7689 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("declarative_part",8, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7690 -            }
 81.7691 -          return CUP$Ada95ASTParser$result;
 81.7692 -
 81.7693 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7694 -          case 134: // declarative_part ::= 
 81.7695 -            {
 81.7696 -              List RESULT =null;
 81.7697 -		
 81.7698 -    RESULT = new LinkedList();
 81.7699 -
 81.7700 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("declarative_part",8, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7701 -            }
 81.7702 -          return CUP$Ada95ASTParser$result;
 81.7703 -
 81.7704 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7705 -          case 133: // prot_opt ::= PROTECTED 
 81.7706 -            {
 81.7707 -              Object RESULT =null;
 81.7708 -
 81.7709 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("prot_opt",165, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7710 -            }
 81.7711 -          return CUP$Ada95ASTParser$result;
 81.7712 -
 81.7713 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7714 -          case 132: // prot_opt ::= 
 81.7715 -            {
 81.7716 -              Object RESULT =null;
 81.7717 -
 81.7718 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("prot_opt",165, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7719 -            }
 81.7720 -          return CUP$Ada95ASTParser$result;
 81.7721 -
 81.7722 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7723 -          case 131: // access_type ::= ACCESS prot_opt FUNCTION formal_part_opt RETURN subtype_mark 
 81.7724 -            {
 81.7725 -              Object RESULT =null;
 81.7726 -
 81.7727 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("access_type",132, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-5)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7728 -            }
 81.7729 -          return CUP$Ada95ASTParser$result;
 81.7730 -
 81.7731 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7732 -          case 130: // access_type ::= ACCESS prot_opt PROCEDURE formal_part_opt 
 81.7733 -            {
 81.7734 -              Object RESULT =null;
 81.7735 -
 81.7736 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("access_type",132, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7737 -            }
 81.7738 -          return CUP$Ada95ASTParser$result;
 81.7739 -
 81.7740 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7741 -          case 129: // access_type ::= ACCESS ALL subtype_indication 
 81.7742 -            {
 81.7743 -              Object RESULT =null;
 81.7744 -
 81.7745 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("access_type",132, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7746 -            }
 81.7747 -          return CUP$Ada95ASTParser$result;
 81.7748 -
 81.7749 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7750 -          case 128: // access_type ::= ACCESS CONSTANT subtype_indication 
 81.7751 -            {
 81.7752 -              Object RESULT =null;
 81.7753 -
 81.7754 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("access_type",132, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7755 -            }
 81.7756 -          return CUP$Ada95ASTParser$result;
 81.7757 -
 81.7758 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7759 -          case 127: // access_type ::= ACCESS subtype_indication 
 81.7760 -            {
 81.7761 -              Object RESULT =null;
 81.7762 -
 81.7763 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("access_type",132, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7764 -            }
 81.7765 -          return CUP$Ada95ASTParser$result;
 81.7766 -
 81.7767 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7768 -          case 126: // discrete_with_range ::= range 
 81.7769 -            {
 81.7770 -              Object RESULT =null;
 81.7771 -
 81.7772 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("discrete_with_range",164, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7773 -            }
 81.7774 -          return CUP$Ada95ASTParser$result;
 81.7775 -
 81.7776 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7777 -          case 125: // discrete_with_range ::= name range_constraint 
 81.7778 -            {
 81.7779 -              Object RESULT =null;
 81.7780 -
 81.7781 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("discrete_with_range",164, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7782 -            }
 81.7783 -          return CUP$Ada95ASTParser$result;
 81.7784 -
 81.7785 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7786 -          case 124: // choice ::= OTHERS 
 81.7787 -            {
 81.7788 -              Object RESULT =null;
 81.7789 -
 81.7790 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("choice",163, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7791 -            }
 81.7792 -          return CUP$Ada95ASTParser$result;
 81.7793 -
 81.7794 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7795 -          case 123: // choice ::= discrete_with_range 
 81.7796 -            {
 81.7797 -              Object RESULT =null;
 81.7798 -
 81.7799 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("choice",163, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7800 -            }
 81.7801 -          return CUP$Ada95ASTParser$result;
 81.7802 -
 81.7803 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7804 -          case 122: // choice ::= expression 
 81.7805 -            {
 81.7806 -              Object RESULT =null;
 81.7807 -
 81.7808 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("choice",163, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7809 -            }
 81.7810 -          return CUP$Ada95ASTParser$result;
 81.7811 -
 81.7812 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7813 -          case 121: // choice_s ::= choice_s BAR choice 
 81.7814 -            {
 81.7815 -              Expression RESULT =null;
 81.7816 -
 81.7817 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("choice_s",111, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7818 -            }
 81.7819 -          return CUP$Ada95ASTParser$result;
 81.7820 -
 81.7821 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7822 -          case 120: // choice_s ::= choice 
 81.7823 -            {
 81.7824 -              Expression RESULT =null;
 81.7825 -
 81.7826 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("choice_s",111, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7827 -            }
 81.7828 -          return CUP$Ada95ASTParser$result;
 81.7829 -
 81.7830 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7831 -          case 119: // variant ::= WHEN choice_s ARROW pragma_s comp_list 
 81.7832 -            {
 81.7833 -              Object RESULT =null;
 81.7834 -
 81.7835 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("variant",162, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-4)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7836 -            }
 81.7837 -          return CUP$Ada95ASTParser$result;
 81.7838 -
 81.7839 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7840 -          case 118: // variant_s ::= variant_s variant 
 81.7841 -            {
 81.7842 -              Object RESULT =null;
 81.7843 -
 81.7844 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("variant_s",161, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7845 -            }
 81.7846 -          return CUP$Ada95ASTParser$result;
 81.7847 -
 81.7848 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7849 -          case 117: // variant_s ::= variant 
 81.7850 -            {
 81.7851 -              Object RESULT =null;
 81.7852 -
 81.7853 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("variant_s",161, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7854 -            }
 81.7855 -          return CUP$Ada95ASTParser$result;
 81.7856 -
 81.7857 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7858 -          case 116: // variant_part ::= CASE simple_name IS pragma_s variant_s END CASE SEMICOLON 
 81.7859 -            {
 81.7860 -              Object RESULT =null;
 81.7861 -
 81.7862 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("variant_part",157, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-7)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7863 -            }
 81.7864 -          return CUP$Ada95ASTParser$result;
 81.7865 -
 81.7866 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7867 -          case 115: // access_opt ::= ACCESS 
 81.7868 -            {
 81.7869 -              Object RESULT =null;
 81.7870 -
 81.7871 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("access_opt",160, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7872 -            }
 81.7873 -          return CUP$Ada95ASTParser$result;
 81.7874 -
 81.7875 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7876 -          case 114: // access_opt ::= 
 81.7877 -            {
 81.7878 -              Object RESULT =null;
 81.7879 -
 81.7880 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("access_opt",160, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7881 -            }
 81.7882 -          return CUP$Ada95ASTParser$result;
 81.7883 -
 81.7884 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7885 -          case 113: // discrim_spec ::= error 
 81.7886 -            {
 81.7887 -              Object RESULT =null;
 81.7888 -		int theErrorleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.7889 -		int theErrorright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.7890 -		Object theError = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.7891 -		
 81.7892 -    ASTError error = new ASTError(theErrorleft, theErrorright);
 81.7893 -    RESULT = error;
 81.7894 -
 81.7895 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("discrim_spec",159, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7896 -            }
 81.7897 -          return CUP$Ada95ASTParser$result;
 81.7898 -
 81.7899 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7900 -          case 112: // discrim_spec ::= defining_identifier_list COLON access_opt subtype_mark init_opt 
 81.7901 -            {
 81.7902 -              Object RESULT =null;
 81.7903 -
 81.7904 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("discrim_spec",159, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-4)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7905 -            }
 81.7906 -          return CUP$Ada95ASTParser$result;
 81.7907 -
 81.7908 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7909 -          case 111: // discrim_spec_s ::= discrim_spec_s SEMICOLON discrim_spec 
 81.7910 -            {
 81.7911 -              Object RESULT =null;
 81.7912 -
 81.7913 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("discrim_spec_s",158, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7914 -            }
 81.7915 -          return CUP$Ada95ASTParser$result;
 81.7916 -
 81.7917 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7918 -          case 110: // discrim_spec_s ::= discrim_spec 
 81.7919 -            {
 81.7920 -              Object RESULT =null;
 81.7921 -
 81.7922 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("discrim_spec_s",158, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7923 -            }
 81.7924 -          return CUP$Ada95ASTParser$result;
 81.7925 -
 81.7926 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7927 -          case 109: // discrim_part ::= LPAREN discrim_spec_s RPAREN 
 81.7928 -            {
 81.7929 -              Object RESULT =null;
 81.7930 -
 81.7931 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("discrim_part",126, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7932 -            }
 81.7933 -          return CUP$Ada95ASTParser$result;
 81.7934 -
 81.7935 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7936 -          case 108: // comp_decl ::= error SEMICOLON 
 81.7937 -            {
 81.7938 -              Object RESULT =null;
 81.7939 -		int theErrorleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).left;
 81.7940 -		int theErrorright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).right;
 81.7941 -		Object theError = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).value;
 81.7942 -		
 81.7943 -    ASTError error = new ASTError(theErrorleft, theErrorright);
 81.7944 -    RESULT = error;
 81.7945 -
 81.7946 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("comp_decl",155, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7947 -            }
 81.7948 -          return CUP$Ada95ASTParser$result;
 81.7949 -
 81.7950 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7951 -          case 107: // comp_decl ::= defining_identifier_list COLON component_subtype_def init_opt SEMICOLON 
 81.7952 -            {
 81.7953 -              Object RESULT =null;
 81.7954 -
 81.7955 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("comp_decl",155, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-4)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7956 -            }
 81.7957 -          return CUP$Ada95ASTParser$result;
 81.7958 -
 81.7959 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7960 -          case 106: // variant_part_opt ::= pragma_s variant_part pragma_s 
 81.7961 -            {
 81.7962 -              Object RESULT =null;
 81.7963 -
 81.7964 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("variant_part_opt",156, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7965 -            }
 81.7966 -          return CUP$Ada95ASTParser$result;
 81.7967 -
 81.7968 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7969 -          case 105: // variant_part_opt ::= pragma_s 
 81.7970 -            {
 81.7971 -              Object RESULT =null;
 81.7972 -
 81.7973 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("variant_part_opt",156, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7974 -            }
 81.7975 -          return CUP$Ada95ASTParser$result;
 81.7976 -
 81.7977 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7978 -          case 104: // comp_decl_s ::= comp_decl_s pragma_s comp_decl 
 81.7979 -            {
 81.7980 -              Object RESULT =null;
 81.7981 -
 81.7982 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("comp_decl_s",154, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7983 -            }
 81.7984 -          return CUP$Ada95ASTParser$result;
 81.7985 -
 81.7986 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7987 -          case 103: // comp_decl_s ::= comp_decl 
 81.7988 -            {
 81.7989 -              Object RESULT =null;
 81.7990 -
 81.7991 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("comp_decl_s",154, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.7992 -            }
 81.7993 -          return CUP$Ada95ASTParser$result;
 81.7994 -
 81.7995 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.7996 -          case 102: // comp_list ::= NULL SEMICOLON pragma_s 
 81.7997 -            {
 81.7998 -              Object RESULT =null;
 81.7999 -
 81.8000 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("comp_list",153, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8001 -            }
 81.8002 -          return CUP$Ada95ASTParser$result;
 81.8003 -
 81.8004 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8005 -          case 101: // comp_list ::= variant_part pragma_s 
 81.8006 -            {
 81.8007 -              Object RESULT =null;
 81.8008 -
 81.8009 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("comp_list",153, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8010 -            }
 81.8011 -          return CUP$Ada95ASTParser$result;
 81.8012 -
 81.8013 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8014 -          case 100: // comp_list ::= comp_decl_s variant_part_opt 
 81.8015 -            {
 81.8016 -              Object RESULT =null;
 81.8017 -
 81.8018 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("comp_list",153, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8019 -            }
 81.8020 -          return CUP$Ada95ASTParser$result;
 81.8021 -
 81.8022 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8023 -          case 99: // tagged_opt ::= ABSTRACT TAGGED 
 81.8024 -            {
 81.8025 -              Integer RESULT =null;
 81.8026 -		
 81.8027 -    RESULT = Ada95ASTParser.TAGGED + Ada95ASTParser.ABSTRACT;
 81.8028 -
 81.8029 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("tagged_opt",72, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8030 -            }
 81.8031 -          return CUP$Ada95ASTParser$result;
 81.8032 -
 81.8033 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8034 -          case 98: // tagged_opt ::= TAGGED 
 81.8035 -            {
 81.8036 -              Integer RESULT =null;
 81.8037 -		
 81.8038 -    RESULT = Ada95ASTParser.TAGGED;
 81.8039 -
 81.8040 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("tagged_opt",72, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8041 -            }
 81.8042 -          return CUP$Ada95ASTParser$result;
 81.8043 -
 81.8044 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8045 -          case 97: // tagged_opt ::= 
 81.8046 -            {
 81.8047 -              Integer RESULT =null;
 81.8048 -		
 81.8049 -    RESULT = 0;
 81.8050 -
 81.8051 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("tagged_opt",72, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8052 -            }
 81.8053 -          return CUP$Ada95ASTParser$result;
 81.8054 -
 81.8055 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8056 -          case 96: // record_def ::= NULL RECORD 
 81.8057 -            {
 81.8058 -              Object RESULT =null;
 81.8059 -
 81.8060 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("record_def",138, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8061 -            }
 81.8062 -          return CUP$Ada95ASTParser$result;
 81.8063 -
 81.8064 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8065 -          case 95: // record_def ::= RECORD pragma_s comp_list END RECORD 
 81.8066 -            {
 81.8067 -              Object RESULT =null;
 81.8068 -
 81.8069 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("record_def",138, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-4)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8070 -            }
 81.8071 -          return CUP$Ada95ASTParser$result;
 81.8072 -
 81.8073 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8074 -          case 94: // record_type ::= tagged_opt limited_opt record_def 
 81.8075 -            {
 81.8076 -              Object RESULT =null;
 81.8077 -
 81.8078 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("record_type",131, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8079 -            }
 81.8080 -          return CUP$Ada95ASTParser$result;
 81.8081 -
 81.8082 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8083 -          case 93: // range_constr_opt ::= range_constraint 
 81.8084 -            {
 81.8085 -              Object RESULT =null;
 81.8086 -
 81.8087 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("range_constr_opt",137, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8088 -            }
 81.8089 -          return CUP$Ada95ASTParser$result;
 81.8090 -
 81.8091 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8092 -          case 92: // range_constr_opt ::= 
 81.8093 -            {
 81.8094 -              Object RESULT =null;
 81.8095 -
 81.8096 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("range_constr_opt",137, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8097 -            }
 81.8098 -          return CUP$Ada95ASTParser$result;
 81.8099 -
 81.8100 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8101 -          case 91: // discrete_range ::= range 
 81.8102 -            {
 81.8103 -              Expression RESULT =null;
 81.8104 -		int rangeleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.8105 -		int rangeright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.8106 -		Expression range = (Expression)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.8107 -		
 81.8108 -    RESULT = range;
 81.8109 -
 81.8110 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("discrete_range",116, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8111 -            }
 81.8112 -          return CUP$Ada95ASTParser$result;
 81.8113 -
 81.8114 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8115 -          case 90: // discrete_range ::= name range_constr_opt 
 81.8116 -            {
 81.8117 -              Expression RESULT =null;
 81.8118 -
 81.8119 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("discrete_range",116, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8120 -            }
 81.8121 -          return CUP$Ada95ASTParser$result;
 81.8122 -
 81.8123 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8124 -          case 89: // iter_discrete_range_s ::= iter_discrete_range_s COMMA discrete_range 
 81.8125 -            {
 81.8126 -              Object RESULT =null;
 81.8127 -
 81.8128 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("iter_discrete_range_s",152, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8129 -            }
 81.8130 -          return CUP$Ada95ASTParser$result;
 81.8131 -
 81.8132 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8133 -          case 88: // iter_discrete_range_s ::= discrete_range 
 81.8134 -            {
 81.8135 -              Object RESULT =null;
 81.8136 -
 81.8137 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("iter_discrete_range_s",152, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8138 -            }
 81.8139 -          return CUP$Ada95ASTParser$result;
 81.8140 -
 81.8141 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8142 -          case 87: // iter_index_constraint ::= LPAREN iter_discrete_range_s RPAREN 
 81.8143 -            {
 81.8144 -              Object RESULT =null;
 81.8145 -
 81.8146 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("iter_index_constraint",151, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8147 -            }
 81.8148 -          return CUP$Ada95ASTParser$result;
 81.8149 -
 81.8150 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8151 -          case 86: // index ::= name RANGE BOX 
 81.8152 -            {
 81.8153 -              Object RESULT =null;
 81.8154 -
 81.8155 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("index",148, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8156 -            }
 81.8157 -          return CUP$Ada95ASTParser$result;
 81.8158 -
 81.8159 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8160 -          case 85: // index_s ::= index_s COMMA index 
 81.8161 -            {
 81.8162 -              Object RESULT =null;
 81.8163 -
 81.8164 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("index_s",147, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8165 -            }
 81.8166 -          return CUP$Ada95ASTParser$result;
 81.8167 -
 81.8168 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8169 -          case 84: // index_s ::= index 
 81.8170 -            {
 81.8171 -              Object RESULT =null;
 81.8172 -
 81.8173 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("index_s",147, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8174 -            }
 81.8175 -          return CUP$Ada95ASTParser$result;
 81.8176 -
 81.8177 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8178 -          case 83: // aliased_opt ::= ALIASED 
 81.8179 -            {
 81.8180 -              Object RESULT =null;
 81.8181 -
 81.8182 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("aliased_opt",150, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8183 -            }
 81.8184 -          return CUP$Ada95ASTParser$result;
 81.8185 -
 81.8186 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8187 -          case 82: // aliased_opt ::= 
 81.8188 -            {
 81.8189 -              Object RESULT =null;
 81.8190 -
 81.8191 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("aliased_opt",150, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8192 -            }
 81.8193 -          return CUP$Ada95ASTParser$result;
 81.8194 -
 81.8195 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8196 -          case 81: // component_subtype_def ::= aliased_opt subtype_indication 
 81.8197 -            {
 81.8198 -              Object RESULT =null;
 81.8199 -
 81.8200 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("component_subtype_def",149, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8201 -            }
 81.8202 -          return CUP$Ada95ASTParser$result;
 81.8203 -
 81.8204 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8205 -          case 80: // constr_array_type ::= ARRAY iter_index_constraint OF component_subtype_def 
 81.8206 -            {
 81.8207 -              Object RESULT =null;
 81.8208 -
 81.8209 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("constr_array_type",146, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8210 -            }
 81.8211 -          return CUP$Ada95ASTParser$result;
 81.8212 -
 81.8213 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8214 -          case 79: // unconstr_array_type ::= ARRAY LPAREN index_s RPAREN OF component_subtype_def 
 81.8215 -            {
 81.8216 -              Object RESULT =null;
 81.8217 -
 81.8218 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("unconstr_array_type",145, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-5)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8219 -            }
 81.8220 -          return CUP$Ada95ASTParser$result;
 81.8221 -
 81.8222 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8223 -          case 78: // array_type ::= constr_array_type 
 81.8224 -            {
 81.8225 -              Object RESULT =null;
 81.8226 -
 81.8227 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("array_type",130, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8228 -            }
 81.8229 -          return CUP$Ada95ASTParser$result;
 81.8230 -
 81.8231 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8232 -          case 77: // array_type ::= unconstr_array_type 
 81.8233 -            {
 81.8234 -              Object RESULT =null;
 81.8235 -
 81.8236 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("array_type",130, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8237 -            }
 81.8238 -          return CUP$Ada95ASTParser$result;
 81.8239 -
 81.8240 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8241 -          case 76: // fixed_type ::= DELTA expression DIGITS expression range_spec_opt 
 81.8242 -            {
 81.8243 -              Object RESULT =null;
 81.8244 -
 81.8245 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("fixed_type",144, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-4)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8246 -            }
 81.8247 -          return CUP$Ada95ASTParser$result;
 81.8248 -
 81.8249 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8250 -          case 75: // fixed_type ::= DELTA expression range_spec 
 81.8251 -            {
 81.8252 -              Object RESULT =null;
 81.8253 -
 81.8254 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("fixed_type",144, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8255 -            }
 81.8256 -          return CUP$Ada95ASTParser$result;
 81.8257 -
 81.8258 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8259 -          case 74: // float_type ::= DIGITS expression range_spec_opt 
 81.8260 -            {
 81.8261 -              Object RESULT =null;
 81.8262 -
 81.8263 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("float_type",143, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8264 -            }
 81.8265 -          return CUP$Ada95ASTParser$result;
 81.8266 -
 81.8267 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8268 -          case 73: // real_type ::= fixed_type 
 81.8269 -            {
 81.8270 -              Object RESULT =null;
 81.8271 -
 81.8272 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("real_type",129, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8273 -            }
 81.8274 -          return CUP$Ada95ASTParser$result;
 81.8275 -
 81.8276 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8277 -          case 72: // real_type ::= float_type 
 81.8278 -            {
 81.8279 -              Object RESULT =null;
 81.8280 -
 81.8281 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("real_type",129, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8282 -            }
 81.8283 -          return CUP$Ada95ASTParser$result;
 81.8284 -
 81.8285 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8286 -          case 71: // range_spec_opt ::= range_spec 
 81.8287 -            {
 81.8288 -              Object RESULT =null;
 81.8289 -
 81.8290 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("range_spec_opt",142, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8291 -            }
 81.8292 -          return CUP$Ada95ASTParser$result;
 81.8293 -
 81.8294 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8295 -          case 70: // range_spec_opt ::= 
 81.8296 -            {
 81.8297 -              Object RESULT =null;
 81.8298 -
 81.8299 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("range_spec_opt",142, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8300 -            }
 81.8301 -          return CUP$Ada95ASTParser$result;
 81.8302 -
 81.8303 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8304 -          case 69: // range_spec ::= range_constraint 
 81.8305 -            {
 81.8306 -              Object RESULT =null;
 81.8307 -
 81.8308 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("range_spec",141, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8309 -            }
 81.8310 -          return CUP$Ada95ASTParser$result;
 81.8311 -
 81.8312 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8313 -          case 68: // integer_type ::= MOD expression 
 81.8314 -            {
 81.8315 -              Object RESULT =null;
 81.8316 -
 81.8317 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("integer_type",128, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8318 -            }
 81.8319 -          return CUP$Ada95ASTParser$result;
 81.8320 -
 81.8321 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8322 -          case 67: // integer_type ::= range_spec 
 81.8323 -            {
 81.8324 -              Object RESULT =null;
 81.8325 -
 81.8326 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("integer_type",128, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8327 -            }
 81.8328 -          return CUP$Ada95ASTParser$result;
 81.8329 -
 81.8330 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8331 -          case 66: // enum_id ::= CHAR_LITERAL 
 81.8332 -            {
 81.8333 -              Object RESULT =null;
 81.8334 -
 81.8335 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("enum_id",140, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8336 -            }
 81.8337 -          return CUP$Ada95ASTParser$result;
 81.8338 -
 81.8339 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8340 -          case 65: // enum_id ::= IDENTIFIER 
 81.8341 -            {
 81.8342 -              Object RESULT =null;
 81.8343 -
 81.8344 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("enum_id",140, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8345 -            }
 81.8346 -          return CUP$Ada95ASTParser$result;
 81.8347 -
 81.8348 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8349 -          case 64: // enum_id_s ::= enum_id_s COMMA enum_id 
 81.8350 -            {
 81.8351 -              Object RESULT =null;
 81.8352 -
 81.8353 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("enum_id_s",139, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8354 -            }
 81.8355 -          return CUP$Ada95ASTParser$result;
 81.8356 -
 81.8357 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8358 -          case 63: // enum_id_s ::= enum_id 
 81.8359 -            {
 81.8360 -              Object RESULT =null;
 81.8361 -
 81.8362 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("enum_id_s",139, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8363 -            }
 81.8364 -          return CUP$Ada95ASTParser$result;
 81.8365 -
 81.8366 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8367 -          case 62: // enumeration_type ::= LPAREN enum_id_s RPAREN 
 81.8368 -            {
 81.8369 -              Object RESULT =null;
 81.8370 -
 81.8371 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("enumeration_type",127, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8372 -            }
 81.8373 -          return CUP$Ada95ASTParser$result;
 81.8374 -
 81.8375 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8376 -          case 61: // range ::= name TICK RANGE LPAREN expression RPAREN 
 81.8377 -            {
 81.8378 -              Expression RESULT =null;
 81.8379 -		int nameleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-5)).left;
 81.8380 -		int nameright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-5)).right;
 81.8381 -		String name = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-5)).value;
 81.8382 -		int exprleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).left;
 81.8383 -		int exprright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).right;
 81.8384 -		Expression expr = (Expression)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).value;
 81.8385 -		
 81.8386 -    RESULT = expr;
 81.8387 -
 81.8388 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("range",117, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-5)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8389 -            }
 81.8390 -          return CUP$Ada95ASTParser$result;
 81.8391 -
 81.8392 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8393 -          case 60: // range ::= name TICK RANGE 
 81.8394 -            {
 81.8395 -              Expression RESULT =null;
 81.8396 -
 81.8397 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("range",117, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8398 -            }
 81.8399 -          return CUP$Ada95ASTParser$result;
 81.8400 -
 81.8401 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8402 -          case 59: // range ::= simple_expression DOT_DOT simple_expression 
 81.8403 -            {
 81.8404 -              Expression RESULT =null;
 81.8405 -		int simple_exprleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).left;
 81.8406 -		int simple_exprright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).right;
 81.8407 -		Expression simple_expr = (Expression)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).value;
 81.8408 -		
 81.8409 -    RESULT = simple_expr;
 81.8410 -
 81.8411 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("range",117, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8412 -            }
 81.8413 -          return CUP$Ada95ASTParser$result;
 81.8414 -
 81.8415 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8416 -          case 58: // range_constraint ::= RANGE range 
 81.8417 -            {
 81.8418 -              Object RESULT =null;
 81.8419 -
 81.8420 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("range_constraint",135, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8421 -            }
 81.8422 -          return CUP$Ada95ASTParser$result;
 81.8423 -
 81.8424 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8425 -          case 57: // derived_type ::= ABSTRACT NEW subtype_indication WITH record_def 
 81.8426 -            {
 81.8427 -              Object RESULT =null;
 81.8428 -
 81.8429 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("derived_type",133, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-4)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8430 -            }
 81.8431 -          return CUP$Ada95ASTParser$result;
 81.8432 -
 81.8433 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8434 -          case 56: // derived_type ::= ABSTRACT NEW subtype_indication WITH PRIVATE 
 81.8435 -            {
 81.8436 -              Object RESULT =null;
 81.8437 -
 81.8438 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("derived_type",133, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-4)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8439 -            }
 81.8440 -          return CUP$Ada95ASTParser$result;
 81.8441 -
 81.8442 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8443 -          case 55: // derived_type ::= NEW subtype_indication WITH record_def 
 81.8444 -            {
 81.8445 -              Object RESULT =null;
 81.8446 -
 81.8447 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("derived_type",133, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8448 -            }
 81.8449 -          return CUP$Ada95ASTParser$result;
 81.8450 -
 81.8451 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8452 -          case 54: // derived_type ::= NEW subtype_indication WITH PRIVATE 
 81.8453 -            {
 81.8454 -              Object RESULT =null;
 81.8455 -
 81.8456 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("derived_type",133, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8457 -            }
 81.8458 -          return CUP$Ada95ASTParser$result;
 81.8459 -
 81.8460 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8461 -          case 53: // derived_type ::= NEW subtype_indication 
 81.8462 -            {
 81.8463 -              Object RESULT =null;
 81.8464 -
 81.8465 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("derived_type",133, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8466 -            }
 81.8467 -          return CUP$Ada95ASTParser$result;
 81.8468 -
 81.8469 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8470 -          case 52: // decimal_digits_constraint ::= DIGITS expression range_constr_opt 
 81.8471 -            {
 81.8472 -              Object RESULT =null;
 81.8473 -
 81.8474 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("decimal_digits_constraint",136, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8475 -            }
 81.8476 -          return CUP$Ada95ASTParser$result;
 81.8477 -
 81.8478 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8479 -          case 51: // constraint ::= decimal_digits_constraint 
 81.8480 -            {
 81.8481 -              Object RESULT =null;
 81.8482 -
 81.8483 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("constraint",134, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8484 -            }
 81.8485 -          return CUP$Ada95ASTParser$result;
 81.8486 -
 81.8487 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8488 -          case 50: // constraint ::= range_constraint 
 81.8489 -            {
 81.8490 -              Object RESULT =null;
 81.8491 -
 81.8492 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("constraint",134, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8493 -            }
 81.8494 -          return CUP$Ada95ASTParser$result;
 81.8495 -
 81.8496 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8497 -          case 49: // subtype_indication ::= name 
 81.8498 -            {
 81.8499 -              TypeName RESULT =null;
 81.8500 -		int nameleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.8501 -		int nameright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.8502 -		String name = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.8503 -		    
 81.8504 -    Identifier identifier = new Identifier(nameleft, nameright, name);
 81.8505 -    TypeName type = new TypeName (nameleft, nameright, identifier);
 81.8506 -    RESULT = type;
 81.8507 -
 81.8508 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("subtype_indication",15, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8509 -            }
 81.8510 -          return CUP$Ada95ASTParser$result;
 81.8511 -
 81.8512 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8513 -          case 48: // subtype_indication ::= name constraint 
 81.8514 -            {
 81.8515 -              TypeName RESULT =null;
 81.8516 -		int nameleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).left;
 81.8517 -		int nameright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).right;
 81.8518 -		String name = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).value;
 81.8519 -		    
 81.8520 -    Identifier identifier = new Identifier(nameleft, nameright, name);
 81.8521 -    TypeName type = new TypeName (nameleft, nameright, identifier);
 81.8522 -    RESULT = type;
 81.8523 -
 81.8524 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("subtype_indication",15, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8525 -            }
 81.8526 -          return CUP$Ada95ASTParser$result;
 81.8527 -
 81.8528 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8529 -          case 47: // subtype_declaration ::= SUBTYPE defining_identifier IS subtype_indication SEMICOLON 
 81.8530 -            {
 81.8531 -              Statement RESULT =null;
 81.8532 -		int tokenleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-4)).left;
 81.8533 -		int tokenright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-4)).right;
 81.8534 -		Object token = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-4)).value;
 81.8535 -		int identifierleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)).left;
 81.8536 -		int identifierright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)).right;
 81.8537 -		Identifier identifier = (Identifier)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)).value;
 81.8538 -		int subtypeIndicationleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).left;
 81.8539 -		int subtypeIndicationright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).right;
 81.8540 -		TypeName subtypeIndication = (TypeName)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).value;
 81.8541 -		int endleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.8542 -		int endright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.8543 -		Object end = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.8544 -		
 81.8545 -    SubtypeDeclaration type = new SubtypeDeclaration (tokenleft, endright, identifier, subtypeIndication);
 81.8546 -    RESULT = type;
 81.8547 -
 81.8548 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("subtype_declaration",14, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-4)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8549 -            }
 81.8550 -          return CUP$Ada95ASTParser$result;
 81.8551 -
 81.8552 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8553 -          case 46: // type_definition ::= private_type_declaration 
 81.8554 -            {
 81.8555 -              Expression RESULT =null;
 81.8556 -		int privateTypeleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.8557 -		int privateTyperight = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.8558 -		PrivateType privateType = (PrivateType)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.8559 -		
 81.8560 -    RESULT = privateType;
 81.8561 -
 81.8562 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("type_definition",13, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8563 -            }
 81.8564 -          return CUP$Ada95ASTParser$result;
 81.8565 -
 81.8566 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8567 -          case 45: // type_definition ::= derived_type 
 81.8568 -            {
 81.8569 -              Expression RESULT =null;
 81.8570 -
 81.8571 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("type_definition",13, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8572 -            }
 81.8573 -          return CUP$Ada95ASTParser$result;
 81.8574 -
 81.8575 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8576 -          case 44: // type_definition ::= access_type 
 81.8577 -            {
 81.8578 -              Expression RESULT =null;
 81.8579 -
 81.8580 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("type_definition",13, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8581 -            }
 81.8582 -          return CUP$Ada95ASTParser$result;
 81.8583 -
 81.8584 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8585 -          case 43: // type_definition ::= record_type 
 81.8586 -            {
 81.8587 -              Expression RESULT =null;
 81.8588 -
 81.8589 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("type_definition",13, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8590 -            }
 81.8591 -          return CUP$Ada95ASTParser$result;
 81.8592 -
 81.8593 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8594 -          case 42: // type_definition ::= array_type 
 81.8595 -            {
 81.8596 -              Expression RESULT =null;
 81.8597 -
 81.8598 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("type_definition",13, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8599 -            }
 81.8600 -          return CUP$Ada95ASTParser$result;
 81.8601 -
 81.8602 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8603 -          case 41: // type_definition ::= real_type 
 81.8604 -            {
 81.8605 -              Expression RESULT =null;
 81.8606 -
 81.8607 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("type_definition",13, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8608 -            }
 81.8609 -          return CUP$Ada95ASTParser$result;
 81.8610 -
 81.8611 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8612 -          case 40: // type_definition ::= integer_type 
 81.8613 -            {
 81.8614 -              Expression RESULT =null;
 81.8615 -
 81.8616 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("type_definition",13, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8617 -            }
 81.8618 -          return CUP$Ada95ASTParser$result;
 81.8619 -
 81.8620 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8621 -          case 39: // type_definition ::= enumeration_type 
 81.8622 -            {
 81.8623 -              Expression RESULT =null;
 81.8624 -
 81.8625 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("type_definition",13, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8626 -            }
 81.8627 -          return CUP$Ada95ASTParser$result;
 81.8628 -
 81.8629 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8630 -          case 38: // type_completion ::= IS type_definition 
 81.8631 -            {
 81.8632 -              Expression RESULT =null;
 81.8633 -		int typeDefleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.8634 -		int typeDefright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.8635 -		Expression typeDef = (Expression)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.8636 -		
 81.8637 -    RESULT = typeDef;
 81.8638 -
 81.8639 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("type_completion",99, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8640 -            }
 81.8641 -          return CUP$Ada95ASTParser$result;
 81.8642 -
 81.8643 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8644 -          case 37: // type_completion ::= 
 81.8645 -            {
 81.8646 -              Expression RESULT =null;
 81.8647 -		
 81.8648 -    RESULT = null;
 81.8649 -
 81.8650 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("type_completion",99, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8651 -            }
 81.8652 -          return CUP$Ada95ASTParser$result;
 81.8653 -
 81.8654 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8655 -          case 36: // discrim_part_opt ::= LPAREN BOX RPAREN 
 81.8656 -            {
 81.8657 -              Object RESULT =null;
 81.8658 -
 81.8659 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("discrim_part_opt",125, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8660 -            }
 81.8661 -          return CUP$Ada95ASTParser$result;
 81.8662 -
 81.8663 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8664 -          case 35: // discrim_part_opt ::= discrim_part 
 81.8665 -            {
 81.8666 -              Object RESULT =null;
 81.8667 -
 81.8668 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("discrim_part_opt",125, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8669 -            }
 81.8670 -          return CUP$Ada95ASTParser$result;
 81.8671 -
 81.8672 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8673 -          case 34: // discrim_part_opt ::= 
 81.8674 -            {
 81.8675 -              Object RESULT =null;
 81.8676 -
 81.8677 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("discrim_part_opt",125, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8678 -            }
 81.8679 -          return CUP$Ada95ASTParser$result;
 81.8680 -
 81.8681 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8682 -          case 33: // type_decl ::= TYPE defining_identifier discrim_part_opt type_completion SEMICOLON 
 81.8683 -            {
 81.8684 -              Statement RESULT =null;
 81.8685 -		int tokenleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-4)).left;
 81.8686 -		int tokenright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-4)).right;
 81.8687 -		Object token = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-4)).value;
 81.8688 -		int identifierleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)).left;
 81.8689 -		int identifierright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)).right;
 81.8690 -		Identifier identifier = (Identifier)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)).value;
 81.8691 -		int typeCompletionleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).left;
 81.8692 -		int typeCompletionright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).right;
 81.8693 -		Expression typeCompletion = (Expression)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).value;
 81.8694 -		int endleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.8695 -		int endright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.8696 -		Object end = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.8697 -		
 81.8698 -    TypeDeclaration type = new TypeDeclaration (tokenleft, endright, identifier, typeCompletion);
 81.8699 -    RESULT = type;
 81.8700 -
 81.8701 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("type_decl",98, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-4)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8702 -            }
 81.8703 -          return CUP$Ada95ASTParser$result;
 81.8704 -
 81.8705 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8706 -          case 32: // number_declaration ::= defining_identifier_list COLON CONSTANT ASSIGNMENT expression SEMICOLON 
 81.8707 -            {
 81.8708 -              List RESULT =null;
 81.8709 -		int identifierListleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-5)).left;
 81.8710 -		int identifierListright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-5)).right;
 81.8711 -		List identifierList = (List)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-5)).value;
 81.8712 -		int initleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).left;
 81.8713 -		int initright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).right;
 81.8714 -		Expression init = (Expression)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).value;
 81.8715 -		
 81.8716 -    List list = new LinkedList();
 81.8717 -    for (Object identifier : identifierList) {
 81.8718 -        Variable variable = new Variable (((Identifier)identifier).getStartOffset(), ((Identifier)identifier).getEndOffset(), (Identifier)identifier, Variable.Kind.CONSTANT);
 81.8719 -        list.add(new ASTNode[] {variable, init});
 81.8720 -    }
 81.8721 -    RESULT = list;
 81.8722 -
 81.8723 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("number_declaration",19, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-5)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8724 -            }
 81.8725 -          return CUP$Ada95ASTParser$result;
 81.8726 -
 81.8727 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8728 -          case 31: // init_opt ::= ASSIGNMENT expression 
 81.8729 -            {
 81.8730 -              Expression RESULT =null;
 81.8731 -		int exprleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.8732 -		int exprright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.8733 -		Expression expr = (Expression)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.8734 -		
 81.8735 -    RESULT = expr;
 81.8736 -
 81.8737 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("init_opt",97, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8738 -            }
 81.8739 -          return CUP$Ada95ASTParser$result;
 81.8740 -
 81.8741 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8742 -          case 30: // init_opt ::= 
 81.8743 -            {
 81.8744 -              Expression RESULT =null;
 81.8745 -		
 81.8746 -    RESULT = null;
 81.8747 -
 81.8748 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("init_opt",97, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8749 -            }
 81.8750 -          return CUP$Ada95ASTParser$result;
 81.8751 -
 81.8752 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8753 -          case 29: // object_subtype_def ::= array_type 
 81.8754 -            {
 81.8755 -              TypeName RESULT =null;
 81.8756 -		int arrayleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.8757 -		int arrayright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.8758 -		Object array = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.8759 -
 81.8760 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("object_subtype_def",96, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8761 -            }
 81.8762 -          return CUP$Ada95ASTParser$result;
 81.8763 -
 81.8764 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8765 -          case 28: // object_subtype_def ::= subtype_indication 
 81.8766 -            {
 81.8767 -              TypeName RESULT =null;
 81.8768 -		int subtypeleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.8769 -		int subtyperight = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.8770 -		TypeName subtype = (TypeName)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.8771 -		
 81.8772 -    RESULT = subtype;
 81.8773 -
 81.8774 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("object_subtype_def",96, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8775 -            }
 81.8776 -          return CUP$Ada95ASTParser$result;
 81.8777 -
 81.8778 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8779 -          case 27: // object_qualifier_opt ::= ALIASED CONSTANT 
 81.8780 -            {
 81.8781 -              Variable.Kind RESULT =null;
 81.8782 -		
 81.8783 -    RESULT = Variable.Kind.ALIASED_CONSTANT;
 81.8784 -
 81.8785 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("object_qualifier_opt",18, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8786 -            }
 81.8787 -          return CUP$Ada95ASTParser$result;
 81.8788 -
 81.8789 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8790 -          case 26: // object_qualifier_opt ::= CONSTANT 
 81.8791 -            {
 81.8792 -              Variable.Kind RESULT =null;
 81.8793 -		
 81.8794 -    RESULT = Variable.Kind.CONSTANT;
 81.8795 -
 81.8796 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("object_qualifier_opt",18, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8797 -            }
 81.8798 -          return CUP$Ada95ASTParser$result;
 81.8799 -
 81.8800 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8801 -          case 25: // object_qualifier_opt ::= ALIASED 
 81.8802 -            {
 81.8803 -              Variable.Kind RESULT =null;
 81.8804 -		
 81.8805 -    RESULT = Variable.Kind.ALIASED;
 81.8806 -
 81.8807 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("object_qualifier_opt",18, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8808 -            }
 81.8809 -          return CUP$Ada95ASTParser$result;
 81.8810 -
 81.8811 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8812 -          case 24: // object_qualifier_opt ::= 
 81.8813 -            {
 81.8814 -              Variable.Kind RESULT =null;
 81.8815 -		
 81.8816 -    RESULT = Variable.Kind.DEFAULT;
 81.8817 -
 81.8818 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("object_qualifier_opt",18, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8819 -            }
 81.8820 -          return CUP$Ada95ASTParser$result;
 81.8821 -
 81.8822 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8823 -          case 23: // defining_identifier_list ::= defining_identifier_list COMMA defining_identifier 
 81.8824 -            {
 81.8825 -              List RESULT =null;
 81.8826 -		int identifierListleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).left;
 81.8827 -		int identifierListright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).right;
 81.8828 -		List identifierList = (List)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).value;
 81.8829 -		int identifierleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.8830 -		int identifierright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.8831 -		Identifier identifier = (Identifier)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.8832 -		
 81.8833 -    identifierList.add(identifier);
 81.8834 -    RESULT = identifierList;
 81.8835 -
 81.8836 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("defining_identifier_list",17, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8837 -            }
 81.8838 -          return CUP$Ada95ASTParser$result;
 81.8839 -
 81.8840 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8841 -          case 22: // defining_identifier_list ::= defining_identifier 
 81.8842 -            {
 81.8843 -              List RESULT =null;
 81.8844 -		int identifierleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.8845 -		int identifierright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.8846 -		Identifier identifier = (Identifier)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.8847 -		
 81.8848 -    List identifierList = new LinkedList();
 81.8849 -    identifierList.add(identifier);
 81.8850 -    RESULT = identifierList;
 81.8851 -
 81.8852 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("defining_identifier_list",17, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8853 -            }
 81.8854 -          return CUP$Ada95ASTParser$result;
 81.8855 -
 81.8856 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8857 -          case 21: // object_declaration ::= defining_identifier_list COLON object_qualifier_opt object_subtype_def init_opt SEMICOLON 
 81.8858 -            {
 81.8859 -              List RESULT =null;
 81.8860 -		int identifierListleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-5)).left;
 81.8861 -		int identifierListright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-5)).right;
 81.8862 -		List identifierList = (List)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-5)).value;
 81.8863 -		int varKindleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)).left;
 81.8864 -		int varKindright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)).right;
 81.8865 -		Variable.Kind varKind = (Variable.Kind)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-3)).value;
 81.8866 -		int subtypeleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).left;
 81.8867 -		int subtyperight = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).right;
 81.8868 -		TypeName subtype = (TypeName)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)).value;
 81.8869 -		int initleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).left;
 81.8870 -		int initright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).right;
 81.8871 -		Expression init = (Expression)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).value;
 81.8872 -		
 81.8873 -    List list = new LinkedList();
 81.8874 -    for (Object identifier : identifierList) {
 81.8875 -        Variable variable = new Variable (((Identifier)identifier).getStartOffset(), ((Identifier)identifier).getEndOffset(), (Identifier)identifier, varKind, subtype);
 81.8876 -        list.add(new ASTNode[] {variable, init});
 81.8877 -    }
 81.8878 -    RESULT = list;
 81.8879 -
 81.8880 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("object_declaration",16, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-5)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8881 -            }
 81.8882 -          return CUP$Ada95ASTParser$result;
 81.8883 -
 81.8884 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8885 -          case 20: // defining_identifier ::= IDENTIFIER 
 81.8886 -            {
 81.8887 -              Identifier RESULT =null;
 81.8888 -		int idleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.8889 -		int idright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.8890 -		String id = (String)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.8891 -		
 81.8892 -    Identifier identifier = new Identifier(idleft, idright, id);
 81.8893 -    RESULT = identifier;
 81.8894 -
 81.8895 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("defining_identifier",4, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8896 -            }
 81.8897 -          return CUP$Ada95ASTParser$result;
 81.8898 -
 81.8899 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8900 -          case 19: // declaration ::= error SEMICOLON 
 81.8901 -            {
 81.8902 -              Statement RESULT =null;
 81.8903 -		int theErrorleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).left;
 81.8904 -		int theErrorright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).right;
 81.8905 -		Object theError = (Object)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).value;
 81.8906 -		
 81.8907 -    ASTError error = new ASTError(theErrorleft, theErrorright);
 81.8908 -    RESULT = error;
 81.8909 -
 81.8910 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("declaration",0, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8911 -            }
 81.8912 -          return CUP$Ada95ASTParser$result;
 81.8913 -
 81.8914 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8915 -          case 18: // declaration ::= body_stub 
 81.8916 -            {
 81.8917 -              Statement RESULT =null;
 81.8918 -		int statementleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.8919 -		int statementright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.8920 -		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.8921 -		
 81.8922 -	RESULT = statement;
 81.8923 -
 81.8924 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("declaration",0, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8925 -            }
 81.8926 -          return CUP$Ada95ASTParser$result;
 81.8927 -
 81.8928 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8929 -          case 17: // declaration ::= generic_declaration 
 81.8930 -            {
 81.8931 -              Statement RESULT =null;
 81.8932 -		int statementleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.8933 -		int statementright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.8934 -		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.8935 -		
 81.8936 -	RESULT = statement;
 81.8937 -
 81.8938 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("declaration",0, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8939 -            }
 81.8940 -          return CUP$Ada95ASTParser$result;
 81.8941 -
 81.8942 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8943 -          case 16: // declaration ::= renaming_declaration 
 81.8944 -            {
 81.8945 -              Statement RESULT =null;
 81.8946 -		int statementleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.8947 -		int statementright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.8948 -		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.8949 -		
 81.8950 -	RESULT = statement;
 81.8951 -
 81.8952 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("declaration",0, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8953 -            }
 81.8954 -          return CUP$Ada95ASTParser$result;
 81.8955 -
 81.8956 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8957 -          case 15: // declaration ::= exception_decl 
 81.8958 -            {
 81.8959 -              Statement RESULT =null;
 81.8960 -
 81.8961 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("declaration",0, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8962 -            }
 81.8963 -          return CUP$Ada95ASTParser$result;
 81.8964 -
 81.8965 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8966 -          case 14: // declaration ::= prot_decl 
 81.8967 -            {
 81.8968 -              Statement RESULT =null;
 81.8969 -
 81.8970 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("declaration",0, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8971 -            }
 81.8972 -          return CUP$Ada95ASTParser$result;
 81.8973 -
 81.8974 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8975 -          case 13: // declaration ::= task_decl 
 81.8976 -            {
 81.8977 -              Statement RESULT =null;
 81.8978 -
 81.8979 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("declaration",0, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8980 -            }
 81.8981 -          return CUP$Ada95ASTParser$result;
 81.8982 -
 81.8983 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8984 -          case 12: // type_declaration ::= subtype_declaration 
 81.8985 -            {
 81.8986 -              Statement RESULT =null;
 81.8987 -		int statementleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.8988 -		int statementright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.8989 -		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.8990 -		
 81.8991 -	RESULT = statement;
 81.8992 -
 81.8993 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("type_declaration",2, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.8994 -            }
 81.8995 -          return CUP$Ada95ASTParser$result;
 81.8996 -
 81.8997 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.8998 -          case 11: // type_declaration ::= type_decl 
 81.8999 -            {
 81.9000 -              Statement RESULT =null;
 81.9001 -		int statementleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.9002 -		int statementright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.9003 -		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.9004 -		
 81.9005 -	RESULT = statement;
 81.9006 -
 81.9007 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("type_declaration",2, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.9008 -            }
 81.9009 -          return CUP$Ada95ASTParser$result;
 81.9010 -
 81.9011 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.9012 -          case 10: // fields_declaration ::= number_declaration 
 81.9013 -            {
 81.9014 -              List RESULT =null;
 81.9015 -		int statementleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.9016 -		int statementright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.9017 -		List statement = (List)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.9018 -		
 81.9019 -	RESULT = statement;
 81.9020 -
 81.9021 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("fields_declaration",1, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.9022 -            }
 81.9023 -          return CUP$Ada95ASTParser$result;
 81.9024 -
 81.9025 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.9026 -          case 9: // fields_declaration ::= object_declaration 
 81.9027 -            {
 81.9028 -              List RESULT =null;
 81.9029 -		int statementleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).left;
 81.9030 -		int statementright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()).right;
 81.9031 -		List statement = (List)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.peek()).value;
 81.9032 -		
 81.9033 -	RESULT = statement;
 81.9034 -
 81.9035 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("fields_declaration",1, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.9036 -            }
 81.9037 -          return CUP$Ada95ASTParser$result;
 81.9038 -
 81.9039 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.9040 -          case 8: // pragma_s ::= pragma_s pragma 
 81.9041 -            {
 81.9042 -              Object RESULT =null;
 81.9043 -
 81.9044 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("pragma_s",121, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.9045 -            }
 81.9046 -          return CUP$Ada95ASTParser$result;
 81.9047 -
 81.9048 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.9049 -          case 7: // pragma_s ::= 
 81.9050 -            {
 81.9051 -              Object RESULT =null;
 81.9052 -
 81.9053 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("pragma_s",121, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.9054 -            }
 81.9055 -          return CUP$Ada95ASTParser$result;
 81.9056 -
 81.9057 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.9058 -          case 6: // pragma_arg ::= simple_name ARROW expression 
 81.9059 -            {
 81.9060 -              Object RESULT =null;
 81.9061 -
 81.9062 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("pragma_arg",120, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.9063 -            }
 81.9064 -          return CUP$Ada95ASTParser$result;
 81.9065 -
 81.9066 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.9067 -          case 5: // pragma_arg ::= expression 
 81.9068 -            {
 81.9069 -              Object RESULT =null;
 81.9070 -
 81.9071 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("pragma_arg",120, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.9072 -            }
 81.9073 -          return CUP$Ada95ASTParser$result;
 81.9074 -
 81.9075 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.9076 -          case 4: // pragma_arg_s ::= pragma_arg_s COMMA pragma_arg 
 81.9077 -            {
 81.9078 -              Object RESULT =null;
 81.9079 -
 81.9080 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("pragma_arg_s",119, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.9081 -            }
 81.9082 -          return CUP$Ada95ASTParser$result;
 81.9083 -
 81.9084 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.9085 -          case 3: // pragma_arg_s ::= pragma_arg 
 81.9086 -            {
 81.9087 -              Object RESULT =null;
 81.9088 -
 81.9089 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("pragma_arg_s",119, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.9090 -            }
 81.9091 -          return CUP$Ada95ASTParser$result;
 81.9092 -
 81.9093 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.9094 -          case 2: // pragma ::= PRAGMA simple_name LPAREN pragma_arg_s RPAREN SEMICOLON 
 81.9095 -            {
 81.9096 -              Object RESULT =null;
 81.9097 -
 81.9098 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("pragma",118, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-5)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.9099 -            }
 81.9100 -          return CUP$Ada95ASTParser$result;
 81.9101 -
 81.9102 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.9103 -          case 1: // pragma ::= PRAGMA IDENTIFIER SEMICOLON 
 81.9104 -            {
 81.9105 -              Object RESULT =null;
 81.9106 -
 81.9107 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("pragma",118, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.9108 -            }
 81.9109 -          return CUP$Ada95ASTParser$result;
 81.9110 -
 81.9111 -          /*. . . . . . . . . . . . . . . . . . . .*/
 81.9112 -          case 0: // $START ::= compilation EOF 
 81.9113 -            {
 81.9114 -              Object RESULT =null;
 81.9115 -		int start_valleft = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).left;
 81.9116 -		int start_valright = ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).right;
 81.9117 -		Program start_val = (Program)((java_cup.runtime.Symbol) CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)).value;
 81.9118 -		RESULT = start_val;
 81.9119 -              CUP$Ada95ASTParser$result = parser.getSymbolFactory().newSymbol("$START",0, ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.elementAt(CUP$Ada95ASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$Ada95ASTParser$stack.peek()), RESULT);
 81.9120 -            }
 81.9121 -          /* ACCEPT */
 81.9122 -          CUP$Ada95ASTParser$parser.done_parsing();
 81.9123 -          return CUP$Ada95ASTParser$result;
 81.9124 -
 81.9125 -          /* . . . . . .*/
 81.9126 -          default:
 81.9127 -            throw new Exception(
 81.9128 -               "Invalid action number found in internal parse table");
 81.9129 -
 81.9130 -        }
 81.9131 -    }
 81.9132 -}
 81.9133 -
    82.1 --- a/ada.editor/src/org/netbeans/modules/ada/editor/parser/Ada95ASTSymbols.java	Tue Oct 02 21:55:21 2012 -0400
    82.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    82.3 @@ -1,115 +0,0 @@
    82.4 -
    82.5 -//----------------------------------------------------
    82.6 -// The following code was generated by CUP v0.11a beta 20060608
    82.7 -// Tue Sep 22 18:19:43 CEST 2009
    82.8 -//----------------------------------------------------
    82.9 -
   82.10 -package org.netbeans.modules.ada.editor.parser;
   82.11 -
   82.12 -/** CUP generated interface containing symbol constants. */
   82.13 -public interface Ada95ASTSymbols {
   82.14 -  /* terminals */
   82.15 -  public static final int AT = 11;
   82.16 -  public static final int IDENTIFIER = 98;
   82.17 -  public static final int GT = 83;
   82.18 -  public static final int LIMITED = 34;
   82.19 -  public static final int ARROW = 87;
   82.20 -  public static final int AMP = 71;
   82.21 -  public static final int TYPE = 64;
   82.22 -  public static final int SUBTYPE = 59;
   82.23 -  public static final int ALIASED = 7;
   82.24 -  public static final int RAISE = 51;
   82.25 -  public static final int RENAMES = 55;
   82.26 -  public static final int UNTIL = 65;
   82.27 -  public static final int ASSIGNMENT = 90;
   82.28 -  public static final int ELSIF = 22;
   82.29 -  public static final int COMMA = 77;
   82.30 -  public static final int TERMINATE = 62;
   82.31 -  public static final int RPAREN = 74;
   82.32 -  public static final int LT = 85;
   82.33 -  public static final int ALL = 8;
   82.34 -  public static final int DECLARE = 16;
   82.35 -  public static final int ABORT = 2;
   82.36 -  public static final int GTGT = 95;
   82.37 -  public static final int LPAREN = 73;
   82.38 -  public static final int ACCESS = 5;
   82.39 -  public static final int LOOP = 35;
   82.40 -  public static final int PROTECTED = 48;
   82.41 -  public static final int OUT = 43;
   82.42 -  public static final int NOT = 38;
   82.43 -  public static final int TASK = 61;
   82.44 -  public static final int ARRAY = 10;
   82.45 -  public static final int THEN = 63;
   82.46 -  public static final int GOTO = 30;
   82.47 -  public static final int PACKAGE = 44;
   82.48 -  public static final int RECORD = 53;
   82.49 -  public static final int EQ = 84;
   82.50 -  public static final int REVERSE = 50;
   82.51 -  public static final int MOD = 36;
   82.52 -  public static final int WHEN = 67;
   82.53 -  public static final int GENERIC = 29;
   82.54 -  public static final int DIGITS = 19;
   82.55 -  public static final int DOT_DOT = 88;
   82.56 -  public static final int SELECT = 57;
   82.57 -  public static final int OTHERS = 42;
   82.58 -  public static final int ABSTRACT = 4;
   82.59 -  public static final int SLASH = 80;
   82.60 -  public static final int PLUS = 76;
   82.61 -  public static final int WHILE = 68;
   82.62 -  public static final int USE = 66;
   82.63 -  public static final int DO = 20;
   82.64 -  public static final int FOR = 27;
   82.65 -  public static final int EXPON = 89;
   82.66 -  public static final int STAR = 75;
   82.67 -  public static final int RETURN = 49;
   82.68 -  public static final int LTLT = 94;
   82.69 -  public static final int DELAY = 17;
   82.70 -  public static final int ELSE = 21;
   82.71 -  public static final int BASED_LITERAL = 100;
   82.72 -  public static final int GTEQ = 92;
   82.73 -  public static final int DOT = 79;
   82.74 -  public static final int PROCEDURE = 47;
   82.75 -  public static final int ENTRY = 24;
   82.76 -  public static final int DELTA = 18;
   82.77 -  public static final int PRAGMA = 45;
   82.78 -  public static final int STRING_LITERAL = 101;
   82.79 -  public static final int TICK = 72;
   82.80 -  public static final int NULL = 39;
   82.81 -  public static final int BOX = 96;
   82.82 -  public static final int SEMICOLON = 82;
   82.83 -  public static final int EOF = 0;
   82.84 -  public static final int FUNCTION = 28;
   82.85 -  public static final int MINUS = 78;
   82.86 -  public static final int IS = 33;
   82.87 -  public static final int CONSTANT = 14;
   82.88 -  public static final int LTEQ = 93;
   82.89 -  public static final int BODY = 13;
   82.90 -  public static final int ACCEPT = 6;
   82.91 -  public static final int IN = 32;
   82.92 -  public static final int OR = 41;
   82.93 -  public static final int error = 1;
   82.94 -  public static final int EXIT = 26;
   82.95 -  public static final int DECIMAL_LITERAL = 99;
   82.96 -  public static final int IF = 31;
   82.97 -  public static final int OF = 40;
   82.98 -  public static final int ABS = 3;
   82.99 -  public static final int END = 23;
  82.100 -  public static final int COLON = 81;
  82.101 -  public static final int REM = 54;
  82.102 -  public static final int REQUEUE = 56;
  82.103 -  public static final int SEPARATE = 58;
  82.104 -  public static final int INEQ = 91;
  82.105 -  public static final int CHAR_LITERAL = 97;
  82.106 -  public static final int BEGIN = 12;
  82.107 -  public static final int CASE = 15;
  82.108 -  public static final int EXCEPTION = 25;
  82.109 -  public static final int NEW = 37;
  82.110 -  public static final int TAGGED = 60;
  82.111 -  public static final int RANGE = 52;
  82.112 -  public static final int AND = 9;
  82.113 -  public static final int BAR = 86;
  82.114 -  public static final int PRIVATE = 46;
  82.115 -  public static final int WITH = 69;
  82.116 -  public static final int XOR = 70;
  82.117 -}
  82.118 -
    83.1 --- a/ada.editor/src/org/netbeans/modules/ada/editor/parser/Ada95ErrorHandler.java	Tue Oct 02 21:55:21 2012 -0400
    83.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    83.3 @@ -1,375 +0,0 @@
    83.4 -/*
    83.5 - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
    83.6 - *
    83.7 - * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
    83.8 - *
    83.9 - * The contents of this file are subject to the terms of either the GNU
   83.10 - * General Public License Version 2 only ("GPL") or the Common
   83.11 - * Development and Distribution License("CDDL") (collectively, the
   83.12 - * "License"). You may not use this file except in compliance with the
   83.13 - * License. You can obtain a copy of the License at
   83.14 - * http://www.netbeans.org/cddl-gplv2.html
   83.15 - * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
   83.16 - * specific language governing permissions and limitations under the
   83.17 - * License.  When distributing the software, include this License Header
   83.18 - * Notice in each file and include the License file at
   83.19 - * nbbuild/licenses/CDDL-GPL-2-CP.  Sun designates this
   83.20 - * particular file as subject to the "Classpath" exception as provided
   83.21 - * by Sun in the GPL Version 2 section of the License file that
   83.22 - * accompanied this code. If applicable, add the following below the
   83.23 - * License Header, with the fields enclosed by brackets [] replaced by
   83.24 - * your own identifying information:
   83.25 - * "Portions Copyrighted [year] [name of copyright owner]"
   83.26 - *
   83.27 - * If you wish your version of this file to be governed by only the CDDL
   83.28 - * or only the GPL Version 2, indicate your decision by adding
   83.29 - * "[Contributor] elects to include this software in this distribution
   83.30 - * under the [CDDL or GPL Version 2] license." If you do not indicate a
   83.31 - * single choice of license, a recipient has the option to distribute
   83.32 - * your version of this file under either the CDDL, the GPL Version 2 or
   83.33 - * to extend the choice of license to its licensees as provided above.
   83.34 - * However, if you add GPL Version 2 code and therefore, elected the GPL
   83.35 - * Version 2 license, then the option applies only if the new code is
   83.36 - * made subject to such option by the copyright holder.
   83.37 - *
   83.38 - * Contributor(s):
   83.39 - *
   83.40 - * Portions Copyrighted 2008 Sun Microsystems, Inc.
   83.41 - */
   83.42 -
   83.43 -package org.netbeans.modules.ada.editor.parser;
   83.44 -
   83.45 -import java.util.ArrayList;
   83.46 -import java.util.Arrays;
   83.47 -import java.util.List;
   83.48 -import java.util.logging.Level;
   83.49 -import java.util.logging.Logger;
   83.50 -import java_cup.runtime.Symbol;
   83.51 -import org.netbeans.modules.ada.editor.parser.AdaParser.Context;
   83.52 -import org.netbeans.modules.ada.editor.ast.ASTError;
   83.53 -import org.netbeans.modules.ada.editor.ast.ASTNode;
   83.54 -import org.netbeans.modules.ada.editor.ast.nodes.Program;
   83.55 -import org.netbeans.modules.csl.api.Severity;
   83.56 -import org.openide.util.NbBundle;
   83.57 -import org.netbeans.modules.csl.api.Error;
   83.58 -
   83.59 -/**
   83.60 - * Based on org.netbeans.modules.php.editor.parser.PHP5ErrorHandler
   83.61 - *
   83.62 - * @author Andrea Lucarelli
   83.63 - */
   83.64 -public class Ada95ErrorHandler implements ParserErrorHandler {
   83.65 -
   83.66 -    private static final Logger LOGGER = Logger.getLogger(Ada95ErrorHandler.class.getName());
   83.67 -    
   83.68 -    public static class SyntaxError {
   83.69 -        private final short[] expectedTokens;
   83.70 -        private final Symbol currentToken;
   83.71 -        private final Symbol previousToken;
   83.72 -
   83.73 -        public SyntaxError(short[] expectedTokens, Symbol currentToken, Symbol previousToken) {
   83.74 -            this.expectedTokens = expectedTokens;
   83.75 -            this.currentToken = currentToken;
   83.76 -            this.previousToken = previousToken;
   83.77 -        }
   83.78 -
   83.79 -        public Symbol getCurrentToken() {
   83.80 -            return currentToken;
   83.81 -        }
   83.82 -
   83.83 -        public Symbol getPreviousToken() {
   83.84 -            return previousToken;
   83.85 -        }
   83.86 -
   83.87 -        public short[] getExpectedTokens() {
   83.88 -            return expectedTokens;
   83.89 -        }
   83.90 -    }
   83.91 -    
   83.92 -    private final List<SyntaxError> syntaxErrors;
   83.93 -
   83.94 -    private final Context context;
   83.95 -    AdaParser outer;
   83.96 -
   83.97 -    public Ada95ErrorHandler(Context context, AdaParser outer) {
   83.98 -        super();
   83.99 -        this.outer = outer;
  83.100 -        this.context = context;
  83.101 -        syntaxErrors = new ArrayList<SyntaxError>();
  83.102 -        //LOGGER.setLevel(Level.FINEST);
  83.103 -    }
  83.104 -
  83.105 -    public void handleError(Type type, short[] expectedtokens, Symbol current, Symbol previous) {
  83.106 -        Error error;
  83.107 -        if (type == ParserErrorHandler.Type.SYNTAX_ERROR) {
  83.108 -            // logging syntax error
  83.109 -            if (LOGGER.isLoggable(Level.FINEST)) {
  83.110 -                LOGGER.finest("Syntax error:"); //NOI18N
  83.111 -                LOGGER.finest("Current [" + current.left + ", " + current.right + "](" + Utils.getASTScannerTokenName(current.sym) + "): " + current.value); //NOI18N
  83.112 -                LOGGER.finest("Previous [" + previous.left + ", " + previous.right + "] (" + Utils.getASTScannerTokenName(previous.sym) + "):" + previous.value); //NOI18N
  83.113 -                StringBuffer message = new StringBuffer();
  83.114 -                message.append("Expected tokens:"); //NOI18N
  83.115 -                for (int i = 0; i < expectedtokens.length; i += 2) {
  83.116 -                    message.append(" ").append( Utils.getASTScannerTokenName(expectedtokens[i])); //NOI18N
  83.117 -                }
  83.118 -                LOGGER.finest(message.toString());
  83.119 -            }
  83.120 -            syntaxErrors.add(new SyntaxError(expectedtokens, current, previous));
  83.121 -        } else {
  83.122 -            String message = null;
  83.123 -            if (current != null) {
  83.124 -                String tagText = getTokenTextForm(current.sym);
  83.125 -                if (tagText != null) {
  83.126 -                    message = NbBundle.getMessage(Ada95ErrorHandler.class, "SE_Unexpected") + " " + tagText;
  83.127 -                }
  83.128 -                else {
  83.129 -                    message = NbBundle.getMessage(Ada95ErrorHandler.class, "SE_Unexpected") + " " + Utils.getASTScannerTokenName(current.sym);
  83.130 -                }
  83.131 -            }
  83.132 -            if (message == null) {
  83.133 -                message = "Parser error"; // NOI18N
  83.134 -            }
  83.135 -            error = new AdaError(message, context.getSnapshot().getSource().getFileObject(), current.left, current.right, Severity.ERROR, null);
  83.136 -            //context.getListener().error(error);
  83.137 -        }
  83.138 -    }
  83.139 -
  83.140 -    public void handleError(Type type, Symbol symbol, String message) {
  83.141 -        Error error;
  83.142 -        if (symbol != null) {
  83.143 -            if (message == null) {
  83.144 -                message = "Parser error";
  83.145 -            }
  83.146 -            error = new AdaError(message,  context.getSnapshot().getSource().getFileObject(), symbol.left, symbol.right, Severity.ERROR, null);
  83.147 -            //TODO: context.getListener().error(error);
  83.148 -        }
  83.149 -    }
  83.150 -
  83.151 -    public List<Error> displayFatalError(){
  83.152 -        Error error = new FatalError();
  83.153 -        return Arrays.asList(error);
  83.154 -    }
  83.155 -    
  83.156 -    public List<Error>  displaySyntaxErrors(Program program) {
  83.157 -        List<Error> errors = new ArrayList<Error>();
  83.158 -        for (SyntaxError syntaxError : syntaxErrors) {
  83.159 -            ASTNode astError = null;
  83.160 -            if (program != null) {
  83.161 -                astError = org.netbeans.modules.ada.editor.ast.ASTUtils.getNodeAtOffset(program, syntaxError.currentToken.left);
  83.162 -                if (!(astError instanceof ASTError)) {
  83.163 -                    astError = org.netbeans.modules.ada.editor.ast.ASTUtils.getNodeAtOffset(program, syntaxError.previousToken.right);
  83.164 -                    if (!(astError instanceof ASTError)) {
  83.165 -                        astError = null;
  83.166 -                    }
  83.167 -                }
  83.168 -                if (astError != null) {
  83.169 -                    LOGGER.finest("ASTError [" + astError.getStartOffset() + ", " + astError.getEndOffset() + "]"); //NOI18N
  83.170 -                } else {
  83.171 -                    LOGGER.finest("ASTError was not found");  //NOI18N
  83.172 -                }
  83.173 -            }
  83.174 -            Error error = defaultSyntaxErrorHandling(syntaxError, astError);
  83.175 -            errors.add(error);
  83.176 -        }
  83.177 -        return errors;
  83.178 -    }
  83.179 -    
  83.180 -    // This is just defualt handling. We can do a logic, which will find metter 
  83.181 -    private Error defaultSyntaxErrorHandling(SyntaxError syntaxError, ASTNode astError) {
  83.182 -        Error error = null;
  83.183 -        String unexpectedText = "";     //NOI18N
  83.184 -        StringBuffer message = new StringBuffer();
  83.185 -        boolean isUnexpected = false;
  83.186 -        int start  = syntaxError.getCurrentToken().left;
  83.187 -        int end = syntaxError.getCurrentToken().right;
  83.188 -        
  83.189 -        if (syntaxError.getCurrentToken().sym == Ada95ASTSymbols.EOF) {
  83.190 -            isUnexpected = true;
  83.191 -            unexpectedText = NbBundle.getMessage(Ada95ErrorHandler.class, "SE_EOF");
  83.192 -            start = end - 1;
  83.193 -        }
  83.194 -        else {
  83.195 -            String currentText = (String)syntaxError.getCurrentToken().value;
  83.196 -            isUnexpected = currentText != null && currentText.trim().length() > 0;
  83.197 -            if (isUnexpected) {
  83.198 -                unexpectedText = currentText.trim();
  83.199 -                end = start + unexpectedText.length();
  83.200 -            }
  83.201 -        }
  83.202 -        
  83.203 -        List<String> possibleTags = new ArrayList<String>();
  83.204 -        for (int i = 0; i < syntaxError.getExpectedTokens().length; i += 2) {
  83.205 -            String text = getTokenTextForm(syntaxError.getExpectedTokens()[i]);
  83.206 -            if (text != null) {
  83.207 -                possibleTags.add(text);
  83.208 -            }
  83.209 -        }
  83.210 -
  83.211 -        message.append(NbBundle.getMessage(Ada95ErrorHandler.class, "SE_Message"));
  83.212 -        message.append(':'); //NOI18N
  83.213 -        if (isUnexpected) {
  83.214 -            message.append(' ').append(NbBundle.getMessage(Ada95ErrorHandler.class, "SE_Unexpected"));
  83.215 -            message.append(": "); //NOI18N
  83.216 -            message.append(unexpectedText);
  83.217 -        }
  83.218 -        if (possibleTags.size() > 0) {
  83.219 -            message.append('\n').append(NbBundle.getMessage(Ada95ErrorHandler.class, "SE_Expected"));
  83.220 -            message.append(": "); //NOI18N
  83.221 -            boolean addOR = false;
  83.222 -            for (String tag : possibleTags) {
  83.223 -                if (addOR) {
  83.224 -                    message.append(" " + NbBundle.getMessage(Ada95ErrorHandler.class, "SE_Or") + " ");
  83.225 -                }
  83.226 -                else {
  83.227 -                    addOR = true;
  83.228 -                }
  83.229 -                
  83.230 -                message.append(tag);
  83.231 -            }
  83.232 -        }
  83.233 -
  83.234 -        if (astError != null){
  83.235 -            start = astError.getStartOffset();
  83.236 -            end = astError.getEndOffset();
  83.237 -            // if the asterror is trough two lines, the problem is ussually at the end
  83.238 -            String text = context.getSource().substring(start, end);
  83.239 -            int lastNewLine = text.length()-1;
  83.240 -            while (text.charAt(lastNewLine) == '\n' || text.charAt(lastNewLine) == '\r'
  83.241 -                    || text.charAt(lastNewLine) == '\t' || text.charAt(lastNewLine) == ' ') {
  83.242 -                lastNewLine--;
  83.243 -                if (lastNewLine < 0) {
  83.244 -                    break;
  83.245 -                }
  83.246 -            }
  83.247 -            lastNewLine = text.lastIndexOf('\n', lastNewLine);   //NOI18N
  83.248 -            if (lastNewLine > 0) {
  83.249 -                start = start + lastNewLine + 1;
  83.250 -            }
  83.251 -        }
  83.252 -        error = new AdaError(message.toString(), context.getSnapshot().getSource().getFileObject(), start, end, Severity.ERROR, new Object[]{syntaxError});
  83.253 -        return error;
  83.254 -    }
  83.255 -
  83.256 -    public List<SyntaxError> getSyntaxErrors() {
  83.257 -        return syntaxErrors;
  83.258 -    }
  83.259 -
  83.260 -    private String getTokenTextForm (int token) {
  83.261 -        String text = null;
  83.262 -        switch (token) {
  83.263 -            case Ada95ASTSymbols.BASED_LITERAL : text = "number"; break; //NOI18N
  83.264 -            case Ada95ASTSymbols.DECIMAL_LITERAL : text = "number"; break; //NOI18N
  83.265 -            case Ada95ASTSymbols.IDENTIFIER : text = "identifier"; break; //NOI18N
  83.266 -            case Ada95ASTSymbols.ABORT : text = "abort"; break; //NOI18N
  83.267 -            case Ada95ASTSymbols.ABS : text = "abs"; break; //NOI18N
  83.268 -            case Ada95ASTSymbols.ABSTRACT : text = "abstract"; break; //NOI18N
  83.269 -            case Ada95ASTSymbols.ACCESS : text = "access"; break; //NOI18N
  83.270 -            case Ada95ASTSymbols.ACCEPT : text = "access"; break; //NOI18N
  83.271 -            case Ada95ASTSymbols.ALIASED : text = "aliased"; break; //NOI18N
  83.272 -            case Ada95ASTSymbols.ALL : text = "all"; break; //NOI18N
  83.273 -            case Ada95ASTSymbols.AND : text = "and"; break; //NOI18N
  83.274 -            case Ada95ASTSymbols.ARRAY : text = "array"; break; //NOI18N
  83.275 -            case Ada95ASTSymbols.AT : text = "at"; break; //NOI18N
  83.276 -            case Ada95ASTSymbols.BEGIN : text = "begin"; break; //NOI18N
  83.277 -            case Ada95ASTSymbols.BODY : text = "body"; break; //NOI18N
  83.278 -            case Ada95ASTSymbols.CONSTANT : text = "constant"; break; //NOI18N
  83.279 -            case Ada95ASTSymbols.CASE : text = "case"; break; //NOI18N
  83.280 -            case Ada95ASTSymbols.DECLARE : text = "declare"; break; //NOI18N
  83.281 -            case Ada95ASTSymbols.DELAY : text = "delay"; break; //NOI18N
  83.282 -            case Ada95ASTSymbols.DELTA : text = "delta"; break; //NOI18N
  83.283 -            case Ada95ASTSymbols.DIGITS : text = "digits"; break; //NOI18N
  83.284 -            case Ada95ASTSymbols.DO : text = "do"; break; //NOI18N
  83.285 -            case Ada95ASTSymbols.ELSE : text = "else"; break; //NOI18N
  83.286 -            case Ada95ASTSymbols.ELSIF : text = "elsif"; break; //NOI18N
  83.287 -            case Ada95ASTSymbols.END : text = "end"; break; //NOI18N
  83.288 -            case Ada95ASTSymbols.ENTRY : text = "entry"; break; //NOI18N
  83.289 -            case Ada95ASTSymbols.EXCEPTION : text = "exception"; break; //NOI18N
  83.290 -            case Ada95ASTSymbols.EXIT : text = "exit"; break; //NOI18N
  83.291 -            case Ada95ASTSymbols.FOR : text = "for"; break; //NOI18N
  83.292 -            case Ada95ASTSymbols.FUNCTION : text = "function"; break; //NOI18N
  83.293 -            case Ada95ASTSymbols.GENERIC : text = "generic"; break; //NOI18N
  83.294 -            case Ada95ASTSymbols.GOTO : text = "goto"; break; //NOI18N
  83.295 -            case Ada95ASTSymbols.IF : text = "if"; break; //NOI18N
  83.296 -            case Ada95ASTSymbols.IN : text = "in"; break; //NOI18N
  83.297 -            case Ada95ASTSymbols.IS : text = "is"; break; //NOI18N
  83.298 -            case Ada95ASTSymbols.LIMITED : text = "limited"; break; //NOI18N
  83.299 -            case Ada95ASTSymbols.LOOP : text = "loop"; break; //NOI18N
  83.300 -            case Ada95ASTSymbols.MOD : text = "mod"; break; //NOI18N
  83.301 -            case Ada95ASTSymbols.NEW : text = "new"; break; //NOI18N
  83.302 -            case Ada95ASTSymbols.NOT : text = "not"; break; //NOI18N
  83.303 -            case Ada95ASTSymbols.NULL : text = "null"; break; //NOI18N
  83.304 -            case Ada95ASTSymbols.OF : text = "of"; break; //NOI18N
  83.305 -            case Ada95ASTSymbols.OR : text = "or"; break; //NOI18N
  83.306 -            case Ada95ASTSymbols.OTHERS : text = "others"; break; //NOI18N
  83.307 -            case Ada95ASTSymbols.OUT : text = "out"; break; //NOI18N
  83.308 -            case Ada95ASTSymbols.PACKAGE : text = "package"; break; //NOI18N
  83.309 -            case Ada95ASTSymbols.PRAGMA : text = "pragma"; break; //NOI18N
  83.310 -            case Ada95ASTSymbols.PRIVATE : text = "private"; break; //NOI18N
  83.311 -            case Ada95ASTSymbols.PROCEDURE : text = "procedure"; break; //NOI18N
  83.312 -            case Ada95ASTSymbols.PROTECTED : text = "protected"; break; //NOI18N
  83.313 -            case Ada95ASTSymbols.RETURN : text = "return"; break; //NOI18N
  83.314 -            case Ada95ASTSymbols.REVERSE : text = "reverse"; break; //NOI18N
  83.315 -            case Ada95ASTSymbols.RAISE : text = "raise"; break; //NOI18N
  83.316 -            case Ada95ASTSymbols.RANGE : text = "range"; break; //NOI18N
  83.317 -            case Ada95ASTSymbols.RECORD : text = "record"; break; //NOI18N
  83.318 -            case Ada95ASTSymbols.REM : text = "rem"; break; //NOI18N
  83.319 -            case Ada95ASTSymbols.RENAMES : text = "renames"; break; //NOI18N
  83.320 -            case Ada95ASTSymbols.REQUEUE : text = "requeue"; break; //NOI18N
  83.321 -            case Ada95ASTSymbols.SELECT : text = "select"; break; //NOI18N
  83.322 -            case Ada95ASTSymbols.SEPARATE : text = "separate"; break; //NOI18N
  83.323 -            case Ada95ASTSymbols.SUBTYPE : text = "subtype"; break; //NOI18N
  83.324 -            case Ada95ASTSymbols.TAGGED : text = "tagged"; break; //NOI18N
  83.325 -            case Ada95ASTSymbols.TASK : text = "task"; break; //NOI18N
  83.326 -            case Ada95ASTSymbols.TERMINATE : text = "terminate"; break; //NOI18N
  83.327 -            case Ada95ASTSymbols.THEN : text = "then"; break; //NOI18N
  83.328 -            case Ada95ASTSymbols.TYPE : text = "type"; break; //NOI18N
  83.329 -            case Ada95ASTSymbols.UNTIL : text = "until"; break; //NOI18N
  83.330 -            case Ada95ASTSymbols.USE : text = "use"; break; //NOI18N
  83.331 -            case Ada95ASTSymbols.WHEN : text = "when"; break; //NOI18N
  83.332 -            case Ada95ASTSymbols.WHILE : text = "while"; break; //NOI18N
  83.333 -            case Ada95ASTSymbols.WITH : text = "with"; break; //NOI18N
  83.334 -            case Ada95ASTSymbols.XOR : text = "xor"; break; //NOI18N
  83.335 -            case Ada95ASTSymbols.AMP : text = "&"; break; //NOI18N
  83.336 -            case Ada95ASTSymbols.TICK : text = "'"; break; //NOI18N
  83.337 -            case Ada95ASTSymbols.LPAREN : text = "("; break; //NOI18N
  83.338 -            case Ada95ASTSymbols.RPAREN : text = ")"; break; //NOI18N
  83.339 -            case Ada95ASTSymbols.STAR : text = "*"; break; //NOI18N
  83.340 -            case Ada95ASTSymbols.PLUS : text = "+"; break; //NOI18N
  83.341 -            case Ada95ASTSymbols.COMMA : text = ","; break; //NOI18N
  83.342 -            case Ada95ASTSymbols.MINUS : text = "-"; break; //NOI18N
  83.343 -            case Ada95ASTSymbols.DOT : text = "."; break; //NOI18N
  83.344 -            case Ada95ASTSymbols.SLASH : text = "/"; break; //NOI18N
  83.345 -            case Ada95ASTSymbols.COLON : text = ":"; break; //NOI18N
  83.346 -            case Ada95ASTSymbols.SEMICOLON : text = ";"; break; //NOI18N
  83.347 -            case Ada95ASTSymbols.GT : text = "<"; break; //NOI18N
  83.348 -            case Ada95ASTSymbols.EQ : text = "="; break; //NOI18N
  83.349 -            case Ada95ASTSymbols.LT : text = ">"; break; //NOI18N
  83.350 -            case Ada95ASTSymbols.BAR : text = "|"; break; //NOI18N
  83.351 -            case Ada95ASTSymbols.ARROW : text = "=>"; break; //NOI18N
  83.352 -            case Ada95ASTSymbols.DOT_DOT : text = ".."; break; //NOI18N
  83.353 -            case Ada95ASTSymbols.EXPON : text = "**"; break; //NOI18N
  83.354 -            case Ada95ASTSymbols.ASSIGNMENT : text = ":="; break; //NOI18N
  83.355 -            case Ada95ASTSymbols.INEQ : text = "/="; break; //NOI18N
  83.356 -            case Ada95ASTSymbols.GTEQ : text = ">="; break; //NOI18N
  83.357 -            case Ada95ASTSymbols.LTEQ : text = "<="; break; //NOI18N
  83.358 -            case Ada95ASTSymbols.LTLT : text = "<<"; break; //NOI18N
  83.359 -            case Ada95ASTSymbols.GTGT : text = ">>"; break; //NOI18N
  83.360 -            case Ada95ASTSymbols.BOX : text = "<>"; break; //NOI18N
  83.361 -        }
  83.362 -        return text;
  83.363 -    }
  83.364 -
  83.365 -    private class FatalError extends AdaError{
  83.366 -        FatalError(){
  83.367 -            super(NbBundle.getMessage(Ada95ErrorHandler.class, "MSG_FatalError"),
  83.368 -                context.getSnapshot().getSource().getFileObject(),
  83.369 -                0, context.getSource().length(),
  83.370 -                Severity.ERROR, null);
  83.371 -        }
  83.372 -
  83.373 -        @Override
  83.374 -        public boolean isLineError() {
  83.375 -            return false;
  83.376 -        }
  83.377 -    }
  83.378 -}
    84.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    84.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/parser/AdaASTParser.java	Mon Oct 15 23:38:26 2012 +0200
    84.3 @@ -0,0 +1,9215 @@
    84.4 +
    84.5 +//----------------------------------------------------
    84.6 +// The following code was generated by CUP v0.11a beta 20060608
    84.7 +// Thu Sep 23 23:52:48 CEST 2010
    84.8 +//----------------------------------------------------
    84.9 +
   84.10 +package org.netbeans.modules.ada.editor.parser;
   84.11 +
   84.12 +import java.util.*;
   84.13 +import org.netbeans.modules.ada.editor.lexer.AdaASTLexer;
   84.14 +import org.netbeans.modules.ada.editor.ast.*;
   84.15 +import org.netbeans.modules.ada.editor.ast.nodes.*;
   84.16 +
   84.17 +/** CUP v0.11a beta 20060608 generated parser.
   84.18 +  * @version Thu Sep 23 23:52:48 CEST 2010
   84.19 +  */
   84.20 +public class AdaASTParser extends java_cup.runtime.lr_parser {
   84.21 +
   84.22 +  /** Default constructor. */
   84.23 +  public AdaASTParser() {super();}
   84.24 +
   84.25 +  /** Constructor which sets the default scanner. */
   84.26 +  public AdaASTParser(java_cup.runtime.Scanner s) {super(s);}
   84.27 +
   84.28 +  /** Constructor which sets the default scanner. */
   84.29 +  public AdaASTParser(java_cup.runtime.Scanner s, java_cup.runtime.SymbolFactory sf) {super(s,sf);}
   84.30 +
   84.31 +  /** Production table. */
   84.32 +  protected static final short _production_table[][] = 
   84.33 +    unpackFromStrings(new String[] {
   84.34 +    "\000\u0204\000\002\002\004\000\002\173\005\000\002\173" +
   84.35 +    "\010\000\002\174\003\000\002\174\005\000\002\175\003" +
   84.36 +    "\000\002\175\005\000\002\176\002\000\002\176\004\000" +
   84.37 +    "\002\003\003\000\002\003\003\000\002\004\003\000\002" +
   84.38 +    "\004\003\000\002\002\003\000\002\002\003\000\002\002" +
   84.39 +    "\003\000\002\002\003\000\002\002\003\000\002\002\003" +
   84.40 +    "\000\002\002\004\000\002\006\003\000\002\022\010\000" +
   84.41 +    "\002\023\003\000\002\023\005\000\002\024\002\000\002" +
   84.42 +    "\024\003\000\002\024\003\000\002\024\004\000\002\142" +
   84.43 +    "\003\000\002\142\003\000\002\143\002\000\002\143\004" +
   84.44 +    "\000\002\025\010\000\002\144\007\000\002\202\002\000" +
   84.45 +    "\002\202\003\000\002\202\005\000\002\145\002\000\002" +
   84.46 +    "\145\004\000\002\017\003\000\002\017\003\000\002\017" +
   84.47 +    "\003\000\002\017\003\000\002\017\003\000\002\017\003" +
   84.48 +    "\000\002\017\003\000\002\017\003\000\002\020\007\000" +
   84.49 +    "\002\021\004\000\002\021\003\000\002\213\003\000\002" +
   84.50 +    "\213\003\000\002\215\005\000\002\212\004\000\002\212" +
   84.51 +    "\006\000\002\212\006\000\002\212\007\000\002\212\007" +
   84.52 +    "\000\002\214\004\000\002\167\005\000\002\167\005\000" +
   84.53 +    "\002\167\010\000\002\204\005\000\002\220\003\000\002" +
   84.54 +    "\220\005\000\002\221\003\000\002\221\003\000\002\205" +
   84.55 +    "\003\000\002\205\004\000\002\222\003\000\002\223\002" +
   84.56 +    "\000\002\223\003\000\002\206\003\000\002\206\003\000" +
   84.57 +    "\002\224\005\000\002\225\005\000\002\225\007\000\002" +
   84.58 +    "\207\003\000\002\207\003\000\002\226\010\000\002\227" +
   84.59 +    "\006\000\002\232\004\000\002\233\002\000\002\233\003" +
   84.60 +    "\000\002\230\003\000\002\230\005\000\002\231\005\000" +
   84.61 +    "\002\234\005\000\002\235\003\000\002\235\005\000\002" +
   84.62 +    "\166\004\000\002\166\003\000\002\216\002\000\002\216" +
   84.63 +    "\003\000\002\210\005\000\002\217\007\000\002\217\004" +
   84.64 +    "\000\002\112\002\000\002\112\003\000\002\112\004\000" +
   84.65 +    "\002\236\004\000\002\236\004\000\002\236\005\000\002" +
   84.66 +    "\237\003\000\002\237\005\000\002\241\003\000\002\241" +
   84.67 +    "\005\000\002\240\007\000\002\240\004\000\002\203\005" +
   84.68 +    "\000\002\243\003\000\002\243\005\000\002\244\007\000" +
   84.69 +    "\002\244\003\000\002\245\002\000\002\245\003\000\002" +
   84.70 +    "\242\012\000\002\246\003\000\002\246\004\000\002\247" +
   84.71 +    "\007\000\002\161\003\000\002\161\005\000\002\250\003" +
   84.72 +    "\000\002\250\003\000\002\250\003\000\002\251\004\000" +
   84.73 +    "\002\251\003\000\002\211\004\000\002\211\005\000\002" +
   84.74 +    "\211\005\000\002\211\006\000\002\211\010\000\002\252" +
   84.75 +    "\002\000\002\252\003\000\002\012\002\000\002\012\003" +
   84.76 +    "\000\002\007\002\000\002\007\003\000\002\010\003\000" +
   84.77 +    "\002\010\004\000\002\011\003\000\002\011\003\000\002" +
   84.78 +    "\011\003\000\002\011\003\000\002\011\003\000\002\011" +
   84.79 +    "\003\000\002\011\003\000\002\011\003\000\002\013\003" +
   84.80 +    "\000\002\013\004\000\002\254\003\000\002\254\003\000" +
   84.81 +    "\002\110\003\000\002\110\003\000\002\110\003\000\002" +
   84.82 +    "\110\003\000\002\015\003\000\002\015\003\000\002\015" +
   84.83 +    "\003\000\002\015\003\000\002\026\003\000\002\026\003" +
   84.84 +    "\000\002\026\003\000\002\026\003\000\002\026\003\000" +
   84.85 +    "\002\146\003\000\002\146\005\000\002\146\005\000\002" +
   84.86 +    "\027\003\000\002\140\003\000\002\140\005\000\002\133" +
   84.87 +    "\003\000\002\133\005\000\002\160\003\000\002\164\006" +
   84.88 +    "\000\002\165\003\000\002\165\005\000\002\255\003\000" +
   84.89 +    "\002\255\003\000\002\255\003\000\002\255\003\000\002" +
   84.90 +    "\030\005\000\002\030\005\000\002\030\005\000\002\030" +
   84.91 +    "\005\000\002\163\005\000\002\172\003\000\002\172\003" +
   84.92 +    "\000\002\172\003\000\002\172\003\000\002\154\003\000" +
   84.93 +    "\002\154\003\000\002\154\003\000\002\154\003\000\002" +
   84.94 +    "\257\005\000\002\257\005\000\002\257\007\000\002\257" +
   84.95 +    "\010\000\002\257\006\000\002\260\005\000\002\260\005" +
   84.96 +    "\000\002\256\005\000\002\037\003\000\002\037\003\000" +
   84.97 +    "\002\037\003\000\002\170\004\000\002\170\004\000\002" +
   84.98 +    "\040\003\000\002\040\003\000\002\040\003\000\002\040" +
   84.99 +    "\003\000\002\040\003\000\002\040\003\000\002\171\003" +
  84.100 +    "\000\002\171\004\000\002\042\003\000\002\042\003\000" +
  84.101 +    "\002\041\003\000\002\041\003\000\002\041\003\000\002" +
  84.102 +    "\043\003\000\002\043\003\000\002\043\003\000\002\043" +
  84.103 +    "\003\000\002\031\003\000\002\031\005\000\002\031\005" +
  84.104 +    "\000\002\032\003\000\002\032\005\000\002\032\005\000" +
  84.105 +    "\002\032\005\000\002\033\004\000\002\033\003\000\002" +
  84.106 +    "\033\005\000\002\034\003\000\002\034\005\000\002\035" +
  84.107 +    "\003\000\002\035\004\000\002\035\004\000\002\035\005" +
  84.108 +    "\000\002\036\003\000\002\036\003\000\002\036\003\000" +
  84.109 +    "\002\036\003\000\002\036\003\000\002\155\003\000\002" +
  84.110 +    "\155\005\000\002\044\005\000\002\261\004\000\002\261" +
  84.111 +    "\004\000\002\045\003\000\002\045\004\000\002\150\003" +
  84.112 +    "\000\002\150\004\000\002\153\003\000\002\153\003\000" +
  84.113 +    "\002\153\003\000\002\046\003\000\002\046\003\000\002" +
  84.114 +    "\046\003\000\002\046\003\000\002\046\003\000\002\046" +
  84.115 +    "\003\000\002\046\003\000\002\046\003\000\002\046\003" +
  84.116 +    "\000\002\046\003\000\002\046\003\000\002\046\004\000" +
  84.117 +    "\002\047\003\000\002\047\003\000\002\047\003\000\002" +
  84.118 +    "\047\003\000\002\047\003\000\002\047\003\000\002\262" +
  84.119 +    "\005\000\002\050\004\000\002\051\006\000\002\052\010" +
  84.120 +    "\000\002\053\005\000\002\053\007\000\002\054\003\000" +
  84.121 +    "\002\055\002\000\002\055\004\000\002\056\012\000\002" +
  84.122 +    "\057\002\000\002\057\004\000\002\060\006\000\002\061" +
  84.123 +    "\007\000\002\162\002\000\002\162\004\000\002\063\002" +
  84.124 +    "\000\002\063\004\000\002\063\005\000\002\266\005\000" +
  84.125 +    "\002\267\002\000\002\267\003\000\002\062\006\000\002" +
  84.126 +    "\152\002\000\002\152\003\000\002\064\010\000\002\065" +
  84.127 +    "\002\000\002\065\004\000\002\066\004\000\002\147\004" +
  84.128 +    "\000\002\270\002\000\002\270\003\000\002\067\006\000" +
  84.129 +    "\002\070\002\000\002\070\003\000\002\156\002\000\002" +
  84.130 +    "\156\004\000\002\104\004\000\002\104\005\000\002\071" +
  84.131 +    "\005\000\002\005\004\000\002\005\004\000\002\005\006" +
  84.132 +    "\000\002\072\005\000\002\072\007\000\002\072\004\000" +
  84.133 +    "\002\102\003\000\002\102\003\000\002\076\002\000\002" +
  84.134 +    "\076\003\000\002\077\005\000\002\075\003\000\002\075" +
  84.135 +    "\005\000\002\100\007\000\002\100\004\000\002\101\002" +
  84.136 +    "\000\002\101\003\000\002\101\003\000\002\101\004\000" +
  84.137 +    "\002\101\003\000\002\103\003\000\002\074\011\000\002" +
  84.138 +    "\157\004\000\002\105\004\000\002\105\004\000\002\106" +
  84.139 +    "\011\000\002\014\002\000\002\014\004\000\002\141\002" +
  84.140 +    "\000\002\141\003\000\002\107\013\000\002\273\002\000" +
  84.141 +    "\002\273\003\000\002\111\005\000\002\113\002\000\002" +
  84.142 +    "\113\003\000\002\114\005\000\002\114\006\000\002\115" +
  84.143 +    "\003\000\002\115\005\000\002\116\003\000\002\116\005" +
  84.144 +    "\000\002\117\011\000\002\117\010\000\002\117\003\000" +
  84.145 +    "\002\120\007\000\002\120\006\000\002\120\010\000\002" +
  84.146 +    "\120\007\000\002\177\004\000\002\275\005\000\002\275" +
  84.147 +    "\007\000\002\276\002\000\002\276\010\000\002\301\002" +
  84.148 +    "\000\002\301\005\000\002\016\013\000\002\200\004\000" +
  84.149 +    "\002\302\005\000\002\302\007\000\002\303\007\000\002" +
  84.150 +    "\305\002\000\002\305\004\000\002\304\002\000\002\304" +
  84.151 +    "\004\000\002\307\003\000\002\307\004\000\002\307\003" +
  84.152 +    "\000\002\307\003\000\002\306\002\000\002\306\004\000" +
  84.153 +    "\002\311\003\000\002\311\003\000\002\121\012\000\002" +
  84.154 +    "\312\003\000\002\312\005\000\002\313\003\000\002\313" +
  84.155 +    "\003\000\002\313\004\000\002\277\003\000\002\277\005" +
  84.156 +    "\000\002\310\006\000\002\310\011\000\002\314\010\000" +
  84.157 +    "\002\314\014\000\002\315\003\000\002\315\010\000\002" +
  84.158 +    "\300\002\000\002\300\005\000\002\317\003\000\002\264" +
  84.159 +    "\004\000\002\264\010\000\002\316\005\000\002\320\003" +
  84.160 +    "\000\002\320\006\000\002\122\005\000\002\122\006\000" +
  84.161 +    "\002\265\003\000\002\265\003\000\002\265\003\000\002" +
  84.162 +    "\265\003\000\002\321\011\000\002\325\003\000\002\325" +
  84.163 +    "\006\000\002\326\002\000\002\326\005\000\002\327\004" +
  84.164 +    "\000\002\327\004\000\002\327\004\000\002\331\004\000" +
  84.165 +    "\002\331\004\000\002\322\012\000\002\323\013\000\002" +
  84.166 +    "\324\012\000\002\330\002\000\002\330\003\000\002\123" +
  84.167 +    "\005\000\002\124\003\000\002\124\005\000\002\125\003" +
  84.168 +    "\000\002\126\002\000\002\126\004\000\002\126\004\000" +
  84.169 +    "\002\127\006\000\002\127\005\000\002\332\002\000\002" +
  84.170 +    "\332\003\000\002\130\003\000\002\130\003\000\002\130" +
  84.171 +    "\003\000\002\130\003\000\002\130\003\000\002\130\003" +
  84.172 +    "\000\002\130\003\000\002\131\003\000\002\131\003\000" +
  84.173 +    "\002\131\004\000\002\131\004\000\002\131\004\000\002" +
  84.174 +    "\132\005\000\002\151\007\000\002\134\010\000\002\134" +
  84.175 +    "\010\000\002\134\006\000\002\134\010\000\002\201\006" +
  84.176 +    "\000\002\271\004\000\002\271\004\000\002\333\006\000" +
  84.177 +    "\002\333\010\000\002\334\003\000\002\334\005\000\002" +
  84.178 +    "\335\003\000\002\335\003\000\002\135\005\000\002\263" +
  84.179 +    "\005\000\002\263\007\000\002\136\005\000\002\136\005" +
  84.180 +    "\000\002\274\003\000\002\274\004\000\002\336\004\000" +
  84.181 +    "\002\336\010\000\002\336\010\000\002\336\012\000\002" +
  84.182 +    "\336\014\000\002\336\011\000\002\336\003\000\002\337" +
  84.183 +    "\002\000\002\337\003\000\002\337\005\000\002\341\002" +
  84.184 +    "\000\002\341\004\000\002\341\004\000\002\340\005\000" +
  84.185 +    "\002\340\004\000\002\340\004\000\002\340\004\000\002" +
  84.186 +    "\340\006\000\002\340\004\000\002\340\003\000\002\340" +
  84.187 +    "\003\000\002\340\003\000\002\340\003\000\002\342\004" +
  84.188 +    "\000\002\342\006\000\002\342\007\000\002\073\005\000" +
  84.189 +    "\002\272\006\000\002\343\004\000\002\253\003\000\002" +
  84.190 +    "\253\003\000\002\253\003\000\002\344\007\000\002\345" +
  84.191 +    "\013\000\002\347\002\000\002\347\006\000\002\350\002" +
  84.192 +    "\000\002\350\011\000\002\346\010\000\002\137\004" });
  84.193 +
  84.194 +  /** Access to production table. */
  84.195 +  public short[][] production_table() {return _production_table;}
  84.196 +
  84.197 +  /** Parse-action table. */
  84.198 +  protected static final short[][] _action_table = 
  84.199 +    unpackFromStrings(new String[] {
  84.200 +    "\000\u03db\000\026\002\ufe4e\036\ufe4e\037\ufe4e\060\ufe4e\061" +
  84.201 +    "\004\062\ufe4e\063\ufe4e\076\ufe4e\110\ufe4e\113\ufe4e\001\002" +
  84.202 +    "\000\004\150\u03d0\001\002\000\004\002\u03cf\001\002\000" +
  84.203 +    "\026\002\ufffa\036\ufffa\037\ufffa\060\ufffa\061\ufffa\062\ufffa" +
  84.204 +    "\063\ufffa\076\ufffa\110\ufffa\113\ufffa\001\002\000\024\002" +
  84.205 +    "\ufe4f\036\ufe49\037\ufe49\060\ufe49\062\017\063\ufe49\076\ufe49" +
  84.206 +    "\110\015\113\013\001\002\000\024\036\ufe49\037\ufe49\060" +
  84.207 +    "\ufe49\061\004\062\017\063\ufe49\076\ufe49\110\015\113\013" +
  84.208 +    "\001\002\000\024\036\ufe40\037\ufe40\060\ufe40\061\ufe40\062" +
  84.209 +    "\ufe40\063\ufe40\076\ufe40\110\ufe40\113\ufe40\001\002\000\024" +
  84.210 +    "\036\ufe3f\037\ufe3f\060\ufe3f\061\ufe3f\062\ufe3f\063\ufe3f\076" +
  84.211 +    "\ufe3f\110\ufe3f\113\ufe3f\001\002\000\004\150\045\001\002" +
  84.212 +    "\000\024\002\ufe4d\036\ufe4d\037\ufe4d\060\ufe4d\062\ufe4d\063" +
  84.213 +    "\ufe4d\076\ufe4d\110\ufe4d\113\ufe4d\001\002\000\010\106\u03ba" +
  84.214 +    "\150\045\153\205\001\002\000\014\036\027\037\030\060" +
  84.215 +    "\036\063\021\076\022\001\002\000\014\036\ufe48\037\ufe48" +
  84.216 +    "\060\ufe48\063\ufe48\076\ufe48\001\002\000\022\003\u012f\036" +
  84.217 +    "\027\060\u0369\063\021\106\u036b\110\015\113\u036d\150\126" +
  84.218 +    "\001\002\000\004\150\045\001\002\000\004\117\u0353\001" +
  84.219 +    "\002\000\026\002\ufe46\036\ufe46\037\ufe46\060\ufe46\061\ufe46" +
  84.220 +    "\062\ufe46\063\ufe46\076\ufe46\110\ufe46\113\ufe46\001\002\000" +
  84.221 +    "\004\130\u0352\001\002\000\004\130\u0351\001\002\000\026" +
  84.222 +    "\002\ufe45\036\ufe45\037\ufe45\060\ufe45\061\ufe45\062\ufe45\063" +
  84.223 +    "\ufe45\076\ufe45\110\ufe45\113\ufe45\001\002\000\006\150\045" +
  84.224 +    "\153\205\001\002\000\022\003\ufe27\036\ufe27\060\ufe27\063" +
  84.225 +    "\ufe27\106\ufe27\110\ufe27\113\ufe27\150\ufe27\001\002\000\026" +
  84.226 +    "\002\ufe47\036\ufe47\037\ufe47\060\ufe47\061\ufe47\062\ufe47\063" +
  84.227 +    "\ufe47\076\ufe47\110\ufe47\113\ufe47\001\002\000\026\002\ufe42" +
  84.228 +    "\036\ufe42\037\ufe42\060\ufe42\061\ufe42\062\ufe42\063\ufe42\076" +
  84.229 +    "\ufe42\110\ufe42\113\ufe42\001\002\000\026\002\ufe41\036\ufe41" +
  84.230 +    "\037\ufe41\060\ufe41\061\ufe41\062\ufe41\063\ufe41\076\ufe41\110" +
  84.231 +    "\ufe41\113\ufe41\001\002\000\026\002\ufffa\036\ufffa\037\ufffa" +
  84.232 +    "\060\ufffa\061\ufffa\062\ufffa\063\ufffa\076\ufffa\110\ufffa\113" +
  84.233 +    "\ufffa\001\002\000\010\044\u034b\073\u024e\130\u024d\001\002" +
  84.234 +    "\000\006\017\044\150\045\001\002\000\004\130\042\001" +
  84.235 +    "\002\000\026\002\ufe44\036\ufe44\037\ufe44\060\ufe44\061\ufe44" +
  84.236 +    "\062\ufe44\063\ufe44\076\ufe44\110\ufe44\113\ufe44\001\002\000" +
  84.237 +    "\026\002\ufe43\036\ufe43\037\ufe43\060\ufe43\061\ufe43\062\ufe43" +
  84.238 +    "\063\ufe43\076\ufe43\110\ufe43\113\ufe43\001\002\000\050\002" +
  84.239 +    "\ufeaf\003\ufeaf\016\ufeaf\031\ufeaf\035\ufeaf\036\ufeaf\037\ufeaf" +
  84.240 +    "\060\ufeaf\061\ufeaf\062\ufeaf\063\ufeaf\064\ufeaf\076\ufeaf\101" +
  84.241 +    "\ufeaf\103\ufeaf\106\ufeaf\110\ufeaf\113\ufeaf\150\ufeaf\001\002" +
  84.242 +    "\000\010\044\u0330\073\u032f\125\051\001\002\000\004\150" +
  84.243 +    "\045\001\002\000\124\013\uff59\015\uff59\025\uff59\026\uff59" +
  84.244 +    "\042\uff59\044\uff59\046\uff59\047\uff59\051\uff59\054\uff59\065" +
  84.245 +    "\uff59\070\uff59\072\uff59\073\uff59\105\uff59\110\uff59\111\uff59" +
  84.246 +    "\113\uff59\114\uff59\115\uff59\116\uff59\117\uff59\120\uff59\121" +
  84.247 +    "\uff59\122\uff59\123\uff59\124\uff59\125\uff59\126\uff59\130\uff59" +
  84.248 +    "\131\uff59\132\uff59\133\uff59\134\uff59\135\uff59\136\uff59\137" +
  84.249 +    "\uff59\140\uff59\141\uff59\142\uff59\143\uff59\001\002\000\022" +
  84.250 +    "\044\uff58\065\uff58\073\uff58\117\uff58\120\uff58\123\uff58\125" +
  84.251 +    "\uff58\130\uff58\001\002\000\006\044\050\125\051\001\002" +
  84.252 +    "\000\040\003\105\016\uff7b\031\uff7b\035\070\036\027\037" +
  84.253 +    "\030\060\121\061\004\063\021\064\117\101\076\103\060" +
  84.254 +    "\106\074\110\015\150\126\001\002\000\004\150\045\001" +
  84.255 +    "\002\000\022\044\uff57\065\uff57\073\uff57\117\uff57\120\uff57" +
  84.256 +    "\123\uff57\125\uff57\130\uff57\001\002\000\040\003\uff67\016" +
  84.257 +    "\uff67\031\uff67\035\uff67\036\uff67\037\uff67\060\uff67\061\uff67" +
  84.258 +    "\063\uff67\064\uff67\101\uff67\103\uff67\106\uff67\110\uff67\150" +
  84.259 +    "\uff67\001\002\000\004\130\u032e\001\002\000\042\003\uff74" +
  84.260 +    "\016\uff74\031\uff74\035\uff74\036\uff74\037\uff74\060\uff74\061" +
  84.261 +    "\uff74\062\uff74\063\uff74\064\uff74\101\uff74\103\uff74\106\uff74" +
  84.262 +    "\110\uff74\150\uff74\001\002\000\044\003\ufe06\016\ufe06\031" +
  84.263 +    "\ufe06\032\ufe06\035\ufe06\036\ufe06\037\ufe06\060\ufe06\061\ufe06" +
  84.264 +    "\062\ufe06\063\ufe06\064\ufe06\101\ufe06\103\ufe06\106\ufe06\110" +
  84.265 +    "\ufe06\150\ufe06\001\002\000\042\003\ufff2\016\ufff2\031\ufff2" +
  84.266 +    "\035\ufff2\036\ufff2\037\ufff2\060\ufff2\061\ufff2\062\ufff2\063" +
  84.267 +    "\ufff2\064\ufff2\101\ufff2\103\ufff2\106\ufff2\110\ufff2\150\ufff2" +
  84.268 +    "\001\002\000\010\017\u0310\106\u0312\150\045\001\002\000" +
  84.269 +    "\042\003\ufff8\016\ufff8\031\ufff8\035\ufff8\036\ufff8\037\ufff8" +
  84.270 +    "\060\ufff8\061\ufff8\062\ufff8\063\ufff8\064\ufff8\101\ufff8\103" +
  84.271 +    "\ufff8\106\ufff8\110\ufff8\150\ufff8\001\002\000\006\123\155" +
  84.272 +    "\127\u02fb\001\002\000\042\003\uff75\016\uff75\031\uff75\035" +
  84.273 +    "\uff75\036\uff75\037\uff75\060\uff75\061\uff75\062\uff75\063\uff75" +
  84.274 +    "\064\uff75\101\uff75\103\uff75\106\uff75\110\uff75\150\uff75\001" +
  84.275 +    "\002\000\042\003\uff6f\016\uff6f\031\uff6f\035\uff6f\036\uff6f" +
  84.276 +    "\037\uff6f\060\uff6f\061\uff6f\062\uff6f\063\uff6f\064\uff6f\101" +
  84.277 +    "\uff6f\103\uff6f\106\uff6f\110\uff6f\150\uff6f\001\002\000\042" +
  84.278 +    "\003\ufff0\016\ufff0\031\ufff0\035\ufff0\036\ufff0\037\ufff0\060" +
  84.279 +    "\ufff0\061\ufff0\062\ufff0\063\ufff0\064\ufff0\101\ufff0\103\ufff0" +
  84.280 +    "\106\ufff0\110\ufff0\150\ufff0\001\002\000\042\003\ufff6\016" +
  84.281 +    "\ufff6\031\ufff6\035\ufff6\036\ufff6\037\ufff6\060\ufff6\061\ufff6" +
  84.282 +    "\062\ufff6\063\ufff6\064\ufff6\101\ufff6\103\ufff6\106\ufff6\110" +
  84.283 +    "\ufff6\150\ufff6\001\002\000\040\003\105\016\uff7a\031\uff7a" +
  84.284 +    "\035\070\036\027\037\030\060\121\061\004\063\021\064" +
  84.285 +    "\117\101\076\103\060\106\074\110\015\150\126\001\002" +
  84.286 +    "\000\004\150\045\001\002\000\042\003\uff72\016\uff72\031" +
  84.287 +    "\uff72\035\uff72\036\uff72\037\uff72\060\uff72\061\uff72\062\uff72" +
  84.288 +    "\063\uff72\064\uff72\101\uff72\103\uff72\106\uff72\110\uff72\150" +
  84.289 +    "\uff72\001\002\000\040\003\uff68\016\uff68\031\uff68\035\uff68" +
  84.290 +    "\036\uff68\037\uff68\060\uff68\061\uff68\063\uff68\064\uff68\101" +
  84.291 +    "\uff68\103\uff68\106\uff68\110\uff68\150\uff68\001\002\000\040" +
  84.292 +    "\003\uff69\016\uff69\031\uff69\035\uff69\036\uff69\037\uff69\060" +
  84.293 +    "\uff69\061\uff69\063\uff69\064\uff69\101\uff69\103\uff69\106\uff69" +
  84.294 +    "\110\uff69\150\uff69\001\002\000\004\150\126\001\002\000" +
  84.295 +    "\006\016\u015c\031\ufea7\001\002\000\004\150\126\001\002" +
  84.296 +    "\000\010\044\u024f\073\u024e\130\u024d\001\002\000\042\003" +
  84.297 +    "\ufe9a\016\ufe9a\031\ufe9a\035\ufe9a\036\ufe9a\037\ufe9a\060\ufe9a" +
  84.298 +    "\061\ufe9a\062\ufe9a\063\ufe9a\064\ufe9a\101\ufe9a\103\ufe9a\106" +
  84.299 +    "\ufe9a\110\ufe9a\150\ufe9a\001\002\000\042\003\ufff4\016\ufff4" +
  84.300 +    "\031\ufff4\035\ufff4\036\ufff4\037\ufff4\060\ufff4\061\ufff4\062" +
  84.301 +    "\ufff4\063\ufff4\064\ufff4\101\ufff4\103\ufff4\106\ufff4\110\ufff4" +
  84.302 +    "\150\ufff4\001\002\000\042\003\uff73\016\uff73\031\uff73\035" +
  84.303 +    "\uff73\036\uff73\037\uff73\060\uff73\061\uff73\062\uff73\063\uff73" +
  84.304 +    "\064\uff73\101\uff73\103\uff73\106\uff73\110\uff73\150\uff73\001" +
  84.305 +    "\002\000\006\123\uffeb\127\uffeb\001\002\000\040\003\uff6b" +
  84.306 +    "\016\uff6b\031\uff6b\035\uff6b\036\uff6b\037\uff6b\060\uff6b\061" +
  84.307 +    "\uff6b\063\uff6b\064\uff6b\101\uff6b\103\uff6b\106\uff6b\110\uff6b" +
  84.308 +    "\150\uff6b\001\002\000\004\130\u024c\001\002\000\040\003" +
  84.309 +    "\uff6a\016\uff6a\031\uff6a\035\uff6a\036\uff6a\037\uff6a\060\uff6a" +
  84.310 +    "\061\uff6a\063\uff6a\064\uff6a\101\uff6a\103\uff6a\106\uff6a\110" +
  84.311 +    "\uff6a\150\uff6a\001\002\000\040\003\uff66\016\uff66\031\uff66" +
  84.312 +    "\035\uff66\036\uff66\037\uff66\060\uff66\061\uff66\063\uff66\064" +
  84.313 +    "\uff66\101\uff66\103\uff66\106\uff66\110\uff66\150\uff66\001\002" +
  84.314 +    "\000\042\003\uff70\016\uff70\031\uff70\035\uff70\036\uff70\037" +
  84.315 +    "\uff70\060\uff70\061\uff70\062\uff70\063\uff70\064\uff70\101\uff70" +
  84.316 +    "\103\uff70\106\uff70\110\uff70\150\uff70\001\002\000\040\003" +
  84.317 +    "\uff6d\016\uff6d\031\uff6d\035\uff6d\036\uff6d\037\uff6d\060\uff6d" +
  84.318 +    "\061\uff6d\063\uff6d\064\uff6d\101\uff6d\103\uff6d\106\uff6d\110" +
  84.319 +    "\uff6d\150\uff6d\001\002\000\042\003\ufff3\016\ufff3\031\ufff3" +
  84.320 +    "\035\ufff3\036\ufff3\037\ufff3\060\ufff3\061\ufff3\062\ufff3\063" +
  84.321 +    "\ufff3\064\ufff3\101\ufff3\103\ufff3\106\ufff3\110\ufff3\150\ufff3" +
  84.322 +    "\001\002\000\044\003\ufe08\016\ufe08\031\ufe08\032\ufe08\035" +
  84.323 +    "\ufe08\036\ufe08\037\ufe08\060\ufe08\061\ufe08\062\ufe08\063\ufe08" +
  84.324 +    "\064\ufe08\101\ufe08\103\ufe08\106\ufe08\110\ufe08\150\ufe08\001" +
  84.325 +    "\002\000\042\003\uffef\016\uffef\031\uffef\035\uffef\036\uffef" +
  84.326 +    "\037\uffef\060\uffef\061\uffef\062\uffef\063\uffef\064\uffef\101" +
  84.327 +    "\uffef\103\uffef\106\uffef\110\uffef\150\uffef\001\002\000\044" +
  84.328 +    "\003\ufe07\016\ufe07\031\ufe07\032\ufe07\035\ufe07\036\ufe07\037" +
  84.329 +    "\ufe07\060\ufe07\061\ufe07\062\ufe07\063\ufe07\064\ufe07\101\ufe07" +
  84.330 +    "\103\ufe07\106\ufe07\110\ufe07\150\ufe07\001\002\000\042\003" +
  84.331 +    "\ufff1\016\ufff1\031\ufff1\035\ufff1\036\ufff1\037\ufff1\060\ufff1" +
  84.332 +    "\061\ufff1\062\ufff1\063\ufff1\064\ufff1\101\ufff1\103\ufff1\106" +
  84.333 +    "\ufff1\110\ufff1\150\ufff1\001\002\000\010\017\135\106\137" +
  84.334 +    "\150\136\001\002\000\042\003\ufff7\016\ufff7\031\ufff7\035" +
  84.335 +    "\ufff7\036\ufff7\037\ufff7\060\ufff7\061\ufff7\062\ufff7\063\ufff7" +
  84.336 +    "\064\ufff7\101\ufff7\103\ufff7\106\ufff7\110\ufff7\150\ufff7\001" +
  84.337 +    "\002\000\006\017\130\150\045\001\002\000\004\130\127" +
  84.338 +    "\001\002\000\042\003\uff6e\016\uff6e\031\uff6e\035\uff6e\036" +
  84.339 +    "\uff6e\037\uff6e\060\uff6e\061\uff6e\062\uff6e\063\uff6e\064\uff6e" +
  84.340 +    "\101\uff6e\103\uff6e\106\uff6e\110\uff6e\150\uff6e\001\002\000" +
  84.341 +    "\042\003\ufff5\016\ufff5\031\ufff5\035\ufff5\036\ufff5\037\ufff5" +
  84.342 +    "\060\ufff5\061\ufff5\062\ufff5\063\ufff5\064\ufff5\101\ufff5\103" +
  84.343 +    "\ufff5\106\ufff5\110\ufff5\150\ufff5\001\002\000\042\003\uff71" +
  84.344 +    "\016\uff71\031\uff71\035\uff71\036\uff71\037\uff71\060\uff71\061" +
  84.345 +    "\uff71\062\uff71\063\uff71\064\uff71\101\uff71\103\uff71\106\uff71" +
  84.346 +    "\110\uff71\150\uff71\001\002\000\014\044\uffed\117\uffed\123" +
  84.347 +    "\uffed\127\uffed\130\uffed\001\002\000\042\003\ufe95\016\ufe95" +
  84.348 +    "\031\ufe95\035\ufe95\036\ufe95\037\ufe95\060\ufe95\061\ufe95\062" +
  84.349 +    "\ufe95\063\ufe95\064\ufe95\101\ufe95\103\ufe95\106\ufe95\110\ufe95" +
  84.350 +    "\150\ufe95\001\002\000\004\150\045\001\002\000\006\044" +
  84.351 +    "\132\125\051\001\002\000\042\003\105\016\uff7b\031\uff7b" +
  84.352 +    "\035\070\036\027\037\030\060\121\061\004\063\021\064" +
  84.353 +    "\117\076\133\101\076\103\060\106\074\110\015\150\126" +
  84.354 +    "\001\002\000\004\130\134\001\002\000\042\003\ufe38\016" +
  84.355 +    "\ufe38\031\ufe38\035\ufe38\036\ufe38\037\ufe38\060\ufe38\061\ufe38" +
  84.356 +    "\062\ufe38\063\ufe38\064\ufe38\101\ufe38\103\ufe38\106\ufe38\110" +
  84.357 +    "\ufe38\150\ufe38\001\002\000\004\150\045\001\002\000\004" +
  84.358 +    "\044\u0104\001\002\000\004\150\045\001\002\000\006\044" +
  84.359 +    "\uffdf\117\143\001\002\000\006\044\uffde\130\uffde\001\002" +
  84.360 +    "\000\004\044\u0104\001\002\000\010\003\145\146\146\150" +
  84.361 +    "\126\001\002\000\006\123\155\127\156\001\002\000\006" +
  84.362 +    "\120\uff90\130\uff90\001\002\000\004\120\154\001\002\000" +
  84.363 +    "\006\120\152\130\151\001\002\000\006\120\uff93\130\uff93" +
  84.364 +    "\001\002\000\006\003\145\150\126\001\002\000\006\044" +
  84.365 +    "\uff94\130\uff94\001\002\000\006\120\uff92\130\uff92\001\002" +
  84.366 +    "\000\006\044\uffdd\130\uffdd\001\002\000\004\150\126\001" +
  84.367 +    "\002\000\006\007\160\150\uff8f\001\002\000\004\150\045" +
  84.368 +    "\001\002\000\004\150\uff8e\001\002\000\020\015\uff5c\110" +
  84.369 +    "\uff5c\116\uff5c\120\uff5c\125\uff5c\130\uff5c\140\uff5c\001\002" +
  84.370 +    "\000\014\116\165\120\uffe3\125\166\130\uffe3\140\164\001" +
  84.371 +    "\002\000\006\120\uff91\130\uff91\001\002\000\032\005\213" +
  84.372 +    "\050\224\051\200\052\227\117\204\122\175\124\217\147" +
  84.373 +    "\215\150\045\151\177\152\231\153\205\001\002\000\012" +
  84.374 +    "\007\173\024\174\025\171\150\172\001\002\000\004\150" +
  84.375 +    "\045\001\002\000\020\015\uff5a\110\uff5a\116\uff5a\120\uff5a" +
  84.376 +    "\125\uff5a\130\uff5a\140\uff5a\001\002\000\020\015\uff5b\110" +
  84.377 +    "\uff5b\116\uff5b\120\uff5b\125\uff5b\130\uff5b\140\uff5b\001\002" +
  84.378 +    "\000\120\013\uff46\015\uff46\025\uff46\042\uff46\044\uff46\046" +
  84.379 +    "\uff46\047\uff46\051\uff46\054\uff46\070\uff46\072\uff46\073\uff46" +
  84.380 +    "\105\uff46\110\uff46\111\uff46\113\uff46\114\uff46\115\uff46\116" +
  84.381 +    "\uff46\117\uff46\120\uff46\121\uff46\122\uff46\123\uff46\124\uff46" +
  84.382 +    "\125\uff46\126\uff46\130\uff46\131\uff46\132\uff46\133\uff46\134" +
  84.383 +    "\uff46\135\uff46\136\uff46\137\uff46\140\uff46\141\uff46\142\uff46" +
  84.384 +    "\143\uff46\001\002\000\120\013\uff47\015\uff47\025\uff47\042" +
  84.385 +    "\uff47\044\uff47\046\uff47\047\uff47\051\uff47\054\uff47\070\uff47" +
  84.386 +    "\072\uff47\073\uff47\105\uff47\110\uff47\111\uff47\113\uff47\114" +
  84.387 +    "\uff47\115\uff47\116\uff47\117\uff47\120\uff47\121\uff47\122\uff47" +
  84.388 +    "\123\uff47\124\uff47\125\uff47\126\uff47\130\uff47\131\uff47\132" +
  84.389 +    "\uff47\133\uff47\134\uff47\135\uff47\136\uff47\137\uff47\140\uff47" +
  84.390 +    "\141\uff47\142\uff47\143\uff47\001\002\000\120\013\uff44\015" +
  84.391 +    "\uff44\025\uff44\042\uff44\044\uff44\046\uff44\047\uff44\051\uff44" +
  84.392 +    "\054\uff44\070\uff44\072\uff44\073\uff44\105\uff44\110\uff44\111" +
  84.393 +    "\uff44\113\uff44\114\uff44\115\uff44\116\uff44\117\uff44\120\uff44" +
  84.394 +    "\121\uff44\122\uff44\123\uff44\124\uff44\125\uff44\126\uff44\130" +
  84.395 +    "\uff44\131\uff44\132\uff44\133\uff44\134\uff44\135\uff44\136\uff44" +
  84.396 +    "\137\uff44\140\uff44\141\uff44\142\uff44\143\uff44\001\002\000" +
  84.397 +    "\120\013\uff45\015\uff45\025\uff45\042\uff45\044\uff45\046\uff45" +
  84.398 +    "\047\uff45\051\uff45\054\uff45\070\uff45\072\uff45\073\uff45\105" +
  84.399 +    "\uff45\110\uff45\111\uff45\113\uff45\114\uff45\115\uff45\116\uff45" +
  84.400 +    "\117\uff45\120\uff45\121\uff45\122\uff45\123\uff45\124\uff45\125" +
  84.401 +    "\uff45\126\uff45\130\uff45\131\uff45\132\uff45\133\uff45\134\uff45" +
  84.402 +    "\135\uff45\136\uff45\137\uff45\140\uff45\141\uff45\142\uff45\143" +
  84.403 +    "\uff45\001\002\000\026\005\uff2a\050\uff2a\051\uff2a\052\uff2a" +
  84.404 +    "\117\uff2a\147\uff2a\150\uff2a\151\uff2a\152\uff2a\153\uff2a\001" +
  84.405 +    "\002\000\114\013\uff5f\025\uff5f\042\uff5f\044\uff5f\046\uff5f" +
  84.406 +    "\047\uff5f\051\uff5f\054\uff5f\070\uff5f\072\uff5f\073\uff5f\105" +
  84.407 +    "\uff5f\111\uff5f\113\uff5f\114\uff5f\115\uff5f\116\uff5f\117\uff5f" +
  84.408 +    "\120\uff5f\121\uff5f\122\uff5f\123\uff5f\124\uff5f\125\uff5f\126" +
  84.409 +    "\uff5f\130\uff5f\131\uff5f\132\uff5f\133\uff5f\134\uff5f\135\uff5f" +
  84.410 +    "\136\uff5f\137\uff5f\140\uff5f\141\uff5f\142\uff5f\143\uff5f\001" +
  84.411 +    "\002\000\104\013\uff43\025\uff43\042\uff43\044\uff43\046\uff43" +
  84.412 +    "\047\uff43\051\uff43\054\uff43\070\uff43\072\uff43\073\uff43\105" +
  84.413 +    "\uff43\113\uff43\114\uff43\115\uff43\120\uff43\121\uff43\122\uff43" +
  84.414 +    "\123\uff43\124\uff43\126\uff43\130\uff43\131\uff43\132\uff43\133" +
  84.415 +    "\uff43\134\uff43\135\uff43\136\uff43\137\uff43\140\uff43\141\uff43" +
  84.416 +    "\142\uff43\143\uff43\001\002\000\022\050\224\052\227\117" +
  84.417 +    "\204\147\215\150\045\151\177\152\231\153\205\001\002" +
  84.418 +    "\000\104\013\uff0f\025\uff0f\042\uff0f\044\uff0f\046\uff0f\047" +
  84.419 +    "\uff0f\051\uff0f\054\uff0f\070\uff0f\072\uff0f\073\uff0f\105\uff0f" +
  84.420 +    "\113\uff0f\114\uff0f\115\uff0f\120\uff0f\121\uff0f\122\uff0f\123" +
  84.421 +    "\uff0f\124\uff0f\126\uff0f\130\uff0f\131\uff0f\132\uff0f\133\uff0f" +
  84.422 +    "\134\uff0f\135\uff0f\136\uff0f\137\uff0f\140\uff0f\141\uff0f\142" +
  84.423 +    "\uff0f\143\uff0f\001\002\000\042\013\uff21\025\uff21\044\uff21" +
  84.424 +    "\046\uff21\054\uff21\070\uff21\073\uff21\105\uff21\113\uff21\114" +
  84.425 +    "\uff21\120\uff21\123\uff21\130\uff21\134\uff21\135\uff21\140\uff21" +
  84.426 +    "\001\002\000\114\013\uff61\025\uff61\042\uff61\044\uff61\046" +
  84.427 +    "\uff61\047\uff61\051\uff61\054\uff61\070\uff61\072\uff61\073\uff61" +
  84.428 +    "\105\uff61\111\uff61\113\uff61\114\uff61\115\uff61\116\uff61\117" +
  84.429 +    "\uff61\120\uff61\121\uff61\122\uff61\123\uff61\124\uff61\125\uff61" +
  84.430 +    "\126\uff61\130\uff61\131\uff61\132\uff61\133\uff61\134\uff61\135" +
  84.431 +    "\uff61\136\uff61\137\uff61\140\uff61\141\uff61\142\uff61\143\uff61" +
  84.432 +    "\001\002\000\036\003\251\005\213\050\224\051\200\052" +
  84.433 +    "\357\055\253\117\204\122\175\124\217\147\215\150\045" +
  84.434 +    "\151\177\152\231\153\205\001\002\000\116\013\ufeb2\025" +
  84.435 +    "\ufeb2\042\ufeb2\044\ufeb2\046\ufeb2\047\ufeb2\051\ufeb2\054\ufeb2" +
  84.436 +    "\065\ufeb2\070\ufeb2\072\ufeb2\073\ufeb2\105\ufeb2\111\ufeb2\113" +
  84.437 +    "\ufeb2\114\ufeb2\115\ufeb2\116\ufeb2\117\ufeb2\120\ufeb2\121\ufeb2" +
  84.438 +    "\122\ufeb2\123\ufeb2\124\ufeb2\125\ufeb2\126\ufeb2\130\ufeb2\131" +
  84.439 +    "\ufeb2\132\ufeb2\133\ufeb2\134\ufeb2\135\ufeb2\136\ufeb2\137\ufeb2" +
  84.440 +    "\140\ufeb2\141\ufeb2\142\ufeb2\143\ufeb2\001\002\000\114\013" +
  84.441 +    "\uff5d\025\uff5d\042\uff5d\044\uff5d\046\uff5d\047\uff5d\051\uff5d" +
  84.442 +    "\054\uff5d\070\uff5d\072\uff5d\073\uff5d\105\uff5d\111\uff5d\113" +
  84.443 +    "\uff5d\114\uff5d\115\uff5d\116\uff5d\117\uff5d\120\uff5d\121\uff5d" +
  84.444 +    "\122\uff5d\123\uff5d\124\uff5d\125\uff5d\126\uff5d\130\uff5d\131" +
  84.445 +    "\uff5d\132\uff5d\133\uff5d\134\uff5d\135\uff5d\136\uff5d\137\uff5d" +
  84.446 +    "\140\uff5d\141\uff5d\142\uff5d\143\uff5d\001\002\000\014\013" +
  84.447 +    "\321\054\324\114\322\120\uffe2\130\uffe2\001\002\000\104" +
  84.448 +    "\013\uff0c\025\uff0c\042\uff0c\044\uff0c\046\uff0c\047\uff0c\051" +
  84.449 +    "\uff0c\054\uff0c\070\uff0c\072\uff0c\073\uff0c\105\uff0c\113\uff0c" +
  84.450 +    "\114\uff0c\115\uff0c\120\uff0c\121\uff0c\122\uff0c\123\uff0c\124" +
  84.451 +    "\uff0c\126\uff0c\130\uff0c\131\uff0c\132\uff0c\133\uff0c\134\uff0c" +
  84.452 +    "\135\uff0c\136\uff0c\137\uff0c\140\uff0c\141\uff0c\142\uff0c\143" +
  84.453 +    "\uff0c\001\002\000\102\013\uff17\025\uff17\042\uff17\044\uff17" +
  84.454 +    "\046\uff17\047\uff17\051\uff17\054\uff17\070\uff17\072\uff17\073" +
  84.455 +    "\uff17\105\uff17\113\uff17\114\uff17\115\uff17\120\uff17\121\uff17" +
  84.456 +    "\122\uff17\123\uff17\124\uff17\126\uff17\130\uff17\131\uff17\132" +
  84.457 +    "\uff17\133\uff17\134\uff17\135\uff17\136\uff17\140\uff17\141\uff17" +
  84.458 +    "\142\uff17\143\uff17\001\002\000\102\013\uff19\025\uff19\042" +
  84.459 +    "\uff19\044\uff19\046\uff19\047\303\051\uff19\054\uff19\070\uff19" +
  84.460 +    "\072\306\073\uff19\105\uff19\113\uff19\114\uff19\115\uff19\120" +
  84.461 +    "\uff19\121\302\122\uff19\123\uff19\124\uff19\126\305\130\uff19" +
  84.462 +    "\131\uff19\132\uff19\133\uff19\134\uff19\135\uff19\136\uff19\140" +
  84.463 +    "\uff19\141\uff19\142\uff19\143\uff19\001\002\000\022\050\224" +
  84.464 +    "\052\227\117\204\147\215\150\045\151\177\152\231\153" +
  84.465 +    "\205\001\002\000\070\013\uff1e\025\uff1e\042\261\044\uff1e" +
  84.466 +    "\046\uff1e\051\273\054\uff1e\070\uff1e\073\uff1e\105\uff1e\113" +
  84.467 +    "\uff1e\114\uff1e\115\274\120\uff1e\122\267\123\uff1e\124\260" +
  84.468 +    "\130\uff1e\131\271\132\266\133\276\134\uff1e\135\uff1e\140" +
  84.469 +    "\uff1e\141\264\142\262\143\275\001\002\000\114\013\uff54" +
  84.470 +    "\025\uff54\042\uff54\044\uff54\046\uff54\047\uff54\051\uff54\054" +
  84.471 +    "\uff54\070\uff54\072\uff54\073\uff54\105\uff54\111\uff54\113\uff54" +
  84.472 +    "\114\uff54\115\uff54\116\uff54\117\uff54\120\uff54\121\uff54\122" +
  84.473 +    "\uff54\123\uff54\124\uff54\125\uff54\126\uff54\130\uff54\131\uff54" +
  84.474 +    "\132\uff54\133\uff54\134\uff54\135\uff54\136\uff54\137\uff54\140" +
  84.475 +    "\uff54\141\uff54\142\uff54\143\uff54\001\002\000\104\013\uff0d" +
  84.476 +    "\025\uff0d\042\uff0d\044\uff0d\046\uff0d\047\uff0d\051\uff0d\054" +
  84.477 +    "\uff0d\070\uff0d\072\uff0d\073\uff0d\105\uff0d\113\uff0d\114\uff0d" +
  84.478 +    "\115\uff0d\120\uff0d\121\uff0d\122\uff0d\123\uff0d\124\uff0d\126" +
  84.479 +    "\uff0d\130\uff0d\131\uff0d\132\uff0d\133\uff0d\134\uff0d\135\uff0d" +
  84.480 +    "\136\uff0d\137\uff0d\140\uff0d\141\uff0d\142\uff0d\143\uff0d\001" +
  84.481 +    "\002\000\026\005\uff29\050\uff29\051\uff29\052\uff29\117\uff29" +
  84.482 +    "\147\uff29\150\uff29\151\uff29\152\uff29\153\uff29\001\002\000" +
  84.483 +    "\104\013\uff15\025\uff15\042\uff15\044\uff15\046\uff15\047\uff15" +
  84.484 +    "\051\uff15\054\uff15\070\uff15\072\uff15\073\uff15\105\uff15\113" +
  84.485 +    "\uff15\114\uff15\115\uff15\120\uff15\121\uff15\122\uff15\123\uff15" +
  84.486 +    "\124\uff15\126\uff15\130\uff15\131\uff15\132\uff15\133\uff15\134" +
  84.487 +    "\uff15\135\uff15\136\uff15\137\352\140\uff15\141\uff15\142\uff15" +
  84.488 +    "\143\uff15\001\002\000\114\013\uff60\025\uff60\042\uff60\044" +
  84.489 +    "\uff60\046\uff60\047\uff60\051\uff60\054\uff60\070\uff60\072\uff60" +
  84.490 +    "\073\uff60\105\uff60\111\uff60\113\uff60\114\uff60\115\uff60\116" +
  84.491 +    "\uff60\117\uff60\120\uff60\121\uff60\122\uff60\123\uff60\124\uff60" +
  84.492 +    "\125\uff60\126\uff60\130\uff60\131\uff60\132\uff60\133\uff60\134" +
  84.493 +    "\uff60\135\uff60\136\uff60\137\uff60\140\uff60\141\uff60\142\uff60" +
  84.494 +    "\143\uff60\001\002\000\104\013\uff11\025\uff11\042\uff11\044" +
  84.495 +    "\uff11\046\uff11\047\uff11\051\uff11\054\uff11\070\uff11\072\uff11" +
  84.496 +    "\073\uff11\105\uff11\113\uff11\114\uff11\115\uff11\120\uff11\121" +
  84.497 +    "\uff11\122\uff11\123\uff11\124\uff11\126\uff11\130\uff11\131\uff11" +
  84.498 +    "\132\uff11\133\uff11\134\uff11\135\uff11\136\uff11\137\uff11\140" +
  84.499 +    "\uff11\141\uff11\142\uff11\143\uff11\001\002\000\026\005\213" +
  84.500 +    "\050\224\051\200\052\227\117\204\147\215\150\045\151" +
  84.501 +    "\177\152\231\153\205\001\002\000\006\150\045\153\205" +
  84.502 +    "\001\002\000\104\013\uff0e\025\uff0e\042\uff0e\044\uff0e\046" +
  84.503 +    "\uff0e\047\uff0e\051\uff0e\054\uff0e\070\uff0e\072\uff0e\073\uff0e" +
  84.504 +    "\105\uff0e\113\uff0e\114\uff0e\115\uff0e\120\uff0e\121\uff0e\122" +
  84.505 +    "\uff0e\123\uff0e\124\uff0e\126\uff0e\130\uff0e\131\uff0e\132\uff0e" +
  84.506 +    "\133\uff0e\134\uff0e\135\uff0e\136\uff0e\137\uff0e\140\uff0e\141" +
  84.507 +    "\uff0e\142\uff0e\143\uff0e\001\002\000\114\013\uff5e\025\uff5e" +
  84.508 +    "\042\uff5e\044\uff5e\046\uff5e\047\uff5e\051\uff5e\054\uff5e\070" +
  84.509 +    "\uff5e\072\uff5e\073\uff5e\105\uff5e\111\uff5e\113\uff5e\114\uff5e" +
  84.510 +    "\115\uff5e\116\uff5e\117\uff5e\120\uff5e\121\uff5e\122\uff5e\123" +
  84.511 +    "\uff5e\124\uff5e\125\uff5e\126\uff5e\130\uff5e\131\uff5e\132\uff5e" +
  84.512 +    "\133\uff5e\134\uff5e\135\uff5e\136\uff5e\137\uff5e\140\uff5e\141" +
  84.513 +    "\uff5e\142\uff5e\143\uff5e\001\002\000\104\013\uff40\025\uff40" +
  84.514 +    "\042\uff40\044\uff40\046\uff40\047\uff40\051\uff40\054\uff40\070" +
  84.515 +    "\uff40\072\uff40\073\uff40\105\uff40\113\uff40\114\uff40\115\uff40" +
  84.516 +    "\120\uff40\121\uff40\122\uff40\123\uff40\124\uff40\126\uff40\130" +
  84.517 +    "\uff40\131\uff40\132\uff40\133\uff40\134\uff40\135\uff40\136\uff40" +
  84.518 +    "\137\uff40\140\uff40\141\uff40\142\uff40\143\uff40\001\002\000" +
  84.519 +    "\104\013\uff41\025\uff41\042\uff41\044\uff41\046\uff41\047\uff41" +
  84.520 +    "\051\uff41\054\uff41\070\uff41\072\uff41\073\uff41\105\uff41\113" +
  84.521 +    "\uff41\114\uff41\115\uff41\120\uff41\121\uff41\122\uff41\123\uff41" +
  84.522 +    "\124\uff41\126\uff41\130\uff41\131\uff41\132\uff41\133\uff41\134" +
  84.523 +    "\uff41\135\uff41\136\uff41\137\uff41\140\uff41\141\uff41\142\uff41" +
  84.524 +    "\143\uff41\001\002\000\104\013\uff42\025\uff42\042\uff42\044" +
  84.525 +    "\uff42\046\uff42\047\uff42\051\uff42\054\uff42\070\uff42\072\uff42" +
  84.526 +    "\073\uff42\105\uff42\113\uff42\114\uff42\115\uff42\120\uff42\121" +
  84.527 +    "\uff42\122\uff42\123\uff42\124\uff42\126\uff42\130\uff42\131\uff42" +
  84.528 +    "\132\uff42\133\uff42\134\uff42\135\uff42\136\uff42\137\uff42\140" +
  84.529 +    "\uff42\141\uff42\142\uff42\143\uff42\001\002\000\112\013\uff10" +
  84.530 +    "\025\uff10\042\uff10\044\uff10\046\uff10\047\uff10\051\uff10\054" +
  84.531 +    "\uff10\070\uff10\072\uff10\073\uff10\105\uff10\113\uff10\114\uff10" +
  84.532 +    "\115\uff10\116\234\117\233\120\uff10\121\uff10\122\uff10\123" +
  84.533 +    "\uff10\124\uff10\125\235\126\uff10\130\uff10\131\uff10\132\uff10" +
  84.534 +    "\133\uff10\134\uff10\135\uff10\136\uff10\137\uff10\140\uff10\141" +
  84.535 +    "\uff10\142\uff10\143\uff10\001\002\000\036\003\251\005\213" +
  84.536 +    "\050\224\051\200\052\227\055\253\117\204\122\175\124" +
  84.537 +    "\217\147\215\150\045\151\177\152\231\153\205\001\002" +
  84.538 +    "\000\014\007\173\024\174\025\171\117\204\150\172\001" +
  84.539 +    "\002\000\012\012\236\147\215\150\045\153\205\001\002" +
  84.540 +    "\000\114\013\uff49\025\uff49\042\uff49\044\uff49\046\uff49\047" +
  84.541 +    "\uff49\051\uff49\054\uff49\070\uff49\072\uff49\073\uff49\105\uff49" +
  84.542 +    "\111\uff49\113\uff49\114\uff49\115\uff49\116\uff49\117\uff49\120" +
  84.543 +    "\uff49\121\uff49\122\uff49\123\uff49\124\uff49\125\uff49\126\uff49" +
  84.544 +    "\130\uff49\131\uff49\132\uff49\133\uff49\134\uff49\135\uff49\136" +
  84.545 +    "\uff49\137\uff49\140\uff49\141\uff49\142\uff49\143\uff49\001\002" +
  84.546 +    "\000\114\013\uff4a\025\uff4a\042\uff4a\044\uff4a\046\uff4a\047" +
  84.547 +    "\uff4a\051\uff4a\054\uff4a\070\uff4a\072\uff4a\073\uff4a\105\uff4a" +
  84.548 +    "\111\uff4a\113\uff4a\114\uff4a\115\uff4a\116\uff4a\117\uff4a\120" +
  84.549 +    "\uff4a\121\uff4a\122\uff4a\123\uff4a\124\uff4a\125\uff4a\126\uff4a" +
  84.550 +    "\130\uff4a\131\uff4a\132\uff4a\133\uff4a\134\uff4a\135\uff4a\136" +
  84.551 +    "\uff4a\137\uff4a\140\uff4a\141\uff4a\142\uff4a\143\uff4a\001\002" +
  84.552 +    "\000\114\013\uff4c\025\uff4c\042\uff4c\044\uff4c\046\uff4c\047" +
  84.553 +    "\uff4c\051\uff4c\054\uff4c\070\uff4c\072\uff4c\073\uff4c\105\uff4c" +
  84.554 +    "\111\uff4c\113\uff4c\114\uff4c\115\uff4c\116\uff4c\117\uff4c\120" +
  84.555 +    "\uff4c\121\uff4c\122\uff4c\123\uff4c\124\uff4c\125\uff4c\126\uff4c" +
  84.556 +    "\130\uff4c\131\uff4c\132\uff4c\133\uff4c\134\uff4c\135\uff4c\136" +
  84.557 +    "\uff4c\137\uff4c\140\uff4c\141\uff4c\142\uff4c\143\uff4c\001\002" +
  84.558 +    "\000\114\013\uff4b\025\uff4b\042\uff4b\044\uff4b\046\uff4b\047" +
  84.559 +    "\uff4b\051\uff4b\054\uff4b\070\uff4b\072\uff4b\073\uff4b\105\uff4b" +
  84.560 +    "\111\uff4b\113\uff4b\114\uff4b\115\uff4b\116\uff4b\117\uff4b\120" +
  84.561 +    "\uff4b\121\uff4b\122\uff4b\123\uff4b\124\uff4b\125\uff4b\126\uff4b" +
  84.562 +    "\130\uff4b\131\uff4b\132\uff4b\133\uff4b\134\uff4b\135\uff4b\136" +
  84.563 +    "\uff4b\137\uff4b\140\uff4b\141\uff4b\142\uff4b\143\uff4b\001\002" +
  84.564 +    "\000\114\013\uff48\025\uff48\042\uff48\044\uff48\046\uff48\047" +
  84.565 +    "\uff48\051\uff48\054\uff48\070\uff48\072\uff48\073\uff48\105\uff48" +
  84.566 +    "\111\uff48\113\uff48\114\uff48\115\uff48\116\uff48\117\uff48\120" +
  84.567 +    "\uff48\121\uff48\122\uff48\123\uff48\124\uff48\125\uff48\126\uff48" +
  84.568 +    "\130\uff48\131\uff48\132\uff48\133\uff48\134\uff48\135\uff48\136" +
  84.569 +    "\uff48\137\uff48\140\uff48\141\uff48\142\uff48\143\uff48\001\002" +
  84.570 +    "\000\104\013\uff0a\025\uff0a\042\uff0a\044\uff0a\046\uff0a\047" +
  84.571 +    "\uff0a\051\uff0a\054\uff0a\070\uff0a\072\uff0a\073\uff0a\105\uff0a" +
  84.572 +    "\113\uff0a\114\uff0a\115\uff0a\120\uff0a\121\uff0a\122\uff0a\123" +
  84.573 +    "\uff0a\124\uff0a\126\uff0a\130\uff0a\131\uff0a\132\uff0a\133\uff0a" +
  84.574 +    "\134\uff0a\135\uff0a\136\uff0a\137\uff0a\140\uff0a\141\uff0a\142" +
  84.575 +    "\uff0a\143\uff0a\001\002\000\012\120\uff4e\123\uff4e\134\uff86" +
  84.576 +    "\135\uff86\001\002\000\012\120\uff83\123\uff83\134\uff83\135" +
  84.577 +    "\uff83\001\002\000\006\134\341\135\342\001\002\000\074" +
  84.578 +    "\013\uff10\042\uff10\047\uff10\051\uff10\054\uff10\070\335\072" +
  84.579 +    "\uff10\113\uff10\114\uff10\115\uff10\116\313\117\233\120\uff10" +
  84.580 +    "\121\uff10\122\uff10\123\uff10\124\uff10\125\235\126\uff10\131" +
  84.581 +    "\uff10\132\uff10\133\uff10\134\uff10\135\uff10\136\uff10\137\uff10" +
  84.582 +    "\141\uff10\142\uff10\143\uff10\001\002\000\020\013\321\054" +
  84.583 +    "\324\114\322\120\uff50\123\uff50\134\uff87\135\uff87\001\002" +
  84.584 +    "\000\006\120\uff4d\123\uff4d\001\002\000\006\134\uff89\135" +
  84.585 +    "\uff89\001\002\000\006\134\uff85\135\uff85\001\002\000\006" +
  84.586 +    "\120\uff4f\123\uff4f\001\002\000\006\120\uff52\123\uff52\001" +
  84.587 +    "\002\000\006\120\333\123\332\001\002\000\052\013\uff1e" +
  84.588 +    "\042\261\051\273\054\uff1e\113\uff1e\114\uff1e\115\274\120" +
  84.589 +    "\uff1e\122\267\123\uff1e\124\260\131\271\132\266\133\276" +
  84.590 +    "\134\uff1e\135\uff1e\136\272\141\264\142\262\143\275\001" +
  84.591 +    "\002\000\026\005\uff27\050\uff27\051\uff27\052\uff27\117\uff27" +
  84.592 +    "\147\uff27\150\uff27\151\uff27\152\uff27\153\uff27\001\002\000" +
  84.593 +    "\032\005\uff2c\050\uff2c\051\uff2c\052\uff2c\117\uff2c\122\uff2c" +
  84.594 +    "\124\uff2c\147\uff2c\150\uff2c\151\uff2c\152\uff2c\153\uff2c\001" +
  84.595 +    "\002\000\032\005\uff2d\050\uff2d\051\uff2d\052\uff2d\117\uff2d" +
  84.596 +    "\122\uff2d\124\uff2d\147\uff2d\150\uff2d\151\uff2d\152\uff2d\153" +
  84.597 +    "\uff2d\001\002\000\032\005\213\050\224\051\200\052\227" +
  84.598 +    "\117\204\122\175\124\217\147\215\150\045\151\177\152" +
  84.599 +    "\231\153\205\001\002\000\032\005\uff31\050\uff31\051\uff31" +
  84.600 +    "\052\uff31\117\uff31\122\uff31\124\uff31\147\uff31\150\uff31\151" +
  84.601 +    "\uff31\152\uff31\153\uff31\001\002\000\032\005\213\050\224" +
  84.602 +    "\051\200\052\227\117\204\122\175\124\217\147\215\150" +
  84.603 +    "\045\151\177\152\231\153\205\001\002\000\032\005\uff32" +
  84.604 +    "\050\uff32\051\uff32\052\uff32\117\uff32\122\uff32\124\uff32\147" +
  84.605 +    "\uff32\150\uff32\151\uff32\152\uff32\153\uff32\001\002\000\026" +
  84.606 +    "\005\uff28\050\uff28\051\uff28\052\uff28\117\uff28\147\uff28\150" +
  84.607 +    "\uff28\151\uff28\152\uff28\153\uff28\001\002\000\026\005\213" +
  84.608 +    "\050\224\051\200\052\227\117\204\147\215\150\045\151" +
  84.609 +    "\177\152\231\153\205\001\002\000\032\005\uff30\050\uff30" +
  84.610 +    "\051\uff30\052\uff30\117\uff30\122\uff30\124\uff30\147\uff30\150" +
  84.611 +    "\uff30\151\uff30\152\uff30\153\uff30\001\002\000\032\005\213" +
  84.612 +    "\050\224\051\200\052\227\117\204\122\175\124\217\147" +
  84.613 +    "\215\150\045\151\177\152\231\153\205\001\002\000\004" +
  84.614 +    "\042\277\001\002\000\026\005\uff26\050\uff26\051\uff26\052" +
  84.615 +    "\uff26\117\uff26\147\uff26\150\uff26\151\uff26\152\uff26\153\uff26" +
  84.616 +    "\001\002\000\032\005\uff2f\050\uff2f\051\uff2f\052\uff2f\117" +
  84.617 +    "\uff2f\122\uff2f\124\uff2f\147\uff2f\150\uff2f\151\uff2f\152\uff2f" +
  84.618 +    "\153\uff2f\001\002\000\032\005\uff2e\050\uff2e\051\uff2e\052" +
  84.619 +    "\uff2e\117\uff2e\122\uff2e\124\uff2e\147\uff2e\150\uff2e\151\uff2e" +
  84.620 +    "\152\uff2e\153\uff2e\001\002\000\032\005\uff2b\050\uff2b\051" +
  84.621 +    "\uff2b\052\uff2b\117\uff2b\122\uff2b\124\uff2b\147\uff2b\150\uff2b" +
  84.622 +    "\151\uff2b\152\uff2b\153\uff2b\001\002\000\050\013\uffc6\025" +
  84.623 +    "\uffc6\044\uffc6\046\uffc6\054\uffc6\070\uffc6\073\uffc6\105\uffc6" +
  84.624 +    "\113\uffc6\114\uffc6\115\274\120\uffc6\122\267\123\uffc6\124" +
  84.625 +    "\260\130\uffc6\134\uffc6\135\uffc6\140\uffc6\001\002\000\102" +
  84.626 +    "\013\uff18\025\uff18\042\uff18\044\uff18\046\uff18\047\303\051" +
  84.627 +    "\uff18\054\uff18\070\uff18\072\306\073\uff18\105\uff18\113\uff18" +
  84.628 +    "\114\uff18\115\uff18\120\uff18\121\302\122\uff18\123\uff18\124" +
  84.629 +    "\uff18\126\305\130\uff18\131\uff18\132\uff18\133\uff18\134\uff18" +
  84.630 +    "\135\uff18\136\uff18\140\uff18\141\uff18\142\uff18\143\uff18\001" +
  84.631 +    "\002\000\026\005\uff25\050\uff25\051\uff25\052\uff25\117\uff25" +
  84.632 +    "\147\uff25\150\uff25\151\uff25\152\uff25\153\uff25\001\002\000" +
  84.633 +    "\026\005\uff23\050\uff23\051\uff23\052\uff23\117\uff23\147\uff23" +
  84.634 +    "\150\uff23\151\uff23\152\uff23\153\uff23\001\002\000\026\005" +
  84.635 +    "\213\050\224\051\200\052\227\117\204\147\215\150\045" +
  84.636 +    "\151\177\152\231\153\205\001\002\000\026\005\uff24\050" +
  84.637 +    "\uff24\051\uff24\052\uff24\117\uff24\147\uff24\150\uff24\151\uff24" +
  84.638 +    "\152\uff24\153\uff24\001\002\000\026\005\uff22\050\uff22\051" +
  84.639 +    "\uff22\052\uff22\117\uff22\147\uff22\150\uff22\151\uff22\152\uff22" +
  84.640 +    "\153\uff22\001\002\000\102\013\uff16\025\uff16\042\uff16\044" +
  84.641 +    "\uff16\046\uff16\047\uff16\051\uff16\054\uff16\070\uff16\072\uff16" +
  84.642 +    "\073\uff16\105\uff16\113\uff16\114\uff16\115\uff16\120\uff16\121" +
  84.643 +    "\uff16\122\uff16\123\uff16\124\uff16\126\uff16\130\uff16\131\uff16" +
  84.644 +    "\132\uff16\133\uff16\134\uff16\135\uff16\136\uff16\140\uff16\141" +
  84.645 +    "\uff16\142\uff16\143\uff16\001\002\000\042\013\uff1c\025\uff1c" +
  84.646 +    "\044\uff1c\046\uff1c\054\uff1c\070\uff1c\073\uff1c\105\uff1c\113" +
  84.647 +    "\uff1c\114\uff1c\120\uff1c\123\uff1c\130\uff1c\134\uff1c\135\uff1c" +
  84.648 +    "\140\uff1c\001\002\000\012\115\274\122\267\124\260\136" +
  84.649 +    "\272\001\002\000\072\013\uff1b\025\uff1b\044\uff1b\046\uff1b" +
  84.650 +    "\047\uff10\054\uff1b\070\uff1b\072\uff10\073\uff1b\105\uff1b\113" +
  84.651 +    "\uff1b\114\uff1b\115\uff10\116\313\117\233\120\uff1b\121\uff10" +
  84.652 +    "\122\uff10\123\uff1b\124\uff10\125\235\126\uff10\130\uff1b\134" +
  84.653 +    "\uff1b\135\uff1b\136\uff10\137\uff10\140\uff1b\001\002\000\016" +
  84.654 +    "\007\173\024\174\025\171\070\314\117\204\150\172\001" +
  84.655 +    "\002\000\044\013\uffc5\025\uffc5\044\uffc5\046\uffc5\054\uffc5" +
  84.656 +    "\070\uffc5\073\uffc5\105\uffc5\113\uffc5\114\uffc5\117\315\120" +
  84.657 +    "\uffc5\123\uffc5\130\uffc5\134\uffc5\135\uffc5\140\uffc5\001\002" +
  84.658 +    "\000\032\005\213\050\224\051\200\052\227\117\204\122" +
  84.659 +    "\175\124\217\147\215\150\045\151\177\152\231\153\205" +
  84.660 +    "\001\002\000\012\013\321\054\324\114\322\120\320\001" +
  84.661 +    "\002\000\032\005\213\050\224\051\200\052\227\117\204" +
  84.662 +    "\122\175\124\217\147\215\150\045\151\177\152\231\153" +
  84.663 +    "\205\001\002\000\042\013\uffc4\025\uffc4\044\uffc4\046\uffc4" +
  84.664 +    "\054\uffc4\070\uffc4\073\uffc4\105\uffc4\113\uffc4\114\uffc4\120" +
  84.665 +    "\uffc4\123\uffc4\130\uffc4\134\uffc4\135\uffc4\140\uffc4\001\002" +
  84.666 +    "\000\034\005\uff37\050\uff37\051\uff37\052\uff37\105\327\117" +
  84.667 +    "\uff37\122\uff37\124\uff37\147\uff37\150\uff37\151\uff37\152\uff37" +
  84.668 +    "\153\uff37\001\002\000\032\005\uff35\050\uff35\051\uff35\052" +
  84.669 +    "\uff35\117\uff35\122\uff35\124\uff35\147\uff35\150\uff35\151\uff35" +
  84.670 +    "\152\uff35\153\uff35\001\002\000\032\005\213\050\224\051" +
  84.671 +    "\200\052\227\117\204\122\175\124\217\147\215\150\045" +
  84.672 +    "\151\177\152\231\153\205\001\002\000\034\005\uff36\027" +
  84.673 +    "\325\050\uff36\051\uff36\052\uff36\117\uff36\122\uff36\124\uff36" +
  84.674 +    "\147\uff36\150\uff36\151\uff36\152\uff36\153\uff36\001\002\000" +
  84.675 +    "\032\005\uff33\050\uff33\051\uff33\052\uff33\117\uff33\122\uff33" +
  84.676 +    "\124\uff33\147\uff33\150\uff33\151\uff33\152\uff33\153\uff33\001" +
  84.677 +    "\002\000\042\013\uff20\025\uff20\044\uff20\046\uff20\054\uff20" +
  84.678 +    "\070\uff20\073\uff20\105\uff20\113\uff20\114\uff20\120\uff20\123" +
  84.679 +    "\uff20\130\uff20\134\uff20\135\uff20\140\uff20\001\002\000\032" +
  84.680 +    "\005\uff34\050\uff34\051\uff34\052\uff34\117\uff34\122\uff34\124" +
  84.681 +    "\uff34\147\uff34\150\uff34\151\uff34\152\uff34\153\uff34\001\002" +
  84.682 +    "\000\042\013\uff1f\025\uff1f\044\uff1f\046\uff1f\054\uff1f\070" +
  84.683 +    "\uff1f\073\uff1f\105\uff1f\113\uff1f\114\uff1f\120\uff1f\123\uff1f" +
  84.684 +    "\130\uff1f\134\uff1f\135\uff1f\140\uff1f\001\002\000\050\013" +
  84.685 +    "\uff1d\025\uff1d\044\uff1d\046\uff1d\054\uff1d\070\uff1d\073\uff1d" +
  84.686 +    "\105\uff1d\113\uff1d\114\uff1d\115\274\120\uff1d\122\267\123" +
  84.687 +    "\uff1d\124\260\130\uff1d\134\uff1d\135\uff1d\140\uff1d\001\002" +
  84.688 +    "\000\036\003\251\005\213\050\224\051\200\052\227\055" +
  84.689 +    "\253\117\204\122\175\124\217\147\215\150\045\151\177" +
  84.690 +    "\152\231\153\205\001\002\000\114\013\uff53\025\uff53\042" +
  84.691 +    "\uff53\044\uff53\046\uff53\047\uff53\051\uff53\054\uff53\070\uff53" +
  84.692 +    "\072\uff53\073\uff53\105\uff53\111\uff53\113\uff53\114\uff53\115" +
  84.693 +    "\uff53\116\uff53\117\uff53\120\uff53\121\uff53\122\uff53\123\uff53" +
  84.694 +    "\124\uff53\125\uff53\126\uff53\130\uff53\131\uff53\132\uff53\133" +
  84.695 +    "\uff53\134\uff53\135\uff53\136\uff53\137\uff53\140\uff53\141\uff53" +
  84.696 +    "\142\uff53\143\uff53\001\002\000\006\120\uff51\123\uff51\001" +
  84.697 +    "\002\000\032\005\213\050\224\051\200\052\227\117\204" +
  84.698 +    "\122\175\124\217\147\215\150\045\151\177\152\231\153" +
  84.699 +    "\205\001\002\000\012\120\uff84\123\uff84\134\uff84\135\uff84" +
  84.700 +    "\001\002\000\024\046\uffc7\073\uffc7\113\uffc7\120\uffc7\123" +
  84.701 +    "\uffc7\130\uffc7\134\uffc7\135\uffc7\140\uffc7\001\002\000\032" +
  84.702 +    "\047\uff10\072\uff10\115\uff10\116\313\117\233\121\uff10\122" +
  84.703 +    "\uff10\124\uff10\125\235\126\uff10\136\uff10\137\uff10\001\002" +
  84.704 +    "\000\034\005\213\050\224\051\200\052\227\055\253\117" +
  84.705 +    "\204\122\175\124\217\147\215\150\045\151\177\152\231" +
  84.706 +    "\153\205\001\002\000\032\005\213\050\224\051\200\052" +
  84.707 +    "\227\117\204\122\175\124\217\147\215\150\045\151\177" +
  84.708 +    "\152\231\153\205\001\002\000\014\013\321\054\324\114" +
  84.709 +    "\322\120\uff38\123\uff38\001\002\000\006\134\uff86\135\uff86" +
  84.710 +    "\001\002\000\006\134\uff88\135\uff88\001\002\000\014\013" +
  84.711 +    "\321\054\324\114\322\134\uff87\135\uff87\001\002\000\112" +
  84.712 +    "\013\uff09\025\uff09\042\uff09\044\uff09\046\uff09\047\uff09\051" +
  84.713 +    "\uff09\054\uff09\070\uff09\072\uff09\073\uff09\105\uff09\113\uff09" +
  84.714 +    "\114\uff09\115\uff09\116\234\117\233\120\uff09\121\uff09\122" +
  84.715 +    "\uff09\123\uff09\124\uff09\125\235\126\uff09\130\uff09\131\uff09" +
  84.716 +    "\132\uff09\133\uff09\134\uff09\135\uff09\136\uff09\137\uff09\140" +
  84.717 +    "\uff09\141\uff09\142\uff09\143\uff09\001\002\000\104\013\uff08" +
  84.718 +    "\025\uff08\042\uff08\044\uff08\046\uff08\047\uff08\051\uff08\054" +
  84.719 +    "\uff08\070\uff08\072\uff08\073\uff08\105\uff08\113\uff08\114\uff08" +
  84.720 +    "\115\uff08\120\uff08\121\uff08\122\uff08\123\uff08\124\uff08\126" +
  84.721 +    "\uff08\130\uff08\131\uff08\132\uff08\133\uff08\134\uff08\135\uff08" +
  84.722 +    "\136\uff08\137\uff08\140\uff08\141\uff08\142\uff08\143\uff08\001" +
  84.723 +    "\002\000\102\013\uff1a\025\uff1a\042\uff1a\044\uff1a\046\uff1a" +
  84.724 +    "\047\303\051\uff1a\054\uff1a\070\uff1a\072\306\073\uff1a\105" +
  84.725 +    "\uff1a\113\uff1a\114\uff1a\115\uff1a\120\uff1a\121\302\122\uff1a" +
  84.726 +    "\123\uff1a\124\uff1a\126\305\130\uff1a\131\uff1a\132\uff1a\133" +
  84.727 +    "\uff1a\134\uff1a\135\uff1a\136\uff1a\140\uff1a\141\uff1a\142\uff1a" +
  84.728 +    "\143\uff1a\001\002\000\022\050\224\052\227\117\204\147" +
  84.729 +    "\215\150\045\151\177\152\231\153\205\001\002\000\102" +
  84.730 +    "\013\uff12\025\uff12\042\uff12\044\uff12\046\uff12\047\uff12\051" +
  84.731 +    "\uff12\054\uff12\070\uff12\072\uff12\073\uff12\105\uff12\113\uff12" +
  84.732 +    "\114\uff12\115\uff12\120\uff12\121\uff12\122\uff12\123\uff12\124" +
  84.733 +    "\uff12\126\uff12\130\uff12\131\uff12\132\uff12\133\uff12\134\uff12" +
  84.734 +    "\135\uff12\136\uff12\140\uff12\141\uff12\142\uff12\143\uff12\001" +
  84.735 +    "\002\000\102\013\uff13\025\uff13\042\uff13\044\uff13\046\uff13" +
  84.736 +    "\047\uff13\051\uff13\054\uff13\070\uff13\072\uff13\073\uff13\105" +
  84.737 +    "\uff13\113\uff13\114\uff13\115\uff13\120\uff13\121\uff13\122\uff13" +
  84.738 +    "\123\uff13\124\uff13\126\uff13\130\uff13\131\uff13\132\uff13\133" +
  84.739 +    "\uff13\134\uff13\135\uff13\136\uff13\140\uff13\141\uff13\142\uff13" +
  84.740 +    "\143\uff13\001\002\000\006\120\377\123\376\001\002\000" +
  84.741 +    "\022\013\321\054\324\113\370\114\322\120\367\123\uff50" +
  84.742 +    "\134\uff87\135\uff87\001\002\000\066\013\uff40\042\uff40\047" +
  84.743 +    "\uff40\051\uff40\054\uff40\071\365\072\uff40\113\uff40\114\uff40" +
  84.744 +    "\115\uff40\120\uff40\121\uff40\122\uff40\123\uff40\124\uff40\126" +
  84.745 +    "\uff40\131\uff40\132\uff40\133\uff40\134\uff40\135\uff40\136\uff40" +
  84.746 +    "\137\uff40\141\uff40\142\uff40\143\uff40\001\002\000\006\120" +
  84.747 +    "\364\123\uff4f\001\002\000\004\123\362\001\002\000\036" +
  84.748 +    "\003\251\005\213\050\224\051\200\052\227\055\253\117" +
  84.749 +    "\204\122\175\124\217\147\215\150\045\151\177\152\231" +
  84.750 +    "\153\205\001\002\000\006\120\uff3a\123\uff3a\001\002\000" +
  84.751 +    "\104\013\uff3f\025\uff3f\042\uff3f\044\uff3f\046\uff3f\047\uff3f" +
  84.752 +    "\051\uff3f\054\uff3f\070\uff3f\072\uff3f\073\uff3f\105\uff3f\113" +
  84.753 +    "\uff3f\114\uff3f\115\uff3f\120\uff3f\121\uff3f\122\uff3f\123\uff3f" +
  84.754 +    "\124\uff3f\126\uff3f\130\uff3f\131\uff3f\132\uff3f\133\uff3f\134" +
  84.755 +    "\uff3f\135\uff3f\136\uff3f\137\uff3f\140\uff3f\141\uff3f\142\uff3f" +
  84.756 +    "\143\uff3f\001\002\000\004\120\366\001\002\000\104\013" +
  84.757 +    "\uff3b\025\uff3b\042\uff3b\044\uff3b\046\uff3b\047\uff3b\051\uff3b" +
  84.758 +    "\054\uff3b\070\uff3b\072\uff3b\073\uff3b\105\uff3b\113\uff3b\114" +
  84.759 +    "\uff3b\115\uff3b\120\uff3b\121\uff3b\122\uff3b\123\uff3b\124\uff3b" +
  84.760 +    "\126\uff3b\130\uff3b\131\uff3b\132\uff3b\133\uff3b\134\uff3b\135" +
  84.761 +    "\uff3b\136\uff3b\137\uff3b\140\uff3b\141\uff3b\142\uff3b\143\uff3b" +
  84.762 +    "\001\002\000\104\013\uff0b\025\uff0b\042\uff0b\044\uff0b\046" +
  84.763 +    "\uff0b\047\uff0b\051\uff0b\054\uff0b\070\uff0b\072\uff0b\073\uff0b" +
  84.764 +    "\105\uff0b\113\uff0b\114\uff0b\115\uff0b\120\uff0b\121\uff0b\122" +
  84.765 +    "\uff0b\123\uff0b\124\uff0b\126\uff0b\130\uff0b\131\uff0b\132\uff0b" +
  84.766 +    "\133\uff0b\134\uff0b\135\uff0b\136\uff0b\137\uff0b\140\uff0b\141" +
  84.767 +    "\uff0b\142\uff0b\143\uff0b\001\002\000\036\003\251\005\213" +
  84.768 +    "\050\224\051\200\052\371\055\253\117\204\122\175\124" +
  84.769 +    "\217\147\215\150\045\151\177\152\231\153\205\001\002" +
  84.770 +    "\000\064\013\uff40\042\uff40\047\uff40\051\uff40\054\uff40\071" +
  84.771 +    "\374\072\uff40\114\uff40\115\uff40\120\uff40\121\uff40\122\uff40" +
  84.772 +    "\123\uff40\124\uff40\126\uff40\131\uff40\132\uff40\133\uff40\134" +
  84.773 +    "\uff40\135\uff40\136\uff40\137\uff40\141\uff40\142\uff40\143\uff40" +
  84.774 +    "\001\002\000\006\120\373\123\332\001\002\000\104\013" +
  84.775 +    "\uff3d\025\uff3d\042\uff3d\044\uff3d\046\uff3d\047\uff3d\051\uff3d" +
  84.776 +    "\054\uff3d\070\uff3d\072\uff3d\073\uff3d\105\uff3d\113\uff3d\114" +
  84.777 +    "\uff3d\115\uff3d\120\uff3d\121\uff3d\122\uff3d\123\uff3d\124\uff3d" +
  84.778 +    "\126\uff3d\130\uff3d\131\uff3d\132\uff3d\133\uff3d\134\uff3d\135" +
  84.779 +    "\uff3d\136\uff3d\137\uff3d\140\uff3d\141\uff3d\142\uff3d\143\uff3d" +
  84.780 +    "\001\002\000\004\120\375\001\002\000\104\013\uff3c\025" +
  84.781 +    "\uff3c\042\uff3c\044\uff3c\046\uff3c\047\uff3c\051\uff3c\054\uff3c" +
  84.782 +    "\070\uff3c\072\uff3c\073\uff3c\105\uff3c\113\uff3c\114\uff3c\115" +
  84.783 +    "\uff3c\120\uff3c\121\uff3c\122\uff3c\123\uff3c\124\uff3c\126\uff3c" +
  84.784 +    "\130\uff3c\131\uff3c\132\uff3c\133\uff3c\134\uff3c\135\uff3c\136" +
  84.785 +    "\uff3c\137\uff3c\140\uff3c\141\uff3c\142\uff3c\143\uff3c\001\002" +
  84.786 +    "\000\036\003\251\005\213\050\224\051\200\052\227\055" +
  84.787 +    "\253\117\204\122\175\124\217\147\215\150\045\151\177" +
  84.788 +    "\152\231\153\205\001\002\000\104\013\uff3e\025\uff3e\042" +
  84.789 +    "\uff3e\044\uff3e\046\uff3e\047\uff3e\051\uff3e\054\uff3e\070\uff3e" +
  84.790 +    "\072\uff3e\073\uff3e\105\uff3e\113\uff3e\114\uff3e\115\uff3e\120" +
  84.791 +    "\uff3e\121\uff3e\122\uff3e\123\uff3e\124\uff3e\126\uff3e\130\uff3e" +
  84.792 +    "\131\uff3e\132\uff3e\133\uff3e\134\uff3e\135\uff3e\136\uff3e\137" +
  84.793 +    "\uff3e\140\uff3e\141\uff3e\142\uff3e\143\uff3e\001\002\000\006" +
  84.794 +    "\120\uff39\123\uff39\001\002\000\102\013\uff14\025\uff14\042" +
  84.795 +    "\uff14\044\uff14\046\uff14\047\uff14\051\uff14\054\uff14\070\uff14" +
  84.796 +    "\072\uff14\073\uff14\105\uff14\113\uff14\114\uff14\115\uff14\120" +
  84.797 +    "\uff14\121\uff14\122\uff14\123\uff14\124\uff14\126\uff14\130\uff14" +
  84.798 +    "\131\uff14\132\uff14\133\uff14\134\uff14\135\uff14\136\uff14\140" +
  84.799 +    "\uff14\141\uff14\142\uff14\143\uff14\001\002\000\006\123\uffea" +
  84.800 +    "\127\uffea\001\002\000\004\130\ufe8b\001\002\000\020\031" +
  84.801 +    "\ufe87\032\ufe87\035\ufe87\036\ufe87\061\ufe87\062\ufe87\063\ufe87" +
  84.802 +    "\001\002\000\020\031\ufe89\032\u010a\035\070\036\027\061" +
  84.803 +    "\004\062\u010b\063\021\001\002\000\020\031\ufe86\032\ufe86" +
  84.804 +    "\035\ufe86\036\ufe86\061\ufe86\062\ufe86\063\ufe86\001\002\000" +
  84.805 +    "\024\003\ufe83\031\ufe83\032\ufe83\035\ufe83\036\ufe83\061\ufe83" +
  84.806 +    "\062\ufe83\063\ufe83\150\ufe83\001\002\000\024\003\ufe82\031" +
  84.807 +    "\ufe82\032\ufe82\035\ufe82\036\ufe82\061\ufe82\062\ufe82\063\ufe82" +
  84.808 +    "\150\ufe82\001\002\000\004\031\u0144\001\002\000\004\150" +
  84.809 +    "\u0126\001\002\000\022\003\ufe81\031\ufe81\032\ufe81\035\ufe81" +
  84.810 +    "\036\ufe81\061\ufe81\063\ufe81\150\ufe81\001\002\000\024\003" +
  84.811 +    "\ufe85\031\ufe85\032\ufe85\035\ufe85\036\ufe85\061\ufe85\062\ufe85" +
  84.812 +    "\063\ufe85\150\ufe85\001\002\000\004\130\u010e\001\002\000" +
  84.813 +    "\024\003\ufe84\031\ufe84\032\ufe84\035\ufe84\036\ufe84\061\ufe84" +
  84.814 +    "\062\ufe84\063\ufe84\150\ufe84\001\002\000\022\003\u0114\031" +
  84.815 +    "\ufe88\032\u010a\035\070\036\027\061\004\063\021\150\126" +
  84.816 +    "\001\002\000\022\003\ufe80\031\ufe80\032\ufe80\035\ufe80\036" +
  84.817 +    "\ufe80\061\ufe80\063\ufe80\150\ufe80\001\002\000\006\123\155" +
  84.818 +    "\127\u0116\001\002\000\022\003\ufe7e\031\ufe7e\032\ufe7e\035" +
  84.819 +    "\ufe7e\036\ufe7e\061\ufe7e\063\ufe7e\150\ufe7e\001\002\000\022" +
  84.820 +    "\003\ufe7f\031\ufe7f\032\ufe7f\035\ufe7f\036\ufe7f\061\ufe7f\063" +
  84.821 +    "\ufe7f\150\ufe7f\001\002\000\004\130\u0115\001\002\000\026" +
  84.822 +    "\003\uff95\021\uff95\031\uff95\032\uff95\035\uff95\036\uff95\061" +
  84.823 +    "\uff95\063\uff95\111\uff95\150\uff95\001\002\000\010\011\u0117" +
  84.824 +    "\150\uffaf\153\uffaf\001\002\000\006\150\uffae\153\uffae\001" +
  84.825 +    "\002\000\006\150\045\153\205\001\002\000\006\130\uffe3" +
  84.826 +    "\140\164\001\002\000\004\130\u011b\001\002\000\026\003" +
  84.827 +    "\uff96\021\uff96\031\uff96\032\uff96\035\uff96\036\uff96\061\uff96" +
  84.828 +    "\063\uff96\111\uff96\150\uff96\001\002\000\024\025\u011e\070" +
  84.829 +    "\335\073\uffd0\113\uffd0\116\u0122\117\233\125\235\130\uffd0" +
  84.830 +    "\140\uffd0\001\002\000\006\130\uffb0\140\uffb0\001\002\000" +
  84.831 +    "\032\005\213\050\224\051\200\052\227\117\204\122\175" +
  84.832 +    "\124\217\147\215\150\045\151\177\152\231\153\205\001" +
  84.833 +    "\002\000\012\073\uffce\113\uffce\130\uffce\140\uffce\001\002" +
  84.834 +    "\000\012\073\uffcf\113\uffcf\130\uffcf\140\uffcf\001\002\000" +
  84.835 +    "\012\073\uffd1\113\uffd1\130\uffd1\140\uffd1\001\002\000\012" +
  84.836 +    "\007\173\024\174\025\171\150\172\001\002\000\022\013" +
  84.837 +    "\321\054\324\070\335\073\uffa5\113\uffa5\114\322\130\uffa5" +
  84.838 +    "\140\uffa5\001\002\000\012\073\uffcd\113\uffcd\130\uffcd\140" +
  84.839 +    "\uffcd\001\002\000\020\046\uffa4\073\uffa4\113\uffa4\120\uffa4" +
  84.840 +    "\123\uffa4\130\uffa4\140\uffa4\001\002\000\006\117\u0129\130" +
  84.841 +    "\ufebe\001\002\000\004\130\u0143\001\002\000\016\026\ufebd" +
  84.842 +    "\044\ufebd\065\ufebd\073\ufebd\111\ufebd\130\ufebd\001\002\000" +
  84.843 +    "\034\003\u012f\005\213\050\224\051\200\052\227\117\204" +
  84.844 +    "\122\175\124\217\147\215\150\u0131\151\177\152\231\153" +
  84.845 +    "\205\001\002\000\006\120\u0141\130\u0140\001\002\000\006" +
  84.846 +    "\120\ufebb\130\ufebb\001\002\000\006\123\155\127\u0138\001" +
  84.847 +    "\002\000\010\046\uffa6\120\uffa6\123\uffa6\001\002\000\042" +
  84.848 +    "\046\uffa5\047\uff10\070\335\072\uff10\115\uff10\116\313\117" +
  84.849 +    "\233\120\uffa5\121\uff10\122\uff10\123\uffa5\124\uff10\125\235" +
  84.850 +    "\126\uff10\136\uff10\137\uff10\001\002\000\004\130\u0136\001" +
  84.851 +    "\002\000\004\120\u0132\001\002\000\070\013\uff59\042\uff59" +
  84.852 +    "\047\uff59\051\uff59\054\uff59\070\uff59\072\uff59\114\uff59\115" +
  84.853 +    "\uff59\116\uff59\117\uff59\120\uff59\121\uff59\122\uff59\123\uffed" +
  84.854 +    "\124\uff59\125\uff59\126\uff59\127\uffed\131\uff59\132\uff59\133" +
  84.855 +    "\uff59\136\uff59\137\uff59\141\uff59\142\uff59\143\uff59\001\002" +
  84.856 +    "\000\006\117\u0134\130\ufebe\001\002\000\004\130\u0135\001" +
  84.857 +    "\002\000\006\003\u012f\150\126\001\002\000\024\003\ufe74" +
  84.858 +    "\031\ufe74\032\ufe74\035\ufe74\036\ufe74\061\ufe74\062\ufe74\063" +
  84.859 +    "\ufe74\150\ufe74\001\002\000\006\120\ufeb8\130\ufeb8\001\002" +
  84.860 +    "\000\010\046\uffa7\120\uffa7\123\uffa7\001\002\000\012\007" +
  84.861 +    "\u013b\042\u013a\056\u0139\150\ufeb7\001\002\000\004\150\ufeb5" +
  84.862 +    "\001\002\000\006\056\u013f\150\ufeb6\001\002\000\004\150" +
  84.863 +    "\ufeb3\001\002\000\004\150\045\001\002\000\014\116\165" +
  84.864 +    "\120\uffe3\125\166\130\uffe3\140\164\001\002\000\006\120" +
  84.865 +    "\ufeb9\130\ufeb9\001\002\000\004\150\ufeb4\001\002\000\006" +
  84.866 +    "\003\u012f\150\126\001\002\000\016\026\ufebc\044\ufebc\065" +
  84.867 +    "\ufebc\073\ufebc\111\ufebc\130\ufebc\001\002\000\006\120\ufeba" +
  84.868 +    "\130\ufeba\001\002\000\024\003\ufe75\031\ufe75\032\ufe75\035" +
  84.869 +    "\ufe75\036\ufe75\061\ufe75\062\ufe75\063\ufe75\150\ufe75\001\002" +
  84.870 +    "\000\010\130\ufed7\150\045\153\205\001\002\000\004\130" +
  84.871 +    "\ufed6\001\002\000\016\044\ufec0\065\ufec0\073\ufec0\117\ufec0" +
  84.872 +    "\125\051\130\ufec0\001\002\000\014\044\ufebf\065\ufebf\073" +
  84.873 +    "\ufebf\117\ufebf\130\ufebf\001\002\000\004\130\ufe8a\001\002" +
  84.874 +    "\000\004\130\ufe8c\001\002\000\004\044\u014b\001\002\000" +
  84.875 +    "\016\031\ufffa\032\ufffa\036\ufffa\061\ufffa\063\ufffa\076\u014c" +
  84.876 +    "\001\002\000\004\130\u024b\001\002\000\012\031\u0155\032" +
  84.877 +    "\u0151\036\027\063\021\001\002\000\014\031\ufe7c\032\ufe7c" +
  84.878 +    "\036\ufe7c\061\004\063\ufe7c\001\002\000\046\002\ufff9\003" +
  84.879 +    "\ufff9\021\ufff9\031\ufff9\032\ufff9\035\ufff9\036\ufff9\037\ufff9" +
  84.880 +    "\052\ufff9\060\ufff9\061\ufff9\062\ufff9\063\ufff9\076\ufff9\110" +
  84.881 +    "\ufff9\111\ufff9\113\ufff9\150\ufff9\001\002\000\014\031\ufe7a" +
  84.882 +    "\032\ufe7a\036\ufe7a\061\ufe7a\063\ufe7a\001\002\000\004\150" +
  84.883 +    "\u0237\001\002\000\006\044\u015a\130\u0159\001\002\000\014" +
  84.884 +    "\031\ufffa\032\ufffa\036\ufffa\061\ufffa\063\ufffa\001\002\000" +
  84.885 +    "\014\031\ufe79\032\ufe79\036\ufe79\061\ufe79\063\ufe79\001\002" +
  84.886 +    "\000\010\130\ufed7\150\045\153\205\001\002\000\004\130" +
  84.887 +    "\u0157\001\002\000\050\002\ufe7d\003\ufe7d\016\ufe7d\031\ufe7d" +
  84.888 +    "\035\ufe7d\036\ufe7d\037\ufe7d\060\ufe7d\061\ufe7d\062\ufe7d\063" +
  84.889 +    "\ufe7d\064\ufe7d\076\ufe7d\101\ufe7d\103\ufe7d\106\ufe7d\110\ufe7d" +
  84.890 +    "\113\ufe7d\150\ufe7d\001\002\000\014\031\ufe7b\032\ufe7b\036" +
  84.891 +    "\ufe7b\061\004\063\ufe7b\001\002\000\014\031\ufe78\032\ufe78" +
  84.892 +    "\036\ufe78\061\ufe78\063\ufe78\001\002\000\036\003\105\016" +
  84.893 +    "\uff7b\035\070\036\027\037\030\060\121\061\004\063\021" +
  84.894 +    "\064\117\101\076\103\060\106\074\110\015\150\126\001" +
  84.895 +    "\002\000\004\016\u015c\001\002\000\056\003\u017e\004\u017d" +
  84.896 +    "\010\u0183\016\ufee0\021\u0169\022\ufee0\023\u0185\034\u0176\035" +
  84.897 +    "\ufee0\040\u0184\041\u0177\046\ufee0\052\u0180\061\004\065\u017c" +
  84.898 +    "\067\u018f\074\u0164\075\u0175\112\ufee0\144\u0187\150\u0190\153" +
  84.899 +    "\205\001\002\000\004\031\u015e\001\002\000\010\130\ufed7" +
  84.900 +    "\150\045\153\205\001\002\000\004\130\u0160\001\002\000" +
  84.901 +    "\052\002\ufeb1\003\ufeb1\016\ufeb1\031\ufeb1\032\ufeb1\035\ufeb1" +
  84.902 +    "\036\ufeb1\037\ufeb1\060\ufeb1\061\ufeb1\062\ufeb1\063\ufeb1\064" +
  84.903 +    "\ufeb1\076\ufeb1\101\ufeb1\103\ufeb1\106\ufeb1\110\ufeb1\113\ufeb1" +
  84.904 +    "\150\ufeb1\001\002\000\004\031\ufed2\001\002\000\074\003" +
  84.905 +    "\ufe63\004\ufe63\010\ufe63\016\ufe63\021\ufe63\022\ufe63\023\ufe63" +
  84.906 +    "\027\ufe63\030\ufe63\031\ufe63\033\ufe63\034\ufe63\035\ufe63\040" +
  84.907 +    "\ufe63\041\ufe63\046\ufe63\052\ufe63\054\ufe63\061\ufe63\065\ufe63" +
  84.908 +    "\067\ufe63\074\ufe63\075\ufe63\105\ufe63\111\ufe63\112\ufe63\144" +
  84.909 +    "\ufe63\150\ufe63\153\ufe63\001\002\000\004\130\u0236\001\002" +
  84.910 +    "\000\006\150\045\153\205\001\002\000\074\003\ufefb\004" +
  84.911 +    "\ufefb\010\ufefb\016\ufefb\021\ufefb\022\ufefb\023\ufefb\027\ufefb" +
  84.912 +    "\030\ufefb\031\ufefb\033\ufefb\034\ufefb\035\ufefb\040\ufefb\041" +
  84.913 +    "\ufefb\046\ufefb\052\ufefb\054\ufefb\061\ufefb\065\ufefb\067\ufefb" +
  84.914 +    "\074\ufefb\075\ufefb\105\ufefb\111\ufefb\112\ufefb\144\ufefb\150" +
  84.915 +    "\ufefb\153\ufefb\001\002\000\074\003\ufefc\004\ufefc\010\ufefc" +
  84.916 +    "\016\ufefc\021\ufefc\022\ufefc\023\ufefc\027\ufefc\030\ufefc\031" +
  84.917 +    "\ufefc\033\ufefc\034\ufefc\035\ufefc\040\ufefc\041\ufefc\046\ufefc" +
  84.918 +    "\052\ufefc\054\ufefc\061\ufefc\065\ufefc\067\ufefc\074\ufefc\075" +
  84.919 +    "\ufefc\105\ufefc\111\ufefc\112\ufefc\144\ufefc\150\ufefc\153\ufefc" +
  84.920 +    "\001\002\000\074\003\ufef0\004\ufef0\010\ufef0\016\ufef0\021" +
  84.921 +    "\ufef0\022\ufef0\023\ufef0\027\ufef0\030\ufef0\031\ufef0\033\ufef0" +
  84.922 +    "\034\ufef0\035\ufef0\040\ufef0\041\ufef0\046\ufef0\052\ufef0\054" +
  84.923 +    "\ufef0\061\ufef0\065\ufef0\067\ufef0\074\ufef0\075\ufef0\105\ufef0" +
  84.924 +    "\111\ufef0\112\ufef0\144\ufef0\150\ufef0\153\ufef0\001\002\000" +
  84.925 +    "\074\003\ufef6\004\ufef6\010\ufef6\016\ufef6\021\ufef6\022\ufef6" +
  84.926 +    "\023\ufef6\027\ufef6\030\ufef6\031\ufef6\033\ufef6\034\ufef6\035" +
  84.927 +    "\ufef6\040\ufef6\041\ufef6\046\ufef6\052\ufef6\054\ufef6\061\ufef6" +
  84.928 +    "\065\ufef6\067\ufef6\074\ufef6\075\ufef6\105\ufef6\111\ufef6\112" +
  84.929 +    "\ufef6\144\ufef6\150\ufef6\153\ufef6\001\002\000\032\005\213" +
  84.930 +    "\050\224\051\200\052\227\117\204\122\175\124\217\147" +
  84.931 +    "\215\150\045\151\177\152\231\153\205\001\002\000\074" +
  84.932 +    "\003\ufef7\004\ufef7\010\ufef7\016\ufef7\021\ufef7\022\ufef7\023" +
  84.933 +    "\ufef7\027\ufef7\030\ufef7\031\ufef7\033\ufef7\034\ufef7\035\ufef7" +
  84.934 +    "\040\ufef7\041\ufef7\046\ufef7\052\ufef7\054\ufef7\061\ufef7\065" +
  84.935 +    "\ufef7\067\ufef7\074\ufef7\075\ufef7\105\ufef7\111\ufef7\112\ufef7" +
  84.936 +    "\144\ufef7\150\ufef7\153\ufef7\001\002\000\074\003\uff02\004" +
  84.937 +    "\uff02\010\uff02\016\uff02\021\uff02\022\uff02\023\uff02\027\uff02" +
  84.938 +    "\030\uff02\031\uff02\033\uff02\034\uff02\035\uff02\040\uff02\041" +
  84.939 +    "\uff02\046\uff02\052\uff02\054\uff02\061\uff02\065\uff02\067\uff02" +
  84.940 +    "\074\uff02\075\uff02\105\uff02\111\uff02\112\uff02\144\uff02\150" +
  84.941 +    "\uff02\153\uff02\001\002\000\074\003\ufefe\004\ufefe\010\ufefe" +
  84.942 +    "\016\ufefe\021\ufefe\022\ufefe\023\ufefe\027\ufefe\030\ufefe\031" +
  84.943 +    "\ufefe\033\ufefe\034\ufefe\035\ufefe\040\ufefe\041\ufefe\046\ufefe" +
  84.944 +    "\052\ufefe\054\ufefe\061\ufefe\065\ufefe\067\ufefe\074\ufefe\075" +
  84.945 +    "\ufefe\105\ufefe\111\ufefe\112\ufefe\144\ufefe\150\ufefe\153\ufefe" +
  84.946 +    "\001\002\000\074\003\uff03\004\uff03\010\uff03\016\uff03\021" +
  84.947 +    "\uff03\022\uff03\023\uff03\027\uff03\030\uff03\031\uff03\033\uff03" +
  84.948 +    "\034\uff03\035\uff03\040\uff03\041\uff03\046\uff03\052\uff03\054" +
  84.949 +    "\uff03\061\uff03\065\uff03\067\uff03\074\uff03\075\uff03\105\uff03" +
  84.950 +    "\111\uff03\112\uff03\144\uff03\150\uff03\153\uff03\001\002\000" +
  84.951 +    "\074\003\ufeef\004\ufeef\010\ufeef\016\ufeef\021\ufeef\022\ufeef" +
  84.952 +    "\023\ufeef\027\ufeef\030\ufeef\031\ufeef\033\ufeef\034\ufeef\035" +
  84.953 +    "\ufeef\040\ufeef\041\ufeef\046\ufeef\052\ufeef\054\ufeef\061\ufeef" +
  84.954 +    "\065\ufeef\067\ufeef\074\ufeef\075\ufeef\105\ufeef\111\ufeef\112" +
  84.955 +    "\ufeef\144\ufeef\150\ufeef\153\ufeef\001\002\000\014\116\234" +
  84.956 +    "\117\233\125\235\130\u01ff\140\u0222\001\002\000\074\003" +
  84.957 +    "\ufe64\004\ufe64\010\ufe64\016\ufe64\021\ufe64\022\ufe64\023\ufe64" +
  84.958 +    "\027\ufe64\030\ufe64\031\ufe64\033\ufe64\034\ufe64\035\ufe64\040" +
  84.959 +    "\ufe64\041\ufe64\046\ufe64\052\ufe64\054\ufe64\061\ufe64\065\ufe64" +
  84.960 +    "\067\ufe64\074\ufe64\075\ufe64\105\ufe64\111\ufe64\112\ufe64\144" +
  84.961 +    "\ufe64\150\ufe64\153\ufe64\001\002\000\074\003\ufef4\004\ufef4" +
  84.962 +    "\010\ufef4\016\ufef4\021\ufef4\022\ufef4\023\ufef4\027\ufef4\030" +
  84.963 +    "\ufef4\031\ufef4\033\ufef4\034\ufef4\035\ufef4\040\ufef4\041\ufef4" +
  84.964 +    "\046\ufef4\052\ufef4\054\ufef4\061\ufef4\065\ufef4\067\ufef4\074" +
  84.965 +    "\ufef4\075\ufef4\105\ufef4\111\ufef4\112\ufef4\144\ufef4\150\ufef4" +
  84.966 +    "\153\ufef4\001\002\000\074\003\ufef8\004\ufef8\010\ufef8\016" +
  84.967 +    "\ufef8\021\ufef8\022\ufef8\023\ufef8\027\ufef8\030\ufef8\031\ufef8" +
  84.968 +    "\033\ufef8\034\ufef8\035\ufef8\040\ufef8\041\ufef8\046\ufef8\052" +
  84.969 +    "\ufef8\054\ufef8\061\ufef8\065\ufef8\067\ufef8\074\ufef8\075\ufef8" +
  84.970 +    "\105\ufef8\111\ufef8\112\ufef8\144\ufef8\150\ufef8\153\ufef8\001" +
  84.971 +    "\002\000\074\003\ufe65\004\ufe65\010\ufe65\016\ufe65\021\ufe65" +
  84.972 +    "\022\ufe65\023\ufe65\027\ufe65\030\ufe65\031\ufe65\033\ufe65\034" +
  84.973 +    "\ufe65\035\ufe65\040\ufe65\041\ufe65\046\ufe65\052\ufe65\054\ufe65" +
  84.974 +    "\061\ufe65\065\ufe65\067\ufe65\074\ufe65\075\ufe65\105\ufe65\111" +
  84.975 +    "\ufe65\112\ufe65\144\ufe65\150\ufe65\153\ufe65\001\002\000\074" +
  84.976 +    "\003\ufeff\004\ufeff\010\ufeff\016\ufeff\021\ufeff\022\ufeff\023" +
  84.977 +    "\ufeff\027\ufeff\030\ufeff\031\ufeff\033\ufeff\034\ufeff\035\ufeff" +
  84.978 +    "\040\ufeff\041\ufeff\046\ufeff\052\ufeff\054\ufeff\061\ufeff\065" +
  84.979 +    "\ufeff\067\ufeff\074\ufeff\075\ufeff\105\ufeff\111\ufeff\112\ufeff" +
  84.980 +    "\144\ufeff\150\ufeff\153\ufeff\001\002\000\016\010\u0183\023" +
  84.981 +    "\u0185\104\u01fa\111\u01fb\150\045\153\205\001\002\000\012" +
  84.982 +    "\111\ufecd\130\ufecd\150\045\153\205\001\002\000\032\005" +
  84.983 +    "\213\050\224\051\200\052\227\117\204\122\175\124\217" +
  84.984 +    "\147\215\150\045\151\177\152\231\153\205\001\002\000" +
  84.985 +    "\074\003\ufef3\004\ufef3\010\ufef3\016\ufef3\021\ufef3\022\ufef3" +
  84.986 +    "\023\ufef3\027\ufef3\030\ufef3\031\ufef3\033\ufef3\034\ufef3\035" +
  84.987 +    "\ufef3\040\ufef3\041\ufef3\046\ufef3\052\ufef3\054\ufef3\061\ufef3" +
  84.988 +    "\065\ufef3\067\ufef3\074\ufef3\075\ufef3\105\ufef3\111\ufef3\112" +
  84.989 +    "\ufef3\144\ufef3\150\ufef3\153\ufef3\001\002\000\074\003\uff07" +
  84.990 +    "\004\uff07\010\uff07\016\uff07\021\uff07\022\uff07\023\uff07\027" +
  84.991 +    "\uff07\030\uff07\031\uff07\033\uff07\034\uff07\035\uff07\040\uff07" +
  84.992 +    "\041\uff07\046\uff07\052\uff07\054\uff07\061\uff07\065\uff07\067" +
  84.993 +    "\uff07\074\uff07\075\uff07\105\uff07\111\uff07\112\uff07\144\uff07" +
  84.994 +    "\150\uff07\153\uff07\001\002\000\074\003\ufef2\004\ufef2\010" +
  84.995 +    "\ufef2\016\ufef2\021\ufef2\022\ufef2\023\ufef2\027\ufef2\030\ufef2" +
  84.996 +    "\031\ufef2\033\ufef2\034\ufef2\035\ufef2\040\ufef2\041\ufef2\046" +
  84.997 +    "\ufef2\052\ufef2\054\ufef2\061\ufef2\065\ufef2\067\ufef2\074\ufef2" +
  84.998 +    "\075\ufef2\105\ufef2\111\ufef2\112\ufef2\144\ufef2\150\ufef2\153" +
  84.999 +    "\ufef2\001\002\000\006\026\u01dc\130\u01dd\001\002\000\034" +
 84.1000 +    "\005\213\050\224\051\200\052\227\117\204\122\175\124" +
 84.1001 +    "\217\130\u01d9\147\215\150\045\151\177\152\231\153\205" +
 84.1002 +    "\001\002\000\006\150\045\153\205\001\002\000\004\130" +
 84.1003 +    "\u01d3\001\002\000\062\003\u017e\004\u017d\010\u0183\016\ufee0" +
 84.1004 +    "\021\u0169\022\ufee0\023\u0185\031\ufed0\033\u01c1\034\u0176\035" +
 84.1005 +    "\ufee0\040\u0184\041\u0177\046\ufee0\052\u0180\061\004\065\u017c" +
 84.1006 +    "\067\u018f\074\u0164\075\u0175\112\ufee0\144\u0187\150\u0190\153" +
 84.1007 +    "\205\001\002\000\004\130\u01bf\001\002\000\074\003\ufefd" +
 84.1008 +    "\004\ufefd\010\ufefd\016\ufefd\021\ufefd\022\ufefd\023\ufefd\027" +
 84.1009 +    "\ufefd\030\ufefd\031\ufefd\033\ufefd\034\ufefd\035\ufefd\040\ufefd" +
 84.1010 +    "\041\ufefd\046\ufefd\052\ufefd\054\ufefd\061\ufefd\065\ufefd\067" +
 84.1011 +    "\ufefd\074\ufefd\075\ufefd\105\ufefd\111\ufefd\112\ufefd\144\ufefd" +
 84.1012 +    "\150\ufefd\153\ufefd\001\002\000\074\003\ufe62\004\ufe62\010" +
 84.1013 +    "\ufe62\016\ufe62\021\ufe62\022\ufe62\023\ufe62\027\ufe62\030\ufe62" +
 84.1014 +    "\031\ufe62\033\ufe62\034\ufe62\035\ufe62\040\ufe62\041\ufe62\046" +
 84.1015 +    "\ufe62\052\ufe62\054\ufe62\061\ufe62\065\ufe62\067\ufe62\074\ufe62" +
 84.1016 +    "\075\ufe62\105\ufe62\111\ufe62\112\ufe62\144\ufe62\150\ufe62\153" +
 84.1017 +    "\ufe62\001\002\000\004\150\045\001\002\000\006\150\045" +
 84.1018 +    "\153\205\001\002\000\034\005\213\050\224\051\200\052" +
 84.1019 +    "\227\107\u01b3\117\204\122\175\124\217\147\215\150\045" +
 84.1020 +    "\151\177\152\231\153\205\001\002\000\074\003\ufef1\004" +
 84.1021 +    "\ufef1\010\ufef1\016\ufef1\021\ufef1\022\ufef1\023\ufef1\027\ufef1" +
 84.1022 +    "\030\ufef1\031\ufef1\033\ufef1\034\ufef1\035\ufef1\040\ufef1\041" +
 84.1023 +    "\ufef1\046\ufef1\052\ufef1\054\ufef1\061\ufef1\065\ufef1\067\ufef1" +
 84.1024 +    "\074\ufef1\075\ufef1\105\ufef1\111\ufef1\112\ufef1\144\ufef1\150" +
 84.1025 +    "\ufef1\153\ufef1\001\002\000\004\150\u01b0\001\002\000\014" +
 84.1026 +    "\016\ufed4\022\u0196\035\u0198\046\ufede\112\u019b\001\002\000" +
 84.1027 +    "\074\003\uff00\004\uff00\010\uff00\016\uff00\021\uff00\022\uff00" +
 84.1028 +    "\023\uff00\027\uff00\030\uff00\031\uff00\033\uff00\034\uff00\035" +
 84.1029 +    "\uff00\040\uff00\041\uff00\046\uff00\052\uff00\054\uff00\061\uff00" +
 84.1030 +    "\065\uff00\067\uff00\074\uff00\075\uff00\105\uff00\111\uff00\112" +
 84.1031 +    "\uff00\144\uff00\150\uff00\153\uff00\001\002\000\056\003\u017e" +
 84.1032 +    "\004\u017d\010\u0183\016\ufee0\021\u0169\022\ufee0\023\u0185\034" +
 84.1033 +    "\u0176\035\ufee0\040\u0184\041\u0177\046\ufee0\052\u0180\061\004" +
 84.1034 +    "\065\u017c\067\u018f\074\u0164\075\u0175\112\ufee0\144\u0187\150" +
 84.1035 +    "\u0190\153\205\001\002\000\074\003\ufefa\004\ufefa\010\ufefa" +
 84.1036 +    "\016\ufefa\021\ufefa\022\ufefa\023\ufefa\027\ufefa\030\ufefa\031" +
 84.1037 +    "\ufefa\033\ufefa\034\ufefa\035\ufefa\040\ufefa\041\ufefa\046\ufefa" +
 84.1038 +    "\052\ufefa\054\ufefa\061\ufefa\065\ufefa\067\ufefa\074\ufefa\075" +
 84.1039 +    "\ufefa\105\ufefa\111\ufefa\112\ufefa\144\ufefa\150\ufefa\153\ufefa" +
 84.1040 +    "\001\002\000\074\003\ufef9\004\ufef9\010\ufef9\016\ufef9\021" +
 84.1041 +    "\ufef9\022\ufef9\023\ufef9\027\ufef9\030\ufef9\031\ufef9\033\ufef9" +
 84.1042 +    "\034\ufef9\035\ufef9\040\ufef9\041\ufef9\046\ufef9\052\ufef9\054" +
 84.1043 +    "\ufef9\061\ufef9\065\ufef9\067\ufef9\074\ufef9\075\ufef9\105\ufef9" +
 84.1044 +    "\111\ufef9\112\ufef9\144\ufef9\150\ufef9\153\ufef9\001\002\000" +
 84.1045 +    "\074\003\uff05\004\uff05\010\uff05\016\uff05\021\uff05\022\uff05" +
 84.1046 +    "\023\uff05\027\uff05\030\uff05\031\uff05\033\uff05\034\uff05\035" +
 84.1047 +    "\uff05\040\uff05\041\uff05\046\uff05\052\uff05\054\uff05\061\uff05" +
 84.1048 +    "\065\uff05\067\uff05\074\uff05\075\uff05\105\uff05\111\uff05\112" +
 84.1049 +    "\uff05\144\uff05\150\uff05\153\uff05\001\002\000\074\003\uff01" +
 84.1050 +    "\004\uff01\010\uff01\016\uff01\021\uff01\022\uff01\023\uff01\027" +
 84.1051 +    "\uff01\030\uff01\031\uff01\033\uff01\034\uff01\035\uff01\040\uff01" +
 84.1052 +    "\041\uff01\046\uff01\052\uff01\054\uff01\061\uff01\065\uff01\067" +
 84.1053 +    "\uff01\074\uff01\075\uff01\105\uff01\111\uff01\112\uff01\144\uff01" +
 84.1054 +    "\150\uff01\153\uff01\001\002\000\010\130\ufecd\150\045\153" +
 84.1055 +    "\205\001\002\000\016\116\uff59\117\uff59\125\uff59\127\u0191" +
 84.1056 +    "\130\uff59\140\uff59\001\002\000\014\016\ufedf\022\ufedf\035" +
 84.1057 +    "\ufedf\046\ufedf\112\ufedf\001\002\000\014\111\ufecc\116\u0122" +
 84.1058 +    "\117\233\125\235\130\ufecc\001\002\000\004\130\u0194\001" +
 84.1059 +    "\002\000\074\003\ufe2c\004\ufe2c\010\ufe2c\016\ufe2c\021\ufe2c" +
 84.1060 +    "\022\ufe2c\023\ufe2c\027\ufe2c\030\ufe2c\031\ufe2c\033\ufe2c\034" +
 84.1061 +    "\ufe2c\035\ufe2c\040\ufe2c\041\ufe2c\046\ufe2c\052\ufe2c\054\ufe2c" +
 84.1062 +    "\061\ufe2c\065\ufe2c\067\ufe2c\074\ufe2c\075\ufe2c\105\ufe2c\111" +
 84.1063 +    "\ufe2c\112\ufe2c\144\ufe2c\150\ufe2c\153\ufe2c\001\002\000\074" +
 84.1064 +    "\003\uff04\004\uff04\010\uff04\016\uff04\021\uff04\022\uff04\023" +
 84.1065 +    "\uff04\027\uff04\030\uff04\031\uff04\033\uff04\034\uff04\035\uff04" +
 84.1066 +    "\040\uff04\041\uff04\046\uff04\052\uff04\054\uff04\061\uff04\065" +
 84.1067 +    "\uff04\067\uff04\074\uff04\075\uff04\105\uff04\111\uff04\112\uff04" +
 84.1068 +    "\144\uff04\150\uff04\153\uff04\001\002\000\036\003\105\016" +
 84.1069 +    "\uff7b\035\070\036\027\037\030\060\121\061\004\063\021" +
 84.1070 +    "\064\117\101\076\103\060\106\074\110\015\150\126\001" +
 84.1071 +    "\002\000\004\016\u015c\001\002\000\004\150\u01a9\001\002" +
 84.1072 +    "\000\034\005\ufeda\050\ufeda\051\ufeda\052\ufeda\066\u01a7\117" +
 84.1073 +    "\ufeda\122\ufeda\124\ufeda\147\ufeda\150\ufeda\151\ufeda\152\ufeda" +
 84.1074 +    "\153\ufeda\001\002\000\004\046\u019f\001\002\000\032\005" +
 84.1075 +    "\213\050\224\051\200\052\227\117\204\122\175\124\217" +
 84.1076 +    "\147\215\150\045\151\177\152\231\153\205\001\002\000" +
 84.1077 +    "\022\013\321\044\ufee8\046\ufee8\054\324\105\ufee8\114\322" +
 84.1078 +    "\130\ufee8\135\ufee8\001\002\000\004\046\ufedd\001\002\000" +
 84.1079 +    "\010\130\ufed7\150\045\153\205\001\002\000\056\003\u017e" +
 84.1080 +    "\004\u017d\010\u0183\016\ufee0\021\u0169\022\ufee0\023\u0185\034" +
 84.1081 +    "\u0176\035\ufee0\040\u0184\041\u0177\046\ufee0\052\u0180\061\004" +
 84.1082 +    "\065\u017c\067\u018f\074\u0164\075\u0175\112\ufee0\144\u0187\150" +
 84.1083 +    "\u0190\153\205\001\002\000\060\003\u017e\004\u017d\010\u0183" +
 84.1084 +    "\016\ufee0\021\u0169\022\ufee0\023\u0185\031\u01a2\034\u0176\035" +
 84.1085 +    "\ufee0\040\u0184\041\u0177\046\ufee0\052\u0180\061\004\065\u017c" +
 84.1086 +    "\067\u018f\074\u0164\075\u0175\112\ufee0\144\u0187\150\u0190\153" +
 84.1087 +    "\205\001\002\000\074\003\uff06\004\uff06\010\uff06\016\uff06" +
 84.1088 +    "\021\uff06\022\uff06\023\uff06\027\uff06\030\uff06\031\uff06\033" +
 84.1089 +    "\uff06\034\uff06\035\uff06\040\uff06\041\uff06\046\uff06\052\uff06" +
 84.1090 +    "\054\uff06\061\uff06\065\uff06\067\uff06\074\uff06\075\uff06\105" +
 84.1091 +    "\uff06\111\uff06\112\uff06\144\uff06\150\uff06\153\uff06\001\002" +
 84.1092 +    "\000\004\046\u01a3\001\002\000\010\130\ufed8\150\ufed8\153" +
 84.1093 +    "\ufed8\001\002\000\004\130\u01a5\001\002\000\074\003\ufee1" +
 84.1094 +    "\004\ufee1\010\ufee1\016\ufee1\021\ufee1\022\ufee1\023\ufee1\027" +
 84.1095 +    "\ufee1\030\ufee1\031\ufee1\033\ufee1\034\ufee1\035\ufee1\040\ufee1" +
 84.1096 +    "\041\ufee1\046\ufee1\052\ufee1\054\ufee1\061\ufee1\065\ufee1\067" +
 84.1097 +    "\ufee1\074\ufee1\075\ufee1\105\ufee1\111\ufee1\112\ufee1\144\ufee1" +
 84.1098 +    "\150\ufee1\153\ufee1\001\002\000\032\005\213\050\224\051" +
 84.1099 +    "\200\052\227\117\204\122\175\124\217\147\215\150\045" +
 84.1100 +    "\151\177\152\231\153\205\001\002\000\032\005\ufed9\050" +
 84.1101 +    "\ufed9\051\ufed9\052\ufed9\117\ufed9\122\ufed9\124\ufed9\147\ufed9" +
 84.1102 +    "\150\ufed9\151\ufed9\152\ufed9\153\ufed9\001\002\000\004\046" +
 84.1103 +    "\ufedc\001\002\000\004\042\u01aa\001\002\000\034\005\ufedb" +
 84.1104 +    "\050\ufedb\051\ufedb\052\ufedb\066\ufedb\117\ufedb\122\ufedb\124" +
 84.1105 +    "\ufedb\147\ufedb\150\ufedb\151\ufedb\152\ufedb\153\ufedb\001\002" +
 84.1106 +    "\000\004\031\u01ac\001\002\000\010\130\ufed7\150\045\153" +
 84.1107 +    "\205\001\002\000\004\130\u01ae\001\002\000\074\003\ufed5" +
 84.1108 +    "\004\ufed5\010\ufed5\016\ufed5\021\ufed5\022\ufed5\023\ufed5\027" +
 84.1109 +    "\ufed5\030\ufed5\031\ufed5\033\ufed5\034\ufed5\035\ufed5\040\ufed5" +
 84.1110 +    "\041\ufed5\046\ufed5\052\ufed5\054\ufed5\061\ufed5\065\ufed5\067" +
 84.1111 +    "\ufed5\074\ufed5\075\ufed5\105\ufed5\111\ufed5\112\ufed5\144\ufed5" +
 84.1112 +    "\150\ufed5\153\ufed5\001\002\000\004\016\ufed3\001\002\000" +
 84.1113 +    "\004\145\u01b1\001\002\000\056\003\ufeee\004\ufeee\010\ufeee" +
 84.1114 +    "\016\ufeee\021\ufeee\022\ufeee\023\ufeee\034\ufeee\035\ufeee\040" +
 84.1115 +    "\ufeee\041\ufeee\046\ufeee\052\ufeee\061\ufeee\065\ufeee\067\ufeee" +
 84.1116 +    "\074\ufeee\075\ufeee\112\ufeee\144\ufeee\150\ufeee\153\ufeee\001" +
 84.1117 +    "\002\000\012\013\321\054\324\114\322\130\u01b6\001\002" +
 84.1118 +    "\000\032\005\213\050\224\051\200\052\227\117\204\122" +
 84.1119 +    "\175\124\217\147\215\150\045\151\177\152\231\153\205" +
 84.1120 +    "\001\002\000\012\013\321\054\324\114\322\130\u01b5\001" +
 84.1121 +    "\002\000\074\003\ufe66\004\ufe66\010\ufe66\016\ufe66\021\ufe66" +
 84.1122 +    "\022\ufe66\023\ufe66\027\ufe66\030\ufe66\031\ufe66\033\ufe66\034" +
 84.1123 +    "\ufe66\035\ufe66\040\ufe66\041\ufe66\046\ufe66\052\ufe66\054\ufe66" +
 84.1124 +    "\061\ufe66\065\ufe66\067\ufe66\074\ufe66\075\ufe66\105\ufe66\111" +
 84.1125 +    "\ufe66\112\ufe66\144\ufe66\150\ufe66\153\ufe66\001\002\000\074" +
 84.1126 +    "\003\ufe67\004\ufe67\010\ufe67\016\ufe67\021\ufe67\022\ufe67\023" +
 84.1127 +    "\ufe67\027\ufe67\030\ufe67\031\ufe67\033\ufe67\034\ufe67\035\ufe67" +
 84.1128 +    "\040\ufe67\041\ufe67\046\ufe67\052\ufe67\054\ufe67\061\ufe67\065" +
 84.1129 +    "\ufe67\067\ufe67\074\ufe67\075\ufe67\105\ufe67\111\ufe67\112\ufe67" +
 84.1130 +    "\144\ufe67\150\ufe67\153\ufe67\001\002\000\012\116\u0122\117" +
 84.1131 +    "\233\125\235\130\u01b8\001\002\000\074\003\ufec7\004\ufec7" +
 84.1132 +    "\010\ufec7\016\ufec7\021\ufec7\022\ufec7\023\ufec7\027\ufec7\030" +
 84.1133 +    "\ufec7\031\ufec7\033\ufec7\034\ufec7\035\ufec7\040\ufec7\041\ufec7" +
 84.1134 +    "\046\ufec7\052\ufec7\054\ufec7\061\ufec7\065\ufec7\067\ufec7\074" +
 84.1135 +    "\ufec7\075\ufec7\105\ufec7\111\ufec7\112\ufec7\144\ufec7\150\ufec7" +
 84.1136 +    "\153\ufec7\001\002\000\010\026\ufebe\117\u01bc\130\ufebe\001" +
 84.1137 +    "\002\000\010\026\ufe69\117\ufe69\130\ufe69\001\002\000\006" +
 84.1138 +    "\026\ufe6a\130\ufe6a\001\002\000\034\003\u012f\005\213\050" +
 84.1139 +    "\224\051\200\052\227\117\204\122\175\124\217\147\215" +
 84.1140 +    "\150\u0131\151\177\152\231\153\205\001\002\000\012\013" +
 84.1141 +    "\321\054\324\114\322\120\u01be\001\002\000\010\026\ufe68" +
 84.1142 +    "\117\ufe68\130\ufe68\001\002\000\074\003\ufeed\004\ufeed\010" +
 84.1143 +    "\ufeed\016\ufeed\021\ufeed\022\ufeed\023\ufeed\027\ufeed\030\ufeed" +
 84.1144 +    "\031\ufeed\033\ufeed\034\ufeed\035\ufeed\040\ufeed\041\ufeed\046" +
 84.1145 +    "\ufeed\052\ufeed\054\ufeed\061\ufeed\065\ufeed\067\ufeed\074\ufeed" +
 84.1146 +    "\075\ufeed\105\ufeed\111\ufeed\112\ufeed\144\ufeed\150\ufeed\153" +
 84.1147 +    "\ufeed\001\002\000\006\031\ufecf\111\u01c3\001\002\000\004" +
 84.1148 +    "\111\u01c3\001\002\000\004\031\ufed1\001\002\000\010\055" +
 84.1149 +    "\u01c5\150\u01c7\153\205\001\002\000\006\031\ufe34\111\ufe34" +
 84.1150 +    "\001\002\000\006\134\ufe2d\135\ufe2d\001\002\000\014\116" +
 84.1151 +    "\u0122\117\233\125\235\134\ufe2e\135\ufe2e\001\002\000\016" +
 84.1152 +    "\116\uff59\117\uff59\125\uff59\127\u01ce\134\uff59\135\uff59\001" +
 84.1153 +    "\002\000\006\134\u01ca\135\u01cb\001\002\000\006\134\ufe30" +
 84.1154 +    "\135\ufe30\001\002\000\010\055\u01c5\150\045\153\205\001" +
 84.1155 +    "\002\000\056\003\u017e\004\u017d\010\u0183\016\ufee0\021\u0169" +
 84.1156 +    "\022\ufee0\023\u0185\034\u0176\035\ufee0\040\u0184\041\u0177\046" +
 84.1157 +    "\ufee0\052\u0180\061\004\065\u017c\067\u018f\074\u0164\075\u0175" +
 84.1158 +    "\112\ufee0\144\u0187\150\u0190\153\205\001\002\000\062\003" +
 84.1159 +    "\u017e\004\u017d\010\u0183\016\ufee0\021\u0169\022\ufee0\023\u0185" +
 84.1160 +    "\031\ufe32\034\u0176\035\ufee0\040\u0184\041\u0177\046\ufee0\052" +
 84.1161 +    "\u0180\061\004\065\u017c\067\u018f\074\u0164\075\u0175\111\ufe32" +
 84.1162 +    "\112\ufee0\144\u0187\150\u0190\153\205\001\002\000\006\134" +
 84.1163 +    "\ufe2f\135\ufe2f\001\002\000\010\055\u01c5\150\045\153\205" +
 84.1164 +    "\001\002\000\006\134\u01ca\135\u01d0\001\002\000\056\003" +
 84.1165 +    "\u017e\004\u017d\010\u0183\016\ufee0\021\u0169\022\ufee0\023\u0185" +
 84.1166 +    "\034\u0176\035\ufee0\040\u0184\041\u0177\046\ufee0\052\u0180\061" +
 84.1167 +    "\004\065\u017c\067\u018f\074\u0164\075\u0175\112\ufee0\144\u0187" +
 84.1168 +    "\150\u0190\153\205\001\002\000\062\003\u017e\004\u017d\010" +
 84.1169 +    "\u0183\016\ufee0\021\u0169\022\ufee0\023\u0185\031\ufe31\034\u0176" +
 84.1170 +    "\035\ufee0\040\u0184\041\u0177\046\ufee0\052\u0180\061\004\065" +
 84.1171 +    "\u017c\067\u018f\074\u0164\075\u0175\111\ufe31\112\ufee0\144\u0187" +
 84.1172 +    "\150\u0190\153\205\001\002\000\006\031\ufe33\111\ufe33\001" +
 84.1173 +    "\002\000\074\003\ufef5\004\ufef5\010\ufef5\016\ufef5\021\ufef5" +
 84.1174 +    "\022\ufef5\023\ufef5\027\ufef5\030\ufef5\031\ufef5\033\ufef5\034" +
 84.1175 +    "\ufef5\035\ufef5\040\ufef5\041\ufef5\046\ufef5\052\ufef5\054\ufef5" +
 84.1176 +    "\061\ufef5\065\ufef5\067\ufef5\074\ufef5\075\ufef5\105\ufef5\111" +
 84.1177 +    "\ufef5\112\ufef5\144\ufef5\150\ufef5\153\ufef5\001\002\000\014" +
 84.1178 +    "\116\u0122\117\233\123\ufe51\125\235\130\ufe51\001\002\000" +
 84.1179 +    "\006\123\u01d6\130\u01d7\001\002\000\006\150\045\153\205" +
 84.1180 +    "\001\002\000\074\003\ufe52\004\ufe52\010\ufe52\016\ufe52\021" +
 84.1181 +    "\ufe52\022\ufe52\023\ufe52\027\ufe52\030\ufe52\031\ufe52\033\ufe52" +
 84.1182 +    "\034\ufe52\035\ufe52\040\ufe52\041\ufe52\046\ufe52\052\ufe52\054" +
 84.1183 +    "\ufe52\061\ufe52\065\ufe52\067\ufe52\074\ufe52\075\ufe52\105\ufe52" +
 84.1184 +    "\111\ufe52\112\ufe52\144\ufe52\150\ufe52\153\ufe52\001\002\000" +
 84.1185 +    "\014\116\u0122\117\233\123\ufe50\125\235\130\ufe50\001\002" +
 84.1186 +    "\000\074\003\ufec9\004\ufec9\010\ufec9\016\ufec9\021\ufec9\022" +
 84.1187 +    "\ufec9\023\ufec9\027\ufec9\030\ufec9\031\ufec9\033\ufec9\034\ufec9" +
 84.1188 +    "\035\ufec9\040\ufec9\041\ufec9\046\ufec9\052\ufec9\054\ufec9\061" +
 84.1189 +    "\ufec9\065\ufec9\067\ufec9\074\ufec9\075\ufec9\105\ufec9\111\ufec9" +
 84.1190 +    "\112\ufec9\144\ufec9\150\ufec9\153\ufec9\001\002\000\012\013" +
 84.1191 +    "\321\054\324\114\322\130\u01db\001\002\000\074\003\ufec8" +
 84.1192 +    "\004\ufec8\010\ufec8\016\ufec8\021\ufec8\022\ufec8\023\ufec8\027" +
 84.1193 +    "\ufec8\030\ufec8\031\ufec8\033\ufec8\034\ufec8\035\ufec8\040\ufec8" +
 84.1194 +    "\041\ufec8\046\ufec8\052\ufec8\054\ufec8\061\ufec8\065\ufec8\067" +
 84.1195 +    "\ufec8\074\ufec8\075\ufec8\105\ufec8\111\ufec8\112\ufec8\144\ufec8" +
 84.1196 +    "\150\ufec8\153\ufec8\001\002\000\056\003\u017e\004\u017d\010" +
 84.1197 +    "\u0183\016\ufee0\021\u0169\022\ufee0\023\u0185\034\u0176\035\ufee0" +
 84.1198 +    "\040\u0184\041\u0177\046\ufee0\052\u0180\061\004\065\u017c\067" +
 84.1199 +    "\u018f\074\u0164\075\u0175\112\ufee0\144\u0187\150\u0190\153\205" +
 84.1200 +    "\001\002\000\074\003\ufe6c\004\ufe6c\010\ufe6c\016\ufe6c\021" +
 84.1201 +    "\ufe6c\022\ufe6c\023\ufe6c\027\ufe6c\030\ufe6c\031\ufe6c\033\ufe6c" +
 84.1202 +    "\034\ufe6c\035\ufe6c\040\ufe6c\041\ufe6c\046\ufe6c\052\ufe6c\054" +
 84.1203 +    "\ufe6c\061\ufe6c\065\ufe6c\067\ufe6c\074\ufe6c\075\ufe6c\105\ufe6c" +
 84.1204 +    "\111\ufe6c\112\ufe6c\144\ufe6c\150\ufe6c\153\ufe6c\001\002\000" +
 84.1205 +    "\004\031\u01df\001\002\000\010\130\ufed7\150\045\153\205" +
 84.1206 +    "\001\002\000\004\130\u01e1\001\002\000\074\003\ufe6b\004" +
 84.1207 +    "\ufe6b\010\ufe6b\016\ufe6b\021\ufe6b\022\ufe6b\023\ufe6b\027\ufe6b" +
 84.1208 +    "\030\ufe6b\031\ufe6b\033\ufe6b\034\ufe6b\035\ufe6b\040\ufe6b\041" +
 84.1209 +    "\ufe6b\046\ufe6b\052\ufe6b\054\ufe6b\061\ufe6b\065\ufe6b\067\ufe6b" +
 84.1210 +    "\074\ufe6b\075\ufe6b\105\ufe6b\111\ufe6b\112\ufe6b\144\ufe6b\150" +
 84.1211 +    "\ufe6b\153\ufe6b\001\002\000\010\027\u01e6\030\u01e7\031\ufee7" +
 84.1212 +    "\001\002\000\004\105\u01e4\001\002\000\056\003\u017e\004" +
 84.1213 +    "\u017d\010\u0183\016\ufee0\021\u0169\022\ufee0\023\u0185\034\u0176" +
 84.1214 +    "\035\ufee0\040\u0184\041\u0177\046\ufee0\052\u0180\061\004\065" +
 84.1215 +    "\u017c\067\u018f\074\u0164\075\u0175\112\ufee0\144\u0187\150\u0190" +
 84.1216 +    "\153\205\001\002\000\064\003\u017e\004\u017d\010\u0183\016" +
 84.1217 +    "\ufee0\021\u0169\022\ufee0\023\u0185\027\ufeea\030\ufeea\031\ufeea" +
 84.1218 +    "\034\u0176\035\ufee0\040\u0184\041\u0177\046\ufee0\052\u0180\061" +
 84.1219 +    "\004\065\u017c\067\u018f\074\u0164\075\u0175\112\ufee0\144\u0187" +
 84.1220 +    "\150\u0190\153\205\001\002\000\056\003\u017e\004\u017d\010" +
 84.1221 +    "\u0183\016\ufee0\021\u0169\022\ufee0\023\u0185\034\u0176\035\ufee0" +
 84.1222 +    "\040\u0184\041\u0177\046\ufee0\052\u0180\061\004\065\u017c\067" +
 84.1223 +    "\u018f\074\u0164\075\u0175\112\ufee0\144\u0187\150\u0190\153\205" +
 84.1224 +    "\001\002\000\032\005\213\050\224\051\200\052\227\117" +
 84.1225 +    "\204\122\175\124\217\147\215\150\045\151\177\152\231" +
 84.1226 +    "\153\205\001\002\000\004\031\u01e9\001\002\000\004\041" +
 84.1227 +    "\u01ea\001\002\000\004\130\u01eb\001\002\000\074\003\ufeeb" +
 84.1228 +    "\004\ufeeb\010\ufeeb\016\ufeeb\021\ufeeb\022\ufeeb\023\ufeeb\027" +
 84.1229 +    "\ufeeb\030\ufeeb\031\ufeeb\033\ufeeb\034\ufeeb\035\ufeeb\040\ufeeb" +
 84.1230 +    "\041\ufeeb\046\ufeeb\052\ufeeb\054\ufeeb\061\ufeeb\065\ufeeb\067" +
 84.1231 +    "\ufeeb\074\ufeeb\075\ufeeb\105\ufeeb\111\ufeeb\112\ufeeb\144\ufeeb" +
 84.1232 +    "\150\ufeeb\153\ufeeb\001\002\000\004\105\u01ed\001\002\000" +
 84.1233 +    "\056\003\u017e\004\u017d\010\u0183\016\ufee0\021\u0169\022\ufee0" +
 84.1234 +    "\023\u0185\034\u0176\035\ufee0\040\u0184\041\u0177\046\ufee0\052" +
 84.1235 +    "\u0180\061\004\065\u017c\067\u018f\074\u0164\075\u0175\112\ufee0" +
 84.1236 +    "\144\u0187\150\u0190\153\205\001\002\000\064\003\u017e\004" +
 84.1237 +    "\u017d\010\u0183\016\ufee0\021\u0169\022\ufee0\023\u0185\027\ufee9" +
 84.1238 +    "\030\ufee9\031\ufee9\034\u0176\035\ufee0\040\u0184\041\u0177\046" +
 84.1239 +    "\ufee0\052\u0180\061\004\065\u017c\067\u018f\074\u0164\075\u0175" +
 84.1240 +    "\112\ufee0\144\u0187\150\u0190\153\205\001\002\000\060\003" +
 84.1241 +    "\u017e\004\u017d\010\u0183\016\ufee0\021\u0169\022\ufee0\023\u0185" +
 84.1242 +    "\031\ufee6\034\u0176\035\ufee0\040\u0184\041\u0177\046\ufee0\052" +
 84.1243 +    "\u0180\061\004\065\u017c\067\u018f\074\u0164\075\u0175\112\ufee0" +
 84.1244 +    "\144\u0187\150\u0190\153\205\001\002\000\006\111\u01f2\130" +
 84.1245 +    "\ufecb\001\002\000\004\130\u01f4\001\002\000\032\005\213" +
 84.1246 +    "\050\224\051\200\052\227\117\204\122\175\124\217\147" +
 84.1247 +    "\215\150\045\151\177\152\231\153\205\001\002\000\004" +
 84.1248 +    "\130\ufeca\001\002\000\074\003\ufece\004\ufece\010\ufece\016" +
 84.1249 +    "\ufece\021\ufece\022\ufece\023\ufece\027\ufece\030\ufece\031\ufece" +
 84.1250 +    "\033\ufece\034\ufece\035\ufece\040\ufece\041\ufece\046\ufece\052" +
 84.1251 +    "\ufece\054\ufece\061\ufece\065\ufece\067\ufece\074\ufece\075\ufece" +
 84.1252 +    "\105\ufece\111\ufece\112\ufece\144\ufece\150\ufece\153\ufece\001" +
 84.1253 +    "\002\000\066\003\u017e\004\u017d\010\u0183\016\ufee0\021\u0169" +
 84.1254 +    "\022\ufee0\023\u0185\027\ufe54\031\ufe54\034\u0176\035\ufee0\040" +
 84.1255 +    "\u0184\041\u0177\046\ufee0\052\u0180\054\ufe54\061\004\065\u017c" +
 84.1256 +    "\067\u018f\074\u0164\075\u0175\105\ufe54\112\ufee0\144\u0187\150" +
 84.1257 +    "\u0190\153\205\001\002\000\064\003\u017e\004\u017d\010\u0183" +
 84.1258 +    "\016\ufee0\021\u0169\022\ufee0\023\u0185\027\ufe54\034\u0176\035" +
 84.1259 +    "\ufee0\040\u0184\041\u0177\046\ufee0\052\u0180\054\ufe54\061\004" +
 84.1260 +    "\065\u017c\067\u018f\074\u0164\075\u0175\105\ufe54\112\ufee0\144" +
 84.1261 +    "\u0187\150\u0190\153\205\001\002\000\010\027\ufe60\031\ufe60" +
 84.1262 +    "\054\ufe60\001\002\000\004\105\u020f\001\002\000\064\003" +
 84.1263 +    "\ufe6d\004\ufe6d\010\ufe6d\016\ufe6d\021\ufe6d\022\ufe6d\023\ufe6d" +
 84.1264 +    "\027\ufe6d\034\ufe6d\035\ufe6d\040\ufe6d\041\ufe6d\046\ufe6d\052" +
 84.1265 +    "\ufe6d\054\ufe6d\061\ufe6d\065\ufe6d\067\ufe6d\074\ufe6d\075\ufe6d" +
 84.1266 +    "\105\ufe6d\112\ufe6d\144\ufe6d\150\ufe6d\153\ufe6d\001\002\000" +
 84.1267 +    "\004\130\u020e\001\002\000\032\005\213\050\224\051\200" +
 84.1268 +    "\052\227\117\204\122\175\124\217\147\215\150\045\151" +
 84.1269 +    "\177\152\231\153\205\001\002\000\064\003\u017e\004\u017d" +
 84.1270 +    "\010\u0183\016\ufee0\021\u0169\022\ufee0\023\u0185\027\ufe54\031" +
 84.1271 +    "\ufe54\034\u0176\035\ufee0\040\u0184\041\u0177\046\ufee0\052\u0180" +
 84.1272 +    "\054\ufe54\061\004\065\u017c\067\u018f\074\u0164\075\u0175\112" +
 84.1273 +    "\ufee0\144\u0187\150\u0190\153\205\001\002\000\010\027\ufe5e" +
 84.1274 +    "\031\ufe5e\054\ufe5e\001\002\000\012\116\u0122\117\233\125" +
 84.1275 +    "\235\130\u01ff\001\002\000\074\003\ufeb0\004\ufeb0\010\ufeb0" +
 84.1276 +    "\016\ufeb0\021\ufeb0\022\ufeb0\023\ufeb0\027\ufeb0\030\ufeb0\031" +
 84.1277 +    "\ufeb0\033\ufeb0\034\ufeb0\035\ufeb0\040\ufeb0\041\ufeb0\046\ufeb0" +
 84.1278 +    "\052\ufeb0\054\ufeb0\061\ufeb0\065\ufeb0\067\ufeb0\074\ufeb0\075" +
 84.1279 +    "\ufeb0\105\ufeb0\111\ufeb0\112\ufeb0\144\ufeb0\150\ufeb0\153\ufeb0" +
 84.1280 +    "\001\002\000\010\027\u01e6\031\ufee7\054\u0202\001\002\000" +
 84.1281 +    "\004\031\u0207\001\002\000\012\010\u0183\023\u0185\104\u01fa" +
 84.1282 +    "\111\u01fb\001\002\000\064\003\u017e\004\u017d\010\u0183\016" +
 84.1283 +    "\ufee0\021\u0169\022\ufee0\023\u0185\027\ufe54\031\ufe54\034\u0176" +
 84.1284 +    "\035\ufee0\040\u0184\041\u0177\046\ufee0\052\u0180\054\ufe54\061" +
 84.1285 +    "\004\065\u017c\067\u018f\074\u0164\075\u0175\112\ufee0\144\u0187" +
 84.1286 +    "\150\u0190\153\205\001\002\000\010\027\ufe5d\031\ufe5d\054" +
 84.1287 +    "\ufe5d\001\002\000\010\027\ufe5b\031\ufe5b\054\ufe5b\001\002" +
 84.1288 +    "\000\066\003\u017e\004\u017d\010\u0183\016\ufee0\021\u0169\022" +
 84.1289 +    "\ufee0\023\u0185\027\ufe53\031\ufe53\034\u0176\035\ufee0\040\u0184" +
 84.1290 +    "\041\u0177\046\ufee0\052\u0180\054\ufe53\061\004\065\u017c\067" +
 84.1291 +    "\u018f\074\u0164\075\u0175\105\ufe53\112\ufee0\144\u0187\150\u0190" +
 84.1292 +    "\153\205\001\002\000\004\075\u0208\001\002\000\004\130" +
 84.1293 +    "\u0209\001\002\000\074\003\ufe61\004\ufe61\010\ufe61\016\ufe61" +
 84.1294 +    "\021\ufe61\022\ufe61\023\ufe61\027\ufe61\030\ufe61\031\ufe61\033" +
 84.1295 +    "\ufe61\034\ufe61\035\ufe61\040\ufe61\041\ufe61\046\ufe61\052\ufe61" +
 84.1296 +    "\054\ufe61\061\ufe61\065\ufe61\067\ufe61\074\ufe61\075\ufe61\105" +
 84.1297 +    "\ufe61\111\ufe61\112\ufe61\144\ufe61\150\ufe61\153\ufe61\001\002" +
 84.1298 +    "\000\010\027\ufe5c\031\ufe5c\054\ufe5c\001\002\000\004\135" +
 84.1299 +    "\u020c\001\002\000\010\010\u0183\023\u0185\104\u01fa\001\002" +
 84.1300 +    "\000\010\027\ufe5f\031\ufe5f\054\ufe5f\001\002\000\010\027" +
 84.1301 +    "\ufe5a\031\ufe5a\054\ufe5a\001\002\000\004\004\u0210\001\002" +
 84.1302 +    "\000\056\003\u017e\004\u017d\010\u0183\016\ufee0\021\u0169\022" +
 84.1303 +    "\ufee0\023\u0185\034\u0176\035\ufee0\040\u0184\041\u0177\046\ufee0" +
 84.1304 +    "\052\u0180\061\004\065\u017c\067\u018f\074\u0164\075\u0175\112" +
 84.1305 +    "\ufee0\144\u0187\150\u0190\153\205\001\002\000\060\003\u017e" +
 84.1306 +    "\004\u017d\010\u0183\016\ufee0\021\u0169\022\ufee0\023\u0185\031" +
 84.1307 +    "\u0212\034\u0176\035\ufee0\040\u0184\041\u0177\046\ufee0\052\u0180" +
 84.1308 +    "\061\004\065\u017c\067\u018f\074\u0164\075\u0175\112\ufee0\144" +
 84.1309 +    "\u0187\150\u0190\153\205\001\002\000\004\075\u0213\001\002" +
 84.1310 +    "\000\004\130\u0214\001\002\000\074\003\ufe57\004\ufe57\010" +
 84.1311 +    "\ufe57\016\ufe57\021\ufe57\022\ufe57\023\ufe57\027\ufe57\030\ufe57" +
 84.1312 +    "\031\ufe57\033\ufe57\034\ufe57\035\ufe57\040\ufe57\041\ufe57\046" +
 84.1313 +    "\ufe57\052\ufe57\054\ufe57\061\ufe57\065\ufe57\067\ufe57\074\ufe57" +
 84.1314 +    "\075\ufe57\105\ufe57\111\ufe57\112\ufe57\144\ufe57\150\ufe57\153" +
 84.1315 +    "\ufe57\001\002\000\010\027\u0216\054\u0217\105\ufe58\001\002" +
 84.1316 +    "\000\056\003\u017e\004\u017d\010\u0183\016\ufee0\021\u0169\022" +
 84.1317 +    "\ufee0\023\u0185\034\u0176\035\ufee0\040\u0184\041\u0177\046\ufee0" +
 84.1318 +    "\052\u0180\061\004\065\u017c\067\u018f\074\u0164\075\u0175\112" +
 84.1319 +    "\ufee0\144\u0187\150\u0190\153\205\001\002\000\004\023\u0185" +
 84.1320 +    "\001\002\000\060\003\u017e\004\u017d\010\u0183\016\ufee0\021" +
 84.1321 +    "\u0169\022\ufee0\023\u0185\031\ufe54\034\u0176\035\ufee0\040\u0184" +
 84.1322 +    "\041\u0177\046\ufee0\052\u0180\061\004\065\u017c\067\u018f\074" +
 84.1323 +    "\u0164\075\u0175\112\ufee0\144\u0187\150\u0190\153\205\001\002" +
 84.1324 +    "\000\004\031\u021a\001\002\000\004\075\u021b\001\002\000" +
 84.1325 +    "\004\130\u021c\001\002\000\074\003\ufe56\004\ufe56\010\ufe56" +
 84.1326 +    "\016\ufe56\021\ufe56\022\ufe56\023\ufe56\027\ufe56\030\ufe56\031" +
 84.1327 +    "\ufe56\033\ufe56\034\ufe56\035\ufe56\040\ufe56\041\ufe56\046\ufe56" +
 84.1328 +    "\052\ufe56\054\ufe56\061\ufe56\065\ufe56\067\ufe56\074\ufe56\075" +
 84.1329 +    "\ufe56\105\ufe56\111\ufe56\112\ufe56\144\ufe56\150\ufe56\153\ufe56" +
 84.1330 +    "\001\002\000\060\003\u017e\004\u017d\010\u0183\016\ufee0\021" +
 84.1331 +    "\u0169\022\ufee0\023\u0185\031\u021e\034\u0176\035\ufee0\040\u0184" +
 84.1332 +    "\041\u0177\046\ufee0\052\u0180\061\004\065\u017c\067\u018f\074" +
 84.1333 +    "\u0164\075\u0175\112\ufee0\144\u0187\150\u0190\153\205\001\002" +
 84.1334 +    "\000\004\075\u021f\001\002\000\004\130\u0220\001\002\000" +
 84.1335 +    "\074\003\ufe55\004\ufe55\010\ufe55\016\ufe55\021\ufe55\022\ufe55" +
 84.1336 +    "\023\ufe55\027\ufe55\030\ufe55\031\ufe55\033\ufe55\034\ufe55\035" +
 84.1337 +    "\ufe55\040\ufe55\041\ufe55\046\ufe55\052\ufe55\054\ufe55\061\ufe55" +
 84.1338 +    "\065\ufe55\067\ufe55\074\ufe55\075\ufe55\105\ufe55\111\ufe55\112" +
 84.1339 +    "\ufe55\144\ufe55\150\ufe55\153\ufe55\001\002\000\012\027\ufe5b" +
 84.1340 +    "\031\ufe5b\054\ufe5b\105\ufe59\001\002\000\032\005\213\050" +
 84.1341 +    "\224\051\200\052\227\117\204\122\175\124\217\147\215" +
 84.1342 +    "\150\045\151\177\152\231\153\205\001\002\000\012\013" +
 84.1343 +    "\321\054\324\114\322\130\u0224\001\002\000\074\003\ufeec" +
 84.1344 +    "\004\ufeec\010\ufeec\016\ufeec\021\ufeec\022\ufeec\023\ufeec\027" +
 84.1345 +    "\ufeec\030\ufeec\031\ufeec\033\ufeec\034\ufeec\035\ufeec\040\ufeec" +
 84.1346 +    "\041\ufeec\046\ufeec\052\ufeec\054\ufeec\061\ufeec\065\ufeec\067" +
 84.1347 +    "\ufeec\074\ufeec\075\ufeec\105\ufeec\111\ufeec\112\ufeec\144\ufeec" +
 84.1348 +    "\150\ufeec\153\ufeec\001\002\000\012\013\321\044\u0226\054" +
 84.1349 +    "\324\114\322\001\002\000\010\031\ufffa\061\ufffa\111\ufffa" +
 84.1350 +    "\001\002\000\010\031\ufee4\061\004\111\ufee4\001\002\000" +
 84.1351 +    "\006\031\u022b\111\u022a\001\002\000\006\031\ufee3\111\ufee3" +
 84.1352 +    "\001\002\000\034\005\213\050\224\051\200\052\227\055" +
 84.1353 +    "\253\117\204\122\175\124\217\147\215\150\045\151\177" +
 84.1354 +    "\152\231\153\205\001\002\000\004\021\u022c\001\002\000" +
 84.1355 +    "\004\130\u022d\001\002\000\074\003\ufee5\004\ufee5\010\ufee5" +
 84.1356 +    "\016\ufee5\021\ufee5\022\ufee5\023\ufee5\027\ufee5\030\ufee5\031" +
 84.1357 +    "\ufee5\033\ufee5\034\ufee5\035\ufee5\040\ufee5\041\ufee5\046\ufee5" +
 84.1358 +    "\052\ufee5\054\ufee5\061\ufee5\065\ufee5\067\ufee5\074\ufee5\075" +
 84.1359 +    "\ufee5\105\ufee5\111\ufee5\112\ufee5\144\ufee5\150\ufee5\153\ufee5" +
 84.1360 +    "\001\002\000\006\134\341\135\u022f\001\002\000\056\003" +
 84.1361 +    "\u017e\004\u017d\010\u0183\016\ufee0\021\u0169\022\ufee0\023\u0185" +
 84.1362 +    "\034\u0176\035\ufee0\040\u0184\041\u0177\046\ufee0\052\u0180\061" +
 84.1363 +    "\004\065\u017c\067\u018f\074\u0164\075\u0175\112\ufee0\144\u0187" +
 84.1364 +    "\150\u0190\153\205\001\002\000\062\003\u017e\004\u017d\010" +
 84.1365 +    "\u0183\016\ufee0\021\u0169\022\ufee0\023\u0185\031\ufee2\034\u0176" +
 84.1366 +    "\035\ufee0\040\u0184\041\u0177\046\ufee0\052\u0180\061\004\065" +
 84.1367 +    "\u017c\067\u018f\074\u0164\075\u0175\111\ufee2\112\ufee0\144\u0187" +
 84.1368 +    "\150\u0190\153\205\001\002\000\014\113\u0233\116\u0122\117" +
 84.1369 +    "\233\125\235\130\u0232\001\002\000\074\003\ufe2b\004\ufe2b" +
 84.1370 +    "\010\ufe2b\016\ufe2b\021\ufe2b\022\ufe2b\023\ufe2b\027\ufe2b\030" +
 84.1371 +    "\ufe2b\031\ufe2b\033\ufe2b\034\ufe2b\035\ufe2b\040\ufe2b\041\ufe2b" +
 84.1372 +    "\046\ufe2b\052\ufe2b\054\ufe2b\061\ufe2b\065\ufe2b\067\ufe2b\074" +
 84.1373 +    "\ufe2b\075\ufe2b\105\ufe2b\111\ufe2b\112\ufe2b\144\ufe2b\150\ufe2b" +
 84.1374 +    "\153\ufe2b\001\002\000\004\004\u0234\001\002\000\004\130" +
 84.1375 +    "\u0235\001\002\000\074\003\ufe2a\004\ufe2a\010\ufe2a\016\ufe2a" +
 84.1376 +    "\021\ufe2a\022\ufe2a\023\ufe2a\027\ufe2a\030\ufe2a\031\ufe2a\033" +
 84.1377 +    "\ufe2a\034\ufe2a\035\ufe2a\040\ufe2a\041\ufe2a\046\ufe2a\052\ufe2a" +
 84.1378 +    "\054\ufe2a\061\ufe2a\065\ufe2a\067\ufe2a\074\ufe2a\075\ufe2a\105" +
 84.1379 +    "\ufe2a\111\ufe2a\112\ufe2a\144\ufe2a\150\ufe2a\153\ufe2a\001\002" +
 84.1380 +    "\000\074\003\ufdfe\004\ufdfe\010\ufdfe\016\ufdfe\021\ufdfe\022" +
 84.1381 +    "\ufdfe\023\ufdfe\027\ufdfe\030\ufdfe\031\ufdfe\033\ufdfe\034\ufdfe" +
 84.1382 +    "\035\ufdfe\040\ufdfe\041\ufdfe\046\ufdfe\052\ufdfe\054\ufdfe\061" +
 84.1383 +    "\ufdfe\065\ufdfe\067\ufdfe\074\ufdfe\075\ufdfe\105\ufdfe\111\ufdfe" +
 84.1384 +    "\112\ufdfe\144\ufdfe\150\ufdfe\153\ufdfe\001\002\000\006\111" +
 84.1385 +    "\ufebe\117\u0239\001\002\000\004\111\u0248\001\002\000\010" +
 84.1386 +    "\003\u012f\035\u0198\150\126\001\002\000\032\005\213\050" +
 84.1387 +    "\224\051\200\052\227\117\204\122\175\124\217\147\215" +
 84.1388 +    "\150\045\151\177\152\231\153\205\001\002\000\004\120" +
 84.1389 +    "\u023c\001\002\000\006\111\ufebe\117\u0134\001\002\000\004" +
 84.1390 +    "\111\u023e\001\002\000\032\005\213\050\224\051\200\052" +
 84.1391 +    "\227\117\204\122\175\124\217\147\215\150\045\151\177" +
 84.1392 +    "\152\231\153\205\001\002\000\006\044\u0241\130\u0240\001" +
 84.1393 +    "\002\000\014\031\ufe71\032\ufe71\036\ufe71\061\ufe71\063\ufe71" +
 84.1394 +    "\001\002\000\036\003\105\016\uff7b\035\070\036\027\037" +
 84.1395 +    "\030\060\121\061\004\063\021\064\117\101\076\103\060" +
 84.1396 +    "\106\074\110\015\150\126\001\002\000\014\031\ufe72\032" +
 84.1397 +    "\ufe72\036\ufe72\061\ufe72\063\ufe72\001\002\000\004\016\u015c" +
 84.1398 +    "\001\002\000\004\031\u0245\001\002\000\010\130\ufed7\150" +
 84.1399 +    "\045\153\205\001\002\000\004\130\u0247\001\002\000\014" +
 84.1400 +    "\031\ufe70\032\ufe70\036\ufe70\061\ufe70\063\ufe70\001\002\000" +
 84.1401 +    "\032\005\213\050\224\051\200\052\227\117\204\122\175" +
 84.1402 +    "\124\217\147\215\150\045\151\177\152\231\153\205\001" +
 84.1403 +    "\002\000\006\044\u0241\130\u0240\001\002\000\014\031\ufe73" +
 84.1404 +    "\032\ufe73\036\ufe73\061\ufe73\063\ufe73\001\002\000\042\003" +
 84.1405 +    "\ufe36\016\ufe36\031\ufe36\035\ufe36\036\ufe36\037\ufe36\060\ufe36" +
 84.1406 +    "\061\ufe36\062\ufe36\063\ufe36\064\ufe36\101\ufe36\103\ufe36\106" +
 84.1407 +    "\ufe36\110\ufe36\150\ufe36\001\002\000\042\003\uffee\016\uffee" +
 84.1408 +    "\031\uffee\035\uffee\036\uffee\037\uffee\060\uffee\061\uffee\062" +
 84.1409 +    "\uffee\063\uffee\064\uffee\101\uffee\103\uffee\106\uffee\110\uffee" +
 84.1410 +    "\150\uffee\001\002\000\050\002\ufec6\003\ufec6\016\ufec6\031" +
 84.1411 +    "\ufec6\035\ufec6\036\ufec6\037\ufec6\060\ufec6\061\ufec6\062\ufec6" +
 84.1412 +    "\063\ufec6\064\ufec6\076\ufec6\101\ufec6\103\ufec6\106\ufec6\110" +
 84.1413 +    "\ufec6\113\ufec6\150\ufec6\001\002\000\006\150\045\153\205" +
 84.1414 +    "\001\002\000\044\003\105\006\u0252\016\uff7b\035\070\036" +
 84.1415 +    "\027\037\030\050\u0253\060\121\061\004\063\021\064\117" +
 84.1416 +    "\076\u0250\101\076\103\060\106\074\110\015\150\126\001" +
 84.1417 +    "\002\000\004\130\u0256\001\002\000\004\130\ufe0b\001\002" +
 84.1418 +    "\000\004\130\u0255\001\002\000\006\150\045\153\205\001" +
 84.1419 +    "\002\000\012\116\u0122\117\233\125\235\130\ufe09\001\002" +
 84.1420 +    "\000\050\002\ufec4\003\ufec4\016\ufec4\031\ufec4\035\ufec4\036" +
 84.1421 +    "\ufec4\037\ufec4\060\ufec4\061\ufec4\062\ufec4\063\ufec4\064\ufec4" +
 84.1422 +    "\076\ufec4\101\ufec4\103\ufec4\106\ufec4\110\ufec4\113\ufec4\150" +
 84.1423 +    "\ufec4\001\002\000\042\003\ufe37\016\ufe37\031\ufe37\035\ufe37" +
 84.1424 +    "\036\ufe37\037\ufe37\060\ufe37\061\ufe37\062\ufe37\063\ufe37\064" +
 84.1425 +    "\ufe37\101\ufe37\103\ufe37\106\ufe37\110\ufe37\150\ufe37\001\002" +
 84.1426 +    "\000\012\116\u0122\117\233\125\235\130\u0258\001\002\000" +
 84.1427 +    "\050\002\ufe98\003\ufe98\016\ufe98\031\ufe98\035\ufe98\036\ufe98" +
 84.1428 +    "\037\ufe98\060\ufe98\061\ufe98\062\ufe98\063\ufe98\064\ufe98\076" +
 84.1429 +    "\ufe98\101\ufe98\103\ufe98\106\ufe98\110\ufe98\113\ufe98\150\ufe98" +
 84.1430 +    "\001\002\000\004\044\u025a\001\002\000\006\150\045\153" +
 84.1431 +    "\205\001\002\000\004\130\u025c\001\002\000\042\003\uffd2" +
 84.1432 +    "\016\uffd2\031\uffd2\035\uffd2\036\uffd2\037\uffd2\060\uffd2\061" +
 84.1433 +    "\uffd2\062\uffd2\063\uffd2\064\uffd2\101\uffd2\103\uffd2\106\uffd2" +
 84.1434 +    "\110\uffd2\150\uffd2\001\002\000\004\031\ufea6\001\002\000" +
 84.1435 +    "\004\031\u025f\001\002\000\006\130\ufeaa\150\045\001\002" +
 84.1436 +    "\000\006\125\051\130\ufea9\001\002\000\004\130\u0262\001" +
 84.1437 +    "\002\000\050\002\ufea8\003\ufea8\016\ufea8\031\ufea8\035\ufea8" +
 84.1438 +    "\036\ufea8\037\ufea8\060\ufea8\061\ufea8\062\ufea8\063\ufea8\064" +
 84.1439 +    "\ufea8\076\ufea8\101\ufea8\103\ufea8\106\ufea8\110\ufea8\113\ufea8" +
 84.1440 +    "\150\ufea8\001\002\000\010\044\uffdf\117\143\130\uffdf\001" +
 84.1441 +    "\002\000\006\044\u0266\130\uffdc\001\002\000\004\130\u02e2" +
 84.1442 +    "\001\002\000\036\006\u0279\007\u026b\014\u027d\024\u0274\025" +
 84.1443 +    "\u0275\045\uffa0\047\u0267\050\u027a\052\uffa0\062\uffa0\070\335" +
 84.1444 +    "\071\uffa0\102\u026a\117\u026f\001\002\000\032\005\213\050" +
 84.1445 +    "\224\051\200\052\227\117\204\122\175\124\217\147\215" +
 84.1446 +    "\150\045\151\177\152\231\153\205\001\002\000\004\130" +
 84.1447 +    "\uffda\001\002\000\012\045\u02dd\052\ufea4\062\ufea4\071\ufea4" +
 84.1448 +    "\001\002\000\012\045\uff9f\052\uff9f\062\uff9f\071\uff9f\001" +
 84.1449 +    "\002\000\020\012\u02d2\020\u02d0\036\uff7d\063\uff7d\064\u02d3" +
 84.1450 +    "\150\045\153\205\001\002\000\004\130\uffd5\001\002\000" +
 84.1451 +    "\004\130\uffdb\001\002\000\004\130\uffbe\001\002\000\006" +
 84.1452 +    "\147\u02c9\150\u02ca\001\002\000\004\130\uffd6\001\002\000" +
 84.1453 +    "\004\130\uffb9\001\002\000\004\130\uffd9\001\002\000\004" +
 84.1454 +    "\130\uffd3\001\002\000\032\005\213\050\224\051\200\052" +
 84.1455 +    "\227\117\204\122\175\124\217\147\215\150\045\151\177" +
 84.1456 +    "\152\231\153\205\001\002\000\032\005\213\050\224\051" +
 84.1457 +    "\200\052\227\117\204\122\175\124\217\147\215\150\045" +
 84.1458 +    "\151\177\152\231\153\205\001\002\000\004\130\uffd8\001" +
 84.1459 +    "\002\000\004\130\uffb8\001\002\000\004\130\uffd4\001\002" +
 84.1460 +    "\000\006\050\u02bc\102\u02bb\001\002\000\006\150\045\153" +
 84.1461 +    "\205\001\002\000\004\130\uffbc\001\002\000\004\130\uffd7" +
 84.1462 +    "\001\002\000\004\117\u0281\001\002\000\006\130\uffb4\140" +
 84.1463 +    "\uffb4\001\002\000\006\130\uffb3\140\uffb3\001\002\000\004" +
 84.1464 +    "\053\u0293\001\002\000\032\005\213\050\224\051\200\052" +
 84.1465 +    "\227\117\204\122\175\124\217\147\215\150\045\151\177" +
 84.1466 +    "\152\231\153\205\001\002\000\006\120\u028d\123\u028c\001" +
 84.1467 +    "\002\000\006\120\uffad\123\uffad\001\002\000\006\120\u028a" +
 84.1468 +    "\123\u0289\001\002\000\006\120\uffa9\123\uffa9\001\002\000" +
 84.1469 +    "\040\047\uff10\070\u0287\072\uff10\115\uff10\116\313\117\233" +
 84.1470 +    "\120\uffa5\121\uff10\122\uff10\123\uffa5\124\uff10\125\235\126" +
 84.1471 +    "\uff10\136\uff10\137\uff10\001\002\000\034\005\213\050\224" +
 84.1472 +    "\051\200\052\227\117\204\122\175\124\217\146\u0288\147" +
 84.1473 +    "\215\150\045\151\177\152\231\153\205\001\002\000\006" +
 84.1474 +    "\120\uffab\123\uffab\001\002\000\032\005\213\050\224\051" +
 84.1475 +    "\200\052\227\117\204\122\175\124\217\147\215\150\045" +
 84.1476 +    "\151\177\152\231\153\205\001\002\000\004\053\uffaa\001" +
 84.1477 +    "\002\000\006\120\uffa8\123\uffa8\001\002\000\006\150\045" +
 84.1478 +    "\153\205\001\002\000\004\053\u028e\001\002\000\010\011" +
 84.1479 +    "\u0117\150\uffaf\153\uffaf\001\002\000\006\130\uffb2\140\uffb2" +
 84.1480 +    "\001\002\000\012\070\u0292\116\u0122\117\233\125\235\001" +
 84.1481 +    "\002\000\006\120\uffac\123\uffac\001\002\000\004\146\u0288" +
 84.1482 +    "\001\002\000\010\011\u0117\150\uffaf\153\uffaf\001\002\000" +
 84.1483 +    "\006\130\uffb1\140\uffb1\001\002\000\006\113\u0296\130\uffcc" +
 84.1484 +    "\001\002\000\010\052\u0299\062\u029a\071\u0297\001\002\000" +
 84.1485 +    "\014\003\ufffa\021\ufffa\052\ufffa\061\ufffa\150\ufffa\001\002" +
 84.1486 +    "\000\004\130\uffca\001\002\000\004\071\u029b\001\002\000" +
 84.1487 +    "\004\130\uffcb\001\002\000\004\130\uffa1\001\002\000\014" +
 84.1488 +    "\003\u0114\021\u02a0\052\u029d\061\004\150\126\001\002\000" +
 84.1489 +    "\004\130\u02b9\001\002\000\016\003\ufffa\021\ufffa\031\ufffa" +
 84.1490 +    "\061\ufffa\111\ufffa\150\ufffa\001\002\000\004\031\u02b2\001" +
 84.1491 +    "\002\000\004\150\045\001\002\000\016\003\uff9a\021\uff9a" +
 84.1492 +    "\031\uff9a\061\uff9a\111\uff9a\150\uff9a\001\002\000\010\031" +
 84.1493 +    "\ufffa\061\ufffa\111\ufffa\001\002\000\010\031\uff9c\061\004" +
 84.1494 +    "\111\uff9c\001\002\000\004\044\u02a5\001\002\000\006\061" +
 84.1495 +    "\ufffa\111\ufffa\001\002\000\006\061\004\111\u02a8\001\002" +
 84.1496 +    "\000\006\031\uff8c\111\uff8c\001\002\000\034\005\213\050" +
 84.1497 +    "\224\051\200\052\227\055\253\117\204\122\175\124\217" +
 84.1498 +    "\147\215\150\045\151\177\152\231\153\205\001\002\000" +
 84.1499 +    "\006\031\u02ab\111\u02a8\001\002\000\006\031\uff8b\111\uff8b" +
 84.1500 +    "\001\002\000\004\021\u02ac\001\002\000\004\130\u02ad\001" +
 84.1501 +    "\002\000\010\031\uff8d\061\uff8d\111\uff8d\001\002\000\006" +
 84.1502 +    "\134\341\135\u02af\001\002\000\014\003\ufffa\021\ufffa\052" +
 84.1503 +    "\ufffa\061\ufffa\150\ufffa\001\002\000\014\003\u0114\021\u02a0" +
 84.1504 +    "\052\u029d\061\004\150\126\001\002\000\006\031\uff8a\111" +
 84.1505 +    "\uff8a\001\002\000\004\071\u02b3\001\002\000\004\130\uffa2" +
 84.1506 +    "\001\002\000\006\031\uff9d\111\uff9d\001\002\000\016\003" +
 84.1507 +    "\u0114\021\u02a0\031\uff98\061\004\111\uff98\150\126\001\002" +
 84.1508 +    "\000\016\003\uff99\021\uff99\031\uff99\061\uff99\111\uff99\150" +
 84.1509 +    "\uff99\001\002\000\010\031\ufffa\061\ufffa\111\ufffa\001\002" +
 84.1510 +    "\000\010\031\uff97\061\004\111\uff97\001\002\000\010\031" +
 84.1511 +    "\ufffa\061\ufffa\111\ufffa\001\002\000\010\031\uff9b\061\004" +
 84.1512 +    "\111\uff9b\001\002\000\012\045\uff9e\052\uff9e\062\uff9e\071" +
 84.1513 +    "\uff9e\001\002\000\006\150\045\153\205\001\002\000\004" +
 84.1514 +    "\113\u02be\001\002\000\010\052\u0299\062\u02c0\071\u0297\001" +
 84.1515 +    "\002\000\004\130\uffc8\001\002\000\004\130\uffc9\001\002" +
 84.1516 +    "\000\014\013\321\054\324\070\335\114\322\130\uffbb\001" +
 84.1517 +    "\002\000\004\130\uffb7\001\002\000\004\130\uffba\001\002" +
 84.1518 +    "\000\014\013\321\025\u02c6\054\324\070\335\114\322\001" +
 84.1519 +    "\002\000\004\130\uffb6\001\002\000\032\005\213\050\224" +
 84.1520 +    "\051\200\052\227\117\204\122\175\124\217\147\215\150" +
 84.1521 +    "\045\151\177\152\231\153\205\001\002\000\014\013\321" +
 84.1522 +    "\054\324\070\335\114\322\130\uffbb\001\002\000\004\130" +
 84.1523 +    "\uffb5\001\002\000\006\120\uffbf\123\uffbf\001\002\000\006" +
 84.1524 +    "\120\uffc0\123\uffc0\001\002\000\006\120\uffc2\123\uffc2\001" +
 84.1525 +    "\002\000\006\120\u02ce\123\u02cd\001\002\000\006\147\u02c9" +
 84.1526 +    "\150\u02ca\001\002\000\004\130\uffc3\001\002\000\006\120" +
 84.1527 +    "\uffc1\123\uffc1\001\002\000\006\150\045\153\205\001\002" +
 84.1528 +    "\000\006\036\u02d7\063\u02d6\001\002\000\006\150\045\153" +
 84.1529 +    "\205\001\002\000\006\036\uff7c\063\uff7c\001\002\000\004" +
 84.1530 +    "\130\uff82\001\002\000\004\130\uff80\001\002\000\006\117" +
 84.1531 +    "\u0134\130\ufebe\001\002\000\006\065\ufebe\117\u0134\001\002" +
 84.1532 +    "\000\004\065\u02d9\001\002\000\004\150\045\001\002\000" +
 84.1533 +    "\010\116\165\125\166\130\uff7e\001\002\000\004\130\uff7f" +
 84.1534 +    "\001\002\000\004\130\uff81\001\002\000\010\052\ufea3\062" +
 84.1535 +    "\ufea3\071\ufea3\001\002\000\010\052\u0299\062\u02e0\071\u0297" +
 84.1536 +    "\001\002\000\004\130\uffa3\001\002\000\004\130\ufea5\001" +
 84.1537 +    "\002\000\012\013\321\054\324\114\322\130\uffbd\001\002" +
 84.1538 +    "\000\042\003\uffe0\016\uffe0\031\uffe0\035\uffe0\036\uffe0\037" +
 84.1539 +    "\uffe0\060\uffe0\061\uffe0\062\uffe0\063\uffe0\064\uffe0\101\uffe0" +
 84.1540 +    "\103\uffe0\106\uffe0\110\uffe0\150\uffe0\001\002\000\010\110" +
 84.1541 +    "\u02e4\116\165\125\166\001\002\000\036\005\213\015\u02e5" +
 84.1542 +    "\050\224\051\200\052\227\071\u02e7\117\204\122\175\124" +
 84.1543 +    "\217\147\215\150\045\151\177\152\231\153\205\001\002" +
 84.1544 +    "\000\032\005\213\050\224\051\200\052\227\117\204\122" +
 84.1545 +    "\175\124\217\147\215\150\045\151\177\152\231\153\205" +
 84.1546 +    "\001\002\000\012\013\321\054\324\114\322\130\u02f7\001" +
 84.1547 +    "\002\000\010\015\u02e8\031\ufe03\150\ufe03\001\002\000\004" +
 84.1548 +    "\047\u02f4\001\002\000\006\031\ufe01\150\ufe01\001\002\000" +
 84.1549 +    "\006\031\u02eb\150\045\001\002\000\004\071\u02f2\001\002" +
 84.1550 +    "\000\010\015\u02ed\116\165\125\166\001\002\000\032\005" +
 84.1551 +    "\213\050\224\051\200\052\227\117\204\122\175\124\217" +
 84.1552 +    "\147\215\150\045\151\177\152\231\153\205\001\002\000" +
 84.1553 +    "\012\013\321\054\324\070\u02ef\114\322\001\002\000\032" +
 84.1554 +    "\005\213\050\224\051\200\052\227\117\204\122\175\124" +
 84.1555 +    "\217\147\215\150\045\151\177\152\231\153\205\001\002" +
 84.1556 +    "\000\004\130\u02f1\001\002\000\006\031\ufe00\150\ufe00\001" +
 84.1557 +    "\002\000\004\130\u02f3\001\002\000\044\003\ufe04\016\ufe04" +
 84.1558 +    "\031\ufe04\032\ufe04\035\ufe04\036\ufe04\037\ufe04\060\ufe04\061" +
 84.1559 +    "\ufe04\062\ufe04\063\ufe04\064\ufe04\101\ufe04\103\ufe04\106\ufe04" +
 84.1560 +    "\110\ufe04\150\ufe04\001\002\000\032\005\213\050\224\051" +
 84.1561 +    "\200\052\227\117\204\122\175\124\217\147\215\150\045" +
 84.1562 +    "\151\177\152\231\153\205\001\002\000\012\013\321\054" +
 84.1563 +    "\324\114\322\130\u02f6\001\002\000\006\031\ufe02\150\ufe02" +
 84.1564 +    "\001\002\000\044\003\ufe05\016\ufe05\031\ufe05\032\ufe05\035" +
 84.1565 +    "\ufe05\036\ufe05\037\ufe05\060\ufe05\061\ufe05\062\ufe05\063\ufe05" +
 84.1566 +    "\064\ufe05\101\ufe05\103\ufe05\106\ufe05\110\ufe05\150\ufe05\001" +
 84.1567 +    "\002\000\012\013\321\054\324\114\322\130\u02f9\001\002" +
 84.1568 +    "\000\044\003\ufdff\016\ufdff\031\ufdff\032\ufdff\035\ufdff\036" +
 84.1569 +    "\ufdff\037\ufdff\060\ufdff\061\ufdff\062\ufdff\063\ufdff\064\ufdff" +
 84.1570 +    "\101\ufdff\103\ufdff\106\ufdff\110\ufdff\150\ufdff\001\002\000" +
 84.1571 +    "\040\003\uff6c\016\uff6c\031\uff6c\035\uff6c\036\uff6c\037\uff6c" +
 84.1572 +    "\060\uff6c\061\uff6c\063\uff6c\064\uff6c\101\uff6c\103\uff6c\106" +
 84.1573 +    "\uff6c\110\uff6c\150\uff6c\001\002\000\016\011\u02fd\014\uffe9" +
 84.1574 +    "\020\u02fe\033\u02fc\150\uffe9\153\uffe9\001\002\000\006\073" +
 84.1575 +    "\u030d\130\u030c\001\002\000\012\014\uffe8\020\u030b\150\uffe8" +
 84.1576 +    "\153\uffe8\001\002\000\012\014\uffe7\140\u0308\150\uffe7\153" +
 84.1577 +    "\uffe7\001\002\000\010\014\u027d\150\045\153\205\001\002" +
 84.1578 +    "\000\006\130\uffe3\140\164\001\002\000\010\073\u0303\130" +
 84.1579 +    "\uffe5\140\uffe5\001\002\000\006\130\uffe4\140\uffe4\001\002" +
 84.1580 +    "\000\006\150\045\153\205\001\002\000\012\116\u0122\117" +
 84.1581 +    "\233\125\235\130\u0305\001\002\000\042\003\ufe9c\016\ufe9c" +
 84.1582 +    "\031\ufe9c\035\ufe9c\036\ufe9c\037\ufe9c\060\ufe9c\061\ufe9c\062" +
 84.1583 +    "\ufe9c\063\ufe9c\064\ufe9c\101\ufe9c\103\ufe9c\106\ufe9c\110\ufe9c" +
 84.1584 +    "\150\ufe9c\001\002\000\004\130\u0307\001\002\000\042\003" +
 84.1585 +    "\uffec\016\uffec\031\uffec\035\uffec\036\uffec\037\uffec\060\uffec" +
 84.1586 +    "\061\uffec\062\uffec\063\uffec\064\uffec\101\uffec\103\uffec\106" +
 84.1587 +    "\uffec\110\uffec\150\uffec\001\002\000\032\005\213\050\224" +
 84.1588 +    "\051\200\052\227\117\204\122\175\124\217\147\215\150" +
 84.1589 +    "\045\151\177\152\231\153\205\001\002\000\012\013\321" +
 84.1590 +    "\054\324\114\322\130\u030a\001\002\000\042\003\uffe1\016" +
 84.1591 +    "\uffe1\031\uffe1\035\uffe1\036\uffe1\037\uffe1\060\uffe1\061\uffe1" +
 84.1592 +    "\062\uffe1\063\uffe1\064\uffe1\101\uffe1\103\uffe1\106\uffe1\110" +
 84.1593 +    "\uffe1\150\uffe1\001\002\000\010\014\uffe6\150\uffe6\153\uffe6" +
 84.1594 +    "\001\002\000\042\003\ufe35\016\ufe35\031\ufe35\035\ufe35\036" +
 84.1595 +    "\ufe35\037\ufe35\060\ufe35\061\ufe35\062\ufe35\063\ufe35\064\ufe35" +
 84.1596 +    "\101\ufe35\103\ufe35\106\ufe35\110\ufe35\150\ufe35\001\002\000" +
 84.1597 +    "\006\150\045\153\205\001\002\000\012\116\u0122\117\233" +
 84.1598 +    "\125\235\130\u030f\001\002\000\042\003\ufe9b\016\ufe9b\031" +
 84.1599 +    "\ufe9b\035\ufe9b\036\ufe9b\037\ufe9b\060\ufe9b\061\ufe9b\062\ufe9b" +
 84.1600 +    "\063\ufe9b\064\ufe9b\101\ufe9b\103\ufe9b\106\ufe9b\110\ufe9b\150" +
 84.1601 +    "\ufe9b\001\002\000\004\150\045\001\002\000\006\044\u0315" +
 84.1602 +    "\130\ufe92\001\002\000\004\150\045\001\002\000\010\044" +
 84.1603 +    "\uffdf\117\143\130\uffdf\001\002\000\006\044\u0315\130\ufe92" +
 84.1604 +    "\001\002\000\014\031\ufffa\032\ufffa\035\ufffa\061\ufffa\062" +
 84.1605 +    "\ufffa\001\002\000\004\130\ufe93\001\002\000\012\031\ufe6f" +
 84.1606 +    "\032\u010a\035\ufe6f\062\ufe6f\001\002\000\014\031\ufe77\032" +
 84.1607 +    "\ufe77\035\ufe77\061\004\062\ufe77\001\002\000\014\031\ufffa" +
 84.1608 +    "\032\ufffa\035\ufffa\061\ufffa\062\ufffa\001\002\000\010\031" +
 84.1609 +    "\ufe90\035\070\062\u031d\001\002\000\012\031\ufffa\035\ufffa" +
 84.1610 +    "\061\ufffa\062\ufffa\001\002\000\004\031\u0320\001\002\000" +
 84.1611 +    "\012\031\ufffa\032\ufffa\035\ufffa\061\ufffa\001\002\000\010" +
 84.1612 +    "\031\ufe6f\032\u010a\035\ufe6f\001\002\000\006\031\ufe8f\035" +
 84.1613 +    "\070\001\002\000\010\130\ufed7\150\045\153\205\001\002" +
 84.1614 +    "\000\004\130\ufe91\001\002\000\012\031\ufe6e\035\ufe6e\061" +
 84.1615 +    "\004\062\ufe6e\001\002\000\014\031\ufe76\032\ufe76\035\ufe76" +
 84.1616 +    "\061\004\062\ufe76\001\002\000\004\130\ufe94\001\002\000" +
 84.1617 +    "\004\044\u0326\001\002\000\040\003\105\016\uff7b\035\070" +
 84.1618 +    "\036\027\037\030\060\121\061\004\063\021\064\117\076" +
 84.1619 +    "\u0327\101\076\103\060\106\074\110\015\150\126\001\002" +
 84.1620 +    "\000\004\130\u032d\001\002\000\004\016\u015c\001\002\000" +
 84.1621 +    "\004\031\u032a\001\002\000\010\130\ufed7\150\045\153\205" +
 84.1622 +    "\001\002\000\004\130\u032c\001\002\000\050\002\ufe8e\003" +
 84.1623 +    "\ufe8e\016\ufe8e\031\ufe8e\035\ufe8e\036\ufe8e\037\ufe8e\060\ufe8e" +
 84.1624 +    "\061\ufe8e\062\ufe8e\063\ufe8e\064\ufe8e\076\ufe8e\101\ufe8e\103" +
 84.1625 +    "\ufe8e\106\ufe8e\110\ufe8e\113\ufe8e\150\ufe8e\001\002\000\042" +
 84.1626 +    "\003\ufe39\016\ufe39\031\ufe39\035\ufe39\036\ufe39\037\ufe39\060" +
 84.1627 +    "\ufe39\061\ufe39\062\ufe39\063\ufe39\064\ufe39\101\ufe39\103\ufe39" +
 84.1628 +    "\106\ufe39\110\ufe39\150\ufe39\001\002\000\042\003\ufe8d\016" +
 84.1629 +    "\ufe8d\031\ufe8d\035\ufe8d\036\ufe8d\037\ufe8d\060\ufe8d\061\ufe8d" +
 84.1630 +    "\062\ufe8d\063\ufe8d\064\ufe8d\101\ufe8d\103\ufe8d\106\ufe8d\110" +
 84.1631 +    "\ufe8d\150\ufe8d\001\002\000\006\150\045\153\205\001\002" +
 84.1632 +    "\000\042\003\105\031\uff79\035\070\036\027\037\030\050" +
 84.1633 +    "\u0253\060\u0337\061\004\062\uff79\063\021\064\u0336\101\076" +
 84.1634 +    "\103\u0331\106\074\110\015\150\126\001\002\000\010\017" +
 84.1635 +    "\u0346\106\u0312\150\045\001\002\000\004\130\ufe0a\001\002" +
 84.1636 +    "\000\010\044\u0345\073\u024e\130\u024d\001\002\000\006\031" +
 84.1637 +    "\ufeac\062\u0341\001\002\000\040\003\uff77\031\uff77\035\uff77" +
 84.1638 +    "\036\uff77\037\uff77\060\uff77\061\uff77\062\uff77\063\uff77\064" +
 84.1639 +    "\uff77\101\uff77\103\uff77\106\uff77\110\uff77\150\uff77\001\002" +
 84.1640 +    "\000\010\017\u033d\106\137\150\136\001\002\000\006\017" +
 84.1641 +    "\u033a\150\045\001\002\000\040\003\105\031\uff78\035\070" +
 84.1642 +    "\036\027\037\030\060\u0337\061\004\062\uff78\063\021\064" +
 84.1643 +    "\u0336\101\076\103\u0331\106\074\110\015\150\126\001\002" +
 84.1644 +    "\000\040\003\uff76\031\uff76\035\uff76\036\uff76\037\uff76\060" +
 84.1645 +    "\uff76\061\uff76\062\uff76\063\uff76\064\uff76\101\uff76\103\uff76" +
 84.1646 +    "\106\uff76\110\uff76\150\uff76\001\002\000\004\150\045\001" +
 84.1647 +    "\002\000\006\044\u033c\125\051\001\002\000\004\076\133" +
 84.1648 +    "\001\002\000\004\150\045\001\002\000\004\044\u033f\001" +
 84.1649 +    "\002\000\004\076\u014c\001\002\000\004\031\u0343\001\002" +
 84.1650 +    "\000\036\003\105\031\uff79\035\070\036\027\037\030\060" +
 84.1651 +    "\u0337\061\004\063\021\064\u0336\101\076\103\u0331\106\074" +
 84.1652 +    "\110\015\150\126\001\002\000\004\031\ufeab\001\002\000" +
 84.1653 +    "\006\130\ufeaa\150\045\001\002\000\004\130\ufead\001\002" +
 84.1654 +    "\000\010\006\u0252\050\u0253\076\u0250\001\002\000\004\150" +
 84.1655 +    "\045\001\002\000\004\044\u0348\001\002\000\004\076\u0327" +
 84.1656 +    "\001\002\000\012\116\u0122\117\233\125\235\130\u034a\001" +
 84.1657 +    "\002\000\050\002\ufe99\003\ufe99\016\ufe99\031\ufe99\035\ufe99" +
 84.1658 +    "\036\ufe99\037\ufe99\060\ufe99\061\ufe99\062\ufe99\063\ufe99\064" +
 84.1659 +    "\ufe99\076\ufe99\101\ufe99\103\ufe99\106\ufe99\110\ufe99\113\ufe99" +
 84.1660 +    "\150\ufe99\001\002\000\042\003\105\006\u0252\016\uff7b\035" +
 84.1661 +    "\070\036\027\037\030\050\u0253\060\121\061\004\063\021" +
 84.1662 +    "\064\117\101\076\103\060\106\074\110\015\150\126\001" +
 84.1663 +    "\002\000\026\002\ufe4a\036\ufe4a\037\ufe4a\060\ufe4a\061\004" +
 84.1664 +    "\062\ufe4a\063\ufe4a\076\ufe4a\110\ufe4a\113\ufe4a\001\002\000" +
 84.1665 +    "\014\044\ufec1\065\ufebe\073\ufec1\117\u0134\130\ufec1\001\002" +
 84.1666 +    "\000\004\065\u034f\001\002\000\006\150\045\153\205\001" +
 84.1667 +    "\002\000\016\044\ufec2\073\ufec2\116\u0122\117\233\125\235" +
 84.1668 +    "\130\ufec2\001\002\000\050\002\ufeae\003\ufeae\016\ufeae\031" +
 84.1669 +    "\ufeae\035\ufeae\036\ufeae\037\ufeae\060\ufeae\061\ufeae\062\ufeae" +
 84.1670 +    "\063\ufeae\064\ufeae\076\ufeae\101\ufeae\103\ufeae\106\ufeae\110" +
 84.1671 +    "\ufeae\113\ufeae\150\ufeae\001\002\000\050\002\ufec5\003\ufec5" +
 84.1672 +    "\016\ufec5\031\ufec5\035\ufec5\036\ufec5\037\ufec5\060\ufec5\061" +
 84.1673 +    "\ufec5\062\ufec5\063\ufec5\064\ufec5\076\ufec5\101\ufec5\103\ufec5" +
 84.1674 +    "\106\ufec5\110\ufec5\113\ufec5\150\ufec5\001\002\000\004\150" +
 84.1675 +    "\045\001\002\000\006\120\u0355\125\051\001\002\000\014" +
 84.1676 +    "\036\027\060\u0358\063\021\064\u035b\103\u0356\001\002\000" +
 84.1677 +    "\004\017\u0362\001\002\000\026\002\uff65\036\uff65\037\uff65" +
 84.1678 +    "\060\uff65\061\uff65\062\uff65\063\uff65\076\uff65\110\uff65\113" +
 84.1679 +    "\uff65\001\002\000\004\017\044\001\002\000\026\002\uff63" +
 84.1680 +    "\036\uff63\037\uff63\060\uff63\061\uff63\062\uff63\063\uff63\076" +
 84.1681 +    "\uff63\110\uff63\113\uff63\001\002\000\026\002\uff62\036\uff62" +
 84.1682 +    "\037\uff62\060\uff62\061\uff62\062\uff62\063\uff62\076\uff62\110" +
 84.1683 +    "\uff62\113\uff62\001\002\000\004\017\u035f\001\002\000\026" +
 84.1684 +    "\002\ufe3a\036\ufe3a\037\ufe3a\060\ufe3a\061\ufe3a\062\ufe3a\063" +
 84.1685 +    "\ufe3a\076\ufe3a\110\ufe3a\113\ufe3a\001\002\000\026\002\uff64" +
 84.1686 +    "\036\uff64\037\uff64\060\uff64\061\uff64\062\uff64\063\uff64\076" +
 84.1687 +    "\uff64\110\uff64\113\uff64\001\002\000\004\044\u015a\001\002" +
 84.1688 +    "\000\004\150\045\001\002\000\004\044\u0361\001\002\000" +
 84.1689 +    "\014\031\ufffa\032\ufffa\036\ufffa\061\ufffa\063\ufffa\001\002" +
 84.1690 +    "\000\004\150\045\001\002\000\004\044\u0364\001\002\000" +
 84.1691 +    "\036\003\105\016\uff7b\035\070\036\027\037\030\060\121" +
 84.1692 +    "\061\004\063\021\064\117\101\076\103\060\106\074\110" +
 84.1693 +    "\015\150\126\001\002\000\014\044\ufebe\073\ufebe\117\u0134" +
 84.1694 +    "\125\051\130\ufebe\001\002\000\010\044\ufec3\073\ufec3\130" +
 84.1695 +    "\ufec3\001\002\000\022\003\ufe1f\036\ufe1f\060\ufe1f\063\ufe1f" +
 84.1696 +    "\106\ufe1f\110\ufe1f\113\ufe1f\150\ufe1f\001\002\000\022\003" +
 84.1697 +    "\ufe26\036\ufe26\060\ufe26\063\ufe26\106\ufe26\110\ufe26\113\ufe26" +
 84.1698 +    "\150\ufe26\001\002\000\004\150\045\001\002\000\004\130" +
 84.1699 +    "\u03b2\001\002\000\004\150\045\001\002\000\004\130\u038c" +
 84.1700 +    "\001\002\000\010\036\u0375\060\u0374\063\u0373\001\002\000" +
 84.1701 +    "\006\073\u0370\130\u036f\001\002\000\050\002\ufe29\003\ufe29" +
 84.1702 +    "\016\ufe29\031\ufe29\035\ufe29\036\ufe29\037\ufe29\060\ufe29\061" +
 84.1703 +    "\ufe29\062\ufe29\063\ufe29\064\ufe29\076\ufe29\101\ufe29\103\ufe29" +
 84.1704 +    "\106\ufe29\110\ufe29\113\ufe29\150\ufe29\001\002\000\006\150" +
 84.1705 +    "\045\153\205\001\002\000\012\116\u0122\117\233\125\235" +
 84.1706 +    "\130\u0372\001\002\000\050\002\ufe96\003\ufe96\016\ufe96\031" +
 84.1707 +    "\ufe96\035\ufe96\036\ufe96\037\ufe96\060\ufe96\061\ufe96\062\ufe96" +
 84.1708 +    "\063\ufe96\064\ufe96\076\ufe96\101\ufe96\103\ufe96\106\ufe96\110" +
 84.1709 +    "\ufe96\113\ufe96\150\ufe96\001\002\000\004\150\045\001\002" +
 84.1710 +    "\000\004\150\045\001\002\000\006\150\045\153\205\001" +
 84.1711 +    "\002\000\006\065\ufebe\117\u0134\001\002\000\004\065\u0378" +
 84.1712 +    "\001\002\000\006\150\045\153\205\001\002\000\014\044" +
 84.1713 +    "\u037a\116\u0122\117\233\125\235\130\ufe1b\001\002\000\010" +
 84.1714 +    "\146\u037d\150\045\153\205\001\002\000\004\130\u037c\001" +
 84.1715 +    "\002\000\022\003\ufe22\036\ufe22\060\ufe22\063\ufe22\106\ufe22" +
 84.1716 +    "\110\ufe22\113\ufe22\150\ufe22\001\002\000\004\130\ufe19\001" +
 84.1717 +    "\002\000\012\116\u0122\117\233\125\235\130\ufe1a\001\002" +
 84.1718 +    "\000\004\044\u0380\001\002\000\004\050\u0381\001\002\000" +
 84.1719 +    "\006\150\045\153\205\001\002\000\012\116\u0122\117\u0384" +
 84.1720 +    "\125\235\130\u0383\001\002\000\022\003\ufe20\036\ufe20\060" +
 84.1721 +    "\ufe20\063\ufe20\106\ufe20\110\ufe20\113\ufe20\150\ufe20\001\002" +
 84.1722 +    "\000\040\003\251\005\213\050\224\051\200\052\227\055" +
 84.1723 +    "\253\117\204\122\175\124\217\146\u0385\147\215\150\045" +
 84.1724 +    "\151\177\152\231\153\205\001\002\000\004\120\u0386\001" +
 84.1725 +    "\002\000\004\130\u0387\001\002\000\022\003\ufe21\036\ufe21" +
 84.1726 +    "\060\ufe21\063\ufe21\106\ufe21\110\ufe21\113\ufe21\150\ufe21\001" +
 84.1727 +    "\002\000\010\044\ufebe\117\u0134\130\ufebe\001\002\000\006" +
 84.1728 +    "\044\u037a\130\ufe1b\001\002\000\004\130\u038b\001\002\000" +
 84.1729 +    "\022\003\ufe23\036\ufe23\060\ufe23\063\ufe23\106\ufe23\110\ufe23" +
 84.1730 +    "\113\ufe23\150\ufe23\001\002\000\050\002\ufe28\003\ufe28\016" +
 84.1731 +    "\ufe28\031\ufe28\035\ufe28\036\ufe28\037\ufe28\060\ufe28\061\ufe28" +
 84.1732 +    "\062\ufe28\063\ufe28\064\ufe28\076\ufe28\101\ufe28\103\ufe28\106" +
 84.1733 +    "\ufe28\110\ufe28\113\ufe28\150\ufe28\001\002\000\006\044\ufe1e" +
 84.1734 +    "\117\u038f\001\002\000\004\044\ufe1d\001\002\000\010\003" +
 84.1735 +    "\145\146\u03b0\150\126\001\002\000\004\044\u0391\001\002" +
 84.1736 +    "\000\032\006\u039c\007\u026b\014\u027d\024\u0399\025\u039a\045" +
 84.1737 +    "\uffa0\047\u0392\050\u039d\062\uffa0\070\u0393\102\u026a\117\u0397" +
 84.1738 +    "\001\002\000\004\146\u03af\001\002\000\004\146\u03ae\001" +
 84.1739 +    "\002\000\006\045\u02dd\062\ufea4\001\002\000\004\130\u03ac" +
 84.1740 +    "\001\002\000\004\130\ufe11\001\002\000\004\146\u03aa\001" +
 84.1741 +    "\002\000\004\130\ufe10\001\002\000\004\146\u03a7\001\002" +
 84.1742 +    "\000\004\146\u03a6\001\002\000\004\130\ufe0f\001\002\000" +
 84.1743 +    "\006\050\u03a2\102\u02bb\001\002\000\006\150\045\153\205" +
 84.1744 +    "\001\002\000\004\130\ufe12\001\002\000\006\113\u03a0\130" +
 84.1745 +    "\ufe0e\001\002\000\004\062\u03a1\001\002\000\004\130\ufe0d" +
 84.1746 +    "\001\002\000\006\150\045\153\205\001\002\000\004\113" +
 84.1747 +    "\u03a4\001\002\000\004\062\u03a5\001\002\000\004\130\ufe0c" +
 84.1748 +    "\001\002\000\004\130\ufe13\001\002\000\006\025\u03a8\130" +
 84.1749 +    "\ufe15\001\002\000\004\146\u03a9\001\002\000\004\130\ufe14" +
 84.1750 +    "\001\002\000\004\120\u03ab\001\002\000\004\130\ufe18\001" +
 84.1751 +    "\002\000\022\003\ufe24\036\ufe24\060\ufe24\063\ufe24\106\ufe24" +
 84.1752 +    "\110\ufe24\113\ufe24\150\ufe24\001\002\000\004\062\u02e0\001" +
 84.1753 +    "\002\000\004\130\ufe17\001\002\000\004\130\ufe16\001\002" +
 84.1754 +    "\000\004\120\u03b1\001\002\000\004\044\ufe1c\001\002\000" +
 84.1755 +    "\022\003\ufe25\036\ufe25\060\ufe25\063\ufe25\106\ufe25\110\ufe25" +
 84.1756 +    "\113\ufe25\150\ufe25\001\002\000\010\044\u03b5\073\u03b4\125" +
 84.1757 +    "\051\001\002\000\006\150\045\153\205\001\002\000\040" +
 84.1758 +    "\003\105\031\uff79\035\070\036\027\037\030\060\u0337\061" +
 84.1759 +    "\004\062\uff79\063\021\064\u0336\101\076\103\u0331\106\074" +
 84.1760 +    "\110\015\150\126\001\002\000\012\116\u0122\117\233\125" +
 84.1761 +    "\235\130\u03b7\001\002\000\050\002\ufe97\003\ufe97\016\ufe97" +
 84.1762 +    "\031\ufe97\035\ufe97\036\ufe97\037\ufe97\060\ufe97\061\ufe97\062" +
 84.1763 +    "\ufe97\063\ufe97\064\ufe97\076\ufe97\101\ufe97\103\ufe97\106\ufe97" +
 84.1764 +    "\110\ufe97\113\ufe97\150\ufe97\001\002\000\014\116\u0122\117" +
 84.1765 +    "\233\123\ufea0\125\235\130\ufea0\001\002\000\006\123\u03c0" +
 84.1766 +    "\130\u03c1\001\002\000\006\150\045\153\205\001\002\000" +
 84.1767 +    "\014\116\u0122\117\233\123\ufe9e\125\235\130\ufe9e\001\002" +
 84.1768 +    "\000\006\123\u03bd\130\u03be\001\002\000\006\150\045\153" +
 84.1769 +    "\205\001\002\000\046\003\ufea1\016\ufea1\031\ufea1\035\ufea1" +
 84.1770 +    "\036\ufea1\037\ufea1\060\ufea1\061\ufea1\062\ufea1\063\ufea1\064" +
 84.1771 +    "\ufea1\076\ufea1\101\ufea1\103\ufea1\106\ufea1\110\ufea1\113\ufea1" +
 84.1772 +    "\150\ufea1\001\002\000\014\116\u0122\117\233\123\ufe9d\125" +
 84.1773 +    "\235\130\ufe9d\001\002\000\006\150\045\153\205\001\002" +
 84.1774 +    "\000\046\003\ufea2\016\ufea2\031\ufea2\035\ufea2\036\ufea2\037" +
 84.1775 +    "\ufea2\060\ufea2\061\ufea2\062\ufea2\063\ufea2\064\ufea2\076\ufea2" +
 84.1776 +    "\101\ufea2\103\ufea2\106\ufea2\110\ufea2\113\ufea2\150\ufea2\001" +
 84.1777 +    "\002\000\014\116\u0122\117\233\123\ufe9f\125\235\130\ufe9f" +
 84.1778 +    "\001\002\000\010\123\uff56\125\051\130\uff56\001\002\000" +
 84.1779 +    "\006\123\u03c5\130\u03c6\001\002\000\004\150\045\001\002" +
 84.1780 +    "\000\024\036\ufe3b\037\ufe3b\060\ufe3b\061\ufe3b\062\ufe3b\063" +
 84.1781 +    "\ufe3b\076\ufe3b\110\ufe3b\113\ufe3b\001\002\000\010\123\uff55" +
 84.1782 +    "\125\051\130\uff55\001\002\000\024\036\ufe3c\037\ufe3c\060" +
 84.1783 +    "\ufe3c\061\ufe3c\062\ufe3c\063\ufe3c\076\ufe3c\110\ufe3c\113\ufe3c" +
 84.1784 +    "\001\002\000\024\036\ufe3e\037\ufe3e\060\ufe3e\061\ufe3e\062" +
 84.1785 +    "\ufe3e\063\ufe3e\076\ufe3e\110\ufe3e\113\ufe3e\001\002\000\024" +
 84.1786 +    "\036\ufe3d\037\ufe3d\060\ufe3d\061\ufe3d\062\ufe3d\063\ufe3d\076" +
 84.1787 +    "\ufe3d\110\ufe3d\113\ufe3d\001\002\000\014\036\027\037\030" +
 84.1788 +    "\060\036\063\021\076\022\001\002\000\026\002\ufffa\036" +
 84.1789 +    "\ufffa\037\ufffa\060\ufffa\061\ufffa\062\ufffa\063\ufffa\076\ufffa" +
 84.1790 +    "\110\ufffa\113\ufffa\001\002\000\026\002\ufe4b\036\ufe4b\037" +
 84.1791 +    "\ufe4b\060\ufe4b\061\004\062\ufe4b\063\ufe4b\076\ufe4b\110\ufe4b" +
 84.1792 +    "\113\ufe4b\001\002\000\026\002\ufe4c\036\ufe4c\037\ufe4c\060" +
 84.1793 +    "\ufe4c\061\004\062\ufe4c\063\ufe4c\076\ufe4c\110\ufe4c\113\ufe4c" +
 84.1794 +    "\001\002\000\004\002\001\001\002\000\006\117\uff59\130" +
 84.1795 +    "\u03dd\001\002\000\004\117\u03d2\001\002\000\032\005\213" +
 84.1796 +    "\050\224\051\200\052\227\117\204\122\175\124\217\147" +
 84.1797 +    "\215\150\045\151\177\152\231\153\205\001\002\000\006" +
 84.1798 +    "\120\ufffe\123\ufffe\001\002\000\006\120\u03da\123\u03d9\001" +
 84.1799 +    "\002\000\064\013\uff61\042\uff61\047\uff61\051\uff61\054\uff61" +
 84.1800 +    "\072\uff61\114\uff61\115\uff61\116\uff61\117\uff61\120\uff61\121" +
 84.1801 +    "\uff61\122\uff61\123\uff61\124\uff61\125\uff61\126\uff61\131\uff61" +
 84.1802 +    "\132\uff61\133\uff61\135\u03d7\137\uff61\141\uff61\142\uff61\143" +
 84.1803 +    "\uff61\001\002\000\014\013\321\054\324\114\322\120\ufffc" +
 84.1804 +    "\123\ufffc\001\002\000\032\005\213\050\224\051\200\052" +
 84.1805 +    "\227\117\204\122\175\124\217\147\215\150\045\151\177" +
 84.1806 +    "\152\231\153\205\001\002\000\014\013\321\054\324\114" +
 84.1807 +    "\322\120\ufffb\123\ufffb\001\002\000\032\005\213\050\224" +
 84.1808 +    "\051\200\052\227\117\204\122\175\124\217\147\215\150" +
 84.1809 +    "\045\151\177\152\231\153\205\001\002\000\004\130\u03db" +
 84.1810 +    "\001\002\000\130\002\uffff\003\uffff\004\uffff\010\uffff\016" +
 84.1811 +    "\uffff\021\uffff\022\uffff\023\uffff\027\uffff\030\uffff\031\uffff" +
 84.1812 +    "\032\uffff\033\uffff\034\uffff\035\uffff\036\uffff\037\uffff\040" +
 84.1813 +    "\uffff\041\uffff\046\uffff\052\uffff\054\uffff\060\uffff\061\uffff" +
 84.1814 +    "\062\uffff\063\uffff\064\uffff\065\uffff\067\uffff\074\uffff\075" +
 84.1815 +    "\uffff\076\uffff\101\uffff\103\uffff\105\uffff\106\uffff\110\uffff" +
 84.1816 +    "\111\uffff\112\uffff\113\uffff\144\uffff\150\uffff\153\uffff\001" +
 84.1817 +    "\002\000\006\120\ufffd\123\ufffd\001\002\000\130\002\000" +
 84.1818 +    "\003\000\004\000\010\000\016\000\021\000\022\000\023" +
 84.1819 +    "\000\027\000\030\000\031\000\032\000\033\000\034\000" +
 84.1820 +    "\035\000\036\000\037\000\040\000\041\000\046\000\052" +
 84.1821 +    "\000\054\000\060\000\061\000\062\000\063\000\064\000" +
 84.1822 +    "\065\000\067\000\074\000\075\000\076\000\101\000\103" +
 84.1823 +    "\000\105\000\106\000\110\000\111\000\112\000\113\000" +
 84.1824 +    "\144\000\150\000\153\000\001\002" });
 84.1825 +
 84.1826 +  /** Access to parse-action table. */
 84.1827 +  public short[][] action_table() {return _action_table;}
 84.1828 +
 84.1829 +  /** <code>reduce_goto</code> table. */
 84.1830 +  protected static final short[][] _reduce_table = 
 84.1831 +    unpackFromStrings(new String[] {
 84.1832 +    "\000\u03db\000\010\125\004\126\006\173\005\001\001\000" +
 84.1833 +    "\004\027\u03d0\001\001\000\002\001\001\000\004\176\u03cd" +
 84.1834 +    "\001\001\000\014\114\011\127\013\131\007\132\010\332" +
 84.1835 +    "\015\001\001\000\012\114\u03c9\132\u03c8\173\u03c7\332\u03ca" +
 84.1836 +    "\001\001\000\002\001\001\000\002\001\001\000\010\027" +
 84.1837 +    "\045\133\u03c3\140\u03c2\001\001\000\002\001\001\000\020" +
 84.1838 +    "\026\u03b7\027\202\030\225\103\220\115\u03b8\163\205\164" +
 84.1839 +    "\175\001\001\000\034\005\025\072\034\073\023\074\037" +
 84.1840 +    "\105\030\106\036\107\022\120\032\130\033\136\031\151" +
 84.1841 +    "\040\272\024\274\017\001\001\000\002\001\001\000\020" +
 84.1842 +    "\006\102\023\u012b\072\u036d\100\u0369\106\u036b\114\u0366\336" +
 84.1843 +    "\u0367\001\001\000\006\027\045\140\u0364\001\001\000\002" +
 84.1844 +    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
 84.1845 +    "\001\000\002\001\001\000\012\027\045\102\u034c\103\u0146" +
 84.1846 +    "\140\u0145\001\001\000\002\001\001\000\002\001\001\000" +
 84.1847 +    "\002\001\001\000\002\001\001\000\004\176\u034b\001\001" +
 84.1848 +    "\000\002\001\001\000\006\027\045\140\042\001\001\000" +
 84.1849 +    "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
 84.1850 +    "\001\001\000\002\001\001\000\006\027\045\140\046\001" +
 84.1851 +    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
 84.1852 +    "\000\122\002\124\003\062\004\054\005\101\006\102\011" +
 84.1853 +    "\105\012\074\013\066\016\052\020\123\022\060\023\061" +
 84.1854 +    "\025\117\072\076\073\023\074\072\105\070\106\036\107" +
 84.1855 +    "\071\110\103\114\107\117\115\120\077\121\106\134\113" +
 84.1856 +    "\136\064\144\065\173\122\177\100\200\111\201\056\253" +
 84.1857 +    "\063\254\110\272\024\274\017\275\121\302\053\344\112" +
 84.1858 +    "\345\114\346\055\001\001\000\004\027\051\001\001\000" +
 84.1859 +    "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
 84.1860 +    "\001\001\000\002\001\001\000\002\001\001\000\004\027" +
 84.1861 +    "\u0310\001\001\000\002\001\001\000\002\001\001\000\002" +
 84.1862 +    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
 84.1863 +    "\001\000\116\002\124\003\062\004\054\005\101\006\102" +
 84.1864 +    "\011\105\016\052\020\123\022\060\023\061\025\117\072" +
 84.1865 +    "\076\073\023\074\072\105\070\106\036\107\071\110\103" +
 84.1866 +    "\114\107\117\115\120\077\121\106\134\113\136\064\144" +
 84.1867 +    "\065\173\122\177\100\200\111\201\056\253\063\254\u02f9" +
 84.1868 +    "\272\024\274\017\275\121\302\053\344\112\345\114\346" +
 84.1869 +    "\055\001\001\000\006\027\160\146\u02e2\001\001\000\002" +
 84.1870 +    "\001\001\000\002\001\001\000\002\001\001\000\004\006" +
 84.1871 +    "\u0262\001\001\000\006\066\u025c\273\u025d\001\001\000\004" +
 84.1872 +    "\006\u0258\001\001\000\002\001\001\000\002\001\001\000" +
 84.1873 +    "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
 84.1874 +    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
 84.1875 +    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
 84.1876 +    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
 84.1877 +    "\002\001\001\000\002\001\001\000\002\001\001\000\006" +
 84.1878 +    "\027\045\140\042\001\001\000\002\001\001\000\002\001" +
 84.1879 +    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
 84.1880 +    "\000\002\001\001\000\006\027\045\140\130\001\001\000" +
 84.1881 +    "\002\001\001\000\122\002\124\003\062\004\054\005\101" +
 84.1882 +    "\006\102\011\105\012\074\013\066\016\052\020\123\022" +
 84.1883 +    "\060\023\061\025\117\072\076\073\023\074\072\105\070" +
 84.1884 +    "\106\036\107\071\110\103\114\107\117\115\120\077\121" +
 84.1885 +    "\106\134\113\136\064\144\065\173\122\177\100\200\111" +
 84.1886 +    "\201\056\253\063\254\110\272\024\274\017\275\121\302" +
 84.1887 +    "\053\344\112\345\114\346\055\001\001\000\002\001\001" +
 84.1888 +    "\000\002\001\001\000\004\027\u0149\001\001\000\004\303" +
 84.1889 +    "\u0148\001\001\000\004\027\137\001\001\000\006\202\141" +
 84.1890 +    "\203\140\001\001\000\002\001\001\000\004\303\u0102\001" +
 84.1891 +    "\001\000\012\006\102\023\143\243\146\244\147\001\001" +
 84.1892 +    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
 84.1893 +    "\002\001\001\000\002\001\001\000\010\006\102\023\143" +
 84.1894 +    "\244\152\001\001\000\002\001\001\000\002\001\001\000" +
 84.1895 +    "\002\001\001\000\004\006\u0101\001\001\000\004\245\156" +
 84.1896 +    "\001\001\000\006\027\160\146\161\001\001\000\002\001" +
 84.1897 +    "\001\000\002\001\001\000\004\143\162\001\001\000\002" +
 84.1898 +    "\001\001\000\050\026\231\027\202\030\225\031\206\032" +
 84.1899 +    "\201\033\213\034\211\035\210\036\217\042\222\044\224" +
 84.1900 +    "\103\220\154\221\155\215\160\227\163\205\164\175\257" +
 84.1901 +    "\207\261\200\001\001\000\004\172\167\001\001\000\004" +
 84.1902 +    "\027\166\001\001\000\002\001\001\000\002\001\001\000" +
 84.1903 +    "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
 84.1904 +    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
 84.1905 +    "\001\000\034\026\231\027\202\030\225\036\u0100\044\224" +
 84.1906 +    "\103\220\154\221\155\215\160\227\163\205\164\175\257" +
 84.1907 +    "\207\261\200\001\001\000\002\001\001\000\002\001\001" +
 84.1908 +    "\000\002\001\001\000\066\026\246\027\202\030\225\031" +
 84.1909 +    "\355\032\201\033\256\034\211\035\210\036\217\042\222" +
 84.1910 +    "\044\224\103\220\154\221\155\215\160\227\161\245\163" +
 84.1911 +    "\205\164\175\167\244\250\251\251\243\255\360\256\357" +
 84.1912 +    "\257\207\260\354\261\200\001\001\000\002\001\001\000" +
 84.1913 +    "\002\001\001\000\006\037\322\170\316\001\001\000\002" +
 84.1914 +    "\001\001\000\002\001\001\000\004\043\303\001\001\000" +
 84.1915 +    "\034\026\231\027\202\030\225\036\353\044\224\103\220" +
 84.1916 +    "\154\221\155\215\160\227\163\205\164\175\257\207\261" +
 84.1917 +    "\200\001\001\000\010\040\262\041\267\171\264\001\001" +
 84.1918 +    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
 84.1919 +    "\002\001\001\000\002\001\001\000\002\001\001\000\040" +
 84.1920 +    "\026\231\027\202\030\225\034\350\035\210\036\217\044" +
 84.1921 +    "\224\103\220\154\221\155\215\160\227\163\205\164\175" +
 84.1922 +    "\257\207\261\200\001\001\000\020\026\346\027\202\030" +
 84.1923 +    "\225\044\347\103\220\163\205\164\175\001\001\000\002" +
 84.1924 +    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
 84.1925 +    "\001\000\002\001\001\000\002\001\001\000\066\026\246" +
 84.1926 +    "\027\202\030\225\031\247\032\201\033\256\034\211\035" +
 84.1927 +    "\210\036\217\042\222\044\224\103\220\154\221\155\215" +
 84.1928 +    "\160\227\161\245\163\205\164\175\165\255\167\244\250" +
 84.1929 +    "\251\251\243\255\254\256\253\257\207\261\200\001\001" +
 84.1930 +    "\000\010\155\242\172\241\257\207\001\001\000\010\027" +
 84.1931 +    "\237\103\236\160\240\001\001\000\002\001\001\000\002" +
 84.1932 +    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
 84.1933 +    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
 84.1934 +    "\000\002\001\001\000\004\214\335\001\001\000\006\037" +
 84.1935 +    "\322\170\316\001\001\000\002\001\001\000\002\001\001" +
 84.1936 +    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
 84.1937 +    "\002\001\001\000\010\040\262\041\267\171\264\001\001" +
 84.1938 +    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
 84.1939 +    "\044\026\231\027\202\030\225\033\330\034\211\035\210" +
 84.1940 +    "\036\217\042\222\044\224\103\220\154\221\155\215\160" +
 84.1941 +    "\227\163\205\164\175\257\207\261\200\001\001\000\002" +
 84.1942 +    "\001\001\000\046\026\311\027\202\030\225\033\310\034" +
 84.1943 +    "\211\035\210\036\217\042\222\044\224\103\220\154\221" +
 84.1944 +    "\155\215\160\227\163\205\164\175\167\307\257\207\261" +
 84.1945 +    "\200\001\001\000\002\001\001\000\002\001\001\000\040" +
 84.1946 +    "\026\231\027\202\030\225\034\300\035\210\036\217\044" +
 84.1947 +    "\224\103\220\154\221\155\215\160\227\163\205\164\175" +
 84.1948 +    "\257\207\261\200\001\001\000\002\001\001\000\044\026" +
 84.1949 +    "\231\027\202\030\225\033\277\034\211\035\210\036\217" +
 84.1950 +    "\042\222\044\224\103\220\154\221\155\215\160\227\163" +
 84.1951 +    "\205\164\175\257\207\261\200\001\001\000\002\001\001" +
 84.1952 +    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
 84.1953 +    "\002\001\001\000\004\041\267\001\001\000\004\043\303" +
 84.1954 +    "\001\001\000\002\001\001\000\002\001\001\000\036\026" +
 84.1955 +    "\231\027\202\030\225\035\306\036\217\044\224\103\220" +
 84.1956 +    "\154\221\155\215\160\227\163\205\164\175\257\207\261" +
 84.1957 +    "\200\001\001\000\002\001\001\000\002\001\001\000\002" +
 84.1958 +    "\001\001\000\002\001\001\000\004\041\267\001\001\000" +
 84.1959 +    "\002\001\001\000\010\155\242\172\241\257\207\001\001" +
 84.1960 +    "\000\002\001\001\000\050\026\231\027\202\030\225\031" +
 84.1961 +    "\315\032\201\033\213\034\211\035\210\036\217\042\222" +
 84.1962 +    "\044\224\103\220\154\221\155\215\160\227\163\205\164" +
 84.1963 +    "\175\257\207\261\200\001\001\000\006\037\322\170\316" +
 84.1964 +    "\001\001\000\046\026\231\027\202\030\225\032\327\033" +
 84.1965 +    "\213\034\211\035\210\036\217\042\222\044\224\103\220" +
 84.1966 +    "\154\221\155\215\160\227\163\205\164\175\257\207\261" +
 84.1967 +    "\200\001\001\000\002\001\001\000\002\001\001\000\002" +
 84.1968 +    "\001\001\000\046\026\231\027\202\030\225\032\325\033" +
 84.1969 +    "\213\034\211\035\210\036\217\042\222\044\224\103\220" +
 84.1970 +    "\154\221\155\215\160\227\163\205\164\175\257\207\261" +
 84.1971 +    "\200\001\001\000\002\001\001\000\002\001\001\000\002" +
 84.1972 +    "\001\001\000\002\001\001\000\002\001\001\000\004\041" +
 84.1973 +    "\267\001\001\000\064\026\246\027\202\030\225\031\247" +
 84.1974 +    "\032\201\033\256\034\211\035\210\036\217\042\222\044" +
 84.1975 +    "\224\103\220\154\221\155\215\160\227\161\245\163\205" +
 84.1976 +    "\164\175\167\244\250\251\251\243\255\333\256\253\257" +
 84.1977 +    "\207\261\200\001\001\000\002\001\001\000\002\001\001" +
 84.1978 +    "\000\046\026\337\027\202\030\225\033\310\034\211\035" +
 84.1979 +    "\210\036\217\042\222\044\224\103\220\154\221\155\215" +
 84.1980 +    "\160\227\163\205\164\175\167\336\257\207\261\200\001" +
 84.1981 +    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
 84.1982 +    "\000\056\026\246\027\202\030\225\031\345\032\201\033" +
 84.1983 +    "\256\034\211\035\210\036\217\042\222\044\224\103\220" +
 84.1984 +    "\154\221\155\215\160\227\163\205\164\175\167\244\250" +
 84.1985 +    "\344\251\343\257\207\261\200\001\001\000\050\026\231" +
 84.1986 +    "\027\202\030\225\031\342\032\201\033\213\034\211\035" +
 84.1987 +    "\210\036\217\042\222\044\224\103\220\154\221\155\215" +
 84.1988 +    "\160\227\163\205\164\175\257\207\261\200\001\001\000" +
 84.1989 +    "\006\037\322\170\316\001\001\000\002\001\001\000\002" +
 84.1990 +    "\001\001\000\006\037\322\170\316\001\001\000\002\001" +
 84.1991 +    "\001\000\002\001\001\000\004\043\303\001\001\000\034" +
 84.1992 +    "\026\231\027\202\030\225\036\352\044\224\103\220\154" +
 84.1993 +    "\221\155\215\160\227\163\205\164\175\257\207\261\200" +
 84.1994 +    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
 84.1995 +    "\001\000\006\037\322\170\316\001\001\000\002\001\001" +
 84.1996 +    "\000\002\001\001\000\002\001\001\000\064\026\246\027" +
 84.1997 +    "\202\030\225\031\247\032\201\033\256\034\211\035\210" +
 84.1998 +    "\036\217\042\222\044\224\103\220\154\221\155\215\160" +
 84.1999 +    "\227\161\245\163\205\164\175\167\244\250\251\251\243" +
 84.2000 +    "\255\362\256\253\257\207\261\200\001\001\000\002\001" +
 84.2001 +    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
 84.2002 +    "\000\002\001\001\000\066\026\246\027\202\030\225\031" +
 84.2003 +    "\247\032\201\033\256\034\211\035\210\036\217\042\222" +
 84.2004 +    "\044\224\103\220\154\221\155\215\160\227\161\245\163" +
 84.2005 +    "\205\164\175\165\371\167\244\250\251\251\243\255\254" +
 84.2006 +    "\256\253\257\207\261\200\001\001\000\002\001\001\000" +
 84.2007 +    "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
 84.2008 +    "\001\001\000\064\026\246\027\202\030\225\031\247\032" +
 84.2009 +    "\201\033\256\034\211\035\210\036\217\042\222\044\224" +
 84.2010 +    "\103\220\154\221\155\215\160\227\161\245\163\205\164" +
 84.2011 +    "\175\167\244\250\251\251\243\255\377\256\253\257\207" +
 84.2012 +    "\261\200\001\001\000\002\001\001\000\002\001\001\000" +
 84.2013 +    "\002\001\001\000\002\001\001\000\002\001\001\000\004" +
 84.2014 +    "\304\u0104\001\001\000\024\072\u010c\173\u0107\253\u0106\305" +
 84.2015 +    "\u0108\307\u0105\310\u010b\344\112\345\114\346\055\001\001" +
 84.2016 +    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
 84.2017 +    "\002\001\001\000\002\001\001\000\004\306\u010e\001\001" +
 84.2018 +    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
 84.2019 +    "\032\006\102\023\u0110\072\u010c\173\u0107\240\u0111\253\u0106" +
 84.2020 +    "\307\u0112\310\u010b\311\u010f\344\112\345\114\346\055\001" +
 84.2021 +    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
 84.2022 +    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
 84.2023 +    "\006\232\u0118\233\u0117\001\001\000\002\001\001\000\020" +
 84.2024 +    "\021\u011c\026\u011b\027\202\030\225\103\220\163\205\164" +
 84.2025 +    "\175\001\001\000\004\143\u0119\001\001\000\002\001\001" +
 84.2026 +    "\000\002\001\001\000\010\213\u0120\214\u011f\215\u011e\001" +
 84.2027 +    "\001\000\002\001\001\000\050\026\231\027\202\030\225" +
 84.2028 +    "\031\u0122\032\201\033\213\034\211\035\210\036\217\042" +
 84.2029 +    "\222\044\224\103\220\154\221\155\215\160\227\163\205" +
 84.2030 +    "\164\175\257\207\261\200\001\001\000\002\001\001\000" +
 84.2031 +    "\002\001\001\000\002\001\001\000\004\172\241\001\001" +
 84.2032 +    "\000\012\037\322\170\316\214\u0124\216\u0123\001\001\000" +
 84.2033 +    "\002\001\001\000\002\001\001\000\006\076\u0126\077\u0127" +
 84.2034 +    "\001\001\000\002\001\001\000\002\001\001\000\060\006" +
 84.2035 +    "\102\023\u012b\026\u012d\027\202\030\225\033\310\034\211" +
 84.2036 +    "\035\210\036\217\042\222\044\224\075\u0129\100\u012a\103" +
 84.2037 +    "\220\154\221\155\215\160\227\163\205\164\175\166\u012f" +
 84.2038 +    "\167\u012c\257\207\261\200\001\001\000\002\001\001\000" +
 84.2039 +    "\002\001\001\000\002\001\001\000\002\001\001\000\006" +
 84.2040 +    "\214\u0124\216\u0136\001\001\000\002\001\001\000\002\001" +
 84.2041 +    "\001\000\002\001\001\000\006\076\u0132\077\u0127\001\001" +
 84.2042 +    "\000\002\001\001\000\012\006\102\023\u012b\075\u0129\100" +
 84.2043 +    "\u012a\001\001\000\002\001\001\000\002\001\001\000\002" +
 84.2044 +    "\001\001\000\004\101\u013b\001\001\000\002\001\001\000" +
 84.2045 +    "\002\001\001\000\002\001\001\000\006\027\160\146\u013c" +
 84.2046 +    "\001\001\000\004\143\u013d\001\001\000\002\001\001\000" +
 84.2047 +    "\002\001\001\000\010\006\102\023\u012b\100\u0141\001\001" +
 84.2048 +    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
 84.2049 +    "\014\027\045\102\u0144\103\u0146\140\u0145\152\u0147\001\001" +
 84.2050 +    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
 84.2051 +    "\002\001\001\000\002\001\001\000\002\001\001\000\006" +
 84.2052 +    "\176\u014d\312\u014c\001\001\000\002\001\001\000\012\072" +
 84.2053 +    "\u0151\074\u0153\313\u0152\314\u014f\001\001\000\004\173\u014e" +
 84.2054 +    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
 84.2055 +    "\001\000\002\001\001\000\004\176\u0157\001\001\000\002" +
 84.2056 +    "\001\001\000\014\027\045\102\u0144\103\u0146\140\u0145\152" +
 84.2057 +    "\u0155\001\001\000\002\001\001\000\002\001\001\000\004" +
 84.2058 +    "\173\u014e\001\001\000\002\001\001\000\122\002\124\003" +
 84.2059 +    "\062\004\054\005\101\006\102\011\105\012\u015a\013\066" +
 84.2060 +    "\016\052\020\123\022\060\023\061\025\117\072\076\073" +
 84.2061 +    "\023\074\072\105\070\106\036\107\071\110\103\114\107" +
 84.2062 +    "\117\115\120\077\121\106\134\113\136\064\144\065\173" +
 84.2063 +    "\122\177\100\200\111\201\056\253\063\254\110\272\024" +
 84.2064 +    "\274\017\275\121\302\053\344\112\345\114\346\055\001" +
 84.2065 +    "\001\000\004\066\u015c\001\001\000\116\026\u016e\027\202" +
 84.2066 +    "\030\225\044\u0162\045\u017e\046\u016c\047\u016a\050\u0188\051" +
 84.2067 +    "\u0173\052\u0170\056\u0177\061\u0179\064\u0185\067\u016b\071\u0165" +
 84.2068 +    "\103\220\104\u0180\122\u018a\123\u018b\135\u0171\137\u0169\147" +
 84.2069 +    "\u0160\150\u0178\153\u018c\157\u0164\162\u0187\163\205\164\175" +
 84.2070 +    "\173\u018d\262\u0189\263\u0167\264\u0166\265\u016d\316\u017a\321" +
 84.2071 +    "\u0172\322\u016f\323\u0161\324\u0181\001\001\000\002\001\001" +
 84.2072 +    "\000\014\027\045\102\u0144\103\u0146\140\u0145\152\u015e\001" +
 84.2073 +    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
 84.2074 +    "\000\002\001\001\000\002\001\001\000\016\026\u0230\027" +
 84.2075 +    "\202\030\225\103\220\163\205\164\175\001\001\000\002" +
 84.2076 +    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
 84.2077 +    "\001\000\050\026\231\027\202\030\225\031\u0224\032\201" +
 84.2078 +    "\033\213\034\211\035\210\036\217\042\222\044\224\103" +
 84.2079 +    "\220\154\221\155\215\160\227\163\205\164\175\257\207" +
 84.2080 +    "\261\200\001\001\000\002\001\001\000\002\001\001\000" +
 84.2081 +    "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
 84.2082 +    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
 84.2083 +    "\001\000\002\001\001\000\002\001\001\000\036\026\u01fd" +
 84.2084 +    "\027\202\030\225\103\220\122\u01f4\157\u01f8\163\205\164" +
 84.2085 +    "\175\264\u01fb\316\u017a\317\u01f5\325\u01fc\327\u01f6\331\u01f7" +
 84.2086 +    "\001\001\000\020\026\u0191\027\202\030\225\070\u01ef\103" +
 84.2087 +    "\220\163\205\164\175\001\001\000\054\026\231\027\202" +
 84.2088 +    "\030\225\031\u019b\032\201\033\213\034\211\035\210\036" +
 84.2089 +    "\217\042\222\044\224\053\u01e1\054\u01e2\103\220\154\221" +
 84.2090 +    "\155\215\160\227\163\205\164\175\257\207\261\200\001" +
 84.2091 +    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
 84.2092 +    "\000\002\001\001\000\050\026\231\027\202\030\225\031" +
 84.2093 +    "\u01d9\032\201\033\213\034\211\035\210\036\217\042\222" +
 84.2094 +    "\044\224\103\220\154\221\155\215\160\227\163\205\164" +
 84.2095 +    "\175\257\207\261\200\001\001\000\020\026\u01d3\027\202" +
 84.2096 +    "\030\225\103\220\124\u01d4\163\205\164\175\001\001\000" +
 84.2097 +    "\002\001\001\000\116\026\u016e\027\202\030\225\044\u0162" +
 84.2098 +    "\046\u016c\047\u016a\050\u0188\051\u0173\052\u0170\056\u0177\061" +
 84.2099 +    "\u0179\064\u0185\067\u016b\071\u0165\103\220\104\u0180\122\u018a" +
 84.2100 +    "\123\u018b\135\u0171\137\u0169\150\u01a0\153\u018c\157\u0164\162" +
 84.2101 +    "\u0187\163\205\164\175\173\u018d\262\u0189\263\u0167\264\u0166" +
 84.2102 +    "\265\u016d\270\u01c1\271\u01bf\316\u017a\321\u0172\322\u016f\323" +
 84.2103 +    "\u0161\324\u0181\001\001\000\002\001\001\000\002\001\001" +
 84.2104 +    "\000\002\001\001\000\006\027\u01b9\320\u01b8\001\001\000" +
 84.2105 +    "\016\026\u01b6\027\202\030\225\103\220\163\205\164\175" +
 84.2106 +    "\001\001\000\050\026\231\027\202\030\225\031\u01b1\032" +
 84.2107 +    "\201\033\213\034\211\035\210\036\217\042\222\044\224" +
 84.2108 +    "\103\220\154\221\155\215\160\227\163\205\164\175\257" +
 84.2109 +    "\207\261\200\001\001\000\002\001\001\000\002\001\001" +
 84.2110 +    "\000\010\063\u0199\065\u0196\266\u0198\001\001\000\002\001" +
 84.2111 +    "\001\000\112\026\u016e\027\202\030\225\044\u0162\046\u016c" +
 84.2112 +    "\047\u016a\050\u0188\051\u0173\052\u0170\056\u0177\061\u0179\064" +
 84.2113 +    "\u0185\067\u016b\071\u0165\103\220\104\u0180\122\u018a\123\u018b" +
 84.2114 +    "\135\u0171\137\u0169\150\u0194\153\u018c\157\u0164\162\u0187\163" +
 84.2115 +    "\205\164\175\173\u018d\262\u0189\263\u0167\264\u0166\265\u016d" +
 84.2116 +    "\316\u017a\321\u0172\322\u016f\323\u0161\324\u0181\001\001\000" +
 84.2117 +    "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
 84.2118 +    "\001\001\000\020\026\u0191\027\202\030\225\070\u0192\103" +
 84.2119 +    "\220\163\205\164\175\001\001\000\002\001\001\000\002" +
 84.2120 +    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
 84.2121 +    "\001\000\002\001\001\000\122\002\124\003\062\004\054" +
 84.2122 +    "\005\101\006\102\011\105\012\u01ae\013\066\016\052\020" +
 84.2123 +    "\123\022\060\023\061\025\117\072\076\073\023\074\072" +
 84.2124 +    "\105\070\106\036\107\071\110\103\114\107\117\115\120" +
 84.2125 +    "\077\121\106\134\113\136\064\144\065\173\122\177\100" +
 84.2126 +    "\200\111\201\056\253\063\254\110\272\024\274\017\275" +
 84.2127 +    "\121\302\053\344\112\345\114\346\055\001\001\000\004" +
 84.2128 +    "\066\u01aa\001\001\000\002\001\001\000\004\267\u01a5\001" +
 84.2129 +    "\001\000\004\062\u019d\001\001\000\052\026\231\027\202" +
 84.2130 +    "\030\225\031\u019b\032\201\033\213\034\211\035\210\036" +
 84.2131 +    "\217\042\222\044\224\054\u019c\103\220\154\221\155\215" +
 84.2132 +    "\160\227\163\205\164\175\257\207\261\200\001\001\000" +
 84.2133 +    "\006\037\322\170\316\001\001\000\002\001\001\000\014" +
 84.2134 +    "\027\045\102\u0144\103\u0146\140\u0145\152\u01a3\001\001\000" +
 84.2135 +    "\114\026\u016e\027\202\030\225\044\u0162\045\u019f\046\u016c" +
 84.2136 +    "\047\u016a\050\u0188\051\u0173\052\u0170\056\u0177\061\u0179\064" +
 84.2137 +    "\u0185\067\u016b\071\u0165\103\220\104\u0180\122\u018a\123\u018b" +
 84.2138 +    "\135\u0171\137\u0169\150\u0178\153\u018c\157\u0164\162\u0187\163" +
 84.2139 +    "\205\164\175\173\u018d\262\u0189\263\u0167\264\u0166\265\u016d" +
 84.2140 +    "\316\u017a\321\u0172\322\u016f\323\u0161\324\u0181\001\001\000" +
 84.2141 +    "\112\026\u016e\027\202\030\225\044\u0162\046\u016c\047\u016a" +
 84.2142 +    "\050\u0188\051\u0173\052\u0170\056\u0177\061\u0179\064\u0185\067" +
 84.2143 +    "\u016b\071\u0165\103\220\104\u0180\122\u018a\123\u018b\135\u0171" +
 84.2144 +    "\137\u0169\150\u01a0\153\u018c\157\u0164\162\u0187\163\205\164" +
 84.2145 +    "\175\173\u018d\262\u0189\263\u0167\264\u0166\265\u016d\316\u017a" +
 84.2146 +    "\321\u0172\322\u016f\323\u0161\324\u0181\001\001\000\002\001" +
 84.2147 +    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
 84.2148 +    "\000\002\001\001\000\050\026\u012d\027\202\030\225\033" +
 84.2149 +    "\310\034\211\035\210\036\217\042\222\044\224\103\220" +
 84.2150 +    "\154\221\155\215\160\227\163\205\164\175\166\u01a7\167" +
 84.2151 +    "\u012c\257\207\261\200\001\001\000\002\001\001\000\002" +
 84.2152 +    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
 84.2153 +    "\001\000\014\027\045\102\u0144\103\u0146\140\u0145\152\u01ac" +
 84.2154 +    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
 84.2155 +    "\001\000\002\001\001\000\002\001\001\000\006\037\322" +
 84.2156 +    "\170\316\001\001\000\050\026\231\027\202\030\225\031" +
 84.2157 +    "\u01b3\032\201\033\213\034\211\035\210\036\217\042\222" +
 84.2158 +    "\044\224\103\220\154\221\155\215\160\227\163\205\164" +
 84.2159 +    "\175\257\207\261\200\001\001\000\006\037\322\170\316" +
 84.2160 +    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
 84.2161 +    "\001\000\002\001\001\000\006\076\u01ba\077\u0127\001\001" +
 84.2162 +    "\000\002\001\001\000\002\001\001\000\060\006\102\023" +
 84.2163 +    "\u012b\026\231\027\202\030\225\031\u01bc\032\201\033\213" +
 84.2164 +    "\034\211\035\210\036\217\042\222\044\224\075\u0129\100" +
 84.2165 +    "\u012a\103\220\154\221\155\215\160\227\163\205\164\175" +
 84.2166 +    "\257\207\261\200\001\001\000\006\037\322\170\316\001" +
 84.2167 +    "\001\000\002\001\001\000\002\001\001\000\004\333\u01d1" +
 84.2168 +    "\001\001\000\004\333\u01c3\001\001\000\002\001\001\000" +
 84.2169 +    "\022\026\u01c5\027\202\030\225\103\220\163\205\164\175" +
 84.2170 +    "\334\u01c7\335\u01c8\001\001\000\002\001\001\000\002\001" +
 84.2171 +    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
 84.2172 +    "\000\002\001\001\000\020\026\u01c5\027\202\030\225\103" +
 84.2173 +    "\220\163\205\164\175\335\u01cc\001\001\000\114\026\u016e" +
 84.2174 +    "\027\202\030\225\044\u0162\045\u01cb\046\u016c\047\u016a\050" +
 84.2175 +    "\u0188\051\u0173\052\u0170\056\u0177\061\u0179\064\u0185\067\u016b" +
 84.2176 +    "\071\u0165\103\220\104\u0180\122\u018a\123\u018b\135\u0171\137" +
 84.2177 +    "\u0169\150\u0178\153\u018c\157\u0164\162\u0187\163\205\164\175" +
 84.2178 +    "\173\u018d\262\u0189\263\u0167\264\u0166\265\u016d\316\u017a\321" +
 84.2179 +    "\u0172\322\u016f\323\u0161\324\u0181\001\001\000\112\026\u016e" +
 84.2180 +    "\027\202\030\225\044\u0162\046\u016c\047\u016a\050\u0188\051" +
 84.2181 +    "\u0173\052\u0170\056\u0177\061\u0179\064\u0185\067\u016b\071\u0165" +
 84.2182 +    "\103\220\104\u0180\122\u018a\123\u018b\135\u0171\137\u0169\150" +
 84.2183 +    "\u01a0\153\u018c\157\u0164\162\u0187\163\205\164\175\173\u018d" +
 84.2184 +    "\262\u0189\263\u0167\264\u0166\265\u016d\316\u017a\321\u0172\322" +
 84.2185 +    "\u016f\323\u0161\324\u0181\001\001\000\002\001\001\000\022" +
 84.2186 +    "\026\u01c5\027\202\030\225\103\220\163\205\164\175\334" +
 84.2187 +    "\u01ce\335\u01c8\001\001\000\002\001\001\000\114\026\u016e" +
 84.2188 +    "\027\202\030\225\044\u0162\045\u01d0\046\u016c\047\u016a\050" +
 84.2189 +    "\u0188\051\u0173\052\u0170\056\u0177\061\u0179\064\u0185\067\u016b" +
 84.2190 +    "\071\u0165\103\220\104\u0180\122\u018a\123\u018b\135\u0171\137" +
 84.2191 +    "\u0169\150\u0178\153\u018c\157\u0164\162\u0187\163\205\164\175" +
 84.2192 +    "\173\u018d\262\u0189\263\u0167\264\u0166\265\u016d\316\u017a\321" +
 84.2193 +    "\u0172\322\u016f\323\u0161\324\u0181\001\001\000\112\026\u016e" +
 84.2194 +    "\027\202\030\225\044\u0162\046\u016c\047\u016a\050\u0188\051" +
 84.2195 +    "\u0173\052\u0170\056\u0177\061\u0179\064\u0185\067\u016b\071\u0165" +
 84.2196 +    "\103\220\104\u0180\122\u018a\123\u018b\135\u0171\137\u0169\150" +
 84.2197 +    "\u01a0\153\u018c\157\u0164\162\u0187\163\205\164\175\173\u018d" +
 84.2198 +    "\262\u0189\263\u0167\264\u0166\265\u016d\316\u017a\321\u0172\322" +
 84.2199 +    "\u016f\323\u0161\324\u0181\001\001\000\002\001\001\000\002" +
 84.2200 +    "\001\001\000\002\001\001\000\002\001\001\000\016\026" +
 84.2201 +    "\u01d7\027\202\030\225\103\220\163\205\164\175\001\001" +
 84.2202 +    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
 84.2203 +    "\006\037\322\170\316\001\001\000\002\001\001\000\116" +
 84.2204 +    "\026\u016e\027\202\030\225\044\u0162\045\u017e\046\u016c\047" +
 84.2205 +    "\u016a\050\u0188\051\u0173\052\u0170\056\u0177\061\u0179\064\u0185" +
 84.2206 +    "\067\u016b\071\u0165\103\220\104\u0180\122\u018a\123\u018b\135" +
 84.2207 +    "\u0171\137\u0169\147\u01dd\150\u0178\153\u018c\157\u0164\162\u0187" +
 84.2208 +    "\163\205\164\175\173\u018d\262\u0189\263\u0167\264\u0166\265" +
 84.2209 +    "\u016d\316\u017a\321\u0172\322\u016f\323\u0161\324\u0181\001\001" +
 84.2210 +    "\000\002\001\001\000\002\001\001\000\014\027\045\102" +
 84.2211 +    "\u0144\103\u0146\140\u0145\152\u01df\001\001\000\002\001\001" +
 84.2212 +    "\000\002\001\001\000\004\055\u01e7\001\001\000\002\001" +
 84.2213 +    "\001\000\114\026\u016e\027\202\030\225\044\u0162\045\u01e4" +
 84.2214 +    "\046\u016c\047\u016a\050\u0188\051\u0173\052\u0170\056\u0177\061" +
 84.2215 +    "\u0179\064\u0185\067\u016b\071\u0165\103\220\104\u0180\122\u018a" +
 84.2216 +    "\123\u018b\135\u0171\137\u0169\150\u0178\153\u018c\157\u0164\162" +
 84.2217 +    "\u0187\163\205\164\175\173\u018d\262\u0189\263\u0167\264\u0166" +
 84.2218 +    "\265\u016d\316\u017a\321\u0172\322\u016f\323\u0161\324\u0181\001" +
 84.2219 +    "\001\000\112\026\u016e\027\202\030\225\044\u0162\046\u016c" +
 84.2220 +    "\047\u016a\050\u0188\051\u0173\052\u0170\056\u0177\061\u0179\064" +
 84.2221 +    "\u0185\067\u016b\071\u0165\103\220\104\u0180\122\u018a\123\u018b" +
 84.2222 +    "\135\u0171\137\u0169\150\u01a0\153\u018c\157\u0164\162\u0187\163" +
 84.2223 +    "\205\164\175\173\u018d\262\u0189\263\u0167\264\u0166\265\u016d" +
 84.2224 +    "\316\u017a\321\u0172\322\u016f\323\u0161\324\u0181\001\001\000" +
 84.2225 +    "\114\026\u016e\027\202\030\225\044\u0162\045\u01ee\046\u016c" +
 84.2226 +    "\047\u016a\050\u0188\051\u0173\052\u0170\056\u0177\061\u0179\064" +
 84.2227 +    "\u0185\067\u016b\071\u0165\103\220\104\u0180\122\u018a\123\u018b" +
 84.2228 +    "\135\u0171\137\u0169\150\u0178\153\u018c\157\u0164\162\u0187\163" +
 84.2229 +    "\205\164\175\173\u018d\262\u0189\263\u0167\264\u0166\265\u016d" +
 84.2230 +    "\316\u017a\321\u0172\322\u016f\323\u0161\324\u0181\001\001\000" +
 84.2231 +    "\052\026\231\027\202\030\225\031\u019b\032\201\033\213" +
 84.2232 +    "\034\211\035\210\036\217\042\222\044\224\054\u01eb\103" +
 84.2233 +    "\220\154\221\155\215\160\227\163\205\164\175\257\207" +
 84.2234 +    "\261\200\001\001\000\002\001\001\000\002\001\001\000" +
 84.2235 +    "\002\001\001\000\002\001\001\000\002\001\001\000\114" +
 84.2236 +    "\026\u016e\027\202\030\225\044\u0162\045\u01ed\046\u016c\047" +
 84.2237 +    "\u016a\050\u0188\051\u0173\052\u0170\056\u0177\061\u0179\064\u0185" +
 84.2238 +    "\067\u016b\071\u0165\103\220\104\u0180\122\u018a\123\u018b\135" +
 84.2239 +    "\u0171\137\u0169\150\u0178\153\u018c\157\u0164\162\u0187\163\205" +
 84.2240 +    "\164\175\173\u018d\262\u0189\263\u0167\264\u0166\265\u016d\316" +
 84.2241 +    "\u017a\321\u0172\322\u016f\323\u0161\324\u0181\001\001\000\112" +
 84.2242 +    "\026\u016e\027\202\030\225\044\u0162\046\u016c\047\u016a\050" +
 84.2243 +    "\u0188\051\u0173\052\u0170\056\u0177\061\u0179\064\u0185\067\u016b" +
 84.2244 +    "\071\u0165\103\220\104\u0180\122\u018a\123\u018b\135\u0171\137" +
 84.2245 +    "\u0169\150\u01a0\153\u018c\157\u0164\162\u0187\163\205\164\175" +
 84.2246 +    "\173\u018d\262\u0189\263\u0167\264\u0166\265\u016d\316\u017a\321" +
 84.2247 +    "\u0172\322\u016f\323\u0161\324\u0181\001\001\000\112\026\u016e" +
 84.2248 +    "\027\202\030\225\044\u0162\046\u016c\047\u016a\050\u0188\051" +
 84.2249 +    "\u0173\052\u0170\056\u0177\061\u0179\064\u0185\067\u016b\071\u0165" +
 84.2250 +    "\103\220\104\u0180\122\u018a\123\u018b\135\u0171\137\u0169\150" +
 84.2251 +    "\u01a0\153\u018c\157\u0164\162\u0187\163\205\164\175\173\u018d" +
 84.2252 +    "\262\u0189\263\u0167\264\u0166\265\u016d\316\u017a\321\u0172\322" +
 84.2253 +    "\u016f\323\u0161\324\u0181\001\001\000\004\156\u01f0\001\001" +
 84.2254 +    "\000\002\001\001\000\052\026\231\027\202\030\225\031" +
 84.2255 +    "\u019b\032\201\033\213\034\211\035\210\036\217\042\222" +
 84.2256 +    "\044\224\054\u01f2\103\220\154\221\155\215\160\227\163" +
 84.2257 +    "\205\164\175\257\207\261\200\001\001\000\002\001\001" +
 84.2258 +    "\000\002\001\001\000\116\026\u016e\027\202\030\225\044" +
 84.2259 +    "\u0162\045\u0205\046\u016c\047\u016a\050\u0188\051\u0173\052\u0170" +
 84.2260 +    "\056\u0177\061\u0179\064\u0185\067\u016b\071\u0165\103\220\104" +
 84.2261 +    "\u0180\122\u018a\123\u018b\135\u0171\137\u0169\150\u0178\153\u018c" +
 84.2262 +    "\157\u0164\162\u0187\163\205\164\175\173\u018d\262\u0189\263" +
 84.2263 +    "\u0167\264\u0166\265\u016d\316\u017a\321\u0172\322\u016f\323\u0161" +
 84.2264 +    "\324\u0181\330\u0220\001\001\000\116\026\u016e\027\202\030" +
 84.2265 +    "\225\044\u0162\045\u0205\046\u016c\047\u016a\050\u0188\051\u0173" +
 84.2266 +    "\052\u0170\056\u0177\061\u0179\064\u0185\067\u016b\071\u0165\103" +
 84.2267 +    "\220\104\u0180\122\u018a\123\u018b\135\u0171\137\u0169\150\u0178" +
 84.2268 +    "\153\u018c\157\u0164\162\u0187\163\205\164\175\173\u018d\262" +
 84.2269 +    "\u0189\263\u0167\264\u0166\265\u016d\316\u017a\321\u0172\322\u016f" +
 84.2270 +    "\323\u0161\324\u0181\330\u0214\001\001\000\002\001\001\000" +
 84.2271 +    "\002\001\001\000\002\001\001\000\002\001\001\000\052" +
 84.2272 +    "\026\231\027\202\030\225\031\u019b\032\201\033\213\034" +
 84.2273 +    "\211\035\210\036\217\042\222\044\224\054\u020a\103\220" +
 84.2274 +    "\154\221\155\215\160\227\163\205\164\175\257\207\261" +
 84.2275 +    "\200\001\001\000\116\026\u016e\027\202\030\225\044\u0162" +
 84.2276 +    "\045\u0205\046\u016c\047\u016a\050\u0188\051\u0173\052\u0170\056" +
 84.2277 +    "\u0177\061\u0179\064\u0185\067\u016b\071\u0165\103\220\104\u0180" +
 84.2278 +    "\122\u018a\123\u018b\135\u0171\137\u0169\150\u0178\153\u018c\157" +
 84.2279 +    "\u0164\162\u0187\163\205\164\175\173\u018d\262\u0189\263\u0167" +
 84.2280 +    "\264\u0166\265\u016d\316\u017a\321\u0172\322\u016f\323\u0161\324" +
 84.2281 +    "\u0181\330\u0209\001\001\000\004\326\u01ff\001\001\000\002" +
 84.2282 +    "\001\001\000\002\001\001\000\004\055\u0200\001\001\000" +
 84.2283 +    "\002\001\001\000\014\122\u0202\264\u01fb\316\u017a\325\u0203" +
 84.2284 +    "\327\u01f6\001\001\000\116\026\u016e\027\202\030\225\044" +
 84.2285 +    "\u0162\045\u0205\046\u016c\047\u016a\050\u0188\051\u0173\052\u0170" +
 84.2286 +    "\056\u0177\061\u0179\064\u0185\067\u016b\071\u0165\103\220\104" +
 84.2287 +    "\u0180\122\u018a\123\u018b\135\u0171\137\u0169\150\u0178\153\u018c" +
 84.2288 +    "\157\u0164\162\u0187\163\205\164\175\173\u018d\262\u0189\263" +
 84.2289 +    "\u0167\264\u0166\265\u016d\316\u017a\321\u0172\322\u016f\323\u0161" +
 84.2290 +    "\324\u0181\330\u0204\001\001\000\002\001\001\000\002\001" +
 84.2291 +    "\001\000\112\026\u016e\027\202\030\225\044\u0162\046\u016c" +
 84.2292 +    "\047\u016a\050\u0188\051\u0173\052\u0170\056\u0177\061\u0179\064" +
 84.2293 +    "\u0185\067\u016b\071\u0165\103\220\104\u0180\122\u018a\123\u018b" +
 84.2294 +    "\135\u0171\137\u0169\150\u01a0\153\u018c\157\u0164\162\u0187\163" +
 84.2295 +    "\205\164\175\173\u018d\262\u0189\263\u0167\264\u0166\265\u016d" +
 84.2296 +    "\316\u017a\321\u0172\322\u016f\323\u0161\324\u0181\001\001\000" +
 84.2297 +    "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
 84.2298 +    "\001\001\000\002\001\001\000\012\122\u0202\264\u01fb\316" +
 84.2299 +    "\u017a\327\u020c\001\001\000\002\001\001\000\002\001\001" +
 84.2300 +    "\000\002\001\001\000\114\026\u016e\027\202\030\225\044" +
 84.2301 +    "\u0162\045\u0210\046\u016c\047\u016a\050\u0188\051\u0173\052\u0170" +
 84.2302 +    "\056\u0177\061\u0179\064\u0185\067\u016b\071\u0165\103\220\104" +
 84.2303 +    "\u0180\122\u018a\123\u018b\135\u0171\137\u0169\150\u0178\153\u018c" +
 84.2304 +    "\157\u0164\162\u0187\163\205\164\175\173\u018d\262\u0189\263" +
 84.2305 +    "\u0167\264\u0166\265\u016d\316\u017a\321\u0172\322\u016f\323\u0161" +
 84.2306 +    "\324\u0181\001\001\000\112\026\u016e\027\202\030\225\044" +
 84.2307 +    "\u0162\046\u016c\047\u016a\050\u0188\051\u0173\052\u0170\056\u0177" +
 84.2308 +    "\061\u0179\064\u0185\067\u016b\071\u0165\103\220\104\u0180\122" +
 84.2309 +    "\u018a\123\u018b\135\u0171\137\u0169\150\u01a0\153\u018c\157\u0164" +
 84.2310 +    "\162\u0187\163\205\164\175\173\u018d\262\u0189\263\u0167\264" +
 84.2311 +    "\u0166\265\u016d\316\u017a\321\u0172\322\u016f\323\u0161\324\u0181" +
 84.2312 +    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
 84.2313 +    "\001\000\002\001\001\000\114\026\u016e\027\202\030\225" +
 84.2314 +    "\044\u0162\045\u021c\046\u016c\047\u016a\050\u0188\051\u0173\052" +
 84.2315 +    "\u0170\056\u0177\061\u0179\064\u0185\067\u016b\071\u0165\103\220" +
 84.2316 +    "\104\u0180\122\u018a\123\u018b\135\u0171\137\u0169\150\u0178\153" +
 84.2317 +    "\u018c\157\u0164\162\u0187\163\205\164\175\173\u018d\262\u0189" +
 84.2318 +    "\263\u0167\264\u0166\265\u016d\316\u017a\321\u0172\322\u016f\323" +
 84.2319 +    "\u0161\324\u0181\001\001\000\004\122\u0217\001\001\000\116" +
 84.2320 +    "\026\u016e\027\202\030\225\044\u0162\045\u0205\046\u016c\047" +
 84.2321 +    "\u016a\050\u0188\051\u0173\052\u0170\056\u0177\061\u0179\064\u0185" +
 84.2322 +    "\067\u016b\071\u0165\103\220\104\u0180\122\u018a\123\u018b\135" +
 84.2323 +    "\u0171\137\u0169\150\u0178\153\u018c\157\u0164\162\u0187\163\205" +
 84.2324 +    "\164\175\173\u018d\262\u0189\263\u0167\264\u0166\265\u016d\316" +
 84.2325 +    "\u017a\321\u0172\322\u016f\323\u0161\324\u0181\330\u0218\001\001" +
 84.2326 +    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
 84.2327 +    "\002\001\001\000\112\026\u016e\027\202\030\225\044\u0162" +
 84.2328 +    "\046\u016c\047\u016a\050\u0188\051\u0173\052\u0170\056\u0177\061" +
 84.2329 +    "\u0179\064\u0185\067\u016b\071\u0165\103\220\104\u0180\122\u018a" +
 84.2330 +    "\123\u018b\135\u0171\137\u0169\150\u01a0\153\u018c\157\u0164\162" +
 84.2331 +    "\u0187\163\205\164\175\173\u018d\262\u0189\263\u0167\264\u0166" +
 84.2332 +    "\265\u016d\316\u017a\321\u0172\322\u016f\323\u0161\324\u0181\001" +
 84.2333 +    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
 84.2334 +    "\000\002\001\001\000\050\026\231\027\202\030\225\031" +
 84.2335 +    "\u0222\032\201\033\213\034\211\035\210\036\217\042\222" +
 84.2336 +    "\044\224\103\220\154\221\155\215\160\227\163\205\164" +
 84.2337 +    "\175\257\207\261\200\001\001\000\006\037\322\170\316" +
 84.2338 +    "\001\001\000\002\001\001\000\006\037\322\170\316\001" +
 84.2339 +    "\001\000\004\176\u0226\001\001\000\006\057\u0227\173\u014e" +
 84.2340 +    "\001\001\000\004\060\u0228\001\001\000\002\001\001\000" +
 84.2341 +    "\060\026\246\027\202\030\225\031\345\032\201\033\256" +
 84.2342 +    "\034\211\035\210\036\217\042\222\044\224\103\220\154" +
 84.2343 +    "\221\155\215\160\227\161\u022d\163\205\164\175\167\244" +
 84.2344 +    "\250\251\251\343\257\207\261\200\001\001\000\002\001" +
 84.2345 +    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
 84.2346 +    "\000\114\026\u016e\027\202\030\225\044\u0162\045\u022f\046" +
 84.2347 +    "\u016c\047\u016a\050\u0188\051\u0173\052\u0170\056\u0177\061\u0179" +
 84.2348 +    "\064\u0185\067\u016b\071\u0165\103\220\104\u0180\122\u018a\123" +
 84.2349 +    "\u018b\135\u0171\137\u0169\150\u0178\153\u018c\157\u0164\162\u0187" +
 84.2350 +    "\163\205\164\175\173\u018d\262\u0189\263\u0167\264\u0166\265" +
 84.2351 +    "\u016d\316\u017a\321\u0172\322\u016f\323\u0161\324\u0181\001\001" +
 84.2352 +    "\000\112\026\u016e\027\202\030\225\044\u0162\046\u016c\047" +
 84.2353 +    "\u016a\050\u0188\051\u0173\052\u0170\056\u0177\061\u0179\064\u0185" +
 84.2354 +    "\067\u016b\071\u0165\103\220\104\u0180\122\u018a\123\u018b\135" +
 84.2355 +    "\u0171\137\u0169\150\u01a0\153\u018c\157\u0164\162\u0187\163\205" +
 84.2356 +    "\164\175\173\u018d\262\u0189\263\u0167\264\u0166\265\u016d\316" +
 84.2357 +    "\u017a\321\u0172\322\u016f\323\u0161\324\u0181\001\001\000\002" +
 84.2358 +    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
 84.2359 +    "\001\000\002\001\001\000\002\001\001\000\006\076\u0237" +
 84.2360 +    "\077\u0127\001\001\000\002\001\001\000\014\006\102\023" +
 84.2361 +    "\u012b\075\u0129\100\u012a\266\u0239\001\001\000\050\026\u012d" +
 84.2362 +    "\027\202\030\225\033\310\034\211\035\210\036\217\042" +
 84.2363 +    "\222\044\224\103\220\154\221\155\215\160\227\163\205" +
 84.2364 +    "\164\175\166\u023a\167\u012c\257\207\261\200\001\001\000" +
 84.2365 +    "\002\001\001\000\006\076\u023c\077\u0127\001\001\000\002" +
 84.2366 +    "\001\001\000\052\026\231\027\202\030\225\031\u019b\032" +
 84.2367 +    "\201\033\213\034\211\035\210\036\217\042\222\044\224" +
 84.2368 +    "\054\u023e\103\220\154\221\155\215\160\227\163\205\164" +
 84.2369 +    "\175\257\207\261\200\001\001\000\004\315\u0241\001\001" +
 84.2370 +    "\000\002\001\001\000\122\002\124\003\062\004\054\005" +
 84.2371 +    "\101\006\102\011\105\012\u0242\013\066\016\052\020\123" +
 84.2372 +    "\022\060\023\061\025\117\072\076\073\023\074\072\105" +
 84.2373 +    "\070\106\036\107\071\110\103\114\107\117\115\120\077" +
 84.2374 +    "\121\106\134\113\136\064\144\065\173\122\177\100\200" +
 84.2375 +    "\111\201\056\253\063\254\110\272\024\274\017\275\121" +
 84.2376 +    "\302\053\344\112\345\114\346\055\001\001\000\002\001" +
 84.2377 +    "\001\000\004\066\u0243\001\001\000\002\001\001\000\014" +
 84.2378 +    "\027\045\102\u0144\103\u0146\140\u0145\152\u0245\001\001\000" +
 84.2379 +    "\002\001\001\000\002\001\001\000\052\026\231\027\202" +
 84.2380 +    "\030\225\031\u019b\032\201\033\213\034\211\035\210\036" +
 84.2381 +    "\217\042\222\044\224\054\u0248\103\220\154\221\155\215" +
 84.2382 +    "\160\227\163\205\164\175\257\207\261\200\001\001\000" +
 84.2383 +    "\004\315\u0249\001\001\000\002\001\001\000\002\001\001" +
 84.2384 +    "\000\002\001\001\000\002\001\001\000\016\026\u0256\027" +
 84.2385 +    "\202\030\225\103\220\163\205\164\175\001\001\000\124" +
 84.2386 +    "\002\124\003\062\004\054\005\101\006\102\011\105\012" +
 84.2387 +    "\u015a\013\066\016\052\020\123\022\060\023\061\025\117" +
 84.2388 +    "\072\076\073\023\074\072\105\070\106\036\107\071\110" +
 84.2389 +    "\103\114\107\117\115\120\077\121\106\134\113\136\064" +
 84.2390 +    "\144\065\173\122\177\100\200\111\201\056\253\063\254" +
 84.2391 +    "\110\272\024\274\017\275\121\302\053\343\u0250\344\112" +
 84.2392 +    "\345\114\346\055\001\001\000\002\001\001\000\002\001" +
 84.2393 +    "\001\000\002\001\001\000\016\026\u0253\027\202\030\225" +
 84.2394 +    "\103\220\163\205\164\175\001\001\000\002\001\001\000" +
 84.2395 +    "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
 84.2396 +    "\001\001\000\002\001\001\000\020\021\u025a\026\u011b\027" +
 84.2397 +    "\202\030\225\103\220\163\205\164\175\001\001\000\002" +
 84.2398 +    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
 84.2399 +    "\001\000\010\027\045\140\u025f\141\u0260\001\001\000\002" +
 84.2400 +    "\001\001\000\002\001\001\000\002\001\001\000\006\202" +
 84.2401 +    "\u0263\203\140\001\001\000\004\145\u0264\001\001\000\002" +
 84.2402 +    "\001\001\000\042\017\u026c\111\u0272\112\u0268\204\u0267\205" +
 84.2403 +    "\u0271\206\u0275\207\u027b\210\u026f\211\u026b\212\u0277\214\u027a" +
 84.2404 +    "\222\u026d\224\u0270\225\u0276\226\u027d\227\u027e\001\001\000" +
 84.2405 +    "\050\026\231\027\202\030\225\031\u02e0\032\201\033\213" +
 84.2406 +    "\034\211\035\210\036\217\042\222\044\224\103\220\154" +
 84.2407 +    "\221\155\215\160\227\163\205\164\175\257\207\261\200" +
 84.2408 +    "\001\001\000\002\001\001\000\004\113\u02dd\001\001\000" +
 84.2409 +    "\002\001\001\000\022\021\u02d3\026\u011b\027\202\030\225" +
 84.2410 +    "\103\220\163\205\164\175\252\u02d0\001\001\000\002\001" +
 84.2411 +    "\001\000\002\001\001\000\002\001\001\000\006\220\u02cb" +
 84.2412 +    "\221\u02ca\001\001\000\002\001\001\000\002\001\001\000" +
 84.2413 +    "\002\001\001\000\002\001\001\000\050\026\231\027\202" +
 84.2414 +    "\030\225\031\u02c3\032\201\033\213\034\211\035\210\036" +
 84.2415 +    "\217\042\222\044\224\103\220\154\221\155\215\160\227" +
 84.2416 +    "\163\205\164\175\257\207\261\200\001\001\000\050\026" +
 84.2417 +    "\231\027\202\030\225\031\u02c0\032\201\033\213\034\211" +
 84.2418 +    "\035\210\036\217\042\222\044\224\103\220\154\221\155" +
 84.2419 +    "\215\160\227\163\205\164\175\257\207\261\200\001\001" +
 84.2420 +    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
 84.2421 +    "\002\001\001\000\020\021\u0294\026\u011b\027\202\030\225" +
 84.2422 +    "\103\220\163\205\164\175\001\001\000\002\001\001\000" +
 84.2423 +    "\002\001\001\000\004\234\u027f\001\001\000\002\001\001" +
 84.2424 +    "\000\002\001\001\000\002\001\001\000\056\026\u0285\027" +
 84.2425 +    "\202\030\225\033\310\034\211\035\210\036\217\042\222" +
 84.2426 +    "\044\224\103\220\154\221\155\215\160\227\163\205\164" +
 84.2427 +    "\175\166\u0284\167\u012c\230\u0281\231\u0282\235\u0283\257\207" +
 84.2428 +    "\261\200\001\001\000\002\001\001\000\002\001\001\000" +
 84.2429 +    "\002\001\001\000\002\001\001\000\006\214\u0124\216\u0136" +
 84.2430 +    "\001\001\000\046\026\337\027\202\030\225\033\310\034" +
 84.2431 +    "\211\035\210\036\217\042\222\044\224\103\220\154\221" +
 84.2432 +    "\155\215\160\227\163\205\164\175\167\336\257\207\261" +
 84.2433 +    "\200\001\001\000\002\001\001\000\050\026\u012d\027\202" +
 84.2434 +    "\030\225\033\310\034\211\035\210\036\217\042\222\044" +
 84.2435 +    "\224\103\220\154\221\155\215\160\227\163\205\164\175" +
 84.2436 +    "\166\u028a\167\u012c\257\207\261\200\001\001\000\002\001" +
 84.2437 +    "\001\000\002\001\001\000\020\026\u028f\027\202\030\225" +
 84.2438 +    "\103\220\163\205\164\175\231\u0290\001\001\000\002\001" +
 84.2439 +    "\001\000\006\232\u028e\233\u0117\001\001\000\002\001\001" +
 84.2440 +    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
 84.2441 +    "\006\232\u0293\233\u0117\001\001\000\002\001\001\000\002" +
 84.2442 +    "\001\001\000\004\217\u0297\001\001\000\004\176\u029b\001" +
 84.2443 +    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
 84.2444 +    "\000\002\001\001\000\020\006\102\023\u0110\173\u014e\236" +
 84.2445 +    "\u029e\237\u029d\240\u02a0\242\u02a1\001\001\000\002\001\001" +
 84.2446 +    "\000\006\176\u02b4\241\u02b3\001\001\000\002\001\001\000" +
 84.2447 +    "\004\027\u02a3\001\001\000\002\001\001\000\004\176\u02a2" +
 84.2448 +    "\001\001\000\004\173\u014e\001\001\000\002\001\001\000" +
 84.2449 +    "\004\176\u02a5\001\001\000\010\173\u014e\246\u02a8\247\u02a6" +
 84.2450 +    "\001\001\000\002\001\001\000\060\026\246\027\202\030" +
 84.2451 +    "\225\031\345\032\201\033\256\034\211\035\210\036\217" +
 84.2452 +    "\042\222\044\224\103\220\154\221\155\215\160\227\161" +
 84.2453 +    "\u02ad\163\205\164\175\167\244\250\251\251\343\257\207" +
 84.2454 +    "\261\200\001\001\000\004\247\u02a9\001\001\000\002\001" +
 84.2455 +    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
 84.2456 +    "\000\002\001\001\000\004\176\u02af\001\001\000\020\006" +
 84.2457 +    "\102\023\u0110\173\u014e\236\u02b0\237\u029d\240\u02a0\242\u02a1" +
 84.2458 +    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
 84.2459 +    "\001\000\002\001\001\000\014\006\102\023\u0110\173\u014e" +
 84.2460 +    "\240\u02b5\242\u02b6\001\001\000\002\001\001\000\004\176" +
 84.2461 +    "\u02b7\001\001\000\004\173\u014e\001\001\000\004\176\u02b9" +
 84.2462 +    "\001\001\000\004\173\u014e\001\001\000\002\001\001\000" +
 84.2463 +    "\020\021\u02bc\026\u011b\027\202\030\225\103\220\163\205" +
 84.2464 +    "\164\175\001\001\000\002\001\001\000\004\217\u02be\001" +
 84.2465 +    "\001\000\002\001\001\000\002\001\001\000\014\037\322" +
 84.2466 +    "\170\316\214\u027a\222\u02c2\223\u02c1\001\001\000\002\001" +
 84.2467 +    "\001\000\002\001\001\000\012\037\322\170\316\214\u027a" +
 84.2468 +    "\222\u02c4\001\001\000\002\001\001\000\050\026\231\027" +
 84.2469 +    "\202\030\225\031\u02c6\032\201\033\213\034\211\035\210" +
 84.2470 +    "\036\217\042\222\044\224\103\220\154\221\155\215\160" +
 84.2471 +    "\227\163\205\164\175\257\207\261\200\001\001\000\014" +
 84.2472 +    "\037\322\170\316\214\u027a\222\u02c2\223\u02c7\001\001\000" +
 84.2473 +    "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
 84.2474 +    "\001\001\000\002\001\001\000\004\221\u02ce\001\001\000" +
 84.2475 +    "\002\001\001\000\002\001\001\000\020\021\u02db\026\u011b" +
 84.2476 +    "\027\202\030\225\103\220\163\205\164\175\001\001\000" +
 84.2477 +    "\002\001\001\000\020\021\u02d4\026\u011b\027\202\030\225" +
 84.2478 +    "\103\220\163\205\164\175\001\001\000\002\001\001\000" +
 84.2479 +    "\002\001\001\000\002\001\001\000\006\076\u02da\077\u0127" +
 84.2480 +    "\001\001\000\006\076\u02d7\077\u0127\001\001\000\002\001" +
 84.2481 +    "\001\000\006\027\160\146\u02d9\001\001\000\002\001\001" +
 84.2482 +    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
 84.2483 +    "\004\217\u02de\001\001\000\002\001\001\000\002\001\001" +
 84.2484 +    "\000\006\037\322\170\316\001\001\000\002\001\001\000" +
 84.2485 +    "\002\001\001\000\050\026\231\027\202\030\225\031\u02e5" +
 84.2486 +    "\032\201\033\213\034\211\035\210\036\217\042\222\044" +
 84.2487 +    "\224\103\220\154\221\155\215\160\227\163\205\164\175" +
 84.2488 +    "\257\207\261\200\001\001\000\050\026\231\027\202\030" +
 84.2489 +    "\225\031\u02f7\032\201\033\213\034\211\035\210\036\217" +
 84.2490 +    "\042\222\044\224\103\220\154\221\155\215\160\227\163" +
 84.2491 +    "\205\164\175\257\207\261\200\001\001\000\006\037\322" +
 84.2492 +    "\170\316\001\001\000\004\347\u02e8\001\001\000\002\001" +
 84.2493 +    "\001\000\004\350\u02e9\001\001\000\006\027\160\146\u02eb" +
 84.2494 +    "\001\001\000\002\001\001\000\002\001\001\000\050\026" +
 84.2495 +    "\231\027\202\030\225\031\u02ed\032\201\033\213\034\211" +
 84.2496 +    "\035\210\036\217\042\222\044\224\103\220\154\221\155" +
 84.2497 +    "\215\160\227\163\205\164\175\257\207\261\200\001\001" +
 84.2498 +    "\000\006\037\322\170\316\001\001\000\046\026\337\027" +
 84.2499 +    "\202\030\225\033\310\034\211\035\210\036\217\042\222" +
 84.2500 +    "\044\224\103\220\154\221\155\215\160\227\163\205\164" +
 84.2501 +    "\175\167\u02ef\257\207\261\200\001\001\000\002\001\001" +
 84.2502 +    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
 84.2503 +    "\050\026\231\027\202\030\225\031\u02f4\032\201\033\213" +
 84.2504 +    "\034\211\035\210\036\217\042\222\044\224\103\220\154" +
 84.2505 +    "\221\155\215\160\227\163\205\164\175\257\207\261\200" +
 84.2506 +    "\001\001\000\006\037\322\170\316\001\001\000\002\001" +
 84.2507 +    "\001\000\002\001\001\000\006\037\322\170\316\001\001" +
 84.2508 +    "\000\002\001\001\000\002\001\001\000\004\024\u02fe\001" +
 84.2509 +    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
 84.2510 +    "\000\030\021\u0300\026\u011b\027\202\030\225\103\220\142" +
 84.2511 +    "\u02ff\163\205\164\175\207\u0301\226\u027d\227\u027e\001\001" +
 84.2512 +    "\000\004\143\u0305\001\001\000\002\001\001\000\002\001" +
 84.2513 +    "\001\000\016\026\u0303\027\202\030\225\103\220\163\205" +
 84.2514 +    "\164\175\001\001\000\002\001\001\000\002\001\001\000" +
 84.2515 +    "\002\001\001\000\002\001\001\000\050\026\231\027\202" +
 84.2516 +    "\030\225\031\u0308\032\201\033\213\034\211\035\210\036" +
 84.2517 +    "\217\042\222\044\224\103\220\154\221\155\215\160\227" +
 84.2518 +    "\163\205\164\175\257\207\261\200\001\001\000\006\037" +
 84.2519 +    "\322\170\316\001\001\000\002\001\001\000\002\001\001" +
 84.2520 +    "\000\002\001\001\000\016\026\u030d\027\202\030\225\103" +
 84.2521 +    "\220\163\205\164\175\001\001\000\002\001\001\000\002" +
 84.2522 +    "\001\001\000\004\027\u0324\001\001\000\004\276\u0323\001" +
 84.2523 +    "\001\000\004\027\u0312\001\001\000\006\202\u0313\203\140" +
 84.2524 +    "\001\001\000\004\276\u0315\001\001\000\006\176\u0317\277" +
 84.2525 +    "\u0316\001\001\000\002\001\001\000\006\300\u0319\310\u0318" +
 84.2526 +    "\001\001\000\004\173\u014e\001\001\000\004\176\u0322\001" +
 84.2527 +    "\001\000\014\253\u031a\301\u031b\344\112\345\114\346\055" +
 84.2528 +    "\001\001\000\004\176\u0321\001\001\000\002\001\001\000" +
 84.2529 +    "\006\176\u0317\277\u031d\001\001\000\006\300\u031e\310\u0318" +
 84.2530 +    "\001\001\000\012\253\u031a\344\112\345\114\346\055\001" +
 84.2531 +    "\001\000\014\027\045\102\u0144\103\u0146\140\u0145\152\u0320" +
 84.2532 +    "\001\001\000\002\001\001\000\004\173\u014e\001\001\000" +
 84.2533 +    "\004\173\u014e\001\001\000\002\001\001\000\002\001\001" +
 84.2534 +    "\000\122\002\124\003\062\004\054\005\101\006\102\011" +
 84.2535 +    "\105\012\u0327\013\066\016\052\020\123\022\060\023\061" +
 84.2536 +    "\025\117\072\076\073\023\074\072\105\070\106\036\107" +
 84.2537 +    "\071\110\103\114\107\117\115\120\077\121\106\134\113" +
 84.2538 +    "\136\064\144\065\173\122\177\100\200\111\201\056\253" +
 84.2539 +    "\063\254\110\272\024\274\017\275\121\302\053\344\112" +
 84.2540 +    "\345\114\346\055\001\001\000\002\001\001\000\004\066" +
 84.2541 +    "\u0328\001\001\000\002\001\001\000\014\027\045\102\u0144" +
 84.2542 +    "\103\u0146\140\u0145\152\u032a\001\001\000\002\001\001\000" +
 84.2543 +    "\002\001\001\000\002\001\001\000\002\001\001\000\016" +
 84.2544 +    "\026\u0348\027\202\030\225\103\220\163\205\164\175\001" +
 84.2545 +    "\001\000\110\002\124\003\062\004\054\005\101\006\102" +
 84.2546 +    "\007\u0333\010\u0337\011\u0334\020\123\022\060\023\061\025" +
 84.2547 +    "\117\072\u0332\073\023\105\070\106\036\114\107\117\115" +
 84.2548 +    "\120\077\134\113\136\064\144\065\173\122\177\100\200" +
 84.2549 +    "\111\201\056\253\063\272\024\274\017\275\121\302\053" +
 84.2550 +    "\343\u0331\344\112\345\114\346\055\001\001\000\004\027" +
 84.2551 +    "\u0310\001\001\000\002\001\001\000\002\001\001\000\004" +
 84.2552 +    "\014\u033f\001\001\000\002\001\001\000\002\001\001\000" +
 84.2553 +    "\006\027\045\140\042\001\001\000\102\002\124\003\062" +
 84.2554 +    "\004\054\005\101\006\102\011\u0338\020\123\022\060\023" +
 84.2555 +    "\061\025\117\072\u0332\073\023\105\070\106\036\114\107" +
 84.2556 +    "\117\115\120\077\134\113\136\064\144\065\173\122\177" +
 84.2557 +    "\100\200\111\201\056\253\063\272\024\274\017\275\121" +
 84.2558 +    "\302\053\344\112\345\114\346\055\001\001\000\002\001" +
 84.2559 +    "\001\000\006\027\045\140\u033a\001\001\000\002\001\001" +
 84.2560 +    "\000\002\001\001\000\004\027\u033d\001\001\000\002\001" +
 84.2561 +    "\001\000\002\001\001\000\002\001\001\000\106\002\124" +
 84.2562 +    "\003\062\004\054\005\101\006\102\007\u0341\010\u0337\011" +
 84.2563 +    "\u0334\020\123\022\060\023\061\025\117\072\u0332\073\023" +
 84.2564 +    "\105\070\106\036\114\107\117\115\120\077\134\113\136" +
 84.2565 +    "\064\144\065\173\122\177\100\200\111\201\056\253\063" +
 84.2566 +    "\272\024\274\017\275\121\302\053\344\112\345\114\346" +
 84.2567 +    "\055\001\001\000\002\001\001\000\010\027\045\140\u025f" +
 84.2568 +    "\141\u0343\001\001\000\002\001\001\000\004\343\u0250\001" +
 84.2569 +    "\001\000\004\027\u0346\001\001\000\002\001\001\000\002" +
 84.2570 +    "\001\001\000\002\001\001\000\002\001\001\000\124\002" +
 84.2571 +    "\124\003\062\004\054\005\101\006\102\011\105\012\u015a" +
 84.2572 +    "\013\066\016\052\020\123\022\060\023\061\025\117\072" +
 84.2573 +    "\076\073\023\074\072\105\070\106\036\107\071\110\103" +
 84.2574 +    "\114\107\117\115\120\077\121\106\134\113\136\064\144" +
 84.2575 +    "\065\173\122\177\100\200\111\201\056\253\063\254\110" +
 84.2576 +    "\272\024\274\017\275\121\302\053\343\u0250\344\112\345" +
 84.2577 +    "\114\346\055\001\001\000\004\173\u014e\001\001\000\006" +
 84.2578 +    "\076\u034d\077\u0127\001\001\000\002\001\001\000\016\026" +
 84.2579 +    "\u034f\027\202\030\225\103\220\163\205\164\175\001\001" +
 84.2580 +    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
 84.2581 +    "\006\027\045\140\u0353\001\001\000\002\001\001\000\016" +
 84.2582 +    "\015\u035b\016\u0358\072\u035d\074\u0356\107\u035c\121\u0359\001" +
 84.2583 +    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
 84.2584 +    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
 84.2585 +    "\002\001\001\000\002\001\001\000\002\001\001\000\004" +
 84.2586 +    "\027\u035f\001\001\000\002\001\001\000\006\176\u014d\312" +
 84.2587 +    "\u014c\001\001\000\004\027\u0362\001\001\000\002\001\001" +
 84.2588 +    "\000\122\002\124\003\062\004\054\005\101\006\102\011" +
 84.2589 +    "\105\012\u0327\013\066\016\052\020\123\022\060\023\061" +
 84.2590 +    "\025\117\072\076\073\023\074\072\105\070\106\036\107" +
 84.2591 +    "\071\110\103\114\107\117\115\120\077\121\106\134\113" +
 84.2592 +    "\136\064\144\065\173\122\177\100\200\111\201\056\253" +
 84.2593 +    "\063\254\110\272\024\274\017\275\121\302\053\344\112" +
 84.2594 +    "\345\114\346\055\001\001\000\006\076\u0365\077\u0127\001" +
 84.2595 +    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
 84.2596 +    "\000\006\027\045\140\u03b2\001\001\000\002\001\001\000" +
 84.2597 +    "\004\027\u038c\001\001\000\002\001\001\000\002\001\001" +
 84.2598 +    "\000\002\001\001\000\002\001\001\000\016\026\u0370\027" +
 84.2599 +    "\202\030\225\103\220\163\205\164\175\001\001\000\002" +
 84.2600 +    "\001\001\000\002\001\001\000\004\027\u0387\001\001\000" +
 84.2601 +    "\004\027\u037e\001\001\000\012\027\045\102\u0375\103\u0146" +
 84.2602 +    "\140\u0145\001\001\000\006\076\u0376\077\u0127\001\001\000" +
 84.2603 +    "\002\001\001\000\016\026\u0378\027\202\030\225\103\220" +
 84.2604 +    "\163\205\164\175\001\001\000\004\341\u037a\001\001\000" +
 84.2605 +    "\016\026\u037d\027\202\030\225\103\220\163\205\164\175" +
 84.2606 +    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
 84.2607 +    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
 84.2608 +    "\000\016\026\u0381\027\202\030\225\103\220\163\205\164" +
 84.2609 +    "\175\001\001\000\002\001\001\000\002\001\001\000\066" +
 84.2610 +    "\026\246\027\202\030\225\031\247\032\201\033\256\034" +
 84.2611 +    "\211\035\210\036\217\042\222\044\224\103\220\154\221" +
 84.2612 +    "\155\215\160\227\161\245\163\205\164\175\165\255\167" +
 84.2613 +    "\244\250\251\251\243\255\254\256\253\257\207\261\200" +
 84.2614 +    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
 84.2615 +    "\001\000\006\076\u0388\077\u0127\001\001\000\004\341\u0389" +
 84.2616 +    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
 84.2617 +    "\001\000\006\203\u038d\337\u038f\001\001\000\002\001\001" +
 84.2618 +    "\000\012\006\102\023\143\243\146\244\147\001\001\000" +
 84.2619 +    "\002\001\001\000\022\111\u0397\112\u0393\207\u039d\211\u0395" +
 84.2620 +    "\226\u027d\227\u027e\340\u0394\342\u039a\001\001\000\002\001" +
 84.2621 +    "\001\000\002\001\001\000\004\113\u03ac\001\001\000\002" +
 84.2622 +    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
 84.2623 +    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
 84.2624 +    "\000\002\001\001\000\020\021\u039e\026\u011b\027\202\030" +
 84.2625 +    "\225\103\220\163\205\164\175\001\001\000\002\001\001" +
 84.2626 +    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
 84.2627 +    "\020\021\u03a2\026\u011b\027\202\030\225\103\220\163\205" +
 84.2628 +    "\164\175\001\001\000\002\001\001\000\002\001\001\000" +
 84.2629 +    "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
 84.2630 +    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
 84.2631 +    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
 84.2632 +    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
 84.2633 +    "\002\001\001\000\002\001\001\000\016\026\u03b5\027\202" +
 84.2634 +    "\030\225\103\220\163\205\164\175\001\001\000\106\002" +
 84.2635 +    "\124\003\062\004\054\005\101\006\102\007\u0333\010\u0337" +
 84.2636 +    "\011\u0334\020\123\022\060\023\061\025\117\072\u0332\073" +
 84.2637 +    "\023\105\070\106\036\114\107\117\115\120\077\134\113" +
 84.2638 +    "\136\064\144\065\173\122\177\100\200\111\201\056\253" +
 84.2639 +    "\063\272\024\274\017\275\121\302\053\344\112\345\114" +
 84.2640 +    "\346\055\001\001\000\002\001\001\000\002\001\001\000" +
 84.2641 +    "\002\001\001\000\002\001\001\000\020\026\u03ba\027\202" +
 84.2642 +    "\030\225\103\220\116\u03bb\163\205\164\175\001\001\000" +
 84.2643 +    "\002\001\001\000\002\001\001\000\016\026\u03be\027\202" +
 84.2644 +    "\030\225\103\220\163\205\164\175\001\001\000\002\001" +
 84.2645 +    "\001\000\002\001\001\000\016\026\u03c1\027\202\030\225" +
 84.2646 +    "\103\220\163\205\164\175\001\001\000\002\001\001\000" +
 84.2647 +    "\002\001\001\000\002\001\001\000\002\001\001\000\006" +
 84.2648 +    "\027\045\140\u03c6\001\001\000\002\001\001\000\002\001" +
 84.2649 +    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
 84.2650 +    "\000\034\005\025\072\034\073\023\074\037\105\030\106" +
 84.2651 +    "\036\107\022\120\032\130\u03cb\136\031\151\040\272\024" +
 84.2652 +    "\274\017\001\001\000\004\176\u03cc\001\001\000\004\173" +
 84.2653 +    "\u014e\001\001\000\004\173\u014e\001\001\000\002\001\001" +
 84.2654 +    "\000\002\001\001\000\002\001\001\000\054\026\231\027" +
 84.2655 +    "\u03d4\030\225\031\u03d5\032\201\033\213\034\211\035\210" +
 84.2656 +    "\036\217\042\222\044\224\103\220\154\221\155\215\160" +
 84.2657 +    "\227\163\205\164\175\174\u03d3\175\u03d2\257\207\261\200" +
 84.2658 +    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
 84.2659 +    "\001\000\006\037\322\170\316\001\001\000\050\026\231" +
 84.2660 +    "\027\202\030\225\031\u03d7\032\201\033\213\034\211\035" +
 84.2661 +    "\210\036\217\042\222\044\224\103\220\154\221\155\215" +
 84.2662 +    "\160\227\163\205\164\175\257\207\261\200\001\001\000" +
 84.2663 +    "\006\037\322\170\316\001\001\000\052\026\231\027\u03d4" +
 84.2664 +    "\030\225\031\u03d5\032\201\033\213\034\211\035\210\036" +
 84.2665 +    "\217\042\222\044\224\103\220\154\221\155\215\160\227" +
 84.2666 +    "\163\205\164\175\175\u03db\257\207\261\200\001\001\000" +
 84.2667 +    "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
 84.2668 +    "\001\001" });
 84.2669 +
 84.2670 +  /** Access to <code>reduce_goto</code> table. */
 84.2671 +  public short[][] reduce_table() {return _reduce_table;}
 84.2672 +
 84.2673 +  /** Instance of action encapsulation class. */
 84.2674 +  protected CUP$AdaASTParser$actions action_obj;
 84.2675 +
 84.2676 +  /** Action encapsulation object initializer. */
 84.2677 +  protected void init_actions()
 84.2678 +    {
 84.2679 +      action_obj = new CUP$AdaASTParser$actions(this);
 84.2680 +    }
 84.2681 +
 84.2682 +  /** Invoke a user supplied parse action. */
 84.2683 +  public java_cup.runtime.Symbol do_action(
 84.2684 +    int                        act_num,
 84.2685 +    java_cup.runtime.lr_parser parser,
 84.2686 +    java.util.Stack            stack,
 84.2687 +    int                        top)
 84.2688 +    throws java.lang.Exception
 84.2689 +  {
 84.2690 +    /* call code in generated class */
 84.2691 +    return action_obj.CUP$AdaASTParser$do_action(act_num, parser, stack, top);
 84.2692 +  }
 84.2693 +
 84.2694 +  /** Indicates start state. */
 84.2695 +  public int start_state() {return 0;}
 84.2696 +  /** Indicates start production. */
 84.2697 +  public int start_production() {return 0;}
 84.2698 +
 84.2699 +  /** <code>EOF</code> Symbol index. */
 84.2700 +  public int EOF_sym() {return 0;}
 84.2701 +
 84.2702 +  /** <code>error</code> Symbol index. */
 84.2703 +  public int error_sym() {return 1;}
 84.2704 +
 84.2705 +
 84.2706 +
 84.2707 +    protected final static Integer PUBLIC = new Integer(BodyDeclaration.Modifier.PUBLIC);
 84.2708 +    protected final static Integer PRIVATE = new Integer(BodyDeclaration.Modifier.PRIVATE);
 84.2709 +    protected final static Integer TAGGED = new Integer(BodyDeclaration.Modifier.TAGGED);
 84.2710 +    protected final static Integer LIMITED = new Integer(BodyDeclaration.Modifier.LIMITED);
 84.2711 +    protected final static Integer ABSTRACT = new Integer(BodyDeclaration.Modifier.ABSTRACT);
 84.2712 +
 84.2713 +    private ErrorStrategy defaultStrategy = new DefaultErrorStrategy();;
 84.2714 +    private ErrorStrategy errorStrategy = defaultStrategy;
 84.2715 +
 84.2716 +    private ParserErrorHandler errorHandler = null;
 84.2717 +
 84.2718 +    public void setErrorHandler (ParserErrorHandler handler) {
 84.2719 +        this.errorHandler = handler;
 84.2720 +    }
 84.2721 +
 84.2722 +    public ParserErrorHandler getErrorHandler () {
 84.2723 +        return this.errorHandler;
 84.2724 +    }
 84.2725 +
 84.2726 +
 84.2727 +    public Dispatch createDispatch(NameBase dispatcher, NameBase property) {
 84.2728 +        Dispatch dispatch = null;
 84.2729 +	if (property instanceof Variable) {
 84.2730 +	   dispatch = new FieldAccess(dispatcher.getStartOffset(), property.getEndOffset(), dispatcher, (Variable)property);
 84.2731 +	} else if (property instanceof TypeName) {
 84.2732 +	   dispatch = new TypeAccess(dispatcher.getStartOffset(), property.getEndOffset(), dispatcher, (TypeName)property);
 84.2733 +	} else {
 84.2734 +	   throw new IllegalArgumentException();
 84.2735 +	}
 84.2736 +        return dispatch;
 84.2737 +    }
 84.2738 +
 84.2739 +
 84.2740 +    public List setModifier(List items, int modifier) {
 84.2741 +        List list = new LinkedList();
 84.2742 +        for (Iterator iter = items.iterator(); iter.hasNext();) {
 84.2743 +            final Object next = iter.next();
 84.2744 +            if (next instanceof TypeDeclaration) {
 84.2745 +                ((TypeDeclaration)next).setModifier(modifier);
 84.2746 +                list.add(next);
 84.2747 +            } else if (next instanceof MethodDeclaration) {
 84.2748 +                ((MethodDeclaration)next).setModifier(modifier);
 84.2749 +                list.add(next);
 84.2750 +            } else if (next instanceof FieldsDeclaration) {
 84.2751 +                ((FieldsDeclaration)next).setModifier(modifier);
 84.2752 +                list.add(next);
 84.2753 +            } else {
 84.2754 +                list.add(next);
 84.2755 +            }
 84.2756 +        }
 84.2757 +        return list;
 84.2758 +    }
 84.2759 +
 84.2760 +    interface ErrorStrategy {
 84.2761 +        public boolean errorRecovery(boolean debug) throws Exception;
 84.2762 +    }
 84.2763 +
 84.2764 +    class DefaultErrorStrategy implements ErrorStrategy {
 84.2765 +
 84.2766 +        public boolean errorRecovery(boolean debug) throws Exception {
 84.2767 +            return AdaASTParser.super.error_recovery(debug);
 84.2768 +        }
 84.2769 +    }
 84.2770 +
 84.2771 +    /**
 84.2772 +     * Attempt to recover from a syntax error.  This returns false if recovery fails,
 84.2773 +     * true if it succeeds.
 84.2774 +     * @param debug should we produce debugging messages as we parse.
 84.2775 +     */
 84.2776 +    @Override
 84.2777 +    protected boolean error_recovery(boolean debug) throws java.lang.Exception {
 84.2778 +        return errorStrategy.errorRecovery(debug);
 84.2779 +    }
 84.2780 +
 84.2781 +    /**
 84.2782 +     * Report a non fatal error (or warning).  This method takes a message
 84.2783 +     * string and an additional object (to be used by specializations implemented in subclasses).
 84.2784 +     * The super class prints the message to System.err.
 84.2785 +     * @param message an error message.
 84.2786 +     * @param info    an extra object reserved for use by specialized subclasses.
 84.2787 +     */
 84.2788 +    @Override
 84.2789 +    public void report_error(String message, Object info) {
 84.2790 +        System.out.print("report_eror"  + message);
 84.2791 +    }	
 84.2792 +
 84.2793 +    /**
 84.2794 +     * This method is called when a syntax error has been detected and recovery is about to be invoked.
 84.2795 +     * The super class just emit a "Syntax error" error message.
 84.2796 +     * @param cur_token the current lookahead Symbol.
 84.2797 +     */
 84.2798 +    @Override
 84.2799 +    public void syntax_error(java_cup.runtime.Symbol cur_token) {
 84.2800 +        java_cup.runtime.Symbol symbol = (java_cup.runtime.Symbol)stack.peek();
 84.2801 +        int state = symbol.parse_state;
 84.2802 +        short[] rowOfProbe = action_tab[state];
 84.2803 +        if (errorHandler != null) {
 84.2804 +            errorHandler.handleError(ParserErrorHandler.Type.SYNTAX_ERROR, rowOfProbe, cur_token, symbol);
 84.2805 +        }
 84.2806 +     }
 84.2807 +
 84.2808 +    /**
 84.2809 +     * This method is called when a syntax error has been detected during action.
 84.2810 +     * @param message an error message.
 84.2811 +     */
 84.2812 +    public void message_error(String message) {
 84.2813 +        java_cup.runtime.Symbol symbol = (java_cup.runtime.Symbol)stack.peek();
 84.2814 +        if (errorHandler != null) {
 84.2815 +            errorHandler.handleError(ParserErrorHandler.Type.SYNTAX_ERROR, symbol, message);
 84.2816 +        }
 84.2817 +     }
 84.2818 +
 84.2819 +     /**
 84.2820 +     * Report a fatal error.  This method takes a message string and an additional object
 84.2821 +     * (to be used by specializations implemented in subclasses).
 84.2822 +     * The super class reports the error then throws an exception.
 84.2823 +     * @param message an error message.
 84.2824 +     * @param info    an extra object reserved for use by specialized subclasses.
 84.2825 +     */
 84.2826 +    @Override
 84.2827 +    public void report_fatal_error(String message, Object info) throws Exception {
 84.2828 +        if (errorHandler != null) {
 84.2829 +            errorHandler.handleError(ParserErrorHandler.Type.FATAL_PARSER_ERROR, null, cur_token, null);
 84.2830 +        }
 84.2831 +    }
 84.2832 +
 84.2833 +    @Override
 84.2834 +    protected int error_sync_size() {
 84.2835 +        return 1;
 84.2836 +    }
 84.2837 +
 84.2838 +
 84.2839 +}
 84.2840 +
 84.2841 +/** Cup generated class to encapsulate user supplied action code.*/
 84.2842 +class CUP$AdaASTParser$actions {
 84.2843 +  private final AdaASTParser parser;
 84.2844 +
 84.2845 +  /** Constructor */
 84.2846 +  CUP$AdaASTParser$actions(AdaASTParser parser) {
 84.2847 +    this.parser = parser;
 84.2848 +  }
 84.2849 +
 84.2850 +  /** Method with the actual generated action code. */
 84.2851 +  public final java_cup.runtime.Symbol CUP$AdaASTParser$do_action(
 84.2852 +    int                        CUP$AdaASTParser$act_num,
 84.2853 +    java_cup.runtime.lr_parser CUP$AdaASTParser$parser,
 84.2854 +    java.util.Stack            CUP$AdaASTParser$stack,
 84.2855 +    int                        CUP$AdaASTParser$top)
 84.2856 +    throws java.lang.Exception
 84.2857 +    {
 84.2858 +      /* Symbol object for return from actions */
 84.2859 +      java_cup.runtime.Symbol CUP$AdaASTParser$result;
 84.2860 +
 84.2861 +      /* select the action based on the action number */
 84.2862 +      switch (CUP$AdaASTParser$act_num)
 84.2863 +        {
 84.2864 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.2865 +          case 515: // code_statement ::= qualified_expression SEMICOLON 
 84.2866 +            {
 84.2867 +              Statement RESULT =null;
 84.2868 +		int exprleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).left;
 84.2869 +		int exprright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).right;
 84.2870 +		Expression expr = (Expression)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).value;
 84.2871 +		int endleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.2872 +		int endright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.2873 +		Object end = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.2874 +		
 84.2875 +    RESULT = new CodeStatement (exprleft, endright, expr);
 84.2876 +
 84.2877 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("code_statement",93, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.2878 +            }
 84.2879 +          return CUP$AdaASTParser$result;
 84.2880 +
 84.2881 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.2882 +          case 514: // address_spec ::= FOR subtype_mark USE AT expression SEMICOLON 
 84.2883 +            {
 84.2884 +              Object RESULT =null;
 84.2885 +
 84.2886 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("address_spec",228, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-5)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.2887 +            }
 84.2888 +          return CUP$AdaASTParser$result;
 84.2889 +
 84.2890 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.2891 +          case 513: // comp_loc_s ::= comp_loc_s subtype_mark AT expression RANGE range SEMICOLON 
 84.2892 +            {
 84.2893 +              Object RESULT =null;
 84.2894 +
 84.2895 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("comp_loc_s",230, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-6)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.2896 +            }
 84.2897 +          return CUP$AdaASTParser$result;
 84.2898 +
 84.2899 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.2900 +          case 512: // comp_loc_s ::= 
 84.2901 +            {
 84.2902 +              Object RESULT =null;
 84.2903 +
 84.2904 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("comp_loc_s",230, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.2905 +            }
 84.2906 +          return CUP$AdaASTParser$result;
 84.2907 +
 84.2908 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.2909 +          case 511: // align_opt ::= AT MOD expression SEMICOLON 
 84.2910 +            {
 84.2911 +              Object RESULT =null;
 84.2912 +
 84.2913 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("align_opt",229, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.2914 +            }
 84.2915 +          return CUP$AdaASTParser$result;
 84.2916 +
 84.2917 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.2918 +          case 510: // align_opt ::= 
 84.2919 +            {
 84.2920 +              Object RESULT =null;
 84.2921 +
 84.2922 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("align_opt",229, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.2923 +            }
 84.2924 +          return CUP$AdaASTParser$result;
 84.2925 +
 84.2926 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.2927 +          case 509: // record_type_spec ::= FOR subtype_mark USE RECORD align_opt comp_loc_s END RECORD SEMICOLON 
 84.2928 +            {
 84.2929 +              Object RESULT =null;
 84.2930 +
 84.2931 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("record_type_spec",227, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-8)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.2932 +            }
 84.2933 +          return CUP$AdaASTParser$result;
 84.2934 +
 84.2935 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.2936 +          case 508: // attrib_def ::= FOR subtype_mark USE expression SEMICOLON 
 84.2937 +            {
 84.2938 +              Object RESULT =null;
 84.2939 +
 84.2940 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("attrib_def",226, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-4)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.2941 +            }
 84.2942 +          return CUP$AdaASTParser$result;
 84.2943 +
 84.2944 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.2945 +          case 507: // rep_spec ::= address_spec 
 84.2946 +            {
 84.2947 +              Object RESULT =null;
 84.2948 +
 84.2949 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("rep_spec",169, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.2950 +            }
 84.2951 +          return CUP$AdaASTParser$result;
 84.2952 +
 84.2953 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.2954 +          case 506: // rep_spec ::= record_type_spec 
 84.2955 +            {
 84.2956 +              Object RESULT =null;
 84.2957 +
 84.2958 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("rep_spec",169, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.2959 +            }
 84.2960 +          return CUP$AdaASTParser$result;
 84.2961 +
 84.2962 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.2963 +          case 505: // rep_spec ::= attrib_def 
 84.2964 +            {
 84.2965 +              Object RESULT =null;
 84.2966 +
 84.2967 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("rep_spec",169, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.2968 +            }
 84.2969 +          return CUP$AdaASTParser$result;
 84.2970 +
 84.2971 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.2972 +          case 504: // generic_inst ::= NEW name 
 84.2973 +            {
 84.2974 +              Object RESULT =null;
 84.2975 +
 84.2976 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("generic_inst",225, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.2977 +            }
 84.2978 +          return CUP$AdaASTParser$result;
 84.2979 +
 84.2980 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.2981 +          case 503: // generic_package_instantiation ::= PACKAGE compound_name IS generic_inst 
 84.2982 +            {
 84.2983 +              Object RESULT =null;
 84.2984 +
 84.2985 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("generic_package_instantiation",184, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.2986 +            }
 84.2987 +          return CUP$AdaASTParser$result;
 84.2988 +
 84.2989 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.2990 +          case 502: // generic_subp_inst ::= subprogram_specification IS generic_inst 
 84.2991 +            {
 84.2992 +              SubprogramSpecification RESULT =null;
 84.2993 +		int subprogleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).left;
 84.2994 +		int subprogright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).right;
 84.2995 +		SubprogramSpecification subprog = (SubprogramSpecification)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).value;
 84.2996 +		
 84.2997 +    RESULT = subprog;
 84.2998 +
 84.2999 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("generic_subp_inst",57, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3000 +            }
 84.3001 +          return CUP$AdaASTParser$result;
 84.3002 +
 84.3003 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3004 +          case 501: // generic_derived_type ::= ABSTRACT NEW subtype_indication WITH PRIVATE 
 84.3005 +            {
 84.3006 +              Object RESULT =null;
 84.3007 +
 84.3008 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("generic_derived_type",224, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-4)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3009 +            }
 84.3010 +          return CUP$AdaASTParser$result;
 84.3011 +
 84.3012 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3013 +          case 500: // generic_derived_type ::= NEW subtype_indication WITH PRIVATE 
 84.3014 +            {
 84.3015 +              Object RESULT =null;
 84.3016 +
 84.3017 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("generic_derived_type",224, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3018 +            }
 84.3019 +          return CUP$AdaASTParser$result;
 84.3020 +
 84.3021 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3022 +          case 499: // generic_derived_type ::= NEW subtype_indication 
 84.3023 +            {
 84.3024 +              Object RESULT =null;
 84.3025 +
 84.3026 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("generic_derived_type",224, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3027 +            }
 84.3028 +          return CUP$AdaASTParser$result;
 84.3029 +
 84.3030 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3031 +          case 498: // generic_type_def ::= generic_derived_type 
 84.3032 +            {
 84.3033 +              Object RESULT =null;
 84.3034 +
 84.3035 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("generic_type_def",222, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3036 +            }
 84.3037 +          return CUP$AdaASTParser$result;
 84.3038 +
 84.3039 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3040 +          case 497: // generic_type_def ::= private_type_declaration 
 84.3041 +            {
 84.3042 +              Object RESULT =null;
 84.3043 +
 84.3044 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("generic_type_def",222, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3045 +            }
 84.3046 +          return CUP$AdaASTParser$result;
 84.3047 +
 84.3048 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3049 +          case 496: // generic_type_def ::= access_type 
 84.3050 +            {
 84.3051 +              Object RESULT =null;
 84.3052 +
 84.3053 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("generic_type_def",222, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3054 +            }
 84.3055 +          return CUP$AdaASTParser$result;
 84.3056 +
 84.3057 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3058 +          case 495: // generic_type_def ::= array_type 
 84.3059 +            {
 84.3060 +              Object RESULT =null;
 84.3061 +
 84.3062 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("generic_type_def",222, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3063 +            }
 84.3064 +          return CUP$AdaASTParser$result;
 84.3065 +
 84.3066 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3067 +          case 494: // generic_type_def ::= DIGITS BOX 
 84.3068 +            {
 84.3069 +              Object RESULT =null;
 84.3070 +
 84.3071 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("generic_type_def",222, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3072 +            }
 84.3073 +          return CUP$AdaASTParser$result;
 84.3074 +
 84.3075 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3076 +          case 493: // generic_type_def ::= DELTA BOX DIGITS BOX 
 84.3077 +            {
 84.3078 +              Object RESULT =null;
 84.3079 +
 84.3080 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("generic_type_def",222, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3081 +            }
 84.3082 +          return CUP$AdaASTParser$result;
 84.3083 +
 84.3084 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3085 +          case 492: // generic_type_def ::= DELTA BOX 
 84.3086 +            {
 84.3087 +              Object RESULT =null;
 84.3088 +
 84.3089 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("generic_type_def",222, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3090 +            }
 84.3091 +          return CUP$AdaASTParser$result;
 84.3092 +
 84.3093 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3094 +          case 491: // generic_type_def ::= MOD BOX 
 84.3095 +            {
 84.3096 +              Object RESULT =null;
 84.3097 +
 84.3098 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("generic_type_def",222, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3099 +            }
 84.3100 +          return CUP$AdaASTParser$result;
 84.3101 +
 84.3102 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3103 +          case 490: // generic_type_def ::= RANGE BOX 
 84.3104 +            {
 84.3105 +              Object RESULT =null;
 84.3106 +
 84.3107 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("generic_type_def",222, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3108 +            }
 84.3109 +          return CUP$AdaASTParser$result;
 84.3110 +
 84.3111 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3112 +          case 489: // generic_type_def ::= LPAREN BOX RPAREN 
 84.3113 +            {
 84.3114 +              Object RESULT =null;
 84.3115 +
 84.3116 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("generic_type_def",222, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3117 +            }
 84.3118 +          return CUP$AdaASTParser$result;
 84.3119 +
 84.3120 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3121 +          case 488: // subp_default ::= IS BOX 
 84.3122 +            {
 84.3123 +              Object RESULT =null;
 84.3124 +
 84.3125 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("subp_default",223, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3126 +            }
 84.3127 +          return CUP$AdaASTParser$result;
 84.3128 +
 84.3129 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3130 +          case 487: // subp_default ::= IS name 
 84.3131 +            {
 84.3132 +              Object RESULT =null;
 84.3133 +
 84.3134 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("subp_default",223, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3135 +            }
 84.3136 +          return CUP$AdaASTParser$result;
 84.3137 +
 84.3138 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3139 +          case 486: // subp_default ::= 
 84.3140 +            {
 84.3141 +              Object RESULT =null;
 84.3142 +
 84.3143 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("subp_default",223, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3144 +            }
 84.3145 +          return CUP$AdaASTParser$result;
 84.3146 +
 84.3147 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3148 +          case 485: // generic_discrim_part_opt ::= LPAREN BOX RPAREN 
 84.3149 +            {
 84.3150 +              Object RESULT =null;
 84.3151 +
 84.3152 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("generic_discrim_part_opt",221, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3153 +            }
 84.3154 +          return CUP$AdaASTParser$result;
 84.3155 +
 84.3156 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3157 +          case 484: // generic_discrim_part_opt ::= discrim_part 
 84.3158 +            {
 84.3159 +              Object RESULT =null;
 84.3160 +
 84.3161 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("generic_discrim_part_opt",221, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3162 +            }
 84.3163 +          return CUP$AdaASTParser$result;
 84.3164 +
 84.3165 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3166 +          case 483: // generic_discrim_part_opt ::= 
 84.3167 +            {
 84.3168 +              Object RESULT =null;
 84.3169 +
 84.3170 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("generic_discrim_part_opt",221, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3171 +            }
 84.3172 +          return CUP$AdaASTParser$result;
 84.3173 +
 84.3174 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3175 +          case 482: // generic_formal ::= use_clause 
 84.3176 +            {
 84.3177 +              Object RESULT =null;
 84.3178 +
 84.3179 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("generic_formal",220, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3180 +            }
 84.3181 +          return CUP$AdaASTParser$result;
 84.3182 +
 84.3183 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3184 +          case 481: // generic_formal ::= WITH PACKAGE simple_name IS NEW name SEMICOLON 
 84.3185 +            {
 84.3186 +              Object RESULT =null;
 84.3187 +
 84.3188 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("generic_formal",220, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-6)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3189 +            }
 84.3190 +          return CUP$AdaASTParser$result;
 84.3191 +
 84.3192 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3193 +          case 480: // generic_formal ::= WITH PACKAGE simple_name IS NEW name LPAREN BOX RPAREN SEMICOLON 
 84.3194 +            {
 84.3195 +              Object RESULT =null;
 84.3196 +
 84.3197 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("generic_formal",220, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-9)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3198 +            }
 84.3199 +          return CUP$AdaASTParser$result;
 84.3200 +
 84.3201 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3202 +          case 479: // generic_formal ::= WITH FUNCTION designator formal_part_opt RETURN name subp_default SEMICOLON 
 84.3203 +            {
 84.3204 +              Object RESULT =null;
 84.3205 +
 84.3206 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("generic_formal",220, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-7)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3207 +            }
 84.3208 +          return CUP$AdaASTParser$result;
 84.3209 +
 84.3210 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3211 +          case 478: // generic_formal ::= WITH PROCEDURE simple_name formal_part_opt subp_default SEMICOLON 
 84.3212 +            {
 84.3213 +              Object RESULT =null;
 84.3214 +
 84.3215 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("generic_formal",220, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-5)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3216 +            }
 84.3217 +          return CUP$AdaASTParser$result;
 84.3218 +
 84.3219 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3220 +          case 477: // generic_formal ::= TYPE simple_name generic_discrim_part_opt IS generic_type_def SEMICOLON 
 84.3221 +            {
 84.3222 +              Object RESULT =null;
 84.3223 +
 84.3224 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("generic_formal",220, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-5)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3225 +            }
 84.3226 +          return CUP$AdaASTParser$result;
 84.3227 +
 84.3228 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3229 +          case 476: // generic_formal ::= param SEMICOLON 
 84.3230 +            {
 84.3231 +              Object RESULT =null;
 84.3232 +
 84.3233 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("generic_formal",220, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3234 +            }
 84.3235 +          return CUP$AdaASTParser$result;
 84.3236 +
 84.3237 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3238 +          case 475: // generic_formal_part ::= generic_formal_part generic_formal 
 84.3239 +            {
 84.3240 +              Object RESULT =null;
 84.3241 +
 84.3242 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("generic_formal_part",186, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3243 +            }
 84.3244 +          return CUP$AdaASTParser$result;
 84.3245 +
 84.3246 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3247 +          case 474: // generic_formal_part ::= GENERIC 
 84.3248 +            {
 84.3249 +              Object RESULT =null;
 84.3250 +
 84.3251 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("generic_formal_part",186, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3252 +            }
 84.3253 +          return CUP$AdaASTParser$result;
 84.3254 +
 84.3255 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3256 +          case 473: // generic_declaration ::= generic_formal_part package_specification SEMICOLON 
 84.3257 +            {
 84.3258 +              Statement RESULT =null;
 84.3259 +		int statementleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).left;
 84.3260 +		int statementright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).right;
 84.3261 +		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).value;
 84.3262 +		
 84.3263 +    RESULT = statement;
 84.3264 +
 84.3265 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("generic_declaration",92, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3266 +            }
 84.3267 +          return CUP$AdaASTParser$result;
 84.3268 +
 84.3269 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3270 +          case 472: // generic_declaration ::= generic_formal_part subprogram_specification SEMICOLON 
 84.3271 +            {
 84.3272 +              Statement RESULT =null;
 84.3273 +
 84.3274 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("generic_declaration",92, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3275 +            }
 84.3276 +          return CUP$AdaASTParser$result;
 84.3277 +
 84.3278 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3279 +          case 471: // requeue_stmt ::= REQUEUE name WITH ABORT SEMICOLON 
 84.3280 +            {
 84.3281 +              Object RESULT =null;
 84.3282 +
 84.3283 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("requeue_stmt",177, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-4)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3284 +            }
 84.3285 +          return CUP$AdaASTParser$result;
 84.3286 +
 84.3287 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3288 +          case 470: // requeue_stmt ::= REQUEUE name SEMICOLON 
 84.3289 +            {
 84.3290 +              Object RESULT =null;
 84.3291 +
 84.3292 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("requeue_stmt",177, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3293 +            }
 84.3294 +          return CUP$AdaASTParser$result;
 84.3295 +
 84.3296 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3297 +          case 469: // raise_statement ::= RAISE name_opt SEMICOLON 
 84.3298 +            {
 84.3299 +              Statement RESULT =null;
 84.3300 +		int tokenleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).left;
 84.3301 +		int tokenright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).right;
 84.3302 +		Object token = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).value;
 84.3303 +		int exceptionNameleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).left;
 84.3304 +		int exceptionNameright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).right;
 84.3305 +		Expression exceptionName = (Expression)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).value;
 84.3306 +		int endleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.3307 +		int endright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.3308 +		Object end = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.3309 +		
 84.3310 +    RESULT = new RaiseStatement(tokenleft, endright, exceptionName); 
 84.3311 +
 84.3312 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("raise_statement",91, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3313 +            }
 84.3314 +          return CUP$AdaASTParser$result;
 84.3315 +
 84.3316 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3317 +          case 468: // except_choice ::= OTHERS 
 84.3318 +            {
 84.3319 +              Object RESULT =null;
 84.3320 +
 84.3321 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("except_choice",219, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3322 +            }
 84.3323 +          return CUP$AdaASTParser$result;
 84.3324 +
 84.3325 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3326 +          case 467: // except_choice ::= name 
 84.3327 +            {
 84.3328 +              Object RESULT =null;
 84.3329 +
 84.3330 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("except_choice",219, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3331 +            }
 84.3332 +          return CUP$AdaASTParser$result;
 84.3333 +
 84.3334 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3335 +          case 466: // except_choice_s ::= except_choice_s BAR except_choice 
 84.3336 +            {
 84.3337 +              Object RESULT =null;
 84.3338 +
 84.3339 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("except_choice_s",218, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3340 +            }
 84.3341 +          return CUP$AdaASTParser$result;
 84.3342 +
 84.3343 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3344 +          case 465: // except_choice_s ::= except_choice 
 84.3345 +            {
 84.3346 +              Object RESULT =null;
 84.3347 +
 84.3348 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("except_choice_s",218, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3349 +            }
 84.3350 +          return CUP$AdaASTParser$result;
 84.3351 +
 84.3352 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3353 +          case 464: // exception_handler ::= WHEN IDENTIFIER COLON except_choice_s ARROW sequence_of_statements 
 84.3354 +            {
 84.3355 +              Object RESULT =null;
 84.3356 +
 84.3357 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("exception_handler",217, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-5)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3358 +            }
 84.3359 +          return CUP$AdaASTParser$result;
 84.3360 +
 84.3361 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3362 +          case 463: // exception_handler ::= WHEN except_choice_s ARROW sequence_of_statements 
 84.3363 +            {
 84.3364 +              Object RESULT =null;
 84.3365 +
 84.3366 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("exception_handler",217, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3367 +            }
 84.3368 +          return CUP$AdaASTParser$result;
 84.3369 +
 84.3370 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3371 +          case 462: // except_handler_part ::= except_handler_part exception_handler 
 84.3372 +            {
 84.3373 +              Object RESULT =null;
 84.3374 +
 84.3375 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("except_handler_part",183, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3376 +            }
 84.3377 +          return CUP$AdaASTParser$result;
 84.3378 +
 84.3379 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3380 +          case 461: // except_handler_part ::= EXCEPTION exception_handler 
 84.3381 +            {
 84.3382 +              Object RESULT =null;
 84.3383 +
 84.3384 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("except_handler_part",183, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3385 +            }
 84.3386 +          return CUP$AdaASTParser$result;
 84.3387 +
 84.3388 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3389 +          case 460: // exception_decl ::= defining_identifier_list COLON EXCEPTION SEMICOLON 
 84.3390 +            {
 84.3391 +              Object RESULT =null;
 84.3392 +
 84.3393 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("exception_decl",127, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3394 +            }
 84.3395 +          return CUP$AdaASTParser$result;
 84.3396 +
 84.3397 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3398 +          case 459: // body_stub ::= PROTECTED BODY simple_name IS SEPARATE SEMICOLON 
 84.3399 +            {
 84.3400 +              Statement RESULT =null;
 84.3401 +
 84.3402 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("body_stub",90, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-5)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3403 +            }
 84.3404 +          return CUP$AdaASTParser$result;
 84.3405 +
 84.3406 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3407 +          case 458: // body_stub ::= subprogram_specification IS SEPARATE SEMICOLON 
 84.3408 +            {
 84.3409 +              Statement RESULT =null;
 84.3410 +		int subprogleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)).left;
 84.3411 +		int subprogright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)).right;
 84.3412 +		SubprogramSpecification subprog = (SubprogramSpecification)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)).value;
 84.3413 +		
 84.3414 +    RESULT = subprog;
 84.3415 +
 84.3416 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("body_stub",90, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3417 +            }
 84.3418 +          return CUP$AdaASTParser$result;
 84.3419 +
 84.3420 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3421 +          case 457: // body_stub ::= PACKAGE BODY compound_name IS SEPARATE SEMICOLON 
 84.3422 +            {
 84.3423 +              Statement RESULT =null;
 84.3424 +
 84.3425 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("body_stub",90, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-5)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3426 +            }
 84.3427 +          return CUP$AdaASTParser$result;
 84.3428 +
 84.3429 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3430 +          case 456: // body_stub ::= TASK BODY simple_name IS SEPARATE SEMICOLON 
 84.3431 +            {
 84.3432 +              Statement RESULT =null;
 84.3433 +
 84.3434 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("body_stub",90, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-5)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3435 +            }
 84.3436 +          return CUP$AdaASTParser$result;
 84.3437 +
 84.3438 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3439 +          case 455: // subunit ::= SEPARATE LPAREN compound_name RPAREN proper_body 
 84.3440 +            {
 84.3441 +              Statement RESULT =null;
 84.3442 +		int statementleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.3443 +		int statementright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.3444 +		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.3445 +		
 84.3446 +    RESULT = statement;
 84.3447 +
 84.3448 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("subunit",103, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-4)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3449 +            }
 84.3450 +          return CUP$AdaASTParser$result;
 84.3451 +
 84.3452 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3453 +          case 454: // with_clause ::= WITH library_unit_name_list SEMICOLON 
 84.3454 +            {
 84.3455 +              Statement RESULT =null;
 84.3456 +		int tokenleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).left;
 84.3457 +		int tokenright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).right;
 84.3458 +		Object token = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).value;
 84.3459 +		int packageListleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).left;
 84.3460 +		int packageListright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).right;
 84.3461 +		List packageList = (List)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).value;
 84.3462 +		int endleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.3463 +		int endright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.3464 +		Object end = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.3465 +		
 84.3466 +    RESULT = new With(tokenleft, endright, packageList);
 84.3467 +
 84.3468 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("with_clause",88, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3469 +            }
 84.3470 +          return CUP$AdaASTParser$result;
 84.3471 +
 84.3472 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3473 +          case 453: // context_clause ::= context_clause pragma 
 84.3474 +            {
 84.3475 +              Statement RESULT =null;
 84.3476 +
 84.3477 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("context_clause",87, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3478 +            }
 84.3479 +          return CUP$AdaASTParser$result;
 84.3480 +
 84.3481 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3482 +          case 452: // context_clause ::= context_clause use_clause 
 84.3483 +            {
 84.3484 +              Statement RESULT =null;
 84.3485 +		int statementleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.3486 +		int statementright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.3487 +		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.3488 +		
 84.3489 +    RESULT = statement;
 84.3490 +
 84.3491 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("context_clause",87, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3492 +            }
 84.3493 +          return CUP$AdaASTParser$result;
 84.3494 +
 84.3495 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3496 +          case 451: // context_clause ::= context_clause with_clause 
 84.3497 +            {
 84.3498 +              Statement RESULT =null;
 84.3499 +		int statementleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.3500 +		int statementright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.3501 +		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.3502 +		
 84.3503 +    RESULT = statement;
 84.3504 +
 84.3505 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("context_clause",87, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3506 +            }
 84.3507 +          return CUP$AdaASTParser$result;
 84.3508 +
 84.3509 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3510 +          case 450: // context_clause ::= use_clause 
 84.3511 +            {
 84.3512 +              Statement RESULT =null;
 84.3513 +		int statementleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.3514 +		int statementright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.3515 +		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.3516 +		
 84.3517 +    RESULT = statement;
 84.3518 +
 84.3519 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("context_clause",87, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3520 +            }
 84.3521 +          return CUP$AdaASTParser$result;
 84.3522 +
 84.3523 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3524 +          case 449: // context_clause ::= with_clause 
 84.3525 +            {
 84.3526 +              Statement RESULT =null;
 84.3527 +		int statementleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.3528 +		int statementright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.3529 +		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.3530 +		
 84.3531 +    RESULT = statement;
 84.3532 +
 84.3533 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("context_clause",87, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3534 +            }
 84.3535 +          return CUP$AdaASTParser$result;
 84.3536 +
 84.3537 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3538 +          case 448: // unit ::= rename_unit 
 84.3539 +            {
 84.3540 +              Statement RESULT =null;
 84.3541 +
 84.3542 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("unit",86, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3543 +            }
 84.3544 +          return CUP$AdaASTParser$result;
 84.3545 +
 84.3546 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3547 +          case 447: // unit ::= generic_declaration 
 84.3548 +            {
 84.3549 +              Statement RESULT =null;
 84.3550 +		int statementleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.3551 +		int statementright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.3552 +		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.3553 +		
 84.3554 +    RESULT = statement;
 84.3555 +
 84.3556 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("unit",86, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3557 +            }
 84.3558 +          return CUP$AdaASTParser$result;
 84.3559 +
 84.3560 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3561 +          case 446: // unit ::= subunit 
 84.3562 +            {
 84.3563 +              Statement RESULT =null;
 84.3564 +		int statementleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.3565 +		int statementright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.3566 +		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.3567 +		
 84.3568 +    RESULT = statement;
 84.3569 +
 84.3570 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("unit",86, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3571 +            }
 84.3572 +          return CUP$AdaASTParser$result;
 84.3573 +
 84.3574 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3575 +          case 445: // unit ::= subprogram_body 
 84.3576 +            {
 84.3577 +              Statement RESULT =null;
 84.3578 +		int statementleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.3579 +		int statementright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.3580 +		MethodDeclaration statement = (MethodDeclaration)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.3581 +		
 84.3582 +    RESULT = statement;
 84.3583 +
 84.3584 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("unit",86, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3585 +            }
 84.3586 +          return CUP$AdaASTParser$result;
 84.3587 +
 84.3588 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3589 +          case 444: // unit ::= subprog_declaration 
 84.3590 +            {
 84.3591 +              Statement RESULT =null;
 84.3592 +		int statementleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.3593 +		int statementright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.3594 +		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.3595 +		
 84.3596 +    RESULT = statement;
 84.3597 +
 84.3598 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("unit",86, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3599 +            }
 84.3600 +          return CUP$AdaASTParser$result;
 84.3601 +
 84.3602 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3603 +          case 443: // unit ::= package_body 
 84.3604 +            {
 84.3605 +              Statement RESULT =null;
 84.3606 +		int statementleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.3607 +		int statementright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.3608 +		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.3609 +		
 84.3610 +    RESULT = statement;
 84.3611 +
 84.3612 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("unit",86, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3613 +            }
 84.3614 +          return CUP$AdaASTParser$result;
 84.3615 +
 84.3616 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3617 +          case 442: // unit ::= package_declaration 
 84.3618 +            {
 84.3619 +              Statement RESULT =null;
 84.3620 +		int statementleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.3621 +		int statementright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.3622 +		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.3623 +		
 84.3624 +    RESULT = statement;
 84.3625 +
 84.3626 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("unit",86, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3627 +            }
 84.3628 +          return CUP$AdaASTParser$result;
 84.3629 +
 84.3630 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3631 +          case 441: // private_opt ::= PRIVATE 
 84.3632 +            {
 84.3633 +              Object RESULT =null;
 84.3634 +
 84.3635 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("private_opt",216, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3636 +            }
 84.3637 +          return CUP$AdaASTParser$result;
 84.3638 +
 84.3639 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3640 +          case 440: // private_opt ::= 
 84.3641 +            {
 84.3642 +              Object RESULT =null;
 84.3643 +
 84.3644 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("private_opt",216, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3645 +            }
 84.3646 +          return CUP$AdaASTParser$result;
 84.3647 +
 84.3648 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3649 +          case 439: // compilation_unit ::= private_opt unit pragma_s 
 84.3650 +            {
 84.3651 +              Statement RESULT =null;
 84.3652 +		int unitleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).left;
 84.3653 +		int unitright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).right;
 84.3654 +		Statement unit = (Statement)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).value;
 84.3655 +		
 84.3656 +    RESULT = unit;
 84.3657 +
 84.3658 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("compilation_unit",85, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3659 +            }
 84.3660 +          return CUP$AdaASTParser$result;
 84.3661 +
 84.3662 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3663 +          case 438: // compilation_unit ::= context_clause private_opt unit pragma_s 
 84.3664 +            {
 84.3665 +              Statement RESULT =null;
 84.3666 +		int unitleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).left;
 84.3667 +		int unitright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).right;
 84.3668 +		Statement unit = (Statement)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).value;
 84.3669 +		
 84.3670 +    RESULT = unit;
 84.3671 +
 84.3672 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("compilation_unit",85, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3673 +            }
 84.3674 +          return CUP$AdaASTParser$result;
 84.3675 +
 84.3676 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3677 +          case 437: // compilation_units ::= pragma pragma_s 
 84.3678 +            {
 84.3679 +              List RESULT =null;
 84.3680 +		
 84.3681 +    RESULT = new LinkedList();
 84.3682 +
 84.3683 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("compilation_units",84, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3684 +            }
 84.3685 +          return CUP$AdaASTParser$result;
 84.3686 +
 84.3687 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3688 +          case 436: // compilation_units ::= compilation_units compilation_unit 
 84.3689 +            {
 84.3690 +              List RESULT =null;
 84.3691 +		int unitsleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).left;
 84.3692 +		int unitsright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).right;
 84.3693 +		List units = (List)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).value;
 84.3694 +		int unitleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.3695 +		int unitright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.3696 +		Statement unit = (Statement)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.3697 +		
 84.3698 +    if(units != null) {
 84.3699 +        units.add(unit);
 84.3700 +    }
 84.3701 +    RESULT = units;
 84.3702 +
 84.3703 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("compilation_units",84, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3704 +            }
 84.3705 +          return CUP$AdaASTParser$result;
 84.3706 +
 84.3707 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3708 +          case 435: // compilation_units ::= 
 84.3709 +            {
 84.3710 +              List RESULT =null;
 84.3711 +		
 84.3712 +    RESULT = new LinkedList();
 84.3713 +
 84.3714 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("compilation_units",84, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3715 +            }
 84.3716 +          return CUP$AdaASTParser$result;
 84.3717 +
 84.3718 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3719 +          case 434: // compilation ::= compilation_units 
 84.3720 +            {
 84.3721 +              Program RESULT =null;
 84.3722 +		int unitsleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.3723 +		int unitsright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.3724 +		List units = (List)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.3725 +		
 84.3726 +    AdaASTLexer AdaASTLexer = (AdaASTLexer) parser.getScanner();
 84.3727 +    List comments = AdaASTLexer.getCommentList();
 84.3728 +    Program program = new Program(unitsleft, unitsright, units, comments);
 84.3729 +    RESULT = program;
 84.3730 +
 84.3731 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("compilation",83, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3732 +            }
 84.3733 +          return CUP$AdaASTParser$result;
 84.3734 +
 84.3735 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3736 +          case 433: // task_name_list ::= task_name_list COMMA name 
 84.3737 +            {
 84.3738 +              List RESULT =null;
 84.3739 +		int idListleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).left;
 84.3740 +		int idListright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).right;
 84.3741 +		List idList = (List)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).value;
 84.3742 +		int nameleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.3743 +		int nameright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.3744 +		Identifier name = (Identifier)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.3745 +		
 84.3746 +    TaskName taskName = new TaskName(nameleft, nameright, name);
 84.3747 +    idList.add(taskName);
 84.3748 +    RESULT = idList;
 84.3749 +
 84.3750 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("task_name_list",82, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3751 +            }
 84.3752 +          return CUP$AdaASTParser$result;
 84.3753 +
 84.3754 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3755 +          case 432: // task_name_list ::= name 
 84.3756 +            {
 84.3757 +              List RESULT =null;
 84.3758 +		int nameleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.3759 +		int nameright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.3760 +		Identifier name = (Identifier)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.3761 +		
 84.3762 +    List idList = new LinkedList();
 84.3763 +    TaskName taskName = new TaskName(nameleft, nameright, name);
 84.3764 +    idList.add(taskName);
 84.3765 +    RESULT = idList;
 84.3766 +
 84.3767 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("task_name_list",82, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3768 +            }
 84.3769 +          return CUP$AdaASTParser$result;
 84.3770 +
 84.3771 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3772 +          case 431: // abort_statement ::= ABORT task_name_list SEMICOLON 
 84.3773 +            {
 84.3774 +              Statement RESULT =null;
 84.3775 +		int tokenleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).left;
 84.3776 +		int tokenright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).right;
 84.3777 +		Object token = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).value;
 84.3778 +		int taskListleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).left;
 84.3779 +		int taskListright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).right;
 84.3780 +		List taskList = (List)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).value;
 84.3781 +		int endleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.3782 +		int endright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.3783 +		Object end = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.3784 +		
 84.3785 +    RESULT = new AbortStatement(tokenleft, endright, taskList);
 84.3786 +
 84.3787 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("abort_statement",81, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3788 +            }
 84.3789 +          return CUP$AdaASTParser$result;
 84.3790 +
 84.3791 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3792 +          case 430: // stmts_opt ::= sequence_of_statements 
 84.3793 +            {
 84.3794 +              Object RESULT =null;
 84.3795 +
 84.3796 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("stmts_opt",214, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3797 +            }
 84.3798 +          return CUP$AdaASTParser$result;
 84.3799 +
 84.3800 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3801 +          case 429: // stmts_opt ::= 
 84.3802 +            {
 84.3803 +              Object RESULT =null;
 84.3804 +
 84.3805 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("stmts_opt",214, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3806 +            }
 84.3807 +          return CUP$AdaASTParser$result;
 84.3808 +
 84.3809 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3810 +          case 428: // cond_entry_call ::= SELECT entry_call stmts_opt ELSE sequence_of_statements END SELECT SEMICOLON 
 84.3811 +            {
 84.3812 +              Object RESULT =null;
 84.3813 +
 84.3814 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("cond_entry_call",210, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-7)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3815 +            }
 84.3816 +          return CUP$AdaASTParser$result;
 84.3817 +
 84.3818 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3819 +          case 427: // timed_entry_call ::= SELECT entry_call stmts_opt OR delay_statement stmts_opt END SELECT SEMICOLON 
 84.3820 +            {
 84.3821 +              Object RESULT =null;
 84.3822 +
 84.3823 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("timed_entry_call",209, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-8)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3824 +            }
 84.3825 +          return CUP$AdaASTParser$result;
 84.3826 +
 84.3827 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3828 +          case 426: // async_select ::= SELECT delay_or_entry_alt THEN ABORT sequence_of_statements END SELECT SEMICOLON 
 84.3829 +            {
 84.3830 +              Object RESULT =null;
 84.3831 +
 84.3832 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("async_select",208, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-7)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3833 +            }
 84.3834 +          return CUP$AdaASTParser$result;
 84.3835 +
 84.3836 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3837 +          case 425: // delay_or_entry_alt ::= entry_call stmts_opt 
 84.3838 +            {
 84.3839 +              Object RESULT =null;
 84.3840 +
 84.3841 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("delay_or_entry_alt",215, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3842 +            }
 84.3843 +          return CUP$AdaASTParser$result;
 84.3844 +
 84.3845 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3846 +          case 424: // delay_or_entry_alt ::= delay_statement stmts_opt 
 84.3847 +            {
 84.3848 +              Object RESULT =null;
 84.3849 +
 84.3850 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("delay_or_entry_alt",215, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3851 +            }
 84.3852 +          return CUP$AdaASTParser$result;
 84.3853 +
 84.3854 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3855 +          case 423: // select_alt ::= TERMINATE SEMICOLON 
 84.3856 +            {
 84.3857 +              Object RESULT =null;
 84.3858 +
 84.3859 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("select_alt",213, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3860 +            }
 84.3861 +          return CUP$AdaASTParser$result;
 84.3862 +
 84.3863 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3864 +          case 422: // select_alt ::= delay_statement stmts_opt 
 84.3865 +            {
 84.3866 +              Object RESULT =null;
 84.3867 +
 84.3868 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("select_alt",213, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3869 +            }
 84.3870 +          return CUP$AdaASTParser$result;
 84.3871 +
 84.3872 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3873 +          case 421: // select_alt ::= accept_stmt stmts_opt 
 84.3874 +            {
 84.3875 +              Object RESULT =null;
 84.3876 +
 84.3877 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("select_alt",213, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3878 +            }
 84.3879 +          return CUP$AdaASTParser$result;
 84.3880 +
 84.3881 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3882 +          case 420: // or_select ::= or_select OR guarded_select_alt 
 84.3883 +            {
 84.3884 +              Object RESULT =null;
 84.3885 +
 84.3886 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("or_select",212, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3887 +            }
 84.3888 +          return CUP$AdaASTParser$result;
 84.3889 +
 84.3890 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3891 +          case 419: // or_select ::= 
 84.3892 +            {
 84.3893 +              Object RESULT =null;
 84.3894 +
 84.3895 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("or_select",212, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3896 +            }
 84.3897 +          return CUP$AdaASTParser$result;
 84.3898 +
 84.3899 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3900 +          case 418: // guarded_select_alt ::= WHEN condition ARROW select_alt 
 84.3901 +            {
 84.3902 +              Object RESULT =null;
 84.3903 +
 84.3904 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("guarded_select_alt",211, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3905 +            }
 84.3906 +          return CUP$AdaASTParser$result;
 84.3907 +
 84.3908 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3909 +          case 417: // guarded_select_alt ::= select_alt 
 84.3910 +            {
 84.3911 +              Object RESULT =null;
 84.3912 +
 84.3913 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("guarded_select_alt",211, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3914 +            }
 84.3915 +          return CUP$AdaASTParser$result;
 84.3916 +
 84.3917 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3918 +          case 416: // select_wait ::= SELECT guarded_select_alt or_select else_opt END SELECT SEMICOLON 
 84.3919 +            {
 84.3920 +              Object RESULT =null;
 84.3921 +
 84.3922 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("select_wait",207, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-6)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3923 +            }
 84.3924 +          return CUP$AdaASTParser$result;
 84.3925 +
 84.3926 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3927 +          case 415: // select_stmt ::= cond_entry_call 
 84.3928 +            {
 84.3929 +              Object RESULT =null;
 84.3930 +
 84.3931 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("select_stmt",179, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3932 +            }
 84.3933 +          return CUP$AdaASTParser$result;
 84.3934 +
 84.3935 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3936 +          case 414: // select_stmt ::= timed_entry_call 
 84.3937 +            {
 84.3938 +              Object RESULT =null;
 84.3939 +
 84.3940 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("select_stmt",179, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3941 +            }
 84.3942 +          return CUP$AdaASTParser$result;
 84.3943 +
 84.3944 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3945 +          case 413: // select_stmt ::= async_select 
 84.3946 +            {
 84.3947 +              Object RESULT =null;
 84.3948 +
 84.3949 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("select_stmt",179, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3950 +            }
 84.3951 +          return CUP$AdaASTParser$result;
 84.3952 +
 84.3953 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3954 +          case 412: // select_stmt ::= select_wait 
 84.3955 +            {
 84.3956 +              Object RESULT =null;
 84.3957 +
 84.3958 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("select_stmt",179, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3959 +            }
 84.3960 +          return CUP$AdaASTParser$result;
 84.3961 +
 84.3962 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3963 +          case 411: // delay_statement ::= DELAY UNTIL expression SEMICOLON 
 84.3964 +            {
 84.3965 +              Statement RESULT =null;
 84.3966 +		int tokenleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)).left;
 84.3967 +		int tokenright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)).right;
 84.3968 +		Object token = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)).value;
 84.3969 +		int exprleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).left;
 84.3970 +		int exprright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).right;
 84.3971 +		Expression expr = (Expression)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).value;
 84.3972 +		int endleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.3973 +		int endright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.3974 +		Object end = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.3975 +		
 84.3976 +    RESULT = new ReturnStatement(tokenleft, endright, expr);
 84.3977 +
 84.3978 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("delay_statement",80, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3979 +            }
 84.3980 +          return CUP$AdaASTParser$result;
 84.3981 +
 84.3982 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.3983 +          case 410: // delay_statement ::= DELAY expression SEMICOLON 
 84.3984 +            {
 84.3985 +              Statement RESULT =null;
 84.3986 +		int tokenleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).left;
 84.3987 +		int tokenright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).right;
 84.3988 +		Object token = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).value;
 84.3989 +		int exprleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).left;
 84.3990 +		int exprright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).right;
 84.3991 +		Expression expr = (Expression)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).value;
 84.3992 +		int endleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.3993 +		int endright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.3994 +		Object end = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.3995 +		
 84.3996 +    RESULT = new ReturnStatement(tokenleft, endright, expr);
 84.3997 +
 84.3998 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("delay_statement",80, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.3999 +            }
 84.4000 +          return CUP$AdaASTParser$result;
 84.4001 +
 84.4002 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4003 +          case 409: // entry_name ::= entry_name LPAREN expression RPAREN 
 84.4004 +            {
 84.4005 +              Object RESULT =null;
 84.4006 +
 84.4007 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("entry_name",206, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4008 +            }
 84.4009 +          return CUP$AdaASTParser$result;
 84.4010 +
 84.4011 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4012 +          case 408: // entry_name ::= simple_name 
 84.4013 +            {
 84.4014 +              Object RESULT =null;
 84.4015 +
 84.4016 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("entry_name",206, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4017 +            }
 84.4018 +          return CUP$AdaASTParser$result;
 84.4019 +
 84.4020 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4021 +          case 407: // accept_hdr ::= ACCEPT entry_name formal_part_opt 
 84.4022 +            {
 84.4023 +              Object RESULT =null;
 84.4024 +
 84.4025 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("accept_hdr",204, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4026 +            }
 84.4027 +          return CUP$AdaASTParser$result;
 84.4028 +
 84.4029 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4030 +          case 406: // accept_stmt ::= accept_hdr DO handled_stmt_s END id_opt SEMICOLON 
 84.4031 +            {
 84.4032 +              Object RESULT =null;
 84.4033 +
 84.4034 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("accept_stmt",178, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-5)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4035 +            }
 84.4036 +          return CUP$AdaASTParser$result;
 84.4037 +
 84.4038 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4039 +          case 405: // accept_stmt ::= accept_hdr SEMICOLON 
 84.4040 +            {
 84.4041 +              Object RESULT =null;
 84.4042 +
 84.4043 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("accept_stmt",178, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4044 +            }
 84.4045 +          return CUP$AdaASTParser$result;
 84.4046 +
 84.4047 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4048 +          case 404: // entry_call ::= procedure_call_statement 
 84.4049 +            {
 84.4050 +              Object RESULT =null;
 84.4051 +		int statementleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.4052 +		int statementright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.4053 +		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.4054 +		
 84.4055 +    RESULT = statement;
 84.4056 +
 84.4057 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("entry_call",205, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4058 +            }
 84.4059 +          return CUP$AdaASTParser$result;
 84.4060 +
 84.4061 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4062 +          case 403: // rep_spec_s ::= rep_spec_s rep_spec pragma_s 
 84.4063 +            {
 84.4064 +              Object RESULT =null;
 84.4065 +
 84.4066 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("rep_spec_s",190, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4067 +            }
 84.4068 +          return CUP$AdaASTParser$result;
 84.4069 +
 84.4070 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4071 +          case 402: // rep_spec_s ::= 
 84.4072 +            {
 84.4073 +              Object RESULT =null;
 84.4074 +
 84.4075 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("rep_spec_s",190, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4076 +            }
 84.4077 +          return CUP$AdaASTParser$result;
 84.4078 +
 84.4079 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4080 +          case 401: // entry_body_part ::= IS declarative_part block_body END id_opt SEMICOLON 
 84.4081 +            {
 84.4082 +              Object RESULT =null;
 84.4083 +
 84.4084 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("entry_body_part",203, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-5)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4085 +            }
 84.4086 +          return CUP$AdaASTParser$result;
 84.4087 +
 84.4088 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4089 +          case 400: // entry_body_part ::= SEMICOLON 
 84.4090 +            {
 84.4091 +              Object RESULT =null;
 84.4092 +
 84.4093 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("entry_body_part",203, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4094 +            }
 84.4095 +          return CUP$AdaASTParser$result;
 84.4096 +
 84.4097 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4098 +          case 399: // entry_body ::= ENTRY IDENTIFIER LPAREN iter_part discrete_range RPAREN formal_part_opt WHEN condition entry_body_part 
 84.4099 +            {
 84.4100 +              Object RESULT =null;
 84.4101 +
 84.4102 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("entry_body",202, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-9)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4103 +            }
 84.4104 +          return CUP$AdaASTParser$result;
 84.4105 +
 84.4106 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4107 +          case 398: // entry_body ::= ENTRY IDENTIFIER formal_part_opt WHEN condition entry_body_part 
 84.4108 +            {
 84.4109 +              Object RESULT =null;
 84.4110 +
 84.4111 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("entry_body",202, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-5)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4112 +            }
 84.4113 +          return CUP$AdaASTParser$result;
 84.4114 +
 84.4115 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4116 +          case 397: // entry_decl ::= ENTRY IDENTIFIER LPAREN discrete_range RPAREN formal_part_opt SEMICOLON 
 84.4117 +            {
 84.4118 +              Object RESULT =null;
 84.4119 +
 84.4120 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("entry_decl",198, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-6)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4121 +            }
 84.4122 +          return CUP$AdaASTParser$result;
 84.4123 +
 84.4124 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4125 +          case 396: // entry_decl ::= ENTRY IDENTIFIER formal_part_opt SEMICOLON 
 84.4126 +            {
 84.4127 +              Object RESULT =null;
 84.4128 +
 84.4129 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("entry_decl",198, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4130 +            }
 84.4131 +          return CUP$AdaASTParser$result;
 84.4132 +
 84.4133 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4134 +          case 395: // entry_decl_s ::= entry_decl_s entry_decl pragma_s 
 84.4135 +            {
 84.4136 +              Object RESULT =null;
 84.4137 +
 84.4138 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("entry_decl_s",189, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4139 +            }
 84.4140 +          return CUP$AdaASTParser$result;
 84.4141 +
 84.4142 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4143 +          case 394: // entry_decl_s ::= pragma_s 
 84.4144 +            {
 84.4145 +              Object RESULT =null;
 84.4146 +
 84.4147 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("entry_decl_s",189, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4148 +            }
 84.4149 +          return CUP$AdaASTParser$result;
 84.4150 +
 84.4151 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4152 +          case 393: // prot_op_body ::= subprogram_specification SEMICOLON 
 84.4153 +            {
 84.4154 +              Object RESULT =null;
 84.4155 +
 84.4156 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("prot_op_body",201, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4157 +            }
 84.4158 +          return CUP$AdaASTParser$result;
 84.4159 +
 84.4160 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4161 +          case 392: // prot_op_body ::= subprogram_body 
 84.4162 +            {
 84.4163 +              Object RESULT =null;
 84.4164 +
 84.4165 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("prot_op_body",201, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4166 +            }
 84.4167 +          return CUP$AdaASTParser$result;
 84.4168 +
 84.4169 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4170 +          case 391: // prot_op_body ::= entry_body 
 84.4171 +            {
 84.4172 +              Object RESULT =null;
 84.4173 +
 84.4174 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("prot_op_body",201, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4175 +            }
 84.4176 +          return CUP$AdaASTParser$result;
 84.4177 +
 84.4178 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4179 +          case 390: // prot_op_body_s ::= prot_op_body_s prot_op_body pragma_s 
 84.4180 +            {
 84.4181 +              Object RESULT =null;
 84.4182 +
 84.4183 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("prot_op_body_s",200, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4184 +            }
 84.4185 +          return CUP$AdaASTParser$result;
 84.4186 +
 84.4187 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4188 +          case 389: // prot_op_body_s ::= pragma_s 
 84.4189 +            {
 84.4190 +              Object RESULT =null;
 84.4191 +
 84.4192 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("prot_op_body_s",200, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4193 +            }
 84.4194 +          return CUP$AdaASTParser$result;
 84.4195 +
 84.4196 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4197 +          case 388: // protected_body ::= PROTECTED BODY simple_name IS prot_op_body_s END id_opt SEMICOLON 
 84.4198 +            {
 84.4199 +              Statement RESULT =null;
 84.4200 +		int nameleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-5)).left;
 84.4201 +		int nameright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-5)).right;
 84.4202 +		Identifier name = (Identifier)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-5)).value;
 84.4203 +
 84.4204 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("protected_body",79, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-7)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4205 +            }
 84.4206 +          return CUP$AdaASTParser$result;
 84.4207 +
 84.4208 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4209 +          case 387: // prot_elem_decl ::= comp_decl 
 84.4210 +            {
 84.4211 +              Object RESULT =null;
 84.4212 +
 84.4213 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("prot_elem_decl",199, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4214 +            }
 84.4215 +          return CUP$AdaASTParser$result;
 84.4216 +
 84.4217 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4218 +          case 386: // prot_elem_decl ::= prot_op_decl 
 84.4219 +            {
 84.4220 +              Object RESULT =null;
 84.4221 +
 84.4222 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("prot_elem_decl",199, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4223 +            }
 84.4224 +          return CUP$AdaASTParser$result;
 84.4225 +
 84.4226 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4227 +          case 385: // prot_elem_decl_s ::= prot_elem_decl_s prot_elem_decl 
 84.4228 +            {
 84.4229 +              Object RESULT =null;
 84.4230 +
 84.4231 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("prot_elem_decl_s",196, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4232 +            }
 84.4233 +          return CUP$AdaASTParser$result;
 84.4234 +
 84.4235 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4236 +          case 384: // prot_elem_decl_s ::= 
 84.4237 +            {
 84.4238 +              Object RESULT =null;
 84.4239 +
 84.4240 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("prot_elem_decl_s",196, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4241 +            }
 84.4242 +          return CUP$AdaASTParser$result;
 84.4243 +
 84.4244 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4245 +          case 383: // prot_op_decl ::= pragma 
 84.4246 +            {
 84.4247 +              Object RESULT =null;
 84.4248 +
 84.4249 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("prot_op_decl",197, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4250 +            }
 84.4251 +          return CUP$AdaASTParser$result;
 84.4252 +
 84.4253 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4254 +          case 382: // prot_op_decl ::= rep_spec 
 84.4255 +            {
 84.4256 +              Object RESULT =null;
 84.4257 +
 84.4258 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("prot_op_decl",197, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4259 +            }
 84.4260 +          return CUP$AdaASTParser$result;
 84.4261 +
 84.4262 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4263 +          case 381: // prot_op_decl ::= subprogram_specification SEMICOLON 
 84.4264 +            {
 84.4265 +              Object RESULT =null;
 84.4266 +
 84.4267 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("prot_op_decl",197, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4268 +            }
 84.4269 +          return CUP$AdaASTParser$result;
 84.4270 +
 84.4271 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4272 +          case 380: // prot_op_decl ::= entry_decl 
 84.4273 +            {
 84.4274 +              Object RESULT =null;
 84.4275 +
 84.4276 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("prot_op_decl",197, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4277 +            }
 84.4278 +          return CUP$AdaASTParser$result;
 84.4279 +
 84.4280 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4281 +          case 379: // prot_op_decl_s ::= prot_op_decl_s prot_op_decl 
 84.4282 +            {
 84.4283 +              Object RESULT =null;
 84.4284 +
 84.4285 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("prot_op_decl_s",194, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4286 +            }
 84.4287 +          return CUP$AdaASTParser$result;
 84.4288 +
 84.4289 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4290 +          case 378: // prot_op_decl_s ::= 
 84.4291 +            {
 84.4292 +              Object RESULT =null;
 84.4293 +
 84.4294 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("prot_op_decl_s",194, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4295 +            }
 84.4296 +          return CUP$AdaASTParser$result;
 84.4297 +
 84.4298 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4299 +          case 377: // prot_private_opt ::= PRIVATE prot_elem_decl_s 
 84.4300 +            {
 84.4301 +              Object RESULT =null;
 84.4302 +
 84.4303 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("prot_private_opt",195, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4304 +            }
 84.4305 +          return CUP$AdaASTParser$result;
 84.4306 +
 84.4307 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4308 +          case 376: // prot_private_opt ::= 
 84.4309 +            {
 84.4310 +              Object RESULT =null;
 84.4311 +
 84.4312 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("prot_private_opt",195, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4313 +            }
 84.4314 +          return CUP$AdaASTParser$result;
 84.4315 +
 84.4316 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4317 +          case 375: // prot_def ::= IS prot_op_decl_s prot_private_opt END id_opt 
 84.4318 +            {
 84.4319 +              Object RESULT =null;
 84.4320 +
 84.4321 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("prot_def",193, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-4)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4322 +            }
 84.4323 +          return CUP$AdaASTParser$result;
 84.4324 +
 84.4325 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4326 +          case 374: // prot_spec ::= PROTECTED TYPE simple_name discrim_part_opt prot_def 
 84.4327 +            {
 84.4328 +              Object RESULT =null;
 84.4329 +
 84.4330 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("prot_spec",192, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-4)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4331 +            }
 84.4332 +          return CUP$AdaASTParser$result;
 84.4333 +
 84.4334 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4335 +          case 373: // prot_spec ::= PROTECTED IDENTIFIER prot_def 
 84.4336 +            {
 84.4337 +              Object RESULT =null;
 84.4338 +
 84.4339 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("prot_spec",192, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4340 +            }
 84.4341 +          return CUP$AdaASTParser$result;
 84.4342 +
 84.4343 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4344 +          case 372: // prot_decl ::= prot_spec SEMICOLON 
 84.4345 +            {
 84.4346 +              Object RESULT =null;
 84.4347 +
 84.4348 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("prot_decl",126, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4349 +            }
 84.4350 +          return CUP$AdaASTParser$result;
 84.4351 +
 84.4352 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4353 +          case 371: // task_body ::= TASK BODY simple_name IS declarative_part block_body END id_opt SEMICOLON 
 84.4354 +            {
 84.4355 +              Statement RESULT =null;
 84.4356 +
 84.4357 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("task_body",12, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-8)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4358 +            }
 84.4359 +          return CUP$AdaASTParser$result;
 84.4360 +
 84.4361 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4362 +          case 370: // task_private_opt ::= PRIVATE entry_decl_s rep_spec_s 
 84.4363 +            {
 84.4364 +              Object RESULT =null;
 84.4365 +
 84.4366 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("task_private_opt",191, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4367 +            }
 84.4368 +          return CUP$AdaASTParser$result;
 84.4369 +
 84.4370 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4371 +          case 369: // task_private_opt ::= 
 84.4372 +            {
 84.4373 +              Object RESULT =null;
 84.4374 +
 84.4375 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("task_private_opt",191, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4376 +            }
 84.4377 +          return CUP$AdaASTParser$result;
 84.4378 +
 84.4379 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4380 +          case 368: // task_def ::= IS entry_decl_s rep_spec_s task_private_opt END id_opt 
 84.4381 +            {
 84.4382 +              Object RESULT =null;
 84.4383 +
 84.4384 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("task_def",188, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-5)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4385 +            }
 84.4386 +          return CUP$AdaASTParser$result;
 84.4387 +
 84.4388 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4389 +          case 367: // task_def ::= 
 84.4390 +            {
 84.4391 +              Object RESULT =null;
 84.4392 +
 84.4393 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("task_def",188, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4394 +            }
 84.4395 +          return CUP$AdaASTParser$result;
 84.4396 +
 84.4397 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4398 +          case 366: // task_spec ::= TASK TYPE simple_name discrim_part_opt task_def 
 84.4399 +            {
 84.4400 +              Object RESULT =null;
 84.4401 +
 84.4402 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("task_spec",187, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-4)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4403 +            }
 84.4404 +          return CUP$AdaASTParser$result;
 84.4405 +
 84.4406 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4407 +          case 365: // task_spec ::= TASK simple_name task_def 
 84.4408 +            {
 84.4409 +              Object RESULT =null;
 84.4410 +
 84.4411 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("task_spec",187, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4412 +            }
 84.4413 +          return CUP$AdaASTParser$result;
 84.4414 +
 84.4415 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4416 +          case 364: // task_decl ::= task_spec SEMICOLON 
 84.4417 +            {
 84.4418 +              Object RESULT =null;
 84.4419 +
 84.4420 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("task_decl",125, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4421 +            }
 84.4422 +          return CUP$AdaASTParser$result;
 84.4423 +
 84.4424 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4425 +          case 363: // rename_unit ::= generic_formal_part subprogram_specification RENAMES name SEMICOLON 
 84.4426 +            {
 84.4427 +              Statement RESULT =null;
 84.4428 +
 84.4429 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("rename_unit",78, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-4)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4430 +            }
 84.4431 +          return CUP$AdaASTParser$result;
 84.4432 +
 84.4433 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4434 +          case 362: // rename_unit ::= generic_formal_part PACKAGE compound_name RENAMES name SEMICOLON 
 84.4435 +            {
 84.4436 +              Statement RESULT =null;
 84.4437 +
 84.4438 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("rename_unit",78, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-5)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4439 +            }
 84.4440 +          return CUP$AdaASTParser$result;
 84.4441 +
 84.4442 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4443 +          case 361: // rename_unit ::= subprogram_specification RENAMES name SEMICOLON 
 84.4444 +            {
 84.4445 +              Statement RESULT =null;
 84.4446 +		int endleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.4447 +		int endright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.4448 +		Object end = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.4449 +
 84.4450 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("rename_unit",78, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4451 +            }
 84.4452 +          return CUP$AdaASTParser$result;
 84.4453 +
 84.4454 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4455 +          case 360: // rename_unit ::= PACKAGE compound_name RENAMES name SEMICOLON 
 84.4456 +            {
 84.4457 +              Statement RESULT =null;
 84.4458 +		int tokenleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-4)).left;
 84.4459 +		int tokenright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-4)).right;
 84.4460 +		Object token = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-4)).value;
 84.4461 +		int nameleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)).left;
 84.4462 +		int nameright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)).right;
 84.4463 +		Identifier name = (Identifier)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)).value;
 84.4464 +		int renamesleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).left;
 84.4465 +		int renamesright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).right;
 84.4466 +		Identifier renames = (Identifier)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).value;
 84.4467 +		int endleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.4468 +		int endright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.4469 +		Object end = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.4470 +		
 84.4471 +    PackageRenames packageRenames = new PackageRenames(tokenleft, endright, name, renames);
 84.4472 +    RESULT = packageRenames;
 84.4473 +
 84.4474 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("rename_unit",78, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-4)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4475 +            }
 84.4476 +          return CUP$AdaASTParser$result;
 84.4477 +
 84.4478 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4479 +          case 359: // renaming_declaration ::= rename_unit 
 84.4480 +            {
 84.4481 +              Statement RESULT =null;
 84.4482 +		int unitleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.4483 +		int unitright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.4484 +		Statement unit = (Statement)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.4485 +		
 84.4486 +    RESULT = unit;
 84.4487 +
 84.4488 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("renaming_declaration",77, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4489 +            }
 84.4490 +          return CUP$AdaASTParser$result;
 84.4491 +
 84.4492 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4493 +          case 358: // renaming_declaration ::= defining_identifier_list COLON EXCEPTION RENAMES name SEMICOLON 
 84.4494 +            {
 84.4495 +              Statement RESULT =null;
 84.4496 +
 84.4497 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("renaming_declaration",77, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-5)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4498 +            }
 84.4499 +          return CUP$AdaASTParser$result;
 84.4500 +
 84.4501 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4502 +          case 357: // renaming_declaration ::= defining_identifier_list COLON object_qualifier_opt subtype_indication RENAMES name SEMICOLON 
 84.4503 +            {
 84.4504 +              Statement RESULT =null;
 84.4505 +
 84.4506 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("renaming_declaration",77, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-6)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4507 +            }
 84.4508 +          return CUP$AdaASTParser$result;
 84.4509 +
 84.4510 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4511 +          case 356: // subtype_mark_list ::= subtype_mark_list COMMA name 
 84.4512 +            {
 84.4513 +              List RESULT =null;
 84.4514 +		int idListleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).left;
 84.4515 +		int idListright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).right;
 84.4516 +		List idList = (List)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).value;
 84.4517 +		int nameleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.4518 +		int nameright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.4519 +		Identifier name = (Identifier)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.4520 +		
 84.4521 +    TypeName typeName = new TypeName(nameleft, nameright, name);
 84.4522 +    idList.add(typeName);
 84.4523 +    RESULT = idList;
 84.4524 +
 84.4525 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("subtype_mark_list",76, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4526 +            }
 84.4527 +          return CUP$AdaASTParser$result;
 84.4528 +
 84.4529 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4530 +          case 355: // subtype_mark_list ::= name 
 84.4531 +            {
 84.4532 +              List RESULT =null;
 84.4533 +		int nameleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.4534 +		int nameright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.4535 +		Identifier name = (Identifier)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.4536 +		
 84.4537 +    List idList = new LinkedList();
 84.4538 +    TypeName typeName = new TypeName(nameleft, nameright, name);
 84.4539 +    idList.add(typeName);
 84.4540 +    RESULT = idList;
 84.4541 +
 84.4542 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("subtype_mark_list",76, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4543 +            }
 84.4544 +          return CUP$AdaASTParser$result;
 84.4545 +
 84.4546 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4547 +          case 354: // package_name_list ::= package_name_list COMMA name 
 84.4548 +            {
 84.4549 +              List RESULT =null;
 84.4550 +		int idListleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).left;
 84.4551 +		int idListright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).right;
 84.4552 +		List idList = (List)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).value;
 84.4553 +		int nameleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.4554 +		int nameright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.4555 +		Identifier name = (Identifier)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.4556 +		
 84.4557 +    PackageName packageName = new PackageName(nameleft, nameright, name);
 84.4558 +    idList.add(packageName);
 84.4559 +    RESULT = idList;
 84.4560 +
 84.4561 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("package_name_list",75, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4562 +            }
 84.4563 +          return CUP$AdaASTParser$result;
 84.4564 +
 84.4565 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4566 +          case 353: // package_name_list ::= name 
 84.4567 +            {
 84.4568 +              List RESULT =null;
 84.4569 +		int nameleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.4570 +		int nameright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.4571 +		Identifier name = (Identifier)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.4572 +		
 84.4573 +    List idList = new LinkedList();
 84.4574 +    PackageName packageName = new PackageName(nameleft, nameright, name);
 84.4575 +    idList.add(packageName);
 84.4576 +    RESULT = idList;
 84.4577 +
 84.4578 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("package_name_list",75, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4579 +            }
 84.4580 +          return CUP$AdaASTParser$result;
 84.4581 +
 84.4582 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4583 +          case 352: // use_clause ::= USE TYPE subtype_mark_list SEMICOLON 
 84.4584 +            {
 84.4585 +              Statement RESULT =null;
 84.4586 +		int tokenleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)).left;
 84.4587 +		int tokenright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)).right;
 84.4588 +		Object token = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)).value;
 84.4589 +		int subTypeListleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).left;
 84.4590 +		int subTypeListright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).right;
 84.4591 +		List subTypeList = (List)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).value;
 84.4592 +		int endleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.4593 +		int endright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.4594 +		Object end = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.4595 +		
 84.4596 +    RESULT = new UseType(tokenleft, endright, subTypeList);
 84.4597 +
 84.4598 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("use_clause",74, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4599 +            }
 84.4600 +          return CUP$AdaASTParser$result;
 84.4601 +
 84.4602 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4603 +          case 351: // use_clause ::= USE package_name_list SEMICOLON 
 84.4604 +            {
 84.4605 +              Statement RESULT =null;
 84.4606 +		int tokenleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).left;
 84.4607 +		int tokenright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).right;
 84.4608 +		Object token = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).value;
 84.4609 +		int packageListleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).left;
 84.4610 +		int packageListright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).right;
 84.4611 +		List packageList = (List)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).value;
 84.4612 +		int endleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.4613 +		int endright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.4614 +		Object end = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.4615 +		
 84.4616 +    RESULT = new Use(tokenleft, endright, packageList);
 84.4617 +
 84.4618 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("use_clause",74, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4619 +            }
 84.4620 +          return CUP$AdaASTParser$result;
 84.4621 +
 84.4622 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4623 +          case 350: // limited_opt ::= LIMITED 
 84.4624 +            {
 84.4625 +              Integer RESULT =null;
 84.4626 +		
 84.4627 +    RESULT = AdaASTParser.LIMITED;
 84.4628 +
 84.4629 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("limited_opt",73, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4630 +            }
 84.4631 +          return CUP$AdaASTParser$result;
 84.4632 +
 84.4633 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4634 +          case 349: // limited_opt ::= 
 84.4635 +            {
 84.4636 +              Integer RESULT =null;
 84.4637 +		
 84.4638 +    RESULT = 0;
 84.4639 +
 84.4640 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("limited_opt",73, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4641 +            }
 84.4642 +          return CUP$AdaASTParser$result;
 84.4643 +
 84.4644 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4645 +          case 348: // private_type_declaration ::= tagged_opt limited_opt PRIVATE 
 84.4646 +            {
 84.4647 +              PrivateType RESULT =null;
 84.4648 +		int taggedleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).left;
 84.4649 +		int taggedright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).right;
 84.4650 +		Integer tagged = (Integer)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).value;
 84.4651 +		int limitedleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).left;
 84.4652 +		int limitedright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).right;
 84.4653 +		Integer limited = (Integer)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).value;
 84.4654 +		int privateKeywordleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.4655 +		int privateKeywordright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.4656 +		Object privateKeyword = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.4657 +		
 84.4658 +    PrivateType privateType = new PrivateType(taggedleft, privateKeywordright, tagged + limited + AdaASTParser.PRIVATE);
 84.4659 +    RESULT = privateType;
 84.4660 +
 84.4661 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("private_type_declaration",71, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4662 +            }
 84.4663 +          return CUP$AdaASTParser$result;
 84.4664 +
 84.4665 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4666 +          case 347: // body_opt ::= block_body 
 84.4667 +            {
 84.4668 +              Object RESULT =null;
 84.4669 +
 84.4670 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("body_opt",185, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4671 +            }
 84.4672 +          return CUP$AdaASTParser$result;
 84.4673 +
 84.4674 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4675 +          case 346: // body_opt ::= 
 84.4676 +            {
 84.4677 +              Object RESULT =null;
 84.4678 +
 84.4679 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("body_opt",185, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4680 +            }
 84.4681 +          return CUP$AdaASTParser$result;
 84.4682 +
 84.4683 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4684 +          case 345: // package_body ::= PACKAGE BODY compound_name IS declarative_part body_opt END compound_name_opt SEMICOLON 
 84.4685 +            {
 84.4686 +              Statement RESULT =null;
 84.4687 +		int declarationStartleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-8)).left;
 84.4688 +		int declarationStartright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-8)).right;
 84.4689 +		Object declarationStart = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-8)).value;
 84.4690 +		int package_nameleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-6)).left;
 84.4691 +		int package_nameright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-6)).right;
 84.4692 +		Identifier package_name = (Identifier)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-6)).value;
 84.4693 +		int blockStartleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-5)).left;
 84.4694 +		int blockStartright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-5)).right;
 84.4695 +		Object blockStart = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-5)).value;
 84.4696 +		int declarativePartleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-4)).left;
 84.4697 +		int declarativePartright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-4)).right;
 84.4698 +		List declarativePart = (List)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-4)).value;
 84.4699 +		int package_name_endleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).left;
 84.4700 +		int package_name_endright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).right;
 84.4701 +		Identifier package_name_end = (Identifier)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).value;
 84.4702 +		int declarationEndleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.4703 +		int declarationEndright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.4704 +		Object declarationEnd = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.4705 +		
 84.4706 +    if (package_name_end != null && !package_name_end.getName().equalsIgnoreCase (package_name.getName())) {
 84.4707 +        this.parser.message_error("mispelling of " + package_name);
 84.4708 +    }
 84.4709 +    else {
 84.4710 +
 84.4711 +        List list = this.parser.setModifier (declarativePart, AdaASTParser.PRIVATE);
 84.4712 +        Block block = new Block(blockStartleft, declarationEndright, list);
 84.4713 +
 84.4714 +        PackageBody packageBody = new PackageBody(declarationStartleft, declarationEndright, package_name, package_name_end, block);
 84.4715 +        RESULT = packageBody;
 84.4716 +    }
 84.4717 +
 84.4718 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("package_body",69, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-8)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4719 +            }
 84.4720 +          return CUP$AdaASTParser$result;
 84.4721 +
 84.4722 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4723 +          case 344: // compound_name_opt ::= compound_name 
 84.4724 +            {
 84.4725 +              Identifier RESULT =null;
 84.4726 +		int compound_nameleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.4727 +		int compound_nameright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.4728 +		Identifier compound_name = (Identifier)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.4729 +		
 84.4730 +    RESULT = compound_name;
 84.4731 +
 84.4732 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("compound_name_opt",95, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4733 +            }
 84.4734 +          return CUP$AdaASTParser$result;
 84.4735 +
 84.4736 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4737 +          case 343: // compound_name_opt ::= 
 84.4738 +            {
 84.4739 +              Identifier RESULT =null;
 84.4740 +
 84.4741 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("compound_name_opt",95, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4742 +            }
 84.4743 +          return CUP$AdaASTParser$result;
 84.4744 +
 84.4745 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4746 +          case 342: // private_part ::= PRIVATE declarative_items_opt 
 84.4747 +            {
 84.4748 +              List RESULT =null;
 84.4749 +		int declarativeItemsleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.4750 +		int declarativeItemsright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.4751 +		List declarativeItems = (List)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.4752 +		
 84.4753 +    RESULT = this.parser.setModifier (declarativeItems, AdaASTParser.PRIVATE);
 84.4754 +
 84.4755 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("private_part",10, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4756 +            }
 84.4757 +          return CUP$AdaASTParser$result;
 84.4758 +
 84.4759 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4760 +          case 341: // private_part ::= 
 84.4761 +            {
 84.4762 +              List RESULT =null;
 84.4763 +		
 84.4764 +    RESULT = new LinkedList();
 84.4765 +
 84.4766 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("private_part",10, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4767 +            }
 84.4768 +          return CUP$AdaASTParser$result;
 84.4769 +
 84.4770 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4771 +          case 340: // package_specification ::= PACKAGE compound_name IS declarative_items_opt private_part END compound_name_opt 
 84.4772 +            {
 84.4773 +              Statement RESULT =null;
 84.4774 +		int declarationStartleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-6)).left;
 84.4775 +		int declarationStartright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-6)).right;
 84.4776 +		Object declarationStart = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-6)).value;
 84.4777 +		int package_nameleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-5)).left;
 84.4778 +		int package_nameright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-5)).right;
 84.4779 +		Identifier package_name = (Identifier)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-5)).value;
 84.4780 +		int blockStartleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-4)).left;
 84.4781 +		int blockStartright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-4)).right;
 84.4782 +		Object blockStart = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-4)).value;
 84.4783 +		int declarativeItemsleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)).left;
 84.4784 +		int declarativeItemsright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)).right;
 84.4785 +		List declarativeItems = (List)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)).value;
 84.4786 +		int privateDeclarativeItemsleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).left;
 84.4787 +		int privateDeclarativeItemsright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).right;
 84.4788 +		List privateDeclarativeItems = (List)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).value;
 84.4789 +		int declarationEndleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).left;
 84.4790 +		int declarationEndright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).right;
 84.4791 +		Object declarationEnd = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).value;
 84.4792 +		int package_name_endleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.4793 +		int package_name_endright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.4794 +		Identifier package_name_end = (Identifier)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.4795 +		
 84.4796 +    if (package_name_end != null && !package_name_end.getName().equalsIgnoreCase (package_name.getName())) {
 84.4797 +        this.parser.message_error("mispelling of " + package_name);
 84.4798 +    }
 84.4799 +    else {
 84.4800 +        declarativeItems.addAll (privateDeclarativeItems);
 84.4801 +        // Add private part on block statements
 84.4802 +        Block block = new Block(blockStartleft, declarationEndright, declarativeItems);
 84.4803 +        PackageSpecification packageSpecification = new PackageSpecification(declarationStartleft, declarationEndright, package_name, package_name_end, block);
 84.4804 +        RESULT = packageSpecification;
 84.4805 +    }
 84.4806 +
 84.4807 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("package_specification",68, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-6)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4808 +            }
 84.4809 +          return CUP$AdaASTParser$result;
 84.4810 +
 84.4811 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4812 +          case 339: // package_declaration ::= generic_package_instantiation SEMICOLON 
 84.4813 +            {
 84.4814 +              Statement RESULT =null;
 84.4815 +
 84.4816 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("package_declaration",67, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4817 +            }
 84.4818 +          return CUP$AdaASTParser$result;
 84.4819 +
 84.4820 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4821 +          case 338: // package_declaration ::= package_specification SEMICOLON 
 84.4822 +            {
 84.4823 +              Statement RESULT =null;
 84.4824 +		int statementleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).left;
 84.4825 +		int statementright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).right;
 84.4826 +		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).value;
 84.4827 +		
 84.4828 +    RESULT = statement;
 84.4829 +
 84.4830 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("package_declaration",67, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4831 +            }
 84.4832 +          return CUP$AdaASTParser$result;
 84.4833 +
 84.4834 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4835 +          case 337: // procedure_call_statement ::= name SEMICOLON 
 84.4836 +            {
 84.4837 +              Statement RESULT =null;
 84.4838 +
 84.4839 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("procedure_call_statement",109, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4840 +            }
 84.4841 +          return CUP$AdaASTParser$result;
 84.4842 +
 84.4843 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4844 +          case 336: // subprogram_body ::= subprogram_specification IS declarative_part block_body END id_opt SEMICOLON 
 84.4845 +            {
 84.4846 +              MethodDeclaration RESULT =null;
 84.4847 +		int subprogleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-6)).left;
 84.4848 +		int subprogright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-6)).right;
 84.4849 +		SubprogramSpecification subprog = (SubprogramSpecification)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-6)).value;
 84.4850 +		int declarativePartleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-4)).left;
 84.4851 +		int declarativePartright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-4)).right;
 84.4852 +		List declarativePart = (List)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-4)).value;
 84.4853 +		int bodyleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)).left;
 84.4854 +		int bodyright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)).right;
 84.4855 +		Block body = (Block)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)).value;
 84.4856 +		int id_optleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).left;
 84.4857 +		int id_optright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).right;
 84.4858 +		Identifier id_opt = (Identifier)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).value;
 84.4859 +		int endleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.4860 +		int endright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.4861 +		Object end = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.4862 +		
 84.4863 +    if (id_opt != null && !id_opt.getName().equalsIgnoreCase (subprog.getSubprogramName().getName())) {
 84.4864 +        this.parser.message_error("mispelling of " + subprog.getSubprogramName().getName());
 84.4865 +    } else {
 84.4866 +        Block declarations = new Block(subprogright, bodyleft, declarativePart);
 84.4867 +        body.setEndOffset(endright);
 84.4868 +        SubprogramBody subprogramBody = new SubprogramBody(subprogleft, endright, subprog, declarations, body, id_opt);
 84.4869 +        MethodDeclaration methodDeclaration = new MethodDeclaration(subprogleft, endright, 0/*modifier*/, subprogramBody);
 84.4870 +        RESULT = methodDeclaration;
 84.4871 +    }
 84.4872 +
 84.4873 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("subprogram_body",58, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-6)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4874 +            }
 84.4875 +          return CUP$AdaASTParser$result;
 84.4876 +
 84.4877 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4878 +          case 335: // operator_symbol ::= STRING_LITERAL 
 84.4879 +            {
 84.4880 +              Identifier RESULT =null;
 84.4881 +		int string_literalleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.4882 +		int string_literalright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.4883 +		String string_literal = (String)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.4884 +		
 84.4885 +    Identifier identifier = new Identifier (string_literalleft, string_literalright, string_literal);
 84.4886 +    RESULT = identifier;
 84.4887 +
 84.4888 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("operator_symbol",65, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4889 +            }
 84.4890 +          return CUP$AdaASTParser$result;
 84.4891 +
 84.4892 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4893 +          case 334: // mode ::= ACCESS 
 84.4894 +            {
 84.4895 +              FormalParameter.Mode RESULT =null;
 84.4896 +		
 84.4897 +    RESULT = FormalParameter.Mode.ACCESS;
 84.4898 +
 84.4899 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("mode",63, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4900 +            }
 84.4901 +          return CUP$AdaASTParser$result;
 84.4902 +
 84.4903 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4904 +          case 333: // mode ::= IN OUT 
 84.4905 +            {
 84.4906 +              FormalParameter.Mode RESULT =null;
 84.4907 +		
 84.4908 +    RESULT = FormalParameter.Mode.IN_OUT;
 84.4909 +
 84.4910 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("mode",63, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4911 +            }
 84.4912 +          return CUP$AdaASTParser$result;
 84.4913 +
 84.4914 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4915 +          case 332: // mode ::= OUT 
 84.4916 +            {
 84.4917 +              FormalParameter.Mode RESULT =null;
 84.4918 +		
 84.4919 +    RESULT = FormalParameter.Mode.OUT;
 84.4920 +
 84.4921 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("mode",63, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4922 +            }
 84.4923 +          return CUP$AdaASTParser$result;
 84.4924 +
 84.4925 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4926 +          case 331: // mode ::= IN 
 84.4927 +            {
 84.4928 +              FormalParameter.Mode RESULT =null;
 84.4929 +		
 84.4930 +    RESULT = FormalParameter.Mode.IN;
 84.4931 +
 84.4932 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("mode",63, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4933 +            }
 84.4934 +          return CUP$AdaASTParser$result;
 84.4935 +
 84.4936 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4937 +          case 330: // mode ::= 
 84.4938 +            {
 84.4939 +              FormalParameter.Mode RESULT =null;
 84.4940 +		
 84.4941 +    RESULT = FormalParameter.Mode.IN;
 84.4942 +
 84.4943 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("mode",63, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4944 +            }
 84.4945 +          return CUP$AdaASTParser$result;
 84.4946 +
 84.4947 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4948 +          case 329: // param ::= error SEMICOLON 
 84.4949 +            {
 84.4950 +              List RESULT =null;
 84.4951 +		int theErrorleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).left;
 84.4952 +		int theErrorright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).right;
 84.4953 +		Object theError = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).value;
 84.4954 +		
 84.4955 +    List list = new LinkedList();
 84.4956 +    ASTError error = new ASTError(theErrorleft, theErrorright);
 84.4957 +    list.add(error);
 84.4958 +    RESULT = list;
 84.4959 +
 84.4960 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("param",62, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4961 +            }
 84.4962 +          return CUP$AdaASTParser$result;
 84.4963 +
 84.4964 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4965 +          case 328: // param ::= defining_identifier_list COLON mode subtype_mark init_opt 
 84.4966 +            {
 84.4967 +              List RESULT =null;
 84.4968 +		int identifierListleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-4)).left;
 84.4969 +		int identifierListright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-4)).right;
 84.4970 +		List identifierList = (List)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-4)).value;
 84.4971 +		int modeleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).left;
 84.4972 +		int moderight = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).right;
 84.4973 +		FormalParameter.Mode mode = (FormalParameter.Mode)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).value;
 84.4974 +		int subtypeleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).left;
 84.4975 +		int subtyperight = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).right;
 84.4976 +		NameBase subtype = (NameBase)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).value;
 84.4977 +		int initleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.4978 +		int initright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.4979 +		Expression init = (Expression)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.4980 +		
 84.4981 +    List list = new LinkedList();
 84.4982 +    for (Object item : identifierList) {
 84.4983 +        Identifier identifier = (Identifier)item;
 84.4984 +        Variable variable = new Variable (identifier.getStartOffset(), identifier.getEndOffset(), identifier);
 84.4985 +	    int end = init == null ? subtyperight : initright;
 84.4986 +        FormalParameter parameter = new FormalParameter(identifierListleft, end, variable, mode, subtype, init);
 84.4987 +    	list.add(parameter);
 84.4988 +    }
 84.4989 +    RESULT = list;
 84.4990 +
 84.4991 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("param",62, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-4)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.4992 +            }
 84.4993 +          return CUP$AdaASTParser$result;
 84.4994 +
 84.4995 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.4996 +          case 327: // param_s ::= param_s SEMICOLON param 
 84.4997 +            {
 84.4998 +              List RESULT =null;
 84.4999 +		int listleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).left;
 84.5000 +		int listright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).right;
 84.5001 +		List list = (List)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).value;
 84.5002 +		int parameterleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.5003 +		int parameterright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.5004 +		List parameter = (List)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.5005 +		
 84.5006 +    list.addAll(parameter);
 84.5007 +    RESULT = list;
 84.5008 +
 84.5009 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("param_s",59, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.5010 +            }
 84.5011 +          return CUP$AdaASTParser$result;
 84.5012 +
 84.5013 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.5014 +          case 326: // param_s ::= param 
 84.5015 +            {
 84.5016 +              List RESULT =null;
 84.5017 +		int parameterleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.5018 +		int parameterright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.5019 +		List parameter = (List)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.5020 +		
 84.5021 +    List list = new LinkedList();
 84.5022 +    list.addAll(parameter);
 84.5023 +    RESULT = list;
 84.5024 +
 84.5025 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("param_s",59, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.5026 +            }
 84.5027 +          return CUP$AdaASTParser$result;
 84.5028 +
 84.5029 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.5030 +          case 325: // formal_part ::= LPAREN param_s RPAREN 
 84.5031 +            {
 84.5032 +              List RESULT =null;
 84.5033 +		int listleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).left;
 84.5034 +		int listright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).right;
 84.5035 +		List list = (List)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).value;
 84.5036 +		
 84.5037 +	RESULT = list;
 84.5038 +
 84.5039 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("formal_part",61, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.5040 +            }
 84.5041 +          return CUP$AdaASTParser$result;
 84.5042 +
 84.5043 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.5044 +          case 324: // formal_part_opt ::= formal_part 
 84.5045 +            {
 84.5046 +              List RESULT =null;
 84.5047 +		int listleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.5048 +		int listright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.5049 +		List list = (List)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.5050 +		
 84.5051 +	RESULT = list;
 84.5052 +
 84.5053 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("formal_part_opt",60, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.5054 +            }
 84.5055 +          return CUP$AdaASTParser$result;
 84.5056 +
 84.5057 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.5058 +          case 323: // formal_part_opt ::= 
 84.5059 +            {
 84.5060 +              List RESULT =null;
 84.5061 +		
 84.5062 +	List list = new LinkedList();
 84.5063 +	RESULT = list;
 84.5064 +
 84.5065 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("formal_part_opt",60, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.5066 +            }
 84.5067 +          return CUP$AdaASTParser$result;
 84.5068 +
 84.5069 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.5070 +          case 322: // designator ::= operator_symbol 
 84.5071 +            {
 84.5072 +              Identifier RESULT =null;
 84.5073 +		int nameleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.5074 +		int nameright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.5075 +		Identifier name = (Identifier)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.5076 +		
 84.5077 +    RESULT = name;
 84.5078 +
 84.5079 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("designator",64, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.5080 +            }
 84.5081 +          return CUP$AdaASTParser$result;
 84.5082 +
 84.5083 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.5084 +          case 321: // designator ::= compound_name 
 84.5085 +            {
 84.5086 +              Identifier RESULT =null;
 84.5087 +		int nameleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.5088 +		int nameright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.5089 +		Identifier name = (Identifier)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.5090 +		
 84.5091 +    RESULT = name;
 84.5092 +
 84.5093 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("designator",64, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.5094 +            }
 84.5095 +          return CUP$AdaASTParser$result;
 84.5096 +
 84.5097 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.5098 +          case 320: // subprogram_specification ::= FUNCTION designator 
 84.5099 +            {
 84.5100 +              SubprogramSpecification RESULT =null;
 84.5101 +		int functionleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).left;
 84.5102 +		int functionright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).right;
 84.5103 +		Object function = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).value;
 84.5104 +		int designatorleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.5105 +		int designatorright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.5106 +		Identifier designator = (Identifier)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.5107 +		
 84.5108 +    SubprogramSpecification subprogramSpecification = new SubprogramSpecification(functionleft, designatorright, designator);
 84.5109 +    RESULT = subprogramSpecification;
 84.5110 +
 84.5111 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("subprogram_specification",56, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.5112 +            }
 84.5113 +          return CUP$AdaASTParser$result;
 84.5114 +
 84.5115 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.5116 +          case 319: // subprogram_specification ::= FUNCTION designator formal_part_opt RETURN name 
 84.5117 +            {
 84.5118 +              SubprogramSpecification RESULT =null;
 84.5119 +		int functionleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-4)).left;
 84.5120 +		int functionright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-4)).right;
 84.5121 +		Object function = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-4)).value;
 84.5122 +		int designatorleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)).left;
 84.5123 +		int designatorright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)).right;
 84.5124 +		Identifier designator = (Identifier)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)).value;
 84.5125 +		int formal_partleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).left;
 84.5126 +		int formal_partright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).right;
 84.5127 +		List formal_part = (List)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).value;
 84.5128 +		int subtype_markleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.5129 +		int subtype_markright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.5130 +		Identifier subtype_mark = (Identifier)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.5131 +		
 84.5132 +    SubprogramSpecification subprogramSpecification = new SubprogramSpecification(functionleft, subtype_markright, designator, formal_part, subtype_mark);
 84.5133 +    RESULT = subprogramSpecification;
 84.5134 +
 84.5135 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("subprogram_specification",56, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-4)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.5136 +            }
 84.5137 +          return CUP$AdaASTParser$result;
 84.5138 +
 84.5139 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.5140 +          case 318: // subprogram_specification ::= PROCEDURE compound_name formal_part_opt 
 84.5141 +            {
 84.5142 +              SubprogramSpecification RESULT =null;
 84.5143 +		int procedureleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).left;
 84.5144 +		int procedureright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).right;
 84.5145 +		Object procedure = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).value;
 84.5146 +		int compound_nameleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).left;
 84.5147 +		int compound_nameright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).right;
 84.5148 +		Identifier compound_name = (Identifier)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).value;
 84.5149 +		int formal_partleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.5150 +		int formal_partright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.5151 +		List formal_part = (List)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.5152 +		
 84.5153 +    SubprogramSpecification subprogramSpecification = new SubprogramSpecification(procedureleft, formal_partright, compound_name, formal_part);
 84.5154 +    RESULT = subprogramSpecification;
 84.5155 +
 84.5156 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("subprogram_specification",56, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.5157 +            }
 84.5158 +          return CUP$AdaASTParser$result;
 84.5159 +
 84.5160 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.5161 +          case 317: // subprog_declaration ::= subprogram_specification IS ABSTRACT SEMICOLON 
 84.5162 +            {
 84.5163 +              Statement RESULT =null;
 84.5164 +		int subprogleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)).left;
 84.5165 +		int subprogright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)).right;
 84.5166 +		SubprogramSpecification subprog = (SubprogramSpecification)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)).value;
 84.5167 +		int endleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.5168 +		int endright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.5169 +		Object end = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.5170 +		
 84.5171 +    RESULT = new MethodDeclaration(subprogleft, endright, AdaASTParser.ABSTRACT, subprog);
 84.5172 +
 84.5173 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("subprog_declaration",3, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.5174 +            }
 84.5175 +          return CUP$AdaASTParser$result;
 84.5176 +
 84.5177 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.5178 +          case 316: // subprog_declaration ::= generic_subp_inst SEMICOLON 
 84.5179 +            {
 84.5180 +              Statement RESULT =null;
 84.5181 +		int subprogleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).left;
 84.5182 +		int subprogright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).right;
 84.5183 +		SubprogramSpecification subprog = (SubprogramSpecification)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).value;
 84.5184 +		int endleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.5185 +		int endright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.5186 +		Object end = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.5187 +		
 84.5188 +    RESULT = new MethodDeclaration(subprogleft, endright, 0/*modifier*/, subprog);
 84.5189 +
 84.5190 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("subprog_declaration",3, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.5191 +            }
 84.5192 +          return CUP$AdaASTParser$result;
 84.5193 +
 84.5194 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.5195 +          case 315: // subprog_declaration ::= subprogram_specification SEMICOLON 
 84.5196 +            {
 84.5197 +              Statement RESULT =null;
 84.5198 +		int subprogleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).left;
 84.5199 +		int subprogright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).right;
 84.5200 +		SubprogramSpecification subprog = (SubprogramSpecification)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).value;
 84.5201 +		int endleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.5202 +		int endright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.5203 +		Object end = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.5204 +		
 84.5205 +    RESULT = new MethodDeclaration(subprogleft, endright, 0/*modifier*/, subprog);
 84.5206 +
 84.5207 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("subprog_declaration",3, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.5208 +            }
 84.5209 +          return CUP$AdaASTParser$result;
 84.5210 +
 84.5211 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.5212 +          case 314: // goto_statement ::= GOTO name SEMICOLON 
 84.5213 +            {
 84.5214 +              Statement RESULT =null;
 84.5215 +		int tokenleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).left;
 84.5216 +		int tokenright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).right;
 84.5217 +		Object token = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).value;
 84.5218 +		int labelNameleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).left;
 84.5219 +		int labelNameright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).right;
 84.5220 +		Identifier labelName = (Identifier)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).value;
 84.5221 +		int endleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.5222 +		int endright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.5223 +		Object end = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.5224 +		
 84.5225 +    RESULT = new GotoStatement(tokenleft, endright, labelName);
 84.5226 +
 84.5227 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("goto_statement",55, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.5228 +            }
 84.5229 +          return CUP$AdaASTParser$result;
 84.5230 +
 84.5231 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.5232 +          case 313: // return_statement ::= RETURN expression SEMICOLON 
 84.5233 +            {
 84.5234 +              Statement RESULT =null;
 84.5235 +		int tokenleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).left;
 84.5236 +		int tokenright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).right;
 84.5237 +		Object token = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).value;
 84.5238 +		int exprleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).left;
 84.5239 +		int exprright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).right;
 84.5240 +		Expression expr = (Expression)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).value;
 84.5241 +		int endleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.5242 +		int endright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.5243 +		Object end = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.5244 +		
 84.5245 +    RESULT = new ReturnStatement(tokenleft, endright, expr);
 84.5246 +
 84.5247 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("return_statement",66, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.5248 +            }
 84.5249 +          return CUP$AdaASTParser$result;
 84.5250 +
 84.5251 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.5252 +          case 312: // return_statement ::= RETURN SEMICOLON 
 84.5253 +            {
 84.5254 +              Statement RESULT =null;
 84.5255 +		int tokenleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).left;
 84.5256 +		int tokenright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).right;
 84.5257 +		Object token = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).value;
 84.5258 +		int endleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.5259 +		int endright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.5260 +		Object end = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.5261 +		
 84.5262 +    RESULT = new ReturnStatement(tokenleft, endright);
 84.5263 +
 84.5264 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("return_statement",66, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.5265 +            }
 84.5266 +          return CUP$AdaASTParser$result;
 84.5267 +
 84.5268 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.5269 +          case 311: // when_opt ::= WHEN condition 
 84.5270 +            {
 84.5271 +              Expression RESULT =null;
 84.5272 +		int condleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.5273 +		int condright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.5274 +		Expression cond = (Expression)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.5275 +		
 84.5276 +    RESULT = cond;
 84.5277 +
 84.5278 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("when_opt",108, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.5279 +            }
 84.5280 +          return CUP$AdaASTParser$result;
 84.5281 +
 84.5282 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.5283 +          case 310: // when_opt ::= 
 84.5284 +            {
 84.5285 +              Expression RESULT =null;
 84.5286 +		
 84.5287 +    RESULT = null;
 84.5288 +
 84.5289 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("when_opt",108, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.5290 +            }
 84.5291 +          return CUP$AdaASTParser$result;
 84.5292 +
 84.5293 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.5294 +          case 309: // name_opt ::= name 
 84.5295 +            {
 84.5296 +              Expression RESULT =null;
 84.5297 +		int nameleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.5298 +		int nameright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.5299 +		Identifier name = (Identifier)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.5300 +		
 84.5301 +    RESULT = name;
 84.5302 +
 84.5303 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("name_opt",54, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.5304 +            }
 84.5305 +          return CUP$AdaASTParser$result;
 84.5306 +
 84.5307 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.5308 +          case 308: // name_opt ::= 
 84.5309 +            {
 84.5310 +              Expression RESULT =null;
 84.5311 +		
 84.5312 +    RESULT = null;
 84.5313 +
 84.5314 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("name_opt",54, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.5315 +            }
 84.5316 +          return CUP$AdaASTParser$result;
 84.5317 +
 84.5318 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.5319 +          case 307: // exit_statement ::= EXIT name_opt when_opt SEMICOLON 
 84.5320 +            {
 84.5321 +              Statement RESULT =null;
 84.5322 +		int tokenleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)).left;
 84.5323 +		int tokenright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)).right;
 84.5324 +		Object token = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)).value;
 84.5325 +		int loopNameleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).left;
 84.5326 +		int loopNameright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).right;
 84.5327 +		Expression loopName = (Expression)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).value;
 84.5328 +		int whenConditionleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).left;
 84.5329 +		int whenConditionright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).right;
 84.5330 +		Expression whenCondition = (Expression)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).value;
 84.5331 +		int endleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.5332 +		int endright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.5333 +		Object end = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.5334 +		
 84.5335 +    RESULT = new ExitStatement(tokenleft, endright, loopName, whenCondition); 
 84.5336 +
 84.5337 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("exit_statement",53, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.5338 +            }
 84.5339 +          return CUP$AdaASTParser$result;
 84.5340 +
 84.5341 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.5342 +          case 306: // except_handler_part_opt ::= except_handler_part 
 84.5343 +            {
 84.5344 +              Object RESULT =null;
 84.5345 +
 84.5346 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("except_handler_part_opt",182, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.5347 +            }
 84.5348 +          return CUP$AdaASTParser$result;
 84.5349 +
 84.5350 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.5351 +          case 305: // except_handler_part_opt ::= 
 84.5352 +            {
 84.5353 +              Object RESULT =null;
 84.5354 +
 84.5355 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("except_handler_part_opt",182, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.5356 +            }
 84.5357 +          return CUP$AdaASTParser$result;
 84.5358 +
 84.5359 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.5360 +          case 304: // handled_stmt_s ::= sequence_of_statements except_handler_part_opt 
 84.5361 +            {
 84.5362 +              List RESULT =null;
 84.5363 +		int statementsleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).left;
 84.5364 +		int statementsright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).right;
 84.5365 +		List statements = (List)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).value;
 84.5366 +		
 84.5367 +    RESULT = statements;
 84.5368 +
 84.5369 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("handled_stmt_s",101, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.5370 +            }
 84.5371 +          return CUP$AdaASTParser$result;
 84.5372 +
 84.5373 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.5374 +          case 303: // block_body ::= BEGIN handled_stmt_s 
 84.5375 +            {
 84.5376 +              Block RESULT =null;
 84.5377 +		int tokenleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).left;
 84.5378 +		int tokenright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).right;
 84.5379 +		Object token = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).value;
 84.5380 +		int statementsleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.5381 +		int statementsright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.5382 +		List statements = (List)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.5383 +		
 84.5384 +    Block body = new Block(tokenright, statementsright, statements);
 84.5385 +    RESULT = body;
 84.5386 +
 84.5387 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("block_body",52, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.5388 +            }
 84.5389 +          return CUP$AdaASTParser$result;
 84.5390 +
 84.5391 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.5392 +          case 302: // block_declarative ::= DECLARE declarative_part 
 84.5393 +            {
 84.5394 +              Block RESULT =null;
 84.5395 +		int tokenleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).left;
 84.5396 +		int tokenright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).right;
 84.5397 +		Object token = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).value;
 84.5398 +		int declarativePartleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.5399 +		int declarativePartright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.5400 +		List declarativePart = (List)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.5401 +		
 84.5402 +    Block declarations = new Block(tokenright, declarativePartleft, declarativePart);
 84.5403 +    RESULT = declarations;
 84.5404 +
 84.5405 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("block_declarative",51, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.5406 +            }
 84.5407 +          return CUP$AdaASTParser$result;
 84.5408 +
 84.5409 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.5410 +          case 301: // block_declarative ::= 
 84.5411 +            {
 84.5412 +              Block RESULT =null;
 84.5413 +		
 84.5414 +    RESULT = null;
 84.5415 +
 84.5416 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("block_declarative",51, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.5417 +            }
 84.5418 +          return CUP$AdaASTParser$result;
 84.5419 +
 84.5420 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.5421 +          case 300: // block_statement ::= label_opt block_declarative block_body END id_opt SEMICOLON 
 84.5422 +            {
 84.5423 +              BlockStatement RESULT =null;
 84.5424 +		int labelleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-5)).left;
 84.5425 +		int labelright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-5)).right;
 84.5426 +		Identifier label = (Identifier)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-5)).value;
 84.5427 +		int declarationsleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-4)).left;
 84.5428 +		int declarationsright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-4)).right;
 84.5429 +		Block declarations = (Block)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-4)).value;
 84.5430 +		int bodyleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)).left;
 84.5431 +		int bodyright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)).right;
 84.5432 +		Block body = (Block)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)).value;
 84.5433 +		int endleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.5434 +		int endright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.5435 +		Object end = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.5436 +		
 84.5437 +    int start = (label == null) ? declarationsleft : labelleft;
 84.5438 +    BlockStatement blockStatement = new BlockStatement (start, endleft, label, declarations, body);
 84.5439 +    RESULT = blockStatement;
 84.5440 +
 84.5441 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("block_statement",50, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-5)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.5442 +            }
 84.5443 +          return CUP$AdaASTParser$result;
 84.5444 +
 84.5445 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.5446 +          case 299: // id_opt ::= designator 
 84.5447 +            {
 84.5448 +              Identifier RESULT =null;
 84.5449 +		int designatorleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.5450 +		int designatorright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.5451 +		Identifier designator = (Identifier)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.5452 +		
 84.5453 +    RESULT = designator;
 84.5454 +
 84.5455 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("id_opt",104, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.5456 +            }
 84.5457 +          return CUP$AdaASTParser$result;
 84.5458 +
 84.5459 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.5460 +          case 298: // id_opt ::= 
 84.5461 +            {
 84.5462 +              Identifier RESULT =null;
 84.5463 +		
 84.5464 +    RESULT = null;
 84.5465 +
 84.5466 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("id_opt",104, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.5467 +            }
 84.5468 +          return CUP$AdaASTParser$result;
 84.5469 +
 84.5470 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.5471 +          case 297: // basic_loop ::= LOOP sequence_of_statements END LOOP 
 84.5472 +            {
 84.5473 +              Block RESULT =null;
 84.5474 +		int statementsleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).left;
 84.5475 +		int statementsright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).right;
 84.5476 +		List statements = (List)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).value;
 84.5477 +		
 84.5478 +    Block loopBlock = new Block(statementsleft, statementsright, statements);
 84.5479 +    RESULT = loopBlock;
 84.5480 +
 84.5481 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("basic_loop",48, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.5482 +            }
 84.5483 +          return CUP$AdaASTParser$result;
 84.5484 +
 84.5485 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.5486 +          case 296: // reverse_opt ::= REVERSE 
 84.5487 +            {
 84.5488 +              Object RESULT =null;
 84.5489 +
 84.5490 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("reverse_opt",181, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.5491 +            }
 84.5492 +          return CUP$AdaASTParser$result;
 84.5493 +
 84.5494 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.5495 +          case 295: // reverse_opt ::= 
 84.5496 +            {
 84.5497 +              Object RESULT =null;
 84.5498 +
 84.5499 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("reverse_opt",181, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.5500 +            }
 84.5501 +          return CUP$AdaASTParser$result;
 84.5502 +
 84.5503 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.5504 +          case 294: // iter_part ::= FOR IDENTIFIER IN 
 84.5505 +            {
 84.5506 +              Object RESULT =null;
 84.5507 +
 84.5508 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("iter_part",180, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.5509 +            }
 84.5510 +          return CUP$AdaASTParser$result;
 84.5511 +
 84.5512 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.5513 +          case 293: // iteration ::= iter_part reverse_opt discrete_range 
 84.5514 +            {
 84.5515 +              Expression RESULT =null;
 84.5516 +		int conditionleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.5517 +		int conditionright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.5518 +		Expression condition = (Expression)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.5519 +		
 84.5520 +    RESULT = condition;
 84.5521 +
 84.5522 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("iteration",49, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.5523 +            }
 84.5524 +          return CUP$AdaASTParser$result;
 84.5525 +
 84.5526 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.5527 +          case 292: // iteration ::= WHILE condition 
 84.5528 +            {
 84.5529 +              Expression RESULT =null;
 84.5530 +		int conditionleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.5531 +		int conditionright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.5532 +		Expression condition = (Expression)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.5533 +		
 84.5534 +    RESULT = condition;
 84.5535 +
 84.5536 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("iteration",49, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.5537 +            }
 84.5538 +          return CUP$AdaASTParser$result;
 84.5539 +
 84.5540 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.5541 +          case 291: // iteration ::= 
 84.5542 +            {
 84.5543 +              Expression RESULT =null;
 84.5544 +		
 84.5545 +    RESULT = null;
 84.5546 +
 84.5547 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("iteration",49, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.5548 +            }
 84.5549 +          return CUP$AdaASTParser$result;
 84.5550 +
 84.5551 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.5552 +          case 290: // label_opt ::= IDENTIFIER COLON 
 84.5553 +            {
 84.5554 +              Identifier RESULT =null;
 84.5555 +		int idleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).left;
 84.5556 +		int idright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).right;
 84.5557 +		String id = (String)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).value;
 84.5558 +		
 84.5559 +    Identifier identifier = new Identifier (idleft, idright, id);
 84.5560 +    RESULT = identifier;
 84.5561 +
 84.5562 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("label_opt",112, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.5563 +            }
 84.5564 +          return CUP$AdaASTParser$result;
 84.5565 +
 84.5566 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.5567 +          case 289: // label_opt ::= 
 84.5568 +            {
 84.5569 +              Identifier RESULT =null;
 84.5570 +		
 84.5571 +    RESULT = null;
 84.5572 +
 84.5573 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("label_opt",112, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.5574 +            }
 84.5575 +          return CUP$AdaASTParser$result;
 84.5576 +
 84.5577 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.5578 +          case 288: // loop_statement ::= label_opt iteration basic_loop id_opt SEMICOLON 
 84.5579 +            {
 84.5580 +              LoopStatement RESULT =null;
 84.5581 +		int labelleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-4)).left;
 84.5582 +		int labelright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-4)).right;
 84.5583 +		Identifier label = (Identifier)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-4)).value;
 84.5584 +		int iterationleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)).left;
 84.5585 +		int iterationright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)).right;
 84.5586 +		Expression iteration = (Expression)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)).value;
 84.5587 +		int statementleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).left;
 84.5588 +		int statementright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).right;
 84.5589 +		Block statement = (Block)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).value;
 84.5590 +		int endleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.5591 +		int endright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.5592 +		Object end = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.5593 +		
 84.5594 +    int start = (label == null) ? iterationleft : labelleft;
 84.5595 +    LoopStatement loopStatement = new LoopStatement(start, endright, label, iteration, statement);
 84.5596 +    RESULT = loopStatement;
 84.5597 +
 84.5598 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("loop_statement",47, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-4)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.5599 +            }
 84.5600 +          return CUP$AdaASTParser$result;
 84.5601 +
 84.5602 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.5603 +          case 287: // alternative ::= WHEN choice_s ARROW sequence_of_statements 
 84.5604 +            {
 84.5605 +              CaseWhen RESULT =null;
 84.5606 +		int tokenleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)).left;
 84.5607 +		int tokenright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)).right;
 84.5608 +		Object token = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)).value;
 84.5609 +		int exprleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).left;
 84.5610 +		int exprright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).right;
 84.5611 +		Expression expr = (Expression)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).value;
 84.5612 +		int statementsleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.5613 +		int statementsright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.5614 +		List statements = (List)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.5615 +		
 84.5616 +    CaseWhen caseWhen = new CaseWhen(tokenleft, statementsright, expr, statements);
 84.5617 +    RESULT = caseWhen;
 84.5618 +
 84.5619 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("alternative",46, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.5620 +            }
 84.5621 +          return CUP$AdaASTParser$result;
 84.5622 +
 84.5623 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.5624 +          case 286: // alternative_s ::= alternative_s alternative 
 84.5625 +            {
 84.5626 +              List RESULT =null;
 84.5627 +		int whenListleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).left;
 84.5628 +		int whenListright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).right;
 84.5629 +		List whenList = (List)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).value;
 84.5630 +		int whenleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.5631 +		int whenright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.5632 +		CaseWhen when = (CaseWhen)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.5633 +		
 84.5634 +    whenList.add (when);
 84.5635 +    RESULT = whenList;
 84.5636 +
 84.5637 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("alternative_s",45, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.5638 +            }
 84.5639 +          return CUP$AdaASTParser$result;
 84.5640 +
 84.5641 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.5642 +          case 285: // alternative_s ::= 
 84.5643 +            {
 84.5644 +              List RESULT =null;
 84.5645 +		
 84.5646 +    RESULT = new LinkedList();
 84.5647 +
 84.5648 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("alternative_s",45, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.5649 +            }
 84.5650 +          return CUP$AdaASTParser$result;
 84.5651 +
 84.5652 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.5653 +          case 284: // case_statement ::= CASE expression IS pragma_s alternative_s END CASE SEMICOLON 
 84.5654 +            {
 84.5655 +              CaseStatement RESULT =null;
 84.5656 +		int tokenleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-7)).left;
 84.5657 +		int tokenright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-7)).right;
 84.5658 +		Object token = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-7)).value;
 84.5659 +		int exprleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-6)).left;
 84.5660 +		int exprright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-6)).right;
 84.5661 +		Expression expr = (Expression)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-6)).value;
 84.5662 +		int whenListleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)).left;
 84.5663 +		int whenListright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)).right;
 84.5664 +		List whenList = (List)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)).value;
 84.5665 +		int endleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.5666 +		int endright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.5667 +		Object end = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.5668 +		
 84.5669 +    Block whenBlock = new Block(whenListleft, whenListright, whenList);
 84.5670 +    CaseStatement caseStatement = new CaseStatement(tokenleft, endright, expr, whenBlock);
 84.5671 +    RESULT = caseStatement;
 84.5672 +
 84.5673 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("case_statement",44, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-7)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.5674 +            }
 84.5675 +          return CUP$AdaASTParser$result;
 84.5676 +
 84.5677 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.5678 +          case 283: // else_opt ::= ELSE sequence_of_statements 
 84.5679 +            {
 84.5680 +              Block RESULT =null;
 84.5681 +		int statementsleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.5682 +		int statementsright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.5683 +		List statements = (List)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.5684 +		
 84.5685 +    Block block = new Block(statementsleft, statementsright, statements);
 84.5686 +    RESULT = block;
 84.5687 +
 84.5688 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("else_opt",43, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.5689 +            }
 84.5690 +          return CUP$AdaASTParser$result;
 84.5691 +
 84.5692 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.5693 +          case 282: // else_opt ::= 
 84.5694 +            {
 84.5695 +              Block RESULT =null;
 84.5696 +		
 84.5697 +    RESULT = null;
 84.5698 +
 84.5699 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("else_opt",43, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.5700 +            }
 84.5701 +          return CUP$AdaASTParser$result;
 84.5702 +
 84.5703 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.5704 +          case 281: // condition ::= expression 
 84.5705 +            {
 84.5706 +              Expression RESULT =null;
 84.5707 +		int expressionleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.5708 +		int expressionright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.5709 +		Expression expression = (Expression)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.5710 +		
 84.5711 +    RESULT = expression;
 84.5712 +
 84.5713 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("condition",42, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.5714 +            }
 84.5715 +          return CUP$AdaASTParser$result;
 84.5716 +
 84.5717 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.5718 +          case 280: // cond_clause_s ::= cond_clause_s ELSIF condition THEN sequence_of_statements 
 84.5719 +            {
 84.5720 +              List[] RESULT =null;
 84.5721 +		int condListleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-4)).left;
 84.5722 +		int condListright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-4)).right;
 84.5723 +		List[] condList = (List[])((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-4)).value;
 84.5724 +		int tokenleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)).left;
 84.5725 +		int tokenright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)).right;
 84.5726 +		Object token = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)).value;
 84.5727 +		int conditionleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).left;
 84.5728 +		int conditionright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).right;
 84.5729 +		Expression condition = (Expression)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).value;
 84.5730 +		int iftrueleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.5731 +		int iftrueright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.5732 +		List iftrue = (List)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.5733 +		
 84.5734 +    Block block = new Block(iftrueleft, iftrueright, iftrue);
 84.5735 +    ((LinkedList)condList[0]).addFirst(condition);
 84.5736 +    ((LinkedList)condList[1]).addFirst(block);
 84.5737 +    ((LinkedList)condList[2]).addFirst(new Integer(tokenleft));
 84.5738 +
 84.5739 +    RESULT = condList;
 84.5740 +
 84.5741 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("cond_clause_s",41, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-4)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.5742 +            }
 84.5743 +          return CUP$AdaASTParser$result;
 84.5744 +
 84.5745 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.5746 +          case 279: // cond_clause_s ::= condition THEN sequence_of_statements 
 84.5747 +            {
 84.5748 +              List[] RESULT =null;
 84.5749 +		int conditionleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).left;
 84.5750 +		int conditionright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).right;
 84.5751 +		Expression condition = (Expression)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).value;
 84.5752 +		int tokenleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).left;
 84.5753 +		int tokenright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).right;
 84.5754 +		Object token = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).value;
 84.5755 +		int iftrueleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.5756 +		int iftrueright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.5757 +		List iftrue = (List)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.5758 +		
 84.5759 +    List listConditions = new LinkedList();
 84.5760 +    List listStatements = new LinkedList();
 84.5761 +    List listTokens = new LinkedList();
 84.5762 +
 84.5763 +    Block block = new Block(iftrueleft, iftrueright, iftrue);
 84.5764 +    listConditions.add(condition);
 84.5765 +    listStatements.add(block);
 84.5766 +    listTokens.add(new Integer(tokenleft));
 84.5767 +
 84.5768 +    List[] returnList = new List[] { listConditions, listStatements, listTokens };
 84.5769 +	
 84.5770 +    RESULT = returnList;
 84.5771 +
 84.5772 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("cond_clause_s",41, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.5773 +            }
 84.5774 +          return CUP$AdaASTParser$result;
 84.5775 +
 84.5776 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.5777 +          case 278: // if_statement ::= IF cond_clause_s else_opt END IF SEMICOLON 
 84.5778 +            {
 84.5779 +              IfStatement RESULT =null;
 84.5780 +		int tokenleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-5)).left;
 84.5781 +		int tokenright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-5)).right;
 84.5782 +		Object token = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-5)).value;
 84.5783 +		int condListleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-4)).left;
 84.5784 +		int condListright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-4)).right;
 84.5785 +		List[] condList = (List[])((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-4)).value;
 84.5786 +		int iffalseleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)).left;
 84.5787 +		int iffalseright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)).right;
 84.5788 +		Block iffalse = (Block)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)).value;
 84.5789 +		int endleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.5790 +		int endright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.5791 +		Object end = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.5792 +		
 84.5793 +    Expression innerCondition = null;
 84.5794 +    Expression firstCondition = null;
 84.5795 +    Statement trueStatement = null;
 84.5796 +    Statement falseStatement = iffalse;
 84.5797 +
 84.5798 +    for (int i=1 ; i < condList[0].size() ; i++) {
 84.5799 +        innerCondition = (Expression)condList[0].get(i);
 84.5800 +        trueStatement = (Statement)condList[1].get(i);
 84.5801 +        int start = ((Integer)condList[2].get(i)).intValue();
 84.5802 +        falseStatement = new IfStatement(start, endright, innerCondition, trueStatement, falseStatement);
 84.5803 +    }
 84.5804 +
 84.5805 +    firstCondition = (Expression)condList[0].get(0);
 84.5806 +    trueStatement = (Statement)condList[1].get(0);
 84.5807 +    int start = ((Integer)condList[2].get(0)).intValue();
 84.5808 +    IfStatement ifStatement = new IfStatement(tokenleft, endright, firstCondition, trueStatement, falseStatement);		
 84.5809 +
 84.5810 +    RESULT = ifStatement;
 84.5811 +
 84.5812 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("if_statement",40, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-5)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.5813 +            }
 84.5814 +          return CUP$AdaASTParser$result;
 84.5815 +
 84.5816 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.5817 +          case 277: // assignment_statement ::= name ASSIGNMENT expression SEMICOLON 
 84.5818 +            {
 84.5819 +              Statement RESULT =null;
 84.5820 +		int nameleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)).left;
 84.5821 +		int nameright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)).right;
 84.5822 +		Identifier name = (Identifier)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)).value;
 84.5823 +		int expressionleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).left;
 84.5824 +		int expressionright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).right;
 84.5825 +		Expression expression = (Expression)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).value;
 84.5826 +		
 84.5827 +    Variable variable = new Variable (nameleft, nameright, name);
 84.5828 +    Assignment assignment = new Assignment(nameleft, expressionright, variable, expression);
 84.5829 +    RESULT = assignment;
 84.5830 +
 84.5831 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("assignment_statement",39, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.5832 +            }
 84.5833 +          return CUP$AdaASTParser$result;
 84.5834 +
 84.5835 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.5836 +          case 276: // null_statement ::= NULL SEMICOLON 
 84.5837 +            {
 84.5838 +              Statement RESULT =null;
 84.5839 +		int tokenleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).left;
 84.5840 +		int tokenright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).right;
 84.5841 +		Object token = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).value;
 84.5842 +		int endleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.5843 +		int endright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.5844 +		Object end = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.5845 +		
 84.5846 +    RESULT = new NullStatement(tokenleft, endright);
 84.5847 +
 84.5848 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("null_statement",38, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.5849 +            }
 84.5850 +          return CUP$AdaASTParser$result;
 84.5851 +
 84.5852 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.5853 +          case 275: // label ::= LTLT IDENTIFIER GTGT 
 84.5854 +            {
 84.5855 +              Object RESULT =null;
 84.5856 +
 84.5857 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("label",176, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.5858 +            }
 84.5859 +          return CUP$AdaASTParser$result;
 84.5860 +
 84.5861 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.5862 +          case 274: // compound_statement ::= select_stmt 
 84.5863 +            {
 84.5864 +              Statement RESULT =null;
 84.5865 +
 84.5866 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("compound_statement",37, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.5867 +            }
 84.5868 +          return CUP$AdaASTParser$result;
 84.5869 +
 84.5870 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.5871 +          case 273: // compound_statement ::= accept_stmt 
 84.5872 +            {
 84.5873 +              Statement RESULT =null;
 84.5874 +
 84.5875 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("compound_statement",37, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.5876 +            }
 84.5877 +          return CUP$AdaASTParser$result;
 84.5878 +
 84.5879 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.5880 +          case 272: // compound_statement ::= block_statement 
 84.5881 +            {
 84.5882 +              Statement RESULT =null;
 84.5883 +		int statementleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.5884 +		int statementright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.5885 +		BlockStatement statement = (BlockStatement)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.5886 +		
 84.5887 +    RESULT = statement;
 84.5888 +
 84.5889 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("compound_statement",37, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.5890 +            }
 84.5891 +          return CUP$AdaASTParser$result;
 84.5892 +
 84.5893 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.5894 +          case 271: // compound_statement ::= loop_statement 
 84.5895 +            {
 84.5896 +              Statement RESULT =null;
 84.5897 +		int statementleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.5898 +		int statementright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.5899 +		LoopStatement statement = (LoopStatement)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.5900 +		
 84.5901 +    RESULT = statement;
 84.5902 +
 84.5903 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("compound_statement",37, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.5904 +            }
 84.5905 +          return CUP$AdaASTParser$result;
 84.5906 +
 84.5907 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.5908 +          case 270: // compound_statement ::= case_statement 
 84.5909 +            {
 84.5910 +              Statement RESULT =null;
 84.5911 +		int statementleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.5912 +		int statementright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.5913 +		CaseStatement statement = (CaseStatement)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.5914 +		
 84.5915 +    RESULT = statement;
 84.5916 +
 84.5917 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("compound_statement",37, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.5918 +            }
 84.5919 +          return CUP$AdaASTParser$result;
 84.5920 +
 84.5921 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.5922 +          case 269: // compound_statement ::= if_statement 
 84.5923 +            {
 84.5924 +              Statement RESULT =null;
 84.5925 +		int statementleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.5926 +		int statementright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.5927 +		IfStatement statement = (IfStatement)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.5928 +		
 84.5929 +    RESULT = statement;
 84.5930 +
 84.5931 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("compound_statement",37, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.5932 +            }
 84.5933 +          return CUP$AdaASTParser$result;
 84.5934 +
 84.5935 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.5936 +          case 268: // simple_statement ::= error SEMICOLON 
 84.5937 +            {
 84.5938 +              Statement RESULT =null;
 84.5939 +		int theErrorleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).left;
 84.5940 +		int theErrorright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).right;
 84.5941 +		Object theError = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).value;
 84.5942 +		
 84.5943 +    ASTError error = new ASTError(theErrorleft, theErrorright);
 84.5944 +    RESULT = error;
 84.5945 +
 84.5946 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("simple_statement",36, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.5947 +            }
 84.5948 +          return CUP$AdaASTParser$result;
 84.5949 +
 84.5950 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.5951 +          case 267: // simple_statement ::= requeue_stmt 
 84.5952 +            {
 84.5953 +              Statement RESULT =null;
 84.5954 +
 84.5955 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("simple_statement",36, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.5956 +            }
 84.5957 +          return CUP$AdaASTParser$result;
 84.5958 +
 84.5959 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.5960 +          case 266: // simple_statement ::= code_statement 
 84.5961 +            {
 84.5962 +              Statement RESULT =null;
 84.5963 +		int statementleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.5964 +		int statementright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.5965 +		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.5966 +		
 84.5967 +    RESULT = statement;
 84.5968 +
 84.5969 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("simple_statement",36, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.5970 +            }
 84.5971 +          return CUP$AdaASTParser$result;
 84.5972 +
 84.5973 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.5974 +          case 265: // simple_statement ::= raise_statement 
 84.5975 +            {
 84.5976 +              Statement RESULT =null;
 84.5977 +		int statementleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.5978 +		int statementright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.5979 +		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.5980 +		
 84.5981 +    RESULT = statement;
 84.5982 +
 84.5983 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("simple_statement",36, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.5984 +            }
 84.5985 +          return CUP$AdaASTParser$result;
 84.5986 +
 84.5987 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.5988 +          case 264: // simple_statement ::= abort_statement 
 84.5989 +            {
 84.5990 +              Statement RESULT =null;
 84.5991 +		int statementleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.5992 +		int statementright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.5993 +		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.5994 +		
 84.5995 +    RESULT = statement;
 84.5996 +
 84.5997 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("simple_statement",36, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.5998 +            }
 84.5999 +          return CUP$AdaASTParser$result;
 84.6000 +
 84.6001 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6002 +          case 263: // simple_statement ::= delay_statement 
 84.6003 +            {
 84.6004 +              Statement RESULT =null;
 84.6005 +		int statementleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.6006 +		int statementright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.6007 +		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.6008 +		
 84.6009 +    RESULT = statement;
 84.6010 +
 84.6011 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("simple_statement",36, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6012 +            }
 84.6013 +          return CUP$AdaASTParser$result;
 84.6014 +
 84.6015 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6016 +          case 262: // simple_statement ::= procedure_call_statement 
 84.6017 +            {
 84.6018 +              Statement RESULT =null;
 84.6019 +		int statementleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.6020 +		int statementright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.6021 +		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.6022 +		
 84.6023 +    RESULT = statement;
 84.6024 +
 84.6025 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("simple_statement",36, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6026 +            }
 84.6027 +          return CUP$AdaASTParser$result;
 84.6028 +
 84.6029 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6030 +          case 261: // simple_statement ::= goto_statement 
 84.6031 +            {
 84.6032 +              Statement RESULT =null;
 84.6033 +		int statementleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.6034 +		int statementright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.6035 +		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.6036 +		
 84.6037 +    RESULT = statement;
 84.6038 +
 84.6039 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("simple_statement",36, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6040 +            }
 84.6041 +          return CUP$AdaASTParser$result;
 84.6042 +
 84.6043 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6044 +          case 260: // simple_statement ::= return_statement 
 84.6045 +            {
 84.6046 +              Statement RESULT =null;
 84.6047 +		int statementleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.6048 +		int statementright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.6049 +		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.6050 +		
 84.6051 +    RESULT = statement;
 84.6052 +
 84.6053 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("simple_statement",36, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6054 +            }
 84.6055 +          return CUP$AdaASTParser$result;
 84.6056 +
 84.6057 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6058 +          case 259: // simple_statement ::= exit_statement 
 84.6059 +            {
 84.6060 +              Statement RESULT =null;
 84.6061 +		int statementleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.6062 +		int statementright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.6063 +		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.6064 +		
 84.6065 +    RESULT = statement;
 84.6066 +
 84.6067 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("simple_statement",36, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6068 +            }
 84.6069 +          return CUP$AdaASTParser$result;
 84.6070 +
 84.6071 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6072 +          case 258: // simple_statement ::= assignment_statement 
 84.6073 +            {
 84.6074 +              Statement RESULT =null;
 84.6075 +		int statementleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.6076 +		int statementright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.6077 +		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.6078 +		
 84.6079 +    RESULT = statement;
 84.6080 +
 84.6081 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("simple_statement",36, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6082 +            }
 84.6083 +          return CUP$AdaASTParser$result;
 84.6084 +
 84.6085 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6086 +          case 257: // simple_statement ::= null_statement 
 84.6087 +            {
 84.6088 +              Statement RESULT =null;
 84.6089 +		int statementleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.6090 +		int statementright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.6091 +		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.6092 +		
 84.6093 +    RESULT = statement;
 84.6094 +
 84.6095 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("simple_statement",36, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6096 +            }
 84.6097 +          return CUP$AdaASTParser$result;
 84.6098 +
 84.6099 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6100 +          case 256: // unlabeled ::= pragma 
 84.6101 +            {
 84.6102 +              Statement RESULT =null;
 84.6103 +
 84.6104 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("unlabeled",105, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6105 +            }
 84.6106 +          return CUP$AdaASTParser$result;
 84.6107 +
 84.6108 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6109 +          case 255: // unlabeled ::= compound_statement 
 84.6110 +            {
 84.6111 +              Statement RESULT =null;
 84.6112 +		int statementleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.6113 +		int statementright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.6114 +		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.6115 +		
 84.6116 +    RESULT = statement;
 84.6117 +
 84.6118 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("unlabeled",105, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6119 +            }
 84.6120 +          return CUP$AdaASTParser$result;
 84.6121 +
 84.6122 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6123 +          case 254: // unlabeled ::= simple_statement 
 84.6124 +            {
 84.6125 +              Statement RESULT =null;
 84.6126 +		int statementleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.6127 +		int statementright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.6128 +		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.6129 +		
 84.6130 +    RESULT = statement;
 84.6131 +
 84.6132 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("unlabeled",105, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6133 +            }
 84.6134 +          return CUP$AdaASTParser$result;
 84.6135 +
 84.6136 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6137 +          case 253: // statement ::= label statement 
 84.6138 +            {
 84.6139 +              Statement RESULT =null;
 84.6140 +		int statementleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.6141 +		int statementright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.6142 +		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.6143 +		
 84.6144 +    RESULT = statement;
 84.6145 +
 84.6146 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("statement",102, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6147 +            }
 84.6148 +          return CUP$AdaASTParser$result;
 84.6149 +
 84.6150 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6151 +          case 252: // statement ::= unlabeled 
 84.6152 +            {
 84.6153 +              Statement RESULT =null;
 84.6154 +		int statementleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.6155 +		int statementright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.6156 +		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.6157 +		
 84.6158 +    RESULT = statement;
 84.6159 +
 84.6160 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("statement",102, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6161 +            }
 84.6162 +          return CUP$AdaASTParser$result;
 84.6163 +
 84.6164 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6165 +          case 251: // sequence_of_statements ::= sequence_of_statements statement 
 84.6166 +            {
 84.6167 +              List RESULT =null;
 84.6168 +		int listleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).left;
 84.6169 +		int listright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).right;
 84.6170 +		List list = (List)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).value;
 84.6171 +		int statementleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.6172 +		int statementright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.6173 +		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.6174 +		
 84.6175 +    list.add(statement);
 84.6176 +    RESULT = list;
 84.6177 +
 84.6178 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("sequence_of_statements",35, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6179 +            }
 84.6180 +          return CUP$AdaASTParser$result;
 84.6181 +
 84.6182 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6183 +          case 250: // sequence_of_statements ::= statement 
 84.6184 +            {
 84.6185 +              List RESULT =null;
 84.6186 +		int statementleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.6187 +		int statementright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.6188 +		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.6189 +		
 84.6190 +    List list = new LinkedList();
 84.6191 +    list.add(statement);
 84.6192 +    RESULT = list;
 84.6193 +
 84.6194 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("sequence_of_statements",35, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6195 +            }
 84.6196 +          return CUP$AdaASTParser$result;
 84.6197 +
 84.6198 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6199 +          case 249: // allocator ::= NEW qualified_expression 
 84.6200 +            {
 84.6201 +              Object RESULT =null;
 84.6202 +
 84.6203 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("allocator",175, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6204 +            }
 84.6205 +          return CUP$AdaASTParser$result;
 84.6206 +
 84.6207 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6208 +          case 248: // allocator ::= NEW name 
 84.6209 +            {
 84.6210 +              Object RESULT =null;
 84.6211 +
 84.6212 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("allocator",175, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6213 +            }
 84.6214 +          return CUP$AdaASTParser$result;
 84.6215 +
 84.6216 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6217 +          case 247: // qualified_expression ::= name TICK parenthesized_primary 
 84.6218 +            {
 84.6219 +              Expression RESULT =null;
 84.6220 +		int nameleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).left;
 84.6221 +		int nameright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).right;
 84.6222 +		Identifier name = (Identifier)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).value;
 84.6223 +		int exprleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.6224 +		int exprright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.6225 +		Expression expr = (Expression)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.6226 +		
 84.6227 +    RESULT = new QualifiedExpression (nameleft, exprright, name, expr);
 84.6228 +
 84.6229 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("qualified_expression",34, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6230 +            }
 84.6231 +          return CUP$AdaASTParser$result;
 84.6232 +
 84.6233 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6234 +          case 246: // parenthesized_primary ::= LPAREN expression RPAREN 
 84.6235 +            {
 84.6236 +              Expression RESULT =null;
 84.6237 +		int expressionleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).left;
 84.6238 +		int expressionright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).right;
 84.6239 +		Expression expression = (Expression)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).value;
 84.6240 +		
 84.6241 +    RESULT = expression;
 84.6242 +
 84.6243 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("parenthesized_primary",107, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6244 +            }
 84.6245 +          return CUP$AdaASTParser$result;
 84.6246 +
 84.6247 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6248 +          case 245: // parenthesized_primary ::= aggregate 
 84.6249 +            {
 84.6250 +              Expression RESULT =null;
 84.6251 +
 84.6252 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("parenthesized_primary",107, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6253 +            }
 84.6254 +          return CUP$AdaASTParser$result;
 84.6255 +
 84.6256 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6257 +          case 244: // primary ::= parenthesized_primary 
 84.6258 +            {
 84.6259 +              Expression RESULT =null;
 84.6260 +		int parenthesized_primaryleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.6261 +		int parenthesized_primaryright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.6262 +		Expression parenthesized_primary = (Expression)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.6263 +		
 84.6264 +    RESULT = parenthesized_primary;
 84.6265 +
 84.6266 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("primary",28, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6267 +            }
 84.6268 +          return CUP$AdaASTParser$result;
 84.6269 +
 84.6270 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6271 +          case 243: // primary ::= qualified_expression 
 84.6272 +            {
 84.6273 +              Expression RESULT =null;
 84.6274 +		int qualified_expressionleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.6275 +		int qualified_expressionright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.6276 +		Expression qualified_expression = (Expression)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.6277 +		
 84.6278 +    RESULT = qualified_expression;
 84.6279 +
 84.6280 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("primary",28, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6281 +            }
 84.6282 +          return CUP$AdaASTParser$result;
 84.6283 +
 84.6284 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6285 +          case 242: // primary ::= allocator 
 84.6286 +            {
 84.6287 +              Expression RESULT =null;
 84.6288 +
 84.6289 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("primary",28, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6290 +            }
 84.6291 +          return CUP$AdaASTParser$result;
 84.6292 +
 84.6293 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6294 +          case 241: // primary ::= name 
 84.6295 +            {
 84.6296 +              Expression RESULT =null;
 84.6297 +		int nameleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.6298 +		int nameright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.6299 +		Identifier name = (Identifier)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.6300 +		
 84.6301 +// TODO: must be modified for manage all primery types
 84.6302 +    Variable variable = new Variable (nameleft, nameright, name);
 84.6303 +    RESULT = variable;
 84.6304 +
 84.6305 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("primary",28, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6306 +            }
 84.6307 +          return CUP$AdaASTParser$result;
 84.6308 +
 84.6309 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6310 +          case 240: // primary ::= literal 
 84.6311 +            {
 84.6312 +              Expression RESULT =null;
 84.6313 +		int literalleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.6314 +		int literalright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.6315 +		Expression literal = (Expression)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.6316 +		
 84.6317 +    RESULT = literal;
 84.6318 +
 84.6319 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("primary",28, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6320 +            }
 84.6321 +          return CUP$AdaASTParser$result;
 84.6322 +
 84.6323 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6324 +          case 239: // factor ::= primary EXPON primary 
 84.6325 +            {
 84.6326 +              Expression RESULT =null;
 84.6327 +		int primary1left = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).left;
 84.6328 +		int primary1right = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).right;
 84.6329 +		Expression primary1 = (Expression)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).value;
 84.6330 +		int primary2left = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.6331 +		int primary2right = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.6332 +		Expression primary2 = (Expression)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.6333 +		
 84.6334 +    InfixExpression infixExpression = new InfixExpression(primary1left, primary2right, primary1, InfixExpression.OperatorType.EXPON, primary2);
 84.6335 +    RESULT = infixExpression;
 84.6336 +
 84.6337 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("factor",27, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6338 +            }
 84.6339 +          return CUP$AdaASTParser$result;
 84.6340 +
 84.6341 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6342 +          case 238: // factor ::= ABS primary 
 84.6343 +            {
 84.6344 +              Expression RESULT =null;
 84.6345 +		int tokenleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).left;
 84.6346 +		int tokenright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).right;
 84.6347 +		Object token = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).value;
 84.6348 +		int primaryleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.6349 +		int primaryright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.6350 +		Expression primary = (Expression)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.6351 +		
 84.6352 +    UnaryOperation unaryOperation = new UnaryOperation(tokenleft, primaryright, primary, UnaryOperation.Operator.ABS);
 84.6353 +    RESULT = unaryOperation;
 84.6354 +
 84.6355 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("factor",27, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6356 +            }
 84.6357 +          return CUP$AdaASTParser$result;
 84.6358 +
 84.6359 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6360 +          case 237: // factor ::= NOT primary 
 84.6361 +            {
 84.6362 +              Expression RESULT =null;
 84.6363 +		int tokenleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).left;
 84.6364 +		int tokenright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).right;
 84.6365 +		Object token = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).value;
 84.6366 +		int primaryleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.6367 +		int primaryright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.6368 +		Expression primary = (Expression)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.6369 +		
 84.6370 +    UnaryOperation unaryOperation = new UnaryOperation(tokenleft, primaryright, primary, UnaryOperation.Operator.NOT);
 84.6371 +    RESULT = unaryOperation;
 84.6372 +
 84.6373 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("factor",27, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6374 +            }
 84.6375 +          return CUP$AdaASTParser$result;
 84.6376 +
 84.6377 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6378 +          case 236: // factor ::= primary 
 84.6379 +            {
 84.6380 +              Expression RESULT =null;
 84.6381 +		int primaryleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.6382 +		int primaryright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.6383 +		Expression primary = (Expression)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.6384 +		
 84.6385 +    RESULT = primary;
 84.6386 +
 84.6387 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("factor",27, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6388 +            }
 84.6389 +          return CUP$AdaASTParser$result;
 84.6390 +
 84.6391 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6392 +          case 235: // term ::= term multiplying_operator factor 
 84.6393 +            {
 84.6394 +              Expression RESULT =null;
 84.6395 +		int termleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).left;
 84.6396 +		int termright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).right;
 84.6397 +		Expression term = (Expression)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).value;
 84.6398 +		int multiplying_operatorleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).left;
 84.6399 +		int multiplying_operatorright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).right;
 84.6400 +		InfixExpression.OperatorType multiplying_operator = (InfixExpression.OperatorType)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).value;
 84.6401 +		int factorleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.6402 +		int factorright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.6403 +		Expression factor = (Expression)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.6404 +		
 84.6405 +    InfixExpression infixExpression = new InfixExpression(termleft, factorright, term, multiplying_operator, factor);
 84.6406 +    RESULT = infixExpression;
 84.6407 +
 84.6408 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("term",26, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6409 +            }
 84.6410 +          return CUP$AdaASTParser$result;
 84.6411 +
 84.6412 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6413 +          case 234: // term ::= factor 
 84.6414 +            {
 84.6415 +              Expression RESULT =null;
 84.6416 +		int factorleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.6417 +		int factorright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.6418 +		Expression factor = (Expression)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.6419 +		
 84.6420 +    RESULT = factor;
 84.6421 +
 84.6422 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("term",26, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6423 +            }
 84.6424 +          return CUP$AdaASTParser$result;
 84.6425 +
 84.6426 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6427 +          case 233: // simple_expression ::= simple_expression binary_adding_operator term 
 84.6428 +            {
 84.6429 +              Expression RESULT =null;
 84.6430 +		int simple_expressionleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).left;
 84.6431 +		int simple_expressionright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).right;
 84.6432 +		Expression simple_expression = (Expression)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).value;
 84.6433 +		int binary_adding_operatorleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).left;
 84.6434 +		int binary_adding_operatorright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).right;
 84.6435 +		InfixExpression.OperatorType binary_adding_operator = (InfixExpression.OperatorType)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).value;
 84.6436 +		int termleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.6437 +		int termright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.6438 +		Expression term = (Expression)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.6439 +		
 84.6440 +    InfixExpression infixExpression = new InfixExpression(simple_expressionleft, termright, simple_expression, binary_adding_operator, term);
 84.6441 +    RESULT = infixExpression;
 84.6442 +
 84.6443 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("simple_expression",25, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6444 +            }
 84.6445 +          return CUP$AdaASTParser$result;
 84.6446 +
 84.6447 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6448 +          case 232: // simple_expression ::= term 
 84.6449 +            {
 84.6450 +              Expression RESULT =null;
 84.6451 +		int termleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.6452 +		int termright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.6453 +		Expression term = (Expression)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.6454 +		
 84.6455 +    RESULT = term;
 84.6456 +
 84.6457 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("simple_expression",25, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6458 +            }
 84.6459 +          return CUP$AdaASTParser$result;
 84.6460 +
 84.6461 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6462 +          case 231: // simple_expression ::= unary_adding_operator term 
 84.6463 +            {
 84.6464 +              Expression RESULT =null;
 84.6465 +		int unary_adding_operatorleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).left;
 84.6466 +		int unary_adding_operatorright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).right;
 84.6467 +		UnaryOperation.Operator unary_adding_operator = (UnaryOperation.Operator)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).value;
 84.6468 +		int termleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.6469 +		int termright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.6470 +		Expression term = (Expression)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.6471 +		
 84.6472 +    UnaryOperation unaryOperation = new UnaryOperation(unary_adding_operatorleft, termright, term, unary_adding_operator);
 84.6473 +    RESULT = unaryOperation;
 84.6474 +
 84.6475 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("simple_expression",25, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6476 +            }
 84.6477 +          return CUP$AdaASTParser$result;
 84.6478 +
 84.6479 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6480 +          case 230: // relation ::= simple_expression membership name 
 84.6481 +            {
 84.6482 +              Expression RESULT =null;
 84.6483 +		int simple_expressionleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).left;
 84.6484 +		int simple_expressionright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).right;
 84.6485 +		Expression simple_expression = (Expression)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).value;
 84.6486 +		int membershipleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).left;
 84.6487 +		int membershipright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).right;
 84.6488 +		InfixExpression.OperatorType membership = (InfixExpression.OperatorType)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).value;
 84.6489 +		int nameleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.6490 +		int nameright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.6491 +		Identifier name = (Identifier)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.6492 +		
 84.6493 +    InfixExpression infixExpression = new InfixExpression(simple_expressionleft, nameright, simple_expression, membership, name);
 84.6494 +    RESULT = infixExpression;
 84.6495 +
 84.6496 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("relation",24, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6497 +            }
 84.6498 +          return CUP$AdaASTParser$result;
 84.6499 +
 84.6500 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6501 +          case 229: // relation ::= simple_expression membership range 
 84.6502 +            {
 84.6503 +              Expression RESULT =null;
 84.6504 +		int simple_expressionleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).left;
 84.6505 +		int simple_expressionright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).right;
 84.6506 +		Expression simple_expression = (Expression)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).value;
 84.6507 +		int membershipleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).left;
 84.6508 +		int membershipright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).right;
 84.6509 +		InfixExpression.OperatorType membership = (InfixExpression.OperatorType)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).value;
 84.6510 +		int rangeleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.6511 +		int rangeright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.6512 +		Expression range = (Expression)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.6513 +		
 84.6514 +    InfixExpression infixExpression = new InfixExpression(simple_expressionleft, rangeright, simple_expression, membership, range);
 84.6515 +    RESULT = infixExpression;
 84.6516 +
 84.6517 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("relation",24, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6518 +            }
 84.6519 +          return CUP$AdaASTParser$result;
 84.6520 +
 84.6521 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6522 +          case 228: // relation ::= simple_expression relational_operator simple_expression 
 84.6523 +            {
 84.6524 +              Expression RESULT =null;
 84.6525 +		int simple_expression1left = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).left;
 84.6526 +		int simple_expression1right = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).right;
 84.6527 +		Expression simple_expression1 = (Expression)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).value;
 84.6528 +		int relational_operatorleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).left;
 84.6529 +		int relational_operatorright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).right;
 84.6530 +		InfixExpression.OperatorType relational_operator = (InfixExpression.OperatorType)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).value;
 84.6531 +		int simple_expression2left = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.6532 +		int simple_expression2right = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.6533 +		Expression simple_expression2 = (Expression)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.6534 +		
 84.6535 +    InfixExpression infixExpression = new InfixExpression(simple_expression1left, simple_expression2right, simple_expression1, relational_operator, simple_expression2);
 84.6536 +    RESULT = infixExpression;
 84.6537 +
 84.6538 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("relation",24, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6539 +            }
 84.6540 +          return CUP$AdaASTParser$result;
 84.6541 +
 84.6542 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6543 +          case 227: // relation ::= simple_expression 
 84.6544 +            {
 84.6545 +              Expression RESULT =null;
 84.6546 +		int simple_expressionleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.6547 +		int simple_expressionright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.6548 +		Expression simple_expression = (Expression)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.6549 +		
 84.6550 +    RESULT = simple_expression;
 84.6551 +
 84.6552 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("relation",24, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6553 +            }
 84.6554 +          return CUP$AdaASTParser$result;
 84.6555 +
 84.6556 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6557 +          case 226: // expression ::= expression short_circuit relation 
 84.6558 +            {
 84.6559 +              Expression RESULT =null;
 84.6560 +		int expressionleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).left;
 84.6561 +		int expressionright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).right;
 84.6562 +		Expression expression = (Expression)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).value;
 84.6563 +		int short_circuitleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).left;
 84.6564 +		int short_circuitright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).right;
 84.6565 +		InfixExpression.OperatorType short_circuit = (InfixExpression.OperatorType)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).value;
 84.6566 +		int relationleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.6567 +		int relationright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.6568 +		Expression relation = (Expression)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.6569 +		
 84.6570 +    InfixExpression infixExpression = new InfixExpression(expressionleft, relationright, expression, short_circuit, relation);
 84.6571 +    RESULT = infixExpression;
 84.6572 +
 84.6573 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("expression",23, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6574 +            }
 84.6575 +          return CUP$AdaASTParser$result;
 84.6576 +
 84.6577 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6578 +          case 225: // expression ::= expression logical_operator relation 
 84.6579 +            {
 84.6580 +              Expression RESULT =null;
 84.6581 +		int expressionleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).left;
 84.6582 +		int expressionright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).right;
 84.6583 +		Expression expression = (Expression)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).value;
 84.6584 +		int logical_operatorleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).left;
 84.6585 +		int logical_operatorright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).right;
 84.6586 +		InfixExpression.OperatorType logical_operator = (InfixExpression.OperatorType)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).value;
 84.6587 +		int relationleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.6588 +		int relationright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.6589 +		Expression relation = (Expression)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.6590 +		
 84.6591 +    InfixExpression infixExpression = new InfixExpression(expressionleft, relationright, expression, logical_operator, relation);
 84.6592 +    RESULT = infixExpression;
 84.6593 +
 84.6594 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("expression",23, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6595 +            }
 84.6596 +          return CUP$AdaASTParser$result;
 84.6597 +
 84.6598 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6599 +          case 224: // expression ::= relation 
 84.6600 +            {
 84.6601 +              Expression RESULT =null;
 84.6602 +		int relationleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.6603 +		int relationright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.6604 +		Expression relation = (Expression)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.6605 +		
 84.6606 +    RESULT = relation;
 84.6607 +
 84.6608 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("expression",23, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6609 +            }
 84.6610 +          return CUP$AdaASTParser$result;
 84.6611 +
 84.6612 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6613 +          case 223: // multiplying_operator ::= REM 
 84.6614 +            {
 84.6615 +              InfixExpression.OperatorType RESULT =null;
 84.6616 +		
 84.6617 +    RESULT = InfixExpression.OperatorType.REM;
 84.6618 +
 84.6619 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("multiplying_operator",33, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6620 +            }
 84.6621 +          return CUP$AdaASTParser$result;
 84.6622 +
 84.6623 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6624 +          case 222: // multiplying_operator ::= MOD 
 84.6625 +            {
 84.6626 +              InfixExpression.OperatorType RESULT =null;
 84.6627 +		
 84.6628 +    RESULT = InfixExpression.OperatorType.MOD;
 84.6629 +
 84.6630 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("multiplying_operator",33, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6631 +            }
 84.6632 +          return CUP$AdaASTParser$result;
 84.6633 +
 84.6634 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6635 +          case 221: // multiplying_operator ::= SLASH 
 84.6636 +            {
 84.6637 +              InfixExpression.OperatorType RESULT =null;
 84.6638 +		
 84.6639 +    RESULT = InfixExpression.OperatorType.DIV;
 84.6640 +
 84.6641 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("multiplying_operator",33, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6642 +            }
 84.6643 +          return CUP$AdaASTParser$result;
 84.6644 +
 84.6645 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6646 +          case 220: // multiplying_operator ::= STAR 
 84.6647 +            {
 84.6648 +              InfixExpression.OperatorType RESULT =null;
 84.6649 +		
 84.6650 +    RESULT = InfixExpression.OperatorType.MUL;
 84.6651 +
 84.6652 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("multiplying_operator",33, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6653 +            }
 84.6654 +          return CUP$AdaASTParser$result;
 84.6655 +
 84.6656 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6657 +          case 219: // binary_adding_operator ::= AMP 
 84.6658 +            {
 84.6659 +              InfixExpression.OperatorType RESULT =null;
 84.6660 +		
 84.6661 +    RESULT = InfixExpression.OperatorType.STRING_AND;
 84.6662 +
 84.6663 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("binary_adding_operator",31, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6664 +            }
 84.6665 +          return CUP$AdaASTParser$result;
 84.6666 +
 84.6667 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6668 +          case 218: // binary_adding_operator ::= MINUS 
 84.6669 +            {
 84.6670 +              InfixExpression.OperatorType RESULT =null;
 84.6671 +		
 84.6672 +    RESULT = InfixExpression.OperatorType.MINUS;
 84.6673 +
 84.6674 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("binary_adding_operator",31, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6675 +            }
 84.6676 +          return CUP$AdaASTParser$result;
 84.6677 +
 84.6678 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6679 +          case 217: // binary_adding_operator ::= PLUS 
 84.6680 +            {
 84.6681 +              InfixExpression.OperatorType RESULT =null;
 84.6682 +		
 84.6683 +    RESULT = InfixExpression.OperatorType.PLUS;
 84.6684 +
 84.6685 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("binary_adding_operator",31, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6686 +            }
 84.6687 +          return CUP$AdaASTParser$result;
 84.6688 +
 84.6689 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6690 +          case 216: // unary_adding_operator ::= MINUS 
 84.6691 +            {
 84.6692 +              UnaryOperation.Operator RESULT =null;
 84.6693 +		
 84.6694 +    RESULT = UnaryOperation.Operator.MINUS;
 84.6695 +
 84.6696 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("unary_adding_operator",32, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6697 +            }
 84.6698 +          return CUP$AdaASTParser$result;
 84.6699 +
 84.6700 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6701 +          case 215: // unary_adding_operator ::= PLUS 
 84.6702 +            {
 84.6703 +              UnaryOperation.Operator RESULT =null;
 84.6704 +		
 84.6705 +    RESULT = UnaryOperation.Operator.PLUS;
 84.6706 +
 84.6707 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("unary_adding_operator",32, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6708 +            }
 84.6709 +          return CUP$AdaASTParser$result;
 84.6710 +
 84.6711 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6712 +          case 214: // membership ::= NOT IN 
 84.6713 +            {
 84.6714 +              InfixExpression.OperatorType RESULT =null;
 84.6715 +		
 84.6716 +    RESULT = InfixExpression.OperatorType.NOT_IN;
 84.6717 +
 84.6718 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("membership",119, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6719 +            }
 84.6720 +          return CUP$AdaASTParser$result;
 84.6721 +
 84.6722 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6723 +          case 213: // membership ::= IN 
 84.6724 +            {
 84.6725 +              InfixExpression.OperatorType RESULT =null;
 84.6726 +		
 84.6727 +    RESULT = InfixExpression.OperatorType.IN;
 84.6728 +
 84.6729 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("membership",119, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6730 +            }
 84.6731 +          return CUP$AdaASTParser$result;
 84.6732 +
 84.6733 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6734 +          case 212: // relational_operator ::= GTEQ 
 84.6735 +            {
 84.6736 +              InfixExpression.OperatorType RESULT =null;
 84.6737 +		
 84.6738 +    RESULT = InfixExpression.OperatorType.IS_GREATER_OR_EQUAL;
 84.6739 +
 84.6740 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("relational_operator",30, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6741 +            }
 84.6742 +          return CUP$AdaASTParser$result;
 84.6743 +
 84.6744 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6745 +          case 211: // relational_operator ::= LT 
 84.6746 +            {
 84.6747 +              InfixExpression.OperatorType RESULT =null;
 84.6748 +		
 84.6749 +    RESULT = InfixExpression.OperatorType.LGREATER;
 84.6750 +
 84.6751 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("relational_operator",30, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6752 +            }
 84.6753 +          return CUP$AdaASTParser$result;
 84.6754 +
 84.6755 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6756 +          case 210: // relational_operator ::= LTEQ 
 84.6757 +            {
 84.6758 +              InfixExpression.OperatorType RESULT =null;
 84.6759 +		
 84.6760 +    RESULT = InfixExpression.OperatorType.IS_SMALLER_OR_EQUAL;
 84.6761 +
 84.6762 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("relational_operator",30, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6763 +            }
 84.6764 +          return CUP$AdaASTParser$result;
 84.6765 +
 84.6766 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6767 +          case 209: // relational_operator ::= GT 
 84.6768 +            {
 84.6769 +              InfixExpression.OperatorType RESULT =null;
 84.6770 +		
 84.6771 +    RESULT = InfixExpression.OperatorType.RGREATER;
 84.6772 +
 84.6773 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("relational_operator",30, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6774 +            }
 84.6775 +          return CUP$AdaASTParser$result;
 84.6776 +
 84.6777 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6778 +          case 208: // relational_operator ::= INEQ 
 84.6779 +            {
 84.6780 +              InfixExpression.OperatorType RESULT =null;
 84.6781 +		
 84.6782 +    RESULT = InfixExpression.OperatorType.IS_NOT_EQUAL;
 84.6783 +
 84.6784 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("relational_operator",30, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6785 +            }
 84.6786 +          return CUP$AdaASTParser$result;
 84.6787 +
 84.6788 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6789 +          case 207: // relational_operator ::= EQ 
 84.6790 +            {
 84.6791 +              InfixExpression.OperatorType RESULT =null;
 84.6792 +		
 84.6793 +    RESULT = InfixExpression.OperatorType.IS_EQUAL;
 84.6794 +
 84.6795 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("relational_operator",30, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6796 +            }
 84.6797 +          return CUP$AdaASTParser$result;
 84.6798 +
 84.6799 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6800 +          case 206: // short_circuit ::= OR ELSE 
 84.6801 +            {
 84.6802 +              InfixExpression.OperatorType RESULT =null;
 84.6803 +		
 84.6804 +    RESULT = InfixExpression.OperatorType.BOOL_AND;
 84.6805 +
 84.6806 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("short_circuit",118, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6807 +            }
 84.6808 +          return CUP$AdaASTParser$result;
 84.6809 +
 84.6810 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6811 +          case 205: // short_circuit ::= AND THEN 
 84.6812 +            {
 84.6813 +              InfixExpression.OperatorType RESULT =null;
 84.6814 +		
 84.6815 +    RESULT = InfixExpression.OperatorType.BOOL_OR;
 84.6816 +
 84.6817 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("short_circuit",118, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6818 +            }
 84.6819 +          return CUP$AdaASTParser$result;
 84.6820 +
 84.6821 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6822 +          case 204: // logical_operator ::= XOR 
 84.6823 +            {
 84.6824 +              InfixExpression.OperatorType RESULT =null;
 84.6825 +		
 84.6826 +    RESULT = InfixExpression.OperatorType.BOOL_XOR;
 84.6827 +
 84.6828 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("logical_operator",29, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6829 +            }
 84.6830 +          return CUP$AdaASTParser$result;
 84.6831 +
 84.6832 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6833 +          case 203: // logical_operator ::= OR 
 84.6834 +            {
 84.6835 +              InfixExpression.OperatorType RESULT =null;
 84.6836 +		
 84.6837 +    RESULT = InfixExpression.OperatorType.BOOL_OR;
 84.6838 +
 84.6839 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("logical_operator",29, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6840 +            }
 84.6841 +          return CUP$AdaASTParser$result;
 84.6842 +
 84.6843 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6844 +          case 202: // logical_operator ::= AND 
 84.6845 +            {
 84.6846 +              InfixExpression.OperatorType RESULT =null;
 84.6847 +		
 84.6848 +    RESULT = InfixExpression.OperatorType.BOOL_AND;
 84.6849 +
 84.6850 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("logical_operator",29, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6851 +            }
 84.6852 +          return CUP$AdaASTParser$result;
 84.6853 +
 84.6854 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6855 +          case 201: // comp_assoc ::= choice_s ARROW expression 
 84.6856 +            {
 84.6857 +              Object RESULT =null;
 84.6858 +
 84.6859 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("comp_assoc",172, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6860 +            }
 84.6861 +          return CUP$AdaASTParser$result;
 84.6862 +
 84.6863 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6864 +          case 200: // value_s_2 ::= value_s_2 COMMA value 
 84.6865 +            {
 84.6866 +              Object RESULT =null;
 84.6867 +
 84.6868 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("value_s_2",174, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6869 +            }
 84.6870 +          return CUP$AdaASTParser$result;
 84.6871 +
 84.6872 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6873 +          case 199: // value_s_2 ::= value COMMA value 
 84.6874 +            {
 84.6875 +              Object RESULT =null;
 84.6876 +
 84.6877 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("value_s_2",174, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6878 +            }
 84.6879 +          return CUP$AdaASTParser$result;
 84.6880 +
 84.6881 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6882 +          case 198: // aggregate ::= LPAREN NULL RECORD RPAREN 
 84.6883 +            {
 84.6884 +              Object RESULT =null;
 84.6885 +
 84.6886 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("aggregate",173, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6887 +            }
 84.6888 +          return CUP$AdaASTParser$result;
 84.6889 +
 84.6890 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6891 +          case 197: // aggregate ::= LPAREN expression WITH NULL RECORD RPAREN 
 84.6892 +            {
 84.6893 +              Object RESULT =null;
 84.6894 +
 84.6895 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("aggregate",173, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-5)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6896 +            }
 84.6897 +          return CUP$AdaASTParser$result;
 84.6898 +
 84.6899 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6900 +          case 196: // aggregate ::= LPAREN expression WITH value_s RPAREN 
 84.6901 +            {
 84.6902 +              Object RESULT =null;
 84.6903 +
 84.6904 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("aggregate",173, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-4)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6905 +            }
 84.6906 +          return CUP$AdaASTParser$result;
 84.6907 +
 84.6908 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6909 +          case 195: // aggregate ::= LPAREN value_s_2 RPAREN 
 84.6910 +            {
 84.6911 +              Object RESULT =null;
 84.6912 +
 84.6913 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("aggregate",173, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6914 +            }
 84.6915 +          return CUP$AdaASTParser$result;
 84.6916 +
 84.6917 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6918 +          case 194: // aggregate ::= LPAREN comp_assoc RPAREN 
 84.6919 +            {
 84.6920 +              Object RESULT =null;
 84.6921 +
 84.6922 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("aggregate",173, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6923 +            }
 84.6924 +          return CUP$AdaASTParser$result;
 84.6925 +
 84.6926 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6927 +          case 193: // literal ::= NULL 
 84.6928 +            {
 84.6929 +              Expression RESULT =null;
 84.6930 +		int tokenleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.6931 +		int tokenright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.6932 +		Object token = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.6933 +		
 84.6934 +    Scalar scalar = new Scalar(tokenleft, tokenright, "null", Scalar.Type.SYSTEM);
 84.6935 +    RESULT = scalar;
 84.6936 +
 84.6937 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("literal",106, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6938 +            }
 84.6939 +          return CUP$AdaASTParser$result;
 84.6940 +
 84.6941 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6942 +          case 192: // literal ::= used_char 
 84.6943 +            {
 84.6944 +              Expression RESULT =null;
 84.6945 +		int usedCharleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.6946 +		int usedCharright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.6947 +		String usedChar = (String)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.6948 +		
 84.6949 +    Scalar scalar = new Scalar(usedCharleft, usedCharright, usedChar, Scalar.Type.STRING);
 84.6950 +    RESULT = scalar;
 84.6951 +
 84.6952 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("literal",106, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6953 +            }
 84.6954 +          return CUP$AdaASTParser$result;
 84.6955 +
 84.6956 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6957 +          case 191: // literal ::= BASED_LITERAL 
 84.6958 +            {
 84.6959 +              Expression RESULT =null;
 84.6960 +		int decleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.6961 +		int decright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.6962 +		String dec = (String)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.6963 +		
 84.6964 +    Scalar scalar = new Scalar(decleft, decright, dec, Scalar.Type.INT);
 84.6965 +    RESULT = scalar;
 84.6966 +
 84.6967 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("literal",106, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6968 +            }
 84.6969 +          return CUP$AdaASTParser$result;
 84.6970 +
 84.6971 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6972 +          case 190: // literal ::= DECIMAL_LITERAL 
 84.6973 +            {
 84.6974 +              Expression RESULT =null;
 84.6975 +		int decleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.6976 +		int decright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.6977 +		String dec = (String)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.6978 +		
 84.6979 +    Scalar scalar = new Scalar(decleft, decright, dec, Scalar.Type.INT);
 84.6980 +    RESULT = scalar;
 84.6981 +
 84.6982 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("literal",106, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6983 +            }
 84.6984 +          return CUP$AdaASTParser$result;
 84.6985 +
 84.6986 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6987 +          case 189: // attribute_id ::= ACCESS 
 84.6988 +            {
 84.6989 +              String RESULT =null;
 84.6990 +
 84.6991 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("attribute_id",120, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.6992 +            }
 84.6993 +          return CUP$AdaASTParser$result;
 84.6994 +
 84.6995 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.6996 +          case 188: // attribute_id ::= DELTA 
 84.6997 +            {
 84.6998 +              String RESULT =null;
 84.6999 +
 84.7000 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("attribute_id",120, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7001 +            }
 84.7002 +          return CUP$AdaASTParser$result;
 84.7003 +
 84.7004 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7005 +          case 187: // attribute_id ::= DIGITS 
 84.7006 +            {
 84.7007 +              String RESULT =null;
 84.7008 +
 84.7009 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("attribute_id",120, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7010 +            }
 84.7011 +          return CUP$AdaASTParser$result;
 84.7012 +
 84.7013 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7014 +          case 186: // attribute_id ::= IDENTIFIER 
 84.7015 +            {
 84.7016 +              String RESULT =null;
 84.7017 +
 84.7018 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("attribute_id",120, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7019 +            }
 84.7020 +          return CUP$AdaASTParser$result;
 84.7021 +
 84.7022 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7023 +          case 185: // attribute ::= name TICK attribute_id 
 84.7024 +            {
 84.7025 +              Identifier RESULT =null;
 84.7026 +		int nameleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).left;
 84.7027 +		int nameright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).right;
 84.7028 +		Identifier name = (Identifier)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).value;
 84.7029 +		
 84.7030 +    RESULT = name;
 84.7031 +
 84.7032 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("attribute",113, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7033 +            }
 84.7034 +          return CUP$AdaASTParser$result;
 84.7035 +
 84.7036 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7037 +          case 184: // selected_component ::= name DOT ALL 
 84.7038 +            {
 84.7039 +              Identifier RESULT =null;
 84.7040 +		int nameleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).left;
 84.7041 +		int nameright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).right;
 84.7042 +		Identifier name = (Identifier)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).value;
 84.7043 +		int allleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.7044 +		int allright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.7045 +		Object all = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.7046 +		
 84.7047 +    Identifier identifier = new Identifier (nameleft, allright, name.getName() + "." + "all");
 84.7048 +    RESULT = identifier;
 84.7049 +
 84.7050 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("selected_component",22, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7051 +            }
 84.7052 +          return CUP$AdaASTParser$result;
 84.7053 +
 84.7054 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7055 +          case 183: // selected_component ::= name DOT operator_symbol 
 84.7056 +            {
 84.7057 +              Identifier RESULT =null;
 84.7058 +		int nameleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).left;
 84.7059 +		int nameright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).right;
 84.7060 +		Identifier name = (Identifier)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).value;
 84.7061 +		int operatorleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.7062 +		int operatorright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.7063 +		Identifier operator = (Identifier)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.7064 +		
 84.7065 +    Identifier identifier = new Identifier (nameleft, operatorright, name.getName() + "." + operator.getName());
 84.7066 +    RESULT = identifier;
 84.7067 +
 84.7068 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("selected_component",22, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7069 +            }
 84.7070 +          return CUP$AdaASTParser$result;
 84.7071 +
 84.7072 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7073 +          case 182: // selected_component ::= name DOT used_char 
 84.7074 +            {
 84.7075 +              Identifier RESULT =null;
 84.7076 +		int nameleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).left;
 84.7077 +		int nameright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).right;
 84.7078 +		Identifier name = (Identifier)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).value;
 84.7079 +		int used_charleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.7080 +		int used_charright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.7081 +		String used_char = (String)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.7082 +		
 84.7083 +    Identifier identifier = new Identifier (nameleft, used_charright, name.getName() + "." + used_char);
 84.7084 +    RESULT = identifier;
 84.7085 +
 84.7086 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("selected_component",22, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7087 +            }
 84.7088 +          return CUP$AdaASTParser$result;
 84.7089 +
 84.7090 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7091 +          case 181: // selected_component ::= name DOT simple_name 
 84.7092 +            {
 84.7093 +              Identifier RESULT =null;
 84.7094 +		int nameleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).left;
 84.7095 +		int nameright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).right;
 84.7096 +		Identifier name = (Identifier)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).value;
 84.7097 +		int simple_nameleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.7098 +		int simple_nameright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.7099 +		Identifier simple_name = (Identifier)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.7100 +		
 84.7101 +    Identifier identifier = new Identifier (nameleft, simple_nameright, name.getName() + "." + simple_name.getName());
 84.7102 +    RESULT = identifier;
 84.7103 +
 84.7104 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("selected_component",22, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7105 +            }
 84.7106 +          return CUP$AdaASTParser$result;
 84.7107 +
 84.7108 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7109 +          case 180: // value ::= error 
 84.7110 +            {
 84.7111 +              Object RESULT =null;
 84.7112 +		int theErrorleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.7113 +		int theErrorright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.7114 +		Object theError = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.7115 +		
 84.7116 +    ASTError error = new ASTError(theErrorleft, theErrorright);
 84.7117 +    RESULT = error;
 84.7118 +
 84.7119 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("value",171, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7120 +            }
 84.7121 +          return CUP$AdaASTParser$result;
 84.7122 +
 84.7123 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7124 +          case 179: // value ::= discrete_with_range 
 84.7125 +            {
 84.7126 +              Object RESULT =null;
 84.7127 +
 84.7128 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("value",171, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7129 +            }
 84.7130 +          return CUP$AdaASTParser$result;
 84.7131 +
 84.7132 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7133 +          case 178: // value ::= comp_assoc 
 84.7134 +            {
 84.7135 +              Object RESULT =null;
 84.7136 +
 84.7137 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("value",171, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7138 +            }
 84.7139 +          return CUP$AdaASTParser$result;
 84.7140 +
 84.7141 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7142 +          case 177: // value ::= expression 
 84.7143 +            {
 84.7144 +              Object RESULT =null;
 84.7145 +
 84.7146 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("value",171, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7147 +            }
 84.7148 +          return CUP$AdaASTParser$result;
 84.7149 +
 84.7150 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7151 +          case 176: // value_s ::= value_s COMMA value 
 84.7152 +            {
 84.7153 +              Expression RESULT =null;
 84.7154 +
 84.7155 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("value_s",115, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7156 +            }
 84.7157 +          return CUP$AdaASTParser$result;
 84.7158 +
 84.7159 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7160 +          case 175: // value_s ::= value 
 84.7161 +            {
 84.7162 +              Expression RESULT =null;
 84.7163 +
 84.7164 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("value_s",115, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7165 +            }
 84.7166 +          return CUP$AdaASTParser$result;
 84.7167 +
 84.7168 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7169 +          case 174: // indexed_component ::= name LPAREN value_s RPAREN 
 84.7170 +            {
 84.7171 +              Identifier RESULT =null;
 84.7172 +		int nameleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)).left;
 84.7173 +		int nameright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)).right;
 84.7174 +		Identifier name = (Identifier)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)).value;
 84.7175 +		int indexleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).left;
 84.7176 +		int indexright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).right;
 84.7177 +		Expression index = (Expression)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).value;
 84.7178 +		int endleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.7179 +		int endright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.7180 +		Object end = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.7181 +		
 84.7182 +    RESULT = name;
 84.7183 +
 84.7184 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("indexed_component",114, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7185 +            }
 84.7186 +          return CUP$AdaASTParser$result;
 84.7187 +
 84.7188 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7189 +          case 173: // used_char ::= CHAR_LITERAL 
 84.7190 +            {
 84.7191 +              String RESULT =null;
 84.7192 +		int charLiteralleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.7193 +		int charLiteralright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.7194 +		String charLiteral = (String)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.7195 +		
 84.7196 +    RESULT = charLiteral;
 84.7197 +
 84.7198 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("used_char",110, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7199 +            }
 84.7200 +          return CUP$AdaASTParser$result;
 84.7201 +
 84.7202 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7203 +          case 172: // library_unit_name_list ::= library_unit_name_list COMMA compound_name 
 84.7204 +            {
 84.7205 +              List RESULT =null;
 84.7206 +		int nameListleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).left;
 84.7207 +		int nameListright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).right;
 84.7208 +		List nameList = (List)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).value;
 84.7209 +		int compound_nameleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.7210 +		int compound_nameright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.7211 +		Identifier compound_name = (Identifier)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.7212 +		
 84.7213 +    PackageName packageName = new PackageName(compound_nameleft, compound_nameright, compound_name);
 84.7214 +    nameList.add(packageName);
 84.7215 +    RESULT = nameList;
 84.7216 +
 84.7217 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("library_unit_name_list",89, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7218 +            }
 84.7219 +          return CUP$AdaASTParser$result;
 84.7220 +
 84.7221 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7222 +          case 171: // library_unit_name_list ::= compound_name 
 84.7223 +            {
 84.7224 +              List RESULT =null;
 84.7225 +		int compound_nameleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.7226 +		int compound_nameright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.7227 +		Identifier compound_name = (Identifier)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.7228 +		
 84.7229 +    List nameList = new LinkedList();
 84.7230 +    PackageName packageName = new PackageName(compound_nameleft, compound_nameright, compound_name);
 84.7231 +    nameList.add(packageName);
 84.7232 +    RESULT = nameList;
 84.7233 +
 84.7234 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("library_unit_name_list",89, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7235 +            }
 84.7236 +          return CUP$AdaASTParser$result;
 84.7237 +
 84.7238 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7239 +          case 170: // compound_name ::= compound_name DOT simple_name 
 84.7240 +            {
 84.7241 +              Identifier RESULT =null;
 84.7242 +		int compound_nameleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).left;
 84.7243 +		int compound_nameright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).right;
 84.7244 +		Identifier compound_name = (Identifier)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).value;
 84.7245 +		int simple_nameleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.7246 +		int simple_nameright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.7247 +		Identifier simple_name = (Identifier)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.7248 +		
 84.7249 +    RESULT = simple_name;
 84.7250 +
 84.7251 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("compound_name",94, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7252 +            }
 84.7253 +          return CUP$AdaASTParser$result;
 84.7254 +
 84.7255 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7256 +          case 169: // compound_name ::= simple_name 
 84.7257 +            {
 84.7258 +              Identifier RESULT =null;
 84.7259 +		int simple_nameleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.7260 +		int simple_nameright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.7261 +		Identifier simple_name = (Identifier)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.7262 +		
 84.7263 +    RESULT = simple_name;
 84.7264 +
 84.7265 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("compound_name",94, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7266 +            }
 84.7267 +          return CUP$AdaASTParser$result;
 84.7268 +
 84.7269 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7270 +          case 168: // simple_name ::= IDENTIFIER 
 84.7271 +            {
 84.7272 +              Identifier RESULT =null;
 84.7273 +		int idleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.7274 +		int idright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.7275 +		String id = (String)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.7276 +		
 84.7277 +    Identifier identifier = new Identifier (idleft, idright, id);
 84.7278 +    RESULT = identifier;
 84.7279 +
 84.7280 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("simple_name",21, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7281 +            }
 84.7282 +          return CUP$AdaASTParser$result;
 84.7283 +
 84.7284 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7285 +          case 167: // subtype_mark ::= subtype_mark DOT simple_name 
 84.7286 +            {
 84.7287 +              NameBase RESULT =null;
 84.7288 +		int subtype_markleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).left;
 84.7289 +		int subtype_markright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).right;
 84.7290 +		NameBase subtype_mark = (NameBase)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).value;
 84.7291 +		int simple_nameleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.7292 +		int simple_nameright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.7293 +		Identifier simple_name = (Identifier)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.7294 +		
 84.7295 +    Dispatch dispatch;
 84.7296 +    TypeName typeName = new TypeName (simple_nameleft, simple_nameright, simple_name);
 84.7297 +    if (subtype_mark instanceof TypeName) {
 84.7298 +        PackageName packageName = new PackageName (subtype_markleft, subtype_markright, ((TypeName)subtype_mark).getTypeName());
 84.7299 +        dispatch = parser.createDispatch(packageName, typeName);
 84.7300 +    } else {
 84.7301 +        dispatch = parser.createDispatch(subtype_mark, typeName);
 84.7302 +    }
 84.7303 +
 84.7304 +    RESULT = dispatch;
 84.7305 +
 84.7306 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("subtype_mark",100, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7307 +            }
 84.7308 +          return CUP$AdaASTParser$result;
 84.7309 +
 84.7310 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7311 +          case 166: // subtype_mark ::= subtype_mark TICK attribute_id 
 84.7312 +            {
 84.7313 +              NameBase RESULT =null;
 84.7314 +		int nameleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).left;
 84.7315 +		int nameright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).right;
 84.7316 +		NameBase name = (NameBase)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).value;
 84.7317 +		int idleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.7318 +		int idright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.7319 +		String id = (String)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.7320 +		
 84.7321 +    ((TypeName)name).setAttributeId(id);
 84.7322 +    RESULT = name;
 84.7323 +
 84.7324 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("subtype_mark",100, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7325 +            }
 84.7326 +          return CUP$AdaASTParser$result;
 84.7327 +
 84.7328 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7329 +          case 165: // subtype_mark ::= simple_name 
 84.7330 +            {
 84.7331 +              NameBase RESULT =null;
 84.7332 +		int nameleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.7333 +		int nameright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.7334 +		Identifier name = (Identifier)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.7335 +		
 84.7336 +    TypeName typeName = new TypeName (nameleft, nameright, name);
 84.7337 +    RESULT = typeName;
 84.7338 +
 84.7339 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("subtype_mark",100, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7340 +            }
 84.7341 +          return CUP$AdaASTParser$result;
 84.7342 +
 84.7343 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7344 +          case 164: // name ::= attribute 
 84.7345 +            {
 84.7346 +              Identifier RESULT =null;
 84.7347 +		int attributeleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.7348 +		int attributeright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.7349 +		Identifier attribute = (Identifier)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.7350 +		
 84.7351 +    RESULT = attribute;
 84.7352 +
 84.7353 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("name",20, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7354 +            }
 84.7355 +          return CUP$AdaASTParser$result;
 84.7356 +
 84.7357 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7358 +          case 163: // name ::= selected_component 
 84.7359 +            {
 84.7360 +              Identifier RESULT =null;
 84.7361 +		int selected_componentleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.7362 +		int selected_componentright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.7363 +		Identifier selected_component = (Identifier)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.7364 +		
 84.7365 +    RESULT = selected_component;
 84.7366 +
 84.7367 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("name",20, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7368 +            }
 84.7369 +          return CUP$AdaASTParser$result;
 84.7370 +
 84.7371 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7372 +          case 162: // name ::= indexed_component 
 84.7373 +            {
 84.7374 +              Identifier RESULT =null;
 84.7375 +		int indexed_componentleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.7376 +		int indexed_componentright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.7377 +		Identifier indexed_component = (Identifier)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.7378 +		
 84.7379 +    RESULT = indexed_component;
 84.7380 +
 84.7381 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("name",20, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7382 +            }
 84.7383 +          return CUP$AdaASTParser$result;
 84.7384 +
 84.7385 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7386 +          case 161: // name ::= operator_symbol 
 84.7387 +            {
 84.7388 +              Identifier RESULT =null;
 84.7389 +		int operator_symbolleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.7390 +		int operator_symbolright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.7391 +		Identifier operator_symbol = (Identifier)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.7392 +		
 84.7393 +    RESULT = operator_symbol;
 84.7394 +
 84.7395 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("name",20, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7396 +            }
 84.7397 +          return CUP$AdaASTParser$result;
 84.7398 +
 84.7399 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7400 +          case 160: // name ::= simple_name 
 84.7401 +            {
 84.7402 +              Identifier RESULT =null;
 84.7403 +		int simple_nameleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.7404 +		int simple_nameright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.7405 +		Identifier simple_name = (Identifier)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.7406 +		
 84.7407 +    RESULT = simple_name;
 84.7408 +
 84.7409 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("name",20, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7410 +            }
 84.7411 +          return CUP$AdaASTParser$result;
 84.7412 +
 84.7413 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7414 +          case 159: // proper_body ::= protected_body 
 84.7415 +            {
 84.7416 +              Statement RESULT =null;
 84.7417 +		int statementleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.7418 +		int statementright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.7419 +		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.7420 +		
 84.7421 +    RESULT = statement;
 84.7422 +
 84.7423 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("proper_body",11, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7424 +            }
 84.7425 +          return CUP$AdaASTParser$result;
 84.7426 +
 84.7427 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7428 +          case 158: // proper_body ::= task_body 
 84.7429 +            {
 84.7430 +              Statement RESULT =null;
 84.7431 +		int statementleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.7432 +		int statementright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.7433 +		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.7434 +		
 84.7435 +    RESULT = statement;
 84.7436 +
 84.7437 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("proper_body",11, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7438 +            }
 84.7439 +          return CUP$AdaASTParser$result;
 84.7440 +
 84.7441 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7442 +          case 157: // proper_body ::= package_body 
 84.7443 +            {
 84.7444 +              Statement RESULT =null;
 84.7445 +		int statementleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.7446 +		int statementright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.7447 +		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.7448 +		
 84.7449 +    RESULT = statement;
 84.7450 +
 84.7451 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("proper_body",11, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7452 +            }
 84.7453 +          return CUP$AdaASTParser$result;
 84.7454 +
 84.7455 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7456 +          case 156: // proper_body ::= subprogram_body 
 84.7457 +            {
 84.7458 +              Statement RESULT =null;
 84.7459 +		int statementleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.7460 +		int statementright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.7461 +		MethodDeclaration statement = (MethodDeclaration)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.7462 +		
 84.7463 +    RESULT = statement;
 84.7464 +
 84.7465 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("proper_body",11, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7466 +            }
 84.7467 +          return CUP$AdaASTParser$result;
 84.7468 +
 84.7469 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7470 +          case 155: // body ::= protected_body 
 84.7471 +            {
 84.7472 +              Statement RESULT =null;
 84.7473 +		int statementleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.7474 +		int statementright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.7475 +		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.7476 +		
 84.7477 +    RESULT = statement;
 84.7478 +
 84.7479 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("body",70, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7480 +            }
 84.7481 +          return CUP$AdaASTParser$result;
 84.7482 +
 84.7483 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7484 +          case 154: // body ::= task_body 
 84.7485 +            {
 84.7486 +              Statement RESULT =null;
 84.7487 +		int statementleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.7488 +		int statementright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.7489 +		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.7490 +		
 84.7491 +    RESULT = statement;
 84.7492 +
 84.7493 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("body",70, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7494 +            }
 84.7495 +          return CUP$AdaASTParser$result;
 84.7496 +
 84.7497 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7498 +          case 153: // body ::= package_body 
 84.7499 +            {
 84.7500 +              Statement RESULT =null;
 84.7501 +		int statementleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.7502 +		int statementright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.7503 +		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.7504 +		
 84.7505 +    RESULT = statement;
 84.7506 +
 84.7507 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("body",70, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7508 +            }
 84.7509 +          return CUP$AdaASTParser$result;
 84.7510 +
 84.7511 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7512 +          case 152: // body ::= subprogram_body 
 84.7513 +            {
 84.7514 +              Statement RESULT =null;
 84.7515 +		int statementleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.7516 +		int statementright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.7517 +		MethodDeclaration statement = (MethodDeclaration)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.7518 +		
 84.7519 +    RESULT = statement;
 84.7520 +
 84.7521 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("body",70, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7522 +            }
 84.7523 +          return CUP$AdaASTParser$result;
 84.7524 +
 84.7525 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7526 +          case 151: // declarative_item_or_body ::= declarative_item 
 84.7527 +            {
 84.7528 +              Object RESULT =null;
 84.7529 +		int statementleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.7530 +		int statementright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.7531 +		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.7532 +		
 84.7533 +    RESULT = statement;
 84.7534 +
 84.7535 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("declarative_item_or_body",170, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7536 +            }
 84.7537 +          return CUP$AdaASTParser$result;
 84.7538 +
 84.7539 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7540 +          case 150: // declarative_item_or_body ::= body 
 84.7541 +            {
 84.7542 +              Object RESULT =null;
 84.7543 +		int statementleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.7544 +		int statementright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.7545 +		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.7546 +		
 84.7547 +    RESULT = statement;
 84.7548 +
 84.7549 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("declarative_item_or_body",170, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7550 +            }
 84.7551 +          return CUP$AdaASTParser$result;
 84.7552 +
 84.7553 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7554 +          case 149: // declarative_item_or_body_s1 ::= declarative_item_or_body_s1 declarative_item_or_body 
 84.7555 +            {
 84.7556 +              List RESULT =null;
 84.7557 +		int declaritiveItemListleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).left;
 84.7558 +		int declaritiveItemListright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).right;
 84.7559 +		List declaritiveItemList = (List)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).value;
 84.7560 +		int declaritiveItemleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.7561 +		int declaritiveItemright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.7562 +		Object declaritiveItem = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.7563 +		
 84.7564 +    declaritiveItemList.add(declaritiveItem);
 84.7565 +    RESULT = declaritiveItemList;
 84.7566 +
 84.7567 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("declarative_item_or_body_s1",9, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7568 +            }
 84.7569 +          return CUP$AdaASTParser$result;
 84.7570 +
 84.7571 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7572 +          case 148: // declarative_item_or_body_s1 ::= declarative_item_or_body 
 84.7573 +            {
 84.7574 +              List RESULT =null;
 84.7575 +		int declaritiveItemleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.7576 +		int declaritiveItemright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.7577 +		Object declaritiveItem = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.7578 +		
 84.7579 +    List declaritiveItemList = new LinkedList();
 84.7580 +    declaritiveItemList.add(declaritiveItem);
 84.7581 +    RESULT = declaritiveItemList;
 84.7582 +
 84.7583 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("declarative_item_or_body_s1",9, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7584 +            }
 84.7585 +          return CUP$AdaASTParser$result;
 84.7586 +
 84.7587 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7588 +          case 147: // declarative_item ::= pragma 
 84.7589 +            {
 84.7590 +              Statement RESULT =null;
 84.7591 +
 84.7592 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("declarative_item",7, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7593 +            }
 84.7594 +          return CUP$AdaASTParser$result;
 84.7595 +
 84.7596 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7597 +          case 146: // declarative_item ::= rep_spec 
 84.7598 +            {
 84.7599 +              Statement RESULT =null;
 84.7600 +
 84.7601 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("declarative_item",7, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7602 +            }
 84.7603 +          return CUP$AdaASTParser$result;
 84.7604 +
 84.7605 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7606 +          case 145: // declarative_item ::= use_clause 
 84.7607 +            {
 84.7608 +              Statement RESULT =null;
 84.7609 +		int statementleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.7610 +		int statementright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.7611 +		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.7612 +		
 84.7613 +    RESULT = statement;
 84.7614 +
 84.7615 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("declarative_item",7, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7616 +            }
 84.7617 +          return CUP$AdaASTParser$result;
 84.7618 +
 84.7619 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7620 +          case 144: // declarative_item ::= declaration 
 84.7621 +            {
 84.7622 +              Statement RESULT =null;
 84.7623 +		int statementleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.7624 +		int statementright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.7625 +		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.7626 +		
 84.7627 +    RESULT = statement;
 84.7628 +
 84.7629 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("declarative_item",7, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7630 +            }
 84.7631 +          return CUP$AdaASTParser$result;
 84.7632 +
 84.7633 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7634 +          case 143: // declarative_item ::= package_declaration 
 84.7635 +            {
 84.7636 +              Statement RESULT =null;
 84.7637 +		int statementleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.7638 +		int statementright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.7639 +		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.7640 +		
 84.7641 +    RESULT = statement;
 84.7642 +
 84.7643 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("declarative_item",7, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7644 +            }
 84.7645 +          return CUP$AdaASTParser$result;
 84.7646 +
 84.7647 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7648 +          case 142: // declarative_item ::= subprog_declaration 
 84.7649 +            {
 84.7650 +              Statement RESULT =null;
 84.7651 +		int statementleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.7652 +		int statementright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.7653 +		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.7654 +		
 84.7655 +    RESULT = statement;
 84.7656 +
 84.7657 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("declarative_item",7, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7658 +            }
 84.7659 +          return CUP$AdaASTParser$result;
 84.7660 +
 84.7661 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7662 +          case 141: // declarative_item ::= type_declaration 
 84.7663 +            {
 84.7664 +              Statement RESULT =null;
 84.7665 +		int statementleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.7666 +		int statementright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.7667 +		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.7668 +		
 84.7669 +    RESULT = statement;
 84.7670 +
 84.7671 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("declarative_item",7, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7672 +            }
 84.7673 +          return CUP$AdaASTParser$result;
 84.7674 +
 84.7675 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7676 +          case 140: // declarative_item ::= fields_declaration 
 84.7677 +            {
 84.7678 +              Statement RESULT =null;
 84.7679 +		int listleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.7680 +		int listright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.7681 +		List list = (List)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.7682 +		
 84.7683 +    FieldsDeclaration fieldsDeclaration = new FieldsDeclaration(listleft, listright, list);
 84.7684 +    RESULT = fieldsDeclaration;
 84.7685 +
 84.7686 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("declarative_item",7, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7687 +            }
 84.7688 +          return CUP$AdaASTParser$result;
 84.7689 +
 84.7690 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7691 +          case 139: // declarative_item_list ::= declarative_item_list declarative_item 
 84.7692 +            {
 84.7693 +              List RESULT =null;
 84.7694 +		int declaritiveItemListleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).left;
 84.7695 +		int declaritiveItemListright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).right;
 84.7696 +		List declaritiveItemList = (List)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).value;
 84.7697 +		int declaritiveItemleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.7698 +		int declaritiveItemright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.7699 +		Statement declaritiveItem = (Statement)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.7700 +		
 84.7701 +    declaritiveItemList.add(declaritiveItem);
 84.7702 +    RESULT = declaritiveItemList;
 84.7703 +
 84.7704 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("declarative_item_list",6, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7705 +            }
 84.7706 +          return CUP$AdaASTParser$result;
 84.7707 +
 84.7708 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7709 +          case 138: // declarative_item_list ::= declarative_item 
 84.7710 +            {
 84.7711 +              List RESULT =null;
 84.7712 +		int declaritiveItemleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.7713 +		int declaritiveItemright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.7714 +		Statement declaritiveItem = (Statement)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.7715 +		
 84.7716 +    List declaritiveItemList = new LinkedList();
 84.7717 +    declaritiveItemList.add(declaritiveItem);
 84.7718 +    RESULT = declaritiveItemList;
 84.7719 +
 84.7720 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("declarative_item_list",6, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7721 +            }
 84.7722 +          return CUP$AdaASTParser$result;
 84.7723 +
 84.7724 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7725 +          case 137: // declarative_items_opt ::= declarative_item_list 
 84.7726 +            {
 84.7727 +              List RESULT =null;
 84.7728 +		int declaritiveItemListleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.7729 +		int declaritiveItemListright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.7730 +		List declaritiveItemList = (List)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.7731 +		
 84.7732 +    RESULT = declaritiveItemList;
 84.7733 +
 84.7734 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("declarative_items_opt",5, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7735 +            }
 84.7736 +          return CUP$AdaASTParser$result;
 84.7737 +
 84.7738 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7739 +          case 136: // declarative_items_opt ::= 
 84.7740 +            {
 84.7741 +              List RESULT =null;
 84.7742 +		
 84.7743 +    RESULT = new LinkedList();
 84.7744 +
 84.7745 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("declarative_items_opt",5, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7746 +            }
 84.7747 +          return CUP$AdaASTParser$result;
 84.7748 +
 84.7749 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7750 +          case 135: // declarative_part ::= declarative_item_or_body_s1 
 84.7751 +            {
 84.7752 +              List RESULT =null;
 84.7753 +		int statementleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.7754 +		int statementright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.7755 +		List statement = (List)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.7756 +		
 84.7757 +    RESULT = statement;
 84.7758 +
 84.7759 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("declarative_part",8, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7760 +            }
 84.7761 +          return CUP$AdaASTParser$result;
 84.7762 +
 84.7763 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7764 +          case 134: // declarative_part ::= 
 84.7765 +            {
 84.7766 +              List RESULT =null;
 84.7767 +		
 84.7768 +    RESULT = new LinkedList();
 84.7769 +
 84.7770 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("declarative_part",8, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7771 +            }
 84.7772 +          return CUP$AdaASTParser$result;
 84.7773 +
 84.7774 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7775 +          case 133: // prot_opt ::= PROTECTED 
 84.7776 +            {
 84.7777 +              Object RESULT =null;
 84.7778 +
 84.7779 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("prot_opt",168, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7780 +            }
 84.7781 +          return CUP$AdaASTParser$result;
 84.7782 +
 84.7783 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7784 +          case 132: // prot_opt ::= 
 84.7785 +            {
 84.7786 +              Object RESULT =null;
 84.7787 +
 84.7788 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("prot_opt",168, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7789 +            }
 84.7790 +          return CUP$AdaASTParser$result;
 84.7791 +
 84.7792 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7793 +          case 131: // access_type ::= ACCESS prot_opt FUNCTION formal_part_opt RETURN subtype_mark 
 84.7794 +            {
 84.7795 +              Object RESULT =null;
 84.7796 +
 84.7797 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("access_type",135, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-5)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7798 +            }
 84.7799 +          return CUP$AdaASTParser$result;
 84.7800 +
 84.7801 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7802 +          case 130: // access_type ::= ACCESS prot_opt PROCEDURE formal_part_opt 
 84.7803 +            {
 84.7804 +              Object RESULT =null;
 84.7805 +
 84.7806 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("access_type",135, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7807 +            }
 84.7808 +          return CUP$AdaASTParser$result;
 84.7809 +
 84.7810 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7811 +          case 129: // access_type ::= ACCESS ALL subtype_indication 
 84.7812 +            {
 84.7813 +              Object RESULT =null;
 84.7814 +
 84.7815 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("access_type",135, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7816 +            }
 84.7817 +          return CUP$AdaASTParser$result;
 84.7818 +
 84.7819 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7820 +          case 128: // access_type ::= ACCESS CONSTANT subtype_indication 
 84.7821 +            {
 84.7822 +              Object RESULT =null;
 84.7823 +
 84.7824 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("access_type",135, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7825 +            }
 84.7826 +          return CUP$AdaASTParser$result;
 84.7827 +
 84.7828 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7829 +          case 127: // access_type ::= ACCESS subtype_indication 
 84.7830 +            {
 84.7831 +              Object RESULT =null;
 84.7832 +
 84.7833 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("access_type",135, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7834 +            }
 84.7835 +          return CUP$AdaASTParser$result;
 84.7836 +
 84.7837 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7838 +          case 126: // discrete_with_range ::= range 
 84.7839 +            {
 84.7840 +              Object RESULT =null;
 84.7841 +
 84.7842 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("discrete_with_range",167, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7843 +            }
 84.7844 +          return CUP$AdaASTParser$result;
 84.7845 +
 84.7846 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7847 +          case 125: // discrete_with_range ::= name range_constraint 
 84.7848 +            {
 84.7849 +              Object RESULT =null;
 84.7850 +
 84.7851 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("discrete_with_range",167, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7852 +            }
 84.7853 +          return CUP$AdaASTParser$result;
 84.7854 +
 84.7855 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7856 +          case 124: // choice ::= OTHERS 
 84.7857 +            {
 84.7858 +              Object RESULT =null;
 84.7859 +
 84.7860 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("choice",166, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7861 +            }
 84.7862 +          return CUP$AdaASTParser$result;
 84.7863 +
 84.7864 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7865 +          case 123: // choice ::= discrete_with_range 
 84.7866 +            {
 84.7867 +              Object RESULT =null;
 84.7868 +
 84.7869 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("choice",166, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7870 +            }
 84.7871 +          return CUP$AdaASTParser$result;
 84.7872 +
 84.7873 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7874 +          case 122: // choice ::= expression 
 84.7875 +            {
 84.7876 +              Object RESULT =null;
 84.7877 +
 84.7878 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("choice",166, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7879 +            }
 84.7880 +          return CUP$AdaASTParser$result;
 84.7881 +
 84.7882 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7883 +          case 121: // choice_s ::= choice_s BAR choice 
 84.7884 +            {
 84.7885 +              Expression RESULT =null;
 84.7886 +
 84.7887 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("choice_s",111, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7888 +            }
 84.7889 +          return CUP$AdaASTParser$result;
 84.7890 +
 84.7891 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7892 +          case 120: // choice_s ::= choice 
 84.7893 +            {
 84.7894 +              Expression RESULT =null;
 84.7895 +
 84.7896 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("choice_s",111, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7897 +            }
 84.7898 +          return CUP$AdaASTParser$result;
 84.7899 +
 84.7900 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7901 +          case 119: // variant ::= WHEN choice_s ARROW pragma_s comp_list 
 84.7902 +            {
 84.7903 +              Object RESULT =null;
 84.7904 +
 84.7905 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("variant",165, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-4)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7906 +            }
 84.7907 +          return CUP$AdaASTParser$result;
 84.7908 +
 84.7909 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7910 +          case 118: // variant_s ::= variant_s variant 
 84.7911 +            {
 84.7912 +              Object RESULT =null;
 84.7913 +
 84.7914 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("variant_s",164, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7915 +            }
 84.7916 +          return CUP$AdaASTParser$result;
 84.7917 +
 84.7918 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7919 +          case 117: // variant_s ::= variant 
 84.7920 +            {
 84.7921 +              Object RESULT =null;
 84.7922 +
 84.7923 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("variant_s",164, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7924 +            }
 84.7925 +          return CUP$AdaASTParser$result;
 84.7926 +
 84.7927 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7928 +          case 116: // variant_part ::= CASE simple_name IS pragma_s variant_s END CASE SEMICOLON 
 84.7929 +            {
 84.7930 +              Object RESULT =null;
 84.7931 +
 84.7932 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("variant_part",160, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-7)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7933 +            }
 84.7934 +          return CUP$AdaASTParser$result;
 84.7935 +
 84.7936 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7937 +          case 115: // access_opt ::= ACCESS 
 84.7938 +            {
 84.7939 +              Object RESULT =null;
 84.7940 +
 84.7941 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("access_opt",163, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7942 +            }
 84.7943 +          return CUP$AdaASTParser$result;
 84.7944 +
 84.7945 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7946 +          case 114: // access_opt ::= 
 84.7947 +            {
 84.7948 +              Object RESULT =null;
 84.7949 +
 84.7950 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("access_opt",163, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7951 +            }
 84.7952 +          return CUP$AdaASTParser$result;
 84.7953 +
 84.7954 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7955 +          case 113: // discrim_spec ::= error 
 84.7956 +            {
 84.7957 +              Object RESULT =null;
 84.7958 +		int theErrorleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.7959 +		int theErrorright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.7960 +		Object theError = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.7961 +		
 84.7962 +    ASTError error = new ASTError(theErrorleft, theErrorright);
 84.7963 +    RESULT = error;
 84.7964 +
 84.7965 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("discrim_spec",162, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7966 +            }
 84.7967 +          return CUP$AdaASTParser$result;
 84.7968 +
 84.7969 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7970 +          case 112: // discrim_spec ::= defining_identifier_list COLON access_opt subtype_mark init_opt 
 84.7971 +            {
 84.7972 +              Object RESULT =null;
 84.7973 +
 84.7974 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("discrim_spec",162, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-4)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7975 +            }
 84.7976 +          return CUP$AdaASTParser$result;
 84.7977 +
 84.7978 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7979 +          case 111: // discrim_spec_s ::= discrim_spec_s SEMICOLON discrim_spec 
 84.7980 +            {
 84.7981 +              Object RESULT =null;
 84.7982 +
 84.7983 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("discrim_spec_s",161, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7984 +            }
 84.7985 +          return CUP$AdaASTParser$result;
 84.7986 +
 84.7987 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7988 +          case 110: // discrim_spec_s ::= discrim_spec 
 84.7989 +            {
 84.7990 +              Object RESULT =null;
 84.7991 +
 84.7992 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("discrim_spec_s",161, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.7993 +            }
 84.7994 +          return CUP$AdaASTParser$result;
 84.7995 +
 84.7996 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.7997 +          case 109: // discrim_part ::= LPAREN discrim_spec_s RPAREN 
 84.7998 +            {
 84.7999 +              Object RESULT =null;
 84.8000 +
 84.8001 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("discrim_part",129, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8002 +            }
 84.8003 +          return CUP$AdaASTParser$result;
 84.8004 +
 84.8005 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8006 +          case 108: // comp_decl ::= error SEMICOLON 
 84.8007 +            {
 84.8008 +              Object RESULT =null;
 84.8009 +		int theErrorleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).left;
 84.8010 +		int theErrorright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).right;
 84.8011 +		Object theError = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).value;
 84.8012 +		
 84.8013 +    ASTError error = new ASTError(theErrorleft, theErrorright);
 84.8014 +    RESULT = error;
 84.8015 +
 84.8016 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("comp_decl",158, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8017 +            }
 84.8018 +          return CUP$AdaASTParser$result;
 84.8019 +
 84.8020 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8021 +          case 107: // comp_decl ::= defining_identifier_list COLON component_subtype_def init_opt SEMICOLON 
 84.8022 +            {
 84.8023 +              Object RESULT =null;
 84.8024 +
 84.8025 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("comp_decl",158, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-4)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8026 +            }
 84.8027 +          return CUP$AdaASTParser$result;
 84.8028 +
 84.8029 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8030 +          case 106: // variant_part_opt ::= pragma_s variant_part pragma_s 
 84.8031 +            {
 84.8032 +              Object RESULT =null;
 84.8033 +
 84.8034 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("variant_part_opt",159, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8035 +            }
 84.8036 +          return CUP$AdaASTParser$result;
 84.8037 +
 84.8038 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8039 +          case 105: // variant_part_opt ::= pragma_s 
 84.8040 +            {
 84.8041 +              Object RESULT =null;
 84.8042 +
 84.8043 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("variant_part_opt",159, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8044 +            }
 84.8045 +          return CUP$AdaASTParser$result;
 84.8046 +
 84.8047 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8048 +          case 104: // comp_decl_s ::= comp_decl_s pragma_s comp_decl 
 84.8049 +            {
 84.8050 +              Object RESULT =null;
 84.8051 +
 84.8052 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("comp_decl_s",157, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8053 +            }
 84.8054 +          return CUP$AdaASTParser$result;
 84.8055 +
 84.8056 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8057 +          case 103: // comp_decl_s ::= comp_decl 
 84.8058 +            {
 84.8059 +              Object RESULT =null;
 84.8060 +
 84.8061 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("comp_decl_s",157, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8062 +            }
 84.8063 +          return CUP$AdaASTParser$result;
 84.8064 +
 84.8065 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8066 +          case 102: // comp_list ::= NULL SEMICOLON pragma_s 
 84.8067 +            {
 84.8068 +              Object RESULT =null;
 84.8069 +
 84.8070 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("comp_list",156, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8071 +            }
 84.8072 +          return CUP$AdaASTParser$result;
 84.8073 +
 84.8074 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8075 +          case 101: // comp_list ::= variant_part pragma_s 
 84.8076 +            {
 84.8077 +              Object RESULT =null;
 84.8078 +
 84.8079 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("comp_list",156, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8080 +            }
 84.8081 +          return CUP$AdaASTParser$result;
 84.8082 +
 84.8083 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8084 +          case 100: // comp_list ::= comp_decl_s variant_part_opt 
 84.8085 +            {
 84.8086 +              Object RESULT =null;
 84.8087 +
 84.8088 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("comp_list",156, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8089 +            }
 84.8090 +          return CUP$AdaASTParser$result;
 84.8091 +
 84.8092 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8093 +          case 99: // tagged_opt ::= ABSTRACT TAGGED 
 84.8094 +            {
 84.8095 +              Integer RESULT =null;
 84.8096 +		
 84.8097 +    RESULT = AdaASTParser.TAGGED + AdaASTParser.ABSTRACT;
 84.8098 +
 84.8099 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("tagged_opt",72, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8100 +            }
 84.8101 +          return CUP$AdaASTParser$result;
 84.8102 +
 84.8103 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8104 +          case 98: // tagged_opt ::= TAGGED 
 84.8105 +            {
 84.8106 +              Integer RESULT =null;
 84.8107 +		
 84.8108 +    RESULT = AdaASTParser.TAGGED;
 84.8109 +
 84.8110 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("tagged_opt",72, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8111 +            }
 84.8112 +          return CUP$AdaASTParser$result;
 84.8113 +
 84.8114 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8115 +          case 97: // tagged_opt ::= 
 84.8116 +            {
 84.8117 +              Integer RESULT =null;
 84.8118 +		
 84.8119 +    RESULT = 0;
 84.8120 +
 84.8121 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("tagged_opt",72, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8122 +            }
 84.8123 +          return CUP$AdaASTParser$result;
 84.8124 +
 84.8125 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8126 +          case 96: // record_def ::= NULL RECORD 
 84.8127 +            {
 84.8128 +              Object RESULT =null;
 84.8129 +
 84.8130 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("record_def",141, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8131 +            }
 84.8132 +          return CUP$AdaASTParser$result;
 84.8133 +
 84.8134 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8135 +          case 95: // record_def ::= RECORD pragma_s comp_list END RECORD 
 84.8136 +            {
 84.8137 +              Object RESULT =null;
 84.8138 +
 84.8139 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("record_def",141, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-4)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8140 +            }
 84.8141 +          return CUP$AdaASTParser$result;
 84.8142 +
 84.8143 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8144 +          case 94: // record_type ::= tagged_opt limited_opt record_def 
 84.8145 +            {
 84.8146 +              Object RESULT =null;
 84.8147 +
 84.8148 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("record_type",134, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8149 +            }
 84.8150 +          return CUP$AdaASTParser$result;
 84.8151 +
 84.8152 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8153 +          case 93: // range_constr_opt ::= range_constraint 
 84.8154 +            {
 84.8155 +              Object RESULT =null;
 84.8156 +
 84.8157 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("range_constr_opt",140, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8158 +            }
 84.8159 +          return CUP$AdaASTParser$result;
 84.8160 +
 84.8161 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8162 +          case 92: // range_constr_opt ::= 
 84.8163 +            {
 84.8164 +              Object RESULT =null;
 84.8165 +
 84.8166 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("range_constr_opt",140, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8167 +            }
 84.8168 +          return CUP$AdaASTParser$result;
 84.8169 +
 84.8170 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8171 +          case 91: // discrete_range ::= range 
 84.8172 +            {
 84.8173 +              Expression RESULT =null;
 84.8174 +		int rangeleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.8175 +		int rangeright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.8176 +		Expression range = (Expression)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.8177 +		
 84.8178 +    RESULT = range;
 84.8179 +
 84.8180 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("discrete_range",116, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8181 +            }
 84.8182 +          return CUP$AdaASTParser$result;
 84.8183 +
 84.8184 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8185 +          case 90: // discrete_range ::= name range_constr_opt 
 84.8186 +            {
 84.8187 +              Expression RESULT =null;
 84.8188 +
 84.8189 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("discrete_range",116, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8190 +            }
 84.8191 +          return CUP$AdaASTParser$result;
 84.8192 +
 84.8193 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8194 +          case 89: // iter_discrete_range_s ::= iter_discrete_range_s COMMA discrete_range 
 84.8195 +            {
 84.8196 +              Object RESULT =null;
 84.8197 +
 84.8198 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("iter_discrete_range_s",155, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8199 +            }
 84.8200 +          return CUP$AdaASTParser$result;
 84.8201 +
 84.8202 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8203 +          case 88: // iter_discrete_range_s ::= discrete_range 
 84.8204 +            {
 84.8205 +              Object RESULT =null;
 84.8206 +
 84.8207 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("iter_discrete_range_s",155, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8208 +            }
 84.8209 +          return CUP$AdaASTParser$result;
 84.8210 +
 84.8211 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8212 +          case 87: // iter_index_constraint ::= LPAREN iter_discrete_range_s RPAREN 
 84.8213 +            {
 84.8214 +              Object RESULT =null;
 84.8215 +
 84.8216 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("iter_index_constraint",154, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8217 +            }
 84.8218 +          return CUP$AdaASTParser$result;
 84.8219 +
 84.8220 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8221 +          case 86: // index ::= name RANGE BOX 
 84.8222 +            {
 84.8223 +              Object RESULT =null;
 84.8224 +
 84.8225 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("index",151, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8226 +            }
 84.8227 +          return CUP$AdaASTParser$result;
 84.8228 +
 84.8229 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8230 +          case 85: // index_s ::= index_s COMMA index 
 84.8231 +            {
 84.8232 +              Object RESULT =null;
 84.8233 +
 84.8234 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("index_s",150, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8235 +            }
 84.8236 +          return CUP$AdaASTParser$result;
 84.8237 +
 84.8238 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8239 +          case 84: // index_s ::= index 
 84.8240 +            {
 84.8241 +              Object RESULT =null;
 84.8242 +
 84.8243 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("index_s",150, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8244 +            }
 84.8245 +          return CUP$AdaASTParser$result;
 84.8246 +
 84.8247 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8248 +          case 83: // aliased_opt ::= ALIASED 
 84.8249 +            {
 84.8250 +              Object RESULT =null;
 84.8251 +
 84.8252 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("aliased_opt",153, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8253 +            }
 84.8254 +          return CUP$AdaASTParser$result;
 84.8255 +
 84.8256 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8257 +          case 82: // aliased_opt ::= 
 84.8258 +            {
 84.8259 +              Object RESULT =null;
 84.8260 +
 84.8261 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("aliased_opt",153, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8262 +            }
 84.8263 +          return CUP$AdaASTParser$result;
 84.8264 +
 84.8265 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8266 +          case 81: // component_subtype_def ::= aliased_opt subtype_indication 
 84.8267 +            {
 84.8268 +              Object RESULT =null;
 84.8269 +
 84.8270 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("component_subtype_def",152, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8271 +            }
 84.8272 +          return CUP$AdaASTParser$result;
 84.8273 +
 84.8274 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8275 +          case 80: // constr_array_type ::= ARRAY iter_index_constraint OF component_subtype_def 
 84.8276 +            {
 84.8277 +              Object RESULT =null;
 84.8278 +
 84.8279 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("constr_array_type",149, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8280 +            }
 84.8281 +          return CUP$AdaASTParser$result;
 84.8282 +
 84.8283 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8284 +          case 79: // unconstr_array_type ::= ARRAY LPAREN index_s RPAREN OF component_subtype_def 
 84.8285 +            {
 84.8286 +              Object RESULT =null;
 84.8287 +
 84.8288 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("unconstr_array_type",148, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-5)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8289 +            }
 84.8290 +          return CUP$AdaASTParser$result;
 84.8291 +
 84.8292 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8293 +          case 78: // array_type ::= constr_array_type 
 84.8294 +            {
 84.8295 +              Object RESULT =null;
 84.8296 +
 84.8297 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("array_type",133, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8298 +            }
 84.8299 +          return CUP$AdaASTParser$result;
 84.8300 +
 84.8301 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8302 +          case 77: // array_type ::= unconstr_array_type 
 84.8303 +            {
 84.8304 +              Object RESULT =null;
 84.8305 +
 84.8306 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("array_type",133, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8307 +            }
 84.8308 +          return CUP$AdaASTParser$result;
 84.8309 +
 84.8310 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8311 +          case 76: // fixed_type ::= DELTA expression DIGITS expression range_spec_opt 
 84.8312 +            {
 84.8313 +              Object RESULT =null;
 84.8314 +
 84.8315 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("fixed_type",147, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-4)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8316 +            }
 84.8317 +          return CUP$AdaASTParser$result;
 84.8318 +
 84.8319 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8320 +          case 75: // fixed_type ::= DELTA expression range_spec 
 84.8321 +            {
 84.8322 +              Object RESULT =null;
 84.8323 +
 84.8324 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("fixed_type",147, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8325 +            }
 84.8326 +          return CUP$AdaASTParser$result;
 84.8327 +
 84.8328 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8329 +          case 74: // float_type ::= DIGITS expression range_spec_opt 
 84.8330 +            {
 84.8331 +              Object RESULT =null;
 84.8332 +
 84.8333 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("float_type",146, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8334 +            }
 84.8335 +          return CUP$AdaASTParser$result;
 84.8336 +
 84.8337 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8338 +          case 73: // real_type ::= fixed_type 
 84.8339 +            {
 84.8340 +              Object RESULT =null;
 84.8341 +
 84.8342 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("real_type",132, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8343 +            }
 84.8344 +          return CUP$AdaASTParser$result;
 84.8345 +
 84.8346 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8347 +          case 72: // real_type ::= float_type 
 84.8348 +            {
 84.8349 +              Object RESULT =null;
 84.8350 +
 84.8351 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("real_type",132, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8352 +            }
 84.8353 +          return CUP$AdaASTParser$result;
 84.8354 +
 84.8355 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8356 +          case 71: // range_spec_opt ::= range_spec 
 84.8357 +            {
 84.8358 +              Object RESULT =null;
 84.8359 +
 84.8360 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("range_spec_opt",145, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8361 +            }
 84.8362 +          return CUP$AdaASTParser$result;
 84.8363 +
 84.8364 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8365 +          case 70: // range_spec_opt ::= 
 84.8366 +            {
 84.8367 +              Object RESULT =null;
 84.8368 +
 84.8369 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("range_spec_opt",145, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8370 +            }
 84.8371 +          return CUP$AdaASTParser$result;
 84.8372 +
 84.8373 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8374 +          case 69: // range_spec ::= range_constraint 
 84.8375 +            {
 84.8376 +              Object RESULT =null;
 84.8377 +
 84.8378 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("range_spec",144, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8379 +            }
 84.8380 +          return CUP$AdaASTParser$result;
 84.8381 +
 84.8382 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8383 +          case 68: // integer_type ::= MOD expression 
 84.8384 +            {
 84.8385 +              Object RESULT =null;
 84.8386 +
 84.8387 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("integer_type",131, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8388 +            }
 84.8389 +          return CUP$AdaASTParser$result;
 84.8390 +
 84.8391 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8392 +          case 67: // integer_type ::= range_spec 
 84.8393 +            {
 84.8394 +              Object RESULT =null;
 84.8395 +
 84.8396 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("integer_type",131, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8397 +            }
 84.8398 +          return CUP$AdaASTParser$result;
 84.8399 +
 84.8400 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8401 +          case 66: // enum_id ::= CHAR_LITERAL 
 84.8402 +            {
 84.8403 +              Object RESULT =null;
 84.8404 +
 84.8405 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("enum_id",143, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8406 +            }
 84.8407 +          return CUP$AdaASTParser$result;
 84.8408 +
 84.8409 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8410 +          case 65: // enum_id ::= IDENTIFIER 
 84.8411 +            {
 84.8412 +              Object RESULT =null;
 84.8413 +
 84.8414 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("enum_id",143, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8415 +            }
 84.8416 +          return CUP$AdaASTParser$result;
 84.8417 +
 84.8418 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8419 +          case 64: // enum_id_s ::= enum_id_s COMMA enum_id 
 84.8420 +            {
 84.8421 +              Object RESULT =null;
 84.8422 +
 84.8423 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("enum_id_s",142, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8424 +            }
 84.8425 +          return CUP$AdaASTParser$result;
 84.8426 +
 84.8427 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8428 +          case 63: // enum_id_s ::= enum_id 
 84.8429 +            {
 84.8430 +              Object RESULT =null;
 84.8431 +
 84.8432 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("enum_id_s",142, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8433 +            }
 84.8434 +          return CUP$AdaASTParser$result;
 84.8435 +
 84.8436 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8437 +          case 62: // enumeration_type ::= LPAREN enum_id_s RPAREN 
 84.8438 +            {
 84.8439 +              Object RESULT =null;
 84.8440 +
 84.8441 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("enumeration_type",130, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8442 +            }
 84.8443 +          return CUP$AdaASTParser$result;
 84.8444 +
 84.8445 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8446 +          case 61: // range ::= name TICK RANGE LPAREN expression RPAREN 
 84.8447 +            {
 84.8448 +              Expression RESULT =null;
 84.8449 +		int nameleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-5)).left;
 84.8450 +		int nameright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-5)).right;
 84.8451 +		Identifier name = (Identifier)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-5)).value;
 84.8452 +		int expressionleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).left;
 84.8453 +		int expressionright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).right;
 84.8454 +		Expression expression = (Expression)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).value;
 84.8455 +		int endleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.8456 +		int endright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.8457 +		Object end = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.8458 +		
 84.8459 +    Range range = new Range (nameleft, endright, name, expression);
 84.8460 +    RESULT = range;
 84.8461 +
 84.8462 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("range",117, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-5)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8463 +            }
 84.8464 +          return CUP$AdaASTParser$result;
 84.8465 +
 84.8466 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8467 +          case 60: // range ::= name TICK RANGE 
 84.8468 +            {
 84.8469 +              Expression RESULT =null;
 84.8470 +		int nameleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).left;
 84.8471 +		int nameright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).right;
 84.8472 +		Identifier name = (Identifier)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).value;
 84.8473 +		int endleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.8474 +		int endright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.8475 +		Object end = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.8476 +		
 84.8477 +    Range range = new Range (nameleft, endright, name, name);
 84.8478 +    RESULT = range;
 84.8479 +
 84.8480 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("range",117, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8481 +            }
 84.8482 +          return CUP$AdaASTParser$result;
 84.8483 +
 84.8484 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8485 +          case 59: // range ::= simple_expression DOT_DOT simple_expression 
 84.8486 +            {
 84.8487 +              Expression RESULT =null;
 84.8488 +		int simple_expression1left = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).left;
 84.8489 +		int simple_expression1right = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).right;
 84.8490 +		Expression simple_expression1 = (Expression)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).value;
 84.8491 +		int simple_expression2left = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.8492 +		int simple_expression2right = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.8493 +		Expression simple_expression2 = (Expression)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.8494 +		
 84.8495 +    Range range = new Range (simple_expression1left, simple_expression2right, simple_expression1, simple_expression2);
 84.8496 +    RESULT = range;
 84.8497 +
 84.8498 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("range",117, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8499 +            }
 84.8500 +          return CUP$AdaASTParser$result;
 84.8501 +
 84.8502 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8503 +          case 58: // range_constraint ::= RANGE range 
 84.8504 +            {
 84.8505 +              Object RESULT =null;
 84.8506 +
 84.8507 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("range_constraint",138, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8508 +            }
 84.8509 +          return CUP$AdaASTParser$result;
 84.8510 +
 84.8511 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8512 +          case 57: // derived_type ::= ABSTRACT NEW subtype_indication WITH record_def 
 84.8513 +            {
 84.8514 +              Object RESULT =null;
 84.8515 +
 84.8516 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("derived_type",136, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-4)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8517 +            }
 84.8518 +          return CUP$AdaASTParser$result;
 84.8519 +
 84.8520 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8521 +          case 56: // derived_type ::= ABSTRACT NEW subtype_indication WITH PRIVATE 
 84.8522 +            {
 84.8523 +              Object RESULT =null;
 84.8524 +
 84.8525 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("derived_type",136, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-4)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8526 +            }
 84.8527 +          return CUP$AdaASTParser$result;
 84.8528 +
 84.8529 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8530 +          case 55: // derived_type ::= NEW subtype_indication WITH record_def 
 84.8531 +            {
 84.8532 +              Object RESULT =null;
 84.8533 +
 84.8534 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("derived_type",136, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8535 +            }
 84.8536 +          return CUP$AdaASTParser$result;
 84.8537 +
 84.8538 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8539 +          case 54: // derived_type ::= NEW subtype_indication WITH PRIVATE 
 84.8540 +            {
 84.8541 +              Object RESULT =null;
 84.8542 +
 84.8543 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("derived_type",136, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8544 +            }
 84.8545 +          return CUP$AdaASTParser$result;
 84.8546 +
 84.8547 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8548 +          case 53: // derived_type ::= NEW subtype_indication 
 84.8549 +            {
 84.8550 +              Object RESULT =null;
 84.8551 +
 84.8552 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("derived_type",136, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8553 +            }
 84.8554 +          return CUP$AdaASTParser$result;
 84.8555 +
 84.8556 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8557 +          case 52: // decimal_digits_constraint ::= DIGITS expression range_constr_opt 
 84.8558 +            {
 84.8559 +              Object RESULT =null;
 84.8560 +
 84.8561 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("decimal_digits_constraint",139, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8562 +            }
 84.8563 +          return CUP$AdaASTParser$result;
 84.8564 +
 84.8565 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8566 +          case 51: // constraint ::= decimal_digits_constraint 
 84.8567 +            {
 84.8568 +              Object RESULT =null;
 84.8569 +
 84.8570 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("constraint",137, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8571 +            }
 84.8572 +          return CUP$AdaASTParser$result;
 84.8573 +
 84.8574 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8575 +          case 50: // constraint ::= range_constraint 
 84.8576 +            {
 84.8577 +              Object RESULT =null;
 84.8578 +
 84.8579 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("constraint",137, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8580 +            }
 84.8581 +          return CUP$AdaASTParser$result;
 84.8582 +
 84.8583 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8584 +          case 49: // subtype_indication ::= name 
 84.8585 +            {
 84.8586 +              TypeName RESULT =null;
 84.8587 +		int nameleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.8588 +		int nameright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.8589 +		Identifier name = (Identifier)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.8590 +		    
 84.8591 +    TypeName type = new TypeName (nameleft, nameright, name);
 84.8592 +    RESULT = type;
 84.8593 +
 84.8594 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("subtype_indication",15, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8595 +            }
 84.8596 +          return CUP$AdaASTParser$result;
 84.8597 +
 84.8598 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8599 +          case 48: // subtype_indication ::= name constraint 
 84.8600 +            {
 84.8601 +              TypeName RESULT =null;
 84.8602 +		int nameleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).left;
 84.8603 +		int nameright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).right;
 84.8604 +		Identifier name = (Identifier)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).value;
 84.8605 +		
 84.8606 +    TypeName type = new TypeName (nameleft, nameright, name);
 84.8607 +    RESULT = type;
 84.8608 +
 84.8609 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("subtype_indication",15, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8610 +            }
 84.8611 +          return CUP$AdaASTParser$result;
 84.8612 +
 84.8613 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8614 +          case 47: // subtype_declaration ::= SUBTYPE defining_identifier IS subtype_indication SEMICOLON 
 84.8615 +            {
 84.8616 +              Statement RESULT =null;
 84.8617 +		int tokenleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-4)).left;
 84.8618 +		int tokenright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-4)).right;
 84.8619 +		Object token = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-4)).value;
 84.8620 +		int identifierleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)).left;
 84.8621 +		int identifierright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)).right;
 84.8622 +		Identifier identifier = (Identifier)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)).value;
 84.8623 +		int subtypeIndicationleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).left;
 84.8624 +		int subtypeIndicationright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).right;
 84.8625 +		TypeName subtypeIndication = (TypeName)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).value;
 84.8626 +		int endleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.8627 +		int endright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.8628 +		Object end = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.8629 +		
 84.8630 +    SubtypeDeclaration type = new SubtypeDeclaration (tokenleft, endright, identifier, subtypeIndication);
 84.8631 +    RESULT = type;
 84.8632 +
 84.8633 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("subtype_declaration",14, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-4)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8634 +            }
 84.8635 +          return CUP$AdaASTParser$result;
 84.8636 +
 84.8637 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8638 +          case 46: // type_definition ::= private_type_declaration 
 84.8639 +            {
 84.8640 +              Expression RESULT =null;
 84.8641 +		int privateTypeleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.8642 +		int privateTyperight = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.8643 +		PrivateType privateType = (PrivateType)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.8644 +		
 84.8645 +    RESULT = privateType;
 84.8646 +
 84.8647 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("type_definition",13, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8648 +            }
 84.8649 +          return CUP$AdaASTParser$result;
 84.8650 +
 84.8651 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8652 +          case 45: // type_definition ::= derived_type 
 84.8653 +            {
 84.8654 +              Expression RESULT =null;
 84.8655 +
 84.8656 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("type_definition",13, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8657 +            }
 84.8658 +          return CUP$AdaASTParser$result;
 84.8659 +
 84.8660 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8661 +          case 44: // type_definition ::= access_type 
 84.8662 +            {
 84.8663 +              Expression RESULT =null;
 84.8664 +
 84.8665 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("type_definition",13, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8666 +            }
 84.8667 +          return CUP$AdaASTParser$result;
 84.8668 +
 84.8669 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8670 +          case 43: // type_definition ::= record_type 
 84.8671 +            {
 84.8672 +              Expression RESULT =null;
 84.8673 +
 84.8674 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("type_definition",13, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8675 +            }
 84.8676 +          return CUP$AdaASTParser$result;
 84.8677 +
 84.8678 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8679 +          case 42: // type_definition ::= array_type 
 84.8680 +            {
 84.8681 +              Expression RESULT =null;
 84.8682 +
 84.8683 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("type_definition",13, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8684 +            }
 84.8685 +          return CUP$AdaASTParser$result;
 84.8686 +
 84.8687 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8688 +          case 41: // type_definition ::= real_type 
 84.8689 +            {
 84.8690 +              Expression RESULT =null;
 84.8691 +
 84.8692 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("type_definition",13, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8693 +            }
 84.8694 +          return CUP$AdaASTParser$result;
 84.8695 +
 84.8696 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8697 +          case 40: // type_definition ::= integer_type 
 84.8698 +            {
 84.8699 +              Expression RESULT =null;
 84.8700 +
 84.8701 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("type_definition",13, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8702 +            }
 84.8703 +          return CUP$AdaASTParser$result;
 84.8704 +
 84.8705 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8706 +          case 39: // type_definition ::= enumeration_type 
 84.8707 +            {
 84.8708 +              Expression RESULT =null;
 84.8709 +
 84.8710 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("type_definition",13, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8711 +            }
 84.8712 +          return CUP$AdaASTParser$result;
 84.8713 +
 84.8714 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8715 +          case 38: // type_completion ::= IS type_definition 
 84.8716 +            {
 84.8717 +              Expression RESULT =null;
 84.8718 +		int typeDefleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.8719 +		int typeDefright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.8720 +		Expression typeDef = (Expression)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.8721 +		
 84.8722 +    RESULT = typeDef;
 84.8723 +
 84.8724 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("type_completion",99, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8725 +            }
 84.8726 +          return CUP$AdaASTParser$result;
 84.8727 +
 84.8728 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8729 +          case 37: // type_completion ::= 
 84.8730 +            {
 84.8731 +              Expression RESULT =null;
 84.8732 +		
 84.8733 +    RESULT = null;
 84.8734 +
 84.8735 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("type_completion",99, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8736 +            }
 84.8737 +          return CUP$AdaASTParser$result;
 84.8738 +
 84.8739 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8740 +          case 36: // discrim_part_opt ::= LPAREN BOX RPAREN 
 84.8741 +            {
 84.8742 +              Object RESULT =null;
 84.8743 +
 84.8744 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("discrim_part_opt",128, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8745 +            }
 84.8746 +          return CUP$AdaASTParser$result;
 84.8747 +
 84.8748 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8749 +          case 35: // discrim_part_opt ::= discrim_part 
 84.8750 +            {
 84.8751 +              Object RESULT =null;
 84.8752 +
 84.8753 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("discrim_part_opt",128, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8754 +            }
 84.8755 +          return CUP$AdaASTParser$result;
 84.8756 +
 84.8757 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8758 +          case 34: // discrim_part_opt ::= 
 84.8759 +            {
 84.8760 +              Object RESULT =null;
 84.8761 +
 84.8762 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("discrim_part_opt",128, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8763 +            }
 84.8764 +          return CUP$AdaASTParser$result;
 84.8765 +
 84.8766 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8767 +          case 33: // type_decl ::= TYPE defining_identifier discrim_part_opt type_completion SEMICOLON 
 84.8768 +            {
 84.8769 +              Statement RESULT =null;
 84.8770 +		int tokenleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-4)).left;
 84.8771 +		int tokenright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-4)).right;
 84.8772 +		Object token = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-4)).value;
 84.8773 +		int identifierleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)).left;
 84.8774 +		int identifierright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)).right;
 84.8775 +		Identifier identifier = (Identifier)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)).value;
 84.8776 +		int typeCompletionleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).left;
 84.8777 +		int typeCompletionright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).right;
 84.8778 +		Expression typeCompletion = (Expression)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).value;
 84.8779 +		int endleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.8780 +		int endright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.8781 +		Object end = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.8782 +		
 84.8783 +    TypeDeclaration type = new TypeDeclaration (tokenleft, endright, identifier, typeCompletion);
 84.8784 +    RESULT = type;
 84.8785 +
 84.8786 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("type_decl",98, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-4)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8787 +            }
 84.8788 +          return CUP$AdaASTParser$result;
 84.8789 +
 84.8790 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8791 +          case 32: // number_declaration ::= defining_identifier_list COLON CONSTANT ASSIGNMENT expression SEMICOLON 
 84.8792 +            {
 84.8793 +              List RESULT =null;
 84.8794 +		int identifierListleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-5)).left;
 84.8795 +		int identifierListright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-5)).right;
 84.8796 +		List identifierList = (List)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-5)).value;
 84.8797 +		int initleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).left;
 84.8798 +		int initright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).right;
 84.8799 +		Expression init = (Expression)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).value;
 84.8800 +		
 84.8801 +    List list = new LinkedList();
 84.8802 +    for (Object identifier : identifierList) {
 84.8803 +        Variable variable = new Variable (((Identifier)identifier).getStartOffset(), ((Identifier)identifier).getEndOffset(), (Identifier)identifier, Variable.Kind.CONSTANT);
 84.8804 +        list.add(new ASTNode[] {variable, init});
 84.8805 +    }
 84.8806 +    RESULT = list;
 84.8807 +
 84.8808 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("number_declaration",19, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-5)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8809 +            }
 84.8810 +          return CUP$AdaASTParser$result;
 84.8811 +
 84.8812 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8813 +          case 31: // init_opt ::= ASSIGNMENT expression 
 84.8814 +            {
 84.8815 +              Expression RESULT =null;
 84.8816 +		int exprleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.8817 +		int exprright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.8818 +		Expression expr = (Expression)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.8819 +		
 84.8820 +    RESULT = expr;
 84.8821 +
 84.8822 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("init_opt",97, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8823 +            }
 84.8824 +          return CUP$AdaASTParser$result;
 84.8825 +
 84.8826 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8827 +          case 30: // init_opt ::= 
 84.8828 +            {
 84.8829 +              Expression RESULT =null;
 84.8830 +		
 84.8831 +    RESULT = null;
 84.8832 +
 84.8833 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("init_opt",97, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8834 +            }
 84.8835 +          return CUP$AdaASTParser$result;
 84.8836 +
 84.8837 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8838 +          case 29: // object_subtype_def ::= array_type 
 84.8839 +            {
 84.8840 +              TypeName RESULT =null;
 84.8841 +		int arrayleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.8842 +		int arrayright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.8843 +		Object array = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.8844 +
 84.8845 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("object_subtype_def",96, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8846 +            }
 84.8847 +          return CUP$AdaASTParser$result;
 84.8848 +
 84.8849 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8850 +          case 28: // object_subtype_def ::= subtype_indication 
 84.8851 +            {
 84.8852 +              TypeName RESULT =null;
 84.8853 +		int subtypeleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.8854 +		int subtyperight = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.8855 +		TypeName subtype = (TypeName)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.8856 +		
 84.8857 +    RESULT = subtype;
 84.8858 +
 84.8859 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("object_subtype_def",96, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8860 +            }
 84.8861 +          return CUP$AdaASTParser$result;
 84.8862 +
 84.8863 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8864 +          case 27: // object_qualifier_opt ::= ALIASED CONSTANT 
 84.8865 +            {
 84.8866 +              Variable.Kind RESULT =null;
 84.8867 +		
 84.8868 +    RESULT = Variable.Kind.ALIASED_CONSTANT;
 84.8869 +
 84.8870 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("object_qualifier_opt",18, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8871 +            }
 84.8872 +          return CUP$AdaASTParser$result;
 84.8873 +
 84.8874 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8875 +          case 26: // object_qualifier_opt ::= CONSTANT 
 84.8876 +            {
 84.8877 +              Variable.Kind RESULT =null;
 84.8878 +		
 84.8879 +    RESULT = Variable.Kind.CONSTANT;
 84.8880 +
 84.8881 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("object_qualifier_opt",18, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8882 +            }
 84.8883 +          return CUP$AdaASTParser$result;
 84.8884 +
 84.8885 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8886 +          case 25: // object_qualifier_opt ::= ALIASED 
 84.8887 +            {
 84.8888 +              Variable.Kind RESULT =null;
 84.8889 +		
 84.8890 +    RESULT = Variable.Kind.ALIASED;
 84.8891 +
 84.8892 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("object_qualifier_opt",18, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8893 +            }
 84.8894 +          return CUP$AdaASTParser$result;
 84.8895 +
 84.8896 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8897 +          case 24: // object_qualifier_opt ::= 
 84.8898 +            {
 84.8899 +              Variable.Kind RESULT =null;
 84.8900 +		
 84.8901 +    RESULT = Variable.Kind.DEFAULT;
 84.8902 +
 84.8903 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("object_qualifier_opt",18, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8904 +            }
 84.8905 +          return CUP$AdaASTParser$result;
 84.8906 +
 84.8907 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8908 +          case 23: // defining_identifier_list ::= defining_identifier_list COMMA defining_identifier 
 84.8909 +            {
 84.8910 +              List RESULT =null;
 84.8911 +		int identifierListleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).left;
 84.8912 +		int identifierListright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).right;
 84.8913 +		List identifierList = (List)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).value;
 84.8914 +		int identifierleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.8915 +		int identifierright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.8916 +		Identifier identifier = (Identifier)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.8917 +		
 84.8918 +    identifierList.add(identifier);
 84.8919 +    RESULT = identifierList;
 84.8920 +
 84.8921 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("defining_identifier_list",17, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8922 +            }
 84.8923 +          return CUP$AdaASTParser$result;
 84.8924 +
 84.8925 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8926 +          case 22: // defining_identifier_list ::= defining_identifier 
 84.8927 +            {
 84.8928 +              List RESULT =null;
 84.8929 +		int identifierleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.8930 +		int identifierright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.8931 +		Identifier identifier = (Identifier)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.8932 +		
 84.8933 +    List identifierList = new LinkedList();
 84.8934 +    identifierList.add(identifier);
 84.8935 +    RESULT = identifierList;
 84.8936 +
 84.8937 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("defining_identifier_list",17, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8938 +            }
 84.8939 +          return CUP$AdaASTParser$result;
 84.8940 +
 84.8941 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8942 +          case 21: // object_declaration ::= defining_identifier_list COLON object_qualifier_opt object_subtype_def init_opt SEMICOLON 
 84.8943 +            {
 84.8944 +              List RESULT =null;
 84.8945 +		int identifierListleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-5)).left;
 84.8946 +		int identifierListright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-5)).right;
 84.8947 +		List identifierList = (List)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-5)).value;
 84.8948 +		int varKindleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)).left;
 84.8949 +		int varKindright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)).right;
 84.8950 +		Variable.Kind varKind = (Variable.Kind)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-3)).value;
 84.8951 +		int subtypeleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).left;
 84.8952 +		int subtyperight = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).right;
 84.8953 +		TypeName subtype = (TypeName)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)).value;
 84.8954 +		int initleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).left;
 84.8955 +		int initright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).right;
 84.8956 +		Expression init = (Expression)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).value;
 84.8957 +		
 84.8958 +    List list = new LinkedList();
 84.8959 +    for (Object identifier : identifierList) {
 84.8960 +        Variable variable = new Variable (((Identifier)identifier).getStartOffset(), ((Identifier)identifier).getEndOffset(), (Identifier)identifier, varKind, subtype);
 84.8961 +        list.add(new ASTNode[] {variable, init});
 84.8962 +    }
 84.8963 +    RESULT = list;
 84.8964 +
 84.8965 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("object_declaration",16, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-5)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8966 +            }
 84.8967 +          return CUP$AdaASTParser$result;
 84.8968 +
 84.8969 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8970 +          case 20: // defining_identifier ::= IDENTIFIER 
 84.8971 +            {
 84.8972 +              Identifier RESULT =null;
 84.8973 +		int idleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.8974 +		int idright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.8975 +		String id = (String)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.8976 +		
 84.8977 +    Identifier identifier = new Identifier(idleft, idright, id);
 84.8978 +    RESULT = identifier;
 84.8979 +
 84.8980 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("defining_identifier",4, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8981 +            }
 84.8982 +          return CUP$AdaASTParser$result;
 84.8983 +
 84.8984 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.8985 +          case 19: // declaration ::= error SEMICOLON 
 84.8986 +            {
 84.8987 +              Statement RESULT =null;
 84.8988 +		int theErrorleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).left;
 84.8989 +		int theErrorright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).right;
 84.8990 +		Object theError = (Object)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).value;
 84.8991 +		
 84.8992 +    ASTError error = new ASTError(theErrorleft, theErrorright);
 84.8993 +    RESULT = error;
 84.8994 +
 84.8995 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("declaration",0, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.8996 +            }
 84.8997 +          return CUP$AdaASTParser$result;
 84.8998 +
 84.8999 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.9000 +          case 18: // declaration ::= body_stub 
 84.9001 +            {
 84.9002 +              Statement RESULT =null;
 84.9003 +		int statementleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.9004 +		int statementright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.9005 +		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.9006 +		
 84.9007 +	RESULT = statement;
 84.9008 +
 84.9009 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("declaration",0, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.9010 +            }
 84.9011 +          return CUP$AdaASTParser$result;
 84.9012 +
 84.9013 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.9014 +          case 17: // declaration ::= generic_declaration 
 84.9015 +            {
 84.9016 +              Statement RESULT =null;
 84.9017 +		int statementleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.9018 +		int statementright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.9019 +		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.9020 +		
 84.9021 +	RESULT = statement;
 84.9022 +
 84.9023 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("declaration",0, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.9024 +            }
 84.9025 +          return CUP$AdaASTParser$result;
 84.9026 +
 84.9027 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.9028 +          case 16: // declaration ::= renaming_declaration 
 84.9029 +            {
 84.9030 +              Statement RESULT =null;
 84.9031 +		int statementleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.9032 +		int statementright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.9033 +		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.9034 +		
 84.9035 +	RESULT = statement;
 84.9036 +
 84.9037 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("declaration",0, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.9038 +            }
 84.9039 +          return CUP$AdaASTParser$result;
 84.9040 +
 84.9041 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.9042 +          case 15: // declaration ::= exception_decl 
 84.9043 +            {
 84.9044 +              Statement RESULT =null;
 84.9045 +
 84.9046 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("declaration",0, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.9047 +            }
 84.9048 +          return CUP$AdaASTParser$result;
 84.9049 +
 84.9050 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.9051 +          case 14: // declaration ::= prot_decl 
 84.9052 +            {
 84.9053 +              Statement RESULT =null;
 84.9054 +
 84.9055 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("declaration",0, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.9056 +            }
 84.9057 +          return CUP$AdaASTParser$result;
 84.9058 +
 84.9059 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.9060 +          case 13: // declaration ::= task_decl 
 84.9061 +            {
 84.9062 +              Statement RESULT =null;
 84.9063 +
 84.9064 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("declaration",0, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.9065 +            }
 84.9066 +          return CUP$AdaASTParser$result;
 84.9067 +
 84.9068 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.9069 +          case 12: // type_declaration ::= subtype_declaration 
 84.9070 +            {
 84.9071 +              Statement RESULT =null;
 84.9072 +		int statementleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.9073 +		int statementright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.9074 +		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.9075 +		
 84.9076 +	RESULT = statement;
 84.9077 +
 84.9078 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("type_declaration",2, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.9079 +            }
 84.9080 +          return CUP$AdaASTParser$result;
 84.9081 +
 84.9082 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.9083 +          case 11: // type_declaration ::= type_decl 
 84.9084 +            {
 84.9085 +              Statement RESULT =null;
 84.9086 +		int statementleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.9087 +		int statementright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.9088 +		Statement statement = (Statement)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.9089 +		
 84.9090 +	RESULT = statement;
 84.9091 +
 84.9092 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("type_declaration",2, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.9093 +            }
 84.9094 +          return CUP$AdaASTParser$result;
 84.9095 +
 84.9096 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.9097 +          case 10: // fields_declaration ::= number_declaration 
 84.9098 +            {
 84.9099 +              List RESULT =null;
 84.9100 +		int statementleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.9101 +		int statementright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.9102 +		List statement = (List)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.9103 +		
 84.9104 +	RESULT = statement;
 84.9105 +
 84.9106 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("fields_declaration",1, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.9107 +            }
 84.9108 +          return CUP$AdaASTParser$result;
 84.9109 +
 84.9110 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.9111 +          case 9: // fields_declaration ::= object_declaration 
 84.9112 +            {
 84.9113 +              List RESULT =null;
 84.9114 +		int statementleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).left;
 84.9115 +		int statementright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()).right;
 84.9116 +		List statement = (List)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.peek()).value;
 84.9117 +		
 84.9118 +	RESULT = statement;
 84.9119 +
 84.9120 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("fields_declaration",1, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.9121 +            }
 84.9122 +          return CUP$AdaASTParser$result;
 84.9123 +
 84.9124 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.9125 +          case 8: // pragma_s ::= pragma_s pragma 
 84.9126 +            {
 84.9127 +              Object RESULT =null;
 84.9128 +
 84.9129 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("pragma_s",124, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.9130 +            }
 84.9131 +          return CUP$AdaASTParser$result;
 84.9132 +
 84.9133 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.9134 +          case 7: // pragma_s ::= 
 84.9135 +            {
 84.9136 +              Object RESULT =null;
 84.9137 +
 84.9138 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("pragma_s",124, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.9139 +            }
 84.9140 +          return CUP$AdaASTParser$result;
 84.9141 +
 84.9142 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.9143 +          case 6: // pragma_arg ::= simple_name ARROW expression 
 84.9144 +            {
 84.9145 +              Object RESULT =null;
 84.9146 +
 84.9147 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("pragma_arg",123, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.9148 +            }
 84.9149 +          return CUP$AdaASTParser$result;
 84.9150 +
 84.9151 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.9152 +          case 5: // pragma_arg ::= expression 
 84.9153 +            {
 84.9154 +              Object RESULT =null;
 84.9155 +
 84.9156 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("pragma_arg",123, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.9157 +            }
 84.9158 +          return CUP$AdaASTParser$result;
 84.9159 +
 84.9160 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.9161 +          case 4: // pragma_arg_s ::= pragma_arg_s COMMA pragma_arg 
 84.9162 +            {
 84.9163 +              Object RESULT =null;
 84.9164 +
 84.9165 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("pragma_arg_s",122, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.9166 +            }
 84.9167 +          return CUP$AdaASTParser$result;
 84.9168 +
 84.9169 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.9170 +          case 3: // pragma_arg_s ::= pragma_arg 
 84.9171 +            {
 84.9172 +              Object RESULT =null;
 84.9173 +
 84.9174 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("pragma_arg_s",122, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.9175 +            }
 84.9176 +          return CUP$AdaASTParser$result;
 84.9177 +
 84.9178 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.9179 +          case 2: // pragma ::= PRAGMA simple_name LPAREN pragma_arg_s RPAREN SEMICOLON 
 84.9180 +            {
 84.9181 +              Object RESULT =null;
 84.9182 +
 84.9183 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("pragma",121, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-5)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.9184 +            }
 84.9185 +          return CUP$AdaASTParser$result;
 84.9186 +
 84.9187 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.9188 +          case 1: // pragma ::= PRAGMA IDENTIFIER SEMICOLON 
 84.9189 +            {
 84.9190 +              Object RESULT =null;
 84.9191 +
 84.9192 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("pragma",121, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-2)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.9193 +            }
 84.9194 +          return CUP$AdaASTParser$result;
 84.9195 +
 84.9196 +          /*. . . . . . . . . . . . . . . . . . . .*/
 84.9197 +          case 0: // $START ::= compilation EOF 
 84.9198 +            {
 84.9199 +              Object RESULT =null;
 84.9200 +		int start_valleft = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).left;
 84.9201 +		int start_valright = ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).right;
 84.9202 +		Program start_val = (Program)((java_cup.runtime.Symbol) CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)).value;
 84.9203 +		RESULT = start_val;
 84.9204 +              CUP$AdaASTParser$result = parser.getSymbolFactory().newSymbol("$START",0, ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.elementAt(CUP$AdaASTParser$top-1)), ((java_cup.runtime.Symbol)CUP$AdaASTParser$stack.peek()), RESULT);
 84.9205 +            }
 84.9206 +          /* ACCEPT */
 84.9207 +          CUP$AdaASTParser$parser.done_parsing();
 84.9208 +          return CUP$AdaASTParser$result;
 84.9209 +
 84.9210 +          /* . . . . . .*/
 84.9211 +          default:
 84.9212 +            throw new Exception(
 84.9213 +               "Invalid action number found in internal parse table");
 84.9214 +
 84.9215 +        }
 84.9216 +    }
 84.9217 +}
 84.9218 +
    85.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    85.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/parser/AdaASTSymbols.java	Mon Oct 15 23:38:26 2012 +0200
    85.3 @@ -0,0 +1,119 @@
    85.4 +
    85.5 +//----------------------------------------------------
    85.6 +// The following code was generated by CUP v0.11a beta 20060608
    85.7 +// Thu Sep 23 23:52:48 CEST 2010
    85.8 +//----------------------------------------------------
    85.9 +
   85.10 +package org.netbeans.modules.ada.editor.parser;
   85.11 +
   85.12 +/** CUP generated interface containing symbol constants. */
   85.13 +public interface AdaASTSymbols {
   85.14 +  /* terminals */
   85.15 +  public static final int AT = 11;
   85.16 +  public static final int IDENTIFIER = 102;
   85.17 +  public static final int GT = 87;
   85.18 +  public static final int LIMITED = 35;
   85.19 +  public static final int ARROW = 91;
   85.20 +  public static final int AMP = 75;
   85.21 +  public static final int TYPE = 68;
   85.22 +  public static final int SUBTYPE = 63;
   85.23 +  public static final int ALIASED = 7;
   85.24 +  public static final int RAISE = 53;
   85.25 +  public static final int RENAMES = 57;
   85.26 +  public static final int UNTIL = 69;
   85.27 +  public static final int OVERRIDING = 45;
   85.28 +  public static final int ASSIGNMENT = 94;
   85.29 +  public static final int ELSIF = 22;
   85.30 +  public static final int COMMA = 81;
   85.31 +  public static final int TERMINATE = 66;
   85.32 +  public static final int RPAREN = 78;
   85.33 +  public static final int LT = 89;
   85.34 +  public static final int ALL = 8;
   85.35 +  public static final int DECLARE = 16;
   85.36 +  public static final int ABORT = 2;
   85.37 +  public static final int GTGT = 99;
   85.38 +  public static final int LPAREN = 77;
   85.39 +  public static final int ACCESS = 5;
   85.40 +  public static final int LOOP = 36;
   85.41 +  public static final int PROTECTED = 50;
   85.42 +  public static final int OUT = 44;
   85.43 +  public static final int NOT = 39;
   85.44 +  public static final int TASK = 65;
   85.45 +  public static final int ARRAY = 10;
   85.46 +  public static final int THEN = 67;
   85.47 +  public static final int GOTO = 30;
   85.48 +  public static final int PACKAGE = 46;
   85.49 +  public static final int RECORD = 55;
   85.50 +  public static final int EQ = 88;
   85.51 +  public static final int REVERSE = 52;
   85.52 +  public static final int MOD = 37;
   85.53 +  public static final int WHEN = 71;
   85.54 +  public static final int GENERIC = 29;
   85.55 +  public static final int DIGITS = 19;
   85.56 +  public static final int DOT_DOT = 92;
   85.57 +  public static final int SELECT = 59;
   85.58 +  public static final int OTHERS = 43;
   85.59 +  public static final int ABSTRACT = 4;
   85.60 +  public static final int SLASH = 84;
   85.61 +  public static final int PLUS = 80;
   85.62 +  public static final int WHILE = 72;
   85.63 +  public static final int USE = 70;
   85.64 +  public static final int INTERFACE = 33;
   85.65 +  public static final int DO = 20;
   85.66 +  public static final int FOR = 27;
   85.67 +  public static final int EXPON = 93;
   85.68 +  public static final int STAR = 79;
   85.69 +  public static final int RETURN = 51;
   85.70 +  public static final int LTLT = 98;
   85.71 +  public static final int DELAY = 17;
   85.72 +  public static final int ELSE = 21;
   85.73 +  public static final int BASED_LITERAL = 104;
   85.74 +  public static final int GTEQ = 96;
   85.75 +  public static final int DOT = 83;
   85.76 +  public static final int PROCEDURE = 49;
   85.77 +  public static final int ENTRY = 24;
   85.78 +  public static final int DELTA = 18;
   85.79 +  public static final int PRAGMA = 47;
   85.80 +  public static final int STRING_LITERAL = 105;
   85.81 +  public static final int TICK = 76;
   85.82 +  public static final int NULL = 40;
   85.83 +  public static final int BOX = 100;
   85.84 +  public static final int SEMICOLON = 86;
   85.85 +  public static final int EOF = 0;
   85.86 +  public static final int FUNCTION = 28;
   85.87 +  public static final int MINUS = 82;
   85.88 +  public static final int IS = 34;
   85.89 +  public static final int CONSTANT = 14;
   85.90 +  public static final int LTEQ = 97;
   85.91 +  public static final int BODY = 13;
   85.92 +  public static final int ACCEPT = 6;
   85.93 +  public static final int IN = 32;
   85.94 +  public static final int OR = 42;
   85.95 +  public static final int error = 1;
   85.96 +  public static final int EXIT = 26;
   85.97 +  public static final int DECIMAL_LITERAL = 103;
   85.98 +  public static final int SYNCHRONIZED = 62;
   85.99 +  public static final int IF = 31;
  85.100 +  public static final int OF = 41;
  85.101 +  public static final int ABS = 3;
  85.102 +  public static final int END = 23;
  85.103 +  public static final int COLON = 85;
  85.104 +  public static final int REM = 56;
  85.105 +  public static final int REQUEUE = 58;
  85.106 +  public static final int SEPARATE = 60;
  85.107 +  public static final int SOME = 61;
  85.108 +  public static final int INEQ = 95;
  85.109 +  public static final int CHAR_LITERAL = 101;
  85.110 +  public static final int BEGIN = 12;
  85.111 +  public static final int CASE = 15;
  85.112 +  public static final int EXCEPTION = 25;
  85.113 +  public static final int NEW = 38;
  85.114 +  public static final int TAGGED = 64;
  85.115 +  public static final int RANGE = 54;
  85.116 +  public static final int AND = 9;
  85.117 +  public static final int BAR = 90;
  85.118 +  public static final int PRIVATE = 48;
  85.119 +  public static final int WITH = 73;
  85.120 +  public static final int XOR = 74;
  85.121 +}
  85.122 +
    86.1 --- a/ada.editor/src/org/netbeans/modules/ada/editor/parser/AdaElementHandle.java	Tue Oct 02 21:55:21 2012 -0400
    86.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/parser/AdaElementHandle.java	Mon Oct 15 23:38:26 2012 +0200
    86.3 @@ -100,7 +100,7 @@
    86.4  
    86.5      @Override
    86.6      public OffsetRange getOffsetRange(ParserResult result) {
    86.7 -        AdaElementHandle h = (AdaElementHandle) this;
    86.8 +        AdaElementHandle h = this;
    86.9  
   86.10          if (h.getASTNode() != null) {
   86.11              return new OffsetRange(h.getASTNode().getStartOffset(), h.getASTNode().getEndOffset());
    87.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    87.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/parser/AdaErrorHandler.java	Mon Oct 15 23:38:26 2012 +0200
    87.3 @@ -0,0 +1,377 @@
    87.4 +/*
    87.5 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
    87.6 + *
    87.7 + * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
    87.8 + *
    87.9 + * The contents of this file are subject to the terms of either the GNU
   87.10 + * General Public License Version 2 only ("GPL") or the Common
   87.11 + * Development and Distribution License("CDDL") (collectively, the
   87.12 + * "License"). You may not use this file except in compliance with the
   87.13 + * License. You can obtain a copy of the License at
   87.14 + * http://www.netbeans.org/cddl-gplv2.html
   87.15 + * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
   87.16 + * specific language governing permissions and limitations under the
   87.17 + * License.  When distributing the software, include this License Header
   87.18 + * Notice in each file and include the License file at
   87.19 + * nbbuild/licenses/CDDL-GPL-2-CP.  Sun designates this
   87.20 + * particular file as subject to the "Classpath" exception as provided
   87.21 + * by Sun in the GPL Version 2 section of the License file that
   87.22 + * accompanied this code. If applicable, add the following below the
   87.23 + * License Header, with the fields enclosed by brackets [] replaced by
   87.24 + * your own identifying information:
   87.25 + * "Portions Copyrighted [year] [name of copyright owner]"
   87.26 + *
   87.27 + * If you wish your version of this file to be governed by only the CDDL
   87.28 + * or only the GPL Version 2, indicate your decision by adding
   87.29 + * "[Contributor] elects to include this software in this distribution
   87.30 + * under the [CDDL or GPL Version 2] license." If you do not indicate a
   87.31 + * single choice of license, a recipient has the option to distribute
   87.32 + * your version of this file under either the CDDL, the GPL Version 2 or
   87.33 + * to extend the choice of license to its licensees as provided above.
   87.34 + * However, if you add GPL Version 2 code and therefore, elected the GPL
   87.35 + * Version 2 license, then the option applies only if the new code is
   87.36 + * made subject to such option by the copyright holder.
   87.37 + *
   87.38 + * Contributor(s):
   87.39 + *
   87.40 + * Portions Copyrighted 2008 Sun Microsystems, Inc.
   87.41 + */
   87.42 +
   87.43 +package org.netbeans.modules.ada.editor.parser;
   87.44 +
   87.45 +import java.util.ArrayList;
   87.46 +import java.util.Arrays;
   87.47 +import java.util.List;
   87.48 +import java.util.logging.Level;
   87.49 +import java.util.logging.Logger;
   87.50 +import java_cup.runtime.Symbol;
   87.51 +import org.netbeans.modules.ada.editor.parser.AdaParser.Context;
   87.52 +import org.netbeans.modules.ada.editor.ast.ASTError;
   87.53 +import org.netbeans.modules.ada.editor.ast.ASTNode;
   87.54 +import org.netbeans.modules.ada.editor.ast.nodes.Program;
   87.55 +import org.netbeans.modules.csl.api.Severity;
   87.56 +import org.openide.util.NbBundle;
   87.57 +import org.netbeans.modules.csl.api.Error;
   87.58 +
   87.59 +/**
   87.60 + * Based on org.netbeans.modules.php.editor.parser.PHP5ErrorHandler
   87.61 + *
   87.62 + * @author Andrea Lucarelli
   87.63 + */
   87.64 +public class AdaErrorHandler implements ParserErrorHandler {
   87.65 +
   87.66 +    private static final Logger LOGGER = Logger.getLogger(AdaErrorHandler.class.getName());
   87.67 +    
   87.68 +    public static class SyntaxError {
   87.69 +        private final short[] expectedTokens;
   87.70 +        private final Symbol currentToken;
   87.71 +        private final Symbol previousToken;
   87.72 +
   87.73 +        public SyntaxError(short[] expectedTokens, Symbol currentToken, Symbol previousToken) {
   87.74 +            this.expectedTokens = expectedTokens;
   87.75 +            this.currentToken = currentToken;
   87.76 +            this.previousToken = previousToken;
   87.77 +        }
   87.78 +
   87.79 +        public Symbol getCurrentToken() {
   87.80 +            return currentToken;
   87.81 +        }
   87.82 +
   87.83 +        public Symbol getPreviousToken() {
   87.84 +            return previousToken;
   87.85 +        }
   87.86 +
   87.87 +        public short[] getExpectedTokens() {
   87.88 +            return expectedTokens;
   87.89 +        }
   87.90 +    }
   87.91 +    
   87.92 +    private final List<SyntaxError> syntaxErrors;
   87.93 +
   87.94 +    private final Context context;
   87.95 +    AdaParser outer;
   87.96 +
   87.97 +    public AdaErrorHandler(Context context, AdaParser outer) {
   87.98 +        super();
   87.99 +        this.outer = outer;
  87.100 +        this.context = context;
  87.101 +        syntaxErrors = new ArrayList<SyntaxError>();
  87.102 +        //LOGGER.setLevel(Level.FINE);
  87.103 +    }
  87.104 +
  87.105 +    @Override
  87.106 +    public void handleError(Type type, short[] expectedtokens, Symbol current, Symbol previous) {
  87.107 +        Error error;
  87.108 +        if (type == ParserErrorHandler.Type.SYNTAX_ERROR) {
  87.109 +            // logging syntax error
  87.110 +            if (LOGGER.isLoggable(Level.FINE)) {
  87.111 +                LOGGER.fine("Syntax error:"); //NOI18N
  87.112 +                LOGGER.log(Level.FINE, "Current [{0}, {1}]({2}): {3}", new Object[]{current.left, current.right, Utils.getASTScannerTokenName(current.sym), current.value}); //NOI18N
  87.113 +                LOGGER.log(Level.FINE, "Previous [{0}, {1}] ({2}):{3}", new Object[]{previous.left, previous.right, Utils.getASTScannerTokenName(previous.sym), previous.value}); //NOI18N
  87.114 +                StringBuilder message = new StringBuilder();
  87.115 +                message.append("Expected tokens:"); //NOI18N
  87.116 +                for (int i = 0; i < expectedtokens.length; i += 2) {
  87.117 +                    message.append(" ").append( Utils.getASTScannerTokenName(expectedtokens[i])); //NOI18N
  87.118 +                }
  87.119 +                LOGGER.fine(message.toString());
  87.120 +            }
  87.121 +            syntaxErrors.add(new SyntaxError(expectedtokens, current, previous));
  87.122 +        } else {
  87.123 +            String message = null;
  87.124 +            if (current != null) {
  87.125 +                String tagText = getTokenTextForm(current.sym);
  87.126 +                if (tagText != null) {
  87.127 +                    message = NbBundle.getMessage(AdaErrorHandler.class, "SE_Unexpected") + " " + tagText;
  87.128 +                }
  87.129 +                else {
  87.130 +                    message = NbBundle.getMessage(AdaErrorHandler.class, "SE_Unexpected") + " " + Utils.getASTScannerTokenName(current.sym);
  87.131 +                }
  87.132 +            }
  87.133 +            if (message == null) {
  87.134 +                message = "Parser error"; // NOI18N
  87.135 +            }
  87.136 +            error = new AdaError(message, context.getSnapshot().getSource().getFileObject(), current.left, current.right, Severity.ERROR, null);
  87.137 +            //context.getListener().error(error);
  87.138 +        }
  87.139 +    }
  87.140 +
  87.141 +    @Override
  87.142 +    public void handleError(Type type, Symbol symbol, String message) {
  87.143 +        Error error;
  87.144 +        if (symbol != null) {
  87.145 +            if (message == null) {
  87.146 +                message = "Parser error";
  87.147 +            }
  87.148 +            error = new AdaError(message,  context.getSnapshot().getSource().getFileObject(), symbol.left, symbol.right, Severity.ERROR, null);
  87.149 +            //TODO: context.getListener().error(error);
  87.150 +        }
  87.151 +    }
  87.152 +
  87.153 +    public List<Error> displayFatalError(){
  87.154 +        Error error = new FatalError();
  87.155 +        return Arrays.asList(error);
  87.156 +    }
  87.157 +    
  87.158 +    public List<Error>  displaySyntaxErrors(Program program) {
  87.159 +        List<Error> errors = new ArrayList<Error>();
  87.160 +        for (SyntaxError syntaxError : syntaxErrors) {
  87.161 +            ASTNode astError = null;
  87.162 +            if (program != null) {
  87.163 +                astError = org.netbeans.modules.ada.editor.ast.ASTUtils.getNodeAtOffset(program, syntaxError.currentToken.left);
  87.164 +                if (!(astError instanceof ASTError)) {
  87.165 +                    astError = org.netbeans.modules.ada.editor.ast.ASTUtils.getNodeAtOffset(program, syntaxError.previousToken.right);
  87.166 +                    if (!(astError instanceof ASTError)) {
  87.167 +                        astError = null;
  87.168 +                    }
  87.169 +                }
  87.170 +                if (astError != null) {
  87.171 +                    LOGGER.log(Level.FINE, "ASTError [{0}, {1}]", new Object[]{astError.getStartOffset(), astError.getEndOffset()}); //NOI18N
  87.172 +                } else {
  87.173 +                    LOGGER.fine("ASTError was not found");  //NOI18N
  87.174 +                }
  87.175 +            }
  87.176 +            Error error = defaultSyntaxErrorHandling(syntaxError, astError);
  87.177 +            errors.add(error);
  87.178 +        }
  87.179 +        return errors;
  87.180 +    }
  87.181 +    
  87.182 +    // This is just defualt handling. We can do a logic, which will find metter 
  87.183 +    private Error defaultSyntaxErrorHandling(SyntaxError syntaxError, ASTNode astError) {
  87.184 +        Error error = null;
  87.185 +        String unexpectedText = "";     //NOI18N
  87.186 +        StringBuilder message = new StringBuilder();
  87.187 +        boolean isUnexpected = false;
  87.188 +        int start  = syntaxError.getCurrentToken().left;
  87.189 +        int end = syntaxError.getCurrentToken().right;
  87.190 +        
  87.191 +        if (syntaxError.getCurrentToken().sym == AdaASTSymbols.EOF) {
  87.192 +            isUnexpected = true;
  87.193 +            unexpectedText = NbBundle.getMessage(AdaErrorHandler.class, "SE_EOF");
  87.194 +            start = end - 1;
  87.195 +        }
  87.196 +        else {
  87.197 +            String currentText = (String)syntaxError.getCurrentToken().value;
  87.198 +            isUnexpected = currentText != null && currentText.trim().length() > 0;
  87.199 +            if (isUnexpected) {
  87.200 +                unexpectedText = currentText.trim();
  87.201 +                end = start + unexpectedText.length();
  87.202 +            }
  87.203 +        }
  87.204 +        
  87.205 +        List<String> possibleTags = new ArrayList<String>();
  87.206 +        for (int i = 0; i < syntaxError.getExpectedTokens().length; i += 2) {
  87.207 +            String text = getTokenTextForm(syntaxError.getExpectedTokens()[i]);
  87.208 +            if (text != null) {
  87.209 +                possibleTags.add(text);
  87.210 +            }
  87.211 +        }
  87.212 +
  87.213 +        message.append(NbBundle.getMessage(AdaErrorHandler.class, "SE_Message"));
  87.214 +        message.append(':'); //NOI18N
  87.215 +        if (isUnexpected) {
  87.216 +            message.append(' ').append(NbBundle.getMessage(AdaErrorHandler.class, "SE_Unexpected"));
  87.217 +            message.append(": "); //NOI18N
  87.218 +            message.append(unexpectedText);
  87.219 +        }
  87.220 +        if (possibleTags.size() > 0) {
  87.221 +            message.append('\n').append(NbBundle.getMessage(AdaErrorHandler.class, "SE_Expected"));
  87.222 +            message.append(": "); //NOI18N
  87.223 +            boolean addOR = false;
  87.224 +            for (String tag : possibleTags) {
  87.225 +                if (addOR) {
  87.226 +                    message.append(" ").append(NbBundle.getMessage(AdaErrorHandler.class, "SE_Or")).append(" ");
  87.227 +                }
  87.228 +                else {
  87.229 +                    addOR = true;
  87.230 +                }
  87.231 +                
  87.232 +                message.append(tag);
  87.233 +            }
  87.234 +        }
  87.235 +
  87.236 +        if (astError != null){
  87.237 +            start = astError.getStartOffset();
  87.238 +            end = astError.getEndOffset();
  87.239 +            // if the asterror is trough two lines, the problem is ussually at the end
  87.240 +            String text = context.getSource().substring(start, end);
  87.241 +            int lastNewLine = text.length()-1;
  87.242 +            while (text.charAt(lastNewLine) == '\n' || text.charAt(lastNewLine) == '\r'
  87.243 +                    || text.charAt(lastNewLine) == '\t' || text.charAt(lastNewLine) == ' ') {
  87.244 +                lastNewLine--;
  87.245 +                if (lastNewLine < 0) {
  87.246 +                    break;
  87.247 +                }
  87.248 +            }
  87.249 +            lastNewLine = text.lastIndexOf('\n', lastNewLine);   //NOI18N
  87.250 +            if (lastNewLine > 0) {
  87.251 +                start = start + lastNewLine + 1;
  87.252 +            }
  87.253 +        }
  87.254 +        error = new AdaError(message.toString(), context.getSnapshot().getSource().getFileObject(), start, end, Severity.ERROR, new Object[]{syntaxError});
  87.255 +        return error;
  87.256 +    }
  87.257 +
  87.258 +    public List<SyntaxError> getSyntaxErrors() {
  87.259 +        return syntaxErrors;
  87.260 +    }
  87.261 +
  87.262 +    private String getTokenTextForm (int token) {
  87.263 +        String text = null;
  87.264 +        switch (token) {
  87.265 +            case AdaASTSymbols.BASED_LITERAL : text = "number"; break; //NOI18N
  87.266 +            case AdaASTSymbols.DECIMAL_LITERAL : text = "number"; break; //NOI18N
  87.267 +            case AdaASTSymbols.IDENTIFIER : text = "identifier"; break; //NOI18N
  87.268 +            case AdaASTSymbols.ABORT : text = "abort"; break; //NOI18N
  87.269 +            case AdaASTSymbols.ABS : text = "abs"; break; //NOI18N
  87.270 +            case AdaASTSymbols.ABSTRACT : text = "abstract"; break; //NOI18N
  87.271 +            case AdaASTSymbols.ACCESS : text = "access"; break; //NOI18N
  87.272 +            case AdaASTSymbols.ACCEPT : text = "access"; break; //NOI18N
  87.273 +            case AdaASTSymbols.ALIASED : text = "aliased"; break; //NOI18N
  87.274 +            case AdaASTSymbols.ALL : text = "all"; break; //NOI18N
  87.275 +            case AdaASTSymbols.AND : text = "and"; break; //NOI18N
  87.276 +            case AdaASTSymbols.ARRAY : text = "array"; break; //NOI18N
  87.277 +            case AdaASTSymbols.AT : text = "at"; break; //NOI18N
  87.278 +            case AdaASTSymbols.BEGIN : text = "begin"; break; //NOI18N
  87.279 +            case AdaASTSymbols.BODY : text = "body"; break; //NOI18N
  87.280 +            case AdaASTSymbols.CONSTANT : text = "constant"; break; //NOI18N
  87.281 +            case AdaASTSymbols.CASE : text = "case"; break; //NOI18N
  87.282 +            case AdaASTSymbols.DECLARE : text = "declare"; break; //NOI18N
  87.283 +            case AdaASTSymbols.DELAY : text = "delay"; break; //NOI18N
  87.284 +            case AdaASTSymbols.DELTA : text = "delta"; break; //NOI18N
  87.285 +            case AdaASTSymbols.DIGITS : text = "digits"; break; //NOI18N
  87.286 +            case AdaASTSymbols.DO : text = "do"; break; //NOI18N
  87.287 +            case AdaASTSymbols.ELSE : text = "else"; break; //NOI18N
  87.288 +            case AdaASTSymbols.ELSIF : text = "elsif"; break; //NOI18N
  87.289 +            case AdaASTSymbols.END : text = "end"; break; //NOI18N
  87.290 +            case AdaASTSymbols.ENTRY : text = "entry"; break; //NOI18N
  87.291 +            case AdaASTSymbols.EXCEPTION : text = "exception"; break; //NOI18N
  87.292 +            case AdaASTSymbols.EXIT : text = "exit"; break; //NOI18N
  87.293 +            case AdaASTSymbols.FOR : text = "for"; break; //NOI18N
  87.294 +            case AdaASTSymbols.FUNCTION : text = "function"; break; //NOI18N
  87.295 +            case AdaASTSymbols.GENERIC : text = "generic"; break; //NOI18N
  87.296 +            case AdaASTSymbols.GOTO : text = "goto"; break; //NOI18N
  87.297 +            case AdaASTSymbols.IF : text = "if"; break; //NOI18N
  87.298 +            case AdaASTSymbols.IN : text = "in"; break; //NOI18N
  87.299 +            case AdaASTSymbols.IS : text = "is"; break; //NOI18N
  87.300 +            case AdaASTSymbols.LIMITED : text = "limited"; break; //NOI18N
  87.301 +            case AdaASTSymbols.LOOP : text = "loop"; break; //NOI18N
  87.302 +            case AdaASTSymbols.MOD : text = "mod"; break; //NOI18N
  87.303 +            case AdaASTSymbols.NEW : text = "new"; break; //NOI18N
  87.304 +            case AdaASTSymbols.NOT : text = "not"; break; //NOI18N
  87.305 +            case AdaASTSymbols.NULL : text = "null"; break; //NOI18N
  87.306 +            case AdaASTSymbols.OF : text = "of"; break; //NOI18N
  87.307 +            case AdaASTSymbols.OR : text = "or"; break; //NOI18N
  87.308 +            case AdaASTSymbols.OTHERS : text = "others"; break; //NOI18N
  87.309 +            case AdaASTSymbols.OUT : text = "out"; break; //NOI18N
  87.310 +            case AdaASTSymbols.PACKAGE : text = "package"; break; //NOI18N
  87.311 +            case AdaASTSymbols.PRAGMA : text = "pragma"; break; //NOI18N
  87.312 +            case AdaASTSymbols.PRIVATE : text = "private"; break; //NOI18N
  87.313 +            case AdaASTSymbols.PROCEDURE : text = "procedure"; break; //NOI18N
  87.314 +            case AdaASTSymbols.PROTECTED : text = "protected"; break; //NOI18N
  87.315 +            case AdaASTSymbols.RETURN : text = "return"; break; //NOI18N
  87.316 +            case AdaASTSymbols.REVERSE : text = "reverse"; break; //NOI18N
  87.317 +            case AdaASTSymbols.RAISE : text = "raise"; break; //NOI18N
  87.318 +            case AdaASTSymbols.RANGE : text = "range"; break; //NOI18N
  87.319 +            case AdaASTSymbols.RECORD : text = "record"; break; //NOI18N
  87.320 +            case AdaASTSymbols.REM : text = "rem"; break; //NOI18N
  87.321 +            case AdaASTSymbols.RENAMES : text = "renames"; break; //NOI18N
  87.322 +            case AdaASTSymbols.REQUEUE : text = "requeue"; break; //NOI18N
  87.323 +            case AdaASTSymbols.SELECT : text = "select"; break; //NOI18N
  87.324 +            case AdaASTSymbols.SEPARATE : text = "separate"; break; //NOI18N
  87.325 +            case AdaASTSymbols.SUBTYPE : text = "subtype"; break; //NOI18N
  87.326 +            case AdaASTSymbols.TAGGED : text = "tagged"; break; //NOI18N
  87.327 +            case AdaASTSymbols.TASK : text = "task"; break; //NOI18N
  87.328 +            case AdaASTSymbols.TERMINATE : text = "terminate"; break; //NOI18N
  87.329 +            case AdaASTSymbols.THEN : text = "then"; break; //NOI18N
  87.330 +            case AdaASTSymbols.TYPE : text = "type"; break; //NOI18N
  87.331 +            case AdaASTSymbols.UNTIL : text = "until"; break; //NOI18N
  87.332 +            case AdaASTSymbols.USE : text = "use"; break; //NOI18N
  87.333 +            case AdaASTSymbols.WHEN : text = "when"; break; //NOI18N
  87.334 +            case AdaASTSymbols.WHILE : text = "while"; break; //NOI18N
  87.335 +            case AdaASTSymbols.WITH : text = "with"; break; //NOI18N
  87.336 +            case AdaASTSymbols.XOR : text = "xor"; break; //NOI18N
  87.337 +            case AdaASTSymbols.AMP : text = "&"; break; //NOI18N
  87.338 +            case AdaASTSymbols.TICK : text = "'"; break; //NOI18N
  87.339 +            case AdaASTSymbols.LPAREN : text = "("; break; //NOI18N
  87.340 +            case AdaASTSymbols.RPAREN : text = ")"; break; //NOI18N
  87.341 +            case AdaASTSymbols.STAR : text = "*"; break; //NOI18N
  87.342 +            case AdaASTSymbols.PLUS : text = "+"; break; //NOI18N
  87.343 +            case AdaASTSymbols.COMMA : text = ","; break; //NOI18N
  87.344 +            case AdaASTSymbols.MINUS : text = "-"; break; //NOI18N
  87.345 +            case AdaASTSymbols.DOT : text = "."; break; //NOI18N
  87.346 +            case AdaASTSymbols.SLASH : text = "/"; break; //NOI18N
  87.347 +            case AdaASTSymbols.COLON : text = ":"; break; //NOI18N
  87.348 +            case AdaASTSymbols.SEMICOLON : text = ";"; break; //NOI18N
  87.349 +            case AdaASTSymbols.GT : text = "<"; break; //NOI18N
  87.350 +            case AdaASTSymbols.EQ : text = "="; break; //NOI18N
  87.351 +            case AdaASTSymbols.LT : text = ">"; break; //NOI18N
  87.352 +            case AdaASTSymbols.BAR : text = "|"; break; //NOI18N
  87.353 +            case AdaASTSymbols.ARROW : text = "=>"; break; //NOI18N
  87.354 +            case AdaASTSymbols.DOT_DOT : text = ".."; break; //NOI18N
  87.355 +            case AdaASTSymbols.EXPON : text = "**"; break; //NOI18N
  87.356 +            case AdaASTSymbols.ASSIGNMENT : text = ":="; break; //NOI18N
  87.357 +            case AdaASTSymbols.INEQ : text = "/="; break; //NOI18N
  87.358 +            case AdaASTSymbols.GTEQ : text = ">="; break; //NOI18N
  87.359 +            case AdaASTSymbols.LTEQ : text = "<="; break; //NOI18N
  87.360 +            case AdaASTSymbols.LTLT : text = "<<"; break; //NOI18N
  87.361 +            case AdaASTSymbols.GTGT : text = ">>"; break; //NOI18N
  87.362 +            case AdaASTSymbols.BOX : text = "<>"; break; //NOI18N
  87.363 +        }
  87.364 +        return text;
  87.365 +    }
  87.366 +
  87.367 +    private class FatalError extends AdaError{
  87.368 +        FatalError(){
  87.369 +            super(NbBundle.getMessage(AdaErrorHandler.class, "MSG_FatalError"),
  87.370 +                context.getSnapshot().getSource().getFileObject(),
  87.371 +                0, context.getSource().length(),
  87.372 +                Severity.ERROR, null);
  87.373 +        }
  87.374 +
  87.375 +        @Override
  87.376 +        public boolean isLineError() {
  87.377 +            return false;
  87.378 +        }
  87.379 +    }
  87.380 +}
    88.1 --- a/ada.editor/src/org/netbeans/modules/ada/editor/parser/AdaParser.java	Tue Oct 02 21:55:21 2012 -0400
    88.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/parser/AdaParser.java	Mon Oct 15 23:38:26 2012 +0200
    88.3 @@ -38,6 +38,8 @@
    88.4   */
    88.5  package org.netbeans.modules.ada.editor.parser;
    88.6  
    88.7 +import java.beans.PropertyChangeEvent;
    88.8 +import java.beans.PropertyChangeListener;
    88.9  import java.io.IOException;
   88.10  import java.io.StringReader;
   88.11  import java.util.ArrayList;
   88.12 @@ -47,12 +49,15 @@
   88.13  import java.util.logging.Logger;
   88.14  import java_cup.runtime.Symbol;
   88.15  import javax.swing.event.ChangeListener;
   88.16 -import org.netbeans.modules.ada.editor.lexer.Ada95ASTLexer;
   88.17 +import org.netbeans.modules.ada.editor.lexer.AdaASTLexer;
   88.18  import org.netbeans.modules.ada.editor.ast.ASTError;
   88.19  import org.netbeans.modules.ada.editor.ast.nodes.Comment;
   88.20  import org.netbeans.modules.ada.editor.ast.nodes.NullStatement;
   88.21  import org.netbeans.modules.ada.editor.ast.nodes.Program;
   88.22  import org.netbeans.modules.ada.editor.ast.nodes.Statement;
   88.23 +import org.netbeans.modules.ada.project.api.AdaLanguageOptions;
   88.24 +import org.netbeans.modules.ada.project.api.AdaLanguageOptions.AdaVersion;
   88.25 +import org.netbeans.modules.ada.project.api.AdaLanguageOptions.Properties;
   88.26  import org.netbeans.modules.csl.api.OffsetRange;
   88.27  import org.netbeans.modules.csl.spi.GsfUtilities;
   88.28  import org.netbeans.modules.csl.spi.ParserResult;
   88.29 @@ -62,36 +67,71 @@
   88.30  import org.netbeans.modules.parsing.api.Task;
   88.31  import org.netbeans.modules.parsing.spi.SourceModificationEvent;
   88.32  import org.openide.filesystems.FileObject;
   88.33 +import org.openide.util.ChangeSupport;
   88.34 +import org.openide.util.WeakListeners;
   88.35  
   88.36  /**
   88.37   * Based on org.netbeans.modules.php.editor.parser.GSFPHPParser
   88.38   * 
   88.39   * @author Andrea Lucarelli
   88.40   */
   88.41 -public class AdaParser extends Parser {
   88.42 +public class AdaParser extends Parser implements PropertyChangeListener {
   88.43  
   88.44  //    private PositionManager positionManager = null;
   88.45      private static final Logger LOGGER = Logger.getLogger(AdaParser.class.getName());
   88.46  
   88.47      private ParserResult result = null;
   88.48 +    private ChangeSupport changeSupport = new ChangeSupport(this);
   88.49 +    private boolean projectPropertiesListenerAdded = false;
   88.50 +    private AdaVersion adaVersion;
   88.51  
   88.52 +    @Override
   88.53 +    public Result getResult(Task task) throws ParseException {
   88.54 +        return result;
   88.55 +    }
   88.56 +
   88.57 +    @Override
   88.58 +    public void cancel() {
   88.59 +        // TODO
   88.60 +    }
   88.61 +
   88.62 +    @Override
   88.63 +    public void addChangeListener(ChangeListener changeListener) {
   88.64 +        changeSupport.addChangeListener(changeListener);
   88.65 +    }
   88.66 +
   88.67 +    @Override
   88.68 +    public void removeChangeListener(ChangeListener changeListener) {
   88.69 +        changeSupport.removeChangeListener(changeListener);
   88.70 +    }
   88.71 +
   88.72 +    @Override
   88.73      public void parse(Snapshot snapshot, Task task, SourceModificationEvent event) throws ParseException {
   88.74          FileObject file = snapshot.getSource().getFileObject();
   88.75 -        LOGGER.fine("parseFiles " + file);
   88.76 +        LOGGER.log(Level.FINE, "parseFiles {0}", file);
   88.77  //        ParseListener listener = request.listener;
   88.78  
   88.79  //        ParseEvent beginEvent = new ParseEvent(ParseEvent.Kind.PARSE, file, null);
   88.80  //        request.listener.started(beginEvent);
   88.81 +        Properties languageProperties = AdaLanguageOptions.getDefault().getProperties(file);
   88.82 +
   88.83 +        if (!projectPropertiesListenerAdded){
   88.84 +            PropertyChangeListener weakListener = WeakListeners.propertyChange(this, languageProperties);
   88.85 +            AdaLanguageOptions.getDefault().addPropertyChangeListener(weakListener);
   88.86 +            projectPropertiesListenerAdded = true;
   88.87 +        }
   88.88 +
   88.89 +        adaVersion = languageProperties.getAdaVersion();
   88.90          int end = 0;
   88.91          try {
   88.92              String source = snapshot.getText().toString();
   88.93              end = source.length();
   88.94              int caretOffset = GsfUtilities.getLastKnownCaretOffset(snapshot, event);
   88.95 -            LOGGER.fine("caretOffset: " + caretOffset); //NOI18N
   88.96 +            LOGGER.log(Level.FINE, "caretOffset: {0}", caretOffset); //NOI18N
   88.97              Context context = new Context(snapshot, source, caretOffset);
   88.98              result = parseBuffer(context, Sanitize.NONE, null);
   88.99          } catch (Exception exception) {
  88.100 -            LOGGER.fine ("Exception during parsing: " + exception);
  88.101 +            LOGGER.log (Level.FINE, "Exception during parsing: {0}", exception);
  88.102              ASTError error = new ASTError(0, end);
  88.103              List<Statement> statements = new ArrayList<Statement>();
  88.104              statements.add(error);
  88.105 @@ -101,11 +141,11 @@
  88.106  
  88.107      }
  88.108  
  88.109 -    protected AdaParseResult parseBuffer(final Context context, final Sanitize sanitizing, Ada95ErrorHandler errorHandler) throws Exception {
  88.110 +    protected AdaParseResult parseBuffer(final Context context, final Sanitize sanitizing, AdaErrorHandler errorHandler) throws Exception {
  88.111          boolean sanitizedSource = false;
  88.112          String source = context.source;
  88.113          if (errorHandler == null) {
  88.114 -            errorHandler = new Ada95ErrorHandler(context, this);
  88.115 +            errorHandler = new AdaErrorHandler(context, this);
  88.116          }
  88.117          if (!((sanitizing == Sanitize.NONE) || (sanitizing == Sanitize.NEVER))) {
  88.118              boolean ok = sanitizeSource(context, sanitizing, errorHandler);
  88.119 @@ -122,8 +162,8 @@
  88.120  
  88.121          AdaParseResult localResult;
  88.122          // calling the ada ast parser itself
  88.123 -        Ada95ASTLexer scanner = new Ada95ASTLexer(new StringReader(source));
  88.124 -        Ada95ASTParser parser = new Ada95ASTParser(scanner);
  88.125 +        AdaASTLexer scanner = new AdaASTLexer(new StringReader(source), adaVersion);
  88.126 +        AdaASTParser parser = new AdaASTParser(scanner);
  88.127  
  88.128          if (!sanitizedSource) {
  88.129              parser.setErrorHandler(errorHandler);
  88.130 @@ -151,7 +191,7 @@
  88.131                      localResult = sanitize(context, sanitizing, errorHandler);
  88.132                  }
  88.133              } else {
  88.134 -                LOGGER.fine("The parser value is not a Program: " + rootSymbol.value);
  88.135 +                LOGGER.log(Level.FINE, "The parser value is not a Program: {0}", rootSymbol.value);
  88.136                  localResult = sanitize(context, sanitizing, errorHandler);
  88.137              }
  88.138              //if (!sanitizedSource) {
  88.139 @@ -165,11 +205,11 @@
  88.140          return localResult;
  88.141      }
  88.142  
  88.143 -    private boolean sanitizeSource(Context context, Sanitize sanitizing, Ada95ErrorHandler errorHandler) {
  88.144 +    private boolean sanitizeSource(Context context, Sanitize sanitizing, AdaErrorHandler errorHandler) {
  88.145          if (sanitizing == Sanitize.SYNTAX_ERROR_CURRENT) {
  88.146 -            List<Ada95ErrorHandler.SyntaxError> syntaxErrors = errorHandler.getSyntaxErrors();
  88.147 +            List<AdaErrorHandler.SyntaxError> syntaxErrors = errorHandler.getSyntaxErrors();
  88.148              if (syntaxErrors.size() > 0) {
  88.149 -                Ada95ErrorHandler.SyntaxError error = syntaxErrors.get(0);
  88.150 +                AdaErrorHandler.SyntaxError error = syntaxErrors.get(0);
  88.151                  String source;
  88.152                  if (context.sanitized == Sanitize.NONE) {
  88.153                      source = context.source;
  88.154 @@ -186,9 +226,9 @@
  88.155              }
  88.156          }
  88.157          if (sanitizing == Sanitize.SYNTAX_ERROR_PREVIOUS) {
  88.158 -            List<Ada95ErrorHandler.SyntaxError> syntaxErrors = errorHandler.getSyntaxErrors();
  88.159 +            List<AdaErrorHandler.SyntaxError> syntaxErrors = errorHandler.getSyntaxErrors();
  88.160              if (syntaxErrors.size() > 0) {
  88.161 -                Ada95ErrorHandler.SyntaxError error = syntaxErrors.get(0);
  88.162 +                AdaErrorHandler.SyntaxError error = syntaxErrors.get(0);
  88.163                  String source = context.source;
  88.164  
  88.165                  int end = error.getPreviousToken().right;
  88.166 @@ -200,15 +240,15 @@
  88.167              }
  88.168          }
  88.169          if (sanitizing == Sanitize.SYNTAX_ERROR_PREVIOUS_LINE) {
  88.170 -            List<Ada95ErrorHandler.SyntaxError> syntaxErrors = errorHandler.getSyntaxErrors();
  88.171 +            List<AdaErrorHandler.SyntaxError> syntaxErrors = errorHandler.getSyntaxErrors();
  88.172              if (syntaxErrors.size() > 0) {
  88.173 -                Ada95ErrorHandler.SyntaxError error = syntaxErrors.get(0);
  88.174 +                AdaErrorHandler.SyntaxError error = syntaxErrors.get(0);
  88.175                  String source = context.source;
  88.176  
  88.177                  int end = Utils.getRowEnd(source, error.getPreviousToken().right);
  88.178                  int start = Utils.getRowStart(source, error.getPreviousToken().left);
  88.179  
  88.180 -                StringBuffer sb = new StringBuffer(end - start);
  88.181 +                StringBuilder sb = new StringBuilder(end - start);
  88.182                  for (int index = start; index < end; index++) {
  88.183                      if (source.charAt(index) == ' ' || source.charAt(index) == '\n' || source.charAt(index) == '\r') {
  88.184                          sb.append(source.charAt(index));
  88.185 @@ -245,9 +285,9 @@
  88.186              }
  88.187          }
  88.188          if (sanitizing == Sanitize.SYNTAX_ERROR_BLOCK) {
  88.189 -            List<Ada95ErrorHandler.SyntaxError> syntaxErrors = errorHandler.getSyntaxErrors();
  88.190 +            List<AdaErrorHandler.SyntaxError> syntaxErrors = errorHandler.getSyntaxErrors();
  88.191              if (syntaxErrors.size() > 0) {
  88.192 -                Ada95ErrorHandler.SyntaxError error = syntaxErrors.get(0);
  88.193 +                AdaErrorHandler.SyntaxError error = syntaxErrors.get(0);
  88.194                  return sanitizeRemoveBlock(context, error.getCurrentToken().left);
  88.195              }
  88.196          }
  88.197 @@ -256,13 +296,13 @@
  88.198  
  88.199      private boolean sanitizeRemoveBlock(Context context, int index) {
  88.200          String source = context.getSource();
  88.201 -        Ada95ASTLexer scanner = new Ada95ASTLexer(new StringReader(source));
  88.202 +        AdaASTLexer lexer = new AdaASTLexer(new StringReader(source), adaVersion);
  88.203          Symbol token = null;
  88.204          int start = -1;
  88.205          int end = -1;
  88.206          try {
  88.207 -            token = scanner.next_token();
  88.208 -            while (token.sym != Ada95ASTSymbols.EOF && end == -1) {
  88.209 +            token = lexer.next_token();
  88.210 +            while (token.sym != AdaASTSymbols.EOF && end == -1) {
  88.211                  /*
  88.212                  if (token.sym == Ada95ASTSymbols.T_CURLY_OPEN && token.left <= index) {
  88.213                  start = token.right;
  88.214 @@ -271,7 +311,7 @@
  88.215                  end = token.right - 1;
  88.216                  }
  88.217                   */
  88.218 -                token = scanner.next_token();
  88.219 +                token = lexer.next_token();
  88.220              }
  88.221          } catch (IOException exception) {
  88.222              LOGGER.log(Level.INFO, "Exception during removing block", exception);   //NOI18N
  88.223 @@ -284,7 +324,7 @@
  88.224          return false;
  88.225      }
  88.226  
  88.227 -    private AdaParseResult sanitize(final Context context, final Sanitize sanitizing, Ada95ErrorHandler errorHandler) throws Exception {
  88.228 +    private AdaParseResult sanitize(final Context context, final Sanitize sanitizing, AdaErrorHandler errorHandler) throws Exception {
  88.229  
  88.230          switch (sanitizing) {
  88.231              case NONE:
  88.232 @@ -321,23 +361,14 @@
  88.233      }
  88.234  
  88.235      @Override
  88.236 -    public Result getResult(Task task) throws ParseException {
  88.237 -        return result;
  88.238 +    public void propertyChange(PropertyChangeEvent evt) {
  88.239 +        if (AdaLanguageOptions.PROP_ADA_VERSION.equals(evt.getPropertyName())){
  88.240 +            forceReparsing();
  88.241 +        }
  88.242      }
  88.243  
  88.244 -    @Override
  88.245 -    public void cancel() {
  88.246 -        // TODO
  88.247 -    }
  88.248 -
  88.249 -    @Override
  88.250 -    public void addChangeListener(ChangeListener changeListener) {
  88.251 -        // TODO
  88.252 -    }
  88.253 -
  88.254 -    @Override
  88.255 -    public void removeChangeListener(ChangeListener changeListener) {
  88.256 -        // TODO
  88.257 +    private void forceReparsing(){
  88.258 +        changeSupport.fireChange();
  88.259      }
  88.260  
  88.261  
    89.1 --- a/ada.editor/src/org/netbeans/modules/ada/editor/parser/AdaSemanticAnalyzer.java	Tue Oct 02 21:55:21 2012 -0400
    89.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/parser/AdaSemanticAnalyzer.java	Mon Oct 15 23:38:26 2012 +0200
    89.3 @@ -44,6 +44,8 @@
    89.4  import java.util.List;
    89.5  import java.util.Map;
    89.6  import java.util.Set;
    89.7 +import java.util.logging.Level;
    89.8 +import java.util.logging.Logger;
    89.9  import org.netbeans.modules.ada.editor.ast.ASTNode;
   89.10  import org.netbeans.modules.ada.editor.ast.nodes.Block;
   89.11  import org.netbeans.modules.ada.editor.ast.nodes.BodyDeclaration.Modifier;
   89.12 @@ -53,6 +55,7 @@
   89.13  import org.netbeans.modules.ada.editor.ast.nodes.PackageBody;
   89.14  import org.netbeans.modules.ada.editor.ast.nodes.PackageSpecification;
   89.15  import org.netbeans.modules.ada.editor.ast.nodes.TypeDeclaration;
   89.16 +import org.netbeans.modules.ada.editor.ast.nodes.TypeName;
   89.17  import org.netbeans.modules.ada.editor.ast.nodes.Variable;
   89.18  import org.netbeans.modules.ada.editor.ast.nodes.visitors.DefaultVisitor;
   89.19  import org.netbeans.modules.csl.api.ColoringAttributes;
   89.20 @@ -71,6 +74,8 @@
   89.21   */
   89.22  public class AdaSemanticAnalyzer extends SemanticAnalyzer {
   89.23  
   89.24 +    private static final Logger LOGGER = Logger.getLogger(AdaSemanticAnalyzer.class.getName());
   89.25 +
   89.26      public static final EnumSet<ColoringAttributes> UNUSED_FIELD_SET = EnumSet.of(ColoringAttributes.UNUSED, ColoringAttributes.FIELD);
   89.27      public static final EnumSet<ColoringAttributes> UNUSED_METHOD_SET = EnumSet.of(ColoringAttributes.UNUSED, ColoringAttributes.METHOD);
   89.28      private boolean cancelled;
   89.29 @@ -78,6 +83,7 @@
   89.30  
   89.31      public AdaSemanticAnalyzer() {
   89.32          semanticHighlights = null;
   89.33 +        LOGGER.setLevel(Level.FINE);
   89.34      }
   89.35  
   89.36      public Map<OffsetRange, Set<ColoringAttributes>> getHighlights() {
   89.37 @@ -202,32 +208,6 @@
   89.38          }
   89.39  
   89.40          @Override
   89.41 -        public void visit(MethodDeclaration method) {
   89.42 -            boolean isPrivate = Modifier.isPrivate(method.getModifier());
   89.43 -            EnumSet<ColoringAttributes> coloring = ColoringAttributes.METHOD_SET;
   89.44 -
   89.45 -            Identifier identifier = method.getSubrogramName();
   89.46 -            addOffsetRange(identifier, coloring);
   89.47 -            if (!method.isSpefication()) {
   89.48 -                Identifier nameEnd = method.getSubrogramNameEnd();
   89.49 -                addOffsetRange(nameEnd, coloring);
   89.50 -            }
   89.51 -
   89.52 -            if (method.getSubprogramBody() != null) {
   89.53 -                // don't scan the body now. It should be scanned after all declarations
   89.54 -                // are known
   89.55 -                Block declarations = method.getSubprogramBody().getDeclarations();
   89.56 -                if (declarations != null) {
   89.57 -                    needToScan.add(declarations);
   89.58 -                }
   89.59 -                Block body = method.getSubprogramBody().getBody();
   89.60 -                if (body != null) {
   89.61 -                    needToScan.add(body);
   89.62 -                }
   89.63 -            }
   89.64 -        }
   89.65 -
   89.66 -        @Override
   89.67          public void visit(PackageBody node) {
   89.68              if (isCancelled()) {
   89.69                  return;
   89.70 @@ -260,6 +240,59 @@
   89.71          }
   89.72  
   89.73          @Override
   89.74 +        public void visit(MethodDeclaration method) {
   89.75 +            if (isCancelled()) {
   89.76 +                return;
   89.77 +            }
   89.78 +
   89.79 +            boolean isPrivate = Modifier.isPrivate(method.getModifier());
   89.80 +            EnumSet<ColoringAttributes> coloring = ColoringAttributes.METHOD_SET;
   89.81 +
   89.82 +            Identifier identifier = method.getSubrogramName();
   89.83 +            addOffsetRange(identifier, coloring);
   89.84 +            if (!method.isSpefication()) {
   89.85 +                Identifier nameEnd = method.getSubrogramNameEnd();
   89.86 +                if (nameEnd != null) {
   89.87 +                    addOffsetRange(nameEnd, coloring);
   89.88 +                }
   89.89 +            }
   89.90 +
   89.91 +            if (method.getSubprogramBody() != null) {
   89.92 +                // don't scan the body now. It should be scanned after all declarations
   89.93 +                // are known
   89.94 +                Block declarations = method.getSubprogramBody().getDeclarations();
   89.95 +                if (declarations != null) {
   89.96 +                    declarations.accept(this);
   89.97 +                }
   89.98 +                Block body = method.getSubprogramBody().getBody();
   89.99 +                if (body != null) {
  89.100 +                    body.accept(this);
  89.101 +                }
  89.102 +            }
  89.103 +        }
  89.104 +
  89.105 +//        @Override
  89.106 +//        public void visit(BlockStatement block) {
  89.107 +//            System.out.println("BlockStatement");
  89.108 +//            if (block.getLabel() != null) {
  89.109 +//                EnumSet<ColoringAttributes> coloring = ColoringAttributes.METHOD_SET;
  89.110 +//                Identifier identifier = block.getLabel();
  89.111 +//                addOffsetRange(identifier, coloring);
  89.112 +//            }
  89.113 +//
  89.114 +//            // don't scan the body now. It should be scanned after all declarations
  89.115 +//            // are known
  89.116 +//            Block declarations = block.getDeclarations();
  89.117 +//            if (declarations != null) {
  89.118 +//                needToScan.add(declarations);
  89.119 +//            }
  89.120 +//            Block body = block.getBody();
  89.121 +//            if (body != null) {
  89.122 +//                needToScan.add(body);
  89.123 +//            }
  89.124 +//        }
  89.125 +
  89.126 +        @Override
  89.127          public void visit(FieldsDeclaration node) {
  89.128              if (isCancelled()) {
  89.129                  return;
  89.130 @@ -275,10 +308,14 @@
  89.131                      addOffsetRange(variable.getName(), ColoringAttributes.FIELD_SET);
  89.132                  } else {
  89.133                      if (variable.getName() instanceof Identifier) {
  89.134 -                        Identifier identifier = (Identifier) variable.getName();
  89.135 +                        Identifier identifier = variable.getName();
  89.136                          privateFieldsUsed.put(identifier.getName(), new IdentifierColoring(identifier, coloring));
  89.137                      }
  89.138                  }
  89.139 +                if (variable.getVariableType() != null) {
  89.140 +                    TypeName typeName = variable.getVariableType();
  89.141 +                    typeName.accept(this);
  89.142 +                }
  89.143              }
  89.144          }
  89.145  
  89.146 @@ -298,5 +335,27 @@
  89.147                  privateFieldsUsed.put(id.getName(), new IdentifierColoring(id, coloring));
  89.148              }
  89.149          }
  89.150 +
  89.151 +        @Override
  89.152 +        public void visit(Variable node) {
  89.153 +            if (isCancelled()) {
  89.154 +                return;
  89.155 +            }
  89.156 +
  89.157 +            Identifier id = node.getName();
  89.158 +            addOffsetRange(id, ColoringAttributes.FIELD_SET);
  89.159 +        }
  89.160 +
  89.161 +        @Override
  89.162 +        public void visit(TypeName node) {
  89.163 +            if (isCancelled()) {
  89.164 +                return;
  89.165 +            }
  89.166 +
  89.167 +            if (node.isIsBaseType() == false) {
  89.168 +                Identifier id = node.getTypeName();
  89.169 +                addOffsetRange(id, ColoringAttributes.FIELD_SET);
  89.170 +            }
  89.171 +        }
  89.172      }
  89.173  }
    90.1 --- a/ada.editor/src/org/netbeans/modules/ada/editor/parser/AdaStructureScanner.java	Tue Oct 02 21:55:21 2012 -0400
    90.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/parser/AdaStructureScanner.java	Mon Oct 15 23:38:26 2012 +0200
    90.3 @@ -50,9 +50,11 @@
    90.4  import java.util.logging.Logger;
    90.5  import javax.swing.ImageIcon;
    90.6  import javax.swing.text.Document;
    90.7 +import org.netbeans.modules.ada.editor.CodeUtils;
    90.8  import org.netbeans.modules.ada.editor.ast.ASTError;
    90.9  import org.netbeans.modules.ada.editor.ast.ASTUtils;
   90.10  import org.netbeans.modules.ada.editor.ast.nodes.Block;
   90.11 +import org.netbeans.modules.ada.editor.ast.nodes.BlockStatement;
   90.12  import org.netbeans.modules.ada.editor.ast.nodes.Comment;
   90.13  import org.netbeans.modules.ada.editor.ast.nodes.Expression;
   90.14  import org.netbeans.modules.ada.editor.ast.nodes.FieldsDeclaration;
   90.15 @@ -62,7 +64,9 @@
   90.16  import org.netbeans.modules.ada.editor.ast.nodes.PackageSpecification;
   90.17  import org.netbeans.modules.ada.editor.ast.nodes.SubprogramBody;
   90.18  import org.netbeans.modules.ada.editor.ast.nodes.SubprogramSpecification;
   90.19 +import org.netbeans.modules.ada.editor.ast.nodes.TypeAccess;
   90.20  import org.netbeans.modules.ada.editor.ast.nodes.TypeDeclaration;
   90.21 +import org.netbeans.modules.ada.editor.ast.nodes.TypeName;
   90.22  import org.netbeans.modules.ada.editor.ast.nodes.Variable;
   90.23  import org.netbeans.modules.ada.editor.ast.nodes.visitors.DefaultVisitor;
   90.24  import org.netbeans.modules.ada.editor.parser.AdaElementHandle.SubprogramSpecificationHandle;
   90.25 @@ -402,7 +406,7 @@
   90.26                      }
   90.27                      String type = null;
   90.28                      if (formalParameter.getParameterType() != null) {
   90.29 -                        type = formalParameter.getParameterType().getTypeName().getName();
   90.30 +                        type = CodeUtils.extractTypeName(formalParameter.getParameterType());
   90.31                      }
   90.32                      if (name != null) {
   90.33                          if (!first) {
   90.34 @@ -469,7 +473,7 @@
   90.35                      }
   90.36                      String type = null;
   90.37                      if (formalParameter.getParameterType() != null) {
   90.38 -                        type = formalParameter.getParameterType().getTypeName().getName();
   90.39 +                        type = CodeUtils.extractTypeName(formalParameter.getParameterType());
   90.40                      }
   90.41                      if (name != null) {
   90.42                          if (!first) {
   90.43 @@ -690,6 +694,20 @@
   90.44          }
   90.45  
   90.46          @Override
   90.47 +        public void visit(BlockStatement block) {
   90.48 +            if (foldType != null) {
   90.49 +                getRanges(folds, foldType).add(createOffsetRange(block));
   90.50 +                foldType = null;
   90.51 +            }
   90.52 +            if (block.getDeclarations() != null) {
   90.53 +                scan(block.getDeclarations());
   90.54 +            }
   90.55 +            if (block.getBody() != null) {
   90.56 +                scan(block.getBody());
   90.57 +            }
   90.58 +        }
   90.59 +
   90.60 +        @Override
   90.61          public void visit(SubprogramBody subprog) {
   90.62              foldType = FOLD_CODE_BLOCKS;
   90.63              if (subprog.getDeclarations() != null) {
    91.1 --- a/ada.editor/src/org/netbeans/modules/ada/editor/parser/Utils.java	Tue Oct 02 21:55:21 2012 -0400
    91.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/parser/Utils.java	Mon Oct 15 23:38:26 2012 +0200
    91.3 @@ -55,280 +55,280 @@
    91.4      public static String getASTScannerTokenName(int id) {
    91.5          String name;
    91.6          switch (id) {
    91.7 -            case Ada95ASTSymbols.REVERSE:
    91.8 +            case AdaASTSymbols.REVERSE:
    91.9                  name = "REVERSE";
   91.10                  break;
   91.11 -            case Ada95ASTSymbols.PROCEDURE:
   91.12 +            case AdaASTSymbols.PROCEDURE:
   91.13                  name = "PROCEDURE";
   91.14                  break;
   91.15 -            case Ada95ASTSymbols.OF:
   91.16 +            case AdaASTSymbols.OF:
   91.17                  name = "OF";
   91.18                  break;
   91.19 -            case Ada95ASTSymbols.ABORT:
   91.20 +            case AdaASTSymbols.ABORT:
   91.21                  name = "ABORT";
   91.22                  break;
   91.23 -            case Ada95ASTSymbols.AMP:
   91.24 +            case AdaASTSymbols.AMP:
   91.25                  name = "AMP";
   91.26                  break;
   91.27 -            case Ada95ASTSymbols.SEMICOLON:
   91.28 +            case AdaASTSymbols.SEMICOLON:
   91.29                  name = "SEMICOLON";
   91.30                  break;
   91.31 -            case Ada95ASTSymbols.CASE:
   91.32 +            case AdaASTSymbols.CASE:
   91.33                  name = "CASE";
   91.34                  break;
   91.35 -            case Ada95ASTSymbols.BASED_LITERAL:
   91.36 +            case AdaASTSymbols.BASED_LITERAL:
   91.37                  name = "BASED_LITERAL";
   91.38                  break;
   91.39 -            case Ada95ASTSymbols.DECIMAL_LITERAL:
   91.40 +            case AdaASTSymbols.DECIMAL_LITERAL:
   91.41                  name = "DECIMAL_LITERAL";
   91.42                  break;
   91.43 -            case Ada95ASTSymbols.MOD:
   91.44 +            case AdaASTSymbols.MOD:
   91.45                  name = "MOD";
   91.46                  break;
   91.47 -            case Ada95ASTSymbols.ARRAY:
   91.48 +            case AdaASTSymbols.ARRAY:
   91.49                  name = "ARRAY";
   91.50                  break;
   91.51 -            case Ada95ASTSymbols.WITH:
   91.52 +            case AdaASTSymbols.WITH:
   91.53                  name = "WITH";
   91.54                  break;
   91.55 -            case Ada95ASTSymbols.USE:
   91.56 +            case AdaASTSymbols.USE:
   91.57                  name = "USE";
   91.58                  break;
   91.59 -            case Ada95ASTSymbols.BAR:
   91.60 +            case AdaASTSymbols.BAR:
   91.61                  name = "BAR";
   91.62                  break;
   91.63 -            case Ada95ASTSymbols.GENERIC:
   91.64 +            case AdaASTSymbols.GENERIC:
   91.65                  name = "GENERIC";
   91.66                  break;
   91.67 -            case Ada95ASTSymbols.EXCEPTION:
   91.68 +            case AdaASTSymbols.EXCEPTION:
   91.69                  name = "EXCEPTION";
   91.70                  break;
   91.71 -            case Ada95ASTSymbols.TAGGED:
   91.72 +            case AdaASTSymbols.TAGGED:
   91.73                  name = "TAGGED";
   91.74                  break;
   91.75 -            case Ada95ASTSymbols.FOR:
   91.76 +            case AdaASTSymbols.FOR:
   91.77                  name = "FOR";
   91.78                  break;
   91.79 -            case Ada95ASTSymbols.IDENTIFIER:
   91.80 +            case AdaASTSymbols.IDENTIFIER:
   91.81                  name = "IDENTIFIER";
   91.82                  break;
   91.83 -            case Ada95ASTSymbols.SLASH:
   91.84 +            case AdaASTSymbols.SLASH:
   91.85                  name = "SLASH";
   91.86                  break;
   91.87 -            case Ada95ASTSymbols.AT:
   91.88 +            case AdaASTSymbols.AT:
   91.89                  name = "AT";
   91.90                  break;
   91.91 -            case Ada95ASTSymbols.TYPE:
   91.92 +            case AdaASTSymbols.TYPE:
   91.93                  name = "TYPE";
   91.94                  break;
   91.95 -            case Ada95ASTSymbols.EQ:
   91.96 +            case AdaASTSymbols.EQ:
   91.97                  name = "EQ";
   91.98                  break;
   91.99 -            case Ada95ASTSymbols.WHILE:
  91.100 +            case AdaASTSymbols.WHILE:
  91.101                  name = "WHILE";
  91.102                  break;
  91.103 -            case Ada95ASTSymbols.DELAY:
  91.104 +            case AdaASTSymbols.DELAY:
  91.105                  name = "DELAY";
  91.106                  break;
  91.107 -            case Ada95ASTSymbols.ENTRY:
  91.108 +            case AdaASTSymbols.ENTRY:
  91.109                  name = "ENTRY";
  91.110                  break;
  91.111 -            case Ada95ASTSymbols.DELTA:
  91.112 +            case AdaASTSymbols.DELTA:
  91.113                  name = "DELTA";
  91.114                  break;
  91.115 -            case Ada95ASTSymbols.DIGITS:
  91.116 +            case AdaASTSymbols.DIGITS:
  91.117                  name = "DIGITS";
  91.118                  break;
  91.119 -            case Ada95ASTSymbols.ABSTRACT:
  91.120 +            case AdaASTSymbols.ABSTRACT:
  91.121                  name = "ABSTRACT";
  91.122                  break;
  91.123 -            case Ada95ASTSymbols.LOOP:
  91.124 +            case AdaASTSymbols.LOOP:
  91.125                  name = "LOOP";
  91.126                  break;
  91.127 -            case Ada95ASTSymbols.ACCESS:
  91.128 +            case AdaASTSymbols.ACCESS:
  91.129                  name = "ACCESS";
  91.130                  break;
  91.131 -            case Ada95ASTSymbols.REQUEUE:
  91.132 +            case AdaASTSymbols.REQUEUE:
  91.133                  name = "REQUEUE";
  91.134                  break;
  91.135 -            case Ada95ASTSymbols.TASK:
  91.136 +            case AdaASTSymbols.TASK:
  91.137                  name = "TASK";
  91.138                  break;
  91.139 -            case Ada95ASTSymbols.ABS:
  91.140 +            case AdaASTSymbols.ABS:
  91.141                  name = "ABS";
  91.142                  break;
  91.143 -            case Ada95ASTSymbols.END:
  91.144 +            case AdaASTSymbols.END:
  91.145                  name = "END";
  91.146                  break;
  91.147 -            case Ada95ASTSymbols.REM:
  91.148 +            case AdaASTSymbols.REM:
  91.149                  name = "REM";
  91.150                  break;
  91.151 -            case Ada95ASTSymbols.MINUS:
  91.152 +            case AdaASTSymbols.MINUS:
  91.153                  name = "MINUS";
  91.154                  break;
  91.155 -            case Ada95ASTSymbols.ASSIGNMENT:
  91.156 +            case AdaASTSymbols.ASSIGNMENT:
  91.157                  name = "ASSIGNMENT";
  91.158                  break;
  91.159 -            case Ada95ASTSymbols.THEN:
  91.160 +            case AdaASTSymbols.THEN:
  91.161                  name = "THEN";
  91.162                  break;
  91.163 -            case Ada95ASTSymbols.GOTO:
  91.164 +            case AdaASTSymbols.GOTO:
  91.165                  name = "GOTO";
  91.166                  break;
  91.167 -            case Ada95ASTSymbols.NEW:
  91.168 +            case AdaASTSymbols.NEW:
  91.169                  name = "NEW";
  91.170                  break;
  91.171 -            case Ada95ASTSymbols.WHEN:
  91.172 +            case AdaASTSymbols.WHEN:
  91.173                  name = "WHEN";
  91.174                  break;
  91.175 -            case Ada95ASTSymbols.TERMINATE:
  91.176 +            case AdaASTSymbols.TERMINATE:
  91.177                  name = "TERMINATE";
  91.178                  break;
  91.179 -            case Ada95ASTSymbols.COLON:
  91.180 +            case AdaASTSymbols.COLON:
  91.181                  name = "COLON";
  91.182                  break;
  91.183 -            case Ada95ASTSymbols.EOF:
  91.184 +            case AdaASTSymbols.EOF:
  91.185                  name = "EOF";
  91.186                  break;
  91.187 -            case Ada95ASTSymbols.PLUS:
  91.188 +            case AdaASTSymbols.PLUS:
  91.189                  name = "PLUS";
  91.190                  break;
  91.191 -            case Ada95ASTSymbols.LTEQ:
  91.192 +            case AdaASTSymbols.LTEQ:
  91.193                  name = "LTEQ";
  91.194                  break;
  91.195 -            case Ada95ASTSymbols.BEGIN:
  91.196 +            case AdaASTSymbols.BEGIN:
  91.197                  name = "BEGIN";
  91.198                  break;
  91.199 -            case Ada95ASTSymbols.FUNCTION:
  91.200 +            case AdaASTSymbols.FUNCTION:
  91.201                  name = "FUNCTION";
  91.202                  break;
  91.203 -            case Ada95ASTSymbols.RECORD:
  91.204 +            case AdaASTSymbols.RECORD:
  91.205                  name = "RECORD";
  91.206                  break;
  91.207 -            case Ada95ASTSymbols.RANGE:
  91.208 +            case AdaASTSymbols.RANGE:
  91.209                  name = "RANGE";
  91.210                  break;
  91.211 -            case Ada95ASTSymbols.PROTECTED:
  91.212 +            case AdaASTSymbols.PROTECTED:
  91.213                  name = "PROTECTED";
  91.214                  break;
  91.215 -            case Ada95ASTSymbols.PRIVATE:
  91.216 +            case AdaASTSymbols.PRIVATE:
  91.217                  name = "PRIVATE";
  91.218                  break;
  91.219 -            case Ada95ASTSymbols.INEQ:
  91.220 +            case AdaASTSymbols.INEQ:
  91.221                  name = "INEQ";
  91.222                  break;
  91.223 -            case Ada95ASTSymbols.SEPARATE:
  91.224 +            case AdaASTSymbols.SEPARATE:
  91.225                  name = "SEPARATE";
  91.226                  break;
  91.227 -            case Ada95ASTSymbols.CONSTANT:
  91.228 +            case AdaASTSymbols.CONSTANT:
  91.229                  name = "CONSTANT";
  91.230                  break;
  91.231 -            case Ada95ASTSymbols.SELECT:
  91.232 +            case AdaASTSymbols.SELECT:
  91.233                  name = "SELECT";
  91.234                  break;
  91.235 -            case Ada95ASTSymbols.OTHERS:
  91.236 +            case AdaASTSymbols.OTHERS:
  91.237                  name = "OTHERS";
  91.238                  break;
  91.239 -            case Ada95ASTSymbols.ALIASED:
  91.240 +            case AdaASTSymbols.ALIASED:
  91.241                  name = "ALIASED";
  91.242                  break;
  91.243 -            case Ada95ASTSymbols.ELSE:
  91.244 +            case AdaASTSymbols.ELSE:
  91.245                  name = "ELSE";
  91.246                  break;
  91.247 -            case Ada95ASTSymbols.DO:
  91.248 +            case AdaASTSymbols.DO:
  91.249                  name = "DO";
  91.250                  break;
  91.251 -            case Ada95ASTSymbols.GT:
  91.252 +            case AdaASTSymbols.GT:
  91.253                  name = "GT";
  91.254                  break;
  91.255 -            case Ada95ASTSymbols.RENAMES:
  91.256 +            case AdaASTSymbols.RENAMES:
  91.257                  name = "RENAMES";
  91.258                  break;
  91.259 -            case Ada95ASTSymbols.LIMITED:
  91.260 +            case AdaASTSymbols.LIMITED:
  91.261                  name = "LIMITED";
  91.262                  break;
  91.263 -            case Ada95ASTSymbols.STAR:
  91.264 +            case AdaASTSymbols.STAR:
  91.265                  name = "STAR";
  91.266                  break;
  91.267 -            case Ada95ASTSymbols.NULL:
  91.268 +            case AdaASTSymbols.NULL:
  91.269                  name = "NULL";
  91.270                  break;
  91.271 -            case Ada95ASTSymbols.SUBTYPE:
  91.272 +            case AdaASTSymbols.SUBTYPE:
  91.273                  name = "SUBTYPE";
  91.274                  break;
  91.275 -            case Ada95ASTSymbols.RETURN:
  91.276 +            case AdaASTSymbols.RETURN:
  91.277                  name = "RETURN";
  91.278                  break;
  91.279 -            case Ada95ASTSymbols.ALL:
  91.280 +            case AdaASTSymbols.ALL:
  91.281                  name = "ALL";
  91.282                  break;
  91.283 -            case Ada95ASTSymbols.RAISE:
  91.284 +            case AdaASTSymbols.RAISE:
  91.285                  name = "RAISE";
  91.286                  break;
  91.287 -            case Ada95ASTSymbols.AND:
  91.288 +            case AdaASTSymbols.AND:
  91.289                  name = "AND";
  91.290                  break;
  91.291 -            case Ada95ASTSymbols.GTEQ:
  91.292 +            case AdaASTSymbols.GTEQ:
  91.293                  name = "GTEQ";
  91.294                  break;
  91.295 -            case Ada95ASTSymbols.UNTIL:
  91.296 +            case AdaASTSymbols.UNTIL:
  91.297                  name = "UNTIL";
  91.298                  break;
  91.299 -            case Ada95ASTSymbols.BODY:
  91.300 +            case AdaASTSymbols.BODY:
  91.301                  name = "BODY";
  91.302                  break;
  91.303 -            case Ada95ASTSymbols.EXIT:
  91.304 +            case AdaASTSymbols.EXIT:
  91.305                  name = "EXIT";
  91.306                  break;
  91.307 -            case Ada95ASTSymbols.ACCEPT:
  91.308 +            case AdaASTSymbols.ACCEPT:
  91.309                  name = "ACCEPT";
  91.310                  break;
  91.311 -            case Ada95ASTSymbols.PRAGMA:
  91.312 +            case AdaASTSymbols.PRAGMA:
  91.313                  name = "PRAGMA";
  91.314                  break;
  91.315 -            case Ada95ASTSymbols.IS:
  91.316 +            case AdaASTSymbols.IS:
  91.317                  name = "IS";
  91.318                  break;
  91.319 -            case Ada95ASTSymbols.OR:
  91.320 +            case AdaASTSymbols.OR:
  91.321                  name = "OR";
  91.322                  break;
  91.323 -            case Ada95ASTSymbols.OUT:
  91.324 +            case AdaASTSymbols.OUT:
  91.325                  name = "OUT";
  91.326                  break;
  91.327 -            case Ada95ASTSymbols.RPAREN:
  91.328 +            case AdaASTSymbols.RPAREN:
  91.329                  name = "RPAREN";
  91.330                  break;
  91.331 -            case Ada95ASTSymbols.ELSIF:
  91.332 +            case AdaASTSymbols.ELSIF:
  91.333                  name = "ELSIF";
  91.334                  break;
  91.335 -            case Ada95ASTSymbols.NOT:
  91.336 +            case AdaASTSymbols.NOT:
  91.337                  name = "NOT";
  91.338                  break;
  91.339 -            case Ada95ASTSymbols.XOR:
  91.340 +            case AdaASTSymbols.XOR:
  91.341                  name = "XOR";
  91.342                  break;
  91.343 -            case Ada95ASTSymbols.LPAREN:
  91.344 +            case AdaASTSymbols.LPAREN:
  91.345                  name = "LPAREN";
  91.346                  break;
  91.347 -            case Ada95ASTSymbols.IN:
  91.348 +            case AdaASTSymbols.IN:
  91.349                  name = "IN";
  91.350                  break;
  91.351 -            case Ada95ASTSymbols.COMMA:
  91.352 +            case AdaASTSymbols.COMMA:
  91.353                  name = "COMMA";
  91.354                  break;
  91.355 -            case Ada95ASTSymbols.LT:
  91.356 +            case AdaASTSymbols.LT:
  91.357                  name = "LT";
  91.358                  break;
  91.359 -            case Ada95ASTSymbols.PACKAGE:
  91.360 +            case AdaASTSymbols.PACKAGE:
  91.361                  name = "PACKAGE";
  91.362                  break;
  91.363 -            case Ada95ASTSymbols.DOT:
  91.364 +            case AdaASTSymbols.DOT:
  91.365                  name = "DOT";
  91.366                  break;
  91.367 -            case Ada95ASTSymbols.IF:
  91.368 +            case AdaASTSymbols.IF:
  91.369                  name = "IF";
  91.370                  break;
  91.371 -            case Ada95ASTSymbols.DECLARE:
  91.372 +            case AdaASTSymbols.DECLARE:
  91.373                  name = "DECLARE";
  91.374                  break;
  91.375              default:
    92.1 --- a/ada.editor/src/org/netbeans/modules/ada/editor/parser/resources/Ada95ASTParser.cup	Tue Oct 02 21:55:21 2012 -0400
    92.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    92.3 @@ -1,2772 +0,0 @@
    92.4 -/*
    92.5 - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
    92.6 - *
    92.7 - * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
    92.8 - *
    92.9 - * The contents of this file are subject to the terms of either the GNU
   92.10 - * General Public License Version 2 only ("GPL") or the Common
   92.11 - * Development and Distribution License("CDDL") (collectively, the
   92.12 - * "License"). You may not use this file except in compliance with the
   92.13 - * License. You can obtain a copy of the License at
   92.14 - * http://www.netbeans.org/cddl-gplv2.html
   92.15 - * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
   92.16 - * specific language governing permissions and limitations under the
   92.17 - * License.  When distributing the software, include this License Header
   92.18 - * Notice in each file and include the License file at
   92.19 - * nbbuild/licenses/CDDL-GPL-2-CP.  Sun designates this
   92.20 - * particular file as subject to the "Classpath" exception as provided
   92.21 - * by Sun in the GPL Version 2 section of the License file that
   92.22 - * accompanied this code. If applicable, add the following below the
   92.23 - * License Header, with the fields enclosed by brackets [] replaced by
   92.24 - * your own identifying information:
   92.25 - * "Portions Copyrighted [year] [name of copyright owner]"
   92.26 - *
   92.27 - * If you wish your version of this file to be governed by only the CDDL
   92.28 - * or only the GPL Version 2, indicate your decision by binary_adding_operator
   92.29 - * "[Contributor] elects to include this software in this distribution
   92.30 - * under the [CDDL or GPL Version 2] license." If you do not indicate a
   92.31 - * single choice of license, a recipient has the option to distribute
   92.32 - * your version of this file under either the CDDL, the GPL Version 2 or
   92.33 - * to extend the choice of license to its licensees as provided above.
   92.34 - * However, if you add GPL Version 2 code and therefore, elected the GPL
   92.35 - * Version 2 license, then the option applies only if the new code is
   92.36 - * made subject to such option by the copyright holder.
   92.37 - *
   92.38 - * Contributor(s):
   92.39 - *
   92.40 - * Portions Copyrighted 2008 Sun Microsystems, Inc.
   92.41 - */
   92.42 -package org.netbeans.modules.ada.editor.parser;
   92.43 -
   92.44 -import java.util.*;
   92.45 -import org.netbeans.modules.ada.editor.lexer.Ada95ASTLexer;
   92.46 -import org.netbeans.modules.ada.editor.ast.*;
   92.47 -import org.netbeans.modules.ada.editor.ast.nodes.*;
   92.48 -
   92.49 -parser code {:
   92.50 -    protected final static Integer PUBLIC = new Integer(BodyDeclaration.Modifier.PUBLIC);
   92.51 -    protected final static Integer PRIVATE = new Integer(BodyDeclaration.Modifier.PRIVATE);
   92.52 -    protected final static Integer TAGGED = new Integer(BodyDeclaration.Modifier.TAGGED);
   92.53 -    protected final static Integer LIMITED = new Integer(BodyDeclaration.Modifier.LIMITED);
   92.54 -    protected final static Integer ABSTRACT = new Integer(BodyDeclaration.Modifier.ABSTRACT);
   92.55 -
   92.56 -    private ErrorStrategy defaultStrategy = new DefaultErrorStrategy();;
   92.57 -    private ErrorStrategy errorStrategy = defaultStrategy;
   92.58 -
   92.59 -    private ParserErrorHandler errorHandler = null;
   92.60 -
   92.61 -    public void setErrorHandler (ParserErrorHandler handler) {
   92.62 -        this.errorHandler = handler;
   92.63 -    }
   92.64 -
   92.65 -    public ParserErrorHandler getErrorHandler () {
   92.66 -        return this.errorHandler;
   92.67 -    }
   92.68 -
   92.69 -/*
   92.70 -    public Dispatch createDispatch(VariableBase dispatcher, VariableBase property) {
   92.71 -        Dispatch dispatch = null;
   92.72 -	if (property instanceof Variable) {
   92.73 -	   dispatch = new FieldAccess(dispatcher.getStartOffset(), property.getEndOffset(), dispatcher, (Variable)property);
   92.74 -	} else if (property instanceof FunctionInvocation) {
   92.75 -	   dispatch = new MethodInvocation(dispatcher.getStartOffset(), property.getEndOffset(), dispatcher, (FunctionInvocation)property);
   92.76 -	} else if (property instanceof ProcedureInvocation) {
   92.77 -	   dispatch = new MethodInvocation(dispatcher.getStartOffset(), property.getEndOffset(), dispatcher, (ProcedureInvocation)property);
   92.78 -	} else {
   92.79 -	   throw new IllegalArgumentException();
   92.80 -	}
   92.81 -        return dispatch;
   92.82 -    }
   92.83 -*/
   92.84 -
   92.85 -    public List setModifier(List items, int modifier) {
   92.86 -        List list = new LinkedList();
   92.87 -        for (Iterator iter = items.iterator(); iter.hasNext();) {
   92.88 -            final Object next = iter.next();
   92.89 -            if (next instanceof TypeDeclaration) {
   92.90 -                ((TypeDeclaration)next).setModifier(modifier);
   92.91 -                list.add(next);
   92.92 -            } else if (next instanceof MethodDeclaration) {
   92.93 -                ((MethodDeclaration)next).setModifier(modifier);
   92.94 -                list.add(next);
   92.95 -            } else if (next instanceof FieldsDeclaration) {
   92.96 -                ((FieldsDeclaration)next).setModifier(modifier);
   92.97 -                list.add(next);
   92.98 -            } else {
   92.99 -                list.add(next);
  92.100 -            }
  92.101 -        }
  92.102 -        return list;
  92.103 -    }
  92.104 -
  92.105 -    interface ErrorStrategy {
  92.106 -        public boolean errorRecovery(boolean debug) throws Exception;
  92.107 -    }
  92.108 -
  92.109 -    class DefaultErrorStrategy implements ErrorStrategy {
  92.110 -
  92.111 -        public boolean errorRecovery(boolean debug) throws Exception {
  92.112 -            return Ada95ASTParser.super.error_recovery(debug);
  92.113 -        }
  92.114 -    }
  92.115 -
  92.116 -    /**
  92.117 -     * Attempt to recover from a syntax error.  This returns false if recovery fails,
  92.118 -     * true if it succeeds.
  92.119 -     * @param debug should we produce debugging messages as we parse.
  92.120 -     */
  92.121 -    @Override
  92.122 -    protected boolean error_recovery(boolean debug) throws java.lang.Exception {
  92.123 -        return errorStrategy.errorRecovery(debug);
  92.124 -    }
  92.125 -
  92.126 -    /**
  92.127 -     * Report a non fatal error (or warning).  This method takes a message
  92.128 -     * string and an additional object (to be used by specializations implemented in subclasses).
  92.129 -     * The super class prints the message to System.err.
  92.130 -     * @param message an error message.
  92.131 -     * @param info    an extra object reserved for use by specialized subclasses.
  92.132 -     */
  92.133 -    @Override
  92.134 -    public void report_error(String message, Object info) {
  92.135 -        System.out.print("report_eror"  + message);
  92.136 -    }	
  92.137 -
  92.138 -    /**
  92.139 -     * This method is called when a syntax error has been detected and recovery is about to be invoked.
  92.140 -     * The super class just emit a "Syntax error" error message.
  92.141 -     * @param cur_token the current lookahead Symbol.
  92.142 -     */
  92.143 -    @Override
  92.144 -    public void syntax_error(java_cup.runtime.Symbol cur_token) {
  92.145 -        java_cup.runtime.Symbol symbol = (java_cup.runtime.Symbol)stack.peek();
  92.146 -        int state = symbol.parse_state;
  92.147 -        short[] rowOfProbe = action_tab[state];
  92.148 -        if (errorHandler != null) {
  92.149 -            errorHandler.handleError(ParserErrorHandler.Type.SYNTAX_ERROR, rowOfProbe, cur_token, symbol);
  92.150 -        }
  92.151 -     }
  92.152 -
  92.153 -    /**
  92.154 -     * This method is called when a syntax error has been detected during action.
  92.155 -     * @param message an error message.
  92.156 -     */
  92.157 -    public void message_error(String message) {
  92.158 -        java_cup.runtime.Symbol symbol = (java_cup.runtime.Symbol)stack.peek();
  92.159 -        if (errorHandler != null) {
  92.160 -            errorHandler.handleError(ParserErrorHandler.Type.SYNTAX_ERROR, symbol, message);
  92.161 -        }
  92.162 -     }
  92.163 -
  92.164 -     /**
  92.165 -     * Report a fatal error.  This method takes a message string and an additional object
  92.166 -     * (to be used by specializations implemented in subclasses).
  92.167 -     * The super class reports the error then throws an exception.
  92.168 -     * @param message an error message.
  92.169 -     * @param info    an extra object reserved for use by specialized subclasses.
  92.170 -     */
  92.171 -    @Override
  92.172 -    public void report_fatal_error(String message, Object info) throws Exception {
  92.173 -        if (errorHandler != null) {
  92.174 -            errorHandler.handleError(ParserErrorHandler.Type.FATAL_PARSER_ERROR, null, cur_token, null);
  92.175 -        }
  92.176 -    }
  92.177 -
  92.178 -    @Override
  92.179 -    protected int error_sync_size() {
  92.180 -        return 1;
  92.181 -    }
  92.182 -
  92.183 -:}
  92.184 -
  92.185 -
  92.186 -/*********************************************************
  92.187 - *                                                       *
  92.188 - * Ada 95 (LALR) AST Parser, based on:                   *
  92.189 - *                                                       *
  92.190 - * 1. Ada Reference Manual                               *
  92.191 - *    ISO/IEC 8652:1995(E)                               *
  92.192 - *    with Technical Corrigendum 1                       *
  92.193 - *    Language and Standard Libraries                    *
  92.194 - *    Copyright © 1992,1993,1994,1995 Intermetrics, Inc. *
  92.195 - *    Copyright © 2000 The MITRE Corporation, Inc.       *
  92.196 - * 2. http://www.adaic.com/standards/95lrm/grammar9x.y   *
  92.197 - *                                                       *
  92.198 - * Author: Andrea Lucarelli                              *
  92.199 - * Parser Generator: JavCup                              *
  92.200 - *                                                       *
  92.201 - *********************************************************/
  92.202 -
  92.203 -/*************************
  92.204 - * JavaCup Terminals     *
  92.205 - *************************/
  92.206 -
  92.207 -//
  92.208 -// Ada 95 keywords
  92.209 -//
  92.210 -terminal ABORT;
  92.211 -terminal ABS;
  92.212 -terminal ABSTRACT;
  92.213 -terminal ACCESS;
  92.214 -terminal ACCEPT;
  92.215 -terminal ALIASED;
  92.216 -terminal ALL;
  92.217 -terminal AND;
  92.218 -terminal ARRAY;
  92.219 -terminal AT;
  92.220 -terminal BEGIN;
  92.221 -terminal BODY;
  92.222 -terminal CONSTANT;
  92.223 -terminal CASE;
  92.224 -terminal DECLARE;
  92.225 -terminal DELAY;
  92.226 -terminal DELTA;
  92.227 -terminal DIGITS;
  92.228 -terminal DO;
  92.229 -terminal ELSE;
  92.230 -terminal ELSIF;
  92.231 -terminal END;
  92.232 -terminal ENTRY;
  92.233 -terminal EXCEPTION;
  92.234 -terminal EXIT;
  92.235 -terminal FOR;
  92.236 -terminal FUNCTION;
  92.237 -terminal GENERIC;
  92.238 -terminal GOTO;
  92.239 -terminal IF;
  92.240 -terminal IN;
  92.241 -terminal IS;
  92.242 -terminal LIMITED;
  92.243 -terminal LOOP;
  92.244 -terminal MOD;
  92.245 -terminal NEW;
  92.246 -terminal NOT;
  92.247 -terminal NULL;
  92.248 -terminal OF;
  92.249 -terminal OR;
  92.250 -terminal OTHERS;
  92.251 -terminal OUT;
  92.252 -terminal PACKAGE;
  92.253 -terminal PRAGMA;
  92.254 -terminal PRIVATE;
  92.255 -terminal PROCEDURE;
  92.256 -terminal PROTECTED;
  92.257 -terminal RETURN;
  92.258 -terminal REVERSE;
  92.259 -terminal RAISE;
  92.260 -terminal RANGE;
  92.261 -terminal RECORD;
  92.262 -terminal REM;
  92.263 -terminal RENAMES;
  92.264 -terminal REQUEUE;
  92.265 -terminal SELECT;
  92.266 -terminal SEPARATE;
  92.267 -terminal SUBTYPE;
  92.268 -terminal TAGGED;
  92.269 -terminal TASK;
  92.270 -terminal TERMINATE;
  92.271 -terminal THEN;
  92.272 -terminal TYPE;
  92.273 -terminal UNTIL;
  92.274 -terminal USE;
  92.275 -terminal WHEN;
  92.276 -terminal WHILE;
  92.277 -terminal WITH;
  92.278 -terminal XOR;
  92.279 -
  92.280 -// 2.2 Lexical Elements, Separators, and Delimiters
  92.281 -
  92.282 -//
  92.283 -// delimiters
  92.284 -//
  92.285 -terminal AMP;
  92.286 -terminal TICK;
  92.287 -terminal LPAREN;
  92.288 -terminal RPAREN;
  92.289 -terminal STAR;
  92.290 -terminal PLUS;
  92.291 -terminal COMMA;
  92.292 -terminal MINUS;
  92.293 -terminal DOT;
  92.294 -terminal SLASH;
  92.295 -terminal COLON;
  92.296 -terminal SEMICOLON;
  92.297 -terminal GT;
  92.298 -terminal EQ;
  92.299 -terminal LT;
  92.300 -terminal BAR;
  92.301 -
  92.302 -//
  92.303 -// compound delimiters
  92.304 -//
  92.305 -terminal ARROW;
  92.306 -terminal DOT_DOT;
  92.307 -terminal EXPON;
  92.308 -terminal ASSIGNMENT;
  92.309 -terminal INEQ;
  92.310 -terminal GTEQ;
  92.311 -terminal LTEQ;
  92.312 -terminal LTLT;
  92.313 -terminal GTGT;
  92.314 -terminal BOX;
  92.315 -
  92.316 -//
  92.317 -// others tokens
  92.318 -//
  92.319 -// ??? terminal String OPERATOR_SYMBOL;
  92.320 -terminal String CHAR_LITERAL;    // 2.1 Character Set
  92.321 -terminal String IDENTIFIER;      // 2.3 Identifiers
  92.322 -terminal String DECIMAL_LITERAL; // 2.4.1 Decimal Literals
  92.323 -terminal String BASED_LITERAL;   // 2.4.2 Based Literals
  92.324 -terminal String STRING_LITERAL;  // 2.6 String Literals
  92.325 -
  92.326 -
  92.327 -/*************************
  92.328 - * JavaCup Non terminals *
  92.329 - *************************/
  92.330 -
  92.331 -// 3.1 Declarations
  92.332 -non terminal Statement               declaration;
  92.333 -non terminal List                    fields_declaration;
  92.334 -non terminal Statement               type_declaration;
  92.335 -non terminal Statement               subprog_declaration;
  92.336 -non terminal Identifier              defining_identifier;
  92.337 -
  92.338 -// 3.11 Declarative Parts
  92.339 -non terminal List                    declarative_items_opt;
  92.340 -non terminal List                    declarative_item_list;
  92.341 -non terminal Statement               declarative_item;
  92.342 -non terminal List                    declarative_part;
  92.343 -non terminal List                    declarative_item_or_body_s1;
  92.344 -non terminal List                    private_part;
  92.345 -non terminal Statement               proper_body;
  92.346 -non terminal Statement               task_body;
  92.347 -
  92.348 -// 3.2.1 Type Declarations
  92.349 -non terminal Expression              type_definition;
  92.350 -
  92.351 -// 3.2.2 Subtype Declarations
  92.352 -non terminal Statement               subtype_declaration;
  92.353 -non terminal TypeName                subtype_indication;
  92.354 -
  92.355 -// 3.3.1 Object Declarations
  92.356 -non terminal List                    object_declaration;
  92.357 -non terminal List                    defining_identifier_list;
  92.358 -non terminal Variable.Kind           object_qualifier_opt;
  92.359 -
  92.360 -// 3.3.2 Number Declarations
  92.361 -non terminal List                    number_declaration;
  92.362 -
  92.363 -// 4.1 Names
  92.364 -non terminal String                  name;
  92.365 -non terminal String                  simple_name;
  92.366 -
  92.367 -// 4.1.3 Selected Components
  92.368 -non terminal String                  selected_component;
  92.369 -
  92.370 -// 4.4 Expressions
  92.371 -non terminal Expression              expression;
  92.372 -non terminal Expression              relation;
  92.373 -non terminal Expression              simple_expression;
  92.374 -non terminal Expression              term;
  92.375 -non terminal Expression              factor;
  92.376 -non terminal Expression              primary;
  92.377 -
  92.378 -// 4.5 Operators and Expression Evaluation
  92.379 -non terminal String                  logical_operator;
  92.380 -non terminal String                  relational_operator;
  92.381 -non terminal UnaryOperation.Operator binary_adding_operator;
  92.382 -non terminal UnaryOperation.Operator unary_adding_operator;
  92.383 -non terminal String                  multiplying_operator;
  92.384 -
  92.385 -// 4.7 Qualified Expressions
  92.386 -non terminal Expression              qualified_expression;
  92.387 -
  92.388 -// 5.1 Simple and Compound Statements - Sequences of Statements
  92.389 -non terminal List                    sequence_of_statements;
  92.390 -non terminal Statement               simple_statement;
  92.391 -non terminal Statement               compound_statement;
  92.392 -non terminal Statement               null_statement;
  92.393 -
  92.394 -// 5.2 Assignment Statements
  92.395 -non terminal Statement               assignment_statement;
  92.396 -
  92.397 -// 5.3 If Statements
  92.398 -non terminal IfStatement             if_statement;
  92.399 -non terminal List[]                  cond_clause_s;
  92.400 -non terminal Expression              condition;
  92.401 -non terminal Block                   else_opt;
  92.402 -
  92.403 -// 5.4 Case Statements
  92.404 -non terminal CaseStatement           case_statement;
  92.405 -non terminal List                    alternative_s;
  92.406 -non terminal CaseWhen                alternative;
  92.407 -
  92.408 -// 5.5 Loop Statements
  92.409 -non terminal LoopStatement           loop_statement;
  92.410 -non terminal Block                   basic_loop;
  92.411 -non terminal Expression              iteration;
  92.412 -
  92.413 -// 5.6 Block Statements
  92.414 -non terminal BlockStatement          block_statement;
  92.415 -non terminal Block                   block_declarative;
  92.416 -non terminal Block                   block_body;
  92.417 -
  92.418 -// 5.7 Exit Statements
  92.419 -non terminal Statement               exit_statement;
  92.420 -non terminal String                  name_opt;
  92.421 -
  92.422 -// 5.8 Goto Statements
  92.423 -non terminal Statement               goto_statement;
  92.424 -
  92.425 -// 6.1 Subprogram Declarations
  92.426 -non terminal SubprogramSpecification subprogram_specification;
  92.427 -non terminal SubprogramSpecification generic_subp_inst;
  92.428 -non terminal MethodDeclaration       subprogram_body;
  92.429 -non terminal List                    param_s;
  92.430 -non terminal List                    formal_part_opt;
  92.431 -non terminal List                    formal_part;
  92.432 -non terminal List                    param;
  92.433 -non terminal FormalParameter.Mode    mode;
  92.434 -non terminal String                  designator;
  92.435 -non terminal String                  operator_symbol;
  92.436 -
  92.437 -// 6.5 Return Statements
  92.438 -non terminal Statement               return_statement;
  92.439 -
  92.440 -// 7.1 Package Specifications and Declarations
  92.441 -non terminal Statement               package_declaration;
  92.442 -non terminal Statement               package_specification;
  92.443 -			        
  92.444 -// 7.2 Package Bodies	        
  92.445 -non terminal Statement               package_body;
  92.446 -non terminal Statement               body;
  92.447 -
  92.448 -// 7.3 Private Types and Private Extensions
  92.449 -non terminal PrivateType             private_type_declaration;
  92.450 -non terminal Integer                 tagged_opt;
  92.451 -non terminal Integer                 limited_opt;
  92.452 -
  92.453 -// 8.4 Use Clauses
  92.454 -non terminal Statement               use_clause;
  92.455 -non terminal List                    package_name_list;
  92.456 -non terminal List                    subtype_mark_list;
  92.457 -
  92.458 -// 8.5 Renaming Declarations
  92.459 -non terminal Statement               renaming_declaration;
  92.460 -non terminal Statement               rename_unit;
  92.461 -
  92.462 -// 9.4 Protected Units and Protected Objects
  92.463 -non terminal Statement               protected_body;
  92.464 -
  92.465 -// 9.6 Delay Statements, Duration, and Time
  92.466 -non terminal Statement               delay_statement;
  92.467 -
  92.468 -// 9.8 Abort of a Task - Abort of a Sequence of Statements
  92.469 -non terminal Statement               abort_statement;
  92.470 -non terminal List                    task_name_list;
  92.471 -
  92.472 -// 10.1.1 Compilation Units - Library Units
  92.473 -non terminal Program                 compilation;
  92.474 -non terminal List                    compilation_units;
  92.475 -non terminal Statement               compilation_unit;
  92.476 -non terminal Statement               unit;
  92.477 -
  92.478 -// 10.1.2 Context Clauses - With Clauses
  92.479 -non terminal Statement               context_clause;
  92.480 -non terminal Statement               with_clause;
  92.481 -non terminal List                    library_unit_name_list;
  92.482 -
  92.483 -// 10.1.3 Subunits of Compilation Units
  92.484 -non terminal Statement               body_stub;
  92.485 -
  92.486 -// 11.3 Raise Statements
  92.487 -non terminal Statement               raise_statement;
  92.488 -
  92.489 -// 12.1 Generic Declarations
  92.490 -non terminal Statement               generic_declaration;
  92.491 -
  92.492 -// 13.8 Machine Code Insertions
  92.493 -non terminal Statement               code_statement;
  92.494 -
  92.495 -
  92.496 -// TBD sections
  92.497 -non terminal String                  compound_name;
  92.498 -non terminal String                  compound_name_opt;
  92.499 -non terminal TypeName                object_subtype_def;
  92.500 -non terminal Expression              init_opt;
  92.501 -non terminal Statement               type_decl;
  92.502 -non terminal Expression              type_completion;
  92.503 -non terminal String                  subtype_mark;
  92.504 -non terminal List                    handled_stmt_s;
  92.505 -non terminal Statement               statement;
  92.506 -non terminal Statement               subunit;
  92.507 -non terminal String                  id_opt;
  92.508 -non terminal Statement               unlabeled;
  92.509 -non terminal Expression              literal;
  92.510 -non terminal Expression              parenthesized_primary;
  92.511 -non terminal Expression              when_opt;
  92.512 -non terminal Statement               procedure_call_statement;
  92.513 -non terminal String                  used_char;
  92.514 -non terminal Expression              choice_s;
  92.515 -non terminal String                  label_opt;
  92.516 -non terminal String                  attribute;
  92.517 -non terminal String                  indexed_comp; // TODO: must be change it
  92.518 -non terminal Expression              value_s;
  92.519 -non terminal Expression              discrete_range;
  92.520 -non terminal Expression              range;
  92.521 -
  92.522 -// TBD RM sections and types
  92.523 -non terminal     pragma;
  92.524 -non terminal     pragma_arg_s;
  92.525 -non terminal     pragma_arg;
  92.526 -non terminal     pragma_s;
  92.527 -non terminal     task_decl;
  92.528 -non terminal     prot_decl;
  92.529 -non terminal     exception_decl;
  92.530 -non terminal     discrim_part_opt;
  92.531 -non terminal     discrim_part;
  92.532 -non terminal     enumeration_type;
  92.533 -non terminal     integer_type;
  92.534 -non terminal     real_type;
  92.535 -non terminal     array_type;
  92.536 -non terminal     record_type;
  92.537 -non terminal     access_type;
  92.538 -non terminal     derived_type;
  92.539 -non terminal     constraint;
  92.540 -non terminal     range_constraint;
  92.541 -non terminal     decimal_digits_constraint;
  92.542 -non terminal     range_constr_opt;
  92.543 -non terminal     record_def;
  92.544 -non terminal     enum_id_s;
  92.545 -non terminal     enum_id;
  92.546 -non terminal     range_spec;
  92.547 -non terminal     range_spec_opt;
  92.548 -non terminal     float_type;
  92.549 -non terminal     fixed_type;
  92.550 -non terminal     unconstr_array_type;
  92.551 -non terminal     constr_array_type;
  92.552 -non terminal     index_s;
  92.553 -non terminal     index;
  92.554 -non terminal     component_subtype_def;
  92.555 -non terminal     aliased_opt;
  92.556 -non terminal     iter_index_constraint;
  92.557 -non terminal     iter_discrete_range_s;
  92.558 -non terminal     comp_list;
  92.559 -non terminal     comp_decl_s;
  92.560 -non terminal     comp_decl;
  92.561 -non terminal     variant_part_opt;
  92.562 -non terminal     variant_part;
  92.563 -non terminal     discrim_spec_s;
  92.564 -non terminal     discrim_spec;
  92.565 -non terminal     access_opt;
  92.566 -non terminal     variant_s;
  92.567 -non terminal     variant;
  92.568 -non terminal     choice;
  92.569 -non terminal     discrete_with_range;
  92.570 -non terminal     prot_opt;
  92.571 -non terminal     rep_spec;
  92.572 -non terminal     declarative_item_or_body;
  92.573 -non terminal     attribute_id;
  92.574 -non terminal     value;
  92.575 -non terminal     comp_assoc;
  92.576 -non terminal     aggregate;
  92.577 -non terminal     value_s_2;
  92.578 -non terminal     short_circuit;
  92.579 -non terminal     membership;
  92.580 -non terminal     allocator;
  92.581 -non terminal     label;
  92.582 -non terminal     requeue_stmt;
  92.583 -non terminal     accept_stmt;
  92.584 -non terminal     select_stmt;
  92.585 -non terminal     iter_part;
  92.586 -non terminal     reverse_opt;
  92.587 -non terminal     except_handler_part_opt;
  92.588 -non terminal     except_handler_part;
  92.589 -non terminal     generic_package_instantiation;
  92.590 -non terminal     body_opt;
  92.591 -non terminal     generic_formal_part;
  92.592 -non terminal     task_spec;
  92.593 -non terminal     task_def;
  92.594 -non terminal     entry_decl_s;
  92.595 -non terminal     rep_spec_s;
  92.596 -non terminal     task_private_opt;
  92.597 -non terminal     prot_spec;
  92.598 -non terminal     prot_def;
  92.599 -non terminal     prot_op_decl_s;
  92.600 -non terminal     prot_private_opt;
  92.601 -non terminal     prot_elem_decl_s;
  92.602 -non terminal     prot_op_decl;
  92.603 -non terminal     entry_decl;
  92.604 -non terminal     prot_elem_decl;
  92.605 -non terminal     prot_op_body_s;
  92.606 -non terminal     prot_op_body;
  92.607 -non terminal     entry_body;
  92.608 -non terminal     entry_body_part;
  92.609 -non terminal     accept_hdr;
  92.610 -non terminal     entry_call;
  92.611 -non terminal     entry_name;
  92.612 -non terminal     select_wait;
  92.613 -non terminal     async_select;
  92.614 -non terminal     timed_entry_call;
  92.615 -non terminal     cond_entry_call;
  92.616 -non terminal     guarded_select_alt;
  92.617 -non terminal     or_select;
  92.618 -non terminal     select_alt;
  92.619 -non terminal     stmts_opt;
  92.620 -non terminal     delay_or_entry_alt;
  92.621 -non terminal     private_opt;
  92.622 -non terminal     exception_handler;
  92.623 -non terminal     except_choice_s;
  92.624 -non terminal     except_choice;
  92.625 -non terminal     generic_formal;
  92.626 -non terminal     generic_discrim_part_opt;
  92.627 -non terminal     generic_type_def;
  92.628 -non terminal     subp_default;
  92.629 -non terminal     generic_derived_type;
  92.630 -non terminal     generic_inst;
  92.631 -non terminal     attrib_def;
  92.632 -non terminal     record_type_spec;
  92.633 -non terminal     address_spec;
  92.634 -non terminal     align_opt;
  92.635 -non terminal     comp_loc_s;
  92.636 -
  92.637 -/*************************
  92.638 - * JavaCup precedence    *
  92.639 - *************************/
  92.640 -
  92.641 -//precedence left OR;
  92.642 -//precedence left XOR;
  92.643 -//precedence left AND;
  92.644 -
  92.645 -//precedence left SEMICOLON;
  92.646 -
  92.647 -//precedence left ELSIF;
  92.648 -//precedence left ELSE;
  92.649 -//precedence left END IF;
  92.650 -
  92.651 -///////////////////////////////////////////////////////////////////////////////
  92.652 -// start with root symbol 
  92.653 -//
  92.654 -start with compilation;
  92.655 -
  92.656 -/*****************
  92.657 - *               *
  92.658 - * Ada 95 syntax *
  92.659 - *               *
  92.660 - *****************/
  92.661 -
  92.662 -///////////////////////////////////////////////////////////////////////////////
  92.663 -// 2.8 Pragmas
  92.664 -//
  92.665 -pragma  ::= PRAGMA IDENTIFIER SEMICOLON
  92.666 -	| PRAGMA simple_name LPAREN pragma_arg_s RPAREN SEMICOLON
  92.667 -	;
  92.668 -
  92.669 -pragma_arg_s ::= pragma_arg
  92.670 -	| pragma_arg_s COMMA pragma_arg
  92.671 -	;
  92.672 -
  92.673 -pragma_arg ::= expression
  92.674 -	| simple_name ARROW expression
  92.675 -	;
  92.676 -
  92.677 -pragma_s ::=
  92.678 -	| pragma_s pragma
  92.679 -	;
  92.680 -
  92.681 -///////////////////////////////////////////////////////////////////////////////
  92.682 -// 3.1 Declarations
  92.683 -//
  92.684 -fields_declaration ::=
  92.685 -object_declaration:statement
  92.686 -{:
  92.687 -	RESULT = statement;
  92.688 -:}
  92.689 -| number_declaration:statement
  92.690 -{:
  92.691 -	RESULT = statement;
  92.692 -:}
  92.693 -;
  92.694 -
  92.695 -type_declaration ::=
  92.696 -type_decl:statement
  92.697 -{:
  92.698 -	RESULT = statement;
  92.699 -:}
  92.700 -| subtype_declaration:statement
  92.701 -{:
  92.702 -	RESULT = statement;
  92.703 -:}
  92.704 -;
  92.705 -
  92.706 -declaration ::=
  92.707 -task_decl
  92.708 -| prot_decl
  92.709 -| exception_decl
  92.710 -| renaming_declaration:statement
  92.711 -{:
  92.712 -	RESULT = statement;
  92.713 -:}
  92.714 -| generic_declaration:statement
  92.715 -{:
  92.716 -	RESULT = statement;
  92.717 -:}
  92.718 -| body_stub:statement
  92.719 -{:
  92.720 -	RESULT = statement;
  92.721 -:}
  92.722 -| error:theError SEMICOLON // error statement
  92.723 -{:
  92.724 -    ASTError error = new ASTError(theErrorleft, theErrorright);
  92.725 -    RESULT = error;
  92.726 -:}
  92.727 -;
  92.728 -
  92.729 -defining_identifier ::=
  92.730 -IDENTIFIER:id
  92.731 -{:
  92.732 -    Identifier identifier = new Identifier(idleft, idright, id);
  92.733 -    RESULT = identifier;
  92.734 -:}
  92.735 -;
  92.736 -
  92.737 -///////////////////////////////////////////////////////////////////////////////
  92.738 -// 3.3.1 Object Declarations
  92.739 -//
  92.740 -object_declaration ::= 
  92.741 -defining_identifier_list:identifierList COLON object_qualifier_opt:varKind object_subtype_def:subtype init_opt:init SEMICOLON
  92.742 -{:
  92.743 -    List list = new LinkedList();
  92.744 -    for (Object identifier : identifierList) {
  92.745 -        Variable variable = new Variable (((Identifier)identifier).getStartOffset(), ((Identifier)identifier).getEndOffset(), (Identifier)identifier, varKind, subtype);
  92.746 -        list.add(new ASTNode[] {variable, init});
  92.747 -    }
  92.748 -    RESULT = list;
  92.749 -:}
  92.750 -;
  92.751 -
  92.752 -defining_identifier_list ::= 
  92.753 -defining_identifier:identifier
  92.754 -{:
  92.755 -    List identifierList = new LinkedList();
  92.756 -    identifierList.add(identifier);
  92.757 -    RESULT = identifierList;
  92.758 -:}
  92.759 -| defining_identifier_list:identifierList COMMA defining_identifier:identifier
  92.760 -{:
  92.761 -    identifierList.add(identifier);
  92.762 -    RESULT = identifierList;
  92.763 -:}
  92.764 -;
  92.765 -
  92.766 -object_qualifier_opt ::=
  92.767 -{:
  92.768 -    RESULT = Variable.Kind.DEFAULT;
  92.769 -:}
  92.770 -| ALIASED
  92.771 -{:
  92.772 -    RESULT = Variable.Kind.ALIASED;
  92.773 -:}
  92.774 -| CONSTANT
  92.775 -{:
  92.776 -    RESULT = Variable.Kind.CONSTANT;
  92.777 -:}
  92.778 -| ALIASED CONSTANT
  92.779 -{:
  92.780 -    RESULT = Variable.Kind.ALIASED_CONSTANT;
  92.781 -:}
  92.782 -;
  92.783 -
  92.784 -object_subtype_def ::= 
  92.785 -subtype_indication:subtype
  92.786 -{:
  92.787 -    RESULT = subtype;
  92.788 -:}
  92.789 -| array_type:array
  92.790 -;
  92.791 -
  92.792 -init_opt ::=
  92.793 -{:
  92.794 -    RESULT = null;
  92.795 -:}
  92.796 -| ASSIGNMENT expression:expr
  92.797 -{:
  92.798 -    RESULT = expr;
  92.799 -:}
  92.800 -;
  92.801 -
  92.802 -///////////////////////////////////////////////////////////////////////////////
  92.803 -// 3.3.2 Number Declarations
  92.804 -//
  92.805 -number_declaration ::= 
  92.806 -defining_identifier_list:identifierList COLON CONSTANT ASSIGNMENT expression:init SEMICOLON
  92.807 -{:
  92.808 -    List list = new LinkedList();
  92.809 -    for (Object identifier : identifierList) {
  92.810 -        Variable variable = new Variable (((Identifier)identifier).getStartOffset(), ((Identifier)identifier).getEndOffset(), (Identifier)identifier, Variable.Kind.CONSTANT);
  92.811 -        list.add(new ASTNode[] {variable, init});
  92.812 -    }
  92.813 -    RESULT = list;
  92.814 -:}
  92.815 -;
  92.816 -
  92.817 -type_decl ::= 
  92.818 -TYPE:token defining_identifier:identifier discrim_part_opt type_completion:typeCompletion SEMICOLON:end
  92.819 -{:
  92.820 -    TypeDeclaration type = new TypeDeclaration (tokenleft, endright, identifier, typeCompletion);
  92.821 -    RESULT = type;
  92.822 -:}
  92.823 -;
  92.824 -
  92.825 -discrim_part_opt ::=
  92.826 -	| discrim_part
  92.827 -	| LPAREN BOX RPAREN
  92.828 -	;
  92.829 -
  92.830 -type_completion ::=
  92.831 -// empty
  92.832 -{:
  92.833 -    RESULT = null;
  92.834 -:}
  92.835 -| IS type_definition:typeDef
  92.836 -{:
  92.837 -    RESULT = typeDef;
  92.838 -:}
  92.839 -;
  92.840 -
  92.841 -type_definition ::=
  92.842 -enumeration_type 
  92.843 -| integer_type
  92.844 -| real_type
  92.845 -| array_type
  92.846 -| record_type
  92.847 -| access_type
  92.848 -| derived_type
  92.849 -| private_type_declaration:privateType
  92.850 -{:
  92.851 -    RESULT = privateType;
  92.852 -:}
  92.853 -;
  92.854 -
  92.855 -///////////////////////////////////////////////////////////////////////////////
  92.856 -// 3.2.2 Subtype Declarations
  92.857 -//
  92.858 -subtype_declaration ::=
  92.859 -SUBTYPE:token defining_identifier:identifier IS subtype_indication:subtypeIndication SEMICOLON:end
  92.860 -{:
  92.861 -    SubtypeDeclaration type = new SubtypeDeclaration (tokenleft, endright, identifier, subtypeIndication);
  92.862 -    RESULT = type;
  92.863 -:}
  92.864 -;
  92.865 -
  92.866 -subtype_indication ::= 
  92.867 -name:name constraint
  92.868 -{:    
  92.869 -    Identifier identifier = new Identifier(nameleft, nameright, name);
  92.870 -    TypeName type = new TypeName (nameleft, nameright, identifier);
  92.871 -    RESULT = type;
  92.872 -:}
  92.873 -| name:name
  92.874 -{:    
  92.875 -    Identifier identifier = new Identifier(nameleft, nameright, name);
  92.876 -    TypeName type = new TypeName (nameleft, nameright, identifier);
  92.877 -    RESULT = type;
  92.878 -:}
  92.879 -;
  92.880 -
  92.881 -constraint ::= range_constraint
  92.882 -	| decimal_digits_constraint
  92.883 -	;
  92.884 -
  92.885 -decimal_digits_constraint ::= DIGITS expression range_constr_opt
  92.886 -	;
  92.887 -
  92.888 -derived_type ::= NEW subtype_indication
  92.889 -	| NEW subtype_indication WITH PRIVATE
  92.890 -	| NEW subtype_indication WITH record_def
  92.891 -	| ABSTRACT NEW subtype_indication WITH PRIVATE
  92.892 -	| ABSTRACT NEW subtype_indication WITH record_def
  92.893 -	;
  92.894 -
  92.895 -range_constraint ::= RANGE range
  92.896 -	;
  92.897 -
  92.898 -range ::=
  92.899 -simple_expression:simple_expr DOT_DOT simple_expression
  92.900 -{:
  92.901 -    RESULT = simple_expr;
  92.902 -:}
  92.903 -| name TICK RANGE
  92.904 -| name:name TICK RANGE LPAREN expression:expr RPAREN
  92.905 -{:
  92.906 -    RESULT = expr;
  92.907 -:}
  92.908 -;
  92.909 -
  92.910 -enumeration_type ::= LPAREN enum_id_s RPAREN
  92.911 -        ;
  92.912 -
  92.913 -enum_id_s ::= enum_id
  92.914 -	| enum_id_s COMMA enum_id
  92.915 -	;
  92.916 -
  92.917 -enum_id ::= IDENTIFIER
  92.918 -	| CHAR_LITERAL
  92.919 -	;
  92.920 -
  92.921 -integer_type ::= range_spec
  92.922 -	| MOD expression
  92.923 -	;
  92.924 -	
  92.925 -
  92.926 -range_spec ::= range_constraint
  92.927 -	;
  92.928 -
  92.929 -range_spec_opt ::=
  92.930 -	| range_spec
  92.931 -	;
  92.932 -
  92.933 -real_type ::= float_type
  92.934 -	| fixed_type
  92.935 -	;
  92.936 -
  92.937 -float_type ::= DIGITS expression range_spec_opt
  92.938 -	;
  92.939 -
  92.940 -fixed_type ::= DELTA expression range_spec
  92.941 -	| DELTA expression DIGITS expression range_spec_opt
  92.942 -	;
  92.943 -
  92.944 -array_type ::= unconstr_array_type
  92.945 -	| constr_array_type
  92.946 -	;
  92.947 -
  92.948 -unconstr_array_type ::= ARRAY LPAREN index_s RPAREN OF component_subtype_def
  92.949 -	;
  92.950 -
  92.951 -constr_array_type ::= ARRAY iter_index_constraint OF component_subtype_def
  92.952 -	;
  92.953 -
  92.954 -component_subtype_def ::= aliased_opt subtype_indication
  92.955 -	;
  92.956 -
  92.957 -aliased_opt ::= 
  92.958 -	| ALIASED
  92.959 -	;
  92.960 -
  92.961 -index_s ::= index
  92.962 -	| index_s COMMA index
  92.963 -	;
  92.964 -
  92.965 -index ::= name RANGE BOX
  92.966 -	;
  92.967 -
  92.968 -iter_index_constraint ::= LPAREN iter_discrete_range_s RPAREN
  92.969 -	;
  92.970 -
  92.971 -iter_discrete_range_s ::= discrete_range
  92.972 -	| iter_discrete_range_s COMMA discrete_range
  92.973 -	;
  92.974 -
  92.975 -discrete_range ::=
  92.976 -name range_constr_opt
  92.977 -| range:range
  92.978 -{:
  92.979 -    RESULT = range;
  92.980 -:}
  92.981 -;
  92.982 -
  92.983 -range_constr_opt ::=
  92.984 -	| range_constraint
  92.985 -	;
  92.986 -
  92.987 -record_type ::= tagged_opt limited_opt record_def
  92.988 -	;
  92.989 -
  92.990 -record_def ::= RECORD pragma_s comp_list END RECORD
  92.991 -	| NULL RECORD
  92.992 -	;
  92.993 -
  92.994 -tagged_opt ::=
  92.995 -{:
  92.996 -    RESULT = 0;
  92.997 -:}
  92.998 -| TAGGED
  92.999 -{:
 92.1000 -    RESULT = Ada95ASTParser.TAGGED;
 92.1001 -:}
 92.1002 -| ABSTRACT TAGGED
 92.1003 -{:
 92.1004 -    RESULT = Ada95ASTParser.TAGGED + Ada95ASTParser.ABSTRACT;
 92.1005 -:}
 92.1006 -;
 92.1007 -
 92.1008 -comp_list ::= comp_decl_s variant_part_opt
 92.1009 -	| variant_part pragma_s
 92.1010 -	| NULL SEMICOLON pragma_s
 92.1011 -	;
 92.1012 -
 92.1013 -comp_decl_s ::= comp_decl
 92.1014 -	| comp_decl_s pragma_s comp_decl
 92.1015 -	;
 92.1016 -
 92.1017 -variant_part_opt ::= pragma_s
 92.1018 -	| pragma_s variant_part pragma_s
 92.1019 -	;
 92.1020 -
 92.1021 -comp_decl ::= 
 92.1022 -defining_identifier_list COLON component_subtype_def init_opt SEMICOLON
 92.1023 -| error:theError SEMICOLON
 92.1024 -{:
 92.1025 -    ASTError error = new ASTError(theErrorleft, theErrorright);
 92.1026 -    RESULT = error;
 92.1027 -:}
 92.1028 -;
 92.1029 -
 92.1030 -discrim_part ::= LPAREN discrim_spec_s RPAREN
 92.1031 -	;
 92.1032 -
 92.1033 -discrim_spec_s ::= discrim_spec
 92.1034 -	| discrim_spec_s SEMICOLON discrim_spec
 92.1035 -	;
 92.1036 -
 92.1037 -discrim_spec ::= 
 92.1038 -defining_identifier_list COLON access_opt subtype_mark init_opt
 92.1039 -| error:theError  // error statement
 92.1040 -{:
 92.1041 -    ASTError error = new ASTError(theErrorleft, theErrorright);
 92.1042 -    RESULT = error;
 92.1043 -:}
 92.1044 -;
 92.1045 -
 92.1046 -access_opt ::=
 92.1047 -	| ACCESS
 92.1048 -	;
 92.1049 -
 92.1050 -variant_part ::= CASE simple_name IS pragma_s variant_s END CASE SEMICOLON
 92.1051 -	;
 92.1052 -
 92.1053 -variant_s ::= variant
 92.1054 -	| variant_s variant
 92.1055 -	;
 92.1056 -
 92.1057 -variant ::= WHEN choice_s ARROW pragma_s comp_list
 92.1058 -	;
 92.1059 -
 92.1060 -choice_s ::= choice
 92.1061 -	| choice_s BAR choice
 92.1062 -	;
 92.1063 -
 92.1064 -choice ::= expression
 92.1065 -	| discrete_with_range
 92.1066 -	| OTHERS
 92.1067 -	;
 92.1068 -
 92.1069 -discrete_with_range ::= name range_constraint
 92.1070 -	| range
 92.1071 -	;
 92.1072 -
 92.1073 -access_type ::= ACCESS subtype_indication
 92.1074 -	| ACCESS CONSTANT subtype_indication
 92.1075 -	| ACCESS ALL subtype_indication
 92.1076 -	| ACCESS prot_opt PROCEDURE formal_part_opt
 92.1077 -	| ACCESS prot_opt FUNCTION formal_part_opt RETURN subtype_mark
 92.1078 -	;
 92.1079 -
 92.1080 -prot_opt ::=
 92.1081 -	| PROTECTED
 92.1082 -	;
 92.1083 -
 92.1084 -///////////////////////////////////////////////////////////////////////////////
 92.1085 -// 3.11 Declarative Parts
 92.1086 -//
 92.1087 -declarative_part ::=
 92.1088 -{:
 92.1089 -    RESULT = new LinkedList();
 92.1090 -:}
 92.1091 -| declarative_item_or_body_s1:statement
 92.1092 -{:
 92.1093 -    RESULT = statement;
 92.1094 -:}
 92.1095 -;
 92.1096 -
 92.1097 -declarative_items_opt ::=
 92.1098 -// empty
 92.1099 -{:
 92.1100 -    RESULT = new LinkedList();
 92.1101 -:}
 92.1102 -| declarative_item_list:declaritiveItemList
 92.1103 -{:
 92.1104 -    RESULT = declaritiveItemList;
 92.1105 -:}
 92.1106 -;
 92.1107 -
 92.1108 -declarative_item_list ::=
 92.1109 -declarative_item:declaritiveItem
 92.1110 -{:
 92.1111 -    List declaritiveItemList = new LinkedList();
 92.1112 -    declaritiveItemList.add(declaritiveItem);
 92.1113 -    RESULT = declaritiveItemList;
 92.1114 -:}
 92.1115 -| declarative_item_list:declaritiveItemList declarative_item:declaritiveItem
 92.1116 -{:
 92.1117 -    declaritiveItemList.add(declaritiveItem);
 92.1118 -    RESULT = declaritiveItemList;
 92.1119 -:}
 92.1120 -;
 92.1121 -
 92.1122 -declarative_item ::=
 92.1123 -fields_declaration:list
 92.1124 -{:
 92.1125 -    FieldsDeclaration fieldsDeclaration = new FieldsDeclaration(listleft, listright, list);
 92.1126 -    RESULT = fieldsDeclaration;
 92.1127 -:}
 92.1128 -| type_declaration:statement
 92.1129 -{:
 92.1130 -    RESULT = statement;
 92.1131 -:}
 92.1132 -| subprog_declaration:statement
 92.1133 -{:
 92.1134 -    RESULT = statement;
 92.1135 -:}
 92.1136 -| package_declaration:statement
 92.1137 -{:
 92.1138 -    RESULT = statement;
 92.1139 -:}
 92.1140 -| declaration:statement // todo: to be split
 92.1141 -{:
 92.1142 -    RESULT = statement;
 92.1143 -:}
 92.1144 -| use_clause:statement
 92.1145 -{:
 92.1146 -    RESULT = statement;
 92.1147 -:}
 92.1148 -| rep_spec
 92.1149 -| pragma
 92.1150 -;
 92.1151 -
 92.1152 -declarative_item_or_body_s1 ::=
 92.1153 -declarative_item_or_body:declaritiveItem
 92.1154 -{:
 92.1155 -    List declaritiveItemList = new LinkedList();
 92.1156 -    declaritiveItemList.add(declaritiveItem);
 92.1157 -    RESULT = declaritiveItemList;
 92.1158 -:}
 92.1159 -| declarative_item_or_body_s1:declaritiveItemList declarative_item_or_body:declaritiveItem
 92.1160 -{:
 92.1161 -    declaritiveItemList.add(declaritiveItem);
 92.1162 -    RESULT = declaritiveItemList;
 92.1163 -:}
 92.1164 -;
 92.1165 -
 92.1166 -declarative_item_or_body ::=
 92.1167 -body:statement
 92.1168 -{:
 92.1169 -    RESULT = statement;
 92.1170 -:}
 92.1171 -| declarative_item:statement
 92.1172 -{:
 92.1173 -    RESULT = statement;
 92.1174 -:}
 92.1175 -;
 92.1176 -
 92.1177 -body ::=
 92.1178 -subprogram_body:statement
 92.1179 -{:
 92.1180 -    RESULT = statement;
 92.1181 -:}
 92.1182 -| package_body:statement
 92.1183 -{:
 92.1184 -    RESULT = statement;
 92.1185 -:}
 92.1186 -| task_body:statement
 92.1187 -{:
 92.1188 -    RESULT = statement;
 92.1189 -:}
 92.1190 -| protected_body:statement
 92.1191 -{:
 92.1192 -    RESULT = statement;
 92.1193 -:}
 92.1194 -;
 92.1195 -
 92.1196 -proper_body ::=
 92.1197 -subprogram_body:statement
 92.1198 -{:
 92.1199 -    RESULT = statement;
 92.1200 -:}
 92.1201 -| package_body:statement
 92.1202 -{:
 92.1203 -    RESULT = statement;
 92.1204 -:}
 92.1205 -| task_body:statement
 92.1206 -{:
 92.1207 -    RESULT = statement;
 92.1208 -:}
 92.1209 -| protected_body:statement
 92.1210 -{:
 92.1211 -    RESULT = statement;
 92.1212 -:}
 92.1213 -;
 92.1214 -
 92.1215 -
 92.1216 -name ::=
 92.1217 -simple_name:name
 92.1218 -{:
 92.1219 -    RESULT = name;
 92.1220 -:}
 92.1221 -| indexed_comp:comp
 92.1222 -{:
 92.1223 -    RESULT = comp;
 92.1224 -:}
 92.1225 -| selected_component:comp
 92.1226 -{:
 92.1227 -    RESULT = comp;
 92.1228 -:}
 92.1229 -| attribute:attr
 92.1230 -{:
 92.1231 -    RESULT = attr;
 92.1232 -:}
 92.1233 -| operator_symbol:op
 92.1234 -{:
 92.1235 -    RESULT = op;
 92.1236 -:}
 92.1237 -;
 92.1238 -
 92.1239 -subtype_mark ::=
 92.1240 -simple_name:name
 92.1241 -{:
 92.1242 -    RESULT = name;
 92.1243 -:}
 92.1244 -| subtype_mark:name TICK attribute_id
 92.1245 -{:
 92.1246 -    // TODO: manage the attribute
 92.1247 -    RESULT = name;
 92.1248 -:}
 92.1249 -| subtype_mark:name DOT simple_name:simpleName
 92.1250 -{:
 92.1251 -    RESULT = name + "." + simpleName;
 92.1252 -:}
 92.1253 -;
 92.1254 -
 92.1255 -simple_name ::=
 92.1256 -IDENTIFIER:identifier
 92.1257 -{:
 92.1258 -    RESULT = identifier;
 92.1259 -:}
 92.1260 -;
 92.1261 -
 92.1262 -compound_name ::=
 92.1263 -simple_name:simpleName
 92.1264 -{:
 92.1265 -    RESULT = simpleName;
 92.1266 -:}
 92.1267 -| compound_name:compoundName DOT simple_name:simpleName
 92.1268 -{:
 92.1269 -    RESULT = compoundName + "." + simpleName;
 92.1270 -:}
 92.1271 -;
 92.1272 -
 92.1273 -library_unit_name_list ::=
 92.1274 -compound_name:compoundName
 92.1275 -{:
 92.1276 -    List nameList = new LinkedList();
 92.1277 -    Identifier id = new Identifier(compoundNameleft, compoundNameright, (String)compoundName);
 92.1278 -    PackageName packageName = new PackageName(compoundNameleft, compoundNameright, id);
 92.1279 -    nameList.add(packageName);
 92.1280 -    RESULT = nameList;
 92.1281 -:}
 92.1282 -| library_unit_name_list:nameList COMMA compound_name:compoundName
 92.1283 -{:
 92.1284 -    nameList.add(compoundName);
 92.1285 -    RESULT = nameList;
 92.1286 -:}
 92.1287 -;
 92.1288 -
 92.1289 -used_char ::=
 92.1290 -CHAR_LITERAL:charLiteral
 92.1291 -{:
 92.1292 -    RESULT = charLiteral;
 92.1293 -:}
 92.1294 -;
 92.1295 -
 92.1296 -indexed_comp ::=
 92.1297 -name:name LPAREN value_s:index RPAREN:end
 92.1298 -{:
 92.1299 -    System.out.println ("indexed_comp ::= name => " + name);
 92.1300 -    Identifier identifier = new Identifier(nameleft, nameright, name);
 92.1301 -    //Variable variable = new Variable (nameleft, nameright, name);
 92.1302 -	Variable indexedVar = new ArrayAccess(nameleft, endright, identifier, index, ArrayAccess.Type.VARIABLE_ARRAY);
 92.1303 -    //RESULT = indexedVar;
 92.1304 -    RESULT = name;
 92.1305 -:}
 92.1306 -;
 92.1307 -
 92.1308 -value_s ::= value
 92.1309 -	| value_s COMMA value
 92.1310 -	;
 92.1311 -
 92.1312 -value ::= expression
 92.1313 -| comp_assoc
 92.1314 -| discrete_with_range
 92.1315 -| error:theError /* error statement */
 92.1316 -{:
 92.1317 -    ASTError error = new ASTError(theErrorleft, theErrorright);
 92.1318 -    RESULT = error;
 92.1319 -:}
 92.1320 -;
 92.1321 -
 92.1322 -///////////////////////////////////////////////////////////////////////////////
 92.1323 -// 4.1.3 Selected Components
 92.1324 -//
 92.1325 -selected_component ::=
 92.1326 -name:name DOT simple_name:simpleName
 92.1327 -{:
 92.1328 -    RESULT = name + "." + simpleName;
 92.1329 -:}
 92.1330 -| name:name DOT used_char:usedChar
 92.1331 -{:
 92.1332 -    RESULT = name + "." + usedChar;
 92.1333 -:}
 92.1334 -| name:name DOT operator_symbol:operator
 92.1335 -{:
 92.1336 -    RESULT = name + "." + operator;
 92.1337 -:}
 92.1338 -| name:name DOT ALL:all
 92.1339 -{:
 92.1340 -    RESULT = name + "." + all;
 92.1341 -:}
 92.1342 -;
 92.1343 -
 92.1344 -attribute ::=
 92.1345 -name:name TICK attribute_id
 92.1346 -{:
 92.1347 -    RESULT = name;
 92.1348 -:}
 92.1349 -;
 92.1350 -
 92.1351 -attribute_id ::= IDENTIFIER
 92.1352 -	| DIGITS
 92.1353 -	| DELTA
 92.1354 -	| ACCESS
 92.1355 -	;
 92.1356 -
 92.1357 -literal ::=
 92.1358 -DECIMAL_LITERAL:dec
 92.1359 -{:
 92.1360 -	Scalar scalar = new Scalar(decleft, decright, dec, Scalar.Type.INT);
 92.1361 -	RESULT = scalar;
 92.1362 -:}
 92.1363 -| BASED_LITERAL:dec
 92.1364 -{:
 92.1365 -	Scalar scalar = new Scalar(decleft, decright, dec, Scalar.Type.INT);
 92.1366 -	RESULT = scalar;
 92.1367 -:}
 92.1368 -| used_char:usedChar
 92.1369 -{:
 92.1370 -	Scalar scalar = new Scalar(usedCharleft, usedCharright, usedChar, Scalar.Type.STRING);
 92.1371 -	RESULT = scalar;
 92.1372 -:}
 92.1373 -| NULL
 92.1374 -;
 92.1375 -
 92.1376 -aggregate ::= LPAREN comp_assoc RPAREN
 92.1377 -	| LPAREN value_s_2 RPAREN
 92.1378 -	| LPAREN expression WITH value_s RPAREN
 92.1379 -	| LPAREN expression WITH NULL RECORD RPAREN
 92.1380 -	| LPAREN NULL RECORD RPAREN
 92.1381 -	;
 92.1382 -
 92.1383 -value_s_2 ::= value COMMA value
 92.1384 -	| value_s_2 COMMA value
 92.1385 -	;
 92.1386 -
 92.1387 -comp_assoc ::= choice_s ARROW expression
 92.1388 -	;
 92.1389 -
 92.1390 -
 92.1391 -///////////////////////////////////////////////////////////////////////////////
 92.1392 -// 4.5 Operators and Expression Evaluation
 92.1393 -//
 92.1394 -logical_operator ::=
 92.1395 -AND
 92.1396 -| OR
 92.1397 -| XOR
 92.1398 -;
 92.1399 -
 92.1400 -short_circuit ::= AND THEN
 92.1401 -	| OR ELSE
 92.1402 -	;
 92.1403 -
 92.1404 -
 92.1405 -relational_operator ::=
 92.1406 -EQ
 92.1407 -| INEQ
 92.1408 -| GT
 92.1409 -| LTEQ
 92.1410 -| LT
 92.1411 -| GTEQ
 92.1412 -;
 92.1413 -
 92.1414 -membership ::= IN
 92.1415 -	| NOT IN
 92.1416 -	;
 92.1417 -
 92.1418 -unary_adding_operator ::=
 92.1419 -PLUS
 92.1420 -{:
 92.1421 -    RESULT = UnaryOperation.Operator.PLUS;
 92.1422 -:}
 92.1423 -| MINUS
 92.1424 -{:
 92.1425 -    RESULT = UnaryOperation.Operator.MINUS;
 92.1426 -:}
 92.1427 -;
 92.1428 -
 92.1429 -binary_adding_operator ::= 
 92.1430 -PLUS
 92.1431 -{:
 92.1432 -    RESULT = UnaryOperation.Operator.PLUS;
 92.1433 -:}
 92.1434 -| MINUS
 92.1435 -{:
 92.1436 -    RESULT = UnaryOperation.Operator.MINUS;
 92.1437 -:}
 92.1438 -| AMP
 92.1439 -{:
 92.1440 -    RESULT = UnaryOperation.Operator.AMP;
 92.1441 -:}
 92.1442 -;
 92.1443 -
 92.1444 -multiplying_operator ::=
 92.1445 -STAR
 92.1446 -| SLASH
 92.1447 -| MOD
 92.1448 -| REM
 92.1449 -;
 92.1450 -
 92.1451 -///////////////////////////////////////////////////////////////////////////////
 92.1452 -// 4.4 Expressions
 92.1453 -//
 92.1454 -expression ::=
 92.1455 -relation:rel
 92.1456 -{:
 92.1457 -    System.out.println ("expression ::= relation => " + rel);
 92.1458 -	RESULT = rel;
 92.1459 -:}
 92.1460 -| expression:expr logical_operator relation:rel
 92.1461 -{:
 92.1462 -    System.out.println ("expression ::= expression => " + expr);
 92.1463 -    System.out.println ("expression ::= relation => " + rel);
 92.1464 -	RESULT = expr;
 92.1465 -:}
 92.1466 -| expression:expr short_circuit relation:rel
 92.1467 -{:
 92.1468 -    System.out.println ("expression ::= expression => " + expr);
 92.1469 -    System.out.println ("expression ::= relation => " + rel);
 92.1470 -	RESULT = expr;
 92.1471 -:}
 92.1472 -;
 92.1473 -
 92.1474 -relation ::=
 92.1475 -simple_expression:simple_expr
 92.1476 -{:
 92.1477 -    RESULT = simple_expr;
 92.1478 -:}
 92.1479 -| simple_expression:simple_expr relational_operator simple_expression
 92.1480 -{:
 92.1481 -    RESULT = simple_expr;
 92.1482 -:}
 92.1483 -| simple_expression:simple_expr membership range
 92.1484 -{:
 92.1485 -    RESULT = simple_expr;
 92.1486 -:}
 92.1487 -| simple_expression:simple_expr membership name
 92.1488 -{:
 92.1489 -    RESULT = simple_expr;
 92.1490 -:}
 92.1491 -;
 92.1492 -
 92.1493 -simple_expression ::=
 92.1494 -unary_adding_operator:op term:term
 92.1495 -{:
 92.1496 -	RESULT = new UnaryOperation(opleft, termright, term, op);
 92.1497 -:}
 92.1498 -| term:term
 92.1499 -{:
 92.1500 -    RESULT = term;
 92.1501 -:}
 92.1502 -| simple_expression:expr binary_adding_operator:op term:term
 92.1503 -{:
 92.1504 -	RESULT = new UnaryOperation(exprleft, termright, term, op);
 92.1505 -:}
 92.1506 -;
 92.1507 -
 92.1508 -term ::=
 92.1509 -factor:factor
 92.1510 -{:
 92.1511 -    RESULT = factor;
 92.1512 -:}
 92.1513 -| term multiplying_operator factor:factor
 92.1514 -{:
 92.1515 -    RESULT = factor;
 92.1516 -:}
 92.1517 -;
 92.1518 -
 92.1519 -factor ::=
 92.1520 -primary:primary
 92.1521 -{:
 92.1522 -    RESULT = primary;
 92.1523 -:}
 92.1524 -| NOT primary:primary
 92.1525 -{:
 92.1526 -    RESULT = primary;
 92.1527 -:}
 92.1528 -| ABS primary:primary
 92.1529 -{:
 92.1530 -    RESULT = primary;
 92.1531 -:}
 92.1532 -| primary EXPON primary:primary
 92.1533 -{:
 92.1534 -    RESULT = primary;
 92.1535 -:}
 92.1536 -;
 92.1537 -
 92.1538 -primary ::=
 92.1539 -literal:literal
 92.1540 -{:
 92.1541 -    System.out.println ("primary ::= literal => " + literal);
 92.1542 -    RESULT = literal;
 92.1543 -:}
 92.1544 -| name:name
 92.1545 -{:
 92.1546 -    System.out.println ("primary ::= name => " + name);
 92.1547 -    Scalar scalar = new Scalar(nameleft, nameright, name, Scalar.Type.STRING);
 92.1548 -    RESULT = scalar;
 92.1549 -:}
 92.1550 -| allocator
 92.1551 -| qualified_expression:expr
 92.1552 -{:
 92.1553 -    System.out.println ("primary ::= qualified_expression => " + expr);
 92.1554 -    RESULT = expr;
 92.1555 -:}
 92.1556 -| parenthesized_primary:expr
 92.1557 -{:
 92.1558 -    System.out.println ("primary ::= parenthesized_primary => " + expr);
 92.1559 -    RESULT = expr;
 92.1560 -:}
 92.1561 -;
 92.1562 -
 92.1563 -parenthesized_primary ::=
 92.1564 -aggregate
 92.1565 -| LPAREN expression:expr RPAREN
 92.1566 -{:
 92.1567 -    RESULT = expr;
 92.1568 -:}
 92.1569 -;
 92.1570 -
 92.1571 -qualified_expression ::=
 92.1572 -name:name TICK parenthesized_primary:expr
 92.1573 -{:
 92.1574 -    Identifier subtypeMark = new Identifier (nameleft, nameright, name);
 92.1575 -    RESULT = new QualifiedExpression (nameleft, exprright, subtypeMark, expr);
 92.1576 -:}
 92.1577 -;
 92.1578 -
 92.1579 -allocator ::= NEW name
 92.1580 -	| NEW qualified_expression
 92.1581 -	;
 92.1582 -
 92.1583 -///////////////////////////////////////////////////////////////////////////////
 92.1584 -// 5.1 Simple and Compound Statements - Sequences of Statements
 92.1585 -//
 92.1586 -sequence_of_statements ::=
 92.1587 -statement:statement
 92.1588 -{:
 92.1589 -    List list = new LinkedList();
 92.1590 -    list.add(statement);
 92.1591 -    RESULT = list;
 92.1592 -:}
 92.1593 -| sequence_of_statements:list statement:statement
 92.1594 -{:
 92.1595 -    list.add(statement);
 92.1596 -    RESULT = list;
 92.1597 -:}
 92.1598 -;
 92.1599 -
 92.1600 -statement ::=
 92.1601 -unlabeled:statement
 92.1602 -{:
 92.1603 -    RESULT = statement;
 92.1604 -:}
 92.1605 -| label statement:statement
 92.1606 -{:
 92.1607 -    RESULT = statement;
 92.1608 -:}
 92.1609 -;
 92.1610 -
 92.1611 -unlabeled ::=
 92.1612 -simple_statement:statement
 92.1613 -{:
 92.1614 -    RESULT = statement;
 92.1615 -:}
 92.1616 -| compound_statement:statement
 92.1617 -{:
 92.1618 -    RESULT = statement;
 92.1619 -:}
 92.1620 -| pragma
 92.1621 -;
 92.1622 -
 92.1623 -simple_statement ::=
 92.1624 -null_statement:statement
 92.1625 -{:
 92.1626 -    RESULT = statement;
 92.1627 -:}
 92.1628 -| assignment_statement:statement
 92.1629 -{:
 92.1630 -    RESULT = statement;
 92.1631 -:}
 92.1632 -| exit_statement:statement
 92.1633 -{:
 92.1634 -    RESULT = statement;
 92.1635 -:}
 92.1636 -| return_statement:statement
 92.1637 -{:
 92.1638 -    RESULT = statement;
 92.1639 -:}
 92.1640 -| goto_statement:statement
 92.1641 -{:
 92.1642 -    RESULT = statement;
 92.1643 -:}
 92.1644 -| procedure_call_statement:statement
 92.1645 -{:
 92.1646 -    RESULT = statement;
 92.1647 -:}
 92.1648 -| delay_statement:statement
 92.1649 -{:
 92.1650 -    RESULT = statement;
 92.1651 -:}
 92.1652 -| abort_statement:statement
 92.1653 -{:
 92.1654 -    RESULT = statement;
 92.1655 -:}
 92.1656 -| raise_statement:statement
 92.1657 -{:
 92.1658 -    RESULT = statement;
 92.1659 -:}
 92.1660 -| code_statement:statement
 92.1661 -{:
 92.1662 -    RESULT = statement;
 92.1663 -:}
 92.1664 -| requeue_stmt
 92.1665 -| error:theError SEMICOLON /* error statement */
 92.1666 -{:
 92.1667 -    ASTError error = new ASTError(theErrorleft, theErrorright);
 92.1668 -    RESULT = error;
 92.1669 -:}
 92.1670 -;
 92.1671 -
 92.1672 -compound_statement ::=
 92.1673 -if_statement:statement
 92.1674 -{:
 92.1675 -    RESULT = statement;
 92.1676 -:}
 92.1677 -| case_statement:statement
 92.1678 -{:
 92.1679 -    RESULT = statement;
 92.1680 -:}
 92.1681 -| loop_statement:statement
 92.1682 -{:
 92.1683 -    RESULT = statement;
 92.1684 -:}
 92.1685 -| block_statement:statement
 92.1686 -{:
 92.1687 -    RESULT = statement;
 92.1688 -:}
 92.1689 -| accept_stmt
 92.1690 -| select_stmt
 92.1691 -;
 92.1692 -
 92.1693 -label ::= LTLT IDENTIFIER GTGT
 92.1694 -	;
 92.1695 -
 92.1696 -null_statement ::= 
 92.1697 -NULL:token SEMICOLON:end
 92.1698 -{:
 92.1699 -    RESULT = new NullStatement(tokenleft, endright);
 92.1700 -:}
 92.1701 -;
 92.1702 -
 92.1703 -///////////////////////////////////////////////////////////////////////////////
 92.1704 -// 5.2 Assignment Statements
 92.1705 -//
 92.1706 -assignment_statement ::=
 92.1707 -name:var ASSIGNMENT expression:expr SEMICOLON
 92.1708 -{:
 92.1709 -    System.out.println ("assignment_statement ::= var => " + var);
 92.1710 -    System.out.println ("assignment_statement ::= expr => " + expr);
 92.1711 -    Identifier id = new Identifier(varleft, varright, var);
 92.1712 -    Variable variable = new Variable (varleft, varright, (Identifier)id);
 92.1713 -    Assignment assignment = new Assignment(varleft, exprright, variable, expr);
 92.1714 -    RESULT = assignment;
 92.1715 -:}
 92.1716 -;
 92.1717 -
 92.1718 -///////////////////////////////////////////////////////////////////////////////
 92.1719 -// 5.3 If Statements
 92.1720 -//
 92.1721 -if_statement ::= 
 92.1722 -IF:token cond_clause_s:condList else_opt:iffalse END IF SEMICOLON:end
 92.1723 -{:
 92.1724 -    Expression innerCondition = null;
 92.1725 -    Expression firstCondition = null;
 92.1726 -    Statement trueStatement = null;
 92.1727 -    Statement falseStatement = iffalse;
 92.1728 -		
 92.1729 -    for (int i=1 ; i < condList[0].size() ; i++) {
 92.1730 -        innerCondition = (Expression)condList[0].get(i);
 92.1731 -        trueStatement = (Statement)condList[1].get(i);
 92.1732 -        int start = ((Integer)condList[2].get(i)).intValue();
 92.1733 -        falseStatement = new IfStatement(start, endright, innerCondition, trueStatement, falseStatement);
 92.1734 -    }
 92.1735 -    
 92.1736 -    firstCondition = (Expression)condList[0].get(0);
 92.1737 -    trueStatement = (Statement)condList[1].get(0);
 92.1738 -    int start = ((Integer)condList[2].get(0)).intValue();
 92.1739 -    IfStatement ifStatement = new IfStatement(tokenleft, endright, firstCondition, trueStatement, falseStatement);		
 92.1740 -	
 92.1741 -    RESULT = ifStatement;
 92.1742 -:}
 92.1743 -;
 92.1744 -
 92.1745 -cond_clause_s ::= 
 92.1746 -condition:condition THEN:token sequence_of_statements:iftrue
 92.1747 -{:
 92.1748 -    List listConditions = new LinkedList();
 92.1749 -    List listStatements = new LinkedList();
 92.1750 -    List listTokens = new LinkedList();
 92.1751 -
 92.1752 -    Block block = new Block(iftrueleft, iftrueright, iftrue);
 92.1753 -    listConditions.add(condition);
 92.1754 -    listStatements.add(block);
 92.1755 -    listTokens.add(new Integer(tokenleft));
 92.1756 -
 92.1757 -    List[] returnList = new List[] { listConditions, listStatements, listTokens };
 92.1758 -	
 92.1759 -    RESULT = returnList;
 92.1760 -:}
 92.1761 -| cond_clause_s:condList ELSIF:token condition:condition THEN sequence_of_statements:iftrue
 92.1762 -{:
 92.1763 -    Block block = new Block(iftrueleft, iftrueright, iftrue);
 92.1764 -    ((LinkedList)condList[0]).addFirst(condition);
 92.1765 -    ((LinkedList)condList[1]).addFirst(block);
 92.1766 -    ((LinkedList)condList[2]).addFirst(new Integer(tokenleft));
 92.1767 -
 92.1768 -    RESULT = condList;
 92.1769 -:}
 92.1770 -;
 92.1771 -
 92.1772 -condition ::=
 92.1773 -expression:expr
 92.1774 -{:
 92.1775 -    RESULT = expr;
 92.1776 -:}
 92.1777 -;
 92.1778 -
 92.1779 -else_opt ::=
 92.1780 -/* empty */
 92.1781 -{:
 92.1782 -    RESULT = null;
 92.1783 -:}
 92.1784 -| ELSE sequence_of_statements:statements
 92.1785 -{:
 92.1786 -    Block block = new Block(statementsleft, statementsright, statements);
 92.1787 -    RESULT = block;
 92.1788 -:}
 92.1789 -;
 92.1790 -
 92.1791 -///////////////////////////////////////////////////////////////////////////////
 92.1792 -// 5.4 Case Statements
 92.1793 -//
 92.1794 -case_statement ::=
 92.1795 -CASE:token expression:expr IS pragma_s alternative_s:whenList END CASE SEMICOLON:end
 92.1796 -{:
 92.1797 -    Block whenBlock = new Block(whenListleft, whenListright, whenList);
 92.1798 -    CaseStatement caseStatement = new CaseStatement(tokenleft, endright, expr, whenBlock);
 92.1799 -    RESULT = caseStatement;
 92.1800 -:}
 92.1801 -;
 92.1802 -
 92.1803 -alternative_s ::=
 92.1804 -/* empty */
 92.1805 -{:
 92.1806 -    RESULT = new LinkedList();
 92.1807 -:}
 92.1808 -| alternative_s:whenList alternative:when
 92.1809 -{:
 92.1810 -    whenList.add (when);
 92.1811 -    RESULT = whenList;
 92.1812 -:}
 92.1813 -;
 92.1814 -
 92.1815 -alternative ::=
 92.1816 -WHEN:token choice_s:expr ARROW sequence_of_statements:statements
 92.1817 -{:
 92.1818 -    CaseWhen caseWhen = new CaseWhen(tokenleft, statementsright, expr, statements);
 92.1819 -    RESULT = caseWhen;
 92.1820 -:}
 92.1821 -;
 92.1822 -
 92.1823 -///////////////////////////////////////////////////////////////////////////////
 92.1824 -// 5.5 Loop Statements
 92.1825 -//
 92.1826 -loop_statement ::=
 92.1827 -label_opt:label iteration:iteration basic_loop:statement id_opt SEMICOLON:end
 92.1828 -{:
 92.1829 -    int start = (label == null) ? iterationleft : labelleft;
 92.1830 -    Identifier identifier = new Identifier(labelleft, labelright, label);
 92.1831 -    LoopStatement loopStatement = new LoopStatement(start, endright, identifier, iteration, statement);
 92.1832 -    RESULT = loopStatement;
 92.1833 -:}
 92.1834 -;
 92.1835 -
 92.1836 -label_opt ::=
 92.1837 -/* empty */
 92.1838 -{:
 92.1839 -    RESULT = null;
 92.1840 -:}
 92.1841 -| IDENTIFIER:id COLON
 92.1842 -{:
 92.1843 -    RESULT = id;
 92.1844 -:}
 92.1845 -;
 92.1846 -
 92.1847 -iteration ::=
 92.1848 -/* empty */
 92.1849 -{:
 92.1850 -    RESULT = null;
 92.1851 -:}
 92.1852 -| WHILE condition:condition
 92.1853 -{:
 92.1854 -    RESULT = condition;
 92.1855 -:}
 92.1856 -| iter_part reverse_opt discrete_range:condition
 92.1857 -{:
 92.1858 -    RESULT = condition;
 92.1859 -:}
 92.1860 -;
 92.1861 -
 92.1862 -iter_part ::=
 92.1863 -FOR IDENTIFIER IN
 92.1864 -;
 92.1865 -
 92.1866 -reverse_opt ::=
 92.1867 -| REVERSE
 92.1868 -;
 92.1869 -
 92.1870 -basic_loop ::=
 92.1871 -LOOP sequence_of_statements:statements END LOOP
 92.1872 -{:
 92.1873 -    Block loopBlock = new Block(statementsleft, statementsright, statements);
 92.1874 -    RESULT = loopBlock;
 92.1875 -:}
 92.1876 -;
 92.1877 -
 92.1878 -
 92.1879 -///////////////////////////////////////////////////////////////////////////////
 92.1880 -
 92.1881 -id_opt ::=
 92.1882 -// empty
 92.1883 -{:
 92.1884 -    RESULT = null;
 92.1885 -:}
 92.1886 -| designator:name
 92.1887 -{:
 92.1888 -    RESULT = name;
 92.1889 -:}
 92.1890 -;
 92.1891 -
 92.1892 -///////////////////////////////////////////////////////////////////////////////
 92.1893 -// 5.6 Block Statements
 92.1894 -//
 92.1895 -block_statement ::=
 92.1896 -label_opt:label block_declarative:declarations block_body:body END id_opt SEMICOLON:end
 92.1897 -{:
 92.1898 -    int start = (label == null) ? declarationsleft : labelleft;
 92.1899 -    Identifier identifier = new Identifier(labelleft, labelright, label);
 92.1900 -    BlockStatement blockStatement = new BlockStatement (start, endleft, identifier, declarations, body);
 92.1901 -    RESULT = blockStatement;
 92.1902 -:}
 92.1903 -;
 92.1904 -
 92.1905 -block_declarative ::=
 92.1906 -{:
 92.1907 -    RESULT = null;
 92.1908 -:}
 92.1909 -| DECLARE:token declarative_part:declarativePart
 92.1910 -{:
 92.1911 -    Block declarations = new Block(tokenright, declarativePartleft, declarativePart);
 92.1912 -    RESULT = declarations;
 92.1913 -:}
 92.1914 -;
 92.1915 -
 92.1916 -block_body ::=
 92.1917 -BEGIN:token handled_stmt_s:statements
 92.1918 -{:
 92.1919 -    Block body = new Block(tokenright, statementsright, statements);
 92.1920 -    RESULT = body;
 92.1921 -:}
 92.1922 -;
 92.1923 -
 92.1924 -handled_stmt_s ::=
 92.1925 -sequence_of_statements:statements except_handler_part_opt
 92.1926 -{:
 92.1927 -    RESULT = statements;
 92.1928 -:}
 92.1929 -; 
 92.1930 -
 92.1931 -except_handler_part_opt ::=
 92.1932 -	| except_handler_part
 92.1933 -	;
 92.1934 -
 92.1935 -///////////////////////////////////////////////////////////////////////////////
 92.1936 -// 5.7 Exit Statements
 92.1937 -//
 92.1938 -exit_statement ::= 
 92.1939 -EXIT:token name_opt:loopName when_opt:whenCondition SEMICOLON:end
 92.1940 -{:
 92.1941 -    RESULT = new ExitStatement(tokenleft, endright, loopName, whenCondition); 
 92.1942 -:}
 92.1943 -;
 92.1944 -
 92.1945 -name_opt ::=
 92.1946 -{:
 92.1947 -    RESULT = null;
 92.1948 -:}
 92.1949 -| name:name
 92.1950 -{:
 92.1951 -    RESULT = name;
 92.1952 -:}
 92.1953 -;
 92.1954 -
 92.1955 -when_opt ::=
 92.1956 -{:
 92.1957 -    RESULT = null;
 92.1958 -:}
 92.1959 -| WHEN condition:cond
 92.1960 -{:
 92.1961 -    RESULT = cond;
 92.1962 -:}
 92.1963 -;
 92.1964 -
 92.1965 -///////////////////////////////////////////////////////////////////////////////
 92.1966 -// 6.5 Return Statements
 92.1967 -//
 92.1968 -return_statement ::= 
 92.1969 -RETURN:token SEMICOLON:end
 92.1970 -{:
 92.1971 -    RESULT = new ReturnStatement(tokenleft, endright);
 92.1972 -:}
 92.1973 -| RETURN:token expression:expr SEMICOLON:end
 92.1974 -{:
 92.1975 -    RESULT = new ReturnStatement(tokenleft, endright, expr);
 92.1976 -:}
 92.1977 -;
 92.1978 -
 92.1979 -///////////////////////////////////////////////////////////////////////////////
 92.1980 -// 5.8 Goto Statements
 92.1981 -//
 92.1982 -goto_statement ::= 
 92.1983 -GOTO:token name:labelName SEMICOLON:end
 92.1984 -{:
 92.1985 -    RESULT = new GotoStatement(tokenleft, endright, labelName);
 92.1986 -:}
 92.1987 -;
 92.1988 -
 92.1989 -///////////////////////////////////////////////////////////////////////////////
 92.1990 -// 6.1 Subprogram Declarations
 92.1991 -//
 92.1992 -subprog_declaration ::=
 92.1993 -subprogram_specification:subprog SEMICOLON:end
 92.1994 -{:
 92.1995 -    RESULT = new MethodDeclaration(subprogleft, endright, 0/*modifier*/, subprog);
 92.1996 -:}
 92.1997 -| generic_subp_inst:subprog SEMICOLON:end
 92.1998 -{:
 92.1999 -    RESULT = new MethodDeclaration(subprogleft, endright, 0/*modifier*/, subprog);
 92.2000 -:}
 92.2001 -| subprogram_specification:subprog IS ABSTRACT SEMICOLON:end
 92.2002 -{:
 92.2003 -    RESULT = new MethodDeclaration(subprogleft, endright, Ada95ASTParser.ABSTRACT, subprog);
 92.2004 -:}
 92.2005 -;
 92.2006 -
 92.2007 -subprogram_specification ::=
 92.2008 -PROCEDURE:procedure compound_name:procedureName formal_part_opt:formalPart
 92.2009 -{:
 92.2010 -    Identifier procedureId = new Identifier(procedureNameleft, procedureNameright, procedureName);
 92.2011 -    SubprogramSpecification subprogramSpecification = new SubprogramSpecification(procedureleft, formalPartright, procedureId, formalPart);
 92.2012 -    RESULT = subprogramSpecification;
 92.2013 -:}
 92.2014 -| FUNCTION:function designator:functionName formal_part_opt:formalPart RETURN name:subtypeMark
 92.2015 -{:
 92.2016 -    Identifier functionId = new Identifier(functionNameleft, functionNameright, functionName);
 92.2017 -    Identifier subtypeReturn = new Identifier(subtypeMarkleft, subtypeMarkright, subtypeMark);
 92.2018 -    SubprogramSpecification subprogramSpecification = new SubprogramSpecification(functionleft, subtypeMarkright, functionId, formalPart, subtypeReturn);
 92.2019 -    RESULT = subprogramSpecification;
 92.2020 -:}
 92.2021 -| FUNCTION:function designator:functionName  /* for generic inst and generic rename */
 92.2022 -{:
 92.2023 -    Identifier functionId = new Identifier(functionNameleft, functionNameright, functionName);
 92.2024 -    SubprogramSpecification subprogramSpecification = new SubprogramSpecification(functionleft, functionNameright, functionId);
 92.2025 -    RESULT = subprogramSpecification;
 92.2026 -:}
 92.2027 -;
 92.2028 -
 92.2029 -designator ::=
 92.2030 -compound_name:name
 92.2031 -{:
 92.2032 -    RESULT = name;
 92.2033 -:}
 92.2034 -| operator_symbol:name
 92.2035 -{:
 92.2036 -    RESULT = name;
 92.2037 -:}
 92.2038 -;
 92.2039 -
 92.2040 -formal_part_opt ::=
 92.2041 -// empty
 92.2042 -{:
 92.2043 -	List list = new LinkedList();
 92.2044 -	RESULT = list;
 92.2045 -:}
 92.2046 -| formal_part:list
 92.2047 -{:
 92.2048 -	RESULT = list;
 92.2049 -:}
 92.2050 -;
 92.2051 -
 92.2052 -formal_part ::=
 92.2053 -LPAREN param_s:list RPAREN
 92.2054 -{:
 92.2055 -	RESULT = list;
 92.2056 -:}
 92.2057 -;
 92.2058 -
 92.2059 -param_s ::=
 92.2060 -param:parameter
 92.2061 -{:
 92.2062 -    List list = new LinkedList();
 92.2063 -    list.addAll(parameter);
 92.2064 -    RESULT = list;
 92.2065 -:}
 92.2066 -| param_s:list SEMICOLON param:parameter
 92.2067 -{:
 92.2068 -    list.addAll(parameter);
 92.2069 -    RESULT = list;
 92.2070 -:}
 92.2071 -;
 92.2072 -
 92.2073 -param ::=
 92.2074 -defining_identifier_list:identifierList COLON mode:mode subtype_mark:subtype init_opt:init
 92.2075 -{:
 92.2076 -    List list = new LinkedList();
 92.2077 -    Identifier subtypeId = new Identifier(subtypeleft, subtyperight, subtype);
 92.2078 -    TypeName typeName = new TypeName(subtypeleft, subtyperight, subtypeId);
 92.2079 -    for (Object item : identifierList) {
 92.2080 -        Identifier identifier = (Identifier)item;
 92.2081 -        Variable variable = new Variable (identifier.getStartOffset(), identifier.getEndOffset(), identifier);
 92.2082 -	    int end = init == null ? subtyperight : initright;
 92.2083 -        FormalParameter parameter = new FormalParameter(identifierListleft, end, variable, mode, typeName, init);
 92.2084 -    	list.add(parameter);
 92.2085 -    }
 92.2086 -    RESULT = list;
 92.2087 -:}
 92.2088 -| error:theError SEMICOLON /* error statement */
 92.2089 -{:
 92.2090 -    List list = new LinkedList();
 92.2091 -    ASTError error = new ASTError(theErrorleft, theErrorright);
 92.2092 -    list.add(error);
 92.2093 -    RESULT = list;
 92.2094 -:}
 92.2095 -;
 92.2096 -
 92.2097 -mode ::=
 92.2098 -// empty
 92.2099 -{:
 92.2100 -    RESULT = FormalParameter.Mode.IN;
 92.2101 -:}
 92.2102 -| IN
 92.2103 -{:
 92.2104 -    RESULT = FormalParameter.Mode.IN;
 92.2105 -:}
 92.2106 -| OUT
 92.2107 -{:
 92.2108 -    RESULT = FormalParameter.Mode.OUT;
 92.2109 -:}
 92.2110 -| IN OUT
 92.2111 -{:
 92.2112 -    RESULT = FormalParameter.Mode.IN_OUT;
 92.2113 -:}
 92.2114 -| ACCESS
 92.2115 -{:
 92.2116 -    RESULT = FormalParameter.Mode.ACCESS;
 92.2117 -:}
 92.2118 -;
 92.2119 -
 92.2120 -// TODO: manage the overload operators ex: "+" "and" ecc.
 92.2121 -operator_symbol ::=
 92.2122 -STRING_LITERAL:stringLiteral
 92.2123 -{:
 92.2124 -    RESULT = stringLiteral;
 92.2125 -:}
 92.2126 -;
 92.2127 -
 92.2128 -subprogram_body ::=
 92.2129 -subprogram_specification:subprog IS
 92.2130 -declarative_part:declarativePart block_body:body END id_opt:idOpt SEMICOLON:end
 92.2131 -{:
 92.2132 -    if (idOpt != null && !idOpt.equalsIgnoreCase (subprog.getSubprogramName().getName())) {
 92.2133 -        this.parser.message_error("mispelling of " + subprog.getSubprogramName().getName());
 92.2134 -    } else {
 92.2135 -        Block declarations = new Block(subprogright, bodyleft, declarativePart);
 92.2136 -        body.setEndOffset(endright);
 92.2137 -        Identifier nameEnd = new Identifier(idOptleft, idOptright, idOpt);
 92.2138 -        SubprogramBody subprogramBody = new SubprogramBody(subprogleft, endright, subprog, declarations, body, nameEnd);
 92.2139 -        MethodDeclaration methodDeclaration = new MethodDeclaration(subprogleft, endright, 0/*modifier*/, subprogramBody);
 92.2140 -        RESULT = methodDeclaration;
 92.2141 -    }
 92.2142 -:}
 92.2143 -;
 92.2144 -
 92.2145 -///////////////////////////////////////////////////////////////////////////////
 92.2146 -// 6.4 Subprogram Calls
 92.2147 -//
 92.2148 -procedure_call_statement ::=
 92.2149 -name SEMICOLON
 92.2150 -;
 92.2151 -
 92.2152 -
 92.2153 -///////////////////////////////////////////////////////////////////////////////
 92.2154 -// 7.1 Package Specifications and Declarations
 92.2155 -//
 92.2156 -package_declaration ::= 
 92.2157 -package_specification:statement SEMICOLON
 92.2158 -{:
 92.2159 -    RESULT = statement;
 92.2160 -:}
 92.2161 -| generic_package_instantiation SEMICOLON
 92.2162 -;
 92.2163 -
 92.2164 -package_specification ::= 
 92.2165 -PACKAGE:declarationStart compound_name:packageName IS:blockStart
 92.2166 -  declarative_items_opt:declarativeItems private_part:privateDeclarativeItems
 92.2167 -END:declarationEnd compound_name_opt:packageNameEnd
 92.2168 -{:
 92.2169 -    if (packageNameEnd != null && !packageNameEnd.equalsIgnoreCase (packageName)) {
 92.2170 -        this.parser.message_error("mispelling of " + packageName);
 92.2171 -    }
 92.2172 -    else {
 92.2173 -        Identifier packageId = new Identifier(packageNameleft, packageNameright, packageName);
 92.2174 -        Identifier packageIdEnd = new Identifier(packageNameEndleft, packageNameEndright, packageNameEnd);
 92.2175 -        declarativeItems.addAll (privateDeclarativeItems);
 92.2176 -        // Add private part on block statements
 92.2177 -        Block block = new Block(blockStartleft, declarationEndright, declarativeItems);
 92.2178 -        PackageSpecification packageSpecification = new PackageSpecification(declarationStartleft, declarationEndright, packageId, packageIdEnd, block);
 92.2179 -        RESULT = packageSpecification;
 92.2180 -    }
 92.2181 -:}
 92.2182 -;
 92.2183 -
 92.2184 -private_part ::=
 92.2185 -{:
 92.2186 -    RESULT = new LinkedList();
 92.2187 -:}
 92.2188 -| PRIVATE declarative_items_opt:declarativeItems
 92.2189 -{:
 92.2190 -    RESULT = this.parser.setModifier (declarativeItems, Ada95ASTParser.PRIVATE);
 92.2191 -:}
 92.2192 -;
 92.2193 -
 92.2194 -compound_name_opt ::=
 92.2195 -// empty
 92.2196 -| compound_name:compoundName
 92.2197 -{:
 92.2198 -    RESULT = compoundName;
 92.2199 -:}
 92.2200 -;
 92.2201 -
 92.2202 -///////////////////////////////////////////////////////////////////////////////
 92.2203 -// 7.2 Package Bodies
 92.2204 -//
 92.2205 -package_body ::=
 92.2206 -PACKAGE:declarationStart BODY compound_name:packageName IS:blockStart
 92.2207 -  declarative_part:declarativePart body_opt END compound_name_opt:packageNameEnd SEMICOLON:declarationEnd
 92.2208 -{:
 92.2209 -    if (packageNameEnd != null && !packageNameEnd.equalsIgnoreCase (packageName)) {
 92.2210 -        this.parser.message_error("mispelling of " + packageName);
 92.2211 -    }
 92.2212 -    else {
 92.2213 -        Identifier packageId = new Identifier(packageNameleft, packageNameright, packageName);
 92.2214 -        Identifier packageIdEnd = new Identifier(packageNameEndleft, packageNameEndright, packageNameEnd);
 92.2215 -
 92.2216 -        List list = this.parser.setModifier (declarativePart, Ada95ASTParser.PRIVATE);
 92.2217 -        Block block = new Block(blockStartleft, declarationEndright, list);
 92.2218 -
 92.2219 -        PackageBody packageBody = new PackageBody(declarationStartleft, declarationEndright, packageId, packageIdEnd, block);
 92.2220 -        RESULT = packageBody;
 92.2221 -    }
 92.2222 -:}
 92.2223 -;
 92.2224 -
 92.2225 -body_opt ::=
 92.2226 -	| block_body
 92.2227 -	;
 92.2228 -
 92.2229 -///////////////////////////////////////////////////////////////////////////////
 92.2230 -// 7.3 Private Types and Private Extensions
 92.2231 -//
 92.2232 -private_type_declaration ::=
 92.2233 -tagged_opt:tagged limited_opt:limited PRIVATE:privateKeyword
 92.2234 -{:
 92.2235 -    PrivateType privateType = new PrivateType(taggedleft, privateKeywordright, tagged + limited + Ada95ASTParser.PRIVATE);
 92.2236 -    RESULT = privateType;
 92.2237 -:}
 92.2238 -;
 92.2239 -
 92.2240 -limited_opt ::=
 92.2241 -{:
 92.2242 -    RESULT = 0;
 92.2243 -:}
 92.2244 -| LIMITED
 92.2245 -{:
 92.2246 -    RESULT = Ada95ASTParser.LIMITED;
 92.2247 -:}
 92.2248 -;
 92.2249 -
 92.2250 -///////////////////////////////////////////////////////////////////////////////
 92.2251 -// 8.4 Use Clauses
 92.2252 -//
 92.2253 -use_clause ::= 
 92.2254 -USE:token package_name_list:packageList SEMICOLON:end
 92.2255 -{:
 92.2256 -    RESULT = new Use(tokenleft, endright, packageList);
 92.2257 -:}
 92.2258 -| USE:token TYPE subtype_mark_list:subTypeList SEMICOLON:end
 92.2259 -{:
 92.2260 -    RESULT = new UseType(tokenleft, endright, subTypeList);
 92.2261 -:}
 92.2262 -;
 92.2263 -
 92.2264 -package_name_list ::=
 92.2265 -name:name
 92.2266 -{:
 92.2267 -    List idList = new LinkedList();
 92.2268 -    Identifier id = new Identifier(nameleft, nameright, name);
 92.2269 -    PackageName packageName = new PackageName(nameleft, nameright, id);
 92.2270 -    idList.add(packageName);
 92.2271 -    RESULT = idList;
 92.2272 -:}
 92.2273 -| package_name_list:idList COMMA name:name
 92.2274 -{:
 92.2275 -    Identifier id = new Identifier(nameleft, nameright, name);
 92.2276 -    PackageName packageName = new PackageName(nameleft, nameright, id);
 92.2277 -    idList.add(packageName);
 92.2278 -    RESULT = idList;
 92.2279 -:}
 92.2280 -;
 92.2281 -
 92.2282 -subtype_mark_list ::=
 92.2283 -name:name
 92.2284 -{:
 92.2285 -    List idList = new LinkedList();
 92.2286 -    Identifier id = new Identifier(nameleft, nameright, name);
 92.2287 -    TypeName typeName = new TypeName(nameleft, nameright, id);
 92.2288 -    idList.add(typeName);
 92.2289 -    RESULT = idList;
 92.2290 -:}
 92.2291 -| subtype_mark_list:idList COMMA name:name
 92.2292 -{:
 92.2293 -    Identifier id = new Identifier(nameleft, nameright, name);
 92.2294 -    TypeName typeName = new TypeName(nameleft, nameright, id);
 92.2295 -    idList.add(typeName);
 92.2296 -    RESULT = idList;
 92.2297 -:}
 92.2298 -;
 92.2299 -
 92.2300 -
 92.2301 -///////////////////////////////////////////////////////////////////////////////
 92.2302 -// 8.5 Renaming Declarations
 92.2303 -//
 92.2304 -renaming_declaration ::=
 92.2305 -defining_identifier_list COLON object_qualifier_opt subtype_indication RENAMES name SEMICOLON
 92.2306 -| defining_identifier_list COLON EXCEPTION RENAMES name SEMICOLON
 92.2307 -| rename_unit:unit
 92.2308 -{:
 92.2309 -    RESULT = unit;
 92.2310 -:}
 92.2311 -;
 92.2312 -
 92.2313 -rename_unit ::= 
 92.2314 -PACKAGE:token compound_name:name RENAMES name:renames SEMICOLON:end
 92.2315 -{:
 92.2316 -    Identifier packageNameId = new Identifier(nameleft, nameright, name);
 92.2317 -    Identifier packageRenamesId = new Identifier(renamesleft, renamesright, renames);
 92.2318 -    PackageRenames packageRenames = new PackageRenames(tokenleft, endright, packageNameId, packageRenamesId);
 92.2319 -    RESULT = packageRenames;
 92.2320 -:}
 92.2321 -| subprogram_specification RENAMES name SEMICOLON:end
 92.2322 -| generic_formal_part PACKAGE compound_name RENAMES name SEMICOLON
 92.2323 -| generic_formal_part subprogram_specification RENAMES name SEMICOLON
 92.2324 -;
 92.2325 -
 92.2326 -task_decl ::= task_spec SEMICOLON
 92.2327 -	;
 92.2328 -
 92.2329 -task_spec ::= TASK simple_name task_def
 92.2330 -	| TASK TYPE simple_name discrim_part_opt task_def
 92.2331 -	;
 92.2332 -
 92.2333 -task_def ::=
 92.2334 -	| IS entry_decl_s rep_spec_s task_private_opt END id_opt
 92.2335 -	;
 92.2336 -
 92.2337 -task_private_opt ::=
 92.2338 -	| PRIVATE entry_decl_s rep_spec_s
 92.2339 -	;
 92.2340 -
 92.2341 -task_body ::= TASK BODY simple_name IS
 92.2342 -	       declarative_part block_body END id_opt SEMICOLON
 92.2343 -	;
 92.2344 -
 92.2345 -prot_decl ::= prot_spec SEMICOLON
 92.2346 -	;
 92.2347 -
 92.2348 -prot_spec ::= PROTECTED IDENTIFIER prot_def
 92.2349 -	| PROTECTED TYPE simple_name discrim_part_opt prot_def
 92.2350 -	;
 92.2351 -
 92.2352 -prot_def ::= IS prot_op_decl_s prot_private_opt END id_opt
 92.2353 -	;
 92.2354 -
 92.2355 -prot_private_opt ::=
 92.2356 -	| PRIVATE prot_elem_decl_s
 92.2357 -	;
 92.2358 -
 92.2359 -prot_op_decl_s ::= 
 92.2360 -	| prot_op_decl_s prot_op_decl
 92.2361 -	;
 92.2362 -
 92.2363 -prot_op_decl ::= entry_decl
 92.2364 -	| subprogram_specification SEMICOLON
 92.2365 -	| rep_spec
 92.2366 -	| pragma
 92.2367 -	;
 92.2368 -
 92.2369 -prot_elem_decl_s ::= 
 92.2370 -	| prot_elem_decl_s prot_elem_decl
 92.2371 -	;
 92.2372 -
 92.2373 -prot_elem_decl ::= prot_op_decl | comp_decl ;
 92.2374 -
 92.2375 -/////////////////////////////////////////////////////////////////
 92.2376 -// 9.4 Protected Units and Protected Objects
 92.2377 -//
 92.2378 -protected_body ::= 
 92.2379 -PROTECTED BODY simple_name:name IS
 92.2380 -prot_op_body_s END id_opt SEMICOLON
 92.2381 -;
 92.2382 -
 92.2383 -prot_op_body_s ::= pragma_s
 92.2384 -	| prot_op_body_s prot_op_body pragma_s
 92.2385 -	;
 92.2386 -
 92.2387 -prot_op_body ::= entry_body
 92.2388 -	| subprogram_body
 92.2389 -	| subprogram_specification SEMICOLON
 92.2390 -	;
 92.2391 -
 92.2392 -entry_decl_s ::= pragma_s
 92.2393 -	| entry_decl_s entry_decl pragma_s
 92.2394 -	;
 92.2395 -
 92.2396 -entry_decl ::= ENTRY IDENTIFIER formal_part_opt SEMICOLON
 92.2397 -	| ENTRY IDENTIFIER LPAREN discrete_range RPAREN formal_part_opt SEMICOLON
 92.2398 -	;
 92.2399 -
 92.2400 -entry_body ::= ENTRY IDENTIFIER formal_part_opt WHEN condition entry_body_part
 92.2401 -	| ENTRY IDENTIFIER LPAREN iter_part discrete_range RPAREN 
 92.2402 -		formal_part_opt WHEN condition entry_body_part
 92.2403 -	;
 92.2404 -
 92.2405 -entry_body_part ::= SEMICOLON
 92.2406 -	| IS declarative_part block_body END id_opt SEMICOLON
 92.2407 -	;
 92.2408 -
 92.2409 -rep_spec_s ::=
 92.2410 -	| rep_spec_s rep_spec pragma_s
 92.2411 -	;
 92.2412 -
 92.2413 -entry_call ::= 
 92.2414 -procedure_call_statement:statement
 92.2415 -{:
 92.2416 -    RESULT = statement;
 92.2417 -:}
 92.2418 -;
 92.2419 -
 92.2420 -accept_stmt ::= accept_hdr SEMICOLON
 92.2421 -	| accept_hdr DO handled_stmt_s END id_opt SEMICOLON
 92.2422 -	;
 92.2423 -
 92.2424 -accept_hdr ::= ACCEPT entry_name formal_part_opt
 92.2425 -	;
 92.2426 -
 92.2427 -entry_name ::= simple_name
 92.2428 -	| entry_name LPAREN expression RPAREN
 92.2429 -	;
 92.2430 -
 92.2431 -/////////////////////////////////////////////////////////////////
 92.2432 -// 9.6 Delay Statements, Duration, and Time
 92.2433 -//
 92.2434 -delay_statement ::=
 92.2435 -DELAY:token expression:expr SEMICOLON:end
 92.2436 -{:
 92.2437 -    RESULT = new ReturnStatement(tokenleft, endright, expr);
 92.2438 -:}
 92.2439 -| DELAY:token UNTIL expression:expr SEMICOLON:end
 92.2440 -{:
 92.2441 -    RESULT = new ReturnStatement(tokenleft, endright, expr);
 92.2442 -:}
 92.2443 -;
 92.2444 -
 92.2445 -select_stmt ::= select_wait
 92.2446 -	| async_select
 92.2447 -	| timed_entry_call
 92.2448 -	| cond_entry_call
 92.2449 -	;
 92.2450 -
 92.2451 -select_wait ::= SELECT guarded_select_alt or_select else_opt
 92.2452 -	      END SELECT SEMICOLON
 92.2453 -	;
 92.2454 -
 92.2455 -guarded_select_alt ::= select_alt
 92.2456 -	| WHEN condition ARROW select_alt
 92.2457 -	;
 92.2458 -
 92.2459 -or_select ::=
 92.2460 -	| or_select OR guarded_select_alt
 92.2461 -	;
 92.2462 -
 92.2463 -select_alt ::= accept_stmt stmts_opt
 92.2464 -	| delay_statement stmts_opt
 92.2465 -	| TERMINATE SEMICOLON
 92.2466 -	;
 92.2467 -
 92.2468 -delay_or_entry_alt ::= delay_statement stmts_opt
 92.2469 -	| entry_call stmts_opt
 92.2470 -	;
 92.2471 -
 92.2472 -async_select ::= SELECT delay_or_entry_alt
 92.2473 -	       THEN ABORT sequence_of_statements
 92.2474 -	       END SELECT SEMICOLON
 92.2475 -	;
 92.2476 -
 92.2477 -timed_entry_call ::= SELECT entry_call stmts_opt 
 92.2478 -		   OR delay_statement stmts_opt
 92.2479 -	           END SELECT SEMICOLON
 92.2480 -	;
 92.2481 -
 92.2482 -cond_entry_call ::= SELECT entry_call stmts_opt 
 92.2483 -		  ELSE sequence_of_statements
 92.2484 -	          END SELECT SEMICOLON
 92.2485 -	;
 92.2486 -
 92.2487 -stmts_opt ::=
 92.2488 -	| sequence_of_statements
 92.2489 -	;
 92.2490 -
 92.2491 -///////////////////////////////////////////////////////////////////////////////
 92.2492 -// 9.8 Abort of a Task - Abort of a Sequence of Statements
 92.2493 -//
 92.2494 -abort_statement ::=
 92.2495 -ABORT:token task_name_list:taskList SEMICOLON:end
 92.2496 -{:
 92.2497 -    RESULT = new AbortStatement(tokenleft, endright, taskList);
 92.2498 -:}
 92.2499 -;
 92.2500 -
 92.2501 -task_name_list ::=
 92.2502 -name:name
 92.2503 -{:
 92.2504 -    List idList = new LinkedList();
 92.2505 -    Identifier id = new Identifier(nameleft, nameright, name);
 92.2506 -    TaskName taskName = new TaskName(nameleft, nameright, id);
 92.2507 -    idList.add(taskName);
 92.2508 -    RESULT = idList;
 92.2509 -:}
 92.2510 -| task_name_list:idList COMMA name:name
 92.2511 -{:
 92.2512 -    Identifier id = new Identifier(nameleft, nameright, name);
 92.2513 -    TaskName taskName = new TaskName(nameleft, nameright, id);
 92.2514 -    idList.add(taskName);
 92.2515 -    RESULT = idList;
 92.2516 -:}
 92.2517 -;
 92.2518 -
 92.2519 -///////////////////////////////////////////////////////////////////////////////
 92.2520 -// 10.1.1 Compilation Units - Library Units
 92.2521 -//
 92.2522 -compilation ::=
 92.2523 -compilation_units:units
 92.2524 -{:
 92.2525 -    Ada95ASTLexer adaAstLexer = (Ada95ASTLexer) parser.getScanner();
 92.2526 -    List comments = adaAstLexer.getCommentList();
 92.2527 -    Program program = new Program(unitsleft, unitsright, units, comments);
 92.2528 -    RESULT = program;
 92.2529 -:}
 92.2530 -;
 92.2531 -
 92.2532 -compilation_units ::=
 92.2533 -{:
 92.2534 -    RESULT = new LinkedList();
 92.2535 -:}
 92.2536 -| compilation_units:units compilation_unit:unit
 92.2537 -{:
 92.2538 -    if(units != null) {
 92.2539 -        units.add(unit);
 92.2540 -    }
 92.2541 -    RESULT = units;
 92.2542 -:}
 92.2543 -| pragma pragma_s  // 10.1.5 - 4
 92.2544 -{:
 92.2545 -    RESULT = new LinkedList();
 92.2546 -:}
 92.2547 -;
 92.2548 -
 92.2549 -compilation_unit ::=
 92.2550 -context_clause private_opt unit:unit pragma_s
 92.2551 -{:
 92.2552 -    RESULT = unit;
 92.2553 -:}
 92.2554 -| private_opt unit:unit pragma_s  // 10.1.5 - 5/1
 92.2555 -{:
 92.2556 -    RESULT = unit;
 92.2557 -:}
 92.2558 -;
 92.2559 -
 92.2560 -private_opt ::=
 92.2561 -| PRIVATE
 92.2562 -;
 92.2563 -
 92.2564 -unit ::= 
 92.2565 -package_declaration:statement
 92.2566 -{:
 92.2567 -    RESULT = statement;
 92.2568 -:}
 92.2569 -| package_body:statement
 92.2570 -{:
 92.2571 -    RESULT = statement;
 92.2572 -:}
 92.2573 -| subprog_declaration:statement
 92.2574 -{:
 92.2575 -    RESULT = statement;
 92.2576 -:}
 92.2577 -| subprogram_body:statement
 92.2578 -{:
 92.2579 -    RESULT = statement;
 92.2580 -:}
 92.2581 -| subunit:statement
 92.2582 -{:
 92.2583 -    RESULT = statement;
 92.2584 -:}
 92.2585 -| generic_declaration:statement
 92.2586 -{:
 92.2587 -    RESULT = statement;
 92.2588 -:}
 92.2589 -| rename_unit
 92.2590 -;
 92.2591 -
 92.2592 -///////////////////////////////////////////////////////////////////////////////
 92.2593 -// 10.1.2 Context Clauses - With Clauses
 92.2594 -//
 92.2595 -context_clause ::= 
 92.2596 -with_clause:statement
 92.2597 -{:
 92.2598 -    RESULT = statement;
 92.2599 -:}
 92.2600 -| use_clause:statement
 92.2601 -{:
 92.2602 -    RESULT = statement;
 92.2603 -:}
 92.2604 -| context_clause with_clause:statement
 92.2605 -{:
 92.2606 -    RESULT = statement;
 92.2607 -:}
 92.2608 -| context_clause use_clause:statement
 92.2609 -{:
 92.2610 -    RESULT = statement;
 92.2611 -:}
 92.2612 -| context_clause pragma
 92.2613 -;
 92.2614 -
 92.2615 -with_clause ::= 
 92.2616 -WITH:token library_unit_name_list:packageList SEMICOLON:end
 92.2617 -{:
 92.2618 -    RESULT = new With(tokenleft, endright, packageList);
 92.2619 -:}
 92.2620 -;
 92.2621 -
 92.2622 -///////////////////////////////////////////////////////////////////////////////
 92.2623 -// 10.1.3 Subunits of Compilation Units
 92.2624 -//
 92.2625 -subunit ::=
 92.2626 -SEPARATE LPAREN compound_name RPAREN
 92.2627 -proper_body:statement
 92.2628 -{:
 92.2629 -    RESULT = statement;
 92.2630 -:}
 92.2631 -;
 92.2632 -
 92.2633 -
 92.2634 -body_stub ::= 
 92.2635 -TASK BODY simple_name IS SEPARATE SEMICOLON
 92.2636 -| PACKAGE BODY compound_name IS SEPARATE SEMICOLON
 92.2637 -| subprogram_specification:subprog IS SEPARATE SEMICOLON
 92.2638 -{:
 92.2639 -    RESULT = subprog;
 92.2640 -:}
 92.2641 -| PROTECTED BODY simple_name IS SEPARATE SEMICOLON
 92.2642 -;
 92.2643 -
 92.2644 -exception_decl ::= defining_identifier_list COLON EXCEPTION SEMICOLON
 92.2645 -	;
 92.2646 -
 92.2647 -except_handler_part ::= EXCEPTION exception_handler
 92.2648 -	| except_handler_part exception_handler
 92.2649 -	;
 92.2650 -
 92.2651 -exception_handler ::= WHEN except_choice_s ARROW sequence_of_statements
 92.2652 -	| WHEN IDENTIFIER COLON except_choice_s ARROW sequence_of_statements
 92.2653 -	;
 92.2654 -
 92.2655 -except_choice_s ::= except_choice
 92.2656 -	| except_choice_s BAR except_choice
 92.2657 -	;
 92.2658 -
 92.2659 -except_choice ::= name
 92.2660 -	| OTHERS
 92.2661 -	;
 92.2662 -
 92.2663 -///////////////////////////////////////////////////////////////////////////////
 92.2664 -// 11.3 Raise Statements
 92.2665 -//
 92.2666 -raise_statement ::=
 92.2667 -RAISE:token name_opt:exceptionName SEMICOLON:end
 92.2668 -{:
 92.2669 -    RESULT = new RaiseStatement(tokenleft, endright, exceptionName); 
 92.2670 -:}
 92.2671 -;
 92.2672 -
 92.2673 -requeue_stmt ::= REQUEUE name SEMICOLON
 92.2674 -	| REQUEUE name WITH ABORT SEMICOLON
 92.2675 -	;
 92.2676 -
 92.2677 -///////////////////////////////////////////////////////////////////////////////
 92.2678 -// 12.1 Generic Declarations
 92.2679 -//
 92.2680 -generic_declaration ::= 
 92.2681 -generic_formal_part subprogram_specification SEMICOLON
 92.2682 -| generic_formal_part package_specification:statement SEMICOLON
 92.2683 -{:
 92.2684 -    RESULT = statement;
 92.2685 -:}
 92.2686 -;
 92.2687 -
 92.2688 -generic_formal_part ::= GENERIC
 92.2689 -	| generic_formal_part generic_formal
 92.2690 -	;
 92.2691 -
 92.2692 -generic_formal ::= param SEMICOLON
 92.2693 -	| TYPE simple_name generic_discrim_part_opt IS generic_type_def SEMICOLON
 92.2694 -	| WITH PROCEDURE simple_name 
 92.2695 -	    formal_part_opt subp_default SEMICOLON
 92.2696 -	| WITH FUNCTION designator 
 92.2697 -	    formal_part_opt RETURN name subp_default SEMICOLON
 92.2698 -	| WITH PACKAGE simple_name IS NEW name LPAREN BOX RPAREN SEMICOLON
 92.2699 -	| WITH PACKAGE simple_name IS NEW name SEMICOLON
 92.2700 -	| use_clause
 92.2701 -	;
 92.2702 -
 92.2703 -generic_discrim_part_opt ::=
 92.2704 -	| discrim_part
 92.2705 -	| LPAREN BOX RPAREN
 92.2706 -	;
 92.2707 -
 92.2708 -subp_default ::=
 92.2709 -	| IS name
 92.2710 -	| IS BOX
 92.2711 -	;
 92.2712 -
 92.2713 -generic_type_def ::= LPAREN BOX RPAREN
 92.2714 -	| RANGE BOX
 92.2715 -	| MOD BOX
 92.2716 -	| DELTA BOX
 92.2717 -	| DELTA BOX DIGITS BOX
 92.2718 -	| DIGITS BOX
 92.2719 -	| array_type
 92.2720 -	| access_type
 92.2721 -	| private_type_declaration
 92.2722 -	| generic_derived_type
 92.2723 -	;
 92.2724 -
 92.2725 -generic_derived_type ::= NEW subtype_indication
 92.2726 -	| NEW subtype_indication WITH PRIVATE
 92.2727 -	| ABSTRACT NEW subtype_indication WITH PRIVATE
 92.2728 -	;
 92.2729 -
 92.2730 -generic_subp_inst ::=
 92.2731 -subprogram_specification:subprog IS generic_inst
 92.2732 -{:
 92.2733 -    RESULT = subprog;
 92.2734 -:}
 92.2735 -;
 92.2736 -
 92.2737 -// 12.3
 92.2738 -generic_package_instantiation ::=
 92.2739 -PACKAGE compound_name IS generic_inst
 92.2740 -;
 92.2741 -
 92.2742 -generic_inst ::= NEW name
 92.2743 -;
 92.2744 -
 92.2745 -rep_spec ::= attrib_def
 92.2746 -	| record_type_spec
 92.2747 -	| address_spec
 92.2748 -	;
 92.2749 -
 92.2750 -attrib_def ::= FOR subtype_mark USE expression SEMICOLON
 92.2751 -	;
 92.2752 -
 92.2753 -record_type_spec ::= FOR subtype_mark USE RECORD align_opt comp_loc_s END RECORD SEMICOLON
 92.2754 -	;
 92.2755 -
 92.2756 -align_opt ::=
 92.2757 -	| AT MOD expression SEMICOLON
 92.2758 -	;
 92.2759 -
 92.2760 -comp_loc_s ::=
 92.2761 -	| comp_loc_s subtype_mark AT expression RANGE range SEMICOLON
 92.2762 -	;
 92.2763 -
 92.2764 -address_spec ::= FOR subtype_mark USE AT expression SEMICOLON
 92.2765 -	;
 92.2766 -
 92.2767 -///////////////////////////////////////////////////////////////////////////////
 92.2768 -// 13.8 Machine Code Insertions
 92.2769 -//
 92.2770 -code_statement ::=
 92.2771 -qualified_expression:expr SEMICOLON:end
 92.2772 -{:
 92.2773 -    RESULT = new CodeStatement (exprleft, endright, expr);
 92.2774 -:}
 92.2775 -;
 92.2776 \ No newline at end of file
    93.1 --- a/ada.editor/src/org/netbeans/modules/ada/editor/parser/resources/Ada95Parser.cup	Tue Oct 02 21:55:21 2012 -0400
    93.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    93.3 @@ -1,1510 +0,0 @@
    93.4 -/*
    93.5 - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
    93.6 - *
    93.7 - * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
    93.8 - *
    93.9 - * The contents of this file are subject to the terms of either the GNU
   93.10 - * General Public License Version 2 only ("GPL") or the Common
   93.11 - * Development and Distribution License("CDDL") (collectively, the
   93.12 - * "License"). You may not use this file except in compliance with the
   93.13 - * License. You can obtain a copy of the License at
   93.14 - * http://www.netbeans.org/cddl-gplv2.html
   93.15 - * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
   93.16 - * specific language governing permissions and limitations under the
   93.17 - * License.  When distributing the software, include this License Header
   93.18 - * Notice in each file and include the License file at
   93.19 - * nbbuild/licenses/CDDL-GPL-2-CP.  Sun designates this
   93.20 - * particular file as subject to the "Classpath" exception as provided
   93.21 - * by Sun in the GPL Version 2 section of the License file that
   93.22 - * accompanied this code. If applicable, add the following below the
   93.23 - * License Header, with the fields enclosed by brackets [] replaced by
   93.24 - * your own identifying information:
   93.25 - * "Portions Copyrighted [year] [name of copyright owner]"
   93.26 - *
   93.27 - * If you wish your version of this file to be governed by only the CDDL
   93.28 - * or only the GPL Version 2, indicate your decision by adding
   93.29 - * "[Contributor] elects to include this software in this distribution
   93.30 - * under the [CDDL or GPL Version 2] license." If you do not indicate a
   93.31 - * single choice of license, a recipient has the option to distribute
   93.32 - * your version of this file under either the CDDL, the GPL Version 2 or
   93.33 - * to extend the choice of license to its licensees as provided above.
   93.34 - * However, if you add GPL Version 2 code and therefore, elected the GPL
   93.35 - * Version 2 license, then the option applies only if the new code is
   93.36 - * made subject to such option by the copyright holder.
   93.37 - *
   93.38 - * Contributor(s):
   93.39 - *
   93.40 - * Portions Copyrighted 2008 Sun Microsystems, Inc.
   93.41 - */
   93.42 -package org.netbeans.modules.ada.editor.parser;
   93.43 -
   93.44 -import org.netbeans.modules.ada.editor.lexer.Ada95ASTLexer;
   93.45 -
   93.46 -parser code {:
   93.47 -
   93.48 -    private ErrorStrategy defaultStrategy = new DefaultErrorStrategy();;
   93.49 -    private ErrorStrategy errorStrategy = defaultStrategy;
   93.50 -
   93.51 -    private ParserErrorHandler errorHandler = null;
   93.52 -
   93.53 -    public void setErrorHandler (ParserErrorHandler handler) {
   93.54 -        this.errorHandler = handler;
   93.55 -    }
   93.56 -
   93.57 -    public ParserErrorHandler getErrorHandler () {
   93.58 -        return this.errorHandler;
   93.59 -    }
   93.60 -
   93.61 -    interface ErrorStrategy {
   93.62 -        public boolean errorRecovery(boolean debug) throws Exception;
   93.63 -    }
   93.64 -
   93.65 -    class DefaultErrorStrategy implements ErrorStrategy {
   93.66 -
   93.67 -        public boolean errorRecovery(boolean debug) throws Exception {
   93.68 -            return Ada95ASTParser.super.error_recovery(debug);
   93.69 -        }
   93.70 -    }
   93.71 -
   93.72 -    /**
   93.73 -     * Attempt to recover from a syntax error.  This returns false if recovery fails,
   93.74 -     * true if it succeeds.
   93.75 -     * @param debug should we produce debugging messages as we parse.
   93.76 -     */
   93.77 -    @Override
   93.78 -    protected boolean error_recovery(boolean debug) throws java.lang.Exception {
   93.79 -        return errorStrategy.errorRecovery(debug);
   93.80 -    }
   93.81 -
   93.82 -    /**
   93.83 -     * Report a non fatal error (or warning).  This method takes a message
   93.84 -     * string and an additional object (to be used by specializations implemented in subclasses).
   93.85 -     * The super class prints the message to System.err.
   93.86 -     * @param message an error message.
   93.87 -     * @param info    an extra object reserved for use by specialized subclasses.
   93.88 -     */
   93.89 -    @Override
   93.90 -    public void report_error(String message, Object info) {
   93.91 -        System.out.print("report_eror"  + message);
   93.92 -    }	
   93.93 -
   93.94 -    /**
   93.95 -     * This method is called when a syntax error has been detected and recovery is about to be invoked.
   93.96 -     * The super class just emit a "Syntax error" error message.
   93.97 -     * @param cur_token the current lookahead Symbol.
   93.98 -     */
   93.99 -    @Override
  93.100 -    public void syntax_error(java_cup.runtime.Symbol cur_token) {
  93.101 -        java_cup.runtime.Symbol symbol = (java_cup.runtime.Symbol)stack.peek();
  93.102 -        int state = symbol.parse_state;
  93.103 -        short[] rowOfProbe = action_tab[state];
  93.104 -        if (errorHandler != null) {
  93.105 -            errorHandler.handleError(ParserErrorHandler.Type.SYNTAX_ERROR, rowOfProbe, cur_token, symbol);
  93.106 -        }
  93.107 -     }
  93.108 -
  93.109 -    /**
  93.110 -     * This method is called when a syntax error has been detected during action.
  93.111 -     * @param message an error message.
  93.112 -     */
  93.113 -    public void message_error(String message) {
  93.114 -        java_cup.runtime.Symbol symbol = (java_cup.runtime.Symbol)stack.peek();
  93.115 -        if (errorHandler != null) {
  93.116 -            errorHandler.handleError(ParserErrorHandler.Type.SYNTAX_ERROR, symbol, message);
  93.117 -        }
  93.118 -     }
  93.119 -
  93.120 -     /**
  93.121 -     * Report a fatal error.  This method takes a message string and an additional object
  93.122 -     * (to be used by specializations implemented in subclasses).
  93.123 -     * The super class reports the error then throws an exception.
  93.124 -     * @param message an error message.
  93.125 -     * @param info    an extra object reserved for use by specialized subclasses.
  93.126 -     */
  93.127 -    @Override
  93.128 -    public void report_fatal_error(String message, Object info) throws Exception {
  93.129 -        if (errorHandler != null) {
  93.130 -            errorHandler.handleError(ParserErrorHandler.Type.FATAL_PARSER_ERROR, null, cur_token, null);
  93.131 -        }
  93.132 -    }
  93.133 -
  93.134 -    @Override
  93.135 -    protected int error_sync_size() {
  93.136 -        return 1;
  93.137 -    }
  93.138 -
  93.139 -:}
  93.140 -
  93.141 -
  93.142 -/*********************************************************
  93.143 - *                                                       *
  93.144 - * Ada 95 (LALR) Parser (no AST), based on:              *
  93.145 - *                                                       *
  93.146 - * 1. Ada Reference Manual                               *
  93.147 - *    ISO/IEC 8652:1995(E)                               *
  93.148 - *    with Technical Corrigendum 1                       *
  93.149 - *    Language and Standard Libraries                    *
  93.150 - *    Copyright � 1992,1993,1994,1995 Intermetrics, Inc. *
  93.151 - *    Copyright � 2000 The MITRE Corporation, Inc.       *
  93.152 - * 2. http://www.adaic.com/standards/95lrm/grammar9x.y   *
  93.153 - *                                                       *
  93.154 - * Author: Andrea Lucarelli                              *
  93.155 - * Parser Generator: JavCup                              *
  93.156 - *                                                       *
  93.157 - *********************************************************/
  93.158 -
  93.159 -/*************************
  93.160 - * JavaCup Terminals     *
  93.161 - *************************/
  93.162 -
  93.163 -//
  93.164 -// Ada 95 keywords
  93.165 -//
  93.166 -terminal ABORT;
  93.167 -terminal ABS;
  93.168 -terminal ABSTRACT;
  93.169 -terminal ACCEPT;
  93.170 -terminal ACCESS;
  93.171 -terminal ALIASED;
  93.172 -terminal ALL;
  93.173 -terminal AND;
  93.174 -terminal ARRAY;
  93.175 -terminal AT;
  93.176 -terminal BEGIN;
  93.177 -terminal BODY;
  93.178 -terminal CASE;
  93.179 -terminal CONSTANT;
  93.180 -terminal DECLARE;
  93.181 -terminal DELAY;
  93.182 -terminal DELTA;
  93.183 -terminal DIGITS;
  93.184 -terminal DO;
  93.185 -terminal ELSE;
  93.186 -terminal ELSIF;
  93.187 -terminal END;
  93.188 -terminal ENTRY;
  93.189 -terminal EXCEPTION;
  93.190 -terminal EXIT;
  93.191 -terminal FOR;
  93.192 -terminal FUNCTION;
  93.193 -terminal GENERIC;
  93.194 -terminal GOTO;
  93.195 -terminal IF;
  93.196 -terminal IN;
  93.197 -terminal IS;
  93.198 -terminal LIMITED;
  93.199 -terminal LOOP;
  93.200 -terminal MOD;
  93.201 -terminal NEW;
  93.202 -terminal NOT;
  93.203 -terminal NULL;
  93.204 -terminal OF;
  93.205 -terminal OR;
  93.206 -terminal OTHERS;
  93.207 -terminal OUT;
  93.208 -terminal PACKAGE;
  93.209 -terminal PRAGMA;
  93.210 -terminal PRIVATE;
  93.211 -terminal PROCEDURE;
  93.212 -terminal PROTECTED;
  93.213 -terminal RAISE;
  93.214 -terminal RANGE;
  93.215 -terminal RECORD;
  93.216 -terminal REM;
  93.217 -terminal RENAMES;
  93.218 -terminal REQUEUE;
  93.219 -terminal RETURN;
  93.220 -terminal REVERSE;
  93.221 -terminal SELECT;
  93.222 -terminal SEPARATE;
  93.223 -terminal SUBTYPE;
  93.224 -terminal TAGGED;
  93.225 -terminal TASK;
  93.226 -terminal TERMINATE;
  93.227 -terminal THEN;
  93.228 -terminal TYPE;
  93.229 -terminal UNTIL;
  93.230 -terminal USE;
  93.231 -terminal WHEN;
  93.232 -terminal WHILE;
  93.233 -terminal WITH;
  93.234 -terminal XOR;
  93.235 -
  93.236 -//
  93.237 -// delimiters
  93.238 -//
  93.239 -terminal AMP;
  93.240 -terminal TICK;
  93.241 -terminal LPAREN;
  93.242 -terminal RPAREN;
  93.243 -terminal STAR;
  93.244 -terminal PLUS;
  93.245 -terminal COMMA;
  93.246 -terminal MINUS;
  93.247 -terminal DOT;
  93.248 -terminal SLASH;
  93.249 -terminal COLON;
  93.250 -terminal SEMICOLON;
  93.251 -terminal GT;
  93.252 -terminal EQ;
  93.253 -terminal LT;
  93.254 -terminal BAR;
  93.255 -
  93.256 -//
  93.257 -// compound delimiters
  93.258 -//
  93.259 -terminal ARROW;
  93.260 -terminal DOT_DOT;
  93.261 -terminal EXPON;
  93.262 -terminal ASSIGNMENT;
  93.263 -terminal INEQ;
  93.264 -terminal GTEQ;
  93.265 -terminal LTEQ;
  93.266 -terminal LTLT;
  93.267 -terminal GTGT;
  93.268 -terminal BOX;
  93.269 -
  93.270 -terminal BASED_LITERAL;
  93.271 -terminal DECIMAL_LITERAL;
  93.272 -terminal CHAR_LITERAL;
  93.273 -terminal STRING_LITERAL;
  93.274 -terminal IDENTIFIER;
  93.275 -
  93.276 -non terminal compilation;
  93.277 -non terminal pragma;
  93.278 -non terminal simple_name;
  93.279 -non terminal pragma_arg_s;
  93.280 -non terminal pragma_arg;
  93.281 -non terminal pragma_s;
  93.282 -non terminal decl;
  93.283 -non terminal object_decl;
  93.284 -non terminal def_id_s;
  93.285 -non terminal def_id;
  93.286 -non terminal object_qualifier_opt;
  93.287 -non terminal object_subtype_def;
  93.288 -non terminal init_opt;
  93.289 -non terminal number_decl;
  93.290 -non terminal type_decl;
  93.291 -non terminal discrim_part_opt;
  93.292 -non terminal type_completion;
  93.293 -non terminal type_def;
  93.294 -non terminal subtype_decl;
  93.295 -non terminal subtype_ind;
  93.296 -non terminal constraint;
  93.297 -non terminal decimal_digits_constraint;
  93.298 -non terminal derived_type;
  93.299 -non terminal range_constraint;
  93.300 -non terminal range;
  93.301 -non terminal enumeration_type;
  93.302 -non terminal enum_id_s;
  93.303 -non terminal enum_id;
  93.304 -non terminal integer_type;
  93.305 -non terminal range_spec;
  93.306 -non terminal range_spec_opt;
  93.307 -non terminal real_type;
  93.308 -non terminal float_type;
  93.309 -non terminal fixed_type;
  93.310 -non terminal array_type;
  93.311 -non terminal unconstr_array_type;
  93.312 -non terminal constr_array_type;
  93.313 -non terminal component_subtype_def;
  93.314 -non terminal aliased_opt;
  93.315 -non terminal index_s;
  93.316 -non terminal index;
  93.317 -non terminal iter_index_constraint;
  93.318 -non terminal iter_discrete_range_s;
  93.319 -non terminal discrete_range;
  93.320 -non terminal range_constr_opt;
  93.321 -non terminal record_type;
  93.322 -non terminal record_def;
  93.323 -non terminal tagged_opt;
  93.324 -non terminal comp_list;
  93.325 -non terminal comp_decl_s;
  93.326 -non terminal variant_part_opt;
  93.327 -non terminal comp_decl;
  93.328 -non terminal discrim_part;
  93.329 -non terminal discrim_spec_s;
  93.330 -non terminal discrim_spec;
  93.331 -non terminal access_opt;
  93.332 -non terminal variant_part;
  93.333 -non terminal variant_s;
  93.334 -non terminal variant;
  93.335 -non terminal choice_s;
  93.336 -non terminal choice;
  93.337 -non terminal discrete_with_range;
  93.338 -non terminal access_type;
  93.339 -non terminal prot_opt;
  93.340 -non terminal decl_part;
  93.341 -non terminal decl_item_s;
  93.342 -non terminal decl_item_s1;
  93.343 -non terminal decl_item;
  93.344 -non terminal decl_item_or_body_s1;
  93.345 -non terminal decl_item_or_body;
  93.346 -non terminal body;
  93.347 -non terminal name;
  93.348 -non terminal mark;
  93.349 -non terminal compound_name;
  93.350 -non terminal c_name_list;
  93.351 -non terminal used_char;
  93.352 -non terminal operator_symbol;
  93.353 -non terminal indexed_comp;
  93.354 -non terminal value_s;
  93.355 -non terminal value;
  93.356 -non terminal selected_comp;
  93.357 -non terminal attribute;
  93.358 -non terminal attribute_id;
  93.359 -non terminal literal;
  93.360 -non terminal aggregate;
  93.361 -non terminal value_s_2;
  93.362 -non terminal comp_assoc;
  93.363 -non terminal expression;
  93.364 -non terminal logical;
  93.365 -non terminal short_circuit;
  93.366 -non terminal relation;
  93.367 -non terminal relational;
  93.368 -non terminal membership;
  93.369 -non terminal simple_expression;
  93.370 -non terminal unary;
  93.371 -non terminal adding;
  93.372 -non terminal term;
  93.373 -non terminal multiplying;
  93.374 -non terminal factor;
  93.375 -non terminal primary;
  93.376 -non terminal parenthesized_primary;
  93.377 -non terminal qualified;
  93.378 -non terminal allocator;
  93.379 -non terminal statement_s;
  93.380 -non terminal statement;
  93.381 -non terminal unlabeled;
  93.382 -non terminal simple_stmt;
  93.383 -non terminal compound_stmt;
  93.384 -non terminal label;
  93.385 -non terminal NULL_stmt;
  93.386 -non terminal assign_stmt;
  93.387 -non terminal if_stmt;
  93.388 -non terminal cond_clause_s;
  93.389 -non terminal cond_clause;
  93.390 -non terminal cond_part;
  93.391 -non terminal condition;
  93.392 -non terminal else_opt;
  93.393 -non terminal case_stmt;
  93.394 -non terminal case_hdr;
  93.395 -non terminal alternative_s;
  93.396 -non terminal alternative;
  93.397 -non terminal loop_stmt;
  93.398 -non terminal label_opt;
  93.399 -non terminal iteration;
  93.400 -non terminal iter_part;
  93.401 -non terminal reverse_opt;
  93.402 -non terminal basic_loop;
  93.403 -non terminal id_opt;
  93.404 -non terminal block;
  93.405 -non terminal block_decl;
  93.406 -non terminal block_body;
  93.407 -non terminal handled_stmt_s;
  93.408 -non terminal except_handler_part_opt;
  93.409 -non terminal exit_stmt;
  93.410 -non terminal name_opt;
  93.411 -non terminal when_opt;
  93.412 -non terminal return_stmt;
  93.413 -non terminal goto_stmt;
  93.414 -non terminal subprog_decl;
  93.415 -non terminal subprog_spec;
  93.416 -non terminal designator;
  93.417 -non terminal formal_part_opt;
  93.418 -non terminal formal_part;
  93.419 -non terminal param_s;
  93.420 -non terminal param;
  93.421 -non terminal mode;
  93.422 -non terminal subprog_spec_is_push;
  93.423 -non terminal subprog_body;
  93.424 -non terminal procedure_call;
  93.425 -non terminal pkg_decl;
  93.426 -non terminal pkg_spec;
  93.427 -non terminal private_part;
  93.428 -non terminal c_id_opt;
  93.429 -non terminal pkg_body;
  93.430 -non terminal body_opt;
  93.431 -non terminal private_type;
  93.432 -non terminal limited_opt;
  93.433 -non terminal use_clause;
  93.434 -non terminal name_s;
  93.435 -non terminal rename_decl;
  93.436 -non terminal rename_unit;
  93.437 -non terminal renames;
  93.438 -non terminal task_decl;
  93.439 -non terminal task_spec;
  93.440 -non terminal task_def;
  93.441 -non terminal task_private_opt;
  93.442 -non terminal task_body;
  93.443 -non terminal prot_decl;
  93.444 -non terminal prot_spec;
  93.445 -non terminal prot_def;
  93.446 -non terminal prot_private_opt;
  93.447 -non terminal prot_op_decl_s;
  93.448 -non terminal prot_op_decl;
  93.449 -non terminal prot_elem_decl_s;
  93.450 -non terminal prot_elem_decl;
  93.451 -non terminal prot_body;
  93.452 -non terminal prot_op_body_s;
  93.453 -non terminal prot_op_body;
  93.454 -non terminal entry_decl_s;
  93.455 -non terminal entry_decl;
  93.456 -non terminal entry_body;
  93.457 -non terminal entry_body_part;
  93.458 -non terminal rep_spec_s;
  93.459 -non terminal entry_call;
  93.460 -non terminal accept_stmt;
  93.461 -non terminal accept_hdr;
  93.462 -non terminal entry_name;
  93.463 -non terminal delay_stmt;
  93.464 -non terminal select_stmt;
  93.465 -non terminal select_wait;
  93.466 -non terminal guarded_select_alt;
  93.467 -non terminal or_select;
  93.468 -non terminal select_alt;
  93.469 -non terminal delay_or_entry_alt;
  93.470 -non terminal async_select;
  93.471 -non terminal timed_entry_call;
  93.472 -non terminal cond_entry_call;
  93.473 -non terminal stmts_opt;
  93.474 -non terminal abort_stmt;
  93.475 -non terminal comp_unit;
  93.476 -non terminal private_opt;
  93.477 -non terminal context_spec;
  93.478 -non terminal with_clause;
  93.479 -non terminal use_clause_opt;
  93.480 -non terminal unit;
  93.481 -non terminal subunit;
  93.482 -non terminal subunit_body;
  93.483 -non terminal body_stub;
  93.484 -non terminal exception_decl;
  93.485 -non terminal except_handler_part;
  93.486 -non terminal exception_handler;
  93.487 -non terminal except_choice_s;
  93.488 -non terminal except_choice;
  93.489 -non terminal raise_stmt;
  93.490 -non terminal requeue_stmt;
  93.491 -non terminal generic_decl;
  93.492 -non terminal generic_formal_part;
  93.493 -non terminal generic_formal;
  93.494 -non terminal generic_discrim_part_opt;
  93.495 -non terminal subp_default;
  93.496 -non terminal generic_type_def;
  93.497 -non terminal generic_derived_type;
  93.498 -non terminal generic_subp_inst;
  93.499 -non terminal generic_pkg_inst;
  93.500 -non terminal generic_inst;
  93.501 -non terminal rep_spec;
  93.502 -non terminal attrib_def;
  93.503 -non terminal record_type_spec;
  93.504 -non terminal align_opt;
  93.505 -non terminal comp_loc_s;
  93.506 -non terminal address_spec;
  93.507 -non terminal code_stmt;
  93.508 -
  93.509 -// root symbol 
  93.510 -start with compilation;
  93.511 -
  93.512 -pragma  ::= PRAGMA IDENTIFIER SEMICOLON
  93.513 -	| PRAGMA simple_name LPAREN pragma_arg_s RPAREN SEMICOLON
  93.514 -	;
  93.515 -
  93.516 -pragma_arg_s ::= pragma_arg
  93.517 -	| pragma_arg_s COMMA pragma_arg
  93.518 -	;
  93.519 -
  93.520 -pragma_arg ::= expression
  93.521 -	| simple_name ARROW expression
  93.522 -	;
  93.523 -
  93.524 -pragma_s ::=
  93.525 -	| pragma_s pragma
  93.526 -	;
  93.527 -
  93.528 -decl    ::= object_decl
  93.529 -	| number_decl
  93.530 -	| type_decl
  93.531 -	| subtype_decl
  93.532 -	| subprog_decl
  93.533 -	| pkg_decl
  93.534 -	| task_decl
  93.535 -	| prot_decl
  93.536 -	| exception_decl
  93.537 -	| rename_decl
  93.538 -	| generic_decl
  93.539 -	| body_stub
  93.540 -	| error SEMICOLON
  93.541 -	;
  93.542 -
  93.543 -object_decl ::= def_id_s COLON object_qualifier_opt object_subtype_def init_opt SEMICOLON
  93.544 -	;
  93.545 -
  93.546 -def_id_s ::= def_id
  93.547 -	| def_id_s COMMA def_id
  93.548 -	;
  93.549 -
  93.550 -def_id  ::= IDENTIFIER
  93.551 -	;
  93.552 -
  93.553 -object_qualifier_opt ::=
  93.554 -	| ALIASED
  93.555 -	| CONSTANT
  93.556 -	| ALIASED CONSTANT
  93.557 -	;
  93.558 -
  93.559 -object_subtype_def ::= subtype_ind
  93.560 -	| array_type
  93.561 -	;
  93.562 -
  93.563 -init_opt ::=
  93.564 -	| ASSIGNMENT expression
  93.565 -	;
  93.566 -
  93.567 -number_decl ::= def_id_s COLON CONSTANT ASSIGNMENT expression SEMICOLON
  93.568 -	;
  93.569 -
  93.570 -type_decl ::= TYPE IDENTIFIER discrim_part_opt type_completion SEMICOLON
  93.571 -	;
  93.572 -
  93.573 -discrim_part_opt ::=
  93.574 -	| discrim_part
  93.575 -	| LPAREN BOX RPAREN
  93.576 -	;
  93.577 -
  93.578 -type_completion ::=
  93.579 -	| IS type_def
  93.580 -	;
  93.581 -
  93.582 -type_def ::= enumeration_type
  93.583 -	| integer_type
  93.584 -	| real_type
  93.585 -	| array_type
  93.586 -	| record_type
  93.587 -	| access_type
  93.588 -	| derived_type
  93.589 -	| private_type
  93.590 -	;
  93.591 -
  93.592 -subtype_decl ::= SUBTYPE IDENTIFIER IS subtype_ind SEMICOLON
  93.593 -	;
  93.594 -
  93.595 -subtype_ind ::= name constraint
  93.596 -	| name
  93.597 -	;
  93.598 -
  93.599 -constraint ::= range_constraint
  93.600 -	| decimal_digits_constraint
  93.601 -	;
  93.602 -
  93.603 -decimal_digits_constraint ::= DIGITS expression range_constr_opt
  93.604 -	;
  93.605 -
  93.606 -derived_type ::= NEW subtype_ind
  93.607 -	| NEW subtype_ind WITH PRIVATE
  93.608 -	| NEW subtype_ind WITH record_def
  93.609 -	| ABSTRACT NEW subtype_ind WITH PRIVATE
  93.610 -	| ABSTRACT NEW subtype_ind WITH record_def
  93.611 -	;
  93.612 -
  93.613 -range_constraint ::= RANGE range
  93.614 -	;
  93.615 -
  93.616 -range ::= simple_expression DOT_DOT simple_expression
  93.617 -	| name TICK RANGE
  93.618 -	| name TICK RANGE LPAREN expression RPAREN
  93.619 -	;
  93.620 -
  93.621 -enumeration_type ::= LPAREN enum_id_s RPAREN
  93.622 -;
  93.623 -
  93.624 -enum_id_s ::= enum_id
  93.625 -	| enum_id_s COMMA enum_id
  93.626 -	;
  93.627 -
  93.628 -enum_id ::= IDENTIFIER
  93.629 -	| CHAR_LITERAL
  93.630 -	;
  93.631 -
  93.632 -integer_type ::= range_spec
  93.633 -	| MOD expression
  93.634 -	;
  93.635 -	
  93.636 -
  93.637 -range_spec ::= range_constraint
  93.638 -	;
  93.639 -
  93.640 -range_spec_opt ::=
  93.641 -	| range_spec
  93.642 -	;
  93.643 -
  93.644 -real_type ::= float_type
  93.645 -	| fixed_type
  93.646 -	;
  93.647 -
  93.648 -float_type ::= DIGITS expression range_spec_opt
  93.649 -	;
  93.650 -
  93.651 -fixed_type ::= DELTA expression range_spec
  93.652 -	| DELTA expression DIGITS expression range_spec_opt
  93.653 -	;
  93.654 -
  93.655 -array_type ::= unconstr_array_type
  93.656 -	| constr_array_type
  93.657 -	;
  93.658 -
  93.659 -unconstr_array_type ::= ARRAY LPAREN index_s RPAREN OF component_subtype_def
  93.660 -	;
  93.661 -
  93.662 -constr_array_type ::= ARRAY iter_index_constraint OF component_subtype_def
  93.663 -	;
  93.664 -
  93.665 -component_subtype_def ::= aliased_opt subtype_ind
  93.666 -	;
  93.667 -
  93.668 -aliased_opt ::=
  93.669 -	| ALIASED
  93.670 -	;
  93.671 -
  93.672 -index_s ::= index
  93.673 -	| index_s COMMA index
  93.674 -	;
  93.675 -
  93.676 -index ::= name RANGE BOX
  93.677 -	;
  93.678 -
  93.679 -iter_index_constraint ::= LPAREN iter_discrete_range_s RPAREN
  93.680 -	;
  93.681 -
  93.682 -iter_discrete_range_s ::= discrete_range
  93.683 -	| iter_discrete_range_s COMMA discrete_range
  93.684 -	;
  93.685 -
  93.686 -discrete_range ::= name range_constr_opt
  93.687 -	| range
  93.688 -	;
  93.689 -
  93.690 -range_constr_opt ::=
  93.691 -	| range_constraint
  93.692 -	;
  93.693 -
  93.694 -record_type ::= tagged_opt limited_opt record_def
  93.695 -	;
  93.696 -
  93.697 -record_def ::= RECORD pragma_s comp_list END RECORD
  93.698 -	| NULL RECORD
  93.699 -	;
  93.700 -
  93.701 -tagged_opt ::=
  93.702 -	| TAGGED
  93.703 -	| ABSTRACT TAGGED
  93.704 -	;
  93.705 -
  93.706 -comp_list ::= comp_decl_s variant_part_opt
  93.707 -	| variant_part pragma_s
  93.708 -	| NULL SEMICOLON pragma_s
  93.709 -	;
  93.710 -
  93.711 -comp_decl_s ::= comp_decl
  93.712 -	| comp_decl_s pragma_s comp_decl
  93.713 -	;
  93.714 -
  93.715 -variant_part_opt ::= pragma_s
  93.716 -	| pragma_s variant_part pragma_s
  93.717 -	;
  93.718 -
  93.719 -comp_decl ::= def_id_s COLON component_subtype_def init_opt SEMICOLON
  93.720 -	| error SEMICOLON
  93.721 -	;
  93.722 -
  93.723 -discrim_part ::= LPAREN discrim_spec_s RPAREN
  93.724 -	;
  93.725 -
  93.726 -discrim_spec_s ::= discrim_spec
  93.727 -	| discrim_spec_s SEMICOLON discrim_spec
  93.728 -	;
  93.729 -
  93.730 -discrim_spec ::= def_id_s COLON access_opt mark init_opt
  93.731 -	| error
  93.732 -	;
  93.733 -
  93.734 -access_opt ::=
  93.735 -	| ACCESS
  93.736 -	;
  93.737 -
  93.738 -variant_part ::= CASE simple_name IS pragma_s variant_s END CASE SEMICOLON
  93.739 -	;
  93.740 -
  93.741 -variant_s ::= variant
  93.742 -	| variant_s variant
  93.743 -	;
  93.744 -
  93.745 -variant ::= WHEN choice_s ARROW pragma_s comp_list
  93.746 -	;
  93.747 -
  93.748 -choice_s ::= choice
  93.749 -	| choice_s BAR choice
  93.750 -	;
  93.751 -
  93.752 -choice ::= expression
  93.753 -	| discrete_with_range
  93.754 -	| OTHERS
  93.755 -	;
  93.756 -
  93.757 -discrete_with_range ::= name range_constraint
  93.758 -	| range
  93.759 -	;
  93.760 -
  93.761 -access_type ::= ACCESS subtype_ind
  93.762 -	| ACCESS CONSTANT subtype_ind
  93.763 -	| ACCESS ALL subtype_ind
  93.764 -	| ACCESS prot_opt PROCEDURE formal_part_opt
  93.765 -	| ACCESS prot_opt FUNCTION formal_part_opt RETURN mark
  93.766 -	;
  93.767 -
  93.768 -prot_opt ::=
  93.769 -	| PROTECTED
  93.770 -	;
  93.771 -
  93.772 -decl_part ::=
  93.773 -	| decl_item_or_body_s1
  93.774 -	;
  93.775 -
  93.776 -decl_item_s ::=
  93.777 -	| decl_item_s1
  93.778 -	;
  93.779 -
  93.780 -decl_item_s1 ::= decl_item
  93.781 -	| decl_item_s1 decl_item
  93.782 -	;
  93.783 -
  93.784 -decl_item ::= decl
  93.785 -	| use_clause
  93.786 -	| rep_spec
  93.787 -	| pragma
  93.788 -	;
  93.789 -
  93.790 -decl_item_or_body_s1 ::= decl_item_or_body
  93.791 -	| decl_item_or_body_s1 decl_item_or_body
  93.792 -	;
  93.793 -
  93.794 -decl_item_or_body ::= body
  93.795 -	| decl_item
  93.796 -	;
  93.797 -
  93.798 -body ::= subprog_body
  93.799 -	| pkg_body
  93.800 -	| task_body
  93.801 -	| prot_body
  93.802 -	;
  93.803 -
  93.804 -name ::= simple_name
  93.805 -	| indexed_comp
  93.806 -	| selected_comp
  93.807 -	| attribute
  93.808 -	| operator_symbol
  93.809 -	;
  93.810 -
  93.811 -mark ::= simple_name
  93.812 -	| mark TICK attribute_id
  93.813 -	| mark DOT simple_name
  93.814 -	;
  93.815 -
  93.816 -simple_name ::=
  93.817 -IDENTIFIER:identifier
  93.818 -{:
  93.819 -    RESULT = identifier;
  93.820 -:}
  93.821 -;
  93.822 -
  93.823 -compound_name ::=
  93.824 -simple_name:simpleName
  93.825 -{:
  93.826 -    RESULT = simpleName;
  93.827 -:}
  93.828 -| compound_name:compoundName DOT simple_name:simpleName
  93.829 -{:
  93.830 -    RESULT = compoundName + "." + simpleName;
  93.831 -:}
  93.832 -;
  93.833 -
  93.834 -c_name_list ::= compound_name
  93.835 -	 | c_name_list COMMA compound_name
  93.836 -	;
  93.837 -
  93.838 -used_char ::= CHAR_LITERAL
  93.839 -	;
  93.840 -
  93.841 -operator_symbol ::= STRING_LITERAL
  93.842 -	;
  93.843 -
  93.844 -indexed_comp ::= name LPAREN value_s RPAREN
  93.845 -	;
  93.846 -
  93.847 -value_s ::= value
  93.848 -	| value_s COMMA value
  93.849 -	;
  93.850 -
  93.851 -value ::= expression
  93.852 -	| comp_assoc
  93.853 -	| discrete_with_range
  93.854 -	| error
  93.855 -	;
  93.856 -
  93.857 -selected_comp ::= name DOT simple_name
  93.858 -	| name DOT used_char
  93.859 -	| name DOT operator_symbol
  93.860 -	| name DOT ALL
  93.861 -	;
  93.862 -
  93.863 -attribute ::= name TICK attribute_id
  93.864 -	;
  93.865 -
  93.866 -attribute_id ::= IDENTIFIER
  93.867 -	| DIGITS
  93.868 -	| DELTA
  93.869 -	| ACCESS
  93.870 -	;
  93.871 -
  93.872 -literal ::= DECIMAL_LITERAL
  93.873 -    | BASED_LITERAL
  93.874 -	| used_char
  93.875 -	| NULL
  93.876 -	;
  93.877 -
  93.878 -aggregate ::= LPAREN comp_assoc RPAREN
  93.879 -	| LPAREN value_s_2 RPAREN
  93.880 -	| LPAREN expression WITH value_s RPAREN
  93.881 -	| LPAREN expression WITH NULL RECORD RPAREN
  93.882 -	| LPAREN NULL RECORD RPAREN
  93.883 -	;
  93.884 -
  93.885 -value_s_2 ::= value COMMA value
  93.886 -	| value_s_2 COMMA value
  93.887 -	;
  93.888 -
  93.889 -comp_assoc ::= choice_s ARROW expression
  93.890 -	;
  93.891 -
  93.892 -expression ::= relation
  93.893 -	| expression logical relation
  93.894 -	| expression short_circuit relation
  93.895 -	;
  93.896 -
  93.897 -logical ::= AND
  93.898 -	| OR
  93.899 -	| XOR
  93.900 -	;
  93.901 -
  93.902 -short_circuit ::= AND THEN
  93.903 -	| OR ELSE
  93.904 -	;
  93.905 -
  93.906 -relation ::= simple_expression
  93.907 -	| simple_expression relational simple_expression
  93.908 -	| simple_expression membership range
  93.909 -	| simple_expression membership name
  93.910 -	;
  93.911 -
  93.912 -relational ::= EQ
  93.913 -	| INEQ
  93.914 -	| GT
  93.915 -	| LTEQ
  93.916 -	| LT
  93.917 -	| GTEQ
  93.918 -	;
  93.919 -
  93.920 -membership ::= IN
  93.921 -	| NOT IN
  93.922 -	;
  93.923 -
  93.924 -simple_expression ::= unary term
  93.925 -	| term
  93.926 -	| simple_expression adding term
  93.927 -	;
  93.928 -
  93.929 -unary   ::= PLUS
  93.930 -	| MINUS
  93.931 -	;
  93.932 -
  93.933 -adding  ::= PLUS
  93.934 -	| MINUS
  93.935 -	| AMP
  93.936 -	;
  93.937 -
  93.938 -term    ::= factor
  93.939 -	| term multiplying factor
  93.940 -	;
  93.941 -
  93.942 -multiplying ::= STAR
  93.943 -	| SLASH
  93.944 -	| MOD
  93.945 -	| REM
  93.946 -	;
  93.947 -
  93.948 -factor ::= primary
  93.949 -	| NOT primary
  93.950 -	| ABS primary
  93.951 -	| primary EXPON primary
  93.952 -	;
  93.953 -
  93.954 -primary ::= literal
  93.955 -	| name
  93.956 -	| allocator
  93.957 -	| qualified
  93.958 -	| parenthesized_primary
  93.959 -	;
  93.960 -
  93.961 -parenthesized_primary ::= aggregate
  93.962 -	| LPAREN expression RPAREN
  93.963 -	;
  93.964 -
  93.965 -qualified ::= name TICK parenthesized_primary
  93.966 -	;
  93.967 -
  93.968 -allocator ::= NEW name
  93.969 -	| NEW qualified
  93.970 -	;
  93.971 -
  93.972 -statement_s ::= statement
  93.973 -	| statement_s statement
  93.974 -	;
  93.975 -
  93.976 -statement ::= unlabeled
  93.977 -	| label statement
  93.978 -	;
  93.979 -
  93.980 -unlabeled ::= simple_stmt
  93.981 -	| compound_stmt
  93.982 -	| pragma
  93.983 -	;
  93.984 -
  93.985 -simple_stmt ::= NULL_stmt
  93.986 -	| assign_stmt
  93.987 -	| exit_stmt
  93.988 -	| return_stmt
  93.989 -	| goto_stmt
  93.990 -	| procedure_call
  93.991 -	| delay_stmt
  93.992 -	| abort_stmt
  93.993 -	| raise_stmt
  93.994 -	| code_stmt
  93.995 -	| requeue_stmt
  93.996 -	| error SEMICOLON
  93.997 -	;
  93.998 -
  93.999 -compound_stmt ::= if_stmt
 93.1000 -	| case_stmt
 93.1001 -	| loop_stmt
 93.1002 -	| block
 93.1003 -	| accept_stmt
 93.1004 -	| select_stmt
 93.1005 -	;
 93.1006 -
 93.1007 -label ::= LTLT IDENTIFIER GTGT
 93.1008 -	;
 93.1009 -
 93.1010 -NULL_stmt ::= NULL SEMICOLON
 93.1011 -	;
 93.1012 -
 93.1013 -assign_stmt ::= name ASSIGNMENT expression SEMICOLON
 93.1014 -	;
 93.1015 -
 93.1016 -if_stmt ::= IF cond_clause_s else_opt END IF SEMICOLON
 93.1017 -	;
 93.1018 -
 93.1019 -cond_clause_s ::= cond_clause
 93.1020 -	| cond_clause_s ELSIF cond_clause
 93.1021 -	;
 93.1022 -
 93.1023 -cond_clause ::= cond_part statement_s
 93.1024 -	;
 93.1025 -
 93.1026 -cond_part ::= condition THEN
 93.1027 -	;
 93.1028 -
 93.1029 -condition ::= expression
 93.1030 -	;
 93.1031 -
 93.1032 -else_opt ::=
 93.1033 -	| ELSE statement_s
 93.1034 -	;
 93.1035 -
 93.1036 -case_stmt ::= case_hdr pragma_s alternative_s END CASE SEMICOLON
 93.1037 -	;
 93.1038 -
 93.1039 -case_hdr ::= CASE expression IS
 93.1040 -	;
 93.1041 -
 93.1042 -alternative_s ::=
 93.1043 -	| alternative_s alternative
 93.1044 -	;
 93.1045 -
 93.1046 -alternative ::= WHEN choice_s ARROW statement_s
 93.1047 -	;
 93.1048 -
 93.1049 -loop_stmt ::= label_opt iteration basic_loop id_opt SEMICOLON
 93.1050 -	;
 93.1051 -
 93.1052 -label_opt ::=
 93.1053 -	| IDENTIFIER COLON
 93.1054 -	;
 93.1055 -
 93.1056 -iteration ::=
 93.1057 -	| WHILE condition
 93.1058 -	| iter_part reverse_opt discrete_range
 93.1059 -	;
 93.1060 -
 93.1061 -iter_part ::= FOR IDENTIFIER IN
 93.1062 -	;
 93.1063 -
 93.1064 -reverse_opt ::=
 93.1065 -	| REVERSE
 93.1066 -	;
 93.1067 -
 93.1068 -basic_loop ::= LOOP statement_s END LOOP
 93.1069 -	;
 93.1070 -
 93.1071 -id_opt ::=
 93.1072 -	| designator
 93.1073 -	;
 93.1074 -
 93.1075 -block ::= label_opt block_decl block_body END id_opt SEMICOLON
 93.1076 -	;
 93.1077 -
 93.1078 -block_decl ::=
 93.1079 -	| DECLARE decl_part
 93.1080 -	;
 93.1081 -
 93.1082 -block_body ::= BEGIN handled_stmt_s
 93.1083 -	;
 93.1084 -
 93.1085 -handled_stmt_s ::= statement_s except_handler_part_opt
 93.1086 -	; 
 93.1087 -
 93.1088 -except_handler_part_opt ::=
 93.1089 -	| except_handler_part
 93.1090 -	;
 93.1091 -
 93.1092 -exit_stmt ::= EXIT name_opt when_opt SEMICOLON
 93.1093 -	;
 93.1094 -
 93.1095 -name_opt ::=
 93.1096 -	| name
 93.1097 -	;
 93.1098 -
 93.1099 -when_opt ::=
 93.1100 -	| WHEN condition
 93.1101 -	;
 93.1102 -
 93.1103 -return_stmt ::= RETURN SEMICOLON
 93.1104 -	| RETURN expression SEMICOLON
 93.1105 -	;
 93.1106 -
 93.1107 -goto_stmt ::= GOTO name SEMICOLON
 93.1108 -	;
 93.1109 -
 93.1110 -subprog_decl ::= subprog_spec SEMICOLON
 93.1111 -	| generic_subp_inst SEMICOLON
 93.1112 -	| subprog_spec_is_push ABSTRACT SEMICOLON
 93.1113 -	;
 93.1114 -
 93.1115 -subprog_spec ::= PROCEDURE compound_name formal_part_opt
 93.1116 -	| FUNCTION designator formal_part_opt RETURN name
 93.1117 -	| FUNCTION designator  /* for generic inst and generic rename */
 93.1118 -	;
 93.1119 -
 93.1120 -designator ::= compound_name
 93.1121 -	| STRING_LITERAL
 93.1122 -	;
 93.1123 -
 93.1124 -formal_part_opt ::=
 93.1125 -	| formal_part
 93.1126 -	;
 93.1127 -
 93.1128 -formal_part ::= LPAREN param_s RPAREN
 93.1129 -	;
 93.1130 -
 93.1131 -param_s ::= param
 93.1132 -	| param_s SEMICOLON param
 93.1133 -	;
 93.1134 -
 93.1135 -param ::= def_id_s COLON mode mark init_opt
 93.1136 -	| error
 93.1137 -	;
 93.1138 -
 93.1139 -mode ::=
 93.1140 -	| IN
 93.1141 -	| OUT
 93.1142 -	| IN OUT
 93.1143 -	| ACCESS
 93.1144 -	;
 93.1145 -
 93.1146 -subprog_spec_is_push ::= subprog_spec IS
 93.1147 -	;
 93.1148 -
 93.1149 -subprog_body ::= subprog_spec_is_push
 93.1150 -	       decl_part block_body END id_opt SEMICOLON
 93.1151 -	;
 93.1152 -
 93.1153 -procedure_call ::= name SEMICOLON
 93.1154 -	;
 93.1155 -
 93.1156 -pkg_decl ::= pkg_spec SEMICOLON
 93.1157 -	| generic_pkg_inst SEMICOLON
 93.1158 -	;
 93.1159 -
 93.1160 -pkg_spec ::= PACKAGE compound_name IS
 93.1161 -	     decl_item_s private_part END c_id_opt
 93.1162 -	;
 93.1163 -
 93.1164 -private_part ::=
 93.1165 -	| PRIVATE decl_item_s
 93.1166 -	;
 93.1167 -
 93.1168 -c_id_opt ::=
 93.1169 -	| compound_name
 93.1170 -	;
 93.1171 -
 93.1172 -pkg_body ::= PACKAGE BODY compound_name IS
 93.1173 -	       decl_part body_opt END c_id_opt SEMICOLON
 93.1174 -	;
 93.1175 -
 93.1176 -body_opt ::=
 93.1177 -	| block_body
 93.1178 -	;
 93.1179 -
 93.1180 -private_type ::= tagged_opt limited_opt PRIVATE
 93.1181 -	;
 93.1182 -
 93.1183 -limited_opt ::=
 93.1184 -	| LIMITED
 93.1185 -	;
 93.1186 -
 93.1187 -use_clause ::= USE name_s SEMICOLON
 93.1188 -	| USE TYPE name_s SEMICOLON
 93.1189 -	;
 93.1190 -
 93.1191 -name_s ::= name
 93.1192 -	| name_s COMMA name
 93.1193 -	;
 93.1194 -
 93.1195 -rename_decl ::= def_id_s COLON object_qualifier_opt subtype_ind renames SEMICOLON
 93.1196 -	| def_id_s COLON EXCEPTION renames SEMICOLON
 93.1197 -	| rename_unit
 93.1198 -	;
 93.1199 -
 93.1200 -rename_unit ::= PACKAGE compound_name renames SEMICOLON
 93.1201 -	| subprog_spec renames SEMICOLON
 93.1202 -	| generic_formal_part PACKAGE compound_name renames SEMICOLON
 93.1203 -	| generic_formal_part subprog_spec renames SEMICOLON
 93.1204 -	;
 93.1205 -
 93.1206 -renames ::= RENAMES name
 93.1207 -	;
 93.1208 -
 93.1209 -task_decl ::= task_spec SEMICOLON
 93.1210 -	;
 93.1211 -
 93.1212 -task_spec ::= TASK simple_name task_def
 93.1213 -	| TASK TYPE simple_name discrim_part_opt task_def
 93.1214 -	;
 93.1215 -
 93.1216 -task_def ::=
 93.1217 -	| IS entry_decl_s rep_spec_s task_private_opt END id_opt
 93.1218 -	;
 93.1219 -
 93.1220 -task_private_opt ::=
 93.1221 -	| PRIVATE entry_decl_s rep_spec_s
 93.1222 -	;
 93.1223 -
 93.1224 -task_body ::= TASK BODY simple_name IS
 93.1225 -	       decl_part block_body END id_opt SEMICOLON
 93.1226 -	;
 93.1227 -
 93.1228 -prot_decl ::= prot_spec SEMICOLON
 93.1229 -	;
 93.1230 -
 93.1231 -prot_spec ::= PROTECTED IDENTIFIER prot_def
 93.1232 -	| PROTECTED TYPE simple_name discrim_part_opt prot_def
 93.1233 -	;
 93.1234 -
 93.1235 -prot_def ::= IS prot_op_decl_s prot_private_opt END id_opt
 93.1236 -	;
 93.1237 -
 93.1238 -prot_private_opt ::=
 93.1239 -	| PRIVATE prot_elem_decl_s 
 93.1240 -;
 93.1241 -
 93.1242 -prot_op_decl_s ::=
 93.1243 -	| prot_op_decl_s prot_op_decl
 93.1244 -	;
 93.1245 -
 93.1246 -prot_op_decl ::= entry_decl
 93.1247 -	| subprog_spec SEMICOLON
 93.1248 -	| rep_spec
 93.1249 -	| pragma
 93.1250 -	;
 93.1251 -
 93.1252 -prot_elem_decl_s ::=
 93.1253 -	| prot_elem_decl_s prot_elem_decl
 93.1254 -	;
 93.1255 -
 93.1256 -prot_elem_decl ::= prot_op_decl | comp_decl ;
 93.1257 -
 93.1258 -prot_body ::= PROTECTED BODY simple_name IS
 93.1259 -	       prot_op_body_s END id_opt SEMICOLON
 93.1260 -	;
 93.1261 -
 93.1262 -prot_op_body_s ::= pragma_s
 93.1263 -	| prot_op_body_s prot_op_body pragma_s
 93.1264 -	;
 93.1265 -
 93.1266 -prot_op_body ::= entry_body
 93.1267 -	| subprog_body
 93.1268 -	| subprog_spec SEMICOLON
 93.1269 -	;
 93.1270 -
 93.1271 -entry_decl_s ::= pragma_s
 93.1272 -	| entry_decl_s entry_decl pragma_s
 93.1273 -	;
 93.1274 -
 93.1275 -entry_decl ::= ENTRY IDENTIFIER formal_part_opt SEMICOLON
 93.1276 -	| ENTRY IDENTIFIER LPAREN discrete_range RPAREN formal_part_opt SEMICOLON
 93.1277 -	;
 93.1278 -
 93.1279 -entry_body ::= ENTRY IDENTIFIER formal_part_opt WHEN condition entry_body_part
 93.1280 -	| ENTRY IDENTIFIER LPAREN iter_part discrete_range RPAREN
 93.1281 -		formal_part_opt WHEN condition entry_body_part
 93.1282 -	;
 93.1283 -
 93.1284 -entry_body_part ::= SEMICOLON
 93.1285 -	| IS decl_part block_body END id_opt SEMICOLON
 93.1286 -	;
 93.1287 -
 93.1288 -rep_spec_s ::=
 93.1289 -	| rep_spec_s rep_spec pragma_s
 93.1290 -	;
 93.1291 -
 93.1292 -entry_call ::= procedure_call
 93.1293 -	;
 93.1294 -
 93.1295 -accept_stmt ::= accept_hdr SEMICOLON
 93.1296 -	| accept_hdr DO handled_stmt_s END id_opt SEMICOLON
 93.1297 -	;
 93.1298 -
 93.1299 -accept_hdr ::= ACCEPT entry_name formal_part_opt
 93.1300 -	;
 93.1301 -
 93.1302 -entry_name ::= simple_name
 93.1303 -	| entry_name LPAREN expression RPAREN
 93.1304 -	;
 93.1305 -
 93.1306 -delay_stmt ::= DELAY expression SEMICOLON
 93.1307 -	| DELAY UNTIL expression SEMICOLON
 93.1308 -	;
 93.1309 -
 93.1310 -select_stmt ::= select_wait
 93.1311 -	| async_select
 93.1312 -	| timed_entry_call
 93.1313 -	| cond_entry_call
 93.1314 -	;
 93.1315 -
 93.1316 -select_wait ::= SELECT guarded_select_alt or_select else_opt
 93.1317 -	      END SELECT SEMICOLON
 93.1318 -	;
 93.1319 -
 93.1320 -guarded_select_alt ::= select_alt
 93.1321 -	| WHEN condition ARROW select_alt
 93.1322 -	;
 93.1323 -
 93.1324 -or_select ::=
 93.1325 -	| or_select OR guarded_select_alt
 93.1326 -	;
 93.1327 -
 93.1328 -select_alt ::= accept_stmt stmts_opt
 93.1329 -	| delay_stmt stmts_opt
 93.1330 -	| TERMINATE SEMICOLON
 93.1331 -	;
 93.1332 -
 93.1333 -delay_or_entry_alt ::= delay_stmt stmts_opt
 93.1334 -	| entry_call stmts_opt
 93.1335 -;
 93.1336 -
 93.1337 -async_select ::= SELECT delay_or_entry_alt
 93.1338 -	       THEN ABORT statement_s
 93.1339 -	       END SELECT SEMICOLON
 93.1340 -	;
 93.1341 -
 93.1342 -timed_entry_call ::= SELECT entry_call stmts_opt
 93.1343 -		   OR delay_stmt stmts_opt
 93.1344 -	           END SELECT SEMICOLON
 93.1345 -	;
 93.1346 -
 93.1347 -cond_entry_call ::= SELECT entry_call stmts_opt
 93.1348 -		  ELSE statement_s
 93.1349 -	          END SELECT SEMICOLON
 93.1350 -	;
 93.1351 -
 93.1352 -stmts_opt ::=
 93.1353 -	| statement_s
 93.1354 -	;
 93.1355 -
 93.1356 -abort_stmt ::= ABORT name_s SEMICOLON
 93.1357 -	;
 93.1358 -
 93.1359 -compilation ::=
 93.1360 -	| compilation comp_unit
 93.1361 -	| pragma pragma_s
 93.1362 -	;
 93.1363 -
 93.1364 -comp_unit ::= context_spec private_opt unit pragma_s
 93.1365 -	| private_opt unit pragma_s
 93.1366 -	;
 93.1367 -
 93.1368 -private_opt ::=
 93.1369 -	| PRIVATE
 93.1370 -	;
 93.1371 -
 93.1372 -context_spec ::= with_clause use_clause_opt
 93.1373 -	| context_spec with_clause use_clause_opt
 93.1374 -	| context_spec pragma
 93.1375 -	;
 93.1376 -
 93.1377 -with_clause ::= WITH c_name_list SEMICOLON
 93.1378 -	;
 93.1379 -
 93.1380 -use_clause_opt ::=
 93.1381 -	| use_clause_opt use_clause
 93.1382 -	;
 93.1383 -
 93.1384 -unit ::= pkg_decl
 93.1385 -	| pkg_body
 93.1386 -	| subprog_decl
 93.1387 -	| subprog_body
 93.1388 -	| subunit
 93.1389 -	| generic_decl
 93.1390 -	| rename_unit
 93.1391 -	;
 93.1392 -
 93.1393 -subunit ::= SEPARATE LPAREN compound_name RPAREN
 93.1394 -	      subunit_body
 93.1395 -	;
 93.1396 -
 93.1397 -subunit_body ::= subprog_body
 93.1398 -	| pkg_body
 93.1399 -	| task_body
 93.1400 -	| prot_body
 93.1401 -	;
 93.1402 -
 93.1403 -body_stub ::= TASK BODY simple_name IS SEPARATE SEMICOLON
 93.1404 -	| PACKAGE BODY compound_name IS SEPARATE SEMICOLON
 93.1405 -	| subprog_spec IS SEPARATE SEMICOLON
 93.1406 -	| PROTECTED BODY simple_name IS SEPARATE SEMICOLON
 93.1407 -	;
 93.1408 -
 93.1409 -exception_decl ::= def_id_s COLON EXCEPTION SEMICOLON
 93.1410 -	;
 93.1411 -
 93.1412 -except_handler_part ::= EXCEPTION exception_handler
 93.1413 -	| except_handler_part exception_handler
 93.1414 -	;
 93.1415 -
 93.1416 -exception_handler ::= WHEN except_choice_s ARROW statement_s
 93.1417 -	| WHEN IDENTIFIER COLON except_choice_s ARROW statement_s
 93.1418 -	;
 93.1419 -
 93.1420 -except_choice_s ::= except_choice
 93.1421 -	| except_choice_s BAR except_choice
 93.1422 -	;
 93.1423 -
 93.1424 -except_choice ::= name
 93.1425 -	| OTHERS
 93.1426 -	;
 93.1427 -
 93.1428 -raise_stmt ::= RAISE name_opt SEMICOLON
 93.1429 -	;
 93.1430 -
 93.1431 -requeue_stmt ::= REQUEUE name SEMICOLON
 93.1432 -	| REQUEUE name WITH ABORT SEMICOLON
 93.1433 -	;
 93.1434 -
 93.1435 -generic_decl ::= generic_formal_part subprog_spec SEMICOLON
 93.1436 -	| generic_formal_part pkg_spec SEMICOLON
 93.1437 -	;
 93.1438 -
 93.1439 -generic_formal_part ::= GENERIC
 93.1440 -	| generic_formal_part generic_formal
 93.1441 -	;
 93.1442 -
 93.1443 -generic_formal ::= param SEMICOLON
 93.1444 -	| TYPE simple_name generic_discrim_part_opt IS generic_type_def SEMICOLON
 93.1445 -	| WITH PROCEDURE simple_name 
 93.1446 -	    formal_part_opt subp_default SEMICOLON
 93.1447 -	| WITH FUNCTION designator 
 93.1448 -	    formal_part_opt RETURN name subp_default SEMICOLON
 93.1449 -	| WITH PACKAGE simple_name IS NEW name LPAREN BOX RPAREN SEMICOLON
 93.1450 -	| WITH PACKAGE simple_name IS NEW name SEMICOLON
 93.1451 -	| use_clause
 93.1452 -	;
 93.1453 -
 93.1454 -generic_discrim_part_opt ::=
 93.1455 -	| discrim_part
 93.1456 -	| LPAREN BOX RPAREN
 93.1457 -	;
 93.1458 -
 93.1459 -subp_default ::=
 93.1460 -	| IS name
 93.1461 -	| IS BOX
 93.1462 -	;
 93.1463 -
 93.1464 -generic_type_def ::= LPAREN BOX RPAREN
 93.1465 -	| RANGE BOX
 93.1466 -	| MOD BOX
 93.1467 -	| DELTA BOX
 93.1468 -	| DELTA BOX DIGITS BOX
 93.1469 -	| DIGITS BOX
 93.1470 -	| array_type
 93.1471 -	| access_type
 93.1472 -	| private_type
 93.1473 -	| generic_derived_type
 93.1474 -	;
 93.1475 -
 93.1476 -generic_derived_type ::= NEW subtype_ind
 93.1477 -	| NEW subtype_ind WITH PRIVATE
 93.1478 -	| ABSTRACT NEW subtype_ind WITH PRIVATE
 93.1479 -	;
 93.1480 -
 93.1481 -generic_subp_inst ::= subprog_spec IS generic_inst
 93.1482 -	;
 93.1483 -
 93.1484 -generic_pkg_inst ::= PACKAGE compound_name IS generic_inst
 93.1485 -	;
 93.1486 -
 93.1487 -generic_inst ::= NEW name
 93.1488 -	;
 93.1489 -
 93.1490 -rep_spec ::= attrib_def
 93.1491 -	| record_type_spec
 93.1492 -	| address_spec
 93.1493 -	;
 93.1494 -
 93.1495 -attrib_def ::= FOR mark USE expression SEMICOLON
 93.1496 -	;
 93.1497 -
 93.1498 -record_type_spec ::= FOR mark USE RECORD align_opt comp_loc_s END RECORD SEMICOLON
 93.1499 -	;
 93.1500 -
 93.1501 -align_opt ::=
 93.1502 -	| AT MOD expression SEMICOLON
 93.1503 -	;
 93.1504 -
 93.1505 -comp_loc_s ::=
 93.1506 -	| comp_loc_s mark AT expression RANGE range SEMICOLON
 93.1507 -	;
 93.1508 -
 93.1509 -address_spec ::= FOR mark USE AT expression SEMICOLON
 93.1510 -	;
 93.1511 -
 93.1512 -code_stmt ::= qualified SEMICOLON
 93.1513 -	;
    94.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    94.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/parser/resources/AdaASTParser.cup	Mon Oct 15 23:38:26 2012 +0200
    94.3 @@ -0,0 +1,2844 @@
    94.4 +/*
    94.5 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
    94.6 + *
    94.7 + * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
    94.8 + *
    94.9 + * The contents of this file are subject to the terms of either the GNU
   94.10 + * General Public License Version 2 only ("GPL") or the Common
   94.11 + * Development and Distribution License("CDDL") (collectively, the
   94.12 + * "License"). You may not use this file except in compliance with the
   94.13 + * License. You can obtain a copy of the License at
   94.14 + * http://www.netbeans.org/cddl-gplv2.html
   94.15 + * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
   94.16 + * specific language governing permissions and limitations under the
   94.17 + * License.  When distributing the software, include this License Header
   94.18 + * Notice in each file and include the License file at
   94.19 + * nbbuild/licenses/CDDL-GPL-2-CP.  Sun designates this
   94.20 + * particular file as subject to the "Classpath" exception as provided
   94.21 + * by Sun in the GPL Version 2 section of the License file that
   94.22 + * accompanied this code. If applicable, add the following below the
   94.23 + * License Header, with the fields enclosed by brackets [] replaced by
   94.24 + * your own identifying information:
   94.25 + * "Portions Copyrighted [year] [name of copyright owner]"
   94.26 + *
   94.27 + * If you wish your version of this file to be governed by only the CDDL
   94.28 + * or only the GPL Version 2, indicate your decision by adding
   94.29 + * "[Contributor] elects to include this software in this distribution
   94.30 + * under the [CDDL or GPL Version 2] license." If you do not indicate a
   94.31 + * single choice of license, a recipient has the option to distribute
   94.32 + * your version of this file under either the CDDL, the GPL Version 2 or
   94.33 + * to extend the choice of license to its licensees as provided above.
   94.34 + * However, if you add GPL Version 2 code and therefore, elected the GPL
   94.35 + * Version 2 license, then the option applies only if the new code is
   94.36 + * made subject to such option by the copyright holder.
   94.37 + *
   94.38 + * Contributor(s):
   94.39 + *
   94.40 + * Portions Copyrighted 2008 Sun Microsystems, Inc.
   94.41 + */
   94.42 +package org.netbeans.modules.ada.editor.parser;
   94.43 +
   94.44 +import java.util.*;
   94.45 +import org.netbeans.modules.ada.editor.lexer.AdaASTLexer;
   94.46 +import org.netbeans.modules.ada.editor.ast.*;
   94.47 +import org.netbeans.modules.ada.editor.ast.nodes.*;
   94.48 +
   94.49 +parser code {:
   94.50 +    protected final static Integer PUBLIC = new Integer(BodyDeclaration.Modifier.PUBLIC);
   94.51 +    protected final static Integer PRIVATE = new Integer(BodyDeclaration.Modifier.PRIVATE);
   94.52 +    protected final static Integer TAGGED = new Integer(BodyDeclaration.Modifier.TAGGED);
   94.53 +    protected final static Integer LIMITED = new Integer(BodyDeclaration.Modifier.LIMITED);
   94.54 +    protected final static Integer ABSTRACT = new Integer(BodyDeclaration.Modifier.ABSTRACT);
   94.55 +
   94.56 +    private ErrorStrategy defaultStrategy = new DefaultErrorStrategy();;
   94.57 +    private ErrorStrategy errorStrategy = defaultStrategy;
   94.58 +
   94.59 +    private ParserErrorHandler errorHandler = null;
   94.60 +
   94.61 +    public void setErrorHandler (ParserErrorHandler handler) {
   94.62 +        this.errorHandler = handler;
   94.63 +    }
   94.64 +
   94.65 +    public ParserErrorHandler getErrorHandler () {
   94.66 +        return this.errorHandler;
   94.67 +    }
   94.68 +
   94.69 +
   94.70 +    public Dispatch createDispatch(NameBase dispatcher, NameBase property) {
   94.71 +        Dispatch dispatch = null;
   94.72 +	if (property instanceof Variable) {
   94.73 +	   dispatch = new FieldAccess(dispatcher.getStartOffset(), property.getEndOffset(), dispatcher, (Variable)property);
   94.74 +	} else if (property instanceof TypeName) {
   94.75 +	   dispatch = new TypeAccess(dispatcher.getStartOffset(), property.getEndOffset(), dispatcher, (TypeName)property);
   94.76 +	} else {
   94.77 +	   throw new IllegalArgumentException();
   94.78 +	}
   94.79 +        return dispatch;
   94.80 +    }
   94.81 +
   94.82 +
   94.83 +    public List setModifier(List items, int modifier) {
   94.84 +        List list = new LinkedList();
   94.85 +        for (Iterator iter = items.iterator(); iter.hasNext();) {
   94.86 +            final Object next = iter.next();
   94.87 +            if (next instanceof TypeDeclaration) {
   94.88 +                ((TypeDeclaration)next).setModifier(modifier);
   94.89 +                list.add(next);
   94.90 +            } else if (next instanceof MethodDeclaration) {
   94.91 +                ((MethodDeclaration)next).setModifier(modifier);
   94.92 +                list.add(next);
   94.93 +            } else if (next instanceof FieldsDeclaration) {
   94.94 +                ((FieldsDeclaration)next).setModifier(modifier);
   94.95 +                list.add(next);
   94.96 +            } else {
   94.97 +                list.add(next);
   94.98 +            }
   94.99 +        }
  94.100 +        return list;
  94.101 +    }
  94.102 +
  94.103 +    interface ErrorStrategy {
  94.104 +        public boolean errorRecovery(boolean debug) throws Exception;
  94.105 +    }
  94.106 +
  94.107 +    class DefaultErrorStrategy implements ErrorStrategy {
  94.108 +
  94.109 +        public boolean errorRecovery(boolean debug) throws Exception {
  94.110 +            return AdaASTParser.super.error_recovery(debug);
  94.111 +        }
  94.112 +    }
  94.113 +
  94.114 +    /**
  94.115 +     * Attempt to recover from a syntax error.  This returns false if recovery fails,
  94.116 +     * true if it succeeds.
  94.117 +     * @param debug should we produce debugging messages as we parse.
  94.118 +     */
  94.119 +    @Override
  94.120 +    protected boolean error_recovery(boolean debug) throws java.lang.Exception {
  94.121 +        return errorStrategy.errorRecovery(debug);
  94.122 +    }
  94.123 +
  94.124 +    /**
  94.125 +     * Report a non fatal error (or warning).  This method takes a message
  94.126 +     * string and an additional object (to be used by specializations implemented in subclasses).
  94.127 +     * The super class prints the message to System.err.
  94.128 +     * @param message an error message.
  94.129 +     * @param info    an extra object reserved for use by specialized subclasses.
  94.130 +     */
  94.131 +    @Override
  94.132 +    public void report_error(String message, Object info) {
  94.133 +        System.out.print("report_eror"  + message);
  94.134 +    }	
  94.135 +
  94.136 +    /**
  94.137 +     * This method is called when a syntax error has been detected and recovery is about to be invoked.
  94.138 +     * The super class just emit a "Syntax error" error message.
  94.139 +     * @param cur_token the current lookahead Symbol.
  94.140 +     */
  94.141 +    @Override
  94.142 +    public void syntax_error(java_cup.runtime.Symbol cur_token) {
  94.143 +        java_cup.runtime.Symbol symbol = (java_cup.runtime.Symbol)stack.peek();
  94.144 +        int state = symbol.parse_state;
  94.145 +        short[] rowOfProbe = action_tab[state];
  94.146 +        if (errorHandler != null) {
  94.147 +            errorHandler.handleError(ParserErrorHandler.Type.SYNTAX_ERROR, rowOfProbe, cur_token, symbol);
  94.148 +        }
  94.149 +     }
  94.150 +
  94.151 +    /**
  94.152 +     * This method is called when a syntax error has been detected during action.
  94.153 +     * @param message an error message.
  94.154 +     */
  94.155 +    public void message_error(String message) {
  94.156 +        java_cup.runtime.Symbol symbol = (java_cup.runtime.Symbol)stack.peek();
  94.157 +        if (errorHandler != null) {
  94.158 +            errorHandler.handleError(ParserErrorHandler.Type.SYNTAX_ERROR, symbol, message);
  94.159 +        }
  94.160 +     }
  94.161 +
  94.162 +     /**
  94.163 +     * Report a fatal error.  This method takes a message string and an additional object
  94.164 +     * (to be used by specializations implemented in subclasses).
  94.165 +     * The super class reports the error then throws an exception.
  94.166 +     * @param message an error message.
  94.167 +     * @param info    an extra object reserved for use by specialized subclasses.
  94.168 +     */
  94.169 +    @Override
  94.170 +    public void report_fatal_error(String message, Object info) throws Exception {
  94.171 +        if (errorHandler != null) {
  94.172 +            errorHandler.handleError(ParserErrorHandler.Type.FATAL_PARSER_ERROR, null, cur_token, null);
  94.173 +        }
  94.174 +    }
  94.175 +
  94.176 +    @Override
  94.177 +    protected int error_sync_size() {
  94.178 +        return 1;
  94.179 +    }
  94.180 +
  94.181 +:}
  94.182 +
  94.183 +
  94.184 +/*********************************************************
  94.185 + *                                                       *
  94.186 + * Ada 83, 95, 2005 and 2012 (LALR) AST Parser, based on:*
  94.187 + *                                                       *
  94.188 + * 1. Ada 83 Reference Manual                            *
  94.189 + * 2. Ada Reference Manual                               *
  94.190 + *    ISO/IEC 8652:1995(E)                               *
  94.191 + *    with Technical Corrigendum 1                       *
  94.192 + *    Language and Standard Libraries                    *
  94.193 + *    Copyright © 1992,1993,1994,1995 Intermetrics, Inc. *
  94.194 + *    Copyright © 2000 The MITRE Corporation, Inc.       *
  94.195 + * 3. http://www.adaic.com/standards/95lrm/grammar9x.y   *
  94.196 + * 4. Ada Reference Manual                               *
  94.197 + *    ISO/IEC 8652:201z Ed. 3                            *
  94.198 + *    with Technical Corrigendum 1                       *
  94.199 + *    and Amendment 1                                    *
  94.200 + *    and Amendment 2 (Draft 10)                         *
  94.201 + *    Language and Standard Libraries                    *
  94.202 + *    Copyright © 1992,1993,1994,1995 Intermetrics, Inc. *
  94.203 + *    Copyright © 2000 The MITRE Corporation, Inc.       *
  94.204 + *    Copyright © 2004, 2005, 2006 AXE Consultants       *
  94.205 + *    Copyright © 2004, 2005, 2006 Ada-Europe            *
  94.206 + *    Copyright © 2008, 2009, 2010 AXE Consultants       *
  94.207 + *                                                       *
  94.208 + * Author: Andrea Lucarelli                              *
  94.209 + * Parser Generator: JavaCup                             *
  94.210 + *                                                       *
  94.211 + *********************************************************/
  94.212 +
  94.213 +/*************************
  94.214 + * JavaCup Terminals     *
  94.215 + *************************/
  94.216 +
  94.217 +//
  94.218 +// Ada 83, 95 and 2005 keywords
  94.219 +//
  94.220 +terminal ABORT;
  94.221 +terminal ABS;
  94.222 +terminal ABSTRACT;
  94.223 +terminal ACCESS;
  94.224 +terminal ACCEPT;
  94.225 +terminal ALIASED;
  94.226 +terminal ALL;
  94.227 +terminal AND;
  94.228 +terminal ARRAY;
  94.229 +terminal AT;
  94.230 +terminal BEGIN;
  94.231 +terminal BODY;
  94.232 +terminal CONSTANT;
  94.233 +terminal CASE;
  94.234 +terminal DECLARE;
  94.235 +terminal DELAY;
  94.236 +terminal DELTA;
  94.237 +terminal DIGITS;
  94.238 +terminal DO;
  94.239 +terminal ELSE;
  94.240 +terminal ELSIF;
  94.241 +terminal END;
  94.242 +terminal ENTRY;
  94.243 +terminal EXCEPTION;
  94.244 +terminal EXIT;
  94.245 +terminal FOR;
  94.246 +terminal FUNCTION;
  94.247 +terminal GENERIC;
  94.248 +terminal GOTO;
  94.249 +terminal IF;
  94.250 +terminal IN;
  94.251 +terminal INTERFACE;
  94.252 +terminal IS;
  94.253 +terminal LIMITED;
  94.254 +terminal LOOP;
  94.255 +terminal MOD;
  94.256 +terminal NEW;
  94.257 +terminal NOT;
  94.258 +terminal NULL;
  94.259 +terminal OF;
  94.260 +terminal OR;
  94.261 +terminal OTHERS;
  94.262 +terminal OUT;
  94.263 +terminal OVERRIDING;
  94.264 +terminal PACKAGE;
  94.265 +terminal PRAGMA;
  94.266 +terminal PRIVATE;
  94.267 +terminal PROCEDURE;
  94.268 +terminal PROTECTED;
  94.269 +terminal RETURN;
  94.270 +terminal REVERSE;
  94.271 +terminal RAISE;
  94.272 +terminal RANGE;
  94.273 +terminal RECORD;
  94.274 +terminal REM;
  94.275 +terminal RENAMES;
  94.276 +terminal REQUEUE;
  94.277 +terminal SELECT;
  94.278 +terminal SEPARATE;
  94.279 +terminal SOME;
  94.280 +terminal SYNCHRONIZED;
  94.281 +terminal SUBTYPE;
  94.282 +terminal TAGGED;
  94.283 +terminal TASK;
  94.284 +terminal TERMINATE;
  94.285 +terminal THEN;
  94.286 +terminal TYPE;
  94.287 +terminal UNTIL;
  94.288 +terminal USE;
  94.289 +terminal WHEN;
  94.290 +terminal WHILE;
  94.291 +terminal WITH;
  94.292 +terminal XOR;
  94.293 +
  94.294 +
  94.295 +// 2.2 Lexical Elements, Separators, and Delimiters
  94.296 +
  94.297 +//
  94.298 +// delimiters
  94.299 +//
  94.300 +terminal AMP;
  94.301 +terminal TICK;
  94.302 +terminal LPAREN;
  94.303 +terminal RPAREN;
  94.304 +terminal STAR;
  94.305 +terminal PLUS;
  94.306 +terminal COMMA;
  94.307 +terminal MINUS;
  94.308 +terminal DOT;
  94.309 +terminal SLASH;
  94.310 +terminal COLON;
  94.311 +terminal SEMICOLON;
  94.312 +terminal GT;
  94.313 +terminal EQ;
  94.314 +terminal LT;
  94.315 +terminal BAR;
  94.316 +
  94.317 +//
  94.318 +// compound delimiters
  94.319 +//
  94.320 +terminal ARROW;
  94.321 +terminal DOT_DOT;
  94.322 +terminal EXPON;
  94.323 +terminal ASSIGNMENT;
  94.324 +terminal INEQ;
  94.325 +terminal GTEQ;
  94.326 +terminal LTEQ;
  94.327 +terminal LTLT;
  94.328 +terminal GTGT;
  94.329 +terminal BOX;
  94.330 +
  94.331 +//
  94.332 +// others tokens
  94.333 +//
  94.334 +// ??? terminal String OPERATOR_SYMBOL;
  94.335 +terminal String CHAR_LITERAL;    // 2.1 Character Set
  94.336 +terminal String IDENTIFIER;      // 2.3 Identifiers
  94.337 +terminal String DECIMAL_LITERAL; // 2.4.1 Decimal Literals
  94.338 +terminal String BASED_LITERAL;   // 2.4.2 Based Literals
  94.339 +terminal String STRING_LITERAL;  // 2.6 String Literals
  94.340 +
  94.341 +
  94.342 +/*************************
  94.343 + * JavaCup Non terminals *
  94.344 + *************************/
  94.345 +
  94.346 +// 3.1 Declarations
  94.347 +non terminal Statement               declaration;
  94.348 +non terminal List                    fields_declaration;
  94.349 +non terminal Statement               type_declaration;
  94.350 +non terminal Statement               subprog_declaration;
  94.351 +non terminal Identifier              defining_identifier;
  94.352 +
  94.353 +// 3.11 Declarative Parts
  94.354 +non terminal List                    declarative_items_opt;
  94.355 +non terminal List                    declarative_item_list;
  94.356 +non terminal Statement               declarative_item;
  94.357 +non terminal List                    declarative_part;
  94.358 +non terminal List                    declarative_item_or_body_s1;
  94.359 +non terminal List                    private_part;
  94.360 +non terminal Statement               proper_body;
  94.361 +non terminal Statement               task_body;
  94.362 +
  94.363 +// 3.2.1 Type Declarations
  94.364 +non terminal Expression              type_definition;
  94.365 +
  94.366 +// 3.2.2 Subtype Declarations
  94.367 +non terminal Statement               subtype_declaration;
  94.368 +non terminal TypeName                subtype_indication;
  94.369 +
  94.370 +// 3.3.1 Object Declarations
  94.371 +non terminal List                    object_declaration;
  94.372 +non terminal List                    defining_identifier_list;
  94.373 +non terminal Variable.Kind           object_qualifier_opt;
  94.374 +
  94.375 +// 3.3.2 Number Declarations
  94.376 +non terminal List                    number_declaration;
  94.377 +
  94.378 +// 4.1 Names
  94.379 +non terminal Identifier              name;
  94.380 +non terminal Identifier              simple_name;
  94.381 +
  94.382 +// 4.1.3 Selected Components
  94.383 +non terminal Identifier              selected_component;
  94.384 +
  94.385 +// 4.4 Expressions
  94.386 +non terminal Expression              expression;
  94.387 +non terminal Expression              relation;
  94.388 +non terminal Expression              simple_expression;
  94.389 +non terminal Expression              term;
  94.390 +non terminal Expression              factor;
  94.391 +non terminal Expression              primary;
  94.392 +
  94.393 +// 4.5 Operators and Expression Evaluation
  94.394 +non terminal InfixExpression.OperatorType logical_operator;
  94.395 +non terminal InfixExpression.OperatorType relational_operator;
  94.396 +non terminal InfixExpression.OperatorType binary_adding_operator;
  94.397 +non terminal UnaryOperation.Operator      unary_adding_operator;
  94.398 +non terminal InfixExpression.OperatorType multiplying_operator;
  94.399 +
  94.400 +// 4.7 Qualified Expressions
  94.401 +non terminal Expression              qualified_expression;
  94.402 +
  94.403 +// 5.1 Simple and Compound Statements - Sequences of Statements
  94.404 +non terminal List                    sequence_of_statements;
  94.405 +non terminal Statement               simple_statement;
  94.406 +non terminal Statement               compound_statement;
  94.407 +non terminal Statement               null_statement;
  94.408 +
  94.409 +// 5.2 Assignment Statements
  94.410 +non terminal Statement               assignment_statement;
  94.411 +
  94.412 +// 5.3 If Statements
  94.413 +non terminal IfStatement             if_statement;
  94.414 +non terminal List[]                  cond_clause_s;
  94.415 +non terminal Expression              condition;
  94.416 +non terminal Block                   else_opt;
  94.417 +
  94.418 +// 5.4 Case Statements
  94.419 +non terminal CaseStatement           case_statement;
  94.420 +non terminal List                    alternative_s;
  94.421 +non terminal CaseWhen                alternative;
  94.422 +
  94.423 +// 5.5 Loop Statements
  94.424 +non terminal LoopStatement           loop_statement;
  94.425 +non terminal Block                   basic_loop;
  94.426 +non terminal Expression              iteration;
  94.427 +
  94.428 +// 5.6 Block Statements
  94.429 +non terminal BlockStatement          block_statement;
  94.430 +non terminal Block                   block_declarative;
  94.431 +non terminal Block                   block_body;
  94.432 +
  94.433 +// 5.7 Exit Statements
  94.434 +non terminal Statement               exit_statement;
  94.435 +non terminal Expression              name_opt;
  94.436 +
  94.437 +// 5.8 Goto Statements
  94.438 +non terminal Statement               goto_statement;
  94.439 +
  94.440 +// 6.1 Subprogram Declarations
  94.441 +non terminal SubprogramSpecification subprogram_specification;
  94.442 +non terminal SubprogramSpecification generic_subp_inst;
  94.443 +non terminal MethodDeclaration       subprogram_body;
  94.444 +non terminal List                    param_s;
  94.445 +non terminal List                    formal_part_opt;
  94.446 +non terminal List                    formal_part;
  94.447 +non terminal List                    param;
  94.448 +non terminal FormalParameter.Mode    mode;
  94.449 +non terminal Identifier              designator;
  94.450 +non terminal Identifier              operator_symbol;
  94.451 +
  94.452 +// 6.5 Return Statements
  94.453 +non terminal Statement               return_statement;
  94.454 +
  94.455 +// 7.1 Package Specifications and Declarations
  94.456 +non terminal Statement               package_declaration;
  94.457 +non terminal Statement               package_specification;
  94.458 +			        
  94.459 +// 7.2 Package Bodies	        
  94.460 +non terminal Statement               package_body;
  94.461 +non terminal Statement               body;
  94.462 +
  94.463 +// 7.3 Private Types and Private Extensions
  94.464 +non terminal PrivateType             private_type_declaration;
  94.465 +non terminal Integer                 tagged_opt;
  94.466 +non terminal Integer                 limited_opt;
  94.467 +
  94.468 +// 8.4 Use Clauses
  94.469 +non terminal Statement               use_clause;
  94.470 +non terminal List                    package_name_list;
  94.471 +non terminal List                    subtype_mark_list;
  94.472 +
  94.473 +// 8.5 Renaming Declarations
  94.474 +non terminal Statement               renaming_declaration;
  94.475 +non terminal Statement               rename_unit;
  94.476 +
  94.477 +// 9.4 Protected Units and Protected Objects
  94.478 +non terminal Statement               protected_body;
  94.479 +
  94.480 +// 9.6 Delay Statements, Duration, and Time
  94.481 +non terminal Statement               delay_statement;
  94.482 +
  94.483 +// 9.8 Abort of a Task - Abort of a Sequence of Statements
  94.484 +non terminal Statement               abort_statement;
  94.485 +non terminal List                    task_name_list;
  94.486 +
  94.487 +// 10.1.1 Compilation Units - Library Units
  94.488 +non terminal Program                 compilation;
  94.489 +non terminal List                    compilation_units;
  94.490 +non terminal Statement               compilation_unit;
  94.491 +non terminal Statement               unit;
  94.492 +
  94.493 +// 10.1.2 Context Clauses - With Clauses
  94.494 +non terminal Statement               context_clause;
  94.495 +non terminal Statement               with_clause;
  94.496 +non terminal List                    library_unit_name_list;
  94.497 +
  94.498 +// 10.1.3 Subunits of Compilation Units
  94.499 +non terminal Statement               body_stub;
  94.500 +
  94.501 +// 11.3 Raise Statements
  94.502 +non terminal Statement               raise_statement;
  94.503 +
  94.504 +// 12.1 Generic Declarations
  94.505 +non terminal Statement               generic_declaration;
  94.506 +
  94.507 +// 13.8 Machine Code Insertions
  94.508 +non terminal Statement               code_statement;
  94.509 +
  94.510 +
  94.511 +// TBD sections
  94.512 +non terminal Identifier                   compound_name;
  94.513 +non terminal Identifier                   compound_name_opt;
  94.514 +non terminal TypeName                     object_subtype_def;
  94.515 +non terminal Expression                   init_opt;
  94.516 +non terminal Statement                    type_decl;
  94.517 +non terminal Expression                   type_completion;
  94.518 +non terminal NameBase                     subtype_mark;
  94.519 +non terminal List                         handled_stmt_s;
  94.520 +non terminal Statement                    statement;
  94.521 +non terminal Statement                    subunit;
  94.522 +non terminal Identifier                   id_opt;
  94.523 +non terminal Statement                    unlabeled;
  94.524 +non terminal Expression                   literal;
  94.525 +non terminal Expression                   parenthesized_primary;
  94.526 +non terminal Expression                   when_opt;
  94.527 +non terminal Statement                    procedure_call_statement;
  94.528 +non terminal String                       used_char;
  94.529 +non terminal Expression                   choice_s;
  94.530 +non terminal Identifier                   label_opt;
  94.531 +non terminal Identifier                   attribute;
  94.532 +non terminal Identifier                   indexed_component; // TODO: must be change it
  94.533 +non terminal Expression                   value_s;
  94.534 +non terminal Expression                   discrete_range;
  94.535 +non terminal Expression                   range;
  94.536 +non terminal InfixExpression.OperatorType short_circuit;
  94.537 +non terminal InfixExpression.OperatorType membership;
  94.538 +non terminal String                       attribute_id;
  94.539 +
  94.540 +// TBD RM sections and types
  94.541 +non terminal     pragma;
  94.542 +non terminal     pragma_arg_s;
  94.543 +non terminal     pragma_arg;
  94.544 +non terminal     pragma_s;
  94.545 +non terminal     task_decl;
  94.546 +non terminal     prot_decl;
  94.547 +non terminal     exception_decl;
  94.548 +non terminal     discrim_part_opt;
  94.549 +non terminal     discrim_part;
  94.550 +non terminal     enumeration_type;
  94.551 +non terminal     integer_type;
  94.552 +non terminal     real_type;
  94.553 +non terminal     array_type;
  94.554 +non terminal     record_type;
  94.555 +non terminal     access_type;
  94.556 +non terminal     derived_type;
  94.557 +non terminal     constraint;
  94.558 +non terminal     range_constraint;
  94.559 +non terminal     decimal_digits_constraint;
  94.560 +non terminal     range_constr_opt;
  94.561 +non terminal     record_def;
  94.562 +non terminal     enum_id_s;
  94.563 +non terminal     enum_id;
  94.564 +non terminal     range_spec;
  94.565 +non terminal     range_spec_opt;
  94.566 +non terminal     float_type;
  94.567 +non terminal     fixed_type;
  94.568 +non terminal     unconstr_array_type;
  94.569 +non terminal     constr_array_type;
  94.570 +non terminal     index_s;
  94.571 +non terminal     index;
  94.572 +non terminal     component_subtype_def;
  94.573 +non terminal     aliased_opt;
  94.574 +non terminal     iter_index_constraint;
  94.575 +non terminal     iter_discrete_range_s;
  94.576 +non terminal     comp_list;
  94.577 +non terminal     comp_decl_s;
  94.578 +non terminal     comp_decl;
  94.579 +non terminal     variant_part_opt;
  94.580 +non terminal     variant_part;
  94.581 +non terminal     discrim_spec_s;
  94.582 +non terminal     discrim_spec;
  94.583 +non terminal     access_opt;
  94.584 +non terminal     variant_s;
  94.585 +non terminal     variant;
  94.586 +non terminal     choice;
  94.587 +non terminal     discrete_with_range;
  94.588 +non terminal     prot_opt;
  94.589 +non terminal     rep_spec;
  94.590 +non terminal     declarative_item_or_body;
  94.591 +non terminal     value;
  94.592 +non terminal     comp_assoc;
  94.593 +non terminal     aggregate;
  94.594 +non terminal     value_s_2;
  94.595 +non terminal     allocator;
  94.596 +non terminal     label;
  94.597 +non terminal     requeue_stmt;
  94.598 +non terminal     accept_stmt;
  94.599 +non terminal     select_stmt;
  94.600 +non terminal     iter_part;
  94.601 +non terminal     reverse_opt;
  94.602 +non terminal     except_handler_part_opt;
  94.603 +non terminal     except_handler_part;
  94.604 +non terminal     generic_package_instantiation;
  94.605 +non terminal     body_opt;
  94.606 +non terminal     generic_formal_part;
  94.607 +non terminal     task_spec;
  94.608 +non terminal     task_def;
  94.609 +non terminal     entry_decl_s;
  94.610 +non terminal     rep_spec_s;
  94.611 +non terminal     task_private_opt;
  94.612 +non terminal     prot_spec;
  94.613 +non terminal     prot_def;
  94.614 +non terminal     prot_op_decl_s;
  94.615 +non terminal     prot_private_opt;
  94.616 +non terminal     prot_elem_decl_s;
  94.617 +non terminal     prot_op_decl;
  94.618 +non terminal     entry_decl;
  94.619 +non terminal     prot_elem_decl;
  94.620 +non terminal     prot_op_body_s;
  94.621 +non terminal     prot_op_body;
  94.622 +non terminal     entry_body;
  94.623 +non terminal     entry_body_part;
  94.624 +non terminal     accept_hdr;
  94.625 +non terminal     entry_call;
  94.626 +non terminal     entry_name;
  94.627 +non terminal     select_wait;
  94.628 +non terminal     async_select;
  94.629 +non terminal     timed_entry_call;
  94.630 +non terminal     cond_entry_call;
  94.631 +non terminal     guarded_select_alt;
  94.632 +non terminal     or_select;
  94.633 +non terminal     select_alt;
  94.634 +non terminal     stmts_opt;
  94.635 +non terminal     delay_or_entry_alt;
  94.636 +non terminal     private_opt;
  94.637 +non terminal     exception_handler;
  94.638 +non terminal     except_choice_s;
  94.639 +non terminal     except_choice;
  94.640 +non terminal     generic_formal;
  94.641 +non terminal     generic_discrim_part_opt;
  94.642 +non terminal     generic_type_def;
  94.643 +non terminal     subp_default;
  94.644 +non terminal     generic_derived_type;
  94.645 +non terminal     generic_inst;
  94.646 +non terminal     attrib_def;
  94.647 +non terminal     record_type_spec;
  94.648 +non terminal     address_spec;
  94.649 +non terminal     align_opt;
  94.650 +non terminal     comp_loc_s;
  94.651 +
  94.652 +/*************************
  94.653 + * JavaCup precedence    *
  94.654 + *************************/
  94.655 +
  94.656 +// TODO: must be complete
  94.657 +precedence left OR;
  94.658 +precedence left XOR;
  94.659 +precedence left AND;
  94.660 +
  94.661 +precedence left SEMICOLON;
  94.662 +
  94.663 +precedence left ELSIF;
  94.664 +precedence left ELSE;
  94.665 +precedence left END;
  94.666 +
  94.667 +precedence right NOT;
  94.668 +
  94.669 +precedence nonassoc ASSIGNMENT;
  94.670 +
  94.671 +
  94.672 +///////////////////////////////////////////////////////////////////////////////
  94.673 +// start with root symbol 
  94.674 +//
  94.675 +start with compilation;
  94.676 +
  94.677 +/******************************
  94.678 + *                            *
  94.679 + * Ada 83, 95 and 2005 syntax *
  94.680 + *                            *
  94.681 + ******************************/
  94.682 +
  94.683 +///////////////////////////////////////////////////////////////////////////////
  94.684 +// 2.8 Pragmas
  94.685 +//
  94.686 +pragma  ::= PRAGMA IDENTIFIER SEMICOLON
  94.687 +	| PRAGMA simple_name LPAREN pragma_arg_s RPAREN SEMICOLON
  94.688 +	;
  94.689 +
  94.690 +pragma_arg_s ::= pragma_arg
  94.691 +	| pragma_arg_s COMMA pragma_arg
  94.692 +	;
  94.693 +
  94.694 +pragma_arg ::= expression
  94.695 +	| simple_name ARROW expression
  94.696 +	;
  94.697 +
  94.698 +pragma_s ::=
  94.699 +	| pragma_s pragma
  94.700 +	;
  94.701 +
  94.702 +///////////////////////////////////////////////////////////////////////////////
  94.703 +// 3.1 Declarations
  94.704 +//
  94.705 +fields_declaration ::=
  94.706 +object_declaration:statement
  94.707 +{:
  94.708 +	RESULT = statement;
  94.709 +:}
  94.710 +| number_declaration:statement
  94.711 +{:
  94.712 +	RESULT = statement;
  94.713 +:}
  94.714 +;
  94.715 +
  94.716 +type_declaration ::=
  94.717 +type_decl:statement
  94.718 +{:
  94.719 +	RESULT = statement;
  94.720 +:}
  94.721 +| subtype_declaration:statement
  94.722 +{:
  94.723 +	RESULT = statement;
  94.724 +:}
  94.725 +;
  94.726 +
  94.727 +declaration ::=
  94.728 +task_decl
  94.729 +| prot_decl
  94.730 +| exception_decl
  94.731 +| renaming_declaration:statement
  94.732 +{:
  94.733 +	RESULT = statement;
  94.734 +:}
  94.735 +| generic_declaration:statement
  94.736 +{:
  94.737 +	RESULT = statement;
  94.738 +:}
  94.739 +| body_stub:statement
  94.740 +{:
  94.741 +	RESULT = statement;
  94.742 +:}
  94.743 +| error:theError SEMICOLON // error statement
  94.744 +{:
  94.745 +    ASTError error = new ASTError(theErrorleft, theErrorright);
  94.746 +    RESULT = error;
  94.747 +:}
  94.748 +;
  94.749 +
  94.750 +defining_identifier ::=
  94.751 +IDENTIFIER:id
  94.752 +{:
  94.753 +    Identifier identifier = new Identifier(idleft, idright, id);
  94.754 +    RESULT = identifier;
  94.755 +:}
  94.756 +;
  94.757 +
  94.758 +///////////////////////////////////////////////////////////////////////////////
  94.759 +// 3.3.1 Object Declarations
  94.760 +//
  94.761 +object_declaration ::= 
  94.762 +defining_identifier_list:identifierList COLON object_qualifier_opt:varKind object_subtype_def:subtype init_opt:init SEMICOLON
  94.763 +{:
  94.764 +    List list = new LinkedList();
  94.765 +    for (Object identifier : identifierList) {
  94.766 +        Variable variable = new Variable (((Identifier)identifier).getStartOffset(), ((Identifier)identifier).getEndOffset(), (Identifier)identifier, varKind, subtype);
  94.767 +        list.add(new ASTNode[] {variable, init});
  94.768 +    }
  94.769 +    RESULT = list;
  94.770 +:}
  94.771 +;
  94.772 +
  94.773 +defining_identifier_list ::= 
  94.774 +defining_identifier:identifier
  94.775 +{:
  94.776 +    List identifierList = new LinkedList();
  94.777 +    identifierList.add(identifier);
  94.778 +    RESULT = identifierList;
  94.779 +:}
  94.780 +| defining_identifier_list:identifierList COMMA defining_identifier:identifier
  94.781 +{:
  94.782 +    identifierList.add(identifier);
  94.783 +    RESULT = identifierList;
  94.784 +:}
  94.785 +;
  94.786 +
  94.787 +object_qualifier_opt ::=
  94.788 +{:
  94.789 +    RESULT = Variable.Kind.DEFAULT;
  94.790 +:}
  94.791 +| ALIASED
  94.792 +{:
  94.793 +    RESULT = Variable.Kind.ALIASED;
  94.794 +:}
  94.795 +| CONSTANT
  94.796 +{:
  94.797 +    RESULT = Variable.Kind.CONSTANT;
  94.798 +:}
  94.799 +| ALIASED CONSTANT
  94.800 +{:
  94.801 +    RESULT = Variable.Kind.ALIASED_CONSTANT;
  94.802 +:}
  94.803 +;
  94.804 +
  94.805 +object_subtype_def ::= 
  94.806 +subtype_indication:subtype
  94.807 +{:
  94.808 +    RESULT = subtype;
  94.809 +:}
  94.810 +| array_type:array
  94.811 +;
  94.812 +
  94.813 +init_opt ::=
  94.814 +{:
  94.815 +    RESULT = null;
  94.816 +:}
  94.817 +| ASSIGNMENT expression:expr
  94.818 +{:
  94.819 +    RESULT = expr;
  94.820 +:}
  94.821 +;
  94.822 +
  94.823 +///////////////////////////////////////////////////////////////////////////////
  94.824 +// 3.3.2 Number Declarations
  94.825 +//
  94.826 +number_declaration ::= 
  94.827 +defining_identifier_list:identifierList COLON CONSTANT ASSIGNMENT expression:init SEMICOLON
  94.828 +{:
  94.829 +    List list = new LinkedList();
  94.830 +    for (Object identifier : identifierList) {
  94.831 +        Variable variable = new Variable (((Identifier)identifier).getStartOffset(), ((Identifier)identifier).getEndOffset(), (Identifier)identifier, Variable.Kind.CONSTANT);
  94.832 +        list.add(new ASTNode[] {variable, init});
  94.833 +    }
  94.834 +    RESULT = list;
  94.835 +:}
  94.836 +;
  94.837 +
  94.838 +type_decl ::= 
  94.839 +TYPE:token defining_identifier:identifier discrim_part_opt type_completion:typeCompletion SEMICOLON:end
  94.840 +{:
  94.841 +    TypeDeclaration type = new TypeDeclaration (tokenleft, endright, identifier, typeCompletion);
  94.842 +    RESULT = type;
  94.843 +:}
  94.844 +;
  94.845 +
  94.846 +discrim_part_opt ::=
  94.847 +	| discrim_part
  94.848 +	| LPAREN BOX RPAREN
  94.849 +	;
  94.850 +
  94.851 +type_completion ::=
  94.852 +// empty
  94.853 +{:
  94.854 +    RESULT = null;
  94.855 +:}
  94.856 +| IS type_definition:typeDef
  94.857 +{:
  94.858 +    RESULT = typeDef;
  94.859 +:}
  94.860 +;
  94.861 +
  94.862 +type_definition ::=
  94.863 +enumeration_type 
  94.864 +| integer_type
  94.865 +| real_type
  94.866 +| array_type
  94.867 +| record_type
  94.868 +| access_type
  94.869 +| derived_type
  94.870 +| private_type_declaration:privateType
  94.871 +{:
  94.872 +    RESULT = privateType;
  94.873 +:}
  94.874 +;
  94.875 +
  94.876 +///////////////////////////////////////////////////////////////////////////////
  94.877 +// 3.2.2 Subtype Declarations
  94.878 +//
  94.879 +subtype_declaration ::=
  94.880 +SUBTYPE:token defining_identifier:identifier IS subtype_indication:subtypeIndication SEMICOLON:end
  94.881 +{:
  94.882 +    SubtypeDeclaration type = new SubtypeDeclaration (tokenleft, endright, identifier, subtypeIndication);
  94.883 +    RESULT = type;
  94.884 +:}
  94.885 +;
  94.886 +
  94.887 +subtype_indication ::= 
  94.888 +name:name constraint
  94.889 +{:
  94.890 +    TypeName type = new TypeName (nameleft, nameright, name);
  94.891 +    RESULT = type;
  94.892 +:}
  94.893 +| name:name
  94.894 +{:    
  94.895 +    TypeName type = new TypeName (nameleft, nameright, name);
  94.896 +    RESULT = type;
  94.897 +:}
  94.898 +;
  94.899 +
  94.900 +constraint ::= range_constraint
  94.901 +	| decimal_digits_constraint
  94.902 +	;
  94.903 +
  94.904 +decimal_digits_constraint ::= DIGITS expression range_constr_opt
  94.905 +	;
  94.906 +
  94.907 +derived_type ::= NEW subtype_indication
  94.908 +	| NEW subtype_indication WITH PRIVATE
  94.909 +	| NEW subtype_indication WITH record_def
  94.910 +	| ABSTRACT NEW subtype_indication WITH PRIVATE
  94.911 +	| ABSTRACT NEW subtype_indication WITH record_def
  94.912 +	;
  94.913 +
  94.914 +range_constraint ::= RANGE range
  94.915 +	;
  94.916 +
  94.917 +range ::=
  94.918 +simple_expression:simple_expression1 DOT_DOT simple_expression:simple_expression2
  94.919 +{:
  94.920 +    Range range = new Range (simple_expression1left, simple_expression2right, simple_expression1, simple_expression2);
  94.921 +    RESULT = range;
  94.922 +:}
  94.923 +| name:name TICK RANGE:end
  94.924 +{:
  94.925 +    Range range = new Range (nameleft, endright, name, name);
  94.926 +    RESULT = range;
  94.927 +:}
  94.928 +| name:name TICK RANGE LPAREN expression:expression RPAREN:end
  94.929 +{:
  94.930 +    Range range = new Range (nameleft, endright, name, expression);
  94.931 +    RESULT = range;
  94.932 +:}
  94.933 +;
  94.934 +
  94.935 +enumeration_type ::= LPAREN enum_id_s RPAREN
  94.936 +        ;
  94.937 +
  94.938 +enum_id_s ::= enum_id
  94.939 +	| enum_id_s COMMA enum_id
  94.940 +	;
  94.941 +
  94.942 +enum_id ::= IDENTIFIER
  94.943 +	| CHAR_LITERAL
  94.944 +	;
  94.945 +
  94.946 +integer_type ::= range_spec
  94.947 +	| MOD expression
  94.948 +	;
  94.949 +	
  94.950 +
  94.951 +range_spec ::= range_constraint
  94.952 +	;
  94.953 +
  94.954 +range_spec_opt ::=
  94.955 +	| range_spec
  94.956 +	;
  94.957 +
  94.958 +real_type ::= float_type
  94.959 +	| fixed_type
  94.960 +	;
  94.961 +
  94.962 +float_type ::= DIGITS expression range_spec_opt
  94.963 +	;
  94.964 +
  94.965 +fixed_type ::= DELTA expression range_spec
  94.966 +	| DELTA expression DIGITS expression range_spec_opt
  94.967 +	;
  94.968 +
  94.969 +array_type ::= unconstr_array_type
  94.970 +	| constr_array_type
  94.971 +	;
  94.972 +
  94.973 +unconstr_array_type ::= ARRAY LPAREN index_s RPAREN OF component_subtype_def
  94.974 +	;
  94.975 +
  94.976 +constr_array_type ::= ARRAY iter_index_constraint OF component_subtype_def
  94.977 +	;
  94.978 +
  94.979 +component_subtype_def ::= aliased_opt subtype_indication
  94.980 +	;
  94.981 +
  94.982 +aliased_opt ::= 
  94.983 +	| ALIASED
  94.984 +	;
  94.985 +
  94.986 +index_s ::= index
  94.987 +	| index_s COMMA index
  94.988 +	;
  94.989 +
  94.990 +index ::= name RANGE BOX
  94.991 +	;
  94.992 +
  94.993 +iter_index_constraint ::= LPAREN iter_discrete_range_s RPAREN
  94.994 +	;
  94.995 +
  94.996 +iter_discrete_range_s ::= discrete_range
  94.997 +	| iter_discrete_range_s COMMA discrete_range
  94.998 +	;
  94.999 +
 94.1000 +discrete_range ::=
 94.1001 +name range_constr_opt
 94.1002 +| range:range
 94.1003 +{:
 94.1004 +    RESULT = range;
 94.1005 +:}
 94.1006 +;
 94.1007 +
 94.1008 +range_constr_opt ::=
 94.1009 +	| range_constraint
 94.1010 +	;
 94.1011 +
 94.1012 +record_type ::= tagged_opt limited_opt record_def
 94.1013 +	;
 94.1014 +
 94.1015 +record_def ::= RECORD pragma_s comp_list END RECORD
 94.1016 +	| NULL RECORD
 94.1017 +	;
 94.1018 +
 94.1019 +tagged_opt ::=
 94.1020 +{:
 94.1021 +    RESULT = 0;
 94.1022 +:}
 94.1023 +| TAGGED
 94.1024 +{:
 94.1025 +    RESULT = AdaASTParser.TAGGED;
 94.1026 +:}
 94.1027 +| ABSTRACT TAGGED
 94.1028 +{:
 94.1029 +    RESULT = AdaASTParser.TAGGED + AdaASTParser.ABSTRACT;
 94.1030 +:}
 94.1031 +;
 94.1032 +
 94.1033 +comp_list ::= comp_decl_s variant_part_opt
 94.1034 +	| variant_part pragma_s
 94.1035 +	| NULL SEMICOLON pragma_s
 94.1036 +	;
 94.1037 +
 94.1038 +comp_decl_s ::= comp_decl
 94.1039 +	| comp_decl_s pragma_s comp_decl
 94.1040 +	;
 94.1041 +
 94.1042 +variant_part_opt ::= pragma_s
 94.1043 +	| pragma_s variant_part pragma_s
 94.1044 +	;
 94.1045 +
 94.1046 +comp_decl ::= 
 94.1047 +defining_identifier_list COLON component_subtype_def init_opt SEMICOLON
 94.1048 +| error:theError SEMICOLON
 94.1049 +{:
 94.1050 +    ASTError error = new ASTError(theErrorleft, theErrorright);
 94.1051 +    RESULT = error;
 94.1052 +:}
 94.1053 +;
 94.1054 +
 94.1055 +discrim_part ::= LPAREN discrim_spec_s RPAREN
 94.1056 +	;
 94.1057 +
 94.1058 +discrim_spec_s ::= discrim_spec
 94.1059 +	| discrim_spec_s SEMICOLON discrim_spec
 94.1060 +	;
 94.1061 +
 94.1062 +discrim_spec ::= 
 94.1063 +defining_identifier_list COLON access_opt subtype_mark init_opt
 94.1064 +| error:theError  // error statement
 94.1065 +{:
 94.1066 +    ASTError error = new ASTError(theErrorleft, theErrorright);
 94.1067 +    RESULT = error;
 94.1068 +:}
 94.1069 +;
 94.1070 +
 94.1071 +access_opt ::=
 94.1072 +	| ACCESS
 94.1073 +	;
 94.1074 +
 94.1075 +variant_part ::= CASE simple_name IS pragma_s variant_s END CASE SEMICOLON
 94.1076 +	;
 94.1077 +
 94.1078 +variant_s ::= variant
 94.1079 +	| variant_s variant
 94.1080 +	;
 94.1081 +
 94.1082 +variant ::= WHEN choice_s ARROW pragma_s comp_list
 94.1083 +	;
 94.1084 +
 94.1085 +choice_s ::= choice
 94.1086 +	| choice_s BAR choice
 94.1087 +	;
 94.1088 +
 94.1089 +choice ::= expression
 94.1090 +	| discrete_with_range
 94.1091 +	| OTHERS
 94.1092 +	;
 94.1093 +
 94.1094 +discrete_with_range ::= name range_constraint
 94.1095 +	| range
 94.1096 +	;
 94.1097 +
 94.1098 +access_type ::= ACCESS subtype_indication
 94.1099 +	| ACCESS CONSTANT subtype_indication
 94.1100 +	| ACCESS ALL subtype_indication
 94.1101 +	| ACCESS prot_opt PROCEDURE formal_part_opt
 94.1102 +	| ACCESS prot_opt FUNCTION formal_part_opt RETURN subtype_mark
 94.1103 +	;
 94.1104 +
 94.1105 +prot_opt ::=
 94.1106 +	| PROTECTED
 94.1107 +	;
 94.1108 +
 94.1109 +///////////////////////////////////////////////////////////////////////////////
 94.1110 +// 3.11 Declarative Parts
 94.1111 +//
 94.1112 +declarative_part ::=
 94.1113 +{:
 94.1114 +    RESULT = new LinkedList();
 94.1115 +:}
 94.1116 +| declarative_item_or_body_s1:statement
 94.1117 +{:
 94.1118 +    RESULT = statement;
 94.1119 +:}
 94.1120 +;
 94.1121 +
 94.1122 +declarative_items_opt ::=
 94.1123 +// empty
 94.1124 +{:
 94.1125 +    RESULT = new LinkedList();
 94.1126 +:}
 94.1127 +| declarative_item_list:declaritiveItemList
 94.1128 +{:
 94.1129 +    RESULT = declaritiveItemList;
 94.1130 +:}
 94.1131 +;
 94.1132 +
 94.1133 +declarative_item_list ::=
 94.1134 +declarative_item:declaritiveItem
 94.1135 +{:
 94.1136 +    List declaritiveItemList = new LinkedList();
 94.1137 +    declaritiveItemList.add(declaritiveItem);
 94.1138 +    RESULT = declaritiveItemList;
 94.1139 +:}
 94.1140 +| declarative_item_list:declaritiveItemList declarative_item:declaritiveItem
 94.1141 +{:
 94.1142 +    declaritiveItemList.add(declaritiveItem);
 94.1143 +    RESULT = declaritiveItemList;
 94.1144 +:}
 94.1145 +;
 94.1146 +
 94.1147 +declarative_item ::=
 94.1148 +fields_declaration:list
 94.1149 +{:
 94.1150 +    FieldsDeclaration fieldsDeclaration = new FieldsDeclaration(listleft, listright, list);
 94.1151 +    RESULT = fieldsDeclaration;
 94.1152 +:}
 94.1153 +| type_declaration:statement
 94.1154 +{:
 94.1155 +    RESULT = statement;
 94.1156 +:}
 94.1157 +| subprog_declaration:statement
 94.1158 +{:
 94.1159 +    RESULT = statement;
 94.1160 +:}
 94.1161 +| package_declaration:statement
 94.1162 +{:
 94.1163 +    RESULT = statement;
 94.1164 +:}
 94.1165 +| declaration:statement // todo: to be split
 94.1166 +{:
 94.1167 +    RESULT = statement;
 94.1168 +:}
 94.1169 +| use_clause:statement
 94.1170 +{:
 94.1171 +    RESULT = statement;
 94.1172 +:}
 94.1173 +| rep_spec
 94.1174 +| pragma
 94.1175 +;
 94.1176 +
 94.1177 +declarative_item_or_body_s1 ::=
 94.1178 +declarative_item_or_body:declaritiveItem
 94.1179 +{:
 94.1180 +    List declaritiveItemList = new LinkedList();
 94.1181 +    declaritiveItemList.add(declaritiveItem);
 94.1182 +    RESULT = declaritiveItemList;
 94.1183 +:}
 94.1184 +| declarative_item_or_body_s1:declaritiveItemList declarative_item_or_body:declaritiveItem
 94.1185 +{:
 94.1186 +    declaritiveItemList.add(declaritiveItem);
 94.1187 +    RESULT = declaritiveItemList;
 94.1188 +:}
 94.1189 +;
 94.1190 +
 94.1191 +declarative_item_or_body ::=
 94.1192 +body:statement
 94.1193 +{:
 94.1194 +    RESULT = statement;
 94.1195 +:}
 94.1196 +| declarative_item:statement
 94.1197 +{:
 94.1198 +    RESULT = statement;
 94.1199 +:}
 94.1200 +;
 94.1201 +
 94.1202 +body ::=
 94.1203 +subprogram_body:statement
 94.1204 +{:
 94.1205 +    RESULT = statement;
 94.1206 +:}
 94.1207 +| package_body:statement
 94.1208 +{:
 94.1209 +    RESULT = statement;
 94.1210 +:}
 94.1211 +| task_body:statement
 94.1212 +{:
 94.1213 +    RESULT = statement;
 94.1214 +:}
 94.1215 +| protected_body:statement
 94.1216 +{:
 94.1217 +    RESULT = statement;
 94.1218 +:}
 94.1219 +;
 94.1220 +
 94.1221 +proper_body ::=
 94.1222 +subprogram_body:statement
 94.1223 +{:
 94.1224 +    RESULT = statement;
 94.1225 +:}
 94.1226 +| package_body:statement
 94.1227 +{:
 94.1228 +    RESULT = statement;
 94.1229 +:}
 94.1230 +| task_body:statement
 94.1231 +{:
 94.1232 +    RESULT = statement;
 94.1233 +:}
 94.1234 +| protected_body:statement
 94.1235 +{:
 94.1236 +    RESULT = statement;
 94.1237 +:}
 94.1238 +;
 94.1239 +
 94.1240 +name ::=
 94.1241 +simple_name:simple_name // direct_name
 94.1242 +{:
 94.1243 +    RESULT = simple_name;
 94.1244 +:}
 94.1245 +| operator_symbol:operator_symbol // direct_name
 94.1246 +{:
 94.1247 +    RESULT = operator_symbol;
 94.1248 +:}
 94.1249 +| indexed_component:indexed_component
 94.1250 +{:
 94.1251 +    RESULT = indexed_component;
 94.1252 +:}
 94.1253 +| selected_component:selected_component
 94.1254 +{:
 94.1255 +    RESULT = selected_component;
 94.1256 +:}
 94.1257 +| attribute:attribute
 94.1258 +{:
 94.1259 +    RESULT = attribute;
 94.1260 +:}
 94.1261 +;
 94.1262 +
 94.1263 +subtype_mark ::=
 94.1264 +simple_name:name
 94.1265 +{:
 94.1266 +    TypeName typeName = new TypeName (nameleft, nameright, name);
 94.1267 +    RESULT = typeName;
 94.1268 +:}
 94.1269 +| subtype_mark:name TICK attribute_id:id
 94.1270 +{:
 94.1271 +    ((TypeName)name).setAttributeId(id);
 94.1272 +    RESULT = name;
 94.1273 +:}
 94.1274 +| subtype_mark:subtype_mark DOT simple_name:simple_name
 94.1275 +{:
 94.1276 +    Dispatch dispatch;
 94.1277 +    TypeName typeName = new TypeName (simple_nameleft, simple_nameright, simple_name);
 94.1278 +    if (subtype_mark instanceof TypeName) {
 94.1279 +        PackageName packageName = new PackageName (subtype_markleft, subtype_markright, ((TypeName)subtype_mark).getTypeName());
 94.1280 +        dispatch = parser.createDispatch(packageName, typeName);
 94.1281 +    } else {
 94.1282 +        dispatch = parser.createDispatch(subtype_mark, typeName);
 94.1283 +    }
 94.1284 +
 94.1285 +    RESULT = dispatch;
 94.1286 +:}
 94.1287 +;
 94.1288 +
 94.1289 +simple_name ::=
 94.1290 +IDENTIFIER:id
 94.1291 +{:
 94.1292 +    Identifier identifier = new Identifier (idleft, idright, id);
 94.1293 +    RESULT = identifier;
 94.1294 +:}
 94.1295 +;
 94.1296 +
 94.1297 +// TODO: must be create a list of identifiers
 94.1298 +compound_name ::=
 94.1299 +simple_name:simple_name
 94.1300 +{:
 94.1301 +    RESULT = simple_name;
 94.1302 +:}
 94.1303 +| compound_name:compound_name DOT simple_name:simple_name
 94.1304 +{:
 94.1305 +    RESULT = simple_name;
 94.1306 +:}
 94.1307 +;
 94.1308 +
 94.1309 +library_unit_name_list ::=
 94.1310 +compound_name:compound_name
 94.1311 +{:
 94.1312 +    List nameList = new LinkedList();
 94.1313 +    PackageName packageName = new PackageName(compound_nameleft, compound_nameright, compound_name);
 94.1314 +    nameList.add(packageName);
 94.1315 +    RESULT = nameList;
 94.1316 +:}
 94.1317 +| library_unit_name_list:nameList COMMA compound_name:compound_name
 94.1318 +{:
 94.1319 +    PackageName packageName = new PackageName(compound_nameleft, compound_nameright, compound_name);
 94.1320 +    nameList.add(packageName);
 94.1321 +    RESULT = nameList;
 94.1322 +:}
 94.1323 +;
 94.1324 +
 94.1325 +used_char ::=
 94.1326 +CHAR_LITERAL:charLiteral
 94.1327 +{:
 94.1328 +    RESULT = charLiteral;
 94.1329 +:}
 94.1330 +;
 94.1331 +
 94.1332 +indexed_component ::=
 94.1333 +name:name LPAREN value_s:index RPAREN:end
 94.1334 +{:
 94.1335 +    RESULT = name;
 94.1336 +:}
 94.1337 +;
 94.1338 +
 94.1339 +value_s ::= value
 94.1340 +	| value_s COMMA value
 94.1341 +	;
 94.1342 +
 94.1343 +value ::= expression
 94.1344 +| comp_assoc
 94.1345 +| discrete_with_range
 94.1346 +| error:theError /* error statement */
 94.1347 +{:
 94.1348 +    ASTError error = new ASTError(theErrorleft, theErrorright);
 94.1349 +    RESULT = error;
 94.1350 +:}
 94.1351 +;
 94.1352 +
 94.1353 +///////////////////////////////////////////////////////////////////////////////
 94.1354 +// 4.1.3 Selected Components
 94.1355 +//
 94.1356 +selected_component ::=
 94.1357 +name:name DOT simple_name:simple_name
 94.1358 +{:
 94.1359 +    Identifier identifier = new Identifier (nameleft, simple_nameright, name.getName() + "." + simple_name.getName());
 94.1360 +    RESULT = identifier;
 94.1361 +:}
 94.1362 +| name:name DOT used_char:used_char
 94.1363 +{:
 94.1364 +    Identifier identifier = new Identifier (nameleft, used_charright, name.getName() + "." + used_char);
 94.1365 +    RESULT = identifier;
 94.1366 +:}
 94.1367 +| name:name DOT operator_symbol:operator
 94.1368 +{:
 94.1369 +    Identifier identifier = new Identifier (nameleft, operatorright, name.getName() + "." + operator.getName());
 94.1370 +    RESULT = identifier;
 94.1371 +:}
 94.1372 +| name:name DOT ALL:all
 94.1373 +{:
 94.1374 +    Identifier identifier = new Identifier (nameleft, allright, name.getName() + "." + "all");
 94.1375 +    RESULT = identifier;
 94.1376 +:}
 94.1377 +;
 94.1378 +
 94.1379 +attribute ::=
 94.1380 +name:name TICK attribute_id
 94.1381 +{:
 94.1382 +    RESULT = name;
 94.1383 +:}
 94.1384 +;
 94.1385 +
 94.1386 +attribute_id ::=
 94.1387 +IDENTIFIER
 94.1388 +| DIGITS
 94.1389 +| DELTA
 94.1390 +| ACCESS
 94.1391 +;
 94.1392 +
 94.1393 +literal ::=
 94.1394 +DECIMAL_LITERAL:dec
 94.1395 +{:
 94.1396 +    Scalar scalar = new Scalar(decleft, decright, dec, Scalar.Type.INT);
 94.1397 +    RESULT = scalar;
 94.1398 +:}
 94.1399 +| BASED_LITERAL:dec
 94.1400 +{:
 94.1401 +    Scalar scalar = new Scalar(decleft, decright, dec, Scalar.Type.INT);
 94.1402 +    RESULT = scalar;
 94.1403 +:}
 94.1404 +| used_char:usedChar
 94.1405 +{:
 94.1406 +    Scalar scalar = new Scalar(usedCharleft, usedCharright, usedChar, Scalar.Type.STRING);
 94.1407 +    RESULT = scalar;
 94.1408 +:}
 94.1409 +| NULL:token
 94.1410 +{:
 94.1411 +    Scalar scalar = new Scalar(tokenleft, tokenright, "null", Scalar.Type.SYSTEM);
 94.1412 +    RESULT = scalar;
 94.1413 +:}
 94.1414 +;
 94.1415 +
 94.1416 +aggregate ::= LPAREN comp_assoc RPAREN
 94.1417 +	| LPAREN value_s_2 RPAREN
 94.1418 +	| LPAREN expression WITH value_s RPAREN
 94.1419 +	| LPAREN expression WITH NULL RECORD RPAREN
 94.1420 +	| LPAREN NULL RECORD RPAREN
 94.1421 +	;
 94.1422 +
 94.1423 +value_s_2 ::= value COMMA value
 94.1424 +	| value_s_2 COMMA value
 94.1425 +	;
 94.1426 +
 94.1427 +comp_assoc ::= choice_s ARROW expression
 94.1428 +	;
 94.1429 +
 94.1430 +
 94.1431 +///////////////////////////////////////////////////////////////////////////////
 94.1432 +// 4.5 Operators and Expression Evaluation
 94.1433 +//
 94.1434 +logical_operator ::=
 94.1435 +AND
 94.1436 +{:
 94.1437 +    RESULT = InfixExpression.OperatorType.BOOL_AND;
 94.1438 +:}
 94.1439 +| OR
 94.1440 +{:
 94.1441 +    RESULT = InfixExpression.OperatorType.BOOL_OR;
 94.1442 +:}
 94.1443 +| XOR
 94.1444 +{:
 94.1445 +    RESULT = InfixExpression.OperatorType.BOOL_XOR;
 94.1446 +:}
 94.1447 +;
 94.1448 +
 94.1449 +short_circuit ::=
 94.1450 +AND THEN
 94.1451 +{:
 94.1452 +    RESULT = InfixExpression.OperatorType.BOOL_OR;
 94.1453 +:}
 94.1454 +| OR ELSE
 94.1455 +{:
 94.1456 +    RESULT = InfixExpression.OperatorType.BOOL_AND;
 94.1457 +:}
 94.1458 +;
 94.1459 +
 94.1460 +relational_operator ::=
 94.1461 +EQ
 94.1462 +{:
 94.1463 +    RESULT = InfixExpression.OperatorType.IS_EQUAL;
 94.1464 +:}
 94.1465 +| INEQ
 94.1466 +{:
 94.1467 +    RESULT = InfixExpression.OperatorType.IS_NOT_EQUAL;
 94.1468 +:}
 94.1469 +| GT
 94.1470 +{:
 94.1471 +    RESULT = InfixExpression.OperatorType.RGREATER;
 94.1472 +:}
 94.1473 +| LTEQ
 94.1474 +{:
 94.1475 +    RESULT = InfixExpression.OperatorType.IS_SMALLER_OR_EQUAL;
 94.1476 +:}
 94.1477 +| LT
 94.1478 +{:
 94.1479 +    RESULT = InfixExpression.OperatorType.LGREATER;
 94.1480 +:}
 94.1481 +| GTEQ
 94.1482 +{:
 94.1483 +    RESULT = InfixExpression.OperatorType.IS_GREATER_OR_EQUAL;
 94.1484 +:}
 94.1485 +;
 94.1486 +
 94.1487 +membership ::=
 94.1488 +IN
 94.1489 +{:
 94.1490 +    RESULT = InfixExpression.OperatorType.IN;
 94.1491 +:}
 94.1492 +| NOT IN
 94.1493 +{:
 94.1494 +    RESULT = InfixExpression.OperatorType.NOT_IN;
 94.1495 +:}
 94.1496 +;
 94.1497 +
 94.1498 +unary_adding_operator ::=
 94.1499 +PLUS
 94.1500 +{:
 94.1501 +    RESULT = UnaryOperation.Operator.PLUS;
 94.1502 +:}
 94.1503 +| MINUS
 94.1504 +{:
 94.1505 +    RESULT = UnaryOperation.Operator.MINUS;
 94.1506 +:}
 94.1507 +;
 94.1508 +
 94.1509 +binary_adding_operator ::= 
 94.1510 +PLUS
 94.1511 +{:
 94.1512 +    RESULT = InfixExpression.OperatorType.PLUS;
 94.1513 +:}
 94.1514 +| MINUS
 94.1515 +{:
 94.1516 +    RESULT = InfixExpression.OperatorType.MINUS;
 94.1517 +:}
 94.1518 +| AMP
 94.1519 +{:
 94.1520 +    RESULT = InfixExpression.OperatorType.STRING_AND;
 94.1521 +:}
 94.1522 +;
 94.1523 +
 94.1524 +multiplying_operator ::=
 94.1525 +STAR
 94.1526 +{:
 94.1527 +    RESULT = InfixExpression.OperatorType.MUL;
 94.1528 +:}
 94.1529 +| SLASH
 94.1530 +{:
 94.1531 +    RESULT = InfixExpression.OperatorType.DIV;
 94.1532 +:}
 94.1533 +| MOD
 94.1534 +{:
 94.1535 +    RESULT = InfixExpression.OperatorType.MOD;
 94.1536 +:}
 94.1537 +| REM
 94.1538 +{:
 94.1539 +    RESULT = InfixExpression.OperatorType.REM;
 94.1540 +:}
 94.1541 +;
 94.1542 +
 94.1543 +///////////////////////////////////////////////////////////////////////////////
 94.1544 +// 4.4 Expressions
 94.1545 +//
 94.1546 +expression ::=
 94.1547 +relation:relation
 94.1548 +{:
 94.1549 +    RESULT = relation;
 94.1550 +:}
 94.1551 +| expression:expression logical_operator:logical_operator relation:relation
 94.1552 +{:
 94.1553 +    InfixExpression infixExpression = new InfixExpression(expressionleft, relationright, expression, logical_operator, relation);
 94.1554 +    RESULT = infixExpression;
 94.1555 +:}
 94.1556 +| expression:expression short_circuit:short_circuit relation:relation
 94.1557 +{:
 94.1558 +    InfixExpression infixExpression = new InfixExpression(expressionleft, relationright, expression, short_circuit, relation);
 94.1559 +    RESULT = infixExpression;
 94.1560 +:}
 94.1561 +;
 94.1562 +
 94.1563 +relation ::=
 94.1564 +simple_expression:simple_expression
 94.1565 +{:
 94.1566 +    RESULT = simple_expression;
 94.1567 +:}
 94.1568 +| simple_expression:simple_expression1 relational_operator:relational_operator simple_expression:simple_expression2
 94.1569 +{:
 94.1570 +    InfixExpression infixExpression = new InfixExpression(simple_expression1left, simple_expression2right, simple_expression1, relational_operator, simple_expression2);
 94.1571 +    RESULT = infixExpression;
 94.1572 +:}
 94.1573 +| simple_expression:simple_expression membership:membership range:range
 94.1574 +{:
 94.1575 +    InfixExpression infixExpression = new InfixExpression(simple_expressionleft, rangeright, simple_expression, membership, range);
 94.1576 +    RESULT = infixExpression;
 94.1577 +:}
 94.1578 +| simple_expression:simple_expression membership:membership name:name
 94.1579 +{:
 94.1580 +    InfixExpression infixExpression = new InfixExpression(simple_expressionleft, nameright, simple_expression, membership, name);
 94.1581 +    RESULT = infixExpression;
 94.1582 +:}
 94.1583 +;
 94.1584 +
 94.1585 +simple_expression ::=
 94.1586 +unary_adding_operator:unary_adding_operator term:term
 94.1587 +{:
 94.1588 +    UnaryOperation unaryOperation = new UnaryOperation(unary_adding_operatorleft, termright, term, unary_adding_operator);
 94.1589 +    RESULT = unaryOperation;
 94.1590 +:}
 94.1591 +| term:term
 94.1592 +{:
 94.1593 +    RESULT = term;
 94.1594 +:}
 94.1595 +| simple_expression:simple_expression binary_adding_operator:binary_adding_operator term:term
 94.1596 +{:
 94.1597 +    InfixExpression infixExpression = new InfixExpression(simple_expressionleft, termright, simple_expression, binary_adding_operator, term);
 94.1598 +    RESULT = infixExpression;
 94.1599 +:}
 94.1600 +;
 94.1601 +
 94.1602 +term ::=
 94.1603 +factor:factor
 94.1604 +{:
 94.1605 +    RESULT = factor;
 94.1606 +:}
 94.1607 +| term:term multiplying_operator:multiplying_operator factor:factor
 94.1608 +{:
 94.1609 +    InfixExpression infixExpression = new InfixExpression(termleft, factorright, term, multiplying_operator, factor);
 94.1610 +    RESULT = infixExpression;
 94.1611 +:}
 94.1612 +;
 94.1613 +
 94.1614 +factor ::=
 94.1615 +primary:primary
 94.1616 +{:
 94.1617 +    RESULT = primary;
 94.1618 +:}
 94.1619 +| NOT:token primary:primary
 94.1620 +{:
 94.1621 +    UnaryOperation unaryOperation = new UnaryOperation(tokenleft, primaryright, primary, UnaryOperation.Operator.NOT);
 94.1622 +    RESULT = unaryOperation;
 94.1623 +:}
 94.1624 +| ABS:token primary:primary
 94.1625 +{:
 94.1626 +    UnaryOperation unaryOperation = new UnaryOperation(tokenleft, primaryright, primary, UnaryOperation.Operator.ABS);
 94.1627 +    RESULT = unaryOperation;
 94.1628 +:}
 94.1629 +| primary:primary1 EXPON primary:primary2
 94.1630 +{:
 94.1631 +    InfixExpression infixExpression = new InfixExpression(primary1left, primary2right, primary1, InfixExpression.OperatorType.EXPON, primary2);
 94.1632 +    RESULT = infixExpression;
 94.1633 +:}
 94.1634 +;
 94.1635 +
 94.1636 +primary ::=
 94.1637 +literal:literal
 94.1638 +{:
 94.1639 +    RESULT = literal;
 94.1640 +:}
 94.1641 +| name:name
 94.1642 +{:
 94.1643 +// TODO: must be modified for manage all primery types
 94.1644 +    Variable variable = new Variable (nameleft, nameright, name);
 94.1645 +    RESULT = variable;
 94.1646 +:}
 94.1647 +| allocator
 94.1648 +| qualified_expression:qualified_expression
 94.1649 +{:
 94.1650 +    RESULT = qualified_expression;
 94.1651 +:}
 94.1652 +| parenthesized_primary:parenthesized_primary
 94.1653 +{:
 94.1654 +    RESULT = parenthesized_primary;
 94.1655 +:}
 94.1656 +;
 94.1657 +
 94.1658 +parenthesized_primary ::=
 94.1659 +aggregate
 94.1660 +| LPAREN expression:expression RPAREN
 94.1661 +{:
 94.1662 +    RESULT = expression;
 94.1663 +:}
 94.1664 +;
 94.1665 +
 94.1666 +qualified_expression ::=
 94.1667 +name:name TICK parenthesized_primary:expr
 94.1668 +{:
 94.1669 +    RESULT = new QualifiedExpression (nameleft, exprright, name, expr);
 94.1670 +:}
 94.1671 +;
 94.1672 +
 94.1673 +allocator ::= NEW name
 94.1674 +	| NEW qualified_expression
 94.1675 +	;
 94.1676 +
 94.1677 +///////////////////////////////////////////////////////////////////////////////
 94.1678 +// 5.1 Simple and Compound Statements - Sequences of Statements
 94.1679 +//
 94.1680 +sequence_of_statements ::=
 94.1681 +statement:statement
 94.1682 +{:
 94.1683 +    List list = new LinkedList();
 94.1684 +    list.add(statement);
 94.1685 +    RESULT = list;
 94.1686 +:}
 94.1687 +| sequence_of_statements:list statement:statement
 94.1688 +{:
 94.1689 +    list.add(statement);
 94.1690 +    RESULT = list;
 94.1691 +:}
 94.1692 +;
 94.1693 +
 94.1694 +statement ::=
 94.1695 +unlabeled:statement
 94.1696 +{:
 94.1697 +    RESULT = statement;
 94.1698 +:}
 94.1699 +| label statement:statement
 94.1700 +{:
 94.1701 +    RESULT = statement;
 94.1702 +:}
 94.1703 +;
 94.1704 +
 94.1705 +unlabeled ::=
 94.1706 +simple_statement:statement
 94.1707 +{:
 94.1708 +    RESULT = statement;
 94.1709 +:}
 94.1710 +| compound_statement:statement
 94.1711 +{:
 94.1712 +    RESULT = statement;
 94.1713 +:}
 94.1714 +| pragma
 94.1715 +;
 94.1716 +
 94.1717 +simple_statement ::=
 94.1718 +null_statement:statement
 94.1719 +{:
 94.1720 +    RESULT = statement;
 94.1721 +:}
 94.1722 +| assignment_statement:statement
 94.1723 +{:
 94.1724 +    RESULT = statement;
 94.1725 +:}
 94.1726 +| exit_statement:statement
 94.1727 +{:
 94.1728 +    RESULT = statement;
 94.1729 +:}
 94.1730 +| return_statement:statement
 94.1731 +{:
 94.1732 +    RESULT = statement;
 94.1733 +:}
 94.1734 +| goto_statement:statement
 94.1735 +{:
 94.1736 +    RESULT = statement;
 94.1737 +:}
 94.1738 +| procedure_call_statement:statement
 94.1739 +{:
 94.1740 +    RESULT = statement;
 94.1741 +:}
 94.1742 +| delay_statement:statement
 94.1743 +{:
 94.1744 +    RESULT = statement;
 94.1745 +:}
 94.1746 +| abort_statement:statement
 94.1747 +{:
 94.1748 +    RESULT = statement;
 94.1749 +:}
 94.1750 +| raise_statement:statement
 94.1751 +{:
 94.1752 +    RESULT = statement;
 94.1753 +:}
 94.1754 +| code_statement:statement
 94.1755 +{:
 94.1756 +    RESULT = statement;
 94.1757 +:}
 94.1758 +| requeue_stmt
 94.1759 +| error:theError SEMICOLON /* error statement */
 94.1760 +{:
 94.1761 +    ASTError error = new ASTError(theErrorleft, theErrorright);
 94.1762 +    RESULT = error;
 94.1763 +:}
 94.1764 +;
 94.1765 +
 94.1766 +compound_statement ::=
 94.1767 +if_statement:statement
 94.1768 +{:
 94.1769 +    RESULT = statement;
 94.1770 +:}
 94.1771 +| case_statement:statement
 94.1772 +{:
 94.1773 +    RESULT = statement;
 94.1774 +:}
 94.1775 +| loop_statement:statement
 94.1776 +{:
 94.1777 +    RESULT = statement;
 94.1778 +:}
 94.1779 +| block_statement:statement
 94.1780 +{:
 94.1781 +    RESULT = statement;
 94.1782 +:}
 94.1783 +| accept_stmt
 94.1784 +| select_stmt
 94.1785 +;
 94.1786 +
 94.1787 +label ::= LTLT IDENTIFIER GTGT
 94.1788 +	;
 94.1789 +
 94.1790 +null_statement ::= 
 94.1791 +NULL:token SEMICOLON:end
 94.1792 +{:
 94.1793 +    RESULT = new NullStatement(tokenleft, endright);
 94.1794 +:}
 94.1795 +;
 94.1796 +
 94.1797 +///////////////////////////////////////////////////////////////////////////////
 94.1798 +// 5.2 Assignment Statements
 94.1799 +//
 94.1800 +assignment_statement ::=
 94.1801 +name:name ASSIGNMENT expression:expression SEMICOLON
 94.1802 +{:
 94.1803 +    Variable variable = new Variable (nameleft, nameright, name);
 94.1804 +    Assignment assignment = new Assignment(nameleft, expressionright, variable, expression);
 94.1805 +    RESULT = assignment;
 94.1806 +:}
 94.1807 +;
 94.1808 +
 94.1809 +///////////////////////////////////////////////////////////////////////////////
 94.1810 +// 5.3 If Statements
 94.1811 +//
 94.1812 +if_statement ::= 
 94.1813 +IF:token cond_clause_s:condList else_opt:iffalse END IF SEMICOLON:end
 94.1814 +{:
 94.1815 +    Expression innerCondition = null;
 94.1816 +    Expression firstCondition = null;
 94.1817 +    Statement trueStatement = null;
 94.1818 +    Statement falseStatement = iffalse;
 94.1819 +
 94.1820 +    for (int i=1 ; i < condList[0].size() ; i++) {
 94.1821 +        innerCondition = (Expression)condList[0].get(i);
 94.1822 +        trueStatement = (Statement)condList[1].get(i);
 94.1823 +        int start = ((Integer)condList[2].get(i)).intValue();
 94.1824 +        falseStatement = new IfStatement(start, endright, innerCondition, trueStatement, falseStatement);
 94.1825 +    }
 94.1826 +
 94.1827 +    firstCondition = (Expression)condList[0].get(0);
 94.1828 +    trueStatement = (Statement)condList[1].get(0);
 94.1829 +    int start = ((Integer)condList[2].get(0)).intValue();
 94.1830 +    IfStatement ifStatement = new IfStatement(tokenleft, endright, firstCondition, trueStatement, falseStatement);		
 94.1831 +
 94.1832 +    RESULT = ifStatement;
 94.1833 +:}
 94.1834 +;
 94.1835 +
 94.1836 +cond_clause_s ::= 
 94.1837 +condition:condition THEN:token sequence_of_statements:iftrue
 94.1838 +{:
 94.1839 +    List listConditions = new LinkedList();
 94.1840 +    List listStatements = new LinkedList();
 94.1841 +    List listTokens = new LinkedList();
 94.1842 +
 94.1843 +    Block block = new Block(iftrueleft, iftrueright, iftrue);
 94.1844 +    listConditions.add(condition);
 94.1845 +    listStatements.add(block);
 94.1846 +    listTokens.add(new Integer(tokenleft));
 94.1847 +
 94.1848 +    List[] returnList = new List[] { listConditions, listStatements, listTokens };
 94.1849 +	
 94.1850 +    RESULT = returnList;
 94.1851 +:}
 94.1852 +| cond_clause_s:condList ELSIF:token condition:condition THEN sequence_of_statements:iftrue
 94.1853 +{:
 94.1854 +    Block block = new Block(iftrueleft, iftrueright, iftrue);
 94.1855 +    ((LinkedList)condList[0]).addFirst(condition);
 94.1856 +    ((LinkedList)condList[1]).addFirst(block);
 94.1857 +    ((LinkedList)condList[2]).addFirst(new Integer(tokenleft));
 94.1858 +
 94.1859 +    RESULT = condList;
 94.1860 +:}
 94.1861 +;
 94.1862 +
 94.1863 +condition ::=
 94.1864 +expression:expression
 94.1865 +{:
 94.1866 +    RESULT = expression;
 94.1867 +:}
 94.1868 +;
 94.1869 +
 94.1870 +else_opt ::=
 94.1871 +/* empty */
 94.1872 +{:
 94.1873 +    RESULT = null;
 94.1874 +:}
 94.1875 +| ELSE sequence_of_statements:statements
 94.1876 +{:
 94.1877 +    Block block = new Block(statementsleft, statementsright, statements);
 94.1878 +    RESULT = block;
 94.1879 +:}
 94.1880 +;
 94.1881 +
 94.1882 +///////////////////////////////////////////////////////////////////////////////
 94.1883 +// 5.4 Case Statements
 94.1884 +//
 94.1885 +case_statement ::=
 94.1886 +CASE:token expression:expr IS pragma_s alternative_s:whenList END CASE SEMICOLON:end
 94.1887 +{:
 94.1888 +    Block whenBlock = new Block(whenListleft, whenListright, whenList);
 94.1889 +    CaseStatement caseStatement = new CaseStatement(tokenleft, endright, expr, whenBlock);
 94.1890 +    RESULT = caseStatement;
 94.1891 +:}
 94.1892 +;
 94.1893 +
 94.1894 +alternative_s ::=
 94.1895 +/* empty */
 94.1896 +{:
 94.1897 +    RESULT = new LinkedList();
 94.1898 +:}
 94.1899 +| alternative_s:whenList alternative:when
 94.1900 +{:
 94.1901 +    whenList.add (when);
 94.1902 +    RESULT = whenList;
 94.1903 +:}
 94.1904 +;
 94.1905 +
 94.1906 +alternative ::=
 94.1907 +WHEN:token choice_s:expr ARROW sequence_of_statements:statements
 94.1908 +{:
 94.1909 +    CaseWhen caseWhen = new CaseWhen(tokenleft, statementsright, expr, statements);
 94.1910 +    RESULT = caseWhen;
 94.1911 +:}
 94.1912 +;
 94.1913 +
 94.1914 +///////////////////////////////////////////////////////////////////////////////
 94.1915 +// 5.5 Loop Statements
 94.1916 +//
 94.1917 +loop_statement ::=
 94.1918 +label_opt:label iteration:iteration basic_loop:statement id_opt SEMICOLON:end
 94.1919 +{:
 94.1920 +    int start = (label == null) ? iterationleft : labelleft;
 94.1921 +    LoopStatement loopStatement = new LoopStatement(start, endright, label, iteration, statement);
 94.1922 +    RESULT = loopStatement;
 94.1923 +:}
 94.1924 +;
 94.1925 +
 94.1926 +label_opt ::=
 94.1927 +/* empty */
 94.1928 +{:
 94.1929 +    RESULT = null;
 94.1930 +:}
 94.1931 +| IDENTIFIER:id COLON
 94.1932 +{:
 94.1933 +    Identifier identifier = new Identifier (idleft, idright, id);
 94.1934 +    RESULT = identifier;
 94.1935 +:}
 94.1936 +;
 94.1937 +
 94.1938 +iteration ::=
 94.1939 +/* empty */
 94.1940 +{:
 94.1941 +    RESULT = null;
 94.1942 +:}
 94.1943 +| WHILE condition:condition
 94.1944 +{:
 94.1945 +    RESULT = condition;
 94.1946 +:}
 94.1947 +| iter_part reverse_opt discrete_range:condition
 94.1948 +{:
 94.1949 +    RESULT = condition;
 94.1950 +:}
 94.1951 +;
 94.1952 +
 94.1953 +iter_part ::=
 94.1954 +FOR IDENTIFIER IN
 94.1955 +;
 94.1956 +
 94.1957 +reverse_opt ::=
 94.1958 +| REVERSE
 94.1959 +;
 94.1960 +
 94.1961 +basic_loop ::=
 94.1962 +LOOP sequence_of_statements:statements END LOOP
 94.1963 +{:
 94.1964 +    Block loopBlock = new Block(statementsleft, statementsright, statements);
 94.1965 +    RESULT = loopBlock;
 94.1966 +:}
 94.1967 +;
 94.1968 +
 94.1969 +
 94.1970 +///////////////////////////////////////////////////////////////////////////////
 94.1971 +
 94.1972 +id_opt ::=
 94.1973 +// empty
 94.1974 +{:
 94.1975 +    RESULT = null;
 94.1976 +:}
 94.1977 +| designator:designator
 94.1978 +{:
 94.1979 +    RESULT = designator;
 94.1980 +:}
 94.1981 +;
 94.1982 +
 94.1983 +///////////////////////////////////////////////////////////////////////////////
 94.1984 +// 5.6 Block Statements
 94.1985 +//
 94.1986 +block_statement ::=
 94.1987 +label_opt:label block_declarative:declarations block_body:body END id_opt SEMICOLON:end
 94.1988 +{:
 94.1989 +    int start = (label == null) ? declarationsleft : labelleft;
 94.1990 +    BlockStatement blockStatement = new BlockStatement (start, endleft, label, declarations, body);
 94.1991 +    RESULT = blockStatement;
 94.1992 +:}
 94.1993 +;
 94.1994 +
 94.1995 +block_declarative ::=
 94.1996 +{:
 94.1997 +    RESULT = null;
 94.1998 +:}
 94.1999 +| DECLARE:token declarative_part:declarativePart
 94.2000 +{:
 94.2001 +    Block declarations = new Block(tokenright, declarativePartleft, declarativePart);
 94.2002 +    RESULT = declarations;
 94.2003 +:}
 94.2004 +;
 94.2005 +
 94.2006 +block_body ::=
 94.2007 +BEGIN:token handled_stmt_s:statements
 94.2008 +{:
 94.2009 +    Block body = new Block(tokenright, statementsright, statements);
 94.2010 +    RESULT = body;
 94.2011 +:}
 94.2012 +;
 94.2013 +
 94.2014 +handled_stmt_s ::=
 94.2015 +sequence_of_statements:statements except_handler_part_opt
 94.2016 +{:
 94.2017 +    RESULT = statements;
 94.2018 +:}
 94.2019 +; 
 94.2020 +
 94.2021 +except_handler_part_opt ::=
 94.2022 +	| except_handler_part
 94.2023 +	;
 94.2024 +
 94.2025 +///////////////////////////////////////////////////////////////////////////////
 94.2026 +// 5.7 Exit Statements
 94.2027 +//
 94.2028 +exit_statement ::= 
 94.2029 +EXIT:token name_opt:loopName when_opt:whenCondition SEMICOLON:end
 94.2030 +{:
 94.2031 +    RESULT = new ExitStatement(tokenleft, endright, loopName, whenCondition); 
 94.2032 +:}
 94.2033 +;
 94.2034 +
 94.2035 +name_opt ::=
 94.2036 +{:
 94.2037 +    RESULT = null;
 94.2038 +:}
 94.2039 +| name:name
 94.2040 +{:
 94.2041 +    RESULT = name;
 94.2042 +:}
 94.2043 +;
 94.2044 +
 94.2045 +when_opt ::=
 94.2046 +{:
 94.2047 +    RESULT = null;
 94.2048 +:}
 94.2049 +| WHEN condition:cond
 94.2050 +{:
 94.2051 +    RESULT = cond;
 94.2052 +:}
 94.2053 +;
 94.2054 +
 94.2055 +///////////////////////////////////////////////////////////////////////////////
 94.2056 +// 6.5 Return Statements
 94.2057 +//
 94.2058 +return_statement ::= 
 94.2059 +RETURN:token SEMICOLON:end
 94.2060 +{:
 94.2061 +    RESULT = new ReturnStatement(tokenleft, endright);
 94.2062 +:}
 94.2063 +| RETURN:token expression:expr SEMICOLON:end
 94.2064 +{:
 94.2065 +    RESULT = new ReturnStatement(tokenleft, endright, expr);
 94.2066 +:}
 94.2067 +;
 94.2068 +
 94.2069 +///////////////////////////////////////////////////////////////////////////////
 94.2070 +// 5.8 Goto Statements
 94.2071 +//
 94.2072 +goto_statement ::= 
 94.2073 +GOTO:token name:labelName SEMICOLON:end
 94.2074 +{:
 94.2075 +    RESULT = new GotoStatement(tokenleft, endright, labelName);
 94.2076 +:}
 94.2077 +;
 94.2078 +
 94.2079 +///////////////////////////////////////////////////////////////////////////////
 94.2080 +// 6.1 Subprogram Declarations
 94.2081 +//
 94.2082 +subprog_declaration ::=
 94.2083 +subprogram_specification:subprog SEMICOLON:end
 94.2084 +{:
 94.2085 +    RESULT = new MethodDeclaration(subprogleft, endright, 0/*modifier*/, subprog);
 94.2086 +:}
 94.2087 +| generic_subp_inst:subprog SEMICOLON:end
 94.2088 +{:
 94.2089 +    RESULT = new MethodDeclaration(subprogleft, endright, 0/*modifier*/, subprog);
 94.2090 +:}
 94.2091 +| subprogram_specification:subprog IS ABSTRACT SEMICOLON:end
 94.2092 +{:
 94.2093 +    RESULT = new MethodDeclaration(subprogleft, endright, AdaASTParser.ABSTRACT, subprog);
 94.2094 +:}
 94.2095 +;
 94.2096 +
 94.2097 +subprogram_specification ::=
 94.2098 +PROCEDURE:procedure compound_name:compound_name formal_part_opt:formal_part
 94.2099 +{:
 94.2100 +    SubprogramSpecification subprogramSpecification = new SubprogramSpecification(procedureleft, formal_partright, compound_name, formal_part);
 94.2101 +    RESULT = subprogramSpecification;
 94.2102 +:}
 94.2103 +| FUNCTION:function designator:designator formal_part_opt:formal_part RETURN name:subtype_mark
 94.2104 +{:
 94.2105 +    SubprogramSpecification subprogramSpecification = new SubprogramSpecification(functionleft, subtype_markright, designator, formal_part, subtype_mark);
 94.2106 +    RESULT = subprogramSpecification;
 94.2107 +:}
 94.2108 +| FUNCTION:function designator:designator  /* for generic inst and generic rename */
 94.2109 +{:
 94.2110 +    SubprogramSpecification subprogramSpecification = new SubprogramSpecification(functionleft, designatorright, designator);
 94.2111 +    RESULT = subprogramSpecification;
 94.2112 +:}
 94.2113 +;
 94.2114 +
 94.2115 +designator ::=
 94.2116 +compound_name:name
 94.2117 +{:
 94.2118 +    RESULT = name;
 94.2119 +:}
 94.2120 +| operator_symbol:name
 94.2121 +{:
 94.2122 +    RESULT = name;
 94.2123 +:}
 94.2124 +;
 94.2125 +
 94.2126 +formal_part_opt ::=
 94.2127 +// empty
 94.2128 +{:
 94.2129 +	List list = new LinkedList();
 94.2130 +	RESULT = list;
 94.2131 +:}
 94.2132 +| formal_part:list
 94.2133 +{:
 94.2134 +	RESULT = list;
 94.2135 +:}
 94.2136 +;
 94.2137 +
 94.2138 +formal_part ::=
 94.2139 +LPAREN param_s:list RPAREN
 94.2140 +{:
 94.2141 +	RESULT = list;
 94.2142 +:}
 94.2143 +;
 94.2144 +
 94.2145 +param_s ::=
 94.2146 +param:parameter
 94.2147 +{:
 94.2148 +    List list = new LinkedList();
 94.2149 +    list.addAll(parameter);
 94.2150 +    RESULT = list;
 94.2151 +:}
 94.2152 +| param_s:list SEMICOLON param:parameter
 94.2153 +{:
 94.2154 +    list.addAll(parameter);
 94.2155 +    RESULT = list;
 94.2156 +:}
 94.2157 +;
 94.2158 +
 94.2159 +param ::=
 94.2160 +defining_identifier_list:identifierList COLON mode:mode subtype_mark:subtype init_opt:init
 94.2161 +{:
 94.2162 +    List list = new LinkedList();
 94.2163 +    for (Object item : identifierList) {
 94.2164 +        Identifier identifier = (Identifier)item;
 94.2165 +        Variable variable = new Variable (identifier.getStartOffset(), identifier.getEndOffset(), identifier);
 94.2166 +	    int end = init == null ? subtyperight : initright;
 94.2167 +        FormalParameter parameter = new FormalParameter(identifierListleft, end, variable, mode, subtype, init);
 94.2168 +    	list.add(parameter);
 94.2169 +    }
 94.2170 +    RESULT = list;
 94.2171 +:}
 94.2172 +| error:theError SEMICOLON /* error statement */
 94.2173 +{:
 94.2174 +    List list = new LinkedList();
 94.2175 +    ASTError error = new ASTError(theErrorleft, theErrorright);
 94.2176 +    list.add(error);
 94.2177 +    RESULT = list;
 94.2178 +:}
 94.2179 +;
 94.2180 +
 94.2181 +mode ::=
 94.2182 +// empty
 94.2183 +{:
 94.2184 +    RESULT = FormalParameter.Mode.IN;
 94.2185 +:}
 94.2186 +| IN
 94.2187 +{:
 94.2188 +    RESULT = FormalParameter.Mode.IN;
 94.2189 +:}
 94.2190 +| OUT
 94.2191 +{:
 94.2192 +    RESULT = FormalParameter.Mode.OUT;
 94.2193 +:}
 94.2194 +| IN OUT
 94.2195 +{:
 94.2196 +    RESULT = FormalParameter.Mode.IN_OUT;
 94.2197 +:}
 94.2198 +| ACCESS
 94.2199 +{:
 94.2200 +    RESULT = FormalParameter.Mode.ACCESS;
 94.2201 +:}
 94.2202 +;
 94.2203 +
 94.2204 +// TODO: manage the overload operators ex: "+" "and" ecc.
 94.2205 +operator_symbol ::=
 94.2206 +STRING_LITERAL:string_literal
 94.2207 +{:
 94.2208 +    Identifier identifier = new Identifier (string_literalleft, string_literalright, string_literal);
 94.2209 +    RESULT = identifier;
 94.2210 +:}
 94.2211 +;
 94.2212 +
 94.2213 +subprogram_body ::=
 94.2214 +subprogram_specification:subprog IS
 94.2215 +declarative_part:declarativePart block_body:body END id_opt:id_opt SEMICOLON:end
 94.2216 +{:
 94.2217 +    if (id_opt != null && !id_opt.getName().equalsIgnoreCase (subprog.getSubprogramName().getName())) {
 94.2218 +        this.parser.message_error("mispelling of " + subprog.getSubprogramName().getName());
 94.2219 +    } else {
 94.2220 +        Block declarations = new Block(subprogright, bodyleft, declarativePart);
 94.2221 +        body.setEndOffset(endright);
 94.2222 +        SubprogramBody subprogramBody = new SubprogramBody(subprogleft, endright, subprog, declarations, body, id_opt);
 94.2223 +        MethodDeclaration methodDeclaration = new MethodDeclaration(subprogleft, endright, 0/*modifier*/, subprogramBody);
 94.2224 +        RESULT = methodDeclaration;
 94.2225 +    }
 94.2226 +:}
 94.2227 +;
 94.2228 +
 94.2229 +///////////////////////////////////////////////////////////////////////////////
 94.2230 +// 6.4 Subprogram Calls
 94.2231 +//
 94.2232 +procedure_call_statement ::=
 94.2233 +name SEMICOLON
 94.2234 +;
 94.2235 +
 94.2236 +
 94.2237 +///////////////////////////////////////////////////////////////////////////////
 94.2238 +// 7.1 Package Specifications and Declarations
 94.2239 +//
 94.2240 +package_declaration ::= 
 94.2241 +package_specification:statement SEMICOLON
 94.2242 +{:
 94.2243 +    RESULT = statement;
 94.2244 +:}
 94.2245 +| generic_package_instantiation SEMICOLON
 94.2246 +;
 94.2247 +
 94.2248 +package_specification ::= 
 94.2249 +PACKAGE:declarationStart compound_name:package_name IS:blockStart
 94.2250 +  declarative_items_opt:declarativeItems private_part:privateDeclarativeItems
 94.2251 +END:declarationEnd compound_name_opt:package_name_end
 94.2252 +{:
 94.2253 +    if (package_name_end != null && !package_name_end.getName().equalsIgnoreCase (package_name.getName())) {
 94.2254 +        this.parser.message_error("mispelling of " + package_name);
 94.2255 +    }
 94.2256 +    else {
 94.2257 +        declarativeItems.addAll (privateDeclarativeItems);
 94.2258 +        // Add private part on block statements
 94.2259 +        Block block = new Block(blockStartleft, declarationEndright, declarativeItems);
 94.2260 +        PackageSpecification packageSpecification = new PackageSpecification(declarationStartleft, declarationEndright, package_name, package_name_end, block);
 94.2261 +        RESULT = packageSpecification;
 94.2262 +    }
 94.2263 +:}
 94.2264 +;
 94.2265 +
 94.2266 +private_part ::=
 94.2267 +{:
 94.2268 +    RESULT = new LinkedList();
 94.2269 +:}
 94.2270 +| PRIVATE declarative_items_opt:declarativeItems
 94.2271 +{:
 94.2272 +    RESULT = this.parser.setModifier (declarativeItems, AdaASTParser.PRIVATE);
 94.2273 +:}
 94.2274 +;
 94.2275 +
 94.2276 +compound_name_opt ::=
 94.2277 +// empty
 94.2278 +| compound_name:compound_name
 94.2279 +{:
 94.2280 +    RESULT = compound_name;
 94.2281 +:}
 94.2282 +;
 94.2283 +
 94.2284 +///////////////////////////////////////////////////////////////////////////////
 94.2285 +// 7.2 Package Bodies
 94.2286 +//
 94.2287 +package_body ::=
 94.2288 +PACKAGE:declarationStart BODY compound_name:package_name IS:blockStart
 94.2289 +  declarative_part:declarativePart body_opt END compound_name_opt:package_name_end SEMICOLON:declarationEnd
 94.2290 +{:
 94.2291 +    if (package_name_end != null && !package_name_end.getName().equalsIgnoreCase (package_name.getName())) {
 94.2292 +        this.parser.message_error("mispelling of " + package_name);
 94.2293 +    }
 94.2294 +    else {
 94.2295 +
 94.2296 +        List list = this.parser.setModifier (declarativePart, AdaASTParser.PRIVATE);
 94.2297 +        Block block = new Block(blockStartleft, declarationEndright, list);
 94.2298 +
 94.2299 +        PackageBody packageBody = new PackageBody(declarationStartleft, declarationEndright, package_name, package_name_end, block);
 94.2300 +        RESULT = packageBody;
 94.2301 +    }
 94.2302 +:}
 94.2303 +;
 94.2304 +
 94.2305 +body_opt ::=
 94.2306 +	| block_body
 94.2307 +	;
 94.2308 +
 94.2309 +///////////////////////////////////////////////////////////////////////////////
 94.2310 +// 7.3 Private Types and Private Extensions
 94.2311 +//
 94.2312 +private_type_declaration ::=
 94.2313 +tagged_opt:tagged limited_opt:limited PRIVATE:privateKeyword
 94.2314 +{:
 94.2315 +    PrivateType privateType = new PrivateType(taggedleft, privateKeywordright, tagged + limited + AdaASTParser.PRIVATE);
 94.2316 +    RESULT = privateType;
 94.2317 +:}
 94.2318 +;
 94.2319 +
 94.2320 +limited_opt ::=
 94.2321 +{:
 94.2322 +    RESULT = 0;
 94.2323 +:}
 94.2324 +| LIMITED
 94.2325 +{:
 94.2326 +    RESULT = AdaASTParser.LIMITED;
 94.2327 +:}
 94.2328 +;
 94.2329 +
 94.2330 +///////////////////////////////////////////////////////////////////////////////
 94.2331 +// 8.4 Use Clauses
 94.2332 +//
 94.2333 +use_clause ::= 
 94.2334 +USE:token package_name_list:packageList SEMICOLON:end
 94.2335 +{:
 94.2336 +    RESULT = new Use(tokenleft, endright, packageList);
 94.2337 +:}
 94.2338 +| USE:token TYPE subtype_mark_list:subTypeList SEMICOLON:end
 94.2339 +{:
 94.2340 +    RESULT = new UseType(tokenleft, endright, subTypeList);
 94.2341 +:}
 94.2342 +;
 94.2343 +
 94.2344 +package_name_list ::=
 94.2345 +name:name
 94.2346 +{:
 94.2347 +    List idList = new LinkedList();
 94.2348 +    PackageName packageName = new PackageName(nameleft, nameright, name);
 94.2349 +    idList.add(packageName);
 94.2350 +    RESULT = idList;
 94.2351 +:}
 94.2352 +| package_name_list:idList COMMA name:name
 94.2353 +{:
 94.2354 +    PackageName packageName = new PackageName(nameleft, nameright, name);
 94.2355 +    idList.add(packageName);
 94.2356 +    RESULT = idList;
 94.2357 +:}
 94.2358 +;
 94.2359 +
 94.2360 +subtype_mark_list ::=
 94.2361 +name:name
 94.2362 +{:
 94.2363 +    List idList = new LinkedList();
 94.2364 +    TypeName typeName = new TypeName(nameleft, nameright, name);
 94.2365 +    idList.add(typeName);
 94.2366 +    RESULT = idList;
 94.2367 +:}
 94.2368 +| subtype_mark_list:idList COMMA name:name
 94.2369 +{:
 94.2370 +    TypeName typeName = new TypeName(nameleft, nameright, name);
 94.2371 +    idList.add(typeName);
 94.2372 +    RESULT = idList;
 94.2373 +:}
 94.2374 +;
 94.2375 +
 94.2376 +
 94.2377 +///////////////////////////////////////////////////////////////////////////////
 94.2378 +// 8.5 Renaming Declarations
 94.2379 +//
 94.2380 +renaming_declaration ::=
 94.2381 +defining_identifier_list COLON object_qualifier_opt subtype_indication RENAMES name SEMICOLON
 94.2382 +| defining_identifier_list COLON EXCEPTION RENAMES name SEMICOLON
 94.2383 +| rename_unit:unit
 94.2384 +{:
 94.2385 +    RESULT = unit;
 94.2386 +:}
 94.2387 +;
 94.2388 +
 94.2389 +rename_unit ::= 
 94.2390 +PACKAGE:token compound_name:name RENAMES name:renames SEMICOLON:end
 94.2391 +{:
 94.2392 +    PackageRenames packageRenames = new PackageRenames(tokenleft, endright, name, renames);
 94.2393 +    RESULT = packageRenames;
 94.2394 +:}
 94.2395 +| subprogram_specification RENAMES name SEMICOLON:end
 94.2396 +| generic_formal_part PACKAGE compound_name RENAMES name SEMICOLON
 94.2397 +| generic_formal_part subprogram_specification RENAMES name SEMICOLON
 94.2398 +;
 94.2399 +
 94.2400 +task_decl ::= task_spec SEMICOLON
 94.2401 +	;
 94.2402 +
 94.2403 +task_spec ::= TASK simple_name task_def
 94.2404 +	| TASK TYPE simple_name discrim_part_opt task_def
 94.2405 +	;
 94.2406 +
 94.2407 +task_def ::=
 94.2408 +	| IS entry_decl_s rep_spec_s task_private_opt END id_opt
 94.2409 +	;
 94.2410 +
 94.2411 +task_private_opt ::=
 94.2412 +	| PRIVATE entry_decl_s rep_spec_s
 94.2413 +	;
 94.2414 +
 94.2415 +task_body ::= TASK BODY simple_name IS
 94.2416 +	       declarative_part block_body END id_opt SEMICOLON
 94.2417 +	;
 94.2418 +
 94.2419 +prot_decl ::= prot_spec SEMICOLON
 94.2420 +	;
 94.2421 +
 94.2422 +prot_spec ::= PROTECTED IDENTIFIER prot_def
 94.2423 +	| PROTECTED TYPE simple_name discrim_part_opt prot_def
 94.2424 +	;
 94.2425 +
 94.2426 +prot_def ::= IS prot_op_decl_s prot_private_opt END id_opt
 94.2427 +	;
 94.2428 +
 94.2429 +prot_private_opt ::=
 94.2430 +	| PRIVATE prot_elem_decl_s
 94.2431 +	;
 94.2432 +
 94.2433 +prot_op_decl_s ::= 
 94.2434 +	| prot_op_decl_s prot_op_decl
 94.2435 +	;
 94.2436 +
 94.2437 +prot_op_decl ::= entry_decl
 94.2438 +	| subprogram_specification SEMICOLON
 94.2439 +	| rep_spec
 94.2440 +	| pragma
 94.2441 +	;
 94.2442 +
 94.2443 +prot_elem_decl_s ::= 
 94.2444 +	| prot_elem_decl_s prot_elem_decl
 94.2445 +	;
 94.2446 +
 94.2447 +prot_elem_decl ::= prot_op_decl | comp_decl ;
 94.2448 +
 94.2449 +/////////////////////////////////////////////////////////////////
 94.2450 +// 9.4 Protected Units and Protected Objects
 94.2451 +//
 94.2452 +protected_body ::= 
 94.2453 +PROTECTED BODY simple_name:name IS
 94.2454 +prot_op_body_s END id_opt SEMICOLON
 94.2455 +;
 94.2456 +
 94.2457 +prot_op_body_s ::= pragma_s
 94.2458 +	| prot_op_body_s prot_op_body pragma_s
 94.2459 +	;
 94.2460 +
 94.2461 +prot_op_body ::= entry_body
 94.2462 +	| subprogram_body
 94.2463 +	| subprogram_specification SEMICOLON
 94.2464 +	;
 94.2465 +
 94.2466 +entry_decl_s ::= pragma_s
 94.2467 +	| entry_decl_s entry_decl pragma_s
 94.2468 +	;
 94.2469 +
 94.2470 +entry_decl ::= ENTRY IDENTIFIER formal_part_opt SEMICOLON
 94.2471 +	| ENTRY IDENTIFIER LPAREN discrete_range RPAREN formal_part_opt SEMICOLON
 94.2472 +	;
 94.2473 +
 94.2474 +entry_body ::= ENTRY IDENTIFIER formal_part_opt WHEN condition entry_body_part
 94.2475 +	| ENTRY IDENTIFIER LPAREN iter_part discrete_range RPAREN 
 94.2476 +		formal_part_opt WHEN condition entry_body_part
 94.2477 +	;
 94.2478 +
 94.2479 +entry_body_part ::= SEMICOLON
 94.2480 +	| IS declarative_part block_body END id_opt SEMICOLON
 94.2481 +	;
 94.2482 +
 94.2483 +rep_spec_s ::=
 94.2484 +	| rep_spec_s rep_spec pragma_s
 94.2485 +	;
 94.2486 +
 94.2487 +entry_call ::= 
 94.2488 +procedure_call_statement:statement
 94.2489 +{:
 94.2490 +    RESULT = statement;
 94.2491 +:}
 94.2492 +;
 94.2493 +
 94.2494 +accept_stmt ::= accept_hdr SEMICOLON
 94.2495 +	| accept_hdr DO handled_stmt_s END id_opt SEMICOLON
 94.2496 +	;
 94.2497 +
 94.2498 +accept_hdr ::= ACCEPT entry_name formal_part_opt
 94.2499 +	;
 94.2500 +
 94.2501 +entry_name ::= simple_name
 94.2502 +	| entry_name LPAREN expression RPAREN
 94.2503 +	;
 94.2504 +
 94.2505 +/////////////////////////////////////////////////////////////////
 94.2506 +// 9.6 Delay Statements, Duration, and Time
 94.2507 +//
 94.2508 +delay_statement ::=
 94.2509 +DELAY:token expression:expr SEMICOLON:end
 94.2510 +{:
 94.2511 +    RESULT = new ReturnStatement(tokenleft, endright, expr);
 94.2512 +:}
 94.2513 +| DELAY:token UNTIL expression:expr SEMICOLON:end
 94.2514 +{:
 94.2515 +    RESULT = new ReturnStatement(tokenleft, endright, expr);
 94.2516 +:}
 94.2517 +;
 94.2518 +
 94.2519 +select_stmt ::= select_wait
 94.2520 +	| async_select
 94.2521 +	| timed_entry_call
 94.2522 +	| cond_entry_call
 94.2523 +	;
 94.2524 +
 94.2525 +select_wait ::= SELECT guarded_select_alt or_select else_opt
 94.2526 +	      END SELECT SEMICOLON
 94.2527 +	;
 94.2528 +
 94.2529 +guarded_select_alt ::= select_alt
 94.2530 +	| WHEN condition ARROW select_alt
 94.2531 +	;
 94.2532 +
 94.2533 +or_select ::=
 94.2534 +	| or_select OR guarded_select_alt
 94.2535 +	;
 94.2536 +
 94.2537 +select_alt ::= accept_stmt stmts_opt
 94.2538 +	| delay_statement stmts_opt
 94.2539 +	| TERMINATE SEMICOLON
 94.2540 +	;
 94.2541 +
 94.2542 +delay_or_entry_alt ::= delay_statement stmts_opt
 94.2543 +	| entry_call stmts_opt
 94.2544 +	;
 94.2545 +
 94.2546 +async_select ::= SELECT delay_or_entry_alt
 94.2547 +	       THEN ABORT sequence_of_statements
 94.2548 +	       END SELECT SEMICOLON
 94.2549 +	;
 94.2550 +
 94.2551 +timed_entry_call ::= SELECT entry_call stmts_opt 
 94.2552 +		   OR delay_statement stmts_opt
 94.2553 +	           END SELECT SEMICOLON
 94.2554 +	;
 94.2555 +
 94.2556 +cond_entry_call ::= SELECT entry_call stmts_opt 
 94.2557 +		  ELSE sequence_of_statements
 94.2558 +	          END SELECT SEMICOLON
 94.2559 +	;
 94.2560 +
 94.2561 +stmts_opt ::=
 94.2562 +	| sequence_of_statements
 94.2563 +	;
 94.2564 +
 94.2565 +///////////////////////////////////////////////////////////////////////////////
 94.2566 +// 9.8 Abort of a Task - Abort of a Sequence of Statements
 94.2567 +//
 94.2568 +abort_statement ::=
 94.2569 +ABORT:token task_name_list:taskList SEMICOLON:end
 94.2570 +{:
 94.2571 +    RESULT = new AbortStatement(tokenleft, endright, taskList);
 94.2572 +:}
 94.2573 +;
 94.2574 +
 94.2575 +task_name_list ::=
 94.2576 +name:name
 94.2577 +{:
 94.2578 +    List idList = new LinkedList();
 94.2579 +    TaskName taskName = new TaskName(nameleft, nameright, name);
 94.2580 +    idList.add(taskName);
 94.2581 +    RESULT = idList;
 94.2582 +:}
 94.2583 +| task_name_list:idList COMMA name:name
 94.2584 +{:
 94.2585 +    TaskName taskName = new TaskName(nameleft, nameright, name);
 94.2586 +    idList.add(taskName);
 94.2587 +    RESULT = idList;
 94.2588 +:}
 94.2589 +;
 94.2590 +
 94.2591 +///////////////////////////////////////////////////////////////////////////////
 94.2592 +// 10.1.1 Compilation Units - Library Units
 94.2593 +//
 94.2594 +compilation ::=
 94.2595 +compilation_units:units
 94.2596 +{:
 94.2597 +    AdaASTLexer AdaASTLexer = (AdaASTLexer) parser.getScanner();
 94.2598 +    List comments = AdaASTLexer.getCommentList();
 94.2599 +    Program program = new Program(unitsleft, unitsright, units, comments);
 94.2600 +    RESULT = program;
 94.2601 +:}
 94.2602 +;
 94.2603 +
 94.2604 +compilation_units ::=
 94.2605 +{:
 94.2606 +    RESULT = new LinkedList();
 94.2607 +:}
 94.2608 +| compilation_units:units compilation_unit:unit
 94.2609 +{:
 94.2610 +    if(units != null) {
 94.2611 +        units.add(unit);
 94.2612 +    }
 94.2613 +    RESULT = units;
 94.2614 +:}
 94.2615 +| pragma pragma_s  // 10.1.5 - 4
 94.2616 +{:
 94.2617 +    RESULT = new LinkedList();
 94.2618 +:}
 94.2619 +;
 94.2620 +
 94.2621 +compilation_unit ::=
 94.2622 +context_clause private_opt unit:unit pragma_s
 94.2623 +{:
 94.2624 +    RESULT = unit;
 94.2625 +:}
 94.2626 +| private_opt unit:unit pragma_s  // 10.1.5 - 5/1
 94.2627 +{:
 94.2628 +    RESULT = unit;
 94.2629 +:}
 94.2630 +;
 94.2631 +
 94.2632 +private_opt ::=
 94.2633 +| PRIVATE
 94.2634 +;
 94.2635 +
 94.2636 +unit ::= 
 94.2637 +package_declaration:statement
 94.2638 +{:
 94.2639 +    RESULT = statement;
 94.2640 +:}
 94.2641 +| package_body:statement
 94.2642 +{:
 94.2643 +    RESULT = statement;
 94.2644 +:}
 94.2645 +| subprog_declaration:statement
 94.2646 +{:
 94.2647 +    RESULT = statement;
 94.2648 +:}
 94.2649 +| subprogram_body:statement
 94.2650 +{:
 94.2651 +    RESULT = statement;
 94.2652 +:}
 94.2653 +| subunit:statement
 94.2654 +{:
 94.2655 +    RESULT = statement;
 94.2656 +:}
 94.2657 +| generic_declaration:statement
 94.2658 +{:
 94.2659 +    RESULT = statement;
 94.2660 +:}
 94.2661 +| rename_unit
 94.2662 +;
 94.2663 +
 94.2664 +///////////////////////////////////////////////////////////////////////////////
 94.2665 +// 10.1.2 Context Clauses - With Clauses
 94.2666 +//
 94.2667 +context_clause ::= 
 94.2668 +with_clause:statement
 94.2669 +{:
 94.2670 +    RESULT = statement;
 94.2671 +:}
 94.2672 +| use_clause:statement
 94.2673 +{:
 94.2674 +    RESULT = statement;
 94.2675 +:}
 94.2676 +| context_clause with_clause:statement
 94.2677 +{:
 94.2678 +    RESULT = statement;
 94.2679 +:}
 94.2680 +| context_clause use_clause:statement
 94.2681 +{:
 94.2682 +    RESULT = statement;
 94.2683 +:}
 94.2684 +| context_clause pragma
 94.2685 +;
 94.2686 +
 94.2687 +with_clause ::= 
 94.2688 +WITH:token library_unit_name_list:packageList SEMICOLON:end
 94.2689 +{:
 94.2690 +    RESULT = new With(tokenleft, endright, packageList);
 94.2691 +:}
 94.2692 +;
 94.2693 +
 94.2694 +///////////////////////////////////////////////////////////////////////////////
 94.2695 +// 10.1.3 Subunits of Compilation Units
 94.2696 +//
 94.2697 +subunit ::=
 94.2698 +SEPARATE LPAREN compound_name RPAREN
 94.2699 +proper_body:statement
 94.2700 +{:
 94.2701 +    RESULT = statement;
 94.2702 +:}
 94.2703 +;
 94.2704 +
 94.2705 +
 94.2706 +body_stub ::= 
 94.2707 +TASK BODY simple_name IS SEPARATE SEMICOLON
 94.2708 +| PACKAGE BODY compound_name IS SEPARATE SEMICOLON
 94.2709 +| subprogram_specification:subprog IS SEPARATE SEMICOLON
 94.2710 +{:
 94.2711 +    RESULT = subprog;
 94.2712 +:}
 94.2713 +| PROTECTED BODY simple_name IS SEPARATE SEMICOLON
 94.2714 +;
 94.2715 +
 94.2716 +exception_decl ::= defining_identifier_list COLON EXCEPTION SEMICOLON
 94.2717 +	;
 94.2718 +
 94.2719 +except_handler_part ::= EXCEPTION exception_handler
 94.2720 +	| except_handler_part exception_handler
 94.2721 +	;
 94.2722 +
 94.2723 +exception_handler ::= WHEN except_choice_s ARROW sequence_of_statements
 94.2724 +	| WHEN IDENTIFIER COLON except_choice_s ARROW sequence_of_statements
 94.2725 +	;
 94.2726 +
 94.2727 +except_choice_s ::= except_choice
 94.2728 +	| except_choice_s BAR except_choice
 94.2729 +	;
 94.2730 +
 94.2731 +except_choice ::= name
 94.2732 +	| OTHERS
 94.2733 +	;
 94.2734 +
 94.2735 +///////////////////////////////////////////////////////////////////////////////
 94.2736 +// 11.3 Raise Statements
 94.2737 +//
 94.2738 +raise_statement ::=
 94.2739 +RAISE:token name_opt:exceptionName SEMICOLON:end
 94.2740 +{:
 94.2741 +    RESULT = new RaiseStatement(tokenleft, endright, exceptionName); 
 94.2742 +:}
 94.2743 +;
 94.2744 +
 94.2745 +requeue_stmt ::= REQUEUE name SEMICOLON
 94.2746 +	| REQUEUE name WITH ABORT SEMICOLON
 94.2747 +	;
 94.2748 +
 94.2749 +///////////////////////////////////////////////////////////////////////////////
 94.2750 +// 12.1 Generic Declarations
 94.2751 +//
 94.2752 +generic_declaration ::= 
 94.2753 +generic_formal_part subprogram_specification SEMICOLON
 94.2754 +| generic_formal_part package_specification:statement SEMICOLON
 94.2755 +{:
 94.2756 +    RESULT = statement;
 94.2757 +:}
 94.2758 +;
 94.2759 +
 94.2760 +generic_formal_part ::= GENERIC
 94.2761 +	| generic_formal_part generic_formal
 94.2762 +	;
 94.2763 +
 94.2764 +generic_formal ::= param SEMICOLON
 94.2765 +	| TYPE simple_name generic_discrim_part_opt IS generic_type_def SEMICOLON
 94.2766 +	| WITH PROCEDURE simple_name 
 94.2767 +	    formal_part_opt subp_default SEMICOLON
 94.2768 +	| WITH FUNCTION designator 
 94.2769 +	    formal_part_opt RETURN name subp_default SEMICOLON
 94.2770 +	| WITH PACKAGE simple_name IS NEW name LPAREN BOX RPAREN SEMICOLON
 94.2771 +	| WITH PACKAGE simple_name IS NEW name SEMICOLON
 94.2772 +	| use_clause
 94.2773 +	;
 94.2774 +
 94.2775 +generic_discrim_part_opt ::=
 94.2776 +	| discrim_part
 94.2777 +	| LPAREN BOX RPAREN
 94.2778 +	;
 94.2779 +
 94.2780 +subp_default ::=
 94.2781 +	| IS name
 94.2782 +	| IS BOX
 94.2783 +	;
 94.2784 +
 94.2785 +generic_type_def ::= LPAREN BOX RPAREN
 94.2786 +	| RANGE BOX
 94.2787 +	| MOD BOX
 94.2788 +	| DELTA BOX
 94.2789 +	| DELTA BOX DIGITS BOX
 94.2790 +	| DIGITS BOX
 94.2791 +	| array_type
 94.2792 +	| access_type
 94.2793 +	| private_type_declaration
 94.2794 +	| generic_derived_type
 94.2795 +	;
 94.2796 +
 94.2797 +generic_derived_type ::= NEW subtype_indication
 94.2798 +	| NEW subtype_indication WITH PRIVATE
 94.2799 +	| ABSTRACT NEW subtype_indication WITH PRIVATE
 94.2800 +	;
 94.2801 +
 94.2802 +generic_subp_inst ::=
 94.2803 +subprogram_specification:subprog IS generic_inst
 94.2804 +{:
 94.2805 +    RESULT = subprog;
 94.2806 +:}
 94.2807 +;
 94.2808 +
 94.2809 +// 12.3
 94.2810 +generic_package_instantiation ::=
 94.2811 +PACKAGE compound_name IS generic_inst
 94.2812 +;
 94.2813 +
 94.2814 +generic_inst ::= NEW name
 94.2815 +;
 94.2816 +
 94.2817 +rep_spec ::= attrib_def
 94.2818 +	| record_type_spec
 94.2819 +	| address_spec
 94.2820 +	;
 94.2821 +
 94.2822 +attrib_def ::= FOR subtype_mark USE expression SEMICOLON
 94.2823 +	;
 94.2824 +
 94.2825 +record_type_spec ::= FOR subtype_mark USE RECORD align_opt comp_loc_s END RECORD SEMICOLON
 94.2826 +	;
 94.2827 +
 94.2828 +align_opt ::=
 94.2829 +	| AT MOD expression SEMICOLON
 94.2830 +	;
 94.2831 +
 94.2832 +comp_loc_s ::=
 94.2833 +	| comp_loc_s subtype_mark AT expression RANGE range SEMICOLON
 94.2834 +	;
 94.2835 +
 94.2836 +address_spec ::= FOR subtype_mark USE AT expression SEMICOLON
 94.2837 +	;
 94.2838 +
 94.2839 +///////////////////////////////////////////////////////////////////////////////
 94.2840 +// 13.8 Machine Code Insertions
 94.2841 +//
 94.2842 +code_statement ::=
 94.2843 +qualified_expression:expr SEMICOLON:end
 94.2844 +{:
 94.2845 +    RESULT = new CodeStatement (exprleft, endright, expr);
 94.2846 +:}
 94.2847 +;
 94.2848 \ No newline at end of file
    95.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    95.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/parser/resources/AdaBaseParser.cup	Mon Oct 15 23:38:26 2012 +0200
    95.3 @@ -0,0 +1,1510 @@
    95.4 +/*
    95.5 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
    95.6 + *
    95.7 + * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
    95.8 + *
    95.9 + * The contents of this file are subject to the terms of either the GNU
   95.10 + * General Public License Version 2 only ("GPL") or the Common
   95.11 + * Development and Distribution License("CDDL") (collectively, the
   95.12 + * "License"). You may not use this file except in compliance with the
   95.13 + * License. You can obtain a copy of the License at
   95.14 + * http://www.netbeans.org/cddl-gplv2.html
   95.15 + * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
   95.16 + * specific language governing permissions and limitations under the
   95.17 + * License.  When distributing the software, include this License Header
   95.18 + * Notice in each file and include the License file at
   95.19 + * nbbuild/licenses/CDDL-GPL-2-CP.  Sun designates this
   95.20 + * particular file as subject to the "Classpath" exception as provided
   95.21 + * by Sun in the GPL Version 2 section of the License file that
   95.22 + * accompanied this code. If applicable, add the following below the
   95.23 + * License Header, with the fields enclosed by brackets [] replaced by
   95.24 + * your own identifying information:
   95.25 + * "Portions Copyrighted [year] [name of copyright owner]"
   95.26 + *
   95.27 + * If you wish your version of this file to be governed by only the CDDL
   95.28 + * or only the GPL Version 2, indicate your decision by adding
   95.29 + * "[Contributor] elects to include this software in this distribution
   95.30 + * under the [CDDL or GPL Version 2] license." If you do not indicate a
   95.31 + * single choice of license, a recipient has the option to distribute
   95.32 + * your version of this file under either the CDDL, the GPL Version 2 or
   95.33 + * to extend the choice of license to its licensees as provided above.
   95.34 + * However, if you add GPL Version 2 code and therefore, elected the GPL
   95.35 + * Version 2 license, then the option applies only if the new code is
   95.36 + * made subject to such option by the copyright holder.
   95.37 + *
   95.38 + * Contributor(s):
   95.39 + *
   95.40 + * Portions Copyrighted 2008 Sun Microsystems, Inc.
   95.41 + */
   95.42 +package org.netbeans.modules.ada.editor.parser;
   95.43 +
   95.44 +import org.netbeans.modules.ada.editor.lexer.Ada95ASTLexer;
   95.45 +
   95.46 +parser code {:
   95.47 +
   95.48 +    private ErrorStrategy defaultStrategy = new DefaultErrorStrategy();;
   95.49 +    private ErrorStrategy errorStrategy = defaultStrategy;
   95.50 +
   95.51 +    private ParserErrorHandler errorHandler = null;
   95.52 +
   95.53 +    public void setErrorHandler (ParserErrorHandler handler) {
   95.54 +        this.errorHandler = handler;
   95.55 +    }
   95.56 +
   95.57 +    public ParserErrorHandler getErrorHandler () {
   95.58 +        return this.errorHandler;
   95.59 +    }
   95.60 +
   95.61 +    interface ErrorStrategy {
   95.62 +        public boolean errorRecovery(boolean debug) throws Exception;
   95.63 +    }
   95.64 +
   95.65 +    class DefaultErrorStrategy implements ErrorStrategy {
   95.66 +
   95.67 +        public boolean errorRecovery(boolean debug) throws Exception {
   95.68 +            return Ada95ASTParser.super.error_recovery(debug);
   95.69 +        }
   95.70 +    }
   95.71 +
   95.72 +    /**
   95.73 +     * Attempt to recover from a syntax error.  This returns false if recovery fails,
   95.74 +     * true if it succeeds.
   95.75 +     * @param debug should we produce debugging messages as we parse.
   95.76 +     */
   95.77 +    @Override
   95.78 +    protected boolean error_recovery(boolean debug) throws java.lang.Exception {
   95.79 +        return errorStrategy.errorRecovery(debug);
   95.80 +    }
   95.81 +
   95.82 +    /**
   95.83 +     * Report a non fatal error (or warning).  This method takes a message
   95.84 +     * string and an additional object (to be used by specializations implemented in subclasses).
   95.85 +     * The super class prints the message to System.err.
   95.86 +     * @param message an error message.
   95.87 +     * @param info    an extra object reserved for use by specialized subclasses.
   95.88 +     */
   95.89 +    @Override
   95.90 +    public void report_error(String message, Object info) {
   95.91 +        System.out.print("report_eror"  + message);
   95.92 +    }	
   95.93 +
   95.94 +    /**
   95.95 +     * This method is called when a syntax error has been detected and recovery is about to be invoked.
   95.96 +     * The super class just emit a "Syntax error" error message.
   95.97 +     * @param cur_token the current lookahead Symbol.
   95.98 +     */
   95.99 +    @Override
  95.100 +    public void syntax_error(java_cup.runtime.Symbol cur_token) {
  95.101 +        java_cup.runtime.Symbol symbol = (java_cup.runtime.Symbol)stack.peek();
  95.102 +        int state = symbol.parse_state;
  95.103 +        short[] rowOfProbe = action_tab[state];
  95.104 +        if (errorHandler != null) {
  95.105 +            errorHandler.handleError(ParserErrorHandler.Type.SYNTAX_ERROR, rowOfProbe, cur_token, symbol);
  95.106 +        }
  95.107 +     }
  95.108 +
  95.109 +    /**
  95.110 +     * This method is called when a syntax error has been detected during action.
  95.111 +     * @param message an error message.
  95.112 +     */
  95.113 +    public void message_error(String message) {
  95.114 +        java_cup.runtime.Symbol symbol = (java_cup.runtime.Symbol)stack.peek();
  95.115 +        if (errorHandler != null) {
  95.116 +            errorHandler.handleError(ParserErrorHandler.Type.SYNTAX_ERROR, symbol, message);
  95.117 +        }
  95.118 +     }
  95.119 +
  95.120 +     /**
  95.121 +     * Report a fatal error.  This method takes a message string and an additional object
  95.122 +     * (to be used by specializations implemented in subclasses).
  95.123 +     * The super class reports the error then throws an exception.
  95.124 +     * @param message an error message.
  95.125 +     * @param info    an extra object reserved for use by specialized subclasses.
  95.126 +     */
  95.127 +    @Override
  95.128 +    public void report_fatal_error(String message, Object info) throws Exception {
  95.129 +        if (errorHandler != null) {
  95.130 +            errorHandler.handleError(ParserErrorHandler.Type.FATAL_PARSER_ERROR, null, cur_token, null);
  95.131 +        }
  95.132 +    }
  95.133 +
  95.134 +    @Override
  95.135 +    protected int error_sync_size() {
  95.136 +        return 1;
  95.137 +    }
  95.138 +
  95.139 +:}
  95.140 +
  95.141 +
  95.142 +/*********************************************************
  95.143 + *                                                       *
  95.144 + * Ada 95 (LALR) Parser (no AST), based on:              *
  95.145 + *                                                       *
  95.146 + * 1. Ada Reference Manual                               *
  95.147 + *    ISO/IEC 8652:1995(E)                               *
  95.148 + *    with Technical Corrigendum 1                       *
  95.149 + *    Language and Standard Libraries                    *
  95.150 + *    Copyright © 1992,1993,1994,1995 Intermetrics, Inc. *
  95.151 + *    Copyright © 2000 The MITRE Corporation, Inc.       *
  95.152 + * 2. http://www.adaic.com/standards/95lrm/grammar9x.y   *
  95.153 + *                                                       *
  95.154 + * Author: Andrea Lucarelli                              *
  95.155 + * Parser Generator: JavCup                              *
  95.156 + *                                                       *
  95.157 + *********************************************************/
  95.158 +
  95.159 +/*************************
  95.160 + * JavaCup Terminals     *
  95.161 + *************************/
  95.162 +
  95.163 +//
  95.164 +// Ada 95 keywords
  95.165 +//
  95.166 +terminal ABORT;
  95.167 +terminal ABS;
  95.168 +terminal ABSTRACT;
  95.169 +terminal ACCEPT;
  95.170 +terminal ACCESS;
  95.171 +terminal ALIASED;
  95.172 +terminal ALL;
  95.173 +terminal AND;
  95.174 +terminal ARRAY;
  95.175 +terminal AT;
  95.176 +terminal BEGIN;
  95.177 +terminal BODY;
  95.178 +terminal CASE;
  95.179 +terminal CONSTANT;
  95.180 +terminal DECLARE;
  95.181 +terminal DELAY;
  95.182 +terminal DELTA;
  95.183 +terminal DIGITS;
  95.184 +terminal DO;
  95.185 +terminal ELSE;
  95.186 +terminal ELSIF;
  95.187 +terminal END;
  95.188 +terminal ENTRY;
  95.189 +terminal EXCEPTION;
  95.190 +terminal EXIT;
  95.191 +terminal FOR;
  95.192 +terminal FUNCTION;
  95.193 +terminal GENERIC;
  95.194 +terminal GOTO;
  95.195 +terminal IF;
  95.196 +terminal IN;
  95.197 +terminal IS;
  95.198 +terminal LIMITED;
  95.199 +terminal LOOP;
  95.200 +terminal MOD;
  95.201 +terminal NEW;
  95.202 +terminal NOT;
  95.203 +terminal NULL;
  95.204 +terminal OF;
  95.205 +terminal OR;
  95.206 +terminal OTHERS;
  95.207 +terminal OUT;
  95.208 +terminal PACKAGE;
  95.209 +terminal PRAGMA;
  95.210 +terminal PRIVATE;
  95.211 +terminal PROCEDURE;
  95.212 +terminal PROTECTED;
  95.213 +terminal RAISE;
  95.214 +terminal RANGE;
  95.215 +terminal RECORD;
  95.216 +terminal REM;
  95.217 +terminal RENAMES;
  95.218 +terminal REQUEUE;
  95.219 +terminal RETURN;
  95.220 +terminal REVERSE;
  95.221 +terminal SELECT;
  95.222 +terminal SEPARATE;
  95.223 +terminal SUBTYPE;
  95.224 +terminal TAGGED;
  95.225 +terminal TASK;
  95.226 +terminal TERMINATE;
  95.227 +terminal THEN;
  95.228 +terminal TYPE;
  95.229 +terminal UNTIL;
  95.230 +terminal USE;
  95.231 +terminal WHEN;
  95.232 +terminal WHILE;
  95.233 +terminal WITH;
  95.234 +terminal XOR;
  95.235 +
  95.236 +//
  95.237 +// delimiters
  95.238 +//
  95.239 +terminal AMP;
  95.240 +terminal TICK;
  95.241 +terminal LPAREN;
  95.242 +terminal RPAREN;
  95.243 +terminal STAR;
  95.244 +terminal PLUS;
  95.245 +terminal COMMA;
  95.246 +terminal MINUS;
  95.247 +terminal DOT;
  95.248 +terminal SLASH;
  95.249 +terminal COLON;
  95.250 +terminal SEMICOLON;
  95.251 +terminal GT;
  95.252 +terminal EQ;
  95.253 +terminal LT;
  95.254 +terminal BAR;
  95.255 +
  95.256 +//
  95.257 +// compound delimiters
  95.258 +//
  95.259 +terminal ARROW;
  95.260 +terminal DOT_DOT;
  95.261 +terminal EXPON;
  95.262 +terminal ASSIGNMENT;
  95.263 +terminal INEQ;
  95.264 +terminal GTEQ;
  95.265 +terminal LTEQ;
  95.266 +terminal LTLT;
  95.267 +terminal GTGT;
  95.268 +terminal BOX;
  95.269 +
  95.270 +terminal BASED_LITERAL;
  95.271 +terminal DECIMAL_LITERAL;
  95.272 +terminal CHAR_LITERAL;
  95.273 +terminal STRING_LITERAL;
  95.274 +terminal IDENTIFIER;
  95.275 +
  95.276 +non terminal compilation;
  95.277 +non terminal pragma;
  95.278 +non terminal simple_name;
  95.279 +non terminal pragma_arg_s;
  95.280 +non terminal pragma_arg;
  95.281 +non terminal pragma_s;
  95.282 +non terminal decl;
  95.283 +non terminal object_decl;
  95.284 +non terminal def_id_s;
  95.285 +non terminal def_id;
  95.286 +non terminal object_qualifier_opt;
  95.287 +non terminal object_subtype_def;
  95.288 +non terminal init_opt;
  95.289 +non terminal number_decl;
  95.290 +non terminal type_decl;
  95.291 +non terminal discrim_part_opt;
  95.292 +non terminal type_completion;
  95.293 +non terminal type_def;
  95.294 +non terminal subtype_decl;
  95.295 +non terminal subtype_ind;
  95.296 +non terminal constraint;
  95.297 +non terminal decimal_digits_constraint;
  95.298 +non terminal derived_type;
  95.299 +non terminal range_constraint;
  95.300 +non terminal range;
  95.301 +non terminal enumeration_type;
  95.302 +non terminal enum_id_s;
  95.303 +non terminal enum_id;
  95.304 +non terminal integer_type;
  95.305 +non terminal range_spec;
  95.306 +non terminal range_spec_opt;
  95.307 +non terminal real_type;
  95.308 +non terminal float_type;
  95.309 +non terminal fixed_type;
  95.310 +non terminal array_type;
  95.311 +non terminal unconstr_array_type;
  95.312 +non terminal constr_array_type;
  95.313 +non terminal component_subtype_def;
  95.314 +non terminal aliased_opt;
  95.315 +non terminal index_s;
  95.316 +non terminal index;
  95.317 +non terminal iter_index_constraint;
  95.318 +non terminal iter_discrete_range_s;
  95.319 +non terminal discrete_range;
  95.320 +non terminal range_constr_opt;
  95.321 +non terminal record_type;
  95.322 +non terminal record_def;
  95.323 +non terminal tagged_opt;
  95.324 +non terminal comp_list;
  95.325 +non terminal comp_decl_s;
  95.326 +non terminal variant_part_opt;
  95.327 +non terminal comp_decl;
  95.328 +non terminal discrim_part;
  95.329 +non terminal discrim_spec_s;
  95.330 +non terminal discrim_spec;
  95.331 +non terminal access_opt;
  95.332 +non terminal variant_part;
  95.333 +non terminal variant_s;
  95.334 +non terminal variant;
  95.335 +non terminal choice_s;
  95.336 +non terminal choice;
  95.337 +non terminal discrete_with_range;
  95.338 +non terminal access_type;
  95.339 +non terminal prot_opt;
  95.340 +non terminal decl_part;
  95.341 +non terminal decl_item_s;
  95.342 +non terminal decl_item_s1;
  95.343 +non terminal decl_item;
  95.344 +non terminal decl_item_or_body_s1;
  95.345 +non terminal decl_item_or_body;
  95.346 +non terminal body;
  95.347 +non terminal name;
  95.348 +non terminal mark;
  95.349 +non terminal compound_name;
  95.350 +non terminal c_name_list;
  95.351 +non terminal used_char;
  95.352 +non terminal operator_symbol;
  95.353 +non terminal indexed_comp;
  95.354 +non terminal value_s;
  95.355 +non terminal value;
  95.356 +non terminal selected_comp;
  95.357 +non terminal attribute;
  95.358 +non terminal attribute_id;
  95.359 +non terminal literal;
  95.360 +non terminal aggregate;
  95.361 +non terminal value_s_2;
  95.362 +non terminal comp_assoc;
  95.363 +non terminal expression;
  95.364 +non terminal logical;
  95.365 +non terminal short_circuit;
  95.366 +non terminal relation;
  95.367 +non terminal relational;
  95.368 +non terminal membership;
  95.369 +non terminal simple_expression;
  95.370 +non terminal unary;
  95.371 +non terminal adding;
  95.372 +non terminal term;
  95.373 +non terminal multiplying;
  95.374 +non terminal factor;
  95.375 +non terminal primary;
  95.376 +non terminal parenthesized_primary;
  95.377 +non terminal qualified;
  95.378 +non terminal allocator;
  95.379 +non terminal statement_s;
  95.380 +non terminal statement;
  95.381 +non terminal unlabeled;
  95.382 +non terminal simple_stmt;
  95.383 +non terminal compound_stmt;
  95.384 +non terminal label;
  95.385 +non terminal NULL_stmt;
  95.386 +non terminal assign_stmt;
  95.387 +non terminal if_stmt;
  95.388 +non terminal cond_clause_s;
  95.389 +non terminal cond_clause;
  95.390 +non terminal cond_part;
  95.391 +non terminal condition;
  95.392 +non terminal else_opt;
  95.393 +non terminal case_stmt;
  95.394 +non terminal case_hdr;
  95.395 +non terminal alternative_s;
  95.396 +non terminal alternative;
  95.397 +non terminal loop_stmt;
  95.398 +non terminal label_opt;
  95.399 +non terminal iteration;
  95.400 +non terminal iter_part;
  95.401 +non terminal reverse_opt;
  95.402 +non terminal basic_loop;
  95.403 +non terminal id_opt;
  95.404 +non terminal block;
  95.405 +non terminal block_decl;
  95.406 +non terminal block_body;
  95.407 +non terminal handled_stmt_s;
  95.408 +non terminal except_handler_part_opt;
  95.409 +non terminal exit_stmt;
  95.410 +non terminal name_opt;
  95.411 +non terminal when_opt;
  95.412 +non terminal return_stmt;
  95.413 +non terminal goto_stmt;
  95.414 +non terminal subprog_decl;
  95.415 +non terminal subprog_spec;
  95.416 +non terminal designator;
  95.417 +non terminal formal_part_opt;
  95.418 +non terminal formal_part;
  95.419 +non terminal param_s;
  95.420 +non terminal param;
  95.421 +non terminal mode;
  95.422 +non terminal subprog_spec_is_push;
  95.423 +non terminal subprog_body;
  95.424 +non terminal procedure_call;
  95.425 +non terminal pkg_decl;
  95.426 +non terminal pkg_spec;
  95.427 +non terminal private_part;
  95.428 +non terminal c_id_opt;
  95.429 +non terminal pkg_body;
  95.430 +non terminal body_opt;
  95.431 +non terminal private_type;
  95.432 +non terminal limited_opt;
  95.433 +non terminal use_clause;
  95.434 +non terminal name_s;
  95.435 +non terminal rename_decl;
  95.436 +non terminal rename_unit;
  95.437 +non terminal renames;
  95.438 +non terminal task_decl;
  95.439 +non terminal task_spec;
  95.440 +non terminal task_def;
  95.441 +non terminal task_private_opt;
  95.442 +non terminal task_body;
  95.443 +non terminal prot_decl;
  95.444 +non terminal prot_spec;
  95.445 +non terminal prot_def;
  95.446 +non terminal prot_private_opt;
  95.447 +non terminal prot_op_decl_s;
  95.448 +non terminal prot_op_decl;
  95.449 +non terminal prot_elem_decl_s;
  95.450 +non terminal prot_elem_decl;
  95.451 +non terminal prot_body;
  95.452 +non terminal prot_op_body_s;
  95.453 +non terminal prot_op_body;
  95.454 +non terminal entry_decl_s;
  95.455 +non terminal entry_decl;
  95.456 +non terminal entry_body;
  95.457 +non terminal entry_body_part;
  95.458 +non terminal rep_spec_s;
  95.459 +non terminal entry_call;
  95.460 +non terminal accept_stmt;
  95.461 +non terminal accept_hdr;
  95.462 +non terminal entry_name;
  95.463 +non terminal delay_stmt;
  95.464 +non terminal select_stmt;
  95.465 +non terminal select_wait;
  95.466 +non terminal guarded_select_alt;
  95.467 +non terminal or_select;
  95.468 +non terminal select_alt;
  95.469 +non terminal delay_or_entry_alt;
  95.470 +non terminal async_select;
  95.471 +non terminal timed_entry_call;
  95.472 +non terminal cond_entry_call;
  95.473 +non terminal stmts_opt;
  95.474 +non terminal abort_stmt;
  95.475 +non terminal comp_unit;
  95.476 +non terminal private_opt;
  95.477 +non terminal context_spec;
  95.478 +non terminal with_clause;
  95.479 +non terminal use_clause_opt;
  95.480 +non terminal unit;
  95.481 +non terminal subunit;
  95.482 +non terminal subunit_body;
  95.483 +non terminal body_stub;
  95.484 +non terminal exception_decl;
  95.485 +non terminal except_handler_part;
  95.486 +non terminal exception_handler;
  95.487 +non terminal except_choice_s;
  95.488 +non terminal except_choice;
  95.489 +non terminal raise_stmt;
  95.490 +non terminal requeue_stmt;
  95.491 +non terminal generic_decl;
  95.492 +non terminal generic_formal_part;
  95.493 +non terminal generic_formal;
  95.494 +non terminal generic_discrim_part_opt;
  95.495 +non terminal subp_default;
  95.496 +non terminal generic_type_def;
  95.497 +non terminal generic_derived_type;
  95.498 +non terminal generic_subp_inst;
  95.499 +non terminal generic_pkg_inst;
  95.500 +non terminal generic_inst;
  95.501 +non terminal rep_spec;
  95.502 +non terminal attrib_def;
  95.503 +non terminal record_type_spec;
  95.504 +non terminal align_opt;
  95.505 +non terminal comp_loc_s;
  95.506 +non terminal address_spec;
  95.507 +non terminal code_stmt;
  95.508 +
  95.509 +// root symbol 
  95.510 +start with compilation;
  95.511 +
  95.512 +pragma  ::= PRAGMA IDENTIFIER SEMICOLON
  95.513 +	| PRAGMA simple_name LPAREN pragma_arg_s RPAREN SEMICOLON
  95.514 +	;
  95.515 +
  95.516 +pragma_arg_s ::= pragma_arg
  95.517 +	| pragma_arg_s COMMA pragma_arg
  95.518 +	;
  95.519 +
  95.520 +pragma_arg ::= expression
  95.521 +	| simple_name ARROW expression
  95.522 +	;
  95.523 +
  95.524 +pragma_s ::=
  95.525 +	| pragma_s pragma
  95.526 +	;
  95.527 +
  95.528 +decl    ::= object_decl
  95.529 +	| number_decl
  95.530 +	| type_decl
  95.531 +	| subtype_decl
  95.532 +	| subprog_decl
  95.533 +	| pkg_decl
  95.534 +	| task_decl
  95.535 +	| prot_decl
  95.536 +	| exception_decl
  95.537 +	| rename_decl
  95.538 +	| generic_decl
  95.539 +	| body_stub
  95.540 +	| error SEMICOLON
  95.541 +	;
  95.542 +
  95.543 +object_decl ::= def_id_s COLON object_qualifier_opt object_subtype_def init_opt SEMICOLON
  95.544 +	;
  95.545 +
  95.546 +def_id_s ::= def_id
  95.547 +	| def_id_s COMMA def_id
  95.548 +	;
  95.549 +
  95.550 +def_id  ::= IDENTIFIER
  95.551 +	;
  95.552 +
  95.553 +object_qualifier_opt ::=
  95.554 +	| ALIASED
  95.555 +	| CONSTANT
  95.556 +	| ALIASED CONSTANT
  95.557 +	;
  95.558 +
  95.559 +object_subtype_def ::= subtype_ind
  95.560 +	| array_type
  95.561 +	;
  95.562 +
  95.563 +init_opt ::=
  95.564 +	| ASSIGNMENT expression
  95.565 +	;
  95.566 +
  95.567 +number_decl ::= def_id_s COLON CONSTANT ASSIGNMENT expression SEMICOLON
  95.568 +	;
  95.569 +
  95.570 +type_decl ::= TYPE IDENTIFIER discrim_part_opt type_completion SEMICOLON
  95.571 +	;
  95.572 +
  95.573 +discrim_part_opt ::=
  95.574 +	| discrim_part
  95.575 +	| LPAREN BOX RPAREN
  95.576 +	;
  95.577 +
  95.578 +type_completion ::=
  95.579 +	| IS type_def
  95.580 +	;
  95.581 +
  95.582 +type_def ::= enumeration_type
  95.583 +	| integer_type
  95.584 +	| real_type
  95.585 +	| array_type
  95.586 +	| record_type
  95.587 +	| access_type
  95.588 +	| derived_type
  95.589 +	| private_type
  95.590 +	;
  95.591 +
  95.592 +subtype_decl ::= SUBTYPE IDENTIFIER IS subtype_ind SEMICOLON
  95.593 +	;
  95.594 +
  95.595 +subtype_ind ::= name constraint
  95.596 +	| name
  95.597 +	;
  95.598 +
  95.599 +constraint ::= range_constraint
  95.600 +	| decimal_digits_constraint
  95.601 +	;
  95.602 +
  95.603 +decimal_digits_constraint ::= DIGITS expression range_constr_opt
  95.604 +	;
  95.605 +
  95.606 +derived_type ::= NEW subtype_ind
  95.607 +	| NEW subtype_ind WITH PRIVATE
  95.608 +	| NEW subtype_ind WITH record_def
  95.609 +	| ABSTRACT NEW subtype_ind WITH PRIVATE
  95.610 +	| ABSTRACT NEW subtype_ind WITH record_def
  95.611 +	;
  95.612 +
  95.613 +range_constraint ::= RANGE range
  95.614 +	;
  95.615 +
  95.616 +range ::= simple_expression DOT_DOT simple_expression
  95.617 +	| name TICK RANGE
  95.618 +	| name TICK RANGE LPAREN expression RPAREN
  95.619 +	;
  95.620 +
  95.621 +enumeration_type ::= LPAREN enum_id_s RPAREN
  95.622 +;
  95.623 +
  95.624 +enum_id_s ::= enum_id
  95.625 +	| enum_id_s COMMA enum_id
  95.626 +	;
  95.627 +
  95.628 +enum_id ::= IDENTIFIER
  95.629 +	| CHAR_LITERAL
  95.630 +	;
  95.631 +
  95.632 +integer_type ::= range_spec
  95.633 +	| MOD expression
  95.634 +	;
  95.635 +	
  95.636 +
  95.637 +range_spec ::= range_constraint
  95.638 +	;
  95.639 +
  95.640 +range_spec_opt ::=
  95.641 +	| range_spec
  95.642 +	;
  95.643 +
  95.644 +real_type ::= float_type
  95.645 +	| fixed_type
  95.646 +	;
  95.647 +
  95.648 +float_type ::= DIGITS expression range_spec_opt
  95.649 +	;
  95.650 +
  95.651 +fixed_type ::= DELTA expression range_spec
  95.652 +	| DELTA expression DIGITS expression range_spec_opt
  95.653 +	;
  95.654 +
  95.655 +array_type ::= unconstr_array_type
  95.656 +	| constr_array_type
  95.657 +	;
  95.658 +
  95.659 +unconstr_array_type ::= ARRAY LPAREN index_s RPAREN OF component_subtype_def
  95.660 +	;
  95.661 +
  95.662 +constr_array_type ::= ARRAY iter_index_constraint OF component_subtype_def
  95.663 +	;
  95.664 +
  95.665 +component_subtype_def ::= aliased_opt subtype_ind
  95.666 +	;
  95.667 +
  95.668 +aliased_opt ::=
  95.669 +	| ALIASED
  95.670 +	;
  95.671 +
  95.672 +index_s ::= index
  95.673 +	| index_s COMMA index
  95.674 +	;
  95.675 +
  95.676 +index ::= name RANGE BOX
  95.677 +	;
  95.678 +
  95.679 +iter_index_constraint ::= LPAREN iter_discrete_range_s RPAREN
  95.680 +	;
  95.681 +
  95.682 +iter_discrete_range_s ::= discrete_range
  95.683 +	| iter_discrete_range_s COMMA discrete_range
  95.684 +	;
  95.685 +
  95.686 +discrete_range ::= name range_constr_opt
  95.687 +	| range
  95.688 +	;
  95.689 +
  95.690 +range_constr_opt ::=
  95.691 +	| range_constraint
  95.692 +	;
  95.693 +
  95.694 +record_type ::= tagged_opt limited_opt record_def
  95.695 +	;
  95.696 +
  95.697 +record_def ::= RECORD pragma_s comp_list END RECORD
  95.698 +	| NULL RECORD
  95.699 +	;
  95.700 +
  95.701 +tagged_opt ::=
  95.702 +	| TAGGED
  95.703 +	| ABSTRACT TAGGED
  95.704 +	;
  95.705 +
  95.706 +comp_list ::= comp_decl_s variant_part_opt
  95.707 +	| variant_part pragma_s
  95.708 +	| NULL SEMICOLON pragma_s
  95.709 +	;
  95.710 +
  95.711 +comp_decl_s ::= comp_decl
  95.712 +	| comp_decl_s pragma_s comp_decl
  95.713 +	;
  95.714 +
  95.715 +variant_part_opt ::= pragma_s
  95.716 +	| pragma_s variant_part pragma_s
  95.717 +	;
  95.718 +
  95.719 +comp_decl ::= def_id_s COLON component_subtype_def init_opt SEMICOLON
  95.720 +	| error SEMICOLON
  95.721 +	;
  95.722 +
  95.723 +discrim_part ::= LPAREN discrim_spec_s RPAREN
  95.724 +	;
  95.725 +
  95.726 +discrim_spec_s ::= discrim_spec
  95.727 +	| discrim_spec_s SEMICOLON discrim_spec
  95.728 +	;
  95.729 +
  95.730 +discrim_spec ::= def_id_s COLON access_opt mark init_opt
  95.731 +	| error
  95.732 +	;
  95.733 +
  95.734 +access_opt ::=
  95.735 +	| ACCESS
  95.736 +	;
  95.737 +
  95.738 +variant_part ::= CASE simple_name IS pragma_s variant_s END CASE SEMICOLON
  95.739 +	;
  95.740 +
  95.741 +variant_s ::= variant
  95.742 +	| variant_s variant
  95.743 +	;
  95.744 +
  95.745 +variant ::= WHEN choice_s ARROW pragma_s comp_list
  95.746 +	;
  95.747 +
  95.748 +choice_s ::= choice
  95.749 +	| choice_s BAR choice
  95.750 +	;
  95.751 +
  95.752 +choice ::= expression
  95.753 +	| discrete_with_range
  95.754 +	| OTHERS
  95.755 +	;
  95.756 +
  95.757 +discrete_with_range ::= name range_constraint
  95.758 +	| range
  95.759 +	;
  95.760 +
  95.761 +access_type ::= ACCESS subtype_ind
  95.762 +	| ACCESS CONSTANT subtype_ind
  95.763 +	| ACCESS ALL subtype_ind
  95.764 +	| ACCESS prot_opt PROCEDURE formal_part_opt
  95.765 +	| ACCESS prot_opt FUNCTION formal_part_opt RETURN mark
  95.766 +	;
  95.767 +
  95.768 +prot_opt ::=
  95.769 +	| PROTECTED
  95.770 +	;
  95.771 +
  95.772 +decl_part ::=
  95.773 +	| decl_item_or_body_s1
  95.774 +	;
  95.775 +
  95.776 +decl_item_s ::=
  95.777 +	| decl_item_s1
  95.778 +	;
  95.779 +
  95.780 +decl_item_s1 ::= decl_item
  95.781 +	| decl_item_s1 decl_item
  95.782 +	;
  95.783 +
  95.784 +decl_item ::= decl
  95.785 +	| use_clause
  95.786 +	| rep_spec
  95.787 +	| pragma
  95.788 +	;
  95.789 +
  95.790 +decl_item_or_body_s1 ::= decl_item_or_body
  95.791 +	| decl_item_or_body_s1 decl_item_or_body
  95.792 +	;
  95.793 +
  95.794 +decl_item_or_body ::= body
  95.795 +	| decl_item
  95.796 +	;
  95.797 +
  95.798 +body ::= subprog_body
  95.799 +	| pkg_body
  95.800 +	| task_body
  95.801 +	| prot_body
  95.802 +	;
  95.803 +
  95.804 +name ::= simple_name
  95.805 +	| indexed_comp
  95.806 +	| selected_comp
  95.807 +	| attribute
  95.808 +	| operator_symbol
  95.809 +	;
  95.810 +
  95.811 +mark ::= simple_name
  95.812 +	| mark TICK attribute_id
  95.813 +	| mark DOT simple_name
  95.814 +	;
  95.815 +
  95.816 +simple_name ::=
  95.817 +IDENTIFIER:identifier
  95.818 +{:
  95.819 +    RESULT = identifier;
  95.820 +:}
  95.821 +;
  95.822 +
  95.823 +compound_name ::=
  95.824 +simple_name:simpleName
  95.825 +{:
  95.826 +    RESULT = simpleName;
  95.827 +:}
  95.828 +| compound_name:compoundName DOT simple_name:simpleName
  95.829 +{:
  95.830 +    RESULT = compoundName + "." + simpleName;
  95.831 +:}
  95.832 +;
  95.833 +
  95.834 +c_name_list ::= compound_name
  95.835 +	 | c_name_list COMMA compound_name
  95.836 +	;
  95.837 +
  95.838 +used_char ::= CHAR_LITERAL
  95.839 +	;
  95.840 +
  95.841 +operator_symbol ::= STRING_LITERAL
  95.842 +	;
  95.843 +
  95.844 +indexed_comp ::= name LPAREN value_s RPAREN
  95.845 +	;
  95.846 +
  95.847 +value_s ::= value
  95.848 +	| value_s COMMA value
  95.849 +	;
  95.850 +
  95.851 +value ::= expression
  95.852 +	| comp_assoc
  95.853 +	| discrete_with_range
  95.854 +	| error
  95.855 +	;
  95.856 +
  95.857 +selected_comp ::= name DOT simple_name
  95.858 +	| name DOT used_char
  95.859 +	| name DOT operator_symbol
  95.860 +	| name DOT ALL
  95.861 +	;
  95.862 +
  95.863 +attribute ::= name TICK attribute_id
  95.864 +	;
  95.865 +
  95.866 +attribute_id ::= IDENTIFIER
  95.867 +	| DIGITS
  95.868 +	| DELTA
  95.869 +	| ACCESS
  95.870 +	;
  95.871 +
  95.872 +literal ::= DECIMAL_LITERAL
  95.873 +    | BASED_LITERAL
  95.874 +	| used_char
  95.875 +	| NULL
  95.876 +	;
  95.877 +
  95.878 +aggregate ::= LPAREN comp_assoc RPAREN
  95.879 +	| LPAREN value_s_2 RPAREN
  95.880 +	| LPAREN expression WITH value_s RPAREN
  95.881 +	| LPAREN expression WITH NULL RECORD RPAREN
  95.882 +	| LPAREN NULL RECORD RPAREN
  95.883 +	;
  95.884 +
  95.885 +value_s_2 ::= value COMMA value
  95.886 +	| value_s_2 COMMA value
  95.887 +	;
  95.888 +
  95.889 +comp_assoc ::= choice_s ARROW expression
  95.890 +	;
  95.891 +
  95.892 +expression ::= relation
  95.893 +	| expression logical relation
  95.894 +	| expression short_circuit relation
  95.895 +	;
  95.896 +
  95.897 +logical ::= AND
  95.898 +	| OR
  95.899 +	| XOR
  95.900 +	;
  95.901 +
  95.902 +short_circuit ::= AND THEN
  95.903 +	| OR ELSE
  95.904 +	;
  95.905 +
  95.906 +relation ::= simple_expression
  95.907 +	| simple_expression relational simple_expression
  95.908 +	| simple_expression membership range
  95.909 +	| simple_expression membership name
  95.910 +	;
  95.911 +
  95.912 +relational ::= EQ
  95.913 +	| INEQ
  95.914 +	| GT
  95.915 +	| LTEQ
  95.916 +	| LT
  95.917 +	| GTEQ
  95.918 +	;
  95.919 +
  95.920 +membership ::= IN
  95.921 +	| NOT IN
  95.922 +	;
  95.923 +
  95.924 +simple_expression ::= unary term
  95.925 +	| term
  95.926 +	| simple_expression adding term
  95.927 +	;
  95.928 +
  95.929 +unary   ::= PLUS
  95.930 +	| MINUS
  95.931 +	;
  95.932 +
  95.933 +adding  ::= PLUS
  95.934 +	| MINUS
  95.935 +	| AMP
  95.936 +	;
  95.937 +
  95.938 +term    ::= factor
  95.939 +	| term multiplying factor
  95.940 +	;
  95.941 +
  95.942 +multiplying ::= STAR
  95.943 +	| SLASH
  95.944 +	| MOD
  95.945 +	| REM
  95.946 +	;
  95.947 +
  95.948 +factor ::= primary
  95.949 +	| NOT primary
  95.950 +	| ABS primary
  95.951 +	| primary EXPON primary
  95.952 +	;
  95.953 +
  95.954 +primary ::= literal
  95.955 +	| name
  95.956 +	| allocator
  95.957 +	| qualified
  95.958 +	| parenthesized_primary
  95.959 +	;
  95.960 +
  95.961 +parenthesized_primary ::= aggregate
  95.962 +	| LPAREN expression RPAREN
  95.963 +	;
  95.964 +
  95.965 +qualified ::= name TICK parenthesized_primary
  95.966 +	;
  95.967 +
  95.968 +allocator ::= NEW name
  95.969 +	| NEW qualified
  95.970 +	;
  95.971 +
  95.972 +statement_s ::= statement
  95.973 +	| statement_s statement
  95.974 +	;
  95.975 +
  95.976 +statement ::= unlabeled
  95.977 +	| label statement
  95.978 +	;
  95.979 +
  95.980 +unlabeled ::= simple_stmt
  95.981 +	| compound_stmt
  95.982 +	| pragma
  95.983 +	;
  95.984 +
  95.985 +simple_stmt ::= NULL_stmt
  95.986 +	| assign_stmt
  95.987 +	| exit_stmt
  95.988 +	| return_stmt
  95.989 +	| goto_stmt
  95.990 +	| procedure_call
  95.991 +	| delay_stmt
  95.992 +	| abort_stmt
  95.993 +	| raise_stmt
  95.994 +	| code_stmt
  95.995 +	| requeue_stmt
  95.996 +	| error SEMICOLON
  95.997 +	;
  95.998 +
  95.999 +compound_stmt ::= if_stmt
 95.1000 +	| case_stmt
 95.1001 +	| loop_stmt
 95.1002 +	| block
 95.1003 +	| accept_stmt
 95.1004 +	| select_stmt
 95.1005 +	;
 95.1006 +
 95.1007 +label ::= LTLT IDENTIFIER GTGT
 95.1008 +	;
 95.1009 +
 95.1010 +NULL_stmt ::= NULL SEMICOLON
 95.1011 +	;
 95.1012 +
 95.1013 +assign_stmt ::= name ASSIGNMENT expression SEMICOLON
 95.1014 +	;
 95.1015 +
 95.1016 +if_stmt ::= IF cond_clause_s else_opt END IF SEMICOLON
 95.1017 +	;
 95.1018 +
 95.1019 +cond_clause_s ::= cond_clause
 95.1020 +	| cond_clause_s ELSIF cond_clause
 95.1021 +	;
 95.1022 +
 95.1023 +cond_clause ::= cond_part statement_s
 95.1024 +	;
 95.1025 +
 95.1026 +cond_part ::= condition THEN
 95.1027 +	;
 95.1028 +
 95.1029 +condition ::= expression
 95.1030 +	;
 95.1031 +
 95.1032 +else_opt ::=
 95.1033 +	| ELSE statement_s
 95.1034 +	;
 95.1035 +
 95.1036 +case_stmt ::= case_hdr pragma_s alternative_s END CASE SEMICOLON
 95.1037 +	;
 95.1038 +
 95.1039 +case_hdr ::= CASE expression IS
 95.1040 +	;
 95.1041 +
 95.1042 +alternative_s ::=
 95.1043 +	| alternative_s alternative
 95.1044 +	;
 95.1045 +
 95.1046 +alternative ::= WHEN choice_s ARROW statement_s
 95.1047 +	;
 95.1048 +
 95.1049 +loop_stmt ::= label_opt iteration basic_loop id_opt SEMICOLON
 95.1050 +	;
 95.1051 +
 95.1052 +label_opt ::=
 95.1053 +	| IDENTIFIER COLON
 95.1054 +	;
 95.1055 +
 95.1056 +iteration ::=
 95.1057 +	| WHILE condition
 95.1058 +	| iter_part reverse_opt discrete_range
 95.1059 +	;
 95.1060 +
 95.1061 +iter_part ::= FOR IDENTIFIER IN
 95.1062 +	;
 95.1063 +
 95.1064 +reverse_opt ::=
 95.1065 +	| REVERSE
 95.1066 +	;
 95.1067 +
 95.1068 +basic_loop ::= LOOP statement_s END LOOP
 95.1069 +	;
 95.1070 +
 95.1071 +id_opt ::=
 95.1072 +	| designator
 95.1073 +	;
 95.1074 +
 95.1075 +block ::= label_opt block_decl block_body END id_opt SEMICOLON
 95.1076 +	;
 95.1077 +
 95.1078 +block_decl ::=
 95.1079 +	| DECLARE decl_part
 95.1080 +	;
 95.1081 +
 95.1082 +block_body ::= BEGIN handled_stmt_s
 95.1083 +	;
 95.1084 +
 95.1085 +handled_stmt_s ::= statement_s except_handler_part_opt
 95.1086 +	; 
 95.1087 +
 95.1088 +except_handler_part_opt ::=
 95.1089 +	| except_handler_part
 95.1090 +	;
 95.1091 +
 95.1092 +exit_stmt ::= EXIT name_opt when_opt SEMICOLON
 95.1093 +	;
 95.1094 +
 95.1095 +name_opt ::=
 95.1096 +	| name
 95.1097 +	;
 95.1098 +
 95.1099 +when_opt ::=
 95.1100 +	| WHEN condition
 95.1101 +	;
 95.1102 +
 95.1103 +return_stmt ::= RETURN SEMICOLON
 95.1104 +	| RETURN expression SEMICOLON
 95.1105 +	;
 95.1106 +
 95.1107 +goto_stmt ::= GOTO name SEMICOLON
 95.1108 +	;
 95.1109 +
 95.1110 +subprog_decl ::= subprog_spec SEMICOLON
 95.1111 +	| generic_subp_inst SEMICOLON
 95.1112 +	| subprog_spec_is_push ABSTRACT SEMICOLON
 95.1113 +	;
 95.1114 +
 95.1115 +subprog_spec ::= PROCEDURE compound_name formal_part_opt
 95.1116 +	| FUNCTION designator formal_part_opt RETURN name
 95.1117 +	| FUNCTION designator  /* for generic inst and generic rename */
 95.1118 +	;
 95.1119 +
 95.1120 +designator ::= compound_name
 95.1121 +	| STRING_LITERAL
 95.1122 +	;
 95.1123 +
 95.1124 +formal_part_opt ::=
 95.1125 +	| formal_part
 95.1126 +	;
 95.1127 +
 95.1128 +formal_part ::= LPAREN param_s RPAREN
 95.1129 +	;
 95.1130 +
 95.1131 +param_s ::= param
 95.1132 +	| param_s SEMICOLON param
 95.1133 +	;
 95.1134 +
 95.1135 +param ::= def_id_s COLON mode mark init_opt
 95.1136 +	| error
 95.1137 +	;
 95.1138 +
 95.1139 +mode ::=
 95.1140 +	| IN
 95.1141 +	| OUT
 95.1142 +	| IN OUT
 95.1143 +	| ACCESS
 95.1144 +	;
 95.1145 +
 95.1146 +subprog_spec_is_push ::= subprog_spec IS
 95.1147 +	;
 95.1148 +
 95.1149 +subprog_body ::= subprog_spec_is_push
 95.1150 +	       decl_part block_body END id_opt SEMICOLON
 95.1151 +	;
 95.1152 +
 95.1153 +procedure_call ::= name SEMICOLON
 95.1154 +	;
 95.1155 +
 95.1156 +pkg_decl ::= pkg_spec SEMICOLON
 95.1157 +	| generic_pkg_inst SEMICOLON
 95.1158 +	;
 95.1159 +
 95.1160 +pkg_spec ::= PACKAGE compound_name IS
 95.1161 +	     decl_item_s private_part END c_id_opt
 95.1162 +	;
 95.1163 +
 95.1164 +private_part ::=
 95.1165 +	| PRIVATE decl_item_s
 95.1166 +	;
 95.1167 +
 95.1168 +c_id_opt ::=
 95.1169 +	| compound_name
 95.1170 +	;
 95.1171 +
 95.1172 +pkg_body ::= PACKAGE BODY compound_name IS
 95.1173 +	       decl_part body_opt END c_id_opt SEMICOLON
 95.1174 +	;
 95.1175 +
 95.1176 +body_opt ::=
 95.1177 +	| block_body
 95.1178 +	;
 95.1179 +
 95.1180 +private_type ::= tagged_opt limited_opt PRIVATE
 95.1181 +	;
 95.1182 +
 95.1183 +limited_opt ::=
 95.1184 +	| LIMITED
 95.1185 +	;
 95.1186 +
 95.1187 +use_clause ::= USE name_s SEMICOLON
 95.1188 +	| USE TYPE name_s SEMICOLON
 95.1189 +	;
 95.1190 +
 95.1191 +name_s ::= name
 95.1192 +	| name_s COMMA name
 95.1193 +	;
 95.1194 +
 95.1195 +rename_decl ::= def_id_s COLON object_qualifier_opt subtype_ind renames SEMICOLON
 95.1196 +	| def_id_s COLON EXCEPTION renames SEMICOLON
 95.1197 +	| rename_unit
 95.1198 +	;
 95.1199 +
 95.1200 +rename_unit ::= PACKAGE compound_name renames SEMICOLON
 95.1201 +	| subprog_spec renames SEMICOLON
 95.1202 +	| generic_formal_part PACKAGE compound_name renames SEMICOLON
 95.1203 +	| generic_formal_part subprog_spec renames SEMICOLON
 95.1204 +	;
 95.1205 +
 95.1206 +renames ::= RENAMES name
 95.1207 +	;
 95.1208 +
 95.1209 +task_decl ::= task_spec SEMICOLON
 95.1210 +	;
 95.1211 +
 95.1212 +task_spec ::= TASK simple_name task_def
 95.1213 +	| TASK TYPE simple_name discrim_part_opt task_def
 95.1214 +	;
 95.1215 +
 95.1216 +task_def ::=
 95.1217 +	| IS entry_decl_s rep_spec_s task_private_opt END id_opt
 95.1218 +	;
 95.1219 +
 95.1220 +task_private_opt ::=
 95.1221 +	| PRIVATE entry_decl_s rep_spec_s
 95.1222 +	;
 95.1223 +
 95.1224 +task_body ::= TASK BODY simple_name IS
 95.1225 +	       decl_part block_body END id_opt SEMICOLON
 95.1226 +	;
 95.1227 +
 95.1228 +prot_decl ::= prot_spec SEMICOLON
 95.1229 +	;
 95.1230 +
 95.1231 +prot_spec ::= PROTECTED IDENTIFIER prot_def
 95.1232 +	| PROTECTED TYPE simple_name discrim_part_opt prot_def
 95.1233 +	;
 95.1234 +
 95.1235 +prot_def ::= IS prot_op_decl_s prot_private_opt END id_opt
 95.1236 +	;
 95.1237 +
 95.1238 +prot_private_opt ::=
 95.1239 +	| PRIVATE prot_elem_decl_s 
 95.1240 +;
 95.1241 +
 95.1242 +prot_op_decl_s ::=
 95.1243 +	| prot_op_decl_s prot_op_decl
 95.1244 +	;
 95.1245 +
 95.1246 +prot_op_decl ::= entry_decl
 95.1247 +	| subprog_spec SEMICOLON
 95.1248 +	| rep_spec
 95.1249 +	| pragma
 95.1250 +	;
 95.1251 +
 95.1252 +prot_elem_decl_s ::=
 95.1253 +	| prot_elem_decl_s prot_elem_decl
 95.1254 +	;
 95.1255 +
 95.1256 +prot_elem_decl ::= prot_op_decl | comp_decl ;
 95.1257 +
 95.1258 +prot_body ::= PROTECTED BODY simple_name IS
 95.1259 +	       prot_op_body_s END id_opt SEMICOLON
 95.1260 +	;
 95.1261 +
 95.1262 +prot_op_body_s ::= pragma_s
 95.1263 +	| prot_op_body_s prot_op_body pragma_s
 95.1264 +	;
 95.1265 +
 95.1266 +prot_op_body ::= entry_body
 95.1267 +	| subprog_body
 95.1268 +	| subprog_spec SEMICOLON
 95.1269 +	;
 95.1270 +
 95.1271 +entry_decl_s ::= pragma_s
 95.1272 +	| entry_decl_s entry_decl pragma_s
 95.1273 +	;
 95.1274 +
 95.1275 +entry_decl ::= ENTRY IDENTIFIER formal_part_opt SEMICOLON
 95.1276 +	| ENTRY IDENTIFIER LPAREN discrete_range RPAREN formal_part_opt SEMICOLON
 95.1277 +	;
 95.1278 +
 95.1279 +entry_body ::= ENTRY IDENTIFIER formal_part_opt WHEN condition entry_body_part
 95.1280 +	| ENTRY IDENTIFIER LPAREN iter_part discrete_range RPAREN
 95.1281 +		formal_part_opt WHEN condition entry_body_part
 95.1282 +	;
 95.1283 +
 95.1284 +entry_body_part ::= SEMICOLON
 95.1285 +	| IS decl_part block_body END id_opt SEMICOLON
 95.1286 +	;
 95.1287 +
 95.1288 +rep_spec_s ::=
 95.1289 +	| rep_spec_s rep_spec pragma_s
 95.1290 +	;
 95.1291 +
 95.1292 +entry_call ::= procedure_call
 95.1293 +	;
 95.1294 +
 95.1295 +accept_stmt ::= accept_hdr SEMICOLON
 95.1296 +	| accept_hdr DO handled_stmt_s END id_opt SEMICOLON
 95.1297 +	;
 95.1298 +
 95.1299 +accept_hdr ::= ACCEPT entry_name formal_part_opt
 95.1300 +	;
 95.1301 +
 95.1302 +entry_name ::= simple_name
 95.1303 +	| entry_name LPAREN expression RPAREN
 95.1304 +	;
 95.1305 +
 95.1306 +delay_stmt ::= DELAY expression SEMICOLON
 95.1307 +	| DELAY UNTIL expression SEMICOLON
 95.1308 +	;
 95.1309 +
 95.1310 +select_stmt ::= select_wait
 95.1311 +	| async_select
 95.1312 +	| timed_entry_call
 95.1313 +	| cond_entry_call
 95.1314 +	;
 95.1315 +
 95.1316 +select_wait ::= SELECT guarded_select_alt or_select else_opt
 95.1317 +	      END SELECT SEMICOLON
 95.1318 +	;
 95.1319 +
 95.1320 +guarded_select_alt ::= select_alt
 95.1321 +	| WHEN condition ARROW select_alt
 95.1322 +	;
 95.1323 +
 95.1324 +or_select ::=
 95.1325 +	| or_select OR guarded_select_alt
 95.1326 +	;
 95.1327 +
 95.1328 +select_alt ::= accept_stmt stmts_opt
 95.1329 +	| delay_stmt stmts_opt
 95.1330 +	| TERMINATE SEMICOLON
 95.1331 +	;
 95.1332 +
 95.1333 +delay_or_entry_alt ::= delay_stmt stmts_opt
 95.1334 +	| entry_call stmts_opt
 95.1335 +;
 95.1336 +
 95.1337 +async_select ::= SELECT delay_or_entry_alt
 95.1338 +	       THEN ABORT statement_s
 95.1339 +	       END SELECT SEMICOLON
 95.1340 +	;
 95.1341 +
 95.1342 +timed_entry_call ::= SELECT entry_call stmts_opt
 95.1343 +		   OR delay_stmt stmts_opt
 95.1344 +	           END SELECT SEMICOLON
 95.1345 +	;
 95.1346 +
 95.1347 +cond_entry_call ::= SELECT entry_call stmts_opt
 95.1348 +		  ELSE statement_s
 95.1349 +	          END SELECT SEMICOLON
 95.1350 +	;
 95.1351 +
 95.1352 +stmts_opt ::=
 95.1353 +	| statement_s
 95.1354 +	;
 95.1355 +
 95.1356 +abort_stmt ::= ABORT name_s SEMICOLON
 95.1357 +	;
 95.1358 +
 95.1359 +compilation ::=
 95.1360 +	| compilation comp_unit
 95.1361 +	| pragma pragma_s
 95.1362 +	;
 95.1363 +
 95.1364 +comp_unit ::= context_spec private_opt unit pragma_s
 95.1365 +	| private_opt unit pragma_s
 95.1366 +	;
 95.1367 +
 95.1368 +private_opt ::=
 95.1369 +	| PRIVATE
 95.1370 +	;
 95.1371 +
 95.1372 +context_spec ::= with_clause use_clause_opt
 95.1373 +	| context_spec with_clause use_clause_opt
 95.1374 +	| context_spec pragma
 95.1375 +	;
 95.1376 +
 95.1377 +with_clause ::= WITH c_name_list SEMICOLON
 95.1378 +	;
 95.1379 +
 95.1380 +use_clause_opt ::=
 95.1381 +	| use_clause_opt use_clause
 95.1382 +	;
 95.1383 +
 95.1384 +unit ::= pkg_decl
 95.1385 +	| pkg_body
 95.1386 +	| subprog_decl
 95.1387 +	| subprog_body
 95.1388 +	| subunit
 95.1389 +	| generic_decl
 95.1390 +	| rename_unit
 95.1391 +	;
 95.1392 +
 95.1393 +subunit ::= SEPARATE LPAREN compound_name RPAREN
 95.1394 +	      subunit_body
 95.1395 +	;
 95.1396 +
 95.1397 +subunit_body ::= subprog_body
 95.1398 +	| pkg_body
 95.1399 +	| task_body
 95.1400 +	| prot_body
 95.1401 +	;
 95.1402 +
 95.1403 +body_stub ::= TASK BODY simple_name IS SEPARATE SEMICOLON
 95.1404 +	| PACKAGE BODY compound_name IS SEPARATE SEMICOLON
 95.1405 +	| subprog_spec IS SEPARATE SEMICOLON
 95.1406 +	| PROTECTED BODY simple_name IS SEPARATE SEMICOLON
 95.1407 +	;
 95.1408 +
 95.1409 +exception_decl ::= def_id_s COLON EXCEPTION SEMICOLON
 95.1410 +	;
 95.1411 +
 95.1412 +except_handler_part ::= EXCEPTION exception_handler
 95.1413 +	| except_handler_part exception_handler
 95.1414 +	;
 95.1415 +
 95.1416 +exception_handler ::= WHEN except_choice_s ARROW statement_s
 95.1417 +	| WHEN IDENTIFIER COLON except_choice_s ARROW statement_s
 95.1418 +	;
 95.1419 +
 95.1420 +except_choice_s ::= except_choice
 95.1421 +	| except_choice_s BAR except_choice
 95.1422 +	;
 95.1423 +
 95.1424 +except_choice ::= name
 95.1425 +	| OTHERS
 95.1426 +	;
 95.1427 +
 95.1428 +raise_stmt ::= RAISE name_opt SEMICOLON
 95.1429 +	;
 95.1430 +
 95.1431 +requeue_stmt ::= REQUEUE name SEMICOLON
 95.1432 +	| REQUEUE name WITH ABORT SEMICOLON
 95.1433 +	;
 95.1434 +
 95.1435 +generic_decl ::= generic_formal_part subprog_spec SEMICOLON
 95.1436 +	| generic_formal_part pkg_spec SEMICOLON
 95.1437 +	;
 95.1438 +
 95.1439 +generic_formal_part ::= GENERIC
 95.1440 +	| generic_formal_part generic_formal
 95.1441 +	;
 95.1442 +
 95.1443 +generic_formal ::= param SEMICOLON
 95.1444 +	| TYPE simple_name generic_discrim_part_opt IS generic_type_def SEMICOLON
 95.1445 +	| WITH PROCEDURE simple_name 
 95.1446 +	    formal_part_opt subp_default SEMICOLON
 95.1447 +	| WITH FUNCTION designator 
 95.1448 +	    formal_part_opt RETURN name subp_default SEMICOLON
 95.1449 +	| WITH PACKAGE simple_name IS NEW name LPAREN BOX RPAREN SEMICOLON
 95.1450 +	| WITH PACKAGE simple_name IS NEW name SEMICOLON
 95.1451 +	| use_clause
 95.1452 +	;
 95.1453 +
 95.1454 +generic_discrim_part_opt ::=
 95.1455 +	| discrim_part
 95.1456 +	| LPAREN BOX RPAREN
 95.1457 +	;
 95.1458 +
 95.1459 +subp_default ::=
 95.1460 +	| IS name
 95.1461 +	| IS BOX
 95.1462 +	;
 95.1463 +
 95.1464 +generic_type_def ::= LPAREN BOX RPAREN
 95.1465 +	| RANGE BOX
 95.1466 +	| MOD BOX
 95.1467 +	| DELTA BOX
 95.1468 +	| DELTA BOX DIGITS BOX
 95.1469 +	| DIGITS BOX
 95.1470 +	| array_type
 95.1471 +	| access_type
 95.1472 +	| private_type
 95.1473 +	| generic_derived_type
 95.1474 +	;
 95.1475 +
 95.1476 +generic_derived_type ::= NEW subtype_ind
 95.1477 +	| NEW subtype_ind WITH PRIVATE
 95.1478 +	| ABSTRACT NEW subtype_ind WITH PRIVATE
 95.1479 +	;
 95.1480 +
 95.1481 +generic_subp_inst ::= subprog_spec IS generic_inst
 95.1482 +	;
 95.1483 +
 95.1484 +generic_pkg_inst ::= PACKAGE compound_name IS generic_inst
 95.1485 +	;
 95.1486 +
 95.1487 +generic_inst ::= NEW name
 95.1488 +	;
 95.1489 +
 95.1490 +rep_spec ::= attrib_def
 95.1491 +	| record_type_spec
 95.1492 +	| address_spec
 95.1493 +	;
 95.1494 +
 95.1495 +attrib_def ::= FOR mark USE expression SEMICOLON
 95.1496 +	;
 95.1497 +
 95.1498 +record_type_spec ::= FOR mark USE RECORD align_opt comp_loc_s END RECORD SEMICOLON
 95.1499 +	;
 95.1500 +
 95.1501 +align_opt ::=
 95.1502 +	| AT MOD expression SEMICOLON
 95.1503 +	;
 95.1504 +
 95.1505 +comp_loc_s ::=
 95.1506 +	| comp_loc_s mark AT expression RANGE range SEMICOLON
 95.1507 +	;
 95.1508 +
 95.1509 +address_spec ::= FOR mark USE AT expression SEMICOLON
 95.1510 +	;
 95.1511 +
 95.1512 +code_stmt ::= qualified SEMICOLON
 95.1513 +	;
    96.1 Binary file ada.editor/src/org/netbeans/modules/ada/editor/resources/icons/adb-16.png has changed
    97.1 Binary file ada.editor/src/org/netbeans/modules/ada/editor/resources/icons/ads-16.png has changed
    98.1 --- a/ada.editor/src/org/netbeans/modules/ada/editor/resources/layer.xml	Tue Oct 02 21:55:21 2012 -0400
    98.2 +++ b/ada.editor/src/org/netbeans/modules/ada/editor/resources/layer.xml	Mon Oct 15 23:38:26 2012 +0200
    98.3 @@ -37,10 +37,11 @@
    98.4  
    98.5  Portions Copyrighted 2008 Sun Microsystems, Inc.
    98.6  -->
    98.7 -<!DOCTYPE filesystem PUBLIC "-//NetBeans//DTD Filesystem 1.1//EN" "http://www.netbeans.org/dtds/filesystem-1_1.dtd">
    98.8 +<!DOCTYPE filesystem PUBLIC "-//NetBeans//DTD Filesystem 1.2//EN" "http://www.netbeans.org/dtds/filesystem-1_2.dtd">
    98.9  <filesystem>
   98.10  
   98.11      <!-- LOADERS -->
   98.12 +<!--
   98.13      <folder name="Loaders">
   98.14          <folder name="text">
   98.15              <folder name="x-ada">
   98.16 @@ -49,48 +50,101 @@
   98.17              </folder>
   98.18          </folder>
   98.19      </folder>
   98.20 +-->
   98.21  
   98.22 -    <!-- CLS -->
   98.23 -    <folder name="CslPlugins">
   98.24 +    <folder name="Loaders">
   98.25          <folder name="text">
   98.26 +
   98.27 +            <folder name="x-ada+sourcefile">
   98.28 +                <folder name="Actions">
   98.29 +                    <file name="OpenAction.shadow">
   98.30 +                        <attr name="originalFile" stringvalue="Actions/System/org-openide-actions-OpenAction.instance"/>
   98.31 +                        <attr name="position" intvalue="400"/>
   98.32 +                    </file>
   98.33 +                    <file name="Separator1.instance">
   98.34 +                        <attr name="instanceClass" stringvalue="javax.swing.JSeparator"/>
   98.35 +                        <attr name="position" intvalue="600"/>
   98.36 +                    </file>
   98.37 +                    <file name="CutAction.shadow">
   98.38 +                        <attr name="originalFile" stringvalue="Actions/Edit/org-openide-actions-CutAction.instance"/>
   98.39 +                        <attr name="position" intvalue="700"/>
   98.40 +                    </file>
   98.41 +                    <file name="CopyAction.shadow">
   98.42 +                        <attr name="originalFile" stringvalue="Actions/Edit/org-openide-actions-CopyAction.instance"/>
   98.43 +                        <attr name="position" intvalue="800"/>
   98.44 +                    </file>
   98.45 +                    <file name="PasteAction.shadow">
   98.46 +                        <attr name="originalFile" stringvalue="Actions/Edit/org-openide-actions-PasteAction.instance"/>
   98.47 +                        <attr name="position" intvalue="900"/>
   98.48 +                    </file>
   98.49 +                    <file name="Separator2.instance">
   98.50 +                        <attr name="instanceClass" stringvalue="javax.swing.JSeparator"/>
   98.51 +                        <attr name="position" intvalue="1000"/>
   98.52 +                    </file>
   98.53 +                    <file name="DeleteAction.shadow">
   98.54 +                        <attr name="originalFile" stringvalue="Actions/Edit/org-openide-actions-DeleteAction.instance"/>
   98.55 +                        <attr name="position" intvalue="1100"/>
   98.56 +                    </file>
   98.57 +                    <file name="RenameAction.shadow">
   98.58 +                        <attr name="originalFile" stringvalue="Actions/System/org-openide-actions-RenameAction.instance"/>
   98.59 +                        <attr name="position" intvalue="1200"/>
   98.60 +                    </file>
   98.61 +                    <file name="Separator3.instance">
   98.62 +                        <attr name="instanceClass" stringvalue="javax.swing.JSeparator"/>
   98.63 +                        <attr name="position" intvalue="1300"/>
   98.64 +                    </file>
   98.65 +                    <file name="SaveAsTemplateAction.shadow">
   98.66 +                        <attr name="originalFile" stringvalue="Actions/System/org-openide-actions-SaveAsTemplateAction.instance"/>
   98.67 +                        <attr name="position" intvalue="1400"/>
   98.68 +                    </file>
   98.69 +                    <file name="Separator4.instance">
   98.70 +                        <attr name="instanceClass" stringvalue="javax.swing.JSeparator"/>
   98.71 +                        <attr name="position" intvalue="1500"/>
   98.72 +                    </file>
   98.73 +                    <file name="FileSystemAction.shadow">
   98.74 +                        <attr name="originalFile" stringvalue="Actions/System/org-openide-actions-FileSystemAction.instance"/>
   98.75 +                        <attr name="position" intvalue="1550"/>
   98.76 +                    </file>
   98.77 +                    <file name="Separator5.instance">
   98.78 +                        <attr name="instanceClass" stringvalue="javax.swing.JSeparator"/>
   98.79 +                        <attr name="position" intvalue="1575"/>
   98.80 +                    </file>
   98.81 +                    <file name="ToolsAction.shadow">
   98.82 +                        <attr name="originalFile" stringvalue="Actions/System/org-openide-actions-ToolsAction.instance"/>
   98.83 +                        <attr name="position" intvalue="1600"/>
   98.84 +                    </file>
   98.85 +                    <file name="PropertiesAction.shadow">
   98.86 +                        <attr name="originalFile" stringvalue="Actions/System/org-openide-actions-PropertiesAction.instance"/>
   98.87 +                        <attr name="position" intvalue="1700"/>
   98.88 +                    </file>
   98.89 +                </folder>
   98.90 +            </folder>
   98.91 +
   98.92              <folder name="x-ada">
   98.93 -                <file name="language.instance">
   98.94 -                    <attr name="instanceClass" stringvalue="org.netbeans.modules.ada.editor.AdaLanguage"/>
   98.95 -                </file>
   98.96 -                <file name="structure.instance">
   98.97 -                    <attr name="instanceClass" stringvalue="org.netbeans.modules.ada.editor.parser.AdaStructureScanner"/>
   98.98 -                </file>
   98.99 +                <folder name="Factories">
  98.100 +                    <file name="org-netbeans-modules-ada-editor-AdaDataLoader.instance">
  98.101 +                        <attr name="SystemFileSystem.localizingBundle" stringvalue="org.netbeans.modules.ada.editor.Bundle"/>
  98.102 +                        <attr name="SystemFileSystem.icon" urlvalue="nbresloc:/org/netbeans/modules/ada/editor/resources/icons/ada-spec-16.png"/>
  98.103 +                        <attr name="position" intvalue="99999"/>
  98.104 +<!--                        <attr name="iconBase" stringvalue="org/netbeans/modules/ada/editor/resources/icons/ada-spec-16.png"/>
  98.105 +                        <attr name="dataObjectClass" stringvalue="org.netbeans.modules.ada.editor.AdaDataObject"/>
  98.106 +                        <attr name="instanceCreate" methodvalue="org.openide.loaders.DataLoaderPool.factory"/>
  98.107 +                        <attr name="mimeType" stringvalue="text/x-ada"/>-->
  98.108 +                    </file>
  98.109 +                </folder>
  98.110              </folder>
  98.111          </folder>
  98.112      </folder>
  98.113  
  98.114 -    <!-- GSF 
  98.115 -    <folder name="GsfPlugins">
  98.116 -        <folder name="text">
  98.117 -            <folder name="x-ada">
  98.118 -                <file name="language.instance">
  98.119 -                    <attr name="instanceClass" stringvalue="org.netbeans.modules.ada.editor.AdaLanguage"/>
  98.120 -                </file>
  98.121 -                <file name="structure.instance">
  98.122 -                    <attr name="instanceClass" stringvalue="org.netbeans.modules.ada.editor.parser.AdaStructureScanner"/>
  98.123 -                </file>
  98.124 -            </folder>
  98.125 -        </folder>
  98.126 -    </folder>
  98.127 -    -->
  98.128 -    
  98.129      <!-- EDITORS -->
  98.130      <folder name="Editors">
  98.131          <folder name="text">
  98.132              <folder name="x-ada">
  98.133 -
  98.134                  <attr name="SystemFileSystem.localizingBundle" stringvalue="org.netbeans.modules.ada.editor.resources.Bundle"/>
  98.135 -
  98.136                  <file name="language.instance">
  98.137                      <attr name="instanceCreate" methodvalue="org.netbeans.modules.ada.editor.lexer.AdaTokenId.language"/>
  98.138                      <attr name="instanceOf" stringvalue="org.netbeans.api.lexer.Language"/>
  98.139                  </file>
  98.140 -
  98.141                  <folder name="FontsColors">
  98.142                      <folder name="NetBeans">
  98.143                          <folder name="Defaults">
  98.144 @@ -100,7 +154,6 @@
  98.145                          </folder>
  98.146                      </folder>
  98.147                  </folder>
  98.148 -
  98.149                  <folder name="FoldManager">
  98.150                      <file name="org-netbeans-editor-CustomFoldManager$Factory.instance"/>
  98.151                  </folder>
    99.1 --- a/ada.help/history.txt	Tue Oct 02 21:55:21 2012 -0400
    99.2 +++ b/ada.help/history.txt	Mon Oct 15 23:38:26 2012 +0200
    99.3 @@ -1,2 +1,12 @@
    99.4 +0.1.3: 11-10-2012
    99.5 +- Porting to NB7.2 and others improvements.
    99.6 +
    99.7 +0.1.2: 12-08-2010
    99.8 +- Uodated the help files for manage JVM.
    99.9 +
   99.10 +0.1.1: 13-10-2009
   99.11 +- Added the signing of the nbm file.
   99.12 +- Added the new help files.
   99.13 +
   99.14  0.1.0: 01-11-2008
   99.15  - Initial release.
   99.16 \ No newline at end of file
   100.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   100.2 +++ b/ada.help/javahelp/org/netbeans/modules/ada/help/docs/ada-platform-manager.html	Mon Oct 15 23:38:26 2012 +0200
   100.3 @@ -0,0 +1,37 @@
   100.4 +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
   100.5 +<!--       
   100.6 +*     Copyright (c) 2009 Sun Microsystems, Inc. All rights reserved.
   100.7 +*     Use is subject to license terms.
   100.8 +-->
   100.9 +<html>
  100.10 +<head>
  100.11 +<meta http-equiv="content-type" content="text/html; charset=UTF-8">
  100.12 +<title>Ada Platform Manager Dialog Box</title>
  100.13 +	<link rel="StyleSheet" href="nbdocs://org.netbeans.modules.usersguide/org/netbeans/modules/usersguide/ide.css" type="text/css">
  100.14 +</head>
  100.15 +<body>
  100.16 +<h2>Ada Platform Manager Dialog Box</h2>
  100.17 +<p> <small><a href="#seealso">See Also</a>&nbsp; </small> 
  100.18 +<p>The Ada Platform Manager is a tool for registering different versions of
  100.19 +    the Ada Development Kit and other Ada tools that your programs depend
  100.20 +    on. The  dialog box lists all of your registered Ada Develepment Kit
  100.21 +    in the left pane and lists the Ada Tools that the IDE is running on as the Default
  100.22 +    Platform. The Ada Platform Manager is able to recognize the GNAT Java Byte code compiler.
  100.23 +<p>You can open the dialog box by choosing Tools &gt; Ada Platforms.
  100.24 +<p>Once you have registered an Ada Tool, you can configure a standard project to use
  100.25 +    that Ada Tool for compilation, execution, and debugging. Go to the project's Project
  100.26 +    Properties dialog box, select the Build node, and choose the appropriate
  100.27 +    Ada Tool in the Ada Platform combo box.
  100.28 +<dl> 
  100.29 +  <dt><a name="seealso">See Also</a></dt>
  100.30 +      <dd><a href="new-ada-application.html" title="">New Ada Application</a></dd>
  100.31 +      <dd><a href="new-from-existing-ada-sources.html" title="">New Ada Application with Existing Sources</a></dd>
  100.32 +      <dd><a href="customize-project-build.html" title="">Customizing the Project Settings: Build</a></dd>
  100.33 +</dl>
  100.34 +<hr>
  100.35 +<small><a href="../../credits.html">Legal Notices</a></small> 
  100.36 +<table border="0" cellpadding="50">
  100.37 +  <tr><td>&nbsp;</td></tr>
  100.38 +</table>
  100.39 +</body>
  100.40 +</html>
   101.1 --- a/ada.help/javahelp/org/netbeans/modules/ada/help/docs/customize-project-build.html	Tue Oct 02 21:55:21 2012 -0400
   101.2 +++ b/ada.help/javahelp/org/netbeans/modules/ada/help/docs/customize-project-build.html	Mon Oct 15 23:38:26 2012 +0200
   101.3 @@ -63,36 +63,29 @@
   101.4  }
   101.5  -->
   101.6  </style>
   101.7 -    <title>Customizing the Project Settings: Run Configuration</title>
   101.8 +    <title>Customizing the Ada Project Settings: Build</title>
   101.9  </head>
  101.10    <body>
  101.11         <h2>
  101.12 -       Customizing the Project Settings: Build    </h2>
  101.13 +       Customizing the Ada Project Settings: Build    </h2>
  101.14  <p>
  101.15         <small><a href="#seealso">See Also</a></small>
  101.16      </p>
  101.17      <p>The Build panel of the Project Properties dialog box lets you lets you set the build tool for your projects:</p>
  101.18      <ul>
  101.19 -      <li><b>Ada Platform. </b>Specifies the Ada platform for building the project.</li>
  101.20 -      <li><b>Main Module. </b>Specifies the Ada main procedure.</li>
  101.21 +      <li><b>Ada Platform.</b> Specifies the Ada platform for building the project.</li>
  101.22 +      <li><b>Main Module.</b> Specifies the Ada main procedure.</li>
  101.23 +      <li><b>Build Formal.</b> Specifies the build output format. The formats for the executable are the native format of your system or java byte code format.</li>
  101.24      </ul>
  101.25    <dl>
  101.26        <dt>
  101.27           <a name="seealso">See Also</a>      </dt>
  101.28 -      <dd><a href="new-ada-application.html" title=
  101.29 -        "Configurinag a New PHP Project withough Previously Developed Sources">New Ada Application</a><a href="new-project-configure_no_sources.html" title=
  101.30 -        "Configurinag a New PHP Project without Previously Developed Sources"></a> </dd>
  101.31 -      <dd> <a href="new-from-existing-ada-sources.html" title=
  101.32 -        "Configurinag a New PHP Project withough Previously Developed Sources">New Ada Application with Existing Sources</a><a href="new-project-configure_existing_sources.html" title=
  101.33 -        "Importing Previously Developed Source Files into a New Project"></a></dd>
  101.34 -      <dd><a href="customize-project-sources.html" title=
  101.35 -        "Configurinag a New PHP Project withough Previously Developed Sources">Customizing the Project Settings: Sources</a><a href="new-project-configure_existing_sources.html" title=
  101.36 -        "Importing Previously Developed Source Files into a New Project"></a></dd>
  101.37 -      <dd><a href="customize-project-libraries.html" title=
  101.38 -        "Configurinag a New PHP Project withough Previously Developed Sources">Customizing the Project Settings: Libraries</a></dd>
  101.39 -      <dt></dt>
  101.40 -      <dd><a href="customize-project-run.html" title=
  101.41 -        "Configurinag a New PHP Project withough Previously Developed Sources">Customizing the Project Settings: Run</a></dd>
  101.42 +      <dd><a href="new-ada-application.html" title="">New Ada Application</a></dd>
  101.43 +      <dd><a href="new-from-existing-ada-sources.html" title="">New Ada Application with Existing Sources</a></dd>
  101.44 +      <dd><a href="customize-project-sources-folders.html" title="">Customizing the Project Settings: Sources Folders</a></dd>
  101.45 +      <dd><a href="customize-project-sources-naming.html" title="">Customizing the Project Settings: Sources Standards and Naming</a></dd>
  101.46 +      <dd><a href="customize-project-libraries.html" title="">Customizing the Project Settings: Libraries</a></dd>
  101.47 +      <dd><a href="customize-project-run.html" title="">Customizing the Project Settings: Run</a></dd>
  101.48        <dt></dt>
  101.49      <dd>&nbsp;</dd>
  101.50        </dl>
   102.1 --- a/ada.help/javahelp/org/netbeans/modules/ada/help/docs/customize-project-libraries.html	Tue Oct 02 21:55:21 2012 -0400
   102.2 +++ b/ada.help/javahelp/org/netbeans/modules/ada/help/docs/customize-project-libraries.html	Mon Oct 15 23:38:26 2012 +0200
   102.3 @@ -63,31 +63,24 @@
   102.4  }
   102.5  -->
   102.6  </style>
   102.7 -    <title>Customizing the Project Settings: Include Path</title>
   102.8 +    <title>Customizing the Ada Project Settings: Libraries</title>
   102.9  </head>
  102.10    <body>
  102.11      <h2>
  102.12 -       Customizing the Project Settings: Libraries    </h2>
  102.13 +       Customizing the Ada Project Settings: Libraries    </h2>
  102.14  <p>
  102.15         <small><a href="#seealso">See Also</a></small>
  102.16      </p>
  102.17 -    <p><span class="style1">THIS FEATURE IS NOT DEVELOPED</span></p>
  102.18 +    <p><span class="style1">THIS FEATURE IS NOT IMPLEMENTED</span></p>
  102.19      <dl>
  102.20        <dt>
  102.21           <a name="seealso">See Also</a>      </dt>
  102.22 -      <dd><a href="new-ada-application.html" title=
  102.23 -        "Configurinag a New PHP Project withough Previously Developed Sources">New Ada Application</a><a href="new-project-configure_no_sources.html" title=
  102.24 -        "Configurinag a New PHP Project without Previously Developed Sources"></a> </dd>
  102.25 -      <dd> <a href="new-from-existing-ada-sources.html" title=
  102.26 -        "Configurinag a New PHP Project withough Previously Developed Sources">New Ada Application with Existing Sources</a><a href="new-project-configure_existing_sources.html" title=
  102.27 -        "Importing Previously Developed Source Files into a New Project"></a></dd>
  102.28 -      <dd><a href="customize-project-sources.html" title=
  102.29 -        "Configurinag a New PHP Project withough Previously Developed Sources">Customizing the Project Settings: Sources</a></dd>
  102.30 -      <dd><a href="customize-project-build.html" title=
  102.31 -        "Configurinag a New PHP Project withough Previously Developed Sources">Customizing the Project Settings: Build</a></dd>
  102.32 -      <dt></dt>
  102.33 -      <dd><a href="customize-project-run.html" title=
  102.34 -        "Configurinag a New PHP Project withough Previously Developed Sources">Customizing the Project Settings: Run</a></dd>
  102.35 +      <dd><a href="new-ada-application.html" title="">New Ada Application</a></dd>
  102.36 +      <dd><a href="new-from-existing-ada-sources.html" title="">New Ada Application with Existing Sources</a></dd>
  102.37 +      <dd><a href="customize-project-sources-folders.html" title="">Customizing the Project Settings: Sources Folders</a></dd>
  102.38 +      <dd><a href="customize-project-sources-naming.html" title="">Customizing the Project Settings: Sources Standards and Naming</a></dd>
  102.39 +      <dd><a href="customize-project-build.html" title="">Customizing the Project Settings: Build</a></dd>
  102.40 +      <dd><a href="customize-project-run.html" title="">Customizing the Project Settings: Run</a></dd>
  102.41        <dt>&nbsp;</dt>
  102.42        <dd>&nbsp;</dd>
  102.43        </dl>
   103.1 --- a/ada.help/javahelp/org/netbeans/modules/ada/help/docs/customize-project-run.html	Tue Oct 02 21:55:21 2012 -0400
   103.2 +++ b/ada.help/javahelp/org/netbeans/modules/ada/help/docs/customize-project-run.html	Mon Oct 15 23:38:26 2012 +0200
   103.3 @@ -63,11 +63,11 @@
   103.4  }
   103.5  -->
   103.6  </style>
   103.7 -    <title>Customizing the Project Settings: Run Configuration</title>
   103.8 +    <title>Customizing the Ada Project Settings: Run</title>
   103.9  </head>
  103.10    <body>
  103.11         <h2>
  103.12 -       Customizing the Project Settings: Run    </h2>
  103.13 +       Customizing the Ada Project Settings: Run    </h2>
  103.14  <p>
  103.15         <small><a href="#seealso">See Also</a></small>
  103.16      </p>
  103.17 @@ -76,20 +76,12 @@
  103.18  <dl>
  103.19        <dt>
  103.20           <a name="seealso">See Also</a>      </dt>
  103.21 -      <dd><a href="new-ada-application.html" title=
  103.22 -        "Configurinag a New PHP Project withough Previously Developed Sources">New Ada Application</a><a href="new-project-configure_no_sources.html" title=
  103.23 -        "Configurinag a New PHP Project without Previously Developed Sources"></a> </dd>
  103.24 -      <dd> <a href="new-from-existing-ada-sources.html" title=
  103.25 -        "Configurinag a New PHP Project withough Previously Developed Sources">New Ada Application with Existing Sources</a><a href="new-project-configure_existing_sources.html" title=
  103.26 -        "Importing Previously Developed Source Files into a New Project"></a></dd>
  103.27 -      <dd><a href="customize-project-sources.html" title=
  103.28 -        "Configurinag a New PHP Project withough Previously Developed Sources">Customizing the Project Settings: Sources</a><a href="new-project-configure_existing_sources.html" title=
  103.29 -        "Importing Previously Developed Source Files into a New Project"></a></dd>
  103.30 -      <dd><a href="customize-project-libraries.html" title=
  103.31 -        "Configurinag a New PHP Project withough Previously Developed Sources">Customizing the Project Settings: Libraries</a></dd>
  103.32 -      <dt></dt>
  103.33 -      <dd><a href="customize-project-build.html" title=
  103.34 -        "Configurinag a New PHP Project withough Previously Developed Sources">Customizing the Project Settings: Build</a></dd>
  103.35 +      <dd><a href="new-ada-application.html" title="">New Ada Application</a></dd>
  103.36 +      <dd><a href="new-from-existing-ada-sources.html" title="Configurinag a New Ada Project withough Previously Developed Sources">New Ada Application with Existing Sources</a></dd>
  103.37 +      <dd><a href="customize-project-sources-folders.html" title="">Customizing the Project Settings: Sources Folders</a></dd>
  103.38 +      <dd><a href="customize-project-sources-naming.html" title="">Customizing the Project Settings: Sources Standards and Naming</a></dd>
  103.39 +      <dd><a href="customize-project-libraries.html" title="">Customizing the Project Settings: Libraries</a></dd>
  103.40 +      <dd><a href="customize-project-build.html" title="">Customizing the Project Settings: Build</a></dd>
  103.41    <dd>&nbsp;</dd>
  103.42        </dl>
  103.43  <hr>
   104.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   104.2 +++ b/ada.help/javahelp/org/netbeans/modules/ada/help/docs/customize-project-sources-folders.html	Mon Oct 15 23:38:26 2012 +0200
   104.3 @@ -0,0 +1,130 @@
   104.4 +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
   104.5 +<!--
   104.6 +DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
   104.7 +
   104.8 +Copyright 2008 Sun Microsystems, Inc. All rights reserved.
   104.9 +
  104.10 +The contents of this file are subject to the terms of either the GNU
  104.11 +General Public License Version 2 only ("GPL") or the Common
  104.12 +Development and Distribution License("CDDL") (collectively, the
  104.13 +"License"). You may not use this file except in compliance with the
  104.14 +License. You can obtain a copy of the License at
  104.15 +http://www.netbeans.org/cddl-gplv2.html
  104.16 +or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
  104.17 +specific language governing permissions and limitations under the
  104.18 +License.  When distributing the software, include this License Header
  104.19 +Notice in each file and include the License file at
  104.20 +nbbuild/licenses/CDDL-GPL-2-CP.  Sun designates this
  104.21 +particular file as subject to the "Classpath" exception as provided
  104.22 +by Sun in the GPL Version 2 section of the License file that
  104.23 +accompanied this code. If applicable, add the following below the
  104.24 +License Header, with the fields enclosed by brackets [] replaced by
  104.25 +your own identifying information:
  104.26 +"Portions Copyrighted [year] [name of copyright owner]"
  104.27 +
  104.28 +If you wish your version of this file to be governed by only the CDDL
  104.29 +or only the GPL Version 2, indicate your decision by adding
  104.30 +"[Contributor] elects to include this software in this distribution
  104.31 +under the [CDDL or GPL Version 2] license." If you do not indicate a
  104.32 +single choice of license, a recipient has the option to distribute
  104.33 +your version of this file under either the CDDL, the GPL Version 2 or
  104.34 +to extend the choice of license to its licensees as provided above.
  104.35 +However, if you add GPL Version 2 code and therefore, elected the GPL
  104.36 +Version 2 license, then the option applies only if the new code is
  104.37 +made subject to such option by the copyright holder.
  104.38 +
  104.39 +Contributor(s):
  104.40 +
  104.41 +Portions Copyrighted 2008 Sun Microsystems, Inc.
  104.42 +-->
  104.43 +<html>
  104.44 +  <head>
  104.45 +    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
  104.46 +    <link rel="stylesheet" href=
  104.47 +    "nbdocs://org.netbeans.modules.usersguide/org/netbeans/modules/usersguide/ide.css" type=
  104.48 +    "text/css">
  104.49 +    <meta content="Helen" name="generator">
  104.50 +<style type="text/css">
  104.51 +<!--
  104.52 +.comment {
  104.53 +  color: blue;
  104.54 +}
  104.55 +.change-bar {
  104.56 +  border-color: black;
  104.57 +  border-left-style: solid;
  104.58 +  border-left: thin;
  104.59 +  padding-left: 6px;
  104.60 +}
  104.61 +.deleted {
  104.62 +  text-decoration: line-through;
  104.63 +}
  104.64 +.style1 {
  104.65 +	color: #FF0000;
  104.66 +	font-weight: bold;
  104.67 +}
  104.68 +-->
  104.69 +</style>
  104.70 +    <title>Customizing the Ada Project Settings: Sources Folders</title>
  104.71 +  </head>
  104.72 +  <body>
  104.73 +    <h2>
  104.74 +       Customizing the Ada Project Settings: Sources Folders</h2>
  104.75 +<p>
  104.76 +       <small><a href="#seealso">See Also</a></small></p>
  104.77 +<p>The Sources panel enables you to view the location of the project folder,
  104.78 +	manage source and test package folders, as well as set the source level of
  104.79 +	the packages which the IDE will use.
  104.80 +You open the Ada Project Properties dialog box by right-clicking 
  104.81 +  any and choosing Properties.
  104.82 +<!--explain source level?-->
  104.83 +</p>
  104.84 +<p>Use the buttons on the right side of the panel to add, remove, and change
  104.85 +  the order of classpath elements. 
  104.86 +<ul>
  104.87 +  <li>The source root cannot already exist in another IDE project.
  104.88 +  <li>The source root cannot already be added to another compilation unit of the same project. For example, a source root that is registered under Test Packages cannot be added to the list of Source Packages.
  104.89 +  <li>If you have a source root that needs to be used by several projects, you should create a separate project for the source root and set up compilation dependencies between the projects.
  104.90 +</ul>
  104.91 +<p><b>Test Packages Folders</b></p>
  104.92 +<p class="style1">THIS FEATURE IS NOT IMPLEMENTED</p>
  104.93 +<p>You can use this pane to specify the folder that the IDE uses when creating Ada Unit tests. 
  104.94 +  By default, when you create a project the IDE creates a test packages folder called <tt>test</tt> with the label Test Packages.
  104.95 +  Use the buttons to the right of the list to remove the selected folder or to specify the folder that the IDE uses when creating tests.
  104.96 +  You can also modify the Label field to change how the folder is displayed in the Projects window.</p>
  104.97 +<p>To create Ada Unit tests with the IDE, a project must have a test packages folder.
  104.98 +  If the test packages folder for your project is missing or unavailable, you can create a new folder in your project and 
  104.99 +  then use this pane to designate the new folder as the test packages folder.</p>
 104.100 +<dl>
 104.101 +      <dt>
 104.102 +         <a name="seealso">See Also</a>      </dt>
 104.103 +      <dd>&nbsp;</dd>
 104.104 +      <dd><a href="new-ada-application.html" title="">New Ada Application</a></dd>
 104.105 +      <dd><a href="new-from-existing-ada-sources.html" title="">New Ada Application with Existing Sources</a></dd>
 104.106 +      <dd><a href="customize-project-sources-naming.html" title="">Customizing the Project Settings: Sources Standards and Naming</a></dd>
 104.107 +      <dd><a href="customize-project-libraries.html" title="">Customizing the Project Settings: Libraries</a></dd>
 104.108 +      <dd><a href="customize-project-build.html" title="">Customizing the Project Settings: Build</a></dd>
 104.109 +      <dd><a href="customize-project-run.html" title="">Customizing the Project Settings: Run</a></dd>
 104.110 +</dl>
 104.111 +<hr>
 104.112 +    <p>
 104.113 +       <small><a href="credits.html">Legal Notices</a></small>
 104.114 +    </p>
 104.115 +    <table border="0" cellpadding="150">
 104.116 +      <tr>
 104.117 +        <td>&nbsp;
 104.118 +          
 104.119 +        </td>
 104.120 +      </tr>
 104.121 +      <tr>
 104.122 +        <td>&nbsp;
 104.123 +          
 104.124 +        </td>
 104.125 +      </tr>
 104.126 +      <tr>
 104.127 +        <td>&nbsp;
 104.128 +          
 104.129 +        </td>
 104.130 +      </tr>
 104.131 +    </table>
 104.132 +  </body>
 104.133 +</html>
   105.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   105.2 +++ b/ada.help/javahelp/org/netbeans/modules/ada/help/docs/customize-project-sources-naming.html	Mon Oct 15 23:38:26 2012 +0200
   105.3 @@ -0,0 +1,121 @@
   105.4 +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
   105.5 +<!--
   105.6 +DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
   105.7 +
   105.8 +Copyright 2008 Sun Microsystems, Inc. All rights reserved.
   105.9 +
  105.10 +The contents of this file are subject to the terms of either the GNU
  105.11 +General Public License Version 2 only ("GPL") or the Common
  105.12 +Development and Distribution License("CDDL") (collectively, the
  105.13 +"License"). You may not use this file except in compliance with the
  105.14 +License. You can obtain a copy of the License at
  105.15 +http://www.netbeans.org/cddl-gplv2.html
  105.16 +or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
  105.17 +specific language governing permissions and limitations under the
  105.18 +License.  When distributing the software, include this License Header
  105.19 +Notice in each file and include the License file at
  105.20 +nbbuild/licenses/CDDL-GPL-2-CP.  Sun designates this
  105.21 +particular file as subject to the "Classpath" exception as provided
  105.22 +by Sun in the GPL Version 2 section of the License file that
  105.23 +accompanied this code. If applicable, add the following below the
  105.24 +License Header, with the fields enclosed by brackets [] replaced by
  105.25 +your own identifying information:
  105.26 +"Portions Copyrighted [year] [name of copyright owner]"
  105.27 +
  105.28 +If you wish your version of this file to be governed by only the CDDL
  105.29 +or only the GPL Version 2, indicate your decision by adding
  105.30 +"[Contributor] elects to include this software in this distribution
  105.31 +under the [CDDL or GPL Version 2] license." If you do not indicate a
  105.32 +single choice of license, a recipient has the option to distribute
  105.33 +your version of this file under either the CDDL, the GPL Version 2 or
  105.34 +to extend the choice of license to its licensees as provided above.
  105.35 +However, if you add GPL Version 2 code and therefore, elected the GPL
  105.36 +Version 2 license, then the option applies only if the new code is
  105.37 +made subject to such option by the copyright holder.
  105.38 +
  105.39 +Contributor(s):
  105.40 +
  105.41 +Portions Copyrighted 2008 Sun Microsystems, Inc.
  105.42 +-->
  105.43 +<html>
  105.44 +  <head>
  105.45 +    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
  105.46 +    <link rel="stylesheet" href=
  105.47 +    "nbdocs://org.netbeans.modules.usersguide/org/netbeans/modules/usersguide/ide.css" type=
  105.48 +    "text/css">
  105.49 +    <meta content="Helen" name="generator">
  105.50 +<style type="text/css">
  105.51 +<!--
  105.52 +.comment {
  105.53 +  color: blue;
  105.54 +}
  105.55 +.change-bar {
  105.56 +  border-color: black;
  105.57 +  border-left-style: solid;
  105.58 +  border-left: thin;
  105.59 +  padding-left: 6px;
  105.60 +}
  105.61 +.deleted {
  105.62 +  text-decoration: line-through;
  105.63 +}
  105.64 +.style1 {
  105.65 +	color: #FF0000;
  105.66 +	font-weight: bold;
  105.67 +}
  105.68 +-->
  105.69 +</style>
  105.70 +    <title>Customizing the Ada Project Settings: Sources Standards and Naming</title>
  105.71 +  </head>
  105.72 +  <body>
  105.73 +    <h2>
  105.74 +       Customizing the Ada Project Settings: Sources Standards and Naming</h2>
  105.75 +<p>
  105.76 +       <small><a href="#seealso">See Also</a></small></p>
  105.77 +    <p>The Build panel of the Project Properties dialog box lets you lets you set the Standards and Naming for your projects:</p>
  105.78 +    <p>Standards:</p>
  105.79 +    <ul>
  105.80 +      <li><b>Ada Dialects.</b> Specifies the Ada dialects used for your project <span class="style1">(ONLY ADA95 IS IMPLEMENTED)</span>.</li>
  105.81 +      <li><b>Ada restrictions.</b> Specifies the Ada restrictions used for your project <span class="style1">(THIS FEATURE IS NOT IMPLEMENTED)</span>.</li>
  105.82 +    </ul>
  105.83 +    <p>File Naming:</p>
  105.84 +    <ul>
  105.85 +      <li><b>Package specification.</b> Specifies the rules for file naming for package specification.</li>
  105.86 +      <li><b>Package body.</b> Specifies the rules for file naming for package body.</li>
  105.87 +      <li><b>Separate.</b> Specifies the rules for file naming for separates.</li>
  105.88 +    </ul>
  105.89 +<dl>
  105.90 +      <dt>
  105.91 +         <a name="seealso">See Also</a>      </dt>
  105.92 +      <dd>&nbsp;</dd>
  105.93 +      <dd><a href="new-ada-application.html" title="">New Ada Application</a></dd>
  105.94 +      <dd><a href="new-from-existing-ada-sources.html" title="">New Ada Application with Existing Sources</a></dd>
  105.95 +      <dd><a href="customize-project-sources-folders.html" title="">Customizing the Project Settings: Sources Folders</a></dd>
  105.96 +      <dd><a href="customize-project-libraries.html" title="">Customizing the Project Settings: Libraries</a></dd>
  105.97 +      <dd><a href="customize-project-build.html" title="">Customizing the Project Settings: Build</a></dd>
  105.98 +      <dd><a href="customize-project-run.html" title="">Customizing the Project Settings: Run</a></dd>
  105.99 +      <dt></dt>
 105.100 +      <dt>&nbsp;</dt>
 105.101 +</dl>
 105.102 +<hr>
 105.103 +    <p>
 105.104 +       <small><a href="credits.html">Legal Notices</a></small>
 105.105 +    </p>
 105.106 +    <table border="0" cellpadding="150">
 105.107 +      <tr>
 105.108 +        <td>&nbsp;
 105.109 +          
 105.110 +        </td>
 105.111 +      </tr>
 105.112 +      <tr>
 105.113 +        <td>&nbsp;
 105.114 +          
 105.115 +        </td>
 105.116 +      </tr>
 105.117 +      <tr>
 105.118 +        <td>&nbsp;
 105.119 +          
 105.120 +        </td>
 105.121 +      </tr>
 105.122 +    </table>
 105.123 +  </body>
 105.124 +</html>
   106.1 --- a/ada.help/javahelp/org/netbeans/modules/ada/help/docs/customize-project-sources.html	Tue Oct 02 21:55:21 2012 -0400
   106.2 +++ b/ada.help/javahelp/org/netbeans/modules/ada/help/docs/customize-project-sources.html	Mon Oct 15 23:38:26 2012 +0200
   106.3 @@ -64,11 +64,11 @@
   106.4  }
   106.5  -->
   106.6  </style>
   106.7 -    <title>Customizing the Project Settings: Source Files Location</title>
   106.8 +    <title>Customizing the Ada Project Settings: Source Files Location</title>
   106.9    </head>
  106.10    <body>
  106.11      <h2>
  106.12 -       Customizing the Project Settings: Sources</h2>
  106.13 +       Customizing the Ada Project Settings: Sources</h2>
  106.14  <p>
  106.15         <small><a href="#seealso">See Also</a></small></p>
  106.16  <p>The Sources panel enables you to view the location of the project folder,
   107.1 --- a/ada.help/javahelp/org/netbeans/modules/ada/help/docs/findUsages-CSH.html	Tue Oct 02 21:55:21 2012 -0400
   107.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   107.3 @@ -1,91 +0,0 @@
   107.4 -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
   107.5 -<!--
   107.6 -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
   107.7 -
   107.8 -Copyright 2008 Sun Microsystems, Inc. All rights reserved.
   107.9 -
  107.10 -The contents of this file are subject to the terms of either the GNU
  107.11 -General Public License Version 2 only ("GPL") or the Common
  107.12 -Development and Distribution License("CDDL") (collectively, the
  107.13 -"License"). You may not use this file except in compliance with the
  107.14 -License. You can obtain a copy of the License at
  107.15 -http://www.netbeans.org/cddl-gplv2.html
  107.16 -or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
  107.17 -specific language governing permissions and limitations under the
  107.18 -License.  When distributing the software, include this License Header
  107.19 -Notice in each file and include the License file at
  107.20 -nbbuild/licenses/CDDL-GPL-2-CP.  Sun designates this
  107.21 -particular file as subject to the "Classpath" exception as provided
  107.22 -by Sun in the GPL Version 2 section of the License file that
  107.23 -accompanied this code. If applicable, add the following below the
  107.24 -License Header, with the fields enclosed by brackets [] replaced by
  107.25 -your own identifying information:
  107.26 -"Portions Copyrighted [year] [name of copyright owner]"
  107.27 -
  107.28 -If you wish your version of this file to be governed by only the CDDL
  107.29 -or only the GPL Version 2, indicate your decision by adding
  107.30 -"[Contributor] elects to include this software in this distribution
  107.31 -under the [CDDL or GPL Version 2] license." If you do not indicate a
  107.32 -single choice of license, a recipient has the option to distribute
  107.33 -your version of this file under either the CDDL, the GPL Version 2 or
  107.34 -to extend the choice of license to its licensees as provided above.
  107.35 -However, if you add GPL Version 2 code and therefore, elected the GPL
  107.36 -Version 2 license, then the option applies only if the new code is
  107.37 -made subject to such option by the copyright holder.
  107.38 -
  107.39 -Contributor(s):
  107.40 -
  107.41 -Portions Copyrighted 2008 Sun Microsystems, Inc.
  107.42 --->
  107.43 -<html>
  107.44 -    <head>
  107.45 -        <title>Find Usages Dialog Box</title>
  107.46 -        <link rel="StyleSheet" href="nbdocs://org.netbeans.modules.usersguide/org/netbeans/modules/usersguide/ide.css" type="text/css">
  107.47 -    </head>
  107.48 -    <body>
  107.49 -        <h2>Find Usages Dialog Box</h2>
  107.50 -        <p>Use this dialog box to specify search options for the Find Usages command.
  107.51 -You can use the Find Usages command to determine all of the places a class, function,
  107.52 -        or variable is used in your project's source code. </p>
  107.53 -        
  107.54 -        
  107.55 -	
  107.56 -
  107.57 -        <p>The Find Usages dialog box displays the following option for all types of identifiers:</p>
  107.58 -        <ul>
  107.59 -            <li><b>Search in Comments.</b> If selected, occurrences of the identifier that 
  107.60 -            appear in code comments are also displayed.</li>
  107.61 -        </ul>
  107.62 -        <p>For classes and interfaces, the Find Usages dialog box displays the following 
  107.63 -        additional options:</p>
  107.64 -        <ul>
  107.65 -            <li><b>Find Usages.</b> If selected, all usages of the class are displayed.</li>
  107.66 -            <li><b>Find All Subtypes.</b> If selected, usages of all subtypes of the class, 
  107.67 -including subtypes of subtypes, are displayed. Usages of the class itself are not displayed.</li>
  107.68 -            <li><b>Find Direct Subtypes Only.</b> If selected, only usages of direct subtypes 
  107.69 -            are displayed. Subtypes of those subtypes are ignored. </li>
  107.70 -        </ul>
  107.71 -
  107.72 -        <p>For functions, the Find Usages dialog box sometimes displays the following additional options:</p>
  107.73 -        <ul>
  107.74 -          <li><b>Find Usages.</b> If selected, all usages of that 
  107.75 -        specific function in your project are displayed.</li>
  107.76 -          <li><b>Find Overriding Functions.</b> If selected, the output will show every usage 
  107.77 -        of a function that overrides this function in your project.</li>
  107.78 -          <li><b>Search from Base Class.</b> This option is only relevant if the function for which you 
  107.79 -are finding usages overrides another function. If selected, the output 
  107.80 -        will show every usage of that base function.</li>
  107.81 -        </ul>
  107.82 -        <ul class="note">
  107.83 -            <li>The Find Usages command is 
  107.84 -            distinct from the Find command, because Find Usages returns only occurrences of 
  107.85 -            the specified identifier in PHP source code. The Find command returns any matching string 
  107.86 -            that you specify in any type of file.</li>
  107.87 -        </ul>
  107.88 -        <hr>
  107.89 -        <small><a href="credits.html">Legal Notices</a></small> 
  107.90 -<table border="0" cellpadding="50">
  107.91 -<tr><td>&nbsp;</td></tr>
  107.92 -</table>
  107.93 -    </body>
  107.94 -</html>
   108.1 --- a/ada.help/javahelp/org/netbeans/modules/ada/help/docs/help-hs.xml	Tue Oct 02 21:55:21 2012 -0400
   108.2 +++ b/ada.help/javahelp/org/netbeans/modules/ada/help/docs/help-hs.xml	Mon Oct 15 23:38:26 2012 +0200
   108.3 @@ -40,22 +40,22 @@
   108.4  <!DOCTYPE helpset PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp HelpSet Version 2.0//EN"
   108.5                           "http://java.sun.com/products/javahelp/helpset_2_0.dtd">
   108.6  <helpset version="2.0">
   108.7 -	<title>Help for NetBeans IDE for Ada</title>
   108.8 -	<maps>
   108.9 -		<homeID>org.netbeans.modules.ada.help.about</homeID>
  108.10 -		<mapref location="help-map.xml"/>
  108.11 -	</maps>
  108.12 -	<view mergetype="javax.help.AppendMerge">
  108.13 -		<name>TOC</name>
  108.14 -		<label>Table of Contents</label>
  108.15 -		<type>javax.help.TOCView</type>
  108.16 -		<data>help-toc.xml</data>
  108.17 -	</view>
  108.18 +    <title>Help for NetBeans IDE for Ada</title>
  108.19 +    <maps>
  108.20 +        <homeID>org.netbeans.modules.ada.help.about</homeID>
  108.21 +        <mapref location="help-map.xml"/>
  108.22 +    </maps>
  108.23 +    <view mergetype="javax.help.AppendMerge">
  108.24 +        <name>TOC</name>
  108.25 +        <label>Table of Contents</label>
  108.26 +        <type>javax.help.TOCView</type>
  108.27 +        <data>help-toc.xml</data>
  108.28 +    </view>
  108.29  
  108.30 -	<view>
  108.31 -		<name>Search</name>
  108.32 -		<label>Search</label>
  108.33 -		<type>javax.help.SearchView</type>
  108.34 -		<data engine="com.sun.java.help.search.DefaultSearchEngine">JavaHelpSearch</data>
  108.35 -	</view>
  108.36 +    <view>
  108.37 +        <name>Search</name>
  108.38 +        <label>Search</label>
  108.39 +        <type>javax.help.SearchView</type>
  108.40 +        <data engine="com.sun.java.help.search.DefaultSearchEngine">JavaHelpSearch</data>
  108.41 +    </view>
  108.42  </helpset>
   109.1 --- a/ada.help/javahelp/org/netbeans/modules/ada/help/docs/help-map.xml	Tue Oct 02 21:55:21 2012 -0400
   109.2 +++ b/ada.help/javahelp/org/netbeans/modules/ada/help/docs/help-map.xml	Mon Oct 15 23:38:26 2012 +0200
   109.3 @@ -40,11 +40,13 @@
   109.4  <!DOCTYPE map PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp Map Version 2.0//EN"
   109.5                       "http://java.sun.com/products/javahelp/map_2_0.dtd">
   109.6  <map version="1.0">
   109.7 -	<mapID target="org.netbeans.modules.ada.help.about" url="help-about.html"/>
   109.8 -	<mapID target="org.netbeans.modules.ada.project.ui.wizards.PanelConfigureProject.NEW" url="new-ada-application.html"/>
   109.9 -	<mapID target="org.netbeans.modules.ada.project.ui.wizards.PanelConfigureProject.EXISTING" url="new-from-existing-ada-sources.html"/>
  109.10 -	<mapID target="org.netbeans.modules.ada.project.ui.properties.CustomizerSources" url="customize-project-sources.html"/>
  109.11 -	<mapID target="org.netbeans.modules.ada.project.ui.properties.CustomizerLibrariesPath" url="customize-project-libraries.html"/>
  109.12 -	<mapID target="org.netbeans.modules.ada.project.ui.properties.CustomizerBuild" url="customize-project-build.html"/>
  109.13 -	<mapID target="org.netbeans.modules.ada.project.ui.properties.CustomizerRun" url="customize-project-run.html"/>
  109.14 +    <mapID target="org.netbeans.modules.ada.help.about" url="help-about.html"/>
  109.15 +    <mapID target="org.netbeans.modules.ada.platform.ui.PlatformsCustomizer" url="ada-platform-manager.html"/>
  109.16 +    <mapID target="org.netbeans.modules.ada.project.ui.wizards.PanelConfigureProject.NEW" url="new-ada-application.html"/>
  109.17 +    <mapID target="org.netbeans.modules.ada.project.ui.wizards.PanelConfigureProject.EXISTING" url="new-from-existing-ada-sources.html"/>
  109.18 +    <mapID target="org.netbeans.modules.ada.project.options.ui.AdaGeneralOptionsPanel" url="customize-project-sources-naming.html"/>
  109.19 +    <mapID target="org.netbeans.modules.ada.project.ui.properties.CustomizerSources" url="customize-project-sources-folders.html"/>
  109.20 +    <mapID target="org.netbeans.modules.ada.project.ui.properties.CustomizerLibrariesPath" url="customize-project-libraries.html"/>
  109.21 +    <mapID target="org.netbeans.modules.ada.project.ui.properties.CustomizerBuild" url="customize-project-build.html"/>
  109.22 +    <mapID target="org.netbeans.modules.ada.project.ui.properties.CustomizerRun" url="customize-project-run.html"/>
  109.23  </map>
   110.1 --- a/ada.help/javahelp/org/netbeans/modules/ada/help/docs/help-toc.xml	Tue Oct 02 21:55:21 2012 -0400
   110.2 +++ b/ada.help/javahelp/org/netbeans/modules/ada/help/docs/help-toc.xml	Mon Oct 15 23:38:26 2012 +0200
   110.3 @@ -40,13 +40,15 @@
   110.4  <!DOCTYPE toc PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp TOC Version 2.0//EN"
   110.5                       "http://java.sun.com/products/javahelp/toc_2_0.dtd">
   110.6  <toc version="2.0">
   110.7 -	<tocitem text="Ada Development" expand="false">
   110.8 -		<tocitem text="About Ada Development in the NetBeans IDE" target="org.netbeans.modules.ada.help.about" />
   110.9 -		<tocitem text="New Ada Application" target="org.netbeans.modules.ada.project.ui.wizards.PanelConfigureProject.NEW" />
  110.10 -		<tocitem text="New Ada Application with Existing Sources" target="org.netbeans.modules.ada.project.ui.wizards.PanelConfigureProject.EXISTING" />
  110.11 -		<tocitem text="Customizing the Project Settings: Sources" target="org.netbeans.modules.ada.project.ui.properties.CustomizerSources" />
  110.12 -		<tocitem text="Customizing the Project Settings: Libraries" target="org.netbeans.modules.ada.project.ui.properties.CustomizerLibrariesPath" />
  110.13 -		<tocitem text="Customizing the Project Settings: Build" target="org.netbeans.modules.ada.project.ui.properties.CustomizerBuild" />
  110.14 -		<tocitem text="Customizing the Project Settings: Run" target="org.netbeans.modules.ada.project.ui.properties.CustomizerRun" />
  110.15 -	</tocitem>
  110.16 +    <tocitem text="Ada Development" expand="false">
  110.17 +        <tocitem text="About Ada Development in the NetBeans IDE" target="org.netbeans.modules.ada.help.about" />
  110.18 +        <tocitem text="Ada Platform Manager Dialog Box" target="org.netbeans.modules.ada.platform.ui.PlatformsCustomizer" />
  110.19 +        <tocitem text="New Ada Application" target="org.netbeans.modules.ada.project.ui.wizards.PanelConfigureProject.NEW" />
  110.20 +        <tocitem text="New Ada Application with Existing Sources" target="org.netbeans.modules.ada.project.ui.wizards.PanelConfigureProject.EXISTING" />
  110.21 +        <tocitem text="Customizing the Project Settings: Sources Standards and Naming" target="org.netbeans.modules.ada.project.options.ui.AdaGeneralOptionsPanel" />
  110.22 +        <tocitem text="Customizing the Project Settings: Sources Folders" target="org.netbeans.modules.ada.project.ui.properties.CustomizerSources" />
  110.23 +        <tocitem text="Customizing the Project Settings: Libraries" target="org.netbeans.modules.ada.project.ui.properties.CustomizerLibrariesPath" />
  110.24 +        <tocitem text="Customizing the Project Settings: Build" target="org.netbeans.modules.ada.project.ui.properties.CustomizerBuild" />
  110.25 +        <tocitem text="Customizing the Project Settings: Run" target="org.netbeans.modules.ada.project.ui.properties.CustomizerRun" />
  110.26 +    </tocitem>
  110.27  </toc>
   111.1 --- a/ada.help/javahelp/org/netbeans/modules/ada/help/docs/new-ada-application.html	Tue Oct 02 21:55:21 2012 -0400
   111.2 +++ b/ada.help/javahelp/org/netbeans/modules/ada/help/docs/new-ada-application.html	Mon Oct 15 23:38:26 2012 +0200
   111.3 @@ -60,10 +60,10 @@
   111.4  }
   111.5  -->
   111.6  </style>
   111.7 -    <title>New PHP Project without Previously Developed Sources: Configure</title>
   111.8 +    <title>New Ada Application</title>
   111.9    </head>
  111.10    <body>
  111.11 -    <h2>New  Ada Application</h2>
  111.12 +    <h2>New Ada Application</h2>
  111.13    <p>
  111.14      <small><a href="#seealso">See Also</a></small></p>
  111.15  <p>The New Ada Application wizard enables you to create a new with a main class. 
   112.1 --- a/ada.help/javahelp/org/netbeans/modules/ada/help/docs/new-from-existing-ada-sources.html	Tue Oct 02 21:55:21 2012 -0400
   112.2 +++ b/ada.help/javahelp/org/netbeans/modules/ada/help/docs/new-from-existing-ada-sources.html	Mon Oct 15 23:38:26 2012 +0200
   112.3 @@ -60,18 +60,18 @@
   112.4  }
   112.5  -->
   112.6  </style>
   112.7 -    <title>New PHP Project without Previously Developed Sources: Run Configurations</title>
   112.8 +    <title>New Ada Application with Existing Sources</title>
   112.9    </head>
  112.10    <body>
  112.11      <h2>New Ada Application with Existing Sources</h2>
  112.12  <p>
  112.13         <small><a href="#seealso">See Also</a></small></p>
  112.14 -<p>The New Java Project with Existing Sources wizard enables you to create a new from an existing Java SE source folder. You open the wizard by 
  112.15 -  opening the New Project wizard and selecting the Java Application with Existing Sources template from the General category.</p>
  112.16 +<p>The New Ada Project with Existing Sources wizard enables you to create a new from an existing Ada source folder. You open the wizard by
  112.17 +  opening the New Project wizard and selecting the Ada Application with Existing Sources template from the General category.</p>
  112.18  <p>In the Name and Location page, you have to set the following properties: 
  112.19  <ul>
  112.20    <li><b>Project Name. </b>Specifies the display name of the project.</li>
  112.21 -  <li><b>Project Location. </b>Specifies the folder where you want to store the 
  112.22 +  <li><b>Project Folder. </b>Specifies the folder where you want to store the
  112.23      project metadata and source code. You can place the project folder in the 
  112.24      source folder or keep it in a separate location.</li>
  112.25    <li><b>Set as Main Project.</b> Sets the newly created project as the main 
   113.1 --- a/ada.help/manifest.mf	Tue Oct 02 21:55:21 2012 -0400
   113.2 +++ b/ada.help/manifest.mf	Mon Oct 15 23:38:26 2012 +0200
   113.3 @@ -3,5 +3,5 @@
   113.4  OpenIDE-Module-Layer: org/netbeans/modules/ada/help/layer.xml
   113.5  OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/ada/help/Bundle.properties
   113.6  OpenIDE-Module-Requires: org.netbeans.api.javahelp.Help
   113.7 -OpenIDE-Module-Specification-Version: 0.1.0
   113.8 +OpenIDE-Module-Specification-Version: 0.1.3
   113.9  AutoUpdate-Show-In-Client: false
   114.1 --- a/ada.help/nbproject/project.properties	Tue Oct 02 21:55:21 2012 -0400
   114.2 +++ b/ada.help/nbproject/project.properties	Mon Oct 15 23:38:26 2012 +0200
   114.3 @@ -1,5 +1,7 @@
   114.4 -javac.source=1.5
   114.5 +javac.source=1.6
   114.6  javac.compilerargs=-Xlint -Xlint:-serial
   114.7  javahelp.hs=adahelp.hs
   114.8  nbm.homepage=http://wiki.netbeans.org/Ada
   114.9  nbm.module.author=Andrea Lucarelli
  114.10 +keystore=nbproject/private/keystore
  114.11 +nbm_alias=nbada
   115.1 Binary file ada.kit/ada-nbms.zip has changed
   116.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   116.2 +++ b/ada.kit/ada-nbms/history.txt	Mon Oct 15 23:38:26 2012 +0200
   116.3 @@ -0,0 +1,65 @@
   116.4 +0.2.3: 11-10-2012
   116.5 +- Porting to NB7.2 and others improvements.
   116.6 +
   116.7 +0.2.2: 14-08-2010
   116.8 +- Migrate to NB6.9
   116.9 +- Fixed minor issues.
  116.10 +
  116.11 +0.2.1: 12-08-2010
  116.12 +- Added JVM compiler support.
  116.13 +- Migrate to NB6.8
  116.14 +
  116.15 +0.2.0: 13-10-2009
  116.16 +- Added the signing of the nbm files.
  116.17 +- Added the new help files.
  116.18 +- Fixed the issue http://sourceforge.net/tracker/?func=detail&aid=2872967&group_id=248853&atid=1126624.
  116.19 +
  116.20 +0.1.9: 01-10-2009
  116.21 +- Migrates from GSF to CSL for new Parsing & Indexing API.
  116.22 +- Added improvements on ast parser.
  116.23 +- Improvements on the GPR file management.
  116.24 +- Sends of the arguments when the action RUN is invoked
  116.25 +- Ada files naming management (options and project properties).
  116.26 +- Fixed https://sourceforge.net/tracker/?func=detail&aid=2868718&group_id=248853&atid=1126624.
  116.27 +- Fixed https://sourceforge.net/tracker/?func=detail&aid=2863317&group_id=248853&atid=1126624.
  116.28 +
  116.29 +0.1.8: 13-09-2009
  116.30 +- Added improvements on ast parser, navigator, instant renamer.
  116.31 +- Added others AST nodes.
  116.32 +- Added improvements for gpr handling.
  116.33 +- Minor changes.
  116.34 +
  116.35 +0.1.7: 01-02-2009
  116.36 +- Fixed ada generic declaration.
  116.37 +- Added improvements on ast parser, navigator, instant renamer.
  116.38 +- Added others AST nodes.
  116.39 +- Added search into environment path variable for autodetect ada platform.
  116.40 +- Fixed the manage clean/build/run actions.
  116.41 +
  116.42 +0.1.6: 05-01-2009
  116.43 +Note: These corrections have been added thanks to comments posted by comp.lang.ada users --> http://groups.google.it/group/comp.lang.ada/browse_thread/thread/5bcecfde044a119d
  116.44 +- Fixed string and char literal recognition.
  116.45 +- Fixed new ada platform and autodetect in linux system.
  116.46 +- Fixed gpr template file for linux system.
  116.47 +- Fixed project actions for linux systems.
  116.48 +
  116.49 +0.1.5: 28-12-2008
  116.50 +- Added improvements on ast parser, indexer and navigator.
  116.51 +- Added GNAT Project handler.
  116.52 +- Added GNAT Ada Platforn autodetect. Tested only windows system.
  116.53 +- Updated project actions.
  116.54 +
  116.55 +0.1.4: 19-12-2008
  116.56 +- Added improvements on ast parser, indexer and navigator.
  116.57 +
  116.58 +0.1.3: 19-11-2008
  116.59 +- Adde initial instant renamer, indexer, occurences finder and navigator.
  116.60 +
  116.61 +0.1.2: 17-11-2008
  116.62 +- Added initial indent, formatting, code folding and semantic analyzer.
  116.63 +
  116.64 +0.1.1: 09-11-2008
  116.65 +- Added initial version of Build/Clean actions (tested only windows system) and add help set for Ada Project. Remove previous Ada Platform configured with the previous plug-in version.
  116.66 +
  116.67 +0.1.0: 31-10-2008
  116.68 +- Alpha release.
  116.69 \ No newline at end of file
   117.1 Binary file ada.kit/ada-nbms/org-netbeans-modules-ada-editor.nbm has changed
   118.1 Binary file ada.kit/ada-nbms/org-netbeans-modules-ada-help.nbm has changed
   119.1 Binary file ada.kit/ada-nbms/org-netbeans-modules-ada-kit.nbm has changed
   120.1 Binary file ada.kit/ada-nbms/org-netbeans-modules-ada-options.nbm has changed
   121.1 Binary file ada.kit/ada-nbms/org-netbeans-modules-ada-platform.nbm has changed
   122.1 Binary file ada.kit/ada-nbms/org-netbeans-modules-ada-project.nbm has changed
   123.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   123.2 +++ b/ada.kit/ada-nbms/planned-features.txt	Mon Oct 15 23:38:26 2012 +0200
   123.3 @@ -0,0 +1,1 @@
   123.4 +See http://wiki.netbeans.org/Ada for more details.
   124.1 --- a/ada.kit/build.xml	Tue Oct 02 21:55:21 2012 -0400
   124.2 +++ b/ada.kit/build.xml	Mon Oct 15 23:38:26 2012 +0200
   124.3 @@ -9,37 +9,38 @@
   124.4          <ant dir="../ada.editor" inheritAll="false" target="clean"/>
   124.5          <ant dir="../ada.help" inheritAll="false" target="clean"/>
   124.6          <ant dir="../ada.options" inheritAll="false" target="clean"/>
   124.7 -        <ant dir="." inheritAll="false" target="clean"/>
   124.8 +        <ant target="clean"/>
   124.9      </target>
  124.10  
  124.11      <target name="ada-build" description="Builds all the modules constituting the Ada support">
  124.12 -        <ant dir="../ada.platform" inheritAll="false" target="netbeans"/>
  124.13 -        <ant dir="../ada.project" inheritAll="false" target="netbeans"/>
  124.14 -        <ant dir="../ada.editor" inheritAll="false" target="netbeans"/>
  124.15 -        <ant dir="../ada.help" inheritAll="false" target="netbeans"/>
  124.16 -        <ant dir="../ada.options" inheritAll="false" target="netbeans"/>
  124.17 -        <ant dir="." inheritAll="false" target="netbeans"/>
  124.18 +        <ant dir="../ada.platform"/>
  124.19 +        <ant dir="../ada.project"/>
  124.20 +        <ant dir="../ada.editor"/>
  124.21 +        <ant dir="../ada.help"/>
  124.22 +        <ant dir="../ada.options"/>
  124.23 +        <antcall target="netbeans"/>
  124.24      </target>
  124.25  
  124.26      <target name="ada-nbm" description="Creates nbm archives for all Ada modules">
  124.27 -        <ant dir="../ada.platform" inheritAll="false" target="nbm"/>
  124.28 -        <ant dir="../ada.project" inheritAll="false" target="nbm"/>
  124.29 -        <ant dir="../ada.editor" inheritAll="false" target="nbm"/>
  124.30 -        <ant dir="../ada.help" inheritAll="false" target="nbm"/>
  124.31 -        <ant dir="../ada.options" inheritAll="false" target="nbm"/>
  124.32 -        <ant dir="." inheritAll="false" target="nbm"/>
  124.33 -        <move todir="." flatten="true">
  124.34 +        <ant dir="../ada.platform" target="nbm"/>
  124.35 +        <ant dir="../ada.project" target="nbm"/>
  124.36 +        <ant dir="../ada.editor" target="nbm"/>
  124.37 +        <ant dir="../ada.help" target="nbm"/>
  124.38 +        <ant dir="../ada.options" target="nbm"/>
  124.39 +        <ant dir="../ada.kit" target="nbm"/>
  124.40 +        <antcall target="netbeans"/>
  124.41 +        <copy todir="." flatten="true">
  124.42              <fileset dir="..">
  124.43                  <include name="ada.*/**/*.nbm"/>
  124.44              </fileset>
  124.45 -        </move>
  124.46 +        </copy>
  124.47          <zip destfile="ada-nbms.zip">
  124.48 -			<zipfileset dir=".">
  124.49 -				<include name="*.nbm"/>
  124.50 -				<include name="history.txt"/>
  124.51 -				<include name="planned-features.txt"/>
  124.52 -			</zipfileset>
  124.53 -		</zip>
  124.54 +            <zipfileset dir=".">
  124.55 +                <include name="*.nbm"/>
  124.56 +                <include name="history.txt"/>
  124.57 +                <include name="planned-features.txt"/>
  124.58 +            </zipfileset>
  124.59 +        </zip>
  124.60          <delete>
  124.61              <fileset dir=".">
  124.62                  <include name="*.nbm"/>
   125.1 --- a/ada.kit/history.txt	Tue Oct 02 21:55:21 2012 -0400
   125.2 +++ b/ada.kit/history.txt	Mon Oct 15 23:38:26 2012 +0200
   125.3 @@ -1,43 +1,65 @@
   125.4 -0.1.9: dd-mm-2009
   125.5 -- Migrating GSF framework to CSL (Parsing & Indexing API)
   125.6 +0.2.3: 11-10-2012
   125.7 +- Porting to NB7.2 and others improvements.
   125.8 +
   125.9 +0.2.2: 14-08-2010
  125.10 +- Migrate to NB6.9
  125.11 +- Fixed minor issues.
  125.12 +
  125.13 +0.2.1: 12-08-2010
  125.14 +- Added JVM compiler support.
  125.15 +- Migrate to NB6.8
  125.16 +
  125.17 +0.2.0: 13-10-2009
  125.18 +- Added the signing of the nbm files.
  125.19 +- Added the new help files.
  125.20 +- Fixed the issue http://sourceforge.net/tracker/?func=detail&aid=2872967&group_id=248853&atid=1126624.
  125.21 +
  125.22 +0.1.9: 01-10-2009
  125.23 +- Migrates from GSF to CSL for new Parsing & Indexing API.
  125.24 +- Added improvements on ast parser.
  125.25 +- Improvements on the GPR file management.
  125.26 +- Sends of the arguments when the action RUN is invoked
  125.27 +- Ada files naming management (options and project properties).
  125.28 +- Fixed https://sourceforge.net/tracker/?func=detail&aid=2868718&group_id=248853&atid=1126624.
  125.29 +- Fixed https://sourceforge.net/tracker/?func=detail&aid=2863317&group_id=248853&atid=1126624.
  125.30  
  125.31  0.1.8: 13-09-2009
  125.32 -- Add improvements on ast parser, navigator, instant renamer.
  125.33 -- Add others AST nodes.
  125.34 -- Add improvements for gpr handling.
  125.35 +- Added improvements on ast parser, navigator, instant renamer.
  125.36 +- Added others AST nodes.
  125.37 +- Added improvements for gpr handling.
  125.38  - Minor changes.
  125.39  
  125.40  0.1.7: 01-02-2009
  125.41 -- Fix ada generic declaration.
  125.42 -- Add improvements on ast parser, navigator, instant renamer.
  125.43 -- Add others AST nodes.
  125.44 -- Add search into environment path variable for autodetect ada platform.
  125.45 -- Fix the manage clean/build/run actions.
  125.46 +- Fixed ada generic declaration.
  125.47 +- Added improvements on ast parser, navigator, instant renamer.
  125.48 +- Added others AST nodes.
  125.49 +- Added search into environment path variable for autodetect ada platform.
  125.50 +- Fixed the manage clean/build/run actions.
  125.51  
  125.52  0.1.6: 05-01-2009
  125.53  Note: These corrections have been added thanks to comments posted by comp.lang.ada users --> http://groups.google.it/group/comp.lang.ada/browse_thread/thread/5bcecfde044a119d
  125.54 -- Fix string and char literal recognition.
  125.55 -- Fix new ada platform and autodetect in linux system.
  125.56 -- Fix gpr template file for linux system.
  125.57 -- Fix project actions for linux systems.
  125.58 +- Fixed string and char literal recognition.
  125.59 +- Fixed new ada platform and autodetect in linux system.
  125.60 +- Fixed gpr template file for linux system.
  125.61 +- Fixed project actions for linux systems.
  125.62  
  125.63  0.1.5: 28-12-2008
  125.64 -- Add improvements on ast parser, indexer and navigator.
  125.65 -- Add GNAT Project handler.
  125.66 -- Add GNAT Ada Platforn autodetect. Tested only windows system.
  125.67 -- Update project actions.
  125.68 +- Added improvements on ast parser, indexer and navigator.
  125.69 +- Added GNAT Project handler.
  125.70 +- Added GNAT Ada Platforn autodetect. Tested only windows system.
  125.71 +- Updated project actions.
  125.72  
  125.73  0.1.4: 19-12-2008
  125.74 -- Add improvements on ast parser, indexer and navigator.
  125.75 +- Added improvements on ast parser, indexer and navigator.
  125.76  
  125.77  0.1.3: 19-11-2008
  125.78 -- Add initial instant renamer, indexer, occurences finder and navigator.
  125.79 +- Adde initial instant renamer, indexer, occurences finder and navigator.
  125.80  
  125.81  0.1.2: 17-11-2008
  125.82 -- Add initial indent, formatting, code folding and semantic analyzer.
  125.83 +- Added initial indent, formatting, code folding and semantic analyzer.
  125.84  
  125.85  0.1.1: 09-11-2008
  125.86 -- Add initial version of Build/Clean actions (tested only windows system) and add help set for Ada Project. Remove previous Ada Platform configured with the previous plug-in version.
  125.87 +- Added initial version of Build/Clean actions (tested only windows system) and add help set for Ada Project. Remove previous Ada Platform configured with the previous plug-in version.
  125.88  
  125.89  0.1.0: 31-10-2008
  125.90 -- Add initial very alpha release.
  125.91 \ No newline at end of file
  125.92 +- Alpha release.
  125.93 \ No newline at end of file
   126.1 --- a/ada.kit/manifest.mf	Tue Oct 02 21:55:21 2012 -0400
   126.2 +++ b/ada.kit/manifest.mf	Mon Oct 15 23:38:26 2012 +0200
   126.3 @@ -2,5 +2,5 @@
   126.4  AutoUpdate-Show-In-Client: true
   126.5  OpenIDE-Module: org.netbeans.modules.ada.kit
   126.6  OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/ada/kit/Bundle.properties
   126.7 -OpenIDE-Module-Specification-Version: 0.1.9
   126.8 +OpenIDE-Module-Specification-Version: 0.2.3
   126.9  
   127.1 --- a/ada.kit/nbproject/project.properties	Tue Oct 02 21:55:21 2012 -0400
   127.2 +++ b/ada.kit/nbproject/project.properties	Mon Oct 15 23:38:26 2012 +0200
   127.3 @@ -2,6 +2,8 @@
   127.4  auxiliary.org-netbeans-modules-editor-indent.CodeStyle.project.text-limit-width=80
   127.5  auxiliary.org-netbeans-modules-editor-indent.CodeStyle.usedProfile=default
   127.6  javac.compilerargs=-Xlint -Xlint:-serial
   127.7 -javac.source=1.5
   127.8 +javac.source=1.6
   127.9  nbm.homepage=http://wiki.netbeans.org/Ada
  127.10  nbm.module.author=Andrea Lucarelli
  127.11 +keystore=nbproject/private/keystore
  127.12 +nbm_alias=nbada
   128.1 --- a/ada.kit/nbproject/project.xml	Tue Oct 02 21:55:21 2012 -0400
   128.2 +++ b/ada.kit/nbproject/project.xml	Mon Oct 15 23:38:26 2012 +0200
   128.3 @@ -8,31 +8,31 @@
   128.4                  <dependency>
   128.5                      <code-name-base>org.netbeans.modules.ada.editor</code-name-base>
   128.6                      <run-dependency>
   128.7 -                        <specification-version>0.1.9</specification-version>
   128.8 +                        <specification-version>0.2.2</specification-version>
   128.9                      </run-dependency>
  128.10                  </dependency>
  128.11                  <dependency>
  128.12                      <code-name-base>org.netbeans.modules.ada.help</code-name-base>
  128.13                      <run-dependency>
  128.14 -                        <specification-version>0.1.0</specification-version>
  128.15 +                        <specification-version>0.1.3</specification-version>
  128.16                      </run-dependency>
  128.17                  </dependency>
  128.18                  <dependency>
  128.19                      <code-name-base>org.netbeans.modules.ada.options</code-name-base>
  128.20                      <run-dependency>
  128.21 -                        <specification-version>0.1.4</specification-version>
  128.22 +                        <specification-version>0.1.8</specification-version>
  128.23                      </run-dependency>
  128.24                  </dependency>
  128.25                  <dependency>
  128.26                      <code-name-base>org.netbeans.modules.ada.platform</code-name-base>
  128.27                      <run-dependency>
  128.28 -                        <specification-version>0.1.5</specification-version>
  128.29 +                        <specification-version>0.1.9</specification-version>
  128.30                      </run-dependency>
  128.31                  </dependency>
  128.32                  <dependency>
  128.33                      <code-name-base>org.netbeans.modules.ada.project</code-name-base>
  128.34                      <run-dependency>
  128.35 -                        <specification-version>0.1.7</specification-version>
  128.36 +                        <specification-version>0.1.10</specification-version>
  128.37                      </run-dependency>
  128.38                  </dependency>
  128.39              </module-dependencies>
   129.1 --- a/ada.options/history.txt	Tue Oct 02 21:55:21 2012 -0400
   129.2 +++ b/ada.options/history.txt	Mon Oct 15 23:38:26 2012 +0200
   129.3 @@ -1,17 +1,26 @@
   129.4 -0.1.5: dd-mm-2009
   129.5 -- TBD
   129.6 +0.1.8: 11-10-2012
   129.7 +- Porting to NB7.2 and others improvements.
   129.8 +
   129.9 +0.1.7: 12-08-2010
  129.10 +- Updates modules dependencies version.
  129.11 +
  129.12 +0.1.6: 13-10-2009
  129.13 +- Added the signing of the nbm files.
  129.14 +
  129.15 +0.1.5: 01-10-2009
  129.16 +- Move Ada Options Panel on Ada Project module.
  129.17  
  129.18  0.1.4: 13-09-2009
  129.19 -- Update spec version.
  129.20 +- Updated spec version.
  129.21  
  129.22  0.1.3: 01-02-2009
  129.23 -- Update spec version.
  129.24 +- Updated spec version.
  129.25  
  129.26  0.1.2: 05-01-2009
  129.27 -- Update spec version.
  129.28 +- Updated spec version.
  129.29  
  129.30  0.1.1: 28-12-2008
  129.31 -- Update spec version.
  129.32 +- Updated spec version.
  129.33  
  129.34  0.1.0: 11-11-2008
  129.35 -- Initial versions. Move options from Ada Project and Ada Editor.
  129.36 \ No newline at end of file
  129.37 +- Initial version. Move options from Ada Project and Ada Editor.
  129.38 \ No newline at end of file
   130.1 --- a/ada.options/manifest.mf	Tue Oct 02 21:55:21 2012 -0400
   130.2 +++ b/ada.options/manifest.mf	Mon Oct 15 23:38:26 2012 +0200
   130.3 @@ -3,5 +3,5 @@
   130.4  OpenIDE-Module: org.netbeans.modules.ada.options
   130.5  OpenIDE-Module-Layer: org/netbeans/modules/ada/options/resources/layer.xml
   130.6  OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/ada/options/Bundle.properties
   130.7 -OpenIDE-Module-Specification-Version: 0.1.4
   130.8 +OpenIDE-Module-Specification-Version: 0.1.8
   130.9  
   131.1 --- a/ada.options/nbproject/project.properties	Tue Oct 02 21:55:21 2012 -0400
   131.2 +++ b/ada.options/nbproject/project.properties	Mon Oct 15 23:38:26 2012 +0200
   131.3 @@ -1,4 +1,6 @@
   131.4 -javac.source=1.5
   131.5 +javac.source=1.6
   131.6  javac.compilerargs=-Xlint -Xlint:-serial
   131.7  nbm.homepage=http://wiki.netbeans.org/Ada
   131.8  nbm.module.author=Andrea Lucarelli
   131.9 +keystore=nbproject/private/keystore
  131.10 +nbm_alias=nbada
   132.1 --- a/ada.options/nbproject/project.xml	Tue Oct 02 21:55:21 2012 -0400
   132.2 +++ b/ada.options/nbproject/project.xml	Mon Oct 15 23:38:26 2012 +0200
   132.3 @@ -6,20 +6,11 @@
   132.4              <code-name-base>org.netbeans.modules.ada.options</code-name-base>
   132.5              <module-dependencies>
   132.6                  <dependency>
   132.7 -                    <code-name-base>org.jdesktop.layout</code-name-base>
   132.8 -                    <build-prerequisite/>
   132.9 -                    <compile-dependency/>
  132.10 -                    <run-dependency>
  132.11 -                        <release-version>1</release-version>
  132.12 -                        <specification-version>1.6.1</specification-version>
  132.13 -                    </run-dependency>
  132.14 -                </dependency>
  132.15 -                <dependency>
  132.16                      <code-name-base>org.netbeans.modules.ada.editor</code-name-base>
  132.17                      <build-prerequisite/>
  132.18                      <compile-dependency/>
  132.19                      <run-dependency>
  132.20 -                        <specification-version>0.1.9</specification-version>
  132.21 +                        <specification-version>0.2.2</specification-version>
  132.22                      </run-dependency>
  132.23                  </dependency>
  132.24                  <dependency>
  132.25 @@ -27,7 +18,7 @@
  132.26                      <build-prerequisite/>
  132.27                      <compile-dependency/>
  132.28                      <run-dependency>
  132.29 -                        <specification-version>0.1.7</specification-version>
  132.30 +                        <specification-version>0.1.10</specification-version>
  132.31                      </run-dependency>
  132.32                  </dependency>
  132.33                  <dependency>
  132.34 @@ -36,15 +27,7 @@
  132.35                      <compile-dependency/>
  132.36                      <run-dependency>
  132.37                          <release-version>1</release-version>
  132.38 -                        <specification-version>1.10.1</specification-version>
  132.39 -                    </run-dependency>
  132.40 -                </dependency>
  132.41 -                <dependency>
  132.42 -                    <code-name-base>org.openide.awt</code-name-base>
  132.43 -                    <build-prerequisite/>
  132.44 -                    <compile-dependency/>
  132.45 -                    <run-dependency>
  132.46 -                        <specification-version>7.3.1</specification-version>
  132.47 +                        <specification-version>1.26.1</specification-version>
  132.48                      </run-dependency>
  132.49                  </dependency>
  132.50                  <dependency>
  132.51 @@ -52,7 +35,15 @@
  132.52                      <build-prerequisite/>
  132.53                      <compile-dependency/>
  132.54                      <run-dependency>
  132.55 -                        <specification-version>7.18.1</specification-version>
  132.56 +                        <specification-version>8.25.1</specification-version>
  132.57 +                    </run-dependency>
  132.58 +                </dependency>
  132.59 +                <dependency>
  132.60 +                    <code-name-base>org.openide.util.lookup</code-name-base>
  132.61 +                    <build-prerequisite/>
  132.62 +                    <compile-dependency/>
  132.63 +                    <run-dependency>
  132.64 +                        <specification-version>8.15.1</specification-version>
  132.65                      </run-dependency>
  132.66                  </dependency>
  132.67              </module-dependencies>
   133.1 --- a/ada.options/src/org/netbeans/modules/ada/options/AdaOptionsPanelController.java	Tue Oct 02 21:55:21 2012 -0400
   133.2 +++ b/ada.options/src/org/netbeans/modules/ada/options/AdaOptionsPanelController.java	Mon Oct 15 23:38:26 2012 +0200
   133.3 @@ -39,7 +39,6 @@
   133.4  
   133.5  package org.netbeans.modules.ada.options;
   133.6  
   133.7 -import org.netbeans.modules.ada.project.options.AdaGeneralOptionsPanel;
   133.8  import java.beans.PropertyChangeListener;
   133.9  import java.beans.PropertyChangeSupport;
  133.10  import java.util.Collection;
  133.11 @@ -52,6 +51,7 @@
  133.12  import javax.swing.event.ChangeEvent;
  133.13  import javax.swing.event.ChangeListener;
  133.14  import org.netbeans.modules.ada.project.options.AdaOptions;
  133.15 +import org.netbeans.modules.ada.project.options.ui.AdaGeneralOptionsPanel;
  133.16  import org.netbeans.modules.ada.editor.formatter.ui.FormattingOptionsPanel;
  133.17  import org.netbeans.spi.options.AdvancedOption;
  133.18  import org.netbeans.spi.options.OptionsPanelController;
  133.19 @@ -63,7 +63,7 @@
  133.20  /**
  133.21   * @author Andrea Lucarelli
  133.22   */
  133.23 -public class AdaOptionsPanelController extends OptionsPanelController implements ChangeListener {
  133.24 +public class AdaOptionsPanelController extends OptionsPanelController implements ChangeListener, HelpCtx.Provider {
  133.25  
  133.26      private static final String TAB_FOLDER = "org.netbeans.modules.ada/options/"; // NOI18N
  133.27      private final AdaGeneralOptionsPanel generalOptionsPanel = new AdaGeneralOptionsPanel(null);
  133.28 @@ -184,7 +184,7 @@
  133.29  
  133.30      @Override
  133.31      public HelpCtx getHelpCtx() {
  133.32 -        return null;
  133.33 +        return new HelpCtx(AdaGeneralOptionsPanel.class);
  133.34      }
  133.35  
  133.36      @Override
  133.37 @@ -201,12 +201,24 @@
  133.38          return AdaOptions.getInstance();
  133.39      }
  133.40  
  133.41 +    @Override
  133.42      public void stateChanged(ChangeEvent e) {
  133.43          changed();
  133.44      }
  133.45  
  133.46      private boolean validateComponent() {
  133.47          // errors
  133.48 +        String postfixSpec = generalOptionsPanel.getPkgSpecPostfix();
  133.49 +        String postfixBody = generalOptionsPanel.getPkgBodyPostfix();
  133.50 +        String specExt = generalOptionsPanel.getPkgSpecExt();
  133.51 +        String bodyExt = generalOptionsPanel.getPkgBodyExt();
  133.52 +
  133.53 +        if (specExt.equalsIgnoreCase(bodyExt)) {
  133.54 +            if (postfixSpec.equalsIgnoreCase(postfixBody)) {
  133.55 +                generalOptionsPanel.setError(NbBundle.getMessage(AdaOptionsPanelController.class, "MSG_ExtetionsError"));
  133.56 +                return false;
  133.57 +            }
  133.58 +        }
  133.59  
  133.60          // everything ok
  133.61          generalOptionsPanel.setError(" "); // NOI18N
   134.1 --- a/ada.options/src/org/netbeans/modules/ada/options/Bundle.properties	Tue Oct 02 21:55:21 2012 -0400
   134.2 +++ b/ada.options/src/org/netbeans/modules/ada/options/Bundle.properties	Mon Oct 15 23:38:26 2012 +0200
   134.3 @@ -47,4 +47,5 @@
   134.4  
   134.5  # AdaOptionsPanelController
   134.6  LBL_GeneralOPtions=General
   134.7 -LBL_FormattingPtions=Formatting
   134.8 \ No newline at end of file
   134.9 +LBL_FormattingPtions=Formatting
  134.10 +MSG_ExtetionsError= Body Postfix (".ada") cannot be the same as Spec Postfix.
   135.1 --- a/ada.options/src/org/netbeans/modules/ada/options/resources/layer.xml	Tue Oct 02 21:55:21 2012 -0400
   135.2 +++ b/ada.options/src/org/netbeans/modules/ada/options/resources/layer.xml	Mon Oct 15 23:38:26 2012 +0200
   135.3 @@ -37,7 +37,7 @@
   135.4  
   135.5  Portions Copyrighted 2008 Sun Microsystems, Inc.
   135.6  -->
   135.7 -<!DOCTYPE filesystem PUBLIC "-//NetBeans//DTD Filesystem 1.1//EN" "http://www.netbeans.org/dtds/filesystem-1_1.dtd">
   135.8 +<!DOCTYPE filesystem PUBLIC "-//NetBeans//DTD Filesystem 1.2//EN" "http://www.netbeans.org/dtds/filesystem-1_2.dtd">
   135.9  <filesystem>
  135.10      <folder name="OptionsDialog">
  135.11          <file name="org-netbeans-modules-ada-options-AdaOptionsCategory.instance">
   136.1 --- a/ada.platform/history.txt	Tue Oct 02 21:55:21 2012 -0400
   136.2 +++ b/ada.platform/history.txt	Mon Oct 15 23:38:26 2012 +0200
   136.3 @@ -1,16 +1,31 @@
   136.4 +0.1.9: 11-10-2012
   136.5 +- Porting to NB7.2 and others improvements.
   136.6 +
   136.7 +0.1.8: 12-08-2010
   136.8 +- Added JVM compiler support.
   136.9 +
  136.10 +0.1.7: 13-10-2009
  136.11 +- Added the signing of the nbm files.
  136.12 +- Fixed the issue http://sourceforge.net/tracker/?func=detail&aid=2872967&group_id=248853&atid=1126624.
  136.13 +
  136.14 +0.1.6: 01-10-2009
  136.15 +- Fixed https://sourceforge.net/tracker/?func=detail&aid=2868718&group_id=248853&atid=1126624.
  136.16 +- Improvements on the GPR file management.
  136.17 +- Sends of the arguments when the action RUN is invoked
  136.18 +
  136.19  0.1.5: 13-09-2009
  136.20 -- Add improvements for gpr handling.
  136.21 +- Added improvements for gpr handling.
  136.22  
  136.23  0.1.4: 01-02-2009
  136.24 -- Add search into environment path variable for autodetect ada platform.
  136.25 +- Added search into environment path variable for autodetect ada platform.
  136.26  
  136.27  0.1.3: 05-01-2009
  136.28 -- Fix new ada platform and autodetect in linux system.
  136.29 -- Fix gpr template file for linux system.
  136.30 +- Fixed new ada platform and autodetect in linux system.
  136.31 +- Fixed gpr template file for linux system.
  136.32  
  136.33  0.1.2: 28-12-2008
  136.34 -- Add GNAT Project handler.
  136.35 -- Add GNAT Ada Platforn autodetect. Tested only windows system.
  136.36 +- Added GNAT Project handler.
  136.37 +- Added GNAT Ada Platforn autodetect. Tested only windows system.
  136.38  
  136.39  0.1.1: 09-11-2008
  136.40  - Added first version of gnatmake command. Tested only windows system.
   137.1 --- a/ada.platform/manifest.mf	Tue Oct 02 21:55:21 2012 -0400
   137.2 +++ b/ada.platform/manifest.mf	Mon Oct 15 23:38:26 2012 +0200
   137.3 @@ -3,5 +3,5 @@
   137.4  OpenIDE-Module: org.netbeans.modules.ada.platform
   137.5  OpenIDE-Module-Layer: org/netbeans/modules/ada/platform/resources/layer.xml
   137.6  OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/ada/platform/Bundle.properties
   137.7 -OpenIDE-Module-Specification-Version: 0.1.5
   137.8 +OpenIDE-Module-Specification-Version: 0.1.9
   137.9  
   138.1 --- a/ada.platform/nbproject/project.properties	Tue Oct 02 21:55:21 2012 -0400
   138.2 +++ b/ada.platform/nbproject/project.properties	Mon Oct 15 23:38:26 2012 +0200
   138.3 @@ -1,4 +1,6 @@
   138.4 -javac.source=1.5
   138.5 +javac.source=1.6
   138.6  javac.compilerargs=-Xlint -Xlint:-serial
   138.7  nbm.homepage=http://wiki.netbeans.org/Ada
   138.8  nbm.module.author=Andrea Lucarelli
   138.9 +keystore=nbproject/private/keystore
  138.10 +nbm_alias=nbada
   139.1 --- a/ada.platform/nbproject/project.xml	Tue Oct 02 21:55:21 2012 -0400
   139.2 +++ b/ada.platform/nbproject/project.xml	Mon Oct 15 23:38:26 2012 +0200
   139.3 @@ -6,57 +6,12 @@
   139.4              <code-name-base>org.netbeans.modules.ada.platform</code-name-base>
   139.5              <module-dependencies>
   139.6                  <dependency>
   139.7 -                    <code-name-base>org.jdesktop.layout</code-name-base>
   139.8 -                    <build-prerequisite/>
   139.9 -                    <compile-dependency/>
  139.10 -                    <run-dependency>
  139.11 -                        <release-version>1</release-version>
  139.12 -                        <specification-version>1.6</specification-version>
  139.13 -                    </run-dependency>
  139.14 -                </dependency>
  139.15 -                <dependency>
  139.16 -                    <code-name-base>org.netbeans.api.progress</code-name-base>
  139.17 -                    <build-prerequisite/>
  139.18 -                    <compile-dependency/>
  139.19 -                    <run-dependency>
  139.20 -                        <release-version>1</release-version>
  139.21 -                        <specification-version>1.12</specification-version>
  139.22 -                    </run-dependency>
  139.23 -                </dependency>
  139.24 -                <dependency>
  139.25                      <code-name-base>org.netbeans.modules.extexecution</code-name-base>
  139.26                      <build-prerequisite/>
  139.27                      <compile-dependency/>
  139.28                      <run-dependency>
  139.29                          <release-version>2</release-version>
  139.30 -                        <specification-version>1.13</specification-version>
  139.31 -                    </run-dependency>
  139.32 -                </dependency>
  139.33 -                <dependency>
  139.34 -                    <code-name-base>org.netbeans.modules.project.ant</code-name-base>
  139.35 -                    <build-prerequisite/>
  139.36 -                    <compile-dependency/>
  139.37 -                    <run-dependency>
  139.38 -                        <release-version>1</release-version>
  139.39 -                        <specification-version>1.26.1</specification-version>
  139.40 -                    </run-dependency>
  139.41 -                </dependency>
  139.42 -                <dependency>
  139.43 -                    <code-name-base>org.netbeans.modules.projectapi</code-name-base>
  139.44 -                    <build-prerequisite/>
  139.45 -                    <compile-dependency/>
  139.46 -                    <run-dependency>
  139.47 -                        <release-version>1</release-version>
  139.48 -                        <specification-version>1.19</specification-version>
  139.49 -                    </run-dependency>
  139.50 -                </dependency>
  139.51 -                <dependency>
  139.52 -                    <code-name-base>org.netbeans.modules.projectuiapi</code-name-base>
  139.53 -                    <build-prerequisite/>
  139.54 -                    <compile-dependency/>
  139.55 -                    <run-dependency>
  139.56 -                        <release-version>1</release-version>
  139.57 -                        <specification-version>1.31</specification-version>
  139.58 +                        <specification-version>1.31.1</specification-version>
  139.59                      </run-dependency>
  139.60                  </dependency>
  139.61                  <dependency>
  139.62 @@ -64,7 +19,7 @@
  139.63                      <build-prerequisite/>
  139.64                      <compile-dependency/>
  139.65                      <run-dependency>
  139.66 -                        <specification-version>7.3</specification-version>
  139.67 +                        <specification-version>7.46.1</specification-version>
  139.68                      </run-dependency>
  139.69                  </dependency>
  139.70                  <dependency>
  139.71 @@ -72,7 +27,7 @@
  139.72                      <build-prerequisite/>
  139.73                      <compile-dependency/>
  139.74                      <run-dependency>
  139.75 -                        <specification-version>7.8</specification-version>
  139.76 +                        <specification-version>7.25.1</specification-version>
  139.77                      </run-dependency>
  139.78                  </dependency>
  139.79                  <dependency>
  139.80 @@ -80,15 +35,7 @@
  139.81                      <build-prerequisite/>
  139.82                      <compile-dependency/>
  139.83                      <run-dependency>
  139.84 -                        <specification-version>7.13</specification-version>
  139.85 -                    </run-dependency>
  139.86 -                </dependency>
  139.87 -                <dependency>
  139.88 -                    <code-name-base>org.openide.modules</code-name-base>
  139.89 -                    <build-prerequisite/>
  139.90 -                    <compile-dependency/>
  139.91 -                    <run-dependency>
  139.92 -                        <specification-version>7.7</specification-version>
  139.93 +                        <specification-version>7.62.1</specification-version>
  139.94                      </run-dependency>
  139.95                  </dependency>
  139.96                  <dependency>
  139.97 @@ -96,7 +43,7 @@
  139.98                      <build-prerequisite/>
  139.99                      <compile-dependency/>
 139.100                      <run-dependency>
 139.101 -                        <specification-version>7.18.1</specification-version>
 139.102 +                        <specification-version>8.25.1</specification-version>
 139.103                      </run-dependency>
 139.104                  </dependency>
 139.105              </module-dependencies>
 139.106 @@ -105,6 +52,8 @@
 139.107                  <package>org.netbeans.api.ada.platform</package>
 139.108                  <package>org.netbeans.modules.ada.platform.compiler.gnat</package>
 139.109                  <package>org.netbeans.modules.ada.platform.compiler.gnat.commands</package>
 139.110 +                <package>org.netbeans.modules.ada.platform.compiler.jgnat</package>
 139.111 +                <package>org.netbeans.modules.ada.platform.compiler.jgnat.commands</package>
 139.112                  <package>org.netbeans.modules.ada.platform.ui</package>
 139.113                  <package>org.netbeans.spi.ada.platform</package>
 139.114              </friend-packages>
   140.1 --- a/ada.platform/src/org/netbeans/api/ada/platform/AdaAutoDetector.java	Tue Oct 02 21:55:21 2012 -0400
   140.2 +++ b/ada.platform/src/org/netbeans/api/ada/platform/AdaAutoDetector.java	Mon Oct 15 23:38:26 2012 +0200
   140.3 @@ -51,16 +51,17 @@
   140.4   */
   140.5  public class AdaAutoDetector {
   140.6  
   140.7 -    private Logger LOGGER = Logger.getLogger(AdaAutoDetector.class.getName());
   140.8 +    private static final Logger LOGGER = Logger.getLogger(AdaAutoDetector.class.getName());
   140.9      private ArrayList<String> matches = new ArrayList<String>();
  140.10      private boolean searchNestedDirectoies = true;
  140.11 -    
  140.12 -	private void processAction(File dir, String tool) {
  140.13 +
  140.14 +    private void processAction(File dir, String tool) {
  140.15          //LOGGER.setLevel(Level.FINE);
  140.16 -        LOGGER.fine("Inspecting: " + dir.getAbsolutePath());
  140.17 +        LOGGER.log(Level.FINE, "Inspecting: {0}", dir.getAbsolutePath());
  140.18 +        
  140.19          if (dir.isFile()) {
  140.20              int pos = dir.getName().indexOf(".");
  140.21 -            String name = null;
  140.22 +            String name;
  140.23              if (pos > -1) {
  140.24                  name = dir.getName().substring(0, pos);
  140.25              } else {
  140.26 @@ -68,21 +69,36 @@
  140.27              }
  140.28              if (name.equalsIgnoreCase(tool)) {
  140.29                  matches.add(dir.getParent());
  140.30 -                LOGGER.fine("Match: " + dir.getAbsolutePath());
  140.31 +                LOGGER.log(Level.FINE, "Match: {0}", dir.getAbsolutePath());
  140.32              }
  140.33          }
  140.34 +        
  140.35          if (dir.isDirectory()) {
  140.36              if (Utilities.isWindows()) {
  140.37 -                if ((dir.getName().toLowerCase().contains("mingw")) ||
  140.38 -                    (dir.getName().toLowerCase().contains("bin") && dir.getPath().toLowerCase().contains("mingw")) ||
  140.39 -                    (dir.getName().toLowerCase().contains("cygwin")) ||
  140.40 -                    (dir.getName().toLowerCase().contains("bin") && dir.getPath().toLowerCase().contains("cygwin")) ||
  140.41 -                    (dir.getName().toLowerCase().contains("gnat")) ||
  140.42 -                    (dir.getName().toLowerCase().contains("2007") && dir.getPath().toLowerCase().contains("gnat")) ||
  140.43 -                    (dir.getName().toLowerCase().contains("bin") && dir.getPath().toLowerCase().contains("gnat")) ||
  140.44 -                    (dir.getName().toLowerCase().contains("gnat")) ||
  140.45 -                    (dir.getName().toLowerCase().contains("2008") && dir.getPath().toLowerCase().contains("gnat")) ||
  140.46 -                    (dir.getName().toLowerCase().contains("bin") && dir.getPath().toLowerCase().contains("gnat"))) {
  140.47 +                if ((dir.getName().toLowerCase().contains("mingw"))
  140.48 +                       ||  (dir.getName().toLowerCase().contains("bin") && dir.getPath().toLowerCase().contains("mingw"))
  140.49 +                        || (dir.getName().toLowerCase().contains("cygwin"))
  140.50 +                        || (dir.getName().toLowerCase().contains("bin") && dir.getPath().toLowerCase().contains("cygwin"))
  140.51 +                        || (dir.getName().toLowerCase().contains("gnat"))
  140.52 +                        || (dir.getName().toLowerCase().contains("2007") && dir.getPath().toLowerCase().contains("gnat"))
  140.53 +                        || (dir.getName().toLowerCase().contains("bin") && dir.getPath().toLowerCase().contains("gnat"))
  140.54 +                        || (dir.getName().toLowerCase().contains("gnat"))
  140.55 +                        || (dir.getName().toLowerCase().contains("2008") && dir.getPath().toLowerCase().contains("gnat"))
  140.56 +                        || (dir.getName().toLowerCase().contains("bin") && dir.getPath().toLowerCase().contains("gnat"))
  140.57 +                        || (dir.getName().toLowerCase().contains("gnat"))
  140.58 +                        || (dir.getName().toLowerCase().contains("2009") && dir.getPath().toLowerCase().contains("gnat"))
  140.59 +                        || (dir.getName().toLowerCase().contains("bin") && dir.getPath().toLowerCase().contains("gnat"))
  140.60 +                        || (dir.getName().toLowerCase().contains("gnat"))
  140.61 +                        || (dir.getName().toLowerCase().contains("2010") && dir.getPath().toLowerCase().contains("gnat"))
  140.62 +                        || (dir.getName().toLowerCase().contains("bin") && dir.getPath().toLowerCase().contains("gnat"))
  140.63 +                        || (dir.getName().toLowerCase().contains("gnat"))
  140.64 +                        || (dir.getName().toLowerCase().contains("2011") && dir.getPath().toLowerCase().contains("gnat"))
  140.65 +                        || (dir.getName().toLowerCase().contains("bin") && dir.getPath().toLowerCase().contains("gnat"))                        
  140.66 +                        || (dir.getName().toLowerCase().contains("gnat"))
  140.67 +                        || (dir.getName().toLowerCase().contains("2012") && dir.getPath().toLowerCase().contains("gnat"))
  140.68 +                        || (dir.getName().toLowerCase().contains("bin") && dir.getPath().toLowerCase().contains("gnat"))                        
  140.69 +                        ) 
  140.70 +                        {
  140.71                      String[] children = dir.list();
  140.72                      if (children != null) {
  140.73                          for (int i = 0; i < children.length; i++) {
   141.1 --- a/ada.platform/src/org/netbeans/api/ada/platform/AdaExecution.java	Tue Oct 02 21:55:21 2012 -0400
   141.2 +++ b/ada.platform/src/org/netbeans/api/ada/platform/AdaExecution.java	Mon Oct 15 23:38:26 2012 +0200
   141.3 @@ -64,6 +64,7 @@
   141.4      private String commandArgs;
   141.5      private String displayName;
   141.6      private boolean redirect;
   141.7 +    
   141.8      private ExecutionDescriptor descriptor = new ExecutionDescriptor().frontWindow(true).controllable(true).inputVisible(true).showProgress(true).showSuspended(true);
   141.9  
  141.10      /**
   142.1 --- a/ada.platform/src/org/netbeans/api/ada/platform/AdaOutputProcessor.java	Tue Oct 02 21:55:21 2012 -0400
   142.2 +++ b/ada.platform/src/org/netbeans/api/ada/platform/AdaOutputProcessor.java	Mon Oct 15 23:38:26 2012 +0200
   142.3 @@ -48,12 +48,14 @@
   142.4   */
   142.5  public class AdaOutputProcessor implements InputProcessor {
   142.6      StringBuilder builder = new StringBuilder();
   142.7 +
   142.8 +    @Override
   142.9      public void processInput(char[] input) throws IOException {
  142.10          builder.append(input);
  142.11      }
  142.12  
  142.13      public void reset() throws IOException {
  142.14 -        //builder = new StringBuilder();
  142.15 +        builder.setLength(0);
  142.16      }
  142.17  
  142.18      public void close() throws IOException {
   143.1 --- a/ada.platform/src/org/netbeans/api/ada/platform/AdaPlatform.java	Tue Oct 02 21:55:21 2012 -0400
   143.2 +++ b/ada.platform/src/org/netbeans/api/ada/platform/AdaPlatform.java	Mon Oct 15 23:38:26 2012 +0200
   143.3 @@ -39,9 +39,7 @@
   143.4  
   143.5  package org.netbeans.api.ada.platform;
   143.6  
   143.7 -import java.io.File;
   143.8  import java.io.Serializable;
   143.9 -import java.util.ArrayList;
  143.10  
  143.11  /**
  143.12   *
  143.13 @@ -53,36 +51,44 @@
  143.14      private String info;
  143.15  
  143.16      private String compilerPath;
  143.17 -    private String compilerCommand;
  143.18 -    private String compilerArgs;
  143.19 -    private boolean dirty;
  143.20 +    private String gnatCompilerCommand;
  143.21 +    private String gnatCompilerArgs;
  143.22 +    private String jvmGnatCompilerCommand;
  143.23 +    private String jvmGnatCompilerArgs;
  143.24 +
  143.25 +    public String getJvmGnatCompilerArgs() {
  143.26 +        return jvmGnatCompilerArgs;
  143.27 +    }
  143.28 +
  143.29 +    public void setJvmGnatCompilerArgs(String jvmGnatCompilerArgs) {
  143.30 +        this.jvmGnatCompilerArgs = jvmGnatCompilerArgs;
  143.31 +    }
  143.32 +
  143.33 +    public String getJvmGnatCompilerCommand() {
  143.34 +        return jvmGnatCompilerCommand;
  143.35 +    }
  143.36 +
  143.37 +    public void setJvmGnatCompilerCommand(String jvmGnatCompilerCommand) {
  143.38 +        this.jvmGnatCompilerCommand = jvmGnatCompilerCommand;
  143.39 +    }
  143.40  
  143.41      public AdaPlatform() {
  143.42      }
  143.43  
  143.44 -    public String getCompilerArgs() {
  143.45 -        return compilerArgs;
  143.46 +    public String getGnatCompilerArgs() {
  143.47 +        return gnatCompilerArgs;
  143.48      }
  143.49  
  143.50 -    public void setCompilerArgs(String compilerArgs) {
  143.51 -        this.compilerArgs = compilerArgs;
  143.52 +    public void setGnatCompilerArgs(String gnatCompilerArgs) {
  143.53 +        this.gnatCompilerArgs = gnatCompilerArgs;
  143.54      }
  143.55  
  143.56 -    public String getInterpreterCommand() {
  143.57 -        return compilerCommand;
  143.58 +    public String getGnatCompilerCommand() {
  143.59 +        return gnatCompilerCommand;
  143.60      }
  143.61  
  143.62 -    public void setCompilerCommand(String compilerCommand) {
  143.63 -        this.compilerCommand = compilerCommand;
  143.64 -    }
  143.65 -
  143.66 -    public String getCompilerCommand() {
  143.67 -        return compilerCommand;
  143.68 -    }
  143.69 -
  143.70 -    /** Has this platform been changed since the last load? */
  143.71 -    public boolean isDirty() {
  143.72 -        return dirty;
  143.73 +    public void setGnatCompilerCommand(String gnatCompilerCommand) {
  143.74 +        this.gnatCompilerCommand = gnatCompilerCommand;
  143.75      }
  143.76  
  143.77      public String getName() {
  143.78 @@ -108,22 +114,4 @@
  143.79      public void setCompilerPath(String compilerPath) {
  143.80          this.compilerPath = compilerPath;
  143.81      }
  143.82 -
  143.83 -    /**
  143.84 -     * Build a path string from arraylist
  143.85 -     * @param path
  143.86 -     * @return
  143.87 -     */
  143.88 -    public static String buildPath(ArrayList<String> path){
  143.89 -        StringBuilder pathString = new StringBuilder();
  143.90 -        int count = 0;
  143.91 -        for(String pathEle: path){
  143.92 -            pathString.append(pathEle);
  143.93 -            if (count++ < path.size()){
  143.94 -                pathString.append(File.pathSeparator);
  143.95 -            }
  143.96 -        }
  143.97 -        return pathString.toString();
  143.98 -    }
  143.99 -
 143.100  }
   144.1 --- a/ada.platform/src/org/netbeans/api/ada/platform/AdaPlatformManager.java	Tue Oct 02 21:55:21 2012 -0400
   144.2 +++ b/ada.platform/src/org/netbeans/api/ada/platform/AdaPlatformManager.java	Mon Oct 15 23:38:26 2012 +0200
   144.3 @@ -55,6 +55,7 @@
   144.4  import java.util.HashMap;
   144.5  import java.util.List;
   144.6  import java.util.concurrent.Future;
   144.7 +import java.util.logging.Level;
   144.8  import java.util.logging.Logger;
   144.9  import org.openide.filesystems.FileObject;
  144.10  import org.openide.util.Exceptions;
  144.11 @@ -66,12 +67,17 @@
  144.12   *
  144.13   * @author Andrea Lucarelli
  144.14   */
  144.15 -public class AdaPlatformManager implements Serializable {
  144.16 +public final class AdaPlatformManager implements Serializable {
  144.17  
  144.18      private static final Logger LOGGER = Logger.getLogger(AdaPlatformManager.class.getName());
  144.19 +    
  144.20 +    // Ada platforms properties
  144.21      private static final String PLATFORM_FILE = System.getProperty("netbeans.user") + "/config/ada-platforms.xml";
  144.22      private static final String GNAT_EXECUTABLE_NAME = "gnat"; // NOI18N
  144.23 +    private static final String JVM_GNAT_EXECUTABLE_NAME = "jvm-gnat"; // NOI18N
  144.24      private static final String GNAT_PLATFORM_NAME = "GNAT";
  144.25 +    
  144.26 +    // Ada platforms hash table
  144.27      private HashMap<String, AdaPlatform> platforms;
  144.28      private String defaultPlatform;
  144.29  
  144.30 @@ -194,15 +200,13 @@
  144.31          String line = null;
  144.32          try {
  144.33              while ((line = reader.readLine()) != null) {
  144.34 -                sb.append(line + "\n");
  144.35 +                sb.append(line).append("\n");
  144.36              }
  144.37          } catch (IOException e) {
  144.38 -            e.printStackTrace();
  144.39          } finally {
  144.40              try {
  144.41                  is.close();
  144.42              } catch (IOException e) {
  144.43 -                e.printStackTrace();
  144.44              }
  144.45          }
  144.46  
  144.47 @@ -211,8 +215,12 @@
  144.48  
  144.49      public AdaPlatform findPlatformProperties(FileObject folder) throws AdaException {
  144.50          AdaPlatform platform = null;
  144.51 -        String id = null;
  144.52 -
  144.53 +        File tool = null;
  144.54 +        AdaExecution adaExec = null;
  144.55 +        ReaderInputStream is = null;
  144.56 +        BufferedReader reader = null;
  144.57 +        String line = null;
  144.58 +        
  144.59          // Find GNAT Tool
  144.60          // ??? Now only GNAT platform is supported
  144.61          FileObject gnat = findTool(GNAT_EXECUTABLE_NAME, folder);
  144.62 @@ -220,8 +228,8 @@
  144.63          if (gnat != null) {
  144.64  
  144.65              try {
  144.66 -                File tool = FileUtil.toFile(gnat);
  144.67 -                AdaExecution adaExec = new AdaExecution();
  144.68 +                tool = FileUtil.toFile(gnat);
  144.69 +                adaExec = new AdaExecution();
  144.70                  adaExec.setCommand(tool.getPath());
  144.71                  adaExec.setDisplayName("Ada Platform Properties");
  144.72                  adaExec.setShowControls(false);
  144.73 @@ -234,9 +242,9 @@
  144.74                  Future<Integer> result = adaExec.run();
  144.75                  Integer value = result.get();
  144.76                  if (value.intValue() == 0) {
  144.77 -                    ReaderInputStream is = new ReaderInputStream(adaExec.getOutput());
  144.78 -                    BufferedReader reader = new BufferedReader(new InputStreamReader(is));
  144.79 -                    String line = null;
  144.80 +                    is = new ReaderInputStream(adaExec.getOutput());
  144.81 +                    reader = new BufferedReader(new InputStreamReader(is));
  144.82 +                    line = null;
  144.83                      try {
  144.84                          while ((line = reader.readLine()) != null) {
  144.85                              if (line.contains(GNAT_PLATFORM_NAME)) {
  144.86 @@ -245,26 +253,20 @@
  144.87                                  int endIndex2 = line.indexOf(")") < 0 ? line.length() : line.indexOf(")");
  144.88  
  144.89                                  platform = new AdaPlatform();
  144.90 -                                platform.setName(GNAT_PLATFORM_NAME + line.substring(startIndex, endIndex));
  144.91 +                                platform.setName((GNAT_PLATFORM_NAME + line.substring(startIndex, endIndex)).trim());
  144.92                                  if (endIndex < endIndex2) {
  144.93                                      platform.setInfo(line.substring(endIndex + 1, endIndex2));
  144.94                                  }
  144.95 -                                platform.setCompilerCommand(GNAT_EXECUTABLE_NAME);
  144.96 +                                platform.setGnatCompilerCommand(GNAT_EXECUTABLE_NAME);
  144.97                                  platform.setCompilerPath(tool.getPath().substring(0, tool.getPath().lastIndexOf(tool.getName())));
  144.98 -                                if (platforms.size() == 0) {
  144.99 -                                    setDefaultPlatform(platform.getName());
 144.100 -                                }
 144.101 -                                platforms.put(platform.getName(), platform);
 144.102                                  break;
 144.103                              }
 144.104                          }
 144.105                      } catch (IOException e) {
 144.106 -                        e.printStackTrace();
 144.107                      } finally {
 144.108                          try {
 144.109                              is.close();
 144.110                          } catch (IOException e) {
 144.111 -                            e.printStackTrace();
 144.112                          }
 144.113                      }
 144.114                  } else {
 144.115 @@ -277,6 +279,62 @@
 144.116                  Exceptions.printStackTrace(ex);
 144.117              }
 144.118          }
 144.119 +
 144.120 +        FileObject jvmgnat = findTool(JVM_GNAT_EXECUTABLE_NAME, folder);
 144.121 +
 144.122 +        if (jvmgnat != null) {
 144.123 +
 144.124 +            try {
 144.125 +                tool = FileUtil.toFile(jvmgnat);
 144.126 +                adaExec = new AdaExecution();
 144.127 +                adaExec.setCommand(tool.getPath());
 144.128 +                adaExec.setDisplayName("Ada Platform Properties");
 144.129 +                adaExec.setShowControls(false);
 144.130 +                adaExec.setShowInput(false);
 144.131 +                adaExec.setShowWindow(false);
 144.132 +                adaExec.setShowProgress(false);
 144.133 +                adaExec.setShowSuspended(false);
 144.134 +                adaExec.attachOutputProcessor();
 144.135 +                adaExec.setWorkingDirectory(tool.getPath().substring(0, tool.getPath().lastIndexOf(tool.getName())));
 144.136 +                Future<Integer> result = adaExec.run();
 144.137 +                Integer value = result.get();
 144.138 +                if (value.intValue() == 0) {
 144.139 +                    is = new ReaderInputStream(adaExec.getOutput());
 144.140 +                    reader = new BufferedReader(new InputStreamReader(is));
 144.141 +                    line = null;
 144.142 +                    try {
 144.143 +                        while ((line = reader.readLine()) != null) {
 144.144 +                            if (line.contains(GNAT_PLATFORM_NAME)) {
 144.145 +                                platform.setJvmGnatCompilerCommand(JVM_GNAT_EXECUTABLE_NAME);
 144.146 +                                platform.setName(platform.getName() + "+JVM");
 144.147 +                                break;
 144.148 +                            }
 144.149 +                        }
 144.150 +                    } catch (IOException e) {
 144.151 +                    } finally {
 144.152 +                        try {
 144.153 +                            is.close();
 144.154 +                        } catch (IOException e) {
 144.155 +                        }
 144.156 +                    }
 144.157 +                } else {
 144.158 +                    throw new AdaException("Could not discover Ada properties");
 144.159 +                }
 144.160 +            } catch (AdaException ex) {
 144.161 +                Exceptions.printStackTrace(ex);
 144.162 +                throw ex;
 144.163 +            } catch (Exception ex) {
 144.164 +                Exceptions.printStackTrace(ex);
 144.165 +            }
 144.166 +        }
 144.167 +
 144.168 +        if (platform != null) {
 144.169 +            if (platforms.isEmpty()) {
 144.170 +                setDefaultPlatform(platform.getName());
 144.171 +            }
 144.172 +            platforms.put(platform.getName(), platform);
 144.173 +        }
 144.174 +
 144.175          return platform;
 144.176      }
 144.177  
 144.178 @@ -317,7 +375,7 @@
 144.179          }
 144.180  
 144.181          for (String path : detector.getMatches()) {
 144.182 -            LOGGER.fine("Auto Detect: " + path + " found");
 144.183 +            LOGGER.log(Level.FINE, "Auto Detect: {0} found", path);
 144.184              FileObject fo = FileUtil.toFileObject(new File(path));
 144.185              try {
 144.186                  findPlatformProperties(fo);
   145.1 --- a/ada.platform/src/org/netbeans/modules/ada/platform/compiler/gnat/GnatCompiler.java	Tue Oct 02 21:55:21 2012 -0400
   145.2 +++ b/ada.platform/src/org/netbeans/modules/ada/platform/compiler/gnat/GnatCompiler.java	Mon Oct 15 23:38:26 2012 +0200
   145.3 @@ -62,6 +62,7 @@
   145.4      private final String projectPath;
   145.5      private final ArrayList<String> sourceFolders;
   145.6      private final String mainFile;
   145.7 +    private final String adaDialects;
   145.8      private final String executableFile;
   145.9      private final String commandName;
  145.10      private final String spcPostfix;
  145.11 @@ -75,7 +76,7 @@
  145.12       * 
  145.13       * @param project
  145.14       */
  145.15 -    public GnatCompiler(AdaPlatform platform, String projectName, String projectPath, ArrayList<String> sourceFolders, String mainFile, String executableFile, String commandName,
  145.16 +    public GnatCompiler(AdaPlatform platform, String projectName, String projectPath, ArrayList<String> sourceFolders, String mainFile, String adaDialects, String executableFile, String commandName,
  145.17              String spcPostfix, String bdyPostfix, String sepPostfix, String spcExt, String bdyExt, String sepExt) {
  145.18  
  145.19          assert platform != null;
  145.20 @@ -85,6 +86,7 @@
  145.21          this.projectPath = projectPath;
  145.22          this.sourceFolders = sourceFolders;
  145.23          this.mainFile = mainFile;
  145.24 +        this.adaDialects = adaDialects;
  145.25          this.executableFile = executableFile;
  145.26          this.commandName = commandName;
  145.27  
  145.28 @@ -126,6 +128,7 @@
  145.29          return gnatCommands.get(commandName);
  145.30      }
  145.31  
  145.32 +    @Override
  145.33      public void Build() {
  145.34          try {
  145.35              invokeCommand(GnatCommand.GNAT_MAKE, this.getProjectName() + "(" + this.getCommandName() + ")", null);
  145.36 @@ -136,6 +139,7 @@
  145.37          }
  145.38      }
  145.39  
  145.40 +    @Override
  145.41      public void Run(String args) {
  145.42          try {
  145.43              invokeCommand(GnatCommand.RUN, this.getProjectName() + "(" + this.getCommandName() + ")", args);
  145.44 @@ -146,6 +150,7 @@
  145.45          }
  145.46      }
  145.47  
  145.48 +    @Override
  145.49      public void Compile() {
  145.50          try {
  145.51              invokeCommand(GnatCommand.GNAT_COMPILE, this.getProjectName() + "(" + this.getCommandName() + ")", null);
  145.52 @@ -156,6 +161,7 @@
  145.53          }
  145.54      }
  145.55  
  145.56 +    @Override
  145.57      public void Clean() {
  145.58          try {
  145.59              invokeCommand(GnatCommand.GNAT_CLEAN, this.getProjectName() + "(" + this.getCommandName() + ")", null);
  145.60 @@ -166,30 +172,42 @@
  145.61          }
  145.62      }
  145.63  
  145.64 +    @Override
  145.65      public AdaPlatform getPlatform() {
  145.66          return platform;
  145.67      }
  145.68  
  145.69 +    @Override
  145.70      public String getExecutableFile() {
  145.71          return executableFile;
  145.72      }
  145.73  
  145.74 +    @Override
  145.75      public String getCommandName() {
  145.76          return commandName;
  145.77      }
  145.78  
  145.79 +    @Override
  145.80      public String getMainFile() {
  145.81          return mainFile;
  145.82      }
  145.83  
  145.84 +    @Override
  145.85 +    public String getAdaDialects() {
  145.86 +        return adaDialects;
  145.87 +    }
  145.88 +
  145.89 +    @Override
  145.90      public String getProjectPath() {
  145.91          return projectPath;
  145.92      }
  145.93  
  145.94 +    @Override
  145.95      public String getProjectName() {
  145.96          return projectName;
  145.97      }
  145.98  
  145.99 +    @Override
 145.100      public ArrayList<String> getSourceFolders() {
 145.101          return sourceFolders;
 145.102      }
   146.1 --- a/ada.platform/src/org/netbeans/modules/ada/platform/compiler/gnat/GnatProject.java	Tue Oct 02 21:55:21 2012 -0400
   146.2 +++ b/ada.platform/src/org/netbeans/modules/ada/platform/compiler/gnat/GnatProject.java	Mon Oct 15 23:38:26 2012 +0200
   146.3 @@ -50,6 +50,7 @@
   146.4  import java.io.OutputStreamWriter;
   146.5  import java.net.URL;
   146.6  import java.util.ArrayList;
   146.7 +import java.util.StringTokenizer;
   146.8  import org.netbeans.modules.ada.platform.compiler.gnat.commands.GnatCommand;
   146.9  import org.openide.filesystems.FileUtil;
  146.10  
  146.11 @@ -80,6 +81,34 @@
  146.12          }
  146.13      }
  146.14  
  146.15 +    public String removeSpaces(String s) {
  146.16 +        StringTokenizer st = new StringTokenizer(s, " ", false);
  146.17 +        String t = "";
  146.18 +        while (st.hasMoreElements()) {
  146.19 +            t += st.nextElement();
  146.20 +        }
  146.21 +        return t;
  146.22 +    }
  146.23 +
  146.24 +    private String convToGnat(String adaDialects) {
  146.25 +        String result = "95";
  146.26 +
  146.27 +        if (adaDialects.equalsIgnoreCase("ADA_83")) {
  146.28 +            result = "83";
  146.29 +        }
  146.30 +        else if(adaDialects.equalsIgnoreCase("ADA_95")) {
  146.31 +            result = "95";
  146.32 +        }
  146.33 +        else if(adaDialects.equalsIgnoreCase("ADA_2005")) {
  146.34 +            result = "05";
  146.35 +        }
  146.36 +        else if(adaDialects.equalsIgnoreCase("ADA_2012")) {
  146.37 +            result = "12";
  146.38 +        }
  146.39 +
  146.40 +        return result;
  146.41 +    }
  146.42 +
  146.43      private void writeGprfileImpl() {
  146.44          String resource = "/org/netbeans/modules/ada/platform/resources/GprFileTemplate.gpr"; // NOI18N
  146.45          InputStream is = null;
  146.46 @@ -91,11 +120,16 @@
  146.47              is = GnatCommand.class.getResourceAsStream(resource);
  146.48          }
  146.49  
  146.50 -        gprFilePath = gnat.getProjectPath() + '/' + "nbproject" + '/' + gnat.getProjectName() + ".gpr"; // UNIX path // NOI18N
  146.51 +        String projectName = removeSpaces(gnat.getProjectName());
  146.52 +        String mainFile = gnat.getMainFile();
  146.53 +        String adaDialects = convToGnat(gnat.getAdaDialects());
  146.54 +        String execFile = gnat.getExecutableFile();
  146.55 +        ArrayList<String> sources = gnat.getSourceFolders();
  146.56 +
  146.57 +        gprFilePath = gnat.getProjectPath() + '/' + "nbproject" + '/' + projectName + ".gpr"; // UNIX path // NOI18N
  146.58          try {
  146.59              os = new FileOutputStream(gprFilePath);
  146.60          } catch (IOException ioe) {
  146.61 -            ioe.printStackTrace();
  146.62          }
  146.63  
  146.64          if (is == null || os == null) {
  146.65 @@ -106,15 +140,6 @@
  146.66          BufferedReader br = new BufferedReader(new InputStreamReader(is));
  146.67          BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(os));
  146.68  
  146.69 -        String projectName = gnat.getProjectName();
  146.70 -        String mainFile = gnat.getMainFile();
  146.71 -        String execFile = gnat.getExecutableFile();
  146.72 -        ArrayList<String> sources = gnat.getSourceFolders();
  146.73 -
  146.74 -        //if (src.equalsIgnoreCase("src")) {
  146.75 -        //    src = "../src/**";
  146.76 -        //}
  146.77 -
  146.78          try {
  146.79              while (true) {
  146.80                  String line = br.readLine();
  146.81 @@ -128,13 +153,18 @@
  146.82                      String srcDirs = new String();
  146.83                      for (int index = 0; index < sources.size(); index++) {
  146.84                          srcDirs = srcDirs + "\"" + FileUtil.toFileObject(new File(sources.get(index))).getPath() + "/**\"";
  146.85 -                        if (index < sources.size()-1) srcDirs = srcDirs + ",";
  146.86 +                        if (index < sources.size() - 1) {
  146.87 +                            srcDirs = srcDirs + ",";
  146.88 +                        }
  146.89                      }
  146.90                      line = line.replaceFirst("\"<SRC>\"", srcDirs); // NOI18N
  146.91                  }
  146.92                  if (line.indexOf("<MAINFILE>") >= 0) { // NOI18N
  146.93                      line = line.replaceFirst("<MAINFILE>", mainFile); // NOI18N
  146.94                  }
  146.95 +                if (line.indexOf("<DIALECTS>") >= 0) { // NOI18N
  146.96 +                    line = line.replaceFirst("<DIALECTS>", adaDialects); // NOI18N
  146.97 +                }
  146.98                  if (line.indexOf("<EXECFILE>") >= 0) { // NOI18N
  146.99                      line = line.replaceFirst("<EXECFILE>", execFile); // NOI18N
 146.100                  }
   147.1 --- a/ada.platform/src/org/netbeans/modules/ada/platform/compiler/gnat/commands/GnatClean.java	Tue Oct 02 21:55:21 2012 -0400
   147.2 +++ b/ada.platform/src/org/netbeans/modules/ada/platform/compiler/gnat/commands/GnatClean.java	Mon Oct 15 23:38:26 2012 +0200
   147.3 @@ -72,7 +72,7 @@
   147.4          try {
   147.5              AdaExecution adaExec = new AdaExecution();
   147.6              adaExec.setCommand(this.getGnatCompiler().getPlatform().getCompilerPath() + "/" + GNAT_CLEAN);
   147.7 -            adaExec.setCommandArgs(" -P" + gpr.getGprFilePath());
   147.8 +            adaExec.setCommandArgs(" -P\"" + gpr.getGprFilePath() + "\"");
   147.9              adaExec.setWorkingDirectory(this.getGnatCompiler().getProjectPath());
  147.10              adaExec.setDisplayName(displayTitle);
  147.11              adaExec.setShowControls(true);
   148.1 --- a/ada.platform/src/org/netbeans/modules/ada/platform/compiler/gnat/commands/GnatMake.java	Tue Oct 02 21:55:21 2012 -0400
   148.2 +++ b/ada.platform/src/org/netbeans/modules/ada/platform/compiler/gnat/commands/GnatMake.java	Mon Oct 15 23:38:26 2012 +0200
   148.3 @@ -72,7 +72,7 @@
   148.4          try {
   148.5              AdaExecution adaExec = new AdaExecution();
   148.6              adaExec.setCommand(this.getGnatCompiler().getPlatform().getCompilerPath() + "/" + GNAT_MAKE);
   148.7 -            adaExec.setCommandArgs(" -P" + gpr.getGprFilePath());
   148.8 +            adaExec.setCommandArgs(" -P\"" + gpr.getGprFilePath() +"\"");
   148.9              adaExec.setWorkingDirectory(this.getGnatCompiler().getProjectPath());
  148.10              adaExec.setDisplayName(displayTitle);
  148.11              adaExec.setShowControls(true);
   149.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   149.2 +++ b/ada.platform/src/org/netbeans/modules/ada/platform/compiler/jgnat/JGnatCompiler.java	Mon Oct 15 23:38:26 2012 +0200
   149.3 @@ -0,0 +1,238 @@
   149.4 +/*
   149.5 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
   149.6 + *
   149.7 + * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
   149.8 + *
   149.9 + * The contents of this file are subject to the terms of either the GNU
  149.10 + * General Public License Version 2 only ("GPL") or the Common
  149.11 + * Development and Distribution License("CDDL") (collectively, the
  149.12 + * "License"). You may not use this file except in compliance with the
  149.13 + * License. You can obtain a copy of the License at
  149.14 + * http://www.netbeans.org/cddl-gplv2.html
  149.15 + * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
  149.16 + * specific language governing permissions and limitations under the
  149.17 + * License.  When distributing the software, include this License Header
  149.18 + * Notice in each file and include the License file at
  149.19 + * nbbuild/licenses/CDDL-GPL-2-CP.  Sun designates this
  149.20 + * particular file as subject to the "Classpath" exception as provided
  149.21 + * by Sun in the GPL Version 2 section of the License file that
  149.22 + * accompanied this code. If applicable, add the following below the
  149.23 + * License Header, with the fields enclosed by brackets [] replaced by
  149.24 + * your own identifying information:
  149.25 + * "Portions Copyrighted [year] [name of copyright owner]"
  149.26 + *
  149.27 + * If you wish your version of this file to be governed by only the CDDL
  149.28 + * or only the GPL Version 2, indicate your decision by adding
  149.29 + * "[Contributor] elects to include this software in this distribution
  149.30 + * under the [CDDL or GPL Version 2] license." If you do not indicate a
  149.31 + * single choice of license, a recipient has the option to distribute
  149.32 + * your version of this file under either the CDDL, the GPL Version 2 or
  149.33 + * to extend the choice of license to its licensees as provided above.
  149.34 + * However, if you add GPL Version 2 code and therefore, elected the GPL
  149.35 + * Version 2 license, then the option applies only if the new code is
  149.36 + * made subject to such option by the copyright holder.
  149.37 + *
  149.38 + * Contributor(s):
  149.39 + *
  149.40 + * Portions Copyrighted 2008 Sun Microsystems, Inc.
  149.41 + */
  149.42 +package org.netbeans.modules.ada.platform.compiler.jgnat;
  149.43 +
  149.44 +import java.util.ArrayList;
  149.45 +import java.util.LinkedHashMap;
  149.46 +import java.util.Map;
  149.47 +import org.netbeans.api.ada.platform.AdaException;
  149.48 +import org.netbeans.api.ada.platform.AdaPlatform;
  149.49 +import org.netbeans.spi.ada.platform.Compiler;
  149.50 +import org.netbeans.modules.ada.platform.compiler.jgnat.commands.JGnatCommand;
  149.51 +import org.netbeans.modules.ada.platform.compiler.jgnat.commands.JGnatClean;
  149.52 +import org.netbeans.modules.ada.platform.compiler.jgnat.commands.JGnatMake;
  149.53 +import org.netbeans.modules.ada.platform.compiler.jgnat.commands.JRun;
  149.54 +import org.openide.util.Exceptions;
  149.55 +
  149.56 +/**
  149.57 + *
  149.58 + * @author  Andrea Lucarelli
  149.59 + */
  149.60 +public class JGnatCompiler implements Compiler {
  149.61 +
  149.62 +    private final Map<String, JGnatCommand> jgnatCommands;
  149.63 +    private final AdaPlatform platform;
  149.64 +    private final String projectName;
  149.65 +    private final String projectPath;
  149.66 +    private final ArrayList<String> sourceFolders;
  149.67 +    private final String mainFile;
  149.68 +    private final String adaDialects;
  149.69 +    private final String outputFile;
  149.70 +    private final String commandName;
  149.71 +    private final String spcPostfix;
  149.72 +    private final String bdyPostfix;
  149.73 +    private final String sepPostfix;
  149.74 +    private final String spcExt;
  149.75 +    private final String bdyExt;
  149.76 +    private final String sepExt;
  149.77 +
  149.78 +    /**
  149.79 +     * 
  149.80 +     * @param project
  149.81 +     */
  149.82 +    public JGnatCompiler(AdaPlatform platform, String projectName, String projectPath, ArrayList<String> sourceFolders, String mainFile, String adaDialects, String outputFile, String commandName,
  149.83 +            String spcPostfix, String bdyPostfix, String sepPostfix, String spcExt, String bdyExt, String sepExt) {
  149.84 +
  149.85 +        assert platform != null;
  149.86 +
  149.87 +        this.platform = platform;
  149.88 +        this.projectName = projectName;
  149.89 +        this.projectPath = projectPath;
  149.90 +        this.sourceFolders = sourceFolders;
  149.91 +        this.mainFile = mainFile;
  149.92 +        this.adaDialects = adaDialects;
  149.93 +        this.outputFile = outputFile;
  149.94 +        this.commandName = commandName;
  149.95 +
  149.96 +        jgnatCommands = new LinkedHashMap<String, JGnatCommand>();
  149.97 +        JGnatCommand[] gnatCommandArray = new JGnatCommand[]{
  149.98 +            new JGnatMake(this),
  149.99 +            new JGnatClean(this),
 149.100 +            new JRun(this)
 149.101 +        };
 149.102 +        for (JGnatCommand gnatCommand : gnatCommandArray) {
 149.103 +            jgnatCommands.put(gnatCommand.getCommandId(), gnatCommand);
 149.104 +        }
 149.105 +        this.spcExt = spcExt;
 149.106 +        this.bdyExt = bdyExt;
 149.107 +        this.sepExt = sepExt;
 149.108 +        this.spcPostfix = spcPostfix;
 149.109 +        this.bdyPostfix = bdyPostfix;
 149.110 +        this.sepPostfix = sepPostfix;
 149.111 +    }
 149.112 +
 149.113 +    /**
 149.114 +     *
 149.115 +     * @param commandName
 149.116 +     * @throws IllegalArgumentException
 149.117 +     */
 149.118 +    private void invokeCommand(final String commandName, final String displayTitle, final String args) throws IllegalArgumentException, AdaException {
 149.119 +        final JGnatCommand jgnatCommand = findCommand(commandName);
 149.120 +        assert jgnatCommand != null;
 149.121 +        jgnatCommand.invokeCommand(displayTitle, args);
 149.122 +    }
 149.123 +
 149.124 +    /**
 149.125 +     * 
 149.126 +     * @param commandName
 149.127 +     * @return
 149.128 +     */
 149.129 +    private JGnatCommand findCommand(final String commandName) {
 149.130 +        assert commandName != null;
 149.131 +        return jgnatCommands.get(commandName);
 149.132 +    }
 149.133 +
 149.134 +    @Override
 149.135 +    public void Build() {
 149.136 +        try {
 149.137 +            invokeCommand(JGnatCommand.JVM_GNAT_MAKE, this.getProjectName() + "(" + this.getCommandName() + ")", null);
 149.138 +        } catch (IllegalArgumentException ex) {
 149.139 +            Exceptions.printStackTrace(ex);
 149.140 +        } catch (AdaException ex) {
 149.141 +            Exceptions.printStackTrace(ex);
 149.142 +        }
 149.143 +    }
 149.144 +
 149.145 +    @Override
 149.146 +    public void Run(String args) {
 149.147 +        try {
 149.148 +            invokeCommand(JGnatCommand.RUN, this.getProjectName() + "(" + this.getCommandName() + ")", args);
 149.149 +        } catch (IllegalArgumentException ex) {
 149.150 +            Exceptions.printStackTrace(ex);
 149.151 +        } catch (AdaException ex) {
 149.152 +            Exceptions.printStackTrace(ex);
 149.153 +        }
 149.154 +    }
 149.155 +
 149.156 +    @Override
 149.157 +    public void Compile() {
 149.158 +        try {
 149.159 +            invokeCommand(JGnatCommand.JVM_GNAT_COMPILE, this.getProjectName() + "(" + this.getCommandName() + ")", null);
 149.160 +        } catch (IllegalArgumentException ex) {
 149.161 +            Exceptions.printStackTrace(ex);
 149.162 +        } catch (AdaException ex) {
 149.163 +            Exceptions.printStackTrace(ex);
 149.164 +        }
 149.165 +    }
 149.166 +
 149.167 +    @Override
 149.168 +    public void Clean() {
 149.169 +        try {
 149.170 +            invokeCommand(JGnatCommand.JVM_GNAT_CLEAN, this.getProjectName() + "(" + this.getCommandName() + ")", null);
 149.171 +        } catch (IllegalArgumentException ex) {
 149.172 +            Exceptions.printStackTrace(ex);
 149.173 +        } catch (AdaException ex) {
 149.174 +            Exceptions.printStackTrace(ex);
 149.175 +        }
 149.176 +    }
 149.177 +
 149.178 +    @Override
 149.179 +    public AdaPlatform getPlatform() {
 149.180 +        return platform;
 149.181 +    }
 149.182 +
 149.183 +    @Override
 149.184 +    public String getExecutableFile() {
 149.185 +        return outputFile;
 149.186 +    }
 149.187 +
 149.188 +    @Override
 149.189 +    public String getCommandName() {
 149.190 +        return commandName;
 149.191 +    }
 149.192 +
 149.193 +    @Override
 149.194 +    public String getMainFile() {
 149.195 +        return mainFile;
 149.196 +    }
 149.197 +
 149.198 +    @Override
 149.199 +    public String getAdaDialects() {
 149.200 +        return adaDialects;
 149.201 +    }
 149.202 +
 149.203 +    @Override
 149.204 +    public String getProjectPath() {
 149.205 +        return projectPath;
 149.206 +    }
 149.207 +
 149.208 +    @Override
 149.209 +    public String getProjectName() {
 149.210 +        return projectName;
 149.211 +    }
 149.212 +
 149.213 +    @Override
 149.214 +    public ArrayList<String> getSourceFolders() {
 149.215 +        return sourceFolders;
 149.216 +    }
 149.217 +
 149.218 +    public String getBdyExt() {
 149.219 +        return bdyExt;
 149.220 +    }
 149.221 +
 149.222 +    public String getSepExt() {
 149.223 +        return sepExt;
 149.224 +    }
 149.225 +
 149.226 +    public String getSpcExt() {
 149.227 +        return spcExt;
 149.228 +    }
 149.229 +
 149.230 +    public String getBdyPostfix() {
 149.231 +        return bdyPostfix;
 149.232 +    }
 149.233 +
 149.234 +    public String getSepPostfix() {
 149.235 +        return sepPostfix;
 149.236 +    }
 149.237 +
 149.238 +    public String getSpcPostfix() {
 149.239 +        return spcPostfix;
 149.240 +    }
 149.241 +}
   150.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   150.2 +++ b/ada.platform/src/org/netbeans/modules/ada/platform/compiler/jgnat/JGnatProject.java	Mon Oct 15 23:38:26 2012 +0200
   150.3 @@ -0,0 +1,180 @@
   150.4 +/*
   150.5 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
   150.6 + *
   150.7 + * Copyright 1997-2007 Sun Microsystems, Inc. All rights reserved.
   150.8 + *
   150.9 + * The contents of this file are subject to the terms of either the GNU
  150.10 + * General Public License Version 2 only ("GPL") or the Common
  150.11 + * Development and Distribution License("CDDL") (collectively, the
  150.12 + * "License"). You may not use this file except in compliance with the
  150.13 + * License. You can obtain a copy of the License at
  150.14 + * http://www.netbeans.org/cddl-gplv2.html
  150.15 + * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
  150.16 + * specific language governing permissions and limitations under the
  150.17 + * License.  When distributing the software, include this License Header
  150.18 + * Notice in each file and include the License file at
  150.19 + * nbbuild/licenses/CDDL-GPL-2-CP.  Sun designates this
  150.20 + * particular file as subject to the "Classpath" exception as provided
  150.21 + * by Sun in the GPL Version 2 section of the License file that
  150.22 + * accompanied this code. If applicable, add the following below the
  150.23 + * License Header, with the fields enclosed by brackets [] replaced by
  150.24 + * your own identifying information:
  150.25 + * "Portions Copyrighted [year] [name of copyright owner]"
  150.26 + *
  150.27 + * Contributor(s):
  150.28 + *
  150.29 + * The Original Software is NetBeans. The Initial Developer of the Original
  150.30 + * Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun
  150.31 + * Microsystems, Inc. All Rights Reserved.
  150.32 + *
  150.33 + * If you wish your version of this file to be governed by only the CDDL
  150.34 + * or only the GPL Version 2, indicate your decision by adding
  150.35 + * "[Contributor] elects to include this software in this distribution
  150.36 + * under the [CDDL or GPL Version 2] license." If you do not indicate a
  150.37 + * single choice of license, a recipient has the option to distribute
  150.38 + * your version of this file under either the CDDL, the GPL Version 2 or
  150.39 + * to extend the choice of license to its licensees as provided above.
  150.40 + * However, if you add GPL Version 2 code and therefore, elected the GPL
  150.41 + * Version 2 license, then the option applies only if the new code is
  150.42 + * made subject to such option by the copyright holder.
  150.43 + */
  150.44 +package org.netbeans.modules.ada.platform.compiler.jgnat;
  150.45 +
  150.46 +import java.io.BufferedReader;
  150.47 +import java.io.BufferedWriter;
  150.48 +import java.io.File;
  150.49 +import java.io.FileOutputStream;
  150.50 +import java.io.IOException;
  150.51 +import java.io.InputStream;
  150.52 +import java.io.InputStreamReader;
  150.53 +import java.io.OutputStreamWriter;
  150.54 +import java.net.URL;
  150.55 +import java.util.ArrayList;
  150.56 +import java.util.StringTokenizer;
  150.57 +import org.netbeans.modules.ada.platform.compiler.jgnat.commands.JGnatCommand;
  150.58 +import org.openide.filesystems.FileUtil;
  150.59 +
  150.60 +public class JGnatProject {
  150.61 +
  150.62 +    private final JGnatCompiler jgnat;
  150.63 +    private String gprFilePath;
  150.64 +
  150.65 +    public JGnatProject(final JGnatCompiler jgnat) {
  150.66 +        this.jgnat = jgnat;
  150.67 +    }
  150.68 +
  150.69 +    public void write() {
  150.70 +        cleanup();
  150.71 +        writeGprfileImpl();
  150.72 +    }
  150.73 +
  150.74 +    private void cleanup() {
  150.75 +        // Remove all *.gpr files
  150.76 +        File folder = new File(jgnat.getProjectPath() + '/' + "nbproject"); // UNIX path // NOI18N
  150.77 +        File[] children = folder.listFiles();
  150.78 +        if (children != null) {
  150.79 +            for (int i = 0; i < children.length; i++) {
  150.80 +                if (children[i].getName().endsWith("gpr")) { // NOI18N
  150.81 +                    children[i].delete();
  150.82 +                }
  150.83 +            }
  150.84 +        }
  150.85 +    }
  150.86 +
  150.87 +    public String removeSpaces(String s) {
  150.88 +        StringTokenizer st = new StringTokenizer(s, " ", false);
  150.89 +        String t = "";
  150.90 +        while (st.hasMoreElements()) {
  150.91 +            t += st.nextElement();
  150.92 +        }
  150.93 +        return t;
  150.94 +    }
  150.95 +
  150.96 +    private void writeGprfileImpl() {
  150.97 +        String resource = "/org/netbeans/modules/ada/platform/resources/GprFileTemplate.gpr"; // NOI18N
  150.98 +        InputStream is = null;
  150.99 +        FileOutputStream os = null;
 150.100 +        try {
 150.101 +            URL url = new URL("nbresloc:" + resource); // NOI18N
 150.102 +            is = url.openStream();
 150.103 +        } catch (Exception e) {
 150.104 +            is = JGnatCommand.class.getResourceAsStream(resource);
 150.105 +        }
 150.106 +
 150.107 +        String projectName = removeSpaces(jgnat.getProjectName());
 150.108 +        String mainFile = jgnat.getMainFile();
 150.109 +        String adaDialects = jgnat.getAdaDialects();
 150.110 +        String execFile = jgnat.getExecutableFile();
 150.111 +        ArrayList<String> sources = jgnat.getSourceFolders();
 150.112 +
 150.113 +        gprFilePath = jgnat.getProjectPath() + '/' + "nbproject" + '/' + projectName + ".gpr"; // UNIX path // NOI18N
 150.114 +        try {
 150.115 +            os = new FileOutputStream(gprFilePath);
 150.116 +        } catch (IOException ioe) {
 150.117 +        }
 150.118 +
 150.119 +        if (is == null || os == null) {
 150.120 +            // FIXUP: ERROR
 150.121 +            return;
 150.122 +        }
 150.123 +
 150.124 +        BufferedReader br = new BufferedReader(new InputStreamReader(is));
 150.125 +        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(os));
 150.126 +
 150.127 +        try {
 150.128 +            while (true) {
 150.129 +                String line = br.readLine();
 150.130 +                if (line == null) {
 150.131 +                    break;
 150.132 +                }
 150.133 +                if (line.indexOf("<PN>") >= 0) { // NOI18N
 150.134 +                    line = line.replaceFirst("<PN>", projectName); // NOI18N
 150.135 +                }
 150.136 +                if (line.indexOf("<SRC>") >= 0) { // NOI18N
 150.137 +                    String srcDirs = new String();
 150.138 +                    for (int index = 0; index < sources.size(); index++) {
 150.139 +                        srcDirs = srcDirs + "\"" + FileUtil.toFileObject(new File(sources.get(index))).getPath() + "/**\"";
 150.140 +                        if (index < sources.size() - 1) {
 150.141 +                            srcDirs = srcDirs + ",";
 150.142 +                        }
 150.143 +                    }
 150.144 +                    line = line.replaceFirst("\"<SRC>\"", srcDirs); // NOI18N
 150.145 +                }
 150.146 +                if (line.indexOf("<MAINFILE>") >= 0) { // NOI18N
 150.147 +                    line = line.replaceFirst("<MAINFILE>", mainFile); // NOI18N
 150.148 +                }
 150.149 +                if (line.indexOf("<DIALECTS>") >= 0) { // NOI18N
 150.150 +                    line = line.replaceFirst("<DIALECTS>", adaDialects); // NOI18N
 150.151 +                }
 150.152 +                if (line.indexOf("<EXECFILE>") >= 0) { // NOI18N
 150.153 +                    line = line.replaceFirst("<EXECFILE>", execFile); // NOI18N
 150.154 +                }
 150.155 +                if (line.indexOf("<SPC-EXT>") >= 0) { // NOI18N
 150.156 +                    line = line.replaceFirst("<SPC-EXT>", jgnat.getSpcExt()); // NOI18N
 150.157 +                }
 150.158 +                if (line.indexOf("<BDY-EXT>") >= 0) { // NOI18N
 150.159 +                    line = line.replaceFirst("<BDY-EXT>", jgnat.getBdyExt()); // NOI18N
 150.160 +                }
 150.161 +                if (line.indexOf("<EXT-SEP>") >= 0) { // NOI18N
 150.162 +                    line = line.replaceFirst("<EXT-SEP>", jgnat.getSepExt()); // NOI18N
 150.163 +                }
 150.164 +                if (line.indexOf("<SPC-POSTFIX>") >= 0) { // NOI18N
 150.165 +                    line = line.replaceFirst("<SPC-POSTFIX>", jgnat.getSpcPostfix()); // NOI18N
 150.166 +                }
 150.167 +                if (line.indexOf("<BDY-POSTFIX>") >= 0) { // NOI18N
 150.168 +                    line = line.replaceFirst("<BDY-POSTFIX>", jgnat.getBdyPostfix()); // NOI18N
 150.169 +                }
 150.170 +                bw.write(line + "\n"); // NOI18N
 150.171 +            }
 150.172 +            br.close();
 150.173 +            bw.flush();
 150.174 +            bw.close();
 150.175 +        } catch (Exception e) {
 150.176 +        }
 150.177 +
 150.178 +    }
 150.179 +
 150.180 +    public String getGprFilePath() {
 150.181 +        return this.gprFilePath;
 150.182 +    }
 150.183 +}
   151.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   151.2 +++ b/ada.platform/src/org/netbeans/modules/ada/platform/compiler/jgnat/commands/JGnatClean.java	Mon Oct 15 23:38:26 2012 +0200
   151.3 @@ -0,0 +1,95 @@
   151.4 +/*
   151.5 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
   151.6 + *
   151.7 + * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
   151.8 + *
   151.9 + * The contents of this file are subject to the terms of either the GNU
  151.10 + * General Public License Version 2 only ("GPL") or the Common
  151.11 + * Development and Distribution License("CDDL") (collectively, the
  151.12 + * "License"). You may not use this file except in compliance with the
  151.13 + * License. You can obtain a copy of the License at
  151.14 + * http://www.netbeans.org/cddl-gplv2.html
  151.15 + * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
  151.16 + * specific language governing permissions and limitations under the
  151.17 + * License.  When distributing the software, include this License Header
  151.18 + * Notice in each file and include the License file at
  151.19 + * nbbuild/licenses/CDDL-GPL-2-CP.  Sun designates this
  151.20 + * particular file as subject to the "Classpath" exception as provided
  151.21 + * by Sun in the GPL Version 2 section of the License file that
  151.22 + * accompanied this code. If applicable, add the following below the
  151.23 + * License Header, with the fields enclosed by brackets [] replaced by
  151.24 + * your own identifying information:
  151.25 + * "Portions Copyrighted [year] [name of copyright owner]"
  151.26 + *
  151.27 + * If you wish your version of this file to be governed by only the CDDL
  151.28 + * or only the GPL Version 2, indicate your decision by adding
  151.29 + * "[Contributor] elects to include this software in this distribution
  151.30 + * under the [CDDL or GPL Version 2] license." If you do not indicate a
  151.31 + * single choice of license, a recipient has the option to distribute
  151.32 + * your version of this file under either the CDDL, the GPL Version 2 or
  151.33 + * to extend the choice of license to its licensees as provided above.
  151.34 + * However, if you add GPL Version 2 code and therefore, elected the GPL
  151.35 + * Version 2 license, then the option applies only if the new code is
  151.36 + * made subject to such option by the copyright holder.
  151.37 + *
  151.38 + * Contributor(s):
  151.39 + *
  151.40 + * Portions Copyrighted 2008 Sun Microsystems, Inc.
  151.41 + */
  151.42 +package org.netbeans.modules.ada.platform.compiler.jgnat.commands;
  151.43 +
  151.44 +import java.util.concurrent.Future;
  151.45 +import org.netbeans.api.ada.platform.AdaException;
  151.46 +import org.netbeans.api.ada.platform.AdaExecution;
  151.47 +import org.netbeans.modules.ada.platform.compiler.jgnat.JGnatCompiler;
  151.48 +import org.netbeans.modules.ada.platform.compiler.jgnat.JGnatProject;
  151.49 +import org.openide.util.Exceptions;
  151.50 +
  151.51 +/**
  151.52 + *
  151.53 + * @author Andrea Lucarelli
  151.54 + */
  151.55 +public class JGnatClean extends JGnatCommand {
  151.56 +
  151.57 +    private static final String COMMAND = JVM_GNAT_CLEAN;
  151.58 +
  151.59 +    public JGnatClean(JGnatCompiler jgnatCompiler) {
  151.60 +        super(jgnatCompiler);
  151.61 +    }
  151.62 +
  151.63 +    @Override
  151.64 +    public String getCommandId() {
  151.65 +        return COMMAND;
  151.66 +    }
  151.67 +
  151.68 +    @Override
  151.69 +    public void invokeCommand(String displayTitle, String args) throws IllegalArgumentException, AdaException {
  151.70 +
  151.71 +        // Make the GPR file
  151.72 +        JGnatProject gpr = new JGnatProject(this.getJGnatCompiler());
  151.73 +        gpr.write();
  151.74 +
  151.75 +        try {
  151.76 +            AdaExecution adaExec = new AdaExecution();
  151.77 +            adaExec.setCommand(this.getJGnatCompiler().getPlatform().getCompilerPath() + "/" + COMMAND);
  151.78 +            adaExec.setCommandArgs(" -P\"" + gpr.getGprFilePath() + "\"");
  151.79 +            adaExec.setWorkingDirectory(this.getJGnatCompiler().getProjectPath());
  151.80 +            adaExec.setDisplayName(displayTitle);
  151.81 +            adaExec.setShowControls(true);
  151.82 +            adaExec.setShowInput(false);
  151.83 +            adaExec.setShowWindow(true);
  151.84 +            adaExec.setShowProgress(true);
  151.85 +            adaExec.setShowSuspended(true);
  151.86 +            //adaExec.attachOutputProcessor();
  151.87 +            adaExec.setRedirectError(true);
  151.88 +            Future<Integer> result = adaExec.run();
  151.89 +            Integer value = result.get();
  151.90 +            if (value.intValue() == 0) {
  151.91 +            } else {
  151.92 +            }
  151.93 +        } catch (Exception ex) {
  151.94 +            Exceptions.printStackTrace(ex);
  151.95 +        }
  151.96 +
  151.97 +    }
  151.98 +}
   152.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   152.2 +++ b/ada.platform/src/org/netbeans/modules/ada/platform/compiler/jgnat/commands/JGnatCommand.java	Mon Oct 15 23:38:26 2012 +0200
   152.3 @@ -0,0 +1,82 @@
   152.4 +/*
   152.5 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
   152.6 + *
   152.7 + * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
   152.8 + *
   152.9 + * The contents of this file are subject to the terms of either the GNU
  152.10 + * General Public License Version 2 only ("GPL") or the Common
  152.11 + * Development and Distribution License("CDDL") (collectively, the
  152.12 + * "License"). You may not use this file except in compliance with the
  152.13 + * License. You can obtain a copy of the License at
  152.14 + * http://www.netbeans.org/cddl-gplv2.html
  152.15 + * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
  152.16 + * specific language governing permissions and limitations under the
  152.17 + * License.  When distributing the software, include this License Header
  152.18 + * Notice in each file and include the License file at
  152.19 + * nbbuild/licenses/CDDL-GPL-2-CP.  Sun designates this
  152.20 + * particular file as subject to the "Classpath" exception as provided
  152.21 + * by Sun in the GPL Version 2 section of the License file that
  152.22 + * accompanied this code. If applicable, add the following below the
  152.23 + * License Header, with the fields enclosed by brackets [] replaced by
  152.24 + * your own identifying information:
  152.25 + * "Portions Copyrighted [year] [name of copyright owner]"
  152.26 + *
  152.27 + * If you wish your version of this file to be governed by only the CDDL
  152.28 + * or only the GPL Version 2, indicate your decision by adding
  152.29 + * "[Contributor] elects to include this software in this distribution
  152.30 + * under the [CDDL or GPL Version 2] license." If you do not indicate a
  152.31 + * single choice of license, a recipient has the option to distribute
  152.32 + * your version of this file under either the CDDL, the GPL Version 2 or
  152.33 + * to extend the choice of license to its licensees as provided above.
  152.34 + * However, if you add GPL Version 2 code and therefore, elected the GPL
  152.35 + * Version 2 license, then the option applies only if the new code is
  152.36 + * made subject to such option by the copyright holder.
  152.37 + *
  152.38 + * Contributor(s):
  152.39 + *
  152.40 + * Portions Copyrighted 2008 Sun Microsystems, Inc.
  152.41 + */
  152.42 +package org.netbeans.modules.ada.platform.compiler.jgnat.commands;
  152.43 +
  152.44 +import org.netbeans.api.ada.platform.AdaException;
  152.45 +import org.netbeans.modules.ada.platform.compiler.jgnat.JGnatCompiler;
  152.46 +
  152.47 +/**
  152.48 + * 
  152.49 + * @author Andrea Lucarelli
  152.50 + */
  152.51 +public abstract class JGnatCommand {
  152.52 +
  152.53 +    public static final String RUN = "run"; // NOI18N
  152.54 +
  152.55 +    // List of GNAT available commands
  152.56 +    public static final String JVM_GNAT_BIND = "jvm-gnatbind"; // NOI18N
  152.57 +    public static final String JVM_GNAT_CHOP = "jvm-gnatchop"; // NOI18N
  152.58 +    public static final String JVM_GNAT_CLEAN = "jvm-gnatclean"; // NOI18N
  152.59 +    public static final String JVM_GNAT_COMPILE = "jvm-gnatmake -f -u -c"; // NOI18N
  152.60 +    public static final String JVM_GNAT_ELIM = "jvm-gnatelim"; // NOI18N
  152.61 +    public static final String JVM_GNAT_FIND = "jvm-gnatfind"; // NOI18N
  152.62 +    public static final String JVM_GNAT_KRUNCH = "jvm-gnatkr"; // NOI18N
  152.63 +    public static final String JVM_GNAT_LINK = "jvm-gnatlink"; // NOI18N
  152.64 +    public static final String JVM_GNAT_LIST = "jvm-gnatls"; // NOI18N
  152.65 +    public static final String JVM_GNAT_MAKE = "jvm-gnatmake"; // NOI18N
  152.66 +    public static final String JVM_GNAT_NAME = "jvm-gnatname"; // NOI18N
  152.67 +    public static final String JVM_GNAT_PREPROCESS = "jvm-gnatprep"; // NOI18N
  152.68 +    public static final String JVM_GNAT_PRETTY = "jvm-gnatpp"; // NOI18N
  152.69 +    public static final String JVM_GNAT_STUB = "jvm-gnatstub"; // NOI18N
  152.70 +    public static final String JVM_GNAT_XREF = "jvm-gnatxref"; // NOI18N
  152.71 +
  152.72 +    private final JGnatCompiler jgnatCompiler;
  152.73 +
  152.74 +    public JGnatCommand(JGnatCompiler jgnatCompiler) {
  152.75 +        this.jgnatCompiler = jgnatCompiler;
  152.76 +    }
  152.77 +
  152.78 +    public abstract String getCommandId();
  152.79 +
  152.80 +    public abstract void invokeCommand(String displayTitle, String args) throws IllegalArgumentException, AdaException;
  152.81 +
  152.82 +    public JGnatCompiler getJGnatCompiler() {
  152.83 +        return jgnatCompiler;
  152.84 +    }
  152.85 +}
   153.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   153.2 +++ b/ada.platform/src/org/netbeans/modules/ada/platform/compiler/jgnat/commands/JGnatMake.java	Mon Oct 15 23:38:26 2012 +0200
   153.3 @@ -0,0 +1,95 @@
   153.4 +/*
   153.5 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
   153.6 + *
   153.7 + * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
   153.8 + *
   153.9 + * The contents of this file are subject to the terms of either the GNU
  153.10 + * General Public License Version 2 only ("GPL") or the Common
  153.11 + * Development and Distribution License("CDDL") (collectively, the
  153.12 + * "License"). You may not use this file except in compliance with the
  153.13 + * License. You can obtain a copy of the License at
  153.14 + * http://www.netbeans.org/cddl-gplv2.html
  153.15 + * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
  153.16 + * specific language governing permissions and limitations under the
  153.17 + * License.  When distributing the software, include this License Header
  153.18 + * Notice in each file and include the License file at
  153.19 + * nbbuild/licenses/CDDL-GPL-2-CP.  Sun designates this
  153.20 + * particular file as subject to the "Classpath" exception as provided
  153.21 + * by Sun in the GPL Version 2 section of the License file that
  153.22 + * accompanied this code. If applicable, add the following below the
  153.23 + * License Header, with the fields enclosed by brackets [] replaced by
  153.24 + * your own identifying information:
  153.25 + * "Portions Copyrighted [year] [name of copyright owner]"
  153.26 + *
  153.27 + * If you wish your version of this file to be governed by only the CDDL
  153.28 + * or only the GPL Version 2, indicate your decision by adding
  153.29 + * "[Contributor] elects to include this software in this distribution
  153.30 + * under the [CDDL or GPL Version 2] license." If you do not indicate a
  153.31 + * single choice of license, a recipient has the option to distribute
  153.32 + * your version of this file under either the CDDL, the GPL Version 2 or
  153.33 + * to extend the choice of license to its licensees as provided above.
  153.34 + * However, if you add GPL Version 2 code and therefore, elected the GPL
  153.35 + * Version 2 license, then the option applies only if the new code is
  153.36 + * made subject to such option by the copyright holder.
  153.37 + *
  153.38 + * Contributor(s):
  153.39 + *
  153.40 + * Portions Copyrighted 2008 Sun Microsystems, Inc.
  153.41 + */
  153.42 +package org.netbeans.modules.ada.platform.compiler.jgnat.commands;
  153.43 +
  153.44 +import java.util.concurrent.Future;
  153.45 +import org.netbeans.api.ada.platform.AdaException;
  153.46 +import org.netbeans.api.ada.platform.AdaExecution;
  153.47 +import org.netbeans.modules.ada.platform.compiler.jgnat.JGnatCompiler;
  153.48 +import org.netbeans.modules.ada.platform.compiler.jgnat.JGnatProject;
  153.49 +import org.openide.util.Exceptions;
  153.50 +
  153.51 +/**
  153.52 + *
  153.53 + * @author Andrea Lucarelli
  153.54 + */
  153.55 +public class JGnatMake extends JGnatCommand {
  153.56 +
  153.57 +    private static final String COMMAND = JVM_GNAT_MAKE;
  153.58 +
  153.59 +    public JGnatMake(JGnatCompiler jgnatCompiler) {
  153.60 +        super(jgnatCompiler);
  153.61 +    }
  153.62 +
  153.63 +    @Override
  153.64 +    public String getCommandId() {
  153.65 +        return COMMAND;
  153.66 +    }
  153.67 +
  153.68 +    @Override
  153.69 +    public void invokeCommand(String displayTitle, String args) throws IllegalArgumentException, AdaException {
  153.70 +
  153.71 +        // Make the GPR file
  153.72 +        JGnatProject gpr = new JGnatProject(this.getJGnatCompiler());
  153.73 +        gpr.write();
  153.74 +
  153.75 +        try {
  153.76 +            AdaExecution adaExec = new AdaExecution();
  153.77 +            adaExec.setCommand(this.getJGnatCompiler().getPlatform().getCompilerPath() + "/" + COMMAND);
  153.78 +            adaExec.setCommandArgs(" -P\"" + gpr.getGprFilePath() +"\"");
  153.79 +            adaExec.setWorkingDirectory(this.getJGnatCompiler().getProjectPath());
  153.80 +            adaExec.setDisplayName(displayTitle);
  153.81 +            adaExec.setShowControls(true);
  153.82 +            adaExec.setShowInput(false);
  153.83 +            adaExec.setShowWindow(true);
  153.84 +            adaExec.setShowProgress(true);
  153.85 +            adaExec.setShowSuspended(true);
  153.86 +            //adaExec.attachOutputProcessor();
  153.87 +            adaExec.setRedirectError(true);
  153.88 +            Future<Integer> result = adaExec.run();
  153.89 +            Integer value = result.get();
  153.90 +            if (value.intValue() == 0) {
  153.91 +            } else {
  153.92 +            }
  153.93 +        } catch (Exception ex) {
  153.94 +            Exceptions.printStackTrace(ex);
  153.95 +        }
  153.96 +
  153.97 +    }
  153.98 +}
   154.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   154.2 +++ b/ada.platform/src/org/netbeans/modules/ada/platform/compiler/jgnat/commands/JRun.java	Mon Oct 15 23:38:26 2012 +0200
   154.3 @@ -0,0 +1,95 @@
   154.4 +/*
   154.5 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
   154.6 + *
   154.7 + * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
   154.8 + *
   154.9 + * The contents of this file are subject to the terms of either the GNU
  154.10 + * General Public License Version 2 only ("GPL") or the Common
  154.11 + * Development and Distribution License("CDDL") (collectively, the
  154.12 + * "License"). You may not use this file except in compliance with the
  154.13 + * License. You can obtain a copy of the License at
  154.14 + * http://www.netbeans.org/cddl-gplv2.html
  154.15 + * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
  154.16 + * specific language governing permissions and limitations under the
  154.17 + * License.  When distributing the software, include this License Header
  154.18 + * Notice in each file and include the License file at
  154.19 + * nbbuild/licenses/CDDL-GPL-2-CP.  Sun designates this
  154.20 + * particular file as subject to the "Classpath" exception as provided
  154.21 + * by Sun in the GPL Version 2 section of the License file that
  154.22 + * accompanied this code. If applicable, add the following below the
  154.23 + * License Header, with the fields enclosed by brackets [] replaced by
  154.24 + * your own identifying information:
  154.25 + * "Portions Copyrighted [year] [name of copyright owner]"
  154.26 + *
  154.27 + * If you wish your version of this file to be governed by only the CDDL
  154.28 + * or only the GPL Version 2, indicate your decision by adding
  154.29 + * "[Contributor] elects to include this software in this distribution
  154.30 + * under the [CDDL or GPL Version 2] license." If you do not indicate a
  154.31 + * single choice of license, a recipient has the option to distribute
  154.32 + * your version of this file under either the CDDL, the GPL Version 2 or
  154.33 + * to extend the choice of license to its licensees as provided above.
  154.34 + * However, if you add GPL Version 2 code and therefore, elected the GPL
  154.35 + * Version 2 license, then the option applies only if the new code is
  154.36 + * made subject to such option by the copyright holder.
  154.37 + *
  154.38 + * Contributor(s):
  154.39 + *
  154.40 + * Portions Copyrighted 2008 Sun Microsystems, Inc.
  154.41 + */
  154.42 +package org.netbeans.modules.ada.platform.compiler.jgnat.commands;
  154.43 +
  154.44 +import java.util.concurrent.Future;
  154.45 +import org.netbeans.api.ada.platform.AdaException;
  154.46 +import org.netbeans.api.ada.platform.AdaExecution;
  154.47 +import org.netbeans.modules.ada.platform.compiler.jgnat.JGnatProject;
  154.48 +import org.netbeans.modules.ada.platform.compiler.jgnat.JGnatCompiler;
  154.49 +import org.openide.util.Exceptions;
  154.50 +
  154.51 +/**
  154.52 + *
  154.53 + * @author Andrea Lucarelli
  154.54 + */
  154.55 +public class JRun extends JGnatCommand {
  154.56 +
  154.57 +    private static final String COMMAND_ID = RUN;
  154.58 +
  154.59 +    public JRun(JGnatCompiler jgnatCompiler) {
  154.60 +        super(jgnatCompiler);
  154.61 +    }
  154.62 +
  154.63 +    @Override
  154.64 +    public String getCommandId() {
  154.65 +        return COMMAND_ID;
  154.66 +    }
  154.67 +
  154.68 +    @Override
  154.69 +    public void invokeCommand(String displayTitle, String args) throws IllegalArgumentException, AdaException {
  154.70 +
  154.71 +        // Make the GPR file
  154.72 +        JGnatProject gpr = new JGnatProject(this.getJGnatCompiler());
  154.73 +        gpr.write();
  154.74 +
  154.75 +        try {
  154.76 +            AdaExecution adaExec = new AdaExecution();
  154.77 +            adaExec.setCommand(this.getJGnatCompiler().getProjectPath() + "/dist/" + this.getJGnatCompiler().getExecutableFile());
  154.78 +            adaExec.setCommandArgs(args);
  154.79 +            adaExec.setWorkingDirectory(this.getJGnatCompiler().getProjectPath());
  154.80 +            adaExec.setDisplayName(displayTitle);
  154.81 +            adaExec.setShowControls(true);
  154.82 +            adaExec.setShowInput(false);
  154.83 +            adaExec.setShowWindow(true);
  154.84 +            adaExec.setShowProgress(true);
  154.85 +            adaExec.setShowSuspended(true);
  154.86 +            //adaExec.attachOutputProcessor();
  154.87 +            adaExec.setRedirectError(true);
  154.88 +            Future<Integer> result = adaExec.run();
  154.89 +            Integer value = result.get();
  154.90 +            if (value.intValue() == 0) {
  154.91 +            } else {
  154.92 +            }
  154.93 +        } catch (Exception ex) {
  154.94 +            Exceptions.printStackTrace(ex);
  154.95 +        }
  154.96 +
  154.97 +    }
  154.98 +}
   155.1 --- a/ada.platform/src/org/netbeans/modules/ada/platform/resources/GprFileTemplate.gpr	Tue Oct 02 21:55:21 2012 -0400
   155.2 +++ b/ada.platform/src/org/netbeans/modules/ada/platform/resources/GprFileTemplate.gpr	Mon Oct 15 23:38:26 2012 +0200
   155.3 @@ -22,7 +22,7 @@
   155.4     end Naming;
   155.5  
   155.6     package Compiler is
   155.7 -      for Default_Switches ("ada") use ("-gnat95");
   155.8 +      for Default_Switches ("ada") use ("-gnat<DIALECTS>");
   155.9     end Compiler;
  155.10  
  155.11     for Languages use ("Ada", "C", "C++");
   156.1 --- a/ada.platform/src/org/netbeans/modules/ada/platform/ui/Bundle.properties	Tue Oct 02 21:55:21 2012 -0400
   156.2 +++ b/ada.platform/src/org/netbeans/modules/ada/platform/ui/Bundle.properties	Mon Oct 15 23:38:26 2012 +0200
   156.3 @@ -72,16 +72,17 @@
   156.4  PlatformsCustomizer.removeButton.text=Remove
   156.5  PlatformsCustomizer.autoDetectButton.text=Auto Detect
   156.6  PlatformsCustomizer.platfromNameLabel.text=Platform Name
   156.7 -PlatformsCustomizer.jLabel6.text=jLabel6
   156.8  PlatformsCustomizer.makeDefaultButton.text=Make Default
   156.9  PlatformsCustomizer.moveDownPath.text=Move Down
  156.10  PlatformsCustomizer.moveUpPath.text=Move Up
  156.11  PlatformsCustomizer.addPath.text=Add...
  156.12  PlatformsCustomizer.removePath.text=Remove
  156.13 -PlatformsCustomizer.compilerCommandLabel.text=Compiler Command
  156.14 +PlatformsCustomizer.compilerCommandLabel.text=GNAT Compiler Command
  156.15  PlatformsCustomizer.platformName.text_1=
  156.16  PlatformsCustomizer.otherInfoLabel.text=Platform info
  156.17  PlatformsCustomizer.compilerCommand.text=
  156.18  PlatformsCustomizer.adaPathPanel.TabConstraints.tabTitle_1=Ada Path
  156.19  PlatformsCustomizer.platformInfoTextField.text=
  156.20  PlatformsCustomizer.autoDetectLabel.text=Detecting Ada Platforms
  156.21 +PlatformsCustomizer.jvmCompilerCommandLabel.text=JVM Compiler Command
  156.22 +PlatformsCustomizer.jvmCompilerCommand.text=
   157.1 --- a/ada.platform/src/org/netbeans/modules/ada/platform/ui/PlatformsCustomizer.form	Tue Oct 02 21:55:21 2012 -0400
   157.2 +++ b/ada.platform/src/org/netbeans/modules/ada/platform/ui/PlatformsCustomizer.form	Mon Oct 15 23:38:26 2012 +0200
   157.3 @@ -1,22 +1,13 @@
   157.4 -<?xml version="1.0" encoding="UTF-8" ?>
   157.5 +<?xml version="1.1" encoding="UTF-8" ?>
   157.6  
   157.7  <Form version="1.5" maxVersion="1.7" type="org.netbeans.modules.form.forminfo.JPanelFormInfo">
   157.8 -  <NonVisualComponents>
   157.9 -    <Component class="javax.swing.JLabel" name="jLabel6">
  157.10 -      <Properties>
  157.11 -        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
  157.12 -          <ResourceString bundle="org/netbeans/modules/ada/platform/ui/Bundle.properties" key="PlatformsCustomizer.jLabel6.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
  157.13 -        </Property>
  157.14 -      </Properties>
  157.15 -    </Component>
  157.16 -  </NonVisualComponents>
  157.17    <AuxValues>
  157.18      <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="1"/>
  157.19      <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
  157.20      <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
  157.21      <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
  157.22      <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="true"/>
  157.23 -    <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="2"/>
  157.24 +    <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
  157.25      <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
  157.26      <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
  157.27      <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
  157.28 @@ -28,18 +19,18 @@
  157.29            <Group type="102" alignment="0" attributes="0">
  157.30                <EmptySpace max="-2" attributes="0"/>
  157.31                <Group type="103" groupAlignment="1" attributes="0">
  157.32 -                  <Component id="makeDefaultButton" alignment="0" pref="130" max="32767" attributes="0"/>
  157.33 -                  <Component id="autoDetectButton" alignment="0" pref="130" max="32767" attributes="1"/>
  157.34 +                  <Component id="makeDefaultButton" alignment="0" pref="168" max="32767" attributes="0"/>
  157.35 +                  <Component id="autoDetectButton" alignment="0" pref="168" max="32767" attributes="1"/>
  157.36                    <Group type="102" alignment="0" attributes="0">
  157.37 -                      <Component id="newButton" max="32767" attributes="0"/>
  157.38 +                      <Component id="newButton" pref="73" max="32767" attributes="0"/>
  157.39                        <EmptySpace min="-2" max="-2" attributes="0"/>
  157.40 -                      <Component id="removeButton" max="32767" attributes="0"/>
  157.41 +                      <Component id="removeButton" pref="89" max="32767" attributes="0"/>
  157.42                    </Group>
  157.43                    <Component id="paltformsListTitleLabel" alignment="0" min="-2" max="-2" attributes="0"/>
  157.44 -                  <Component id="platformsListScrollPanel" alignment="0" pref="130" max="32767" attributes="2"/>
  157.45 +                  <Component id="platformsListScrollPanel" alignment="0" min="-2" pref="168" max="-2" attributes="2"/>
  157.46                </Group>
  157.47                <EmptySpace max="-2" attributes="0"/>
  157.48 -              <Component id="tabbedPane" pref="512" max="32767" attributes="0"/>
  157.49 +              <Component id="tabbedPane" pref="474" max="32767" attributes="0"/>
  157.50                <EmptySpace max="-2" attributes="0"/>
  157.51            </Group>
  157.52        </Group>
  157.53 @@ -52,9 +43,9 @@
  157.54                    <Component id="tabbedPane" alignment="0" pref="321" max="32767" attributes="0"/>
  157.55                    <Group type="102" alignment="0" attributes="0">
  157.56                        <Component id="paltformsListTitleLabel" min="-2" max="-2" attributes="0"/>
  157.57 -                      <EmptySpace min="-2" max="-2" attributes="0"/>
  157.58 +                      <EmptySpace max="-2" attributes="0"/>
  157.59                        <Component id="platformsListScrollPanel" pref="214" max="32767" attributes="0"/>
  157.60 -                      <EmptySpace min="-2" max="-2" attributes="0"/>
  157.61 +                      <EmptySpace max="-2" attributes="0"/>
  157.62                        <Group type="103" groupAlignment="3" attributes="0">
  157.63                            <Component id="removeButton" alignment="3" min="-2" max="-2" attributes="0"/>
  157.64                            <Component id="newButton" alignment="3" min="-2" max="-2" attributes="0"/>
  157.65 @@ -148,44 +139,38 @@
  157.66            <Layout>
  157.67              <DimensionLayout dim="0">
  157.68                <Group type="103" groupAlignment="0" attributes="0">
  157.69 -                  <Group type="102" alignment="0" attributes="0">
  157.70 +                  <Group type="102" attributes="0">
  157.71                        <Group type="103" groupAlignment="0" attributes="0">
  157.72 -                          <Group type="103" groupAlignment="0" attributes="0">
  157.73 -                              <Group type="102" alignment="0" attributes="0">
  157.74 -                                  <EmptySpace max="-2" attributes="0"/>
  157.75 -                                  <Component id="compilerCommandLabel" min="-2" max="-2" attributes="0"/>
  157.76 +                          <Group type="102" alignment="0" attributes="0">
  157.77 +                              <EmptySpace min="-2" pref="10" max="-2" attributes="0"/>
  157.78 +                              <Group type="103" groupAlignment="1" attributes="0">
  157.79 +                                  <Component id="otherInfoLabel" min="-2" pref="91" max="-2" attributes="0"/>
  157.80 +                                  <Group type="103" alignment="1" groupAlignment="0" attributes="0">
  157.81 +                                      <Component id="compilerCommandLabel" alignment="0" min="-2" max="-2" attributes="0"/>
  157.82 +                                      <Component id="platfromNameLabel" alignment="1" min="-2" pref="91" max="-2" attributes="0"/>
  157.83 +                                  </Group>
  157.84                                </Group>
  157.85 -                              <Group type="102" alignment="1" attributes="0">
  157.86 -                                  <EmptySpace max="-2" attributes="0"/>
  157.87 -                                  <Component id="platfromNameLabel" min="-2" pref="91" max="-2" attributes="0"/>
  157.88 +                              <EmptySpace max="-2" attributes="0"/>
  157.89 +                              <Group type="103" groupAlignment="0" attributes="0">
  157.90 +                                  <Component id="compilerCommand" pref="324" max="32767" attributes="0"/>
  157.91 +                                  <Component id="platformName" alignment="0" pref="324" max="32767" attributes="0"/>
  157.92 +                                  <Component id="platformInfoTextField" alignment="1" pref="324" max="32767" attributes="0"/>
  157.93                                </Group>
  157.94                            </Group>
  157.95 -                          <Group type="102" attributes="0">
  157.96 +                          <Group type="102" alignment="1" attributes="0">
  157.97 +                              <EmptySpace pref="192" max="32767" attributes="0"/>
  157.98 +                              <Component id="autoDetectLabel" min="-2" max="-2" attributes="0"/>
  157.99 +                              <EmptySpace min="5" pref="5" max="5" attributes="0"/>
 157.100 +                              <Component id="autoDetectProgress" min="-2" max="-2" attributes="0"/>
 157.101 +                          </Group>
 157.102 +                          <Group type="102" alignment="1" attributes="0">
 157.103 +                              <EmptySpace min="-2" pref="19" max="-2" attributes="0"/>
 157.104 +                              <Component id="jvmCompilerCommandLabel" min="-2" max="-2" attributes="0"/>
 157.105                                <EmptySpace max="-2" attributes="0"/>
 157.106 -                              <Component id="otherInfoLabel" min="-2" pref="91" max="-2" attributes="0"/>
 157.107 +                              <Component id="jvmCompilerCommand" pref="323" max="32767" attributes="0"/>
 157.108                            </Group>
 157.109                        </Group>
 157.110                        <EmptySpace max="-2" attributes="0"/>
 157.111 -                      <Group type="103" groupAlignment="0" attributes="0">
 157.112 -                          <Group type="102" attributes="0">
 157.113 -                              <Component id="compilerCommand" pref="392" max="32767" attributes="0"/>
 157.114 -                              <EmptySpace max="-2" attributes="0"/>
 157.115 -                          </Group>
 157.116 -                          <Group type="102" alignment="1" attributes="0">
 157.117 -                              <Group type="103" groupAlignment="1" attributes="0">
 157.118 -                                  <Component id="platformName" alignment="0" pref="392" max="32767" attributes="0"/>
 157.119 -                                  <Component id="platformInfoTextField" alignment="1" pref="392" max="32767" attributes="0"/>
 157.120 -                              </Group>
 157.121 -                              <EmptySpace max="-2" attributes="0"/>
 157.122 -                          </Group>
 157.123 -                      </Group>
 157.124 -                  </Group>
 157.125 -                  <Group type="102" alignment="1" attributes="0">
 157.126 -                      <EmptySpace pref="230" max="32767" attributes="0"/>
 157.127 -                      <Component id="autoDetectLabel" min="-2" max="-2" attributes="0"/>
 157.128 -                      <EmptySpace min="5" pref="5" max="5" attributes="0"/>
 157.129 -                      <Component id="autoDetectProgress" min="-2" max="-2" attributes="0"/>
 157.130 -                      <EmptySpace max="-2" attributes="0"/>
 157.131                    </Group>
 157.132                </Group>
 157.133              </DimensionLayout>
 157.134 @@ -207,7 +192,12 @@
 157.135                            <Component id="compilerCommandLabel" alignment="3" min="-2" max="-2" attributes="0"/>
 157.136                            <Component id="compilerCommand" alignment="3" min="-2" max="-2" attributes="0"/>
 157.137                        </Group>
 157.138 -                      <EmptySpace pref="175" max="32767" attributes="0"/>
 157.139 +                      <EmptySpace type="unrelated" max="-2" attributes="0"/>
 157.140 +                      <Group type="103" groupAlignment="3" attributes="0">
 157.141 +                          <Component id="jvmCompilerCommand" alignment="3" min="-2" max="-2" attributes="0"/>
 157.142 +                          <Component id="jvmCompilerCommandLabel" alignment="3" min="-2" max="-2" attributes="0"/>
 157.143 +                      </Group>
 157.144 +                      <EmptySpace pref="144" max="32767" attributes="0"/>
 157.145                        <Group type="103" groupAlignment="0" attributes="0">
 157.146                            <Component id="autoDetectLabel" min="-2" max="-2" attributes="0"/>
 157.147                            <Component id="autoDetectProgress" min="-2" max="-2" attributes="0"/>
 157.148 @@ -277,6 +267,22 @@
 157.149                  <Property name="indeterminate" type="boolean" value="true"/>
 157.150                </Properties>
 157.151              </Component>
 157.152 +            <Component class="javax.swing.JTextField" name="jvmCompilerCommand">
 157.153 +              <Properties>
 157.154 +                <Property name="editable" type="boolean" value="false"/>
 157.155 +                <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
 157.156 +                  <ResourceString bundle="org/netbeans/modules/ada/platform/ui/Bundle.properties" key="PlatformsCustomizer.jvmCompilerCommand.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
 157.157 +                </Property>
 157.158 +              </Properties>
 157.159 +            </Component>
 157.160 +            <Component class="javax.swing.JLabel" name="jvmCompilerCommandLabel">
 157.161 +              <Properties>
 157.162 +                <Property name="horizontalAlignment" type="int" value="4"/>
 157.163 +                <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
 157.164 +                  <ResourceString bundle="org/netbeans/modules/ada/platform/ui/Bundle.properties" key="PlatformsCustomizer.jvmCompilerCommandLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
 157.165 +                </Property>
 157.166 +              </Properties>
 157.167 +            </Component>
 157.168            </SubComponents>
 157.169          </Container>
 157.170          <Container class="javax.swing.JPanel" name="adaPathPanel">
 157.171 @@ -297,7 +303,7 @@
 157.172                        <EmptySpace max="-2" attributes="0"/>
 157.173                        <Group type="103" groupAlignment="0" attributes="0">
 157.174                            <Group type="102" attributes="0">
 157.175 -                              <Component id="jScrollPane2" pref="392" max="32767" attributes="0"/>
 157.176 +                              <Component id="jScrollPane2" pref="354" max="32767" attributes="0"/>
 157.177                                <EmptySpace max="-2" attributes="0"/>
 157.178                                <Group type="103" groupAlignment="0" attributes="0">
 157.179                                    <Component id="moveDownPath" max="32767" attributes="0"/>
   158.1 --- a/ada.platform/src/org/netbeans/modules/ada/platform/ui/PlatformsCustomizer.java	Tue Oct 02 21:55:21 2012 -0400
   158.2 +++ b/ada.platform/src/org/netbeans/modules/ada/platform/ui/PlatformsCustomizer.java	Mon Oct 15 23:38:26 2012 +0200
   158.3 @@ -81,7 +81,6 @@
   158.4      // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
   158.5      private void initComponents() {
   158.6  
   158.7 -        jLabel6 = new javax.swing.JLabel();
   158.8          platformsListScrollPanel = new javax.swing.JScrollPane();
   158.9          PlatformList = new javax.swing.JList();
  158.10          paltformsListTitleLabel = new javax.swing.JLabel();
  158.11 @@ -98,6 +97,8 @@
  158.12          platformInfoTextField = new javax.swing.JTextField();
  158.13          autoDetectLabel = new javax.swing.JLabel();
  158.14          autoDetectProgress = new javax.swing.JProgressBar();
  158.15 +        jvmCompilerCommand = new javax.swing.JTextField();
  158.16 +        jvmCompilerCommandLabel = new javax.swing.JLabel();
  158.17          adaPathPanel = new javax.swing.JPanel();
  158.18          jLabel5 = new javax.swing.JLabel();
  158.19          jScrollPane2 = new javax.swing.JScrollPane();
  158.20 @@ -108,8 +109,6 @@
  158.21          moveDownPath = new javax.swing.JButton();
  158.22          makeDefaultButton = new javax.swing.JButton();
  158.23  
  158.24 -        jLabel6.setText(org.openide.util.NbBundle.getMessage(PlatformsCustomizer.class, "PlatformsCustomizer.jLabel6.text")); // NOI18N
  158.25 -
  158.26          PlatformList.setModel(platformListModel);
  158.27          PlatformList.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
  158.28          PlatformList.setCellRenderer(new PlatformListCellRenderer());
  158.29 @@ -164,58 +163,65 @@
  158.30  
  158.31          autoDetectProgress.setIndeterminate(true);
  158.32  
  158.33 -        org.jdesktop.layout.GroupLayout mainPanelLayout = new org.jdesktop.layout.GroupLayout(mainPanel);
  158.34 +        jvmCompilerCommand.setEditable(false);
  158.35 +        jvmCompilerCommand.setText(org.openide.util.NbBundle.getMessage(PlatformsCustomizer.class, "PlatformsCustomizer.jvmCompilerCommand.text")); // NOI18N
  158.36 +
  158.37 +        jvmCompilerCommandLabel.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
  158.38 +        jvmCompilerCommandLabel.setText(org.openide.util.NbBundle.getMessage(PlatformsCustomizer.class, "PlatformsCustomizer.jvmCompilerCommandLabel.text")); // NOI18N
  158.39 +
  158.40 +        javax.swing.GroupLayout mainPanelLayout = new javax.swing.GroupLayout(mainPanel);
  158.41          mainPanel.setLayout(mainPanelLayout);
  158.42          mainPanelLayout.setHorizontalGroup(
  158.43 -            mainPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
  158.44 -            .add(mainPanelLayout.createSequentialGroup()
  158.45 -                .add(mainPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
  158.46 -                    .add(mainPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
  158.47 -                        .add(mainPanelLayout.createSequentialGroup()
  158.48 -                            .addContainerGap()
  158.49 -                            .add(compilerCommandLabel))
  158.50 -                        .add(org.jdesktop.layout.GroupLayout.TRAILING, mainPanelLayout.createSequentialGroup()
  158.51 -                            .addContainerGap()
  158.52 -                            .add(platfromNameLabel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 91, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
  158.53 -                    .add(mainPanelLayout.createSequentialGroup()
  158.54 -                        .addContainerGap()
  158.55 -                        .add(otherInfoLabel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 91, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
  158.56 -                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
  158.57 -                .add(mainPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
  158.58 -                    .add(mainPanelLayout.createSequentialGroup()
  158.59 -                        .add(compilerCommand, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 392, Short.MAX_VALUE)
  158.60 -                        .addContainerGap())
  158.61 -                    .add(org.jdesktop.layout.GroupLayout.TRAILING, mainPanelLayout.createSequentialGroup()
  158.62 -                        .add(mainPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
  158.63 -                            .add(org.jdesktop.layout.GroupLayout.LEADING, platformName, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 392, Short.MAX_VALUE)
  158.64 -                            .add(platformInfoTextField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 392, Short.MAX_VALUE))
  158.65 -                        .addContainerGap())))
  158.66 -            .add(org.jdesktop.layout.GroupLayout.TRAILING, mainPanelLayout.createSequentialGroup()
  158.67 -                .addContainerGap(230, Short.MAX_VALUE)
  158.68 -                .add(autoDetectLabel)
  158.69 -                .add(5, 5, 5)
  158.70 -                .add(autoDetectProgress, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
  158.71 +            mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  158.72 +            .addGroup(mainPanelLayout.createSequentialGroup()
  158.73 +                .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  158.74 +                    .addGroup(mainPanelLayout.createSequentialGroup()
  158.75 +                        .addGap(10, 10, 10)
  158.76 +                        .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
  158.77 +                            .addComponent(otherInfoLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 91, javax.swing.GroupLayout.PREFERRED_SIZE)
  158.78 +                            .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  158.79 +                                .addComponent(compilerCommandLabel)
  158.80 +                                .addComponent(platfromNameLabel, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 91, javax.swing.GroupLayout.PREFERRED_SIZE)))
  158.81 +                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  158.82 +                        .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  158.83 +                            .addComponent(compilerCommand, javax.swing.GroupLayout.DEFAULT_SIZE, 324, Short.MAX_VALUE)
  158.84 +                            .addComponent(platformName, javax.swing.GroupLayout.DEFAULT_SIZE, 324, Short.MAX_VALUE)
  158.85 +                            .addComponent(platformInfoTextField, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 324, Short.MAX_VALUE)))
  158.86 +                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, mainPanelLayout.createSequentialGroup()
  158.87 +                        .addContainerGap(192, Short.MAX_VALUE)
  158.88 +                        .addComponent(autoDetectLabel)
  158.89 +                        .addGap(5, 5, 5)
  158.90 +                        .addComponent(autoDetectProgress, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
  158.91 +                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, mainPanelLayout.createSequentialGroup()
  158.92 +                        .addGap(19, 19, 19)
  158.93 +                        .addComponent(jvmCompilerCommandLabel)
  158.94 +                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  158.95 +                        .addComponent(jvmCompilerCommand, javax.swing.GroupLayout.DEFAULT_SIZE, 323, Short.MAX_VALUE)))
  158.96                  .addContainerGap())
  158.97          );
  158.98          mainPanelLayout.setVerticalGroup(
  158.99 -            mainPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
 158.100 -            .add(mainPanelLayout.createSequentialGroup()
 158.101 +            mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 158.102 +            .addGroup(mainPanelLayout.createSequentialGroup()
 158.103                  .addContainerGap()
 158.104 -                .add(mainPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
 158.105 -                    .add(platfromNameLabel)
 158.106 -                    .add(platformName, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
 158.107 -                .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
 158.108 -                .add(mainPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
 158.109 -                    .add(platformInfoTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
 158.110 -                    .add(otherInfoLabel))
 158.111 -                .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
 158.112 -                .add(mainPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
 158.113 -                    .add(compilerCommandLabel)
 158.114 -                    .add(compilerCommand, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
 158.115 -                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 175, Short.MAX_VALUE)
 158.116 -                .add(mainPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
 158.117 -                    .add(autoDetectLabel)
 158.118 -                    .add(autoDetectProgress, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
 158.119 +                .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
 158.120 +                    .addComponent(platfromNameLabel)
 158.121 +                    .addComponent(platformName, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
 158.122 +                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
 158.123 +                .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
 158.124 +                    .addComponent(platformInfoTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
 158.125 +                    .addComponent(otherInfoLabel))
 158.126 +                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
 158.127 +                .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
 158.128 +                    .addComponent(compilerCommandLabel)
 158.129 +                    .addComponent(compilerCommand, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
 158.130 +                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
 158.131 +                .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
 158.132 +                    .addComponent(jvmCompilerCommand, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
 158.133 +                    .addComponent(jvmCompilerCommandLabel))
 158.134 +                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 144, Short.MAX_VALUE)
 158.135 +                .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 158.136 +                    .addComponent(autoDetectLabel)
 158.137 +                    .addComponent(autoDetectProgress, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
 158.138                  .addContainerGap())
 158.139          );
 158.140  
 158.141 @@ -255,39 +261,39 @@
 158.142              }
 158.143          });
 158.144  
 158.145 -        org.jdesktop.layout.GroupLayout adaPathPanelLayout = new org.jdesktop.layout.GroupLayout(adaPathPanel);
 158.146 +        javax.swing.GroupLayout adaPathPanelLayout = new javax.swing.GroupLayout(adaPathPanel);
 158.147          adaPathPanel.setLayout(adaPathPanelLayout);
 158.148          adaPathPanelLayout.setHorizontalGroup(
 158.149 -            adaPathPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
 158.150 -            .add(adaPathPanelLayout.createSequentialGroup()
 158.151 +            adaPathPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 158.152 +            .addGroup(adaPathPanelLayout.createSequentialGroup()
 158.153                  .addContainerGap()
 158.154 -                .add(adaPathPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
 158.155 -                    .add(adaPathPanelLayout.createSequentialGroup()
 158.156 -                        .add(jScrollPane2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 392, Short.MAX_VALUE)
 158.157 -                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
 158.158 -                        .add(adaPathPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
 158.159 -                            .add(moveDownPath, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
 158.160 -                            .add(moveUpPath, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 89, Short.MAX_VALUE)
 158.161 -                            .add(removePath, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 89, Short.MAX_VALUE)
 158.162 -                            .add(addPath, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 89, Short.MAX_VALUE)))
 158.163 -                    .add(jLabel5))
 158.164 +                .addGroup(adaPathPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 158.165 +                    .addGroup(adaPathPanelLayout.createSequentialGroup()
 158.166 +                        .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 354, Short.MAX_VALUE)
 158.167 +                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 158.168 +                        .addGroup(adaPathPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 158.169 +                            .addComponent(moveDownPath, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
 158.170 +                            .addComponent(moveUpPath, javax.swing.GroupLayout.DEFAULT_SIZE, 89, Short.MAX_VALUE)
 158.171 +                            .addComponent(removePath, javax.swing.GroupLayout.DEFAULT_SIZE, 89, Short.MAX_VALUE)
 158.172 +                            .addComponent(addPath, javax.swing.GroupLayout.DEFAULT_SIZE, 89, Short.MAX_VALUE)))
 158.173 +                    .addComponent(jLabel5))
 158.174                  .addContainerGap())
 158.175          );
 158.176          adaPathPanelLayout.setVerticalGroup(
 158.177 -            adaPathPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
 158.178 -            .add(adaPathPanelLayout.createSequentialGroup()
 158.179 -                .add(jLabel5)
 158.180 -                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
 158.181 -                .add(adaPathPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
 158.182 -                    .add(org.jdesktop.layout.GroupLayout.LEADING, adaPathPanelLayout.createSequentialGroup()
 158.183 -                        .add(addPath)
 158.184 -                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
 158.185 -                        .add(removePath)
 158.186 -                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
 158.187 -                        .add(moveUpPath)
 158.188 -                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
 158.189 -                        .add(moveDownPath))
 158.190 -                    .add(org.jdesktop.layout.GroupLayout.LEADING, jScrollPane2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 262, Short.MAX_VALUE))
 158.191 +            adaPathPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 158.192 +            .addGroup(adaPathPanelLayout.createSequentialGroup()
 158.193 +                .addComponent(jLabel5)
 158.194 +                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 158.195 +                .addGroup(adaPathPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
 158.196 +                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, adaPathPanelLayout.createSequentialGroup()
 158.197 +                        .addComponent(addPath)
 158.198 +                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 158.199 +                        .addComponent(removePath)
 158.200 +                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 158.201 +                        .addComponent(moveUpPath)
 158.202 +                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 158.203 +                        .addComponent(moveDownPath))
 158.204 +                    .addComponent(jScrollPane2, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 262, Short.MAX_VALUE))
 158.205                  .addContainerGap())
 158.206          );
 158.207  
 158.208 @@ -300,43 +306,43 @@
 158.209              }
 158.210          });
 158.211  
 158.212 -        org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(this);
 158.213 +        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
 158.214          this.setLayout(layout);
 158.215          layout.setHorizontalGroup(
 158.216 -            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
 158.217 -            .add(layout.createSequentialGroup()
 158.218 +            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 158.219 +            .addGroup(layout.createSequentialGroup()
 158.220                  .addContainerGap()
 158.221 -                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
 158.222 -                    .add(org.jdesktop.layout.GroupLayout.LEADING, makeDefaultButton, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 130, Short.MAX_VALUE)
 158.223 -                    .add(org.jdesktop.layout.GroupLayout.LEADING, autoDetectButton, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 130, Short.MAX_VALUE)
 158.224 -                    .add(org.jdesktop.layout.GroupLayout.LEADING, layout.createSequentialGroup()
 158.225 -                        .add(newButton, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
 158.226 -                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
 158.227 -                        .add(removeButton, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
 158.228 -                    .add(org.jdesktop.layout.GroupLayout.LEADING, paltformsListTitleLabel)
 158.229 -                    .add(org.jdesktop.layout.GroupLayout.LEADING, platformsListScrollPanel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 130, Short.MAX_VALUE))
 158.230 -                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
 158.231 -                .add(tabbedPane, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 512, Short.MAX_VALUE)
 158.232 +                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
 158.233 +                    .addComponent(makeDefaultButton, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 168, Short.MAX_VALUE)
 158.234 +                    .addComponent(autoDetectButton, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 168, Short.MAX_VALUE)
 158.235 +                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
 158.236 +                        .addComponent(newButton, javax.swing.GroupLayout.DEFAULT_SIZE, 73, Short.MAX_VALUE)
 158.237 +                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 158.238 +                        .addComponent(removeButton, javax.swing.GroupLayout.DEFAULT_SIZE, 89, Short.MAX_VALUE))
 158.239 +                    .addComponent(paltformsListTitleLabel, javax.swing.GroupLayout.Alignment.LEADING)
 158.240 +                    .addComponent(platformsListScrollPanel, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, 168, javax.swing.GroupLayout.PREFERRED_SIZE))
 158.241 +                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 158.242 +                .addComponent(tabbedPane, javax.swing.GroupLayout.DEFAULT_SIZE, 474, Short.MAX_VALUE)
 158.243                  .addContainerGap())
 158.244          );
 158.245          layout.setVerticalGroup(
 158.246 -            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
 158.247 -            .add(layout.createSequentialGroup()
 158.248 +            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 158.249 +            .addGroup(layout.createSequentialGroup()
 158.250                  .addContainerGap()
 158.251 -                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
 158.252 -                    .add(tabbedPane, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 321, Short.MAX_VALUE)
 158.253 -                    .add(layout.createSequentialGroup()
 158.254 -                        .add(paltformsListTitleLabel)
 158.255 -                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
 158.256 -                        .add(platformsListScrollPanel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 214, Short.MAX_VALUE)
 158.257 -                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
 158.258 -                        .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
 158.259 -                            .add(removeButton)
 158.260 -                            .add(newButton))
 158.261 -                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
 158.262 -                        .add(autoDetectButton)
 158.263 -                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
 158.264 -                        .add(makeDefaultButton))))
 158.265 +                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 158.266 +                    .addComponent(tabbedPane, javax.swing.GroupLayout.DEFAULT_SIZE, 321, Short.MAX_VALUE)
 158.267 +                    .addGroup(layout.createSequentialGroup()
 158.268 +                        .addComponent(paltformsListTitleLabel)
 158.269 +                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 158.270 +                        .addComponent(platformsListScrollPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 214, Short.MAX_VALUE)
 158.271 +                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 158.272 +                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
 158.273 +                            .addComponent(removeButton)
 158.274 +                            .addComponent(newButton))
 158.275 +                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 158.276 +                        .addComponent(autoDetectButton)
 158.277 +                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 158.278 +                        .addComponent(makeDefaultButton))))
 158.279          );
 158.280      }// </editor-fold>//GEN-END:initComponents
 158.281  
 158.282 @@ -350,8 +356,9 @@
 158.283      private void loadPlatform() {
 158.284          platformName.setText(adaPlatform.getName());
 158.285          platformInfoTextField.setText(adaPlatform.getInfo());
 158.286 -        compilerCommand.setText(adaPlatform.getInterpreterCommand());
 158.287 -    // TODO: add in main tab the commands list for ada platform
 158.288 +        compilerCommand.setText(adaPlatform.getGnatCompilerCommand());
 158.289 +        jvmCompilerCommand.setText(adaPlatform.getJvmGnatCompilerCommand());
 158.290 +        // TODO: add in main tab the commands list for ada platform
 158.291  //        adaPathModel.setModel(adaPlatform.getCompilerPath());
 158.292      }
 158.293  
 158.294 @@ -410,9 +417,11 @@
 158.295                  if (fo != null) {
 158.296                      try {
 158.297                          adaPlatform = adaPlatformManager.findPlatformProperties(fo);
 158.298 -                        loadPlatform();
 158.299 -                        platformListModel.refresh();
 158.300 -                        platformName.setEditable(true);
 158.301 +                        if (adaPlatform != null) {
 158.302 +                            loadPlatform();
 158.303 +                            platformListModel.refresh();
 158.304 +                            platformName.setEditable(true);
 158.305 +                        }
 158.306                      } catch (AdaException ex) {
 158.307                          Exceptions.printStackTrace(ex);
 158.308                      }
 158.309 @@ -434,14 +443,15 @@
 158.310      }//GEN-LAST:event_PlatformListValueChanged
 158.311  
 158.312      private void removeButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_removeButtonActionPerformed
 158.313 -        int selectedIndex = PlatformList.getSelectedIndex();
 158.314 -        if (selectedIndex != -1) {
 158.315 -            adaPlatformManager.removePlatform(
 158.316 -                    (String) platformListModel.getElementAt(
 158.317 -                    PlatformList.getSelectedIndex()));
 158.318 -            platformListModel.refresh();
 158.319 -            adaPlatform = null;
 158.320 -            clearPlatform();
 158.321 +        if (platformListModel.getSize() > 0) {
 158.322 +            int selectedIndex = PlatformList.getSelectedIndex();
 158.323 +            if (selectedIndex != -1) {
 158.324 +                adaPlatformManager.removePlatform(
 158.325 +                        (String) platformListModel.getElementAt(selectedIndex));
 158.326 +                platformListModel.refresh();
 158.327 +                adaPlatform = null;
 158.328 +                clearPlatform();
 158.329 +            }
 158.330          }
 158.331  }//GEN-LAST:event_removeButtonActionPerformed
 158.332  
 158.333 @@ -479,9 +489,11 @@
 158.334      private void autoDetectButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_autoDetectButtonActionPerformed
 158.335          setAutoDetecting(true);
 158.336          RequestProcessor.getDefault().post(new Runnable() {
 158.337 +
 158.338              public void run() {
 158.339                  adaPlatformManager.autoDetect();
 158.340                  EventQueue.invokeLater(new Runnable() {
 158.341 +
 158.342                      public void run() {
 158.343                          platformListModel.refresh();
 158.344                          setAutoDetecting(false);
 158.345 @@ -490,7 +502,6 @@
 158.346              }
 158.347          });
 158.348      }//GEN-LAST:event_autoDetectButtonActionPerformed
 158.349 -
 158.350      // Variables declaration - do not modify//GEN-BEGIN:variables
 158.351      private javax.swing.JList PlatformList;
 158.352      private javax.swing.JList adaPath;
 158.353 @@ -502,8 +513,9 @@
 158.354      private javax.swing.JTextField compilerCommand;
 158.355      private javax.swing.JLabel compilerCommandLabel;
 158.356      private javax.swing.JLabel jLabel5;
 158.357 -    private javax.swing.JLabel jLabel6;
 158.358      private javax.swing.JScrollPane jScrollPane2;
 158.359 +    private javax.swing.JTextField jvmCompilerCommand;
 158.360 +    private javax.swing.JLabel jvmCompilerCommandLabel;
 158.361      private javax.swing.JPanel mainPanel;
 158.362      private javax.swing.JButton makeDefaultButton;
 158.363      private javax.swing.JButton moveDownPath;
 158.364 @@ -556,7 +568,7 @@
 158.365          }
 158.366  
 158.367          adaPlatform.setInfo(platformInfoTextField.getText());
 158.368 -        adaPlatform.setCompilerCommand(compilerCommand.getText());
 158.369 +        adaPlatform.setGnatCompilerCommand(compilerCommand.getText());
 158.370          // TODO: add in main tab the commands list for ada platform
 158.371  //        adaPlatform.setCompilerPath(adaPathModel.getModel());
 158.372          adaPlatformManager.addPlatform(adaPlatform);
 158.373 @@ -566,5 +578,4 @@
 158.374          String defaultPlatform = adaPlatformManager.getDefaultPlatform();
 158.375          return defaultPlatform != null && !defaultPlatform.equals(platform);
 158.376      }
 158.377 -
 158.378  }
   159.1 --- a/ada.platform/src/org/netbeans/spi/ada/platform/Compiler.java	Tue Oct 02 21:55:21 2012 -0400
   159.2 +++ b/ada.platform/src/org/netbeans/spi/ada/platform/Compiler.java	Mon Oct 15 23:38:26 2012 +0200
   159.3 @@ -63,6 +63,8 @@
   159.4  
   159.5      public String getMainFile();
   159.6  
   159.7 +    public String getAdaDialects();
   159.8 +
   159.9      public String getProjectPath();
  159.10  
  159.11      public String getProjectName();
   160.1 --- a/ada.project/history.txt	Tue Oct 02 21:55:21 2012 -0400
   160.2 +++ b/ada.project/history.txt	Mon Oct 15 23:38:26 2012 +0200
   160.3 @@ -1,23 +1,34 @@
   160.4 -0.1.7: dd-mm-2009
   160.5 -- TBD
   160.6 +0.1.10: 11-10-2012
   160.7 +- Porting to NB7.2 and others improvements.
   160.8 +
   160.9 +0.1.9: 12-08-2010
  160.10 +- Added JVM compiler support.
  160.11 +
  160.12 +0.1.8: 13-10-2009
  160.13 +- Added the signing of the nbm files.
  160.14 +- Fixed the issue http://sourceforge.net/tracker/?func=detail&aid=2872967&group_id=248853&atid=1126624.
  160.15 +
  160.16 +0.1.7: 01-10-2009
  160.17 +- Fixed https://sourceforge.net/tracker/?func=detail&aid=2863317&group_id=248853&atid=1126624.
  160.18 +- Ada files naming management (options and project properties).
  160.19  
  160.20  0.1.6: 13-11-2009
  160.21  - Minor changes.
  160.22  
  160.23  0.1.5: 01-02-2009
  160.24 -- Fix the manage clean/build/run actions.
  160.25 +- Fixed the manage clean/build/run actions.
  160.26  
  160.27  0.1.4: 05-01-2009
  160.28 -- Fix project actions for linux systems.
  160.29 +- Fixed project actions for linux systems.
  160.30  
  160.31  0.1.3: 28-12-2008
  160.32 -- Update project actions.
  160.33 +- Updated project actions.
  160.34  
  160.35  0.1.2: 19-11-2008
  160.36 -- Update path classes.
  160.37 +- Updated path classes.
  160.38  
  160.39  0.1.1: 09-11-2008
  160.40 -- Add initial version of Build/Clean actions.
  160.41 +- Added initial version of Build/Clean actions.
  160.42  
  160.43  0.1.0: 23-09-2008
  160.44  - Initial, very alpha release.
   161.1 --- a/ada.project/manifest.mf	Tue Oct 02 21:55:21 2012 -0400
   161.2 +++ b/ada.project/manifest.mf	Mon Oct 15 23:38:26 2012 +0200
   161.3 @@ -3,5 +3,5 @@
   161.4  OpenIDE-Module: org.netbeans.modules.ada.project
   161.5  OpenIDE-Module-Layer: org/netbeans/modules/ada/project/resources/layer.xml
   161.6  OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/ada/project/Bundle.properties
   161.7 -OpenIDE-Module-Specification-Version: 0.1.7
   161.8 +OpenIDE-Module-Specification-Version: 0.1.10
   161.9  
   162.1 --- a/ada.project/nbproject/project.properties	Tue Oct 02 21:55:21 2012 -0400
   162.2 +++ b/ada.project/nbproject/project.properties	Mon Oct 15 23:38:26 2012 +0200
   162.3 @@ -1,4 +1,6 @@
   162.4 -javac.source=1.5
   162.5 +javac.source=1.6
   162.6  javac.compilerargs=-Xlint -Xlint:-serial
   162.7  nbm.homepage=http://wiki.netbeans.org/Ada
   162.8  nbm.module.author=Andrea Lucarelli
   162.9 +keystore=nbproject/private/keystore
  162.10 +nbm_alias=nbada
   163.1 --- a/ada.project/nbproject/project.xml	Tue Oct 02 21:55:21 2012 -0400
   163.2 +++ b/ada.project/nbproject/project.xml	Mon Oct 15 23:38:26 2012 +0200
   163.3 @@ -11,7 +11,7 @@
   163.4                      <compile-dependency/>
   163.5                      <run-dependency>
   163.6                          <release-version>1</release-version>
   163.7 -                        <specification-version>1.6</specification-version>
   163.8 +                        <specification-version>1.21.1</specification-version>
   163.9                      </run-dependency>
  163.10                  </dependency>
  163.11                  <dependency>
  163.12 @@ -20,7 +20,7 @@
  163.13                      <compile-dependency/>
  163.14                      <run-dependency>
  163.15                          <release-version>1</release-version>
  163.16 -                        <specification-version>1.19.1</specification-version>
  163.17 +                        <specification-version>1.33.1</specification-version>
  163.18                      </run-dependency>
  163.19                  </dependency>
  163.20                  <dependency>
  163.21 @@ -29,7 +29,7 @@
  163.22                      <compile-dependency/>
  163.23                      <run-dependency>
  163.24                          <release-version>1</release-version>
  163.25 -                        <specification-version>1.12</specification-version>
  163.26 +                        <specification-version>1.28.1</specification-version>
  163.27                      </run-dependency>
  163.28                  </dependency>
  163.29                  <dependency>
  163.30 @@ -37,16 +37,7 @@
  163.31                      <build-prerequisite/>
  163.32                      <compile-dependency/>
  163.33                      <run-dependency>
  163.34 -                        <specification-version>0.1.5</specification-version>
  163.35 -                    </run-dependency>
  163.36 -                </dependency>
  163.37 -                <dependency>
  163.38 -                    <code-name-base>org.netbeans.modules.options.api</code-name-base>
  163.39 -                    <build-prerequisite/>
  163.40 -                    <compile-dependency/>
  163.41 -                    <run-dependency>
  163.42 -                        <release-version>1</release-version>
  163.43 -                        <specification-version>1.10</specification-version>
  163.44 +                        <specification-version>0.1.9</specification-version>
  163.45                      </run-dependency>
  163.46                  </dependency>
  163.47                  <dependency>
  163.48 @@ -55,7 +46,7 @@
  163.49                      <compile-dependency/>
  163.50                      <run-dependency>
  163.51                          <release-version>1</release-version>
  163.52 -                        <specification-version>1.25</specification-version>
  163.53 +                        <specification-version>1.48.1</specification-version>
  163.54                      </run-dependency>
  163.55                  </dependency>
  163.56                  <dependency>
  163.57 @@ -64,7 +55,7 @@
  163.58                      <compile-dependency/>
  163.59                      <run-dependency>
  163.60                          <release-version>1</release-version>
  163.61 -                        <specification-version>1.19</specification-version>
  163.62 +                        <specification-version>1.46.1</specification-version>
  163.63                      </run-dependency>
  163.64                  </dependency>
  163.65                  <dependency>
  163.66 @@ -73,7 +64,7 @@
  163.67                      <compile-dependency/>
  163.68                      <run-dependency>
  163.69                          <release-version>1</release-version>
  163.70 -                        <specification-version>1.31</specification-version>
  163.71 +                        <specification-version>1.57.1</specification-version>
  163.72                      </run-dependency>
  163.73                  </dependency>
  163.74                  <dependency>
  163.75 @@ -82,7 +73,7 @@
  163.76                      <compile-dependency/>
  163.77                      <run-dependency>
  163.78                          <release-version>1</release-version>
  163.79 -                        <specification-version>1.13</specification-version>
  163.80 +                        <specification-version>1.28.1</specification-version>
  163.81                      </run-dependency>
  163.82                  </dependency>
  163.83                  <dependency>
  163.84 @@ -90,7 +81,7 @@
  163.85                      <build-prerequisite/>
  163.86                      <compile-dependency/>
  163.87                      <run-dependency>
  163.88 -                        <specification-version>6.8</specification-version>
  163.89 +                        <specification-version>6.26.1</specification-version>
  163.90                      </run-dependency>
  163.91                  </dependency>
  163.92                  <dependency>
  163.93 @@ -98,7 +89,7 @@
  163.94                      <build-prerequisite/>
  163.95                      <compile-dependency/>
  163.96                      <run-dependency>
  163.97 -                        <specification-version>7.3</specification-version>
  163.98 +                        <specification-version>7.46.1</specification-version>
  163.99                      </run-dependency>
 163.100                  </dependency>
 163.101                  <dependency>
 163.102 @@ -106,7 +97,7 @@
 163.103                      <build-prerequisite/>
 163.104                      <compile-dependency/>
 163.105                      <run-dependency>
 163.106 -                        <specification-version>7.8</specification-version>
 163.107 +                        <specification-version>7.25.1</specification-version>
 163.108                      </run-dependency>
 163.109                  </dependency>
 163.110                  <dependency>
 163.111 @@ -114,7 +105,7 @@
 163.112                      <build-prerequisite/>
 163.113                      <compile-dependency/>
 163.114                      <run-dependency>
 163.115 -                        <specification-version>7.19</specification-version>
 163.116 +                        <specification-version>7.62.1</specification-version>
 163.117                      </run-dependency>
 163.118                  </dependency>
 163.119                  <dependency>
 163.120 @@ -122,7 +113,15 @@
 163.121                      <build-prerequisite/>
 163.122                      <compile-dependency/>
 163.123                      <run-dependency>
 163.124 -                        <specification-version>7.2</specification-version>
 163.125 +                        <specification-version>7.37.1</specification-version>
 163.126 +                    </run-dependency>
 163.127 +                </dependency>
 163.128 +                <dependency>
 163.129 +                    <code-name-base>org.openide.modules</code-name-base>
 163.130 +                    <build-prerequisite/>
 163.131 +                    <compile-dependency/>
 163.132 +                    <run-dependency>
 163.133 +                        <specification-version>7.32.1</specification-version>
 163.134                      </run-dependency>
 163.135                  </dependency>
 163.136                  <dependency>
 163.137 @@ -130,7 +129,7 @@
 163.138                      <build-prerequisite/>
 163.139                      <compile-dependency/>
 163.140                      <run-dependency>
 163.141 -                        <specification-version>7.7</specification-version>
 163.142 +                        <specification-version>7.28.1</specification-version>
 163.143                      </run-dependency>
 163.144                  </dependency>
 163.145                  <dependency>
 163.146 @@ -138,7 +137,15 @@
 163.147                      <build-prerequisite/>
 163.148                      <compile-dependency/>
 163.149                      <run-dependency>
 163.150 -                        <specification-version>7.18.1</specification-version>
 163.151 +                        <specification-version>8.25.1</specification-version>
 163.152 +                    </run-dependency>
 163.153 +                </dependency>
 163.154 +                <dependency>
 163.155 +                    <code-name-base>org.openide.util.lookup</code-name-base>
 163.156 +                    <build-prerequisite/>
 163.157 +                    <compile-dependency/>
 163.158 +                    <run-dependency>
 163.159 +                        <specification-version>8.15.1</specification-version>
 163.160                      </run-dependency>
 163.161                  </dependency>
 163.162                  <dependency>
 163.163 @@ -146,7 +153,7 @@
 163.164                      <build-prerequisite/>
 163.165                      <compile-dependency/>
 163.166                      <run-dependency>
 163.167 -                        <specification-version>6.24</specification-version>
 163.168 +                        <specification-version>6.55.1</specification-version>
 163.169                      </run-dependency>
 163.170                  </dependency>
 163.171              </module-dependencies>
 163.172 @@ -155,6 +162,7 @@
 163.173                  <friend>org.netbeans.modules.ada.options</friend>
 163.174                  <package>org.netbeans.modules.ada.project.api</package>
 163.175                  <package>org.netbeans.modules.ada.project.options</package>
 163.176 +                <package>org.netbeans.modules.ada.project.options.ui</package>
 163.177                  <package>org.netbeans.modules.ada.project.ui.properties</package>
 163.178              </friend-packages>
 163.179          </data>
   164.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   164.2 +++ b/ada.project/src/org/netbeans/modules/ada/project/AdaLanguageOptionsAccessor.java	Mon Oct 15 23:38:26 2012 +0200
   164.3 @@ -0,0 +1,78 @@
   164.4 +/*
   164.5 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
   164.6 + *
   164.7 + * Copyright 2010 Oracle and/or its affiliates. All rights reserved.
   164.8 + *
   164.9 + * Oracle and Java are registered trademarks of Oracle and/or its affiliates.
  164.10 + * Other names may be trademarks of their respective owners.
  164.11 + *
  164.12 + * The contents of this file are subject to the terms of either the GNU
  164.13 + * General Public License Version 2 only ("GPL") or the Common
  164.14 + * Development and Distribution License("CDDL") (collectively, the
  164.15 + * "License"). You may not use this file except in compliance with the
  164.16 + * License. You can obtain a copy of the License at
  164.17 + * http://www.netbeans.org/cddl-gplv2.html
  164.18 + * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
  164.19 + * specific language governing permissions and limitations under the
  164.20 + * License.  When distributing the software, include this License Header
  164.21 + * Notice in each file and include the License file at
  164.22 + * nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
  164.23 + * particular file as subject to the "Classpath" exception as provided
  164.24 + * by Oracle in the GPL Version 2 section of the License file that
  164.25 + * accompanied this code. If applicable, add the following below the
  164.26 + * License Header, with the fields enclosed by brackets [] replaced by
  164.27 + * your own identifying information:
  164.28 + * "Portions Copyrighted [year] [name of copyright owner]"
  164.29 + *
  164.30 + * If you wish your version of this file to be governed by only the CDDL
  164.31 + * or only the GPL Version 2, indicate your decision by adding
  164.32 + * "[Contributor] elects to include this software in this distribution
  164.33 + * under the [CDDL or GPL Version 2] license." If you do not indicate a
  164.34 + * single choice of license, a recipient has the option to distribute
  164.35 + * your version of this file under either the CDDL, the GPL Version 2 or
  164.36 + * to extend the choice of license to its licensees as provided above.
  164.37 + * However, if you add GPL Version 2 code and therefore, elected the GPL
  164.38 + * Version 2 license, then the option applies only if the new code is
  164.39 + * made subject to such option by the copyright holder.
  164.40 + *
  164.41 + * Contributor(s):
  164.42 + *
  164.43 + * Portions Copyrighted 2009 Sun Microsystems, Inc.
  164.44 + */
  164.45 +
  164.46 +package org.netbeans.modules.ada.project;
  164.47 +
  164.48 +import org.netbeans.modules.ada.project.api.AdaLanguageOptions;
  164.49 +import org.openide.util.Exceptions;
  164.50 +
  164.51 +/**
  164.52 + * @author Tomas Mysik
  164.53 + */
  164.54 +public abstract class AdaLanguageOptionsAccessor {
  164.55 +
  164.56 +    private static volatile AdaLanguageOptionsAccessor accessor;
  164.57 +
  164.58 +    public static void setDefault(AdaLanguageOptionsAccessor accessor) {
  164.59 +        if (AdaLanguageOptionsAccessor.accessor != null) {
  164.60 +            throw new IllegalStateException("Already initialized accessor");
  164.61 +        }
  164.62 +        AdaLanguageOptionsAccessor.accessor = accessor;
  164.63 +    }
  164.64 +
  164.65 +    public static synchronized AdaLanguageOptionsAccessor getDefault() {
  164.66 +        if (accessor != null) {
  164.67 +            return accessor;
  164.68 +        }
  164.69 +
  164.70 +        Class<?> c = AdaLanguageOptions.class;
  164.71 +        try {
  164.72 +            Class.forName(c.getName(), true, AdaLanguageOptionsAccessor.class.getClassLoader());
  164.73 +        } catch (ClassNotFoundException cnf) {
  164.74 +            Exceptions.printStackTrace(cnf);
  164.75 +        }
  164.76 +        assert accessor != null;
  164.77 +        return accessor;
  164.78 +    }
  164.79 +
  164.80 +    public abstract void firePropertyChange(String propertyName, Object oldValue, Object newValue);
  164.81 +}
   165.1 --- a/ada.project/src/org/netbeans/modules/ada/project/AdaLogicalViewProvider.java	Tue Oct 02 21:55:21 2012 -0400
   165.2 +++ b/ada.project/src/org/netbeans/modules/ada/project/AdaLogicalViewProvider.java	Mon Oct 15 23:38:26 2012 +0200
   165.3 @@ -46,7 +46,6 @@
   165.4  import org.netbeans.api.project.FileOwnerQuery;
   165.5  import org.netbeans.api.project.Project;
   165.6  import org.netbeans.api.project.ProjectUtils;
   165.7 -import org.netbeans.spi.project.ActionProvider;
   165.8  import org.netbeans.spi.project.ui.LogicalViewProvider;
   165.9  import org.netbeans.spi.project.ui.support.CommonProjectActions;
  165.10  import org.netbeans.spi.project.ui.support.DefaultProjectOperations;
   166.1 --- a/ada.project/src/org/netbeans/modules/ada/project/AdaProject.java	Tue Oct 02 21:55:21 2012 -0400
   166.2 +++ b/ada.project/src/org/netbeans/modules/ada/project/AdaProject.java	Mon Oct 15 23:38:26 2012 +0200
   166.3 @@ -81,7 +81,7 @@
   166.4   *
   166.5   * @author Andrea Lucarelli
   166.6   */
   166.7 -public class AdaProject implements Project {
   166.8 +public final class AdaProject implements Project {
   166.9  
  166.10      protected AntProjectHelper helper;
  166.11      protected UpdateHelper updateHelper;
  166.12 @@ -109,6 +109,7 @@
  166.13      public AdaProject() {
  166.14      }
  166.15  
  166.16 +    @Override
  166.17      public FileObject getProjectDirectory() {
  166.18          return helper.getProjectDirectory();
  166.19      }
  166.20 @@ -146,6 +147,7 @@
  166.21                  });
  166.22      }
  166.23  
  166.24 +    @Override
  166.25      public Lookup getLookup() {
  166.26          return lookup;
  166.27      }
  166.28 @@ -215,6 +217,7 @@
  166.29      public String getName() {
  166.30          return ProjectManager.mutex().readAccess(new Mutex.Action<String>() {
  166.31  
  166.32 +            @Override
  166.33              public String run() {
  166.34                  Element data = getHelper().getPrimaryConfigurationData(true);
  166.35                  NodeList nl = data.getElementsByTagNameNS(AdaProjectType.PROJECT_CONFIGURATION_NAMESPACE, "name"); // NOI18N
  166.36 @@ -232,6 +235,7 @@
  166.37      void setName(final String name) {
  166.38          ProjectManager.mutex().writeAccess(new Runnable() {
  166.39  
  166.40 +            @Override
  166.41              public void run() {
  166.42                  Element data = getHelper().getPrimaryConfigurationData(true);
  166.43                  NodeList nl = data.getElementsByTagNameNS(AdaProjectType.PROJECT_CONFIGURATION_NAMESPACE, "name"); // NOI18N
  166.44 @@ -258,26 +262,32 @@
  166.45          private final ImageIcon PROJECT_ICON = new ImageIcon(ImageUtilities.loadImage("org/netbeans/modules/ada/project/ui/resources/ada-lovelace-16.png"));
  166.46          private final PropertyChangeSupport propertyChangeSupport = new PropertyChangeSupport(this);
  166.47  
  166.48 +        @Override
  166.49          public void addPropertyChangeListener(PropertyChangeListener listener) {
  166.50              propertyChangeSupport.addPropertyChangeListener(listener);
  166.51          }
  166.52  
  166.53 +        @Override
  166.54          public void removePropertyChangeListener(PropertyChangeListener listener) {
  166.55              propertyChangeSupport.removePropertyChangeListener(listener);
  166.56          }
  166.57  
  166.58 +        @Override
  166.59          public String getDisplayName() {
  166.60              return getName();
  166.61          }
  166.62  
  166.63 +        @Override
  166.64          public Icon getIcon() {
  166.65              return PROJECT_ICON;
  166.66          }
  166.67  
  166.68 +        @Override
  166.69          public String getName() {
  166.70              return AdaProject.this.getName();
  166.71          }
  166.72  
  166.73 +        @Override
  166.74          public Project getProject() {
  166.75              return AdaProject.this;
  166.76          }
  166.77 @@ -289,6 +299,7 @@
  166.78  
  166.79      public final class AdaOpenedHook extends ProjectOpenedHook {
  166.80  
  166.81 +        @Override
  166.82          protected void projectOpened() {
  166.83              // register project's classpaths to GlobalPathRegistry
  166.84              final AdaClassPathProvider cpProvider = getLookup().lookup(AdaClassPathProvider.class);
  166.85 @@ -297,6 +308,7 @@
  166.86              GlobalPathRegistry.getDefault().register(ClassPath.SOURCE, cpProvider.getProjectClassPaths(ClassPath.SOURCE));
  166.87          }
  166.88  
  166.89 +        @Override
  166.90          protected void projectClosed() {
  166.91              // unregister project's classpaths to GlobalPathRegistry
  166.92              final AdaClassPathProvider cpProvider = getLookup().lookup(AdaClassPathProvider.class);
  166.93 @@ -316,6 +328,7 @@
  166.94          public AdaProjectXmlSavedHook() {
  166.95          }
  166.96  
  166.97 +        @Override
  166.98          protected void projectXmlSaved() throws IOException {
  166.99              Info info = getLookup().lookup(Info.class);
 166.100              assert info != null;
 166.101 @@ -343,16 +356,18 @@
 166.102  
 166.103          // List of primarily supported templates
 166.104          private static final String[] PRIVILEGED_NAMES = new String[]{
 166.105 -            "Templates/Ada/NewAdaMain", //NOI18N
 166.106 -            "Templates/Ada/NewAdaPackageSpec", // NOI18N
 166.107 -            "Templates/Ada/NewAdaPackageBody", // NOI18N
 166.108 +            "Templates/Ada/NewMain", //NOI18N
 166.109 +            "Templates/Ada/NewPackageSpec", // NOI18N
 166.110 +            "Templates/Ada/NewPackageBody", // NOI18N
 166.111              "Templates/Other/Folder"
 166.112          };
 166.113  
 166.114 +        @Override
 166.115          public String[] getRecommendedTypes() {
 166.116              return RECOMMENDED_TYPES;
 166.117          }
 166.118  
 166.119 +        @Override
 166.120          public String[] getPrivilegedTemplates() {
 166.121              return PRIVILEGED_NAMES;
 166.122          }
   167.1 --- a/ada.project/src/org/netbeans/modules/ada/project/AdaSources.java	Tue Oct 02 21:55:21 2012 -0400
   167.2 +++ b/ada.project/src/org/netbeans/modules/ada/project/AdaSources.java	Mon Oct 15 23:38:26 2012 +0200
   167.3 @@ -136,8 +136,12 @@
   167.4              String prop = propNames[i];
   167.5              String displayName = roots.getRootDisplayName(rootNames[i], prop);
   167.6              String loc = "${" + prop + "}"; // NOI18N
   167.7 -            sourcesHelper.addPrincipalSourceRoot(loc, displayName, null, null); // NOI18N
   167.8 -            sourcesHelper.addTypedSourceRoot(loc, SOURCES_TYPE_ADA, displayName, null, null);
   167.9 +//            sourcesHelper.addPrincipalSourceRoot(loc, displayName, null, null); // NOI18N
  167.10 +//            sourcesHelper.addTypedSourceRoot(loc, SOURCES_TYPE_ADA, displayName, null, null);
  167.11 +            sourcesHelper.sourceRoot(loc).displayName(displayName)
  167.12 +                    .add() // principal root
  167.13 +                    .type(SOURCES_TYPE_ADA).add();    // typed root
  167.14 +
  167.15          }
  167.16      }
  167.17  
   168.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   168.2 +++ b/ada.project/src/org/netbeans/modules/ada/project/api/AdaLanguageOptions.java	Mon Oct 15 23:38:26 2012 +0200
   168.3 @@ -0,0 +1,200 @@
   168.4 +/*
   168.5 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
   168.6 + *
   168.7 + * Copyright 2010 Oracle and/or its affiliates. All rights reserved.
   168.8 + *
   168.9 + * Oracle and Java are registered trademarks of Oracle and/or its affiliates.
  168.10 + * Other names may be trademarks of their respective owners.
  168.11 + *
  168.12 + * The contents of this file are subject to the terms of either the GNU
  168.13 + * General Public License Version 2 only ("GPL") or the Common
  168.14 + * Development and Distribution License("CDDL") (collectively, the
  168.15 + * "License"). You may not use this file except in compliance with the
  168.16 + * License. You can obtain a copy of the License at
  168.17 + * http://www.netbeans.org/cddl-gplv2.html
  168.18 + * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
  168.19 + * specific language governing permissions and limitations under the
  168.20 + * License.  When distributing the software, include this License Header
  168.21 + * Notice in each file and include the License file at
  168.22 + * nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
  168.23 + * particular file as subject to the "Classpath" exception as provided
  168.24 + * by Oracle in the GPL Version 2 section of the License file that
  168.25 + * accompanied this code. If applicable, add the following below the
  168.26 + * License Header, with the fields enclosed by brackets [] replaced by
  168.27 + * your own identifying information:
  168.28 + * "Portions Copyrighted [year] [name of copyright owner]"
  168.29 + *
  168.30 + * If you wish your version of this file to be governed by only the CDDL
  168.31 + * or only the GPL Version 2, indicate your decision by adding
  168.32 + * "[Contributor] elects to include this software in this distribution
  168.33 + * under the [CDDL or GPL Version 2] license." If you do not indicate a
  168.34 + * single choice of license, a recipient has the option to distribute
  168.35 + * your version of this file under either the CDDL, the GPL Version 2 or
  168.36 + * to extend the choice of license to its licensees as provided above.
  168.37 + * However, if you add GPL Version 2 code and therefore, elected the GPL
  168.38 + * Version 2 license, then the option applies only if the new code is
  168.39 + * made subject to such option by the copyright holder.
  168.40 + *
  168.41 + * Contributor(s):
  168.42 + *
  168.43 + * Portions Copyrighted 2008 Sun Microsystems, Inc.
  168.44 + */
  168.45 +
  168.46 +package org.netbeans.modules.ada.project.api;
  168.47 +
  168.48 +import java.beans.PropertyChangeListener;
  168.49 +import java.beans.PropertyChangeSupport;
  168.50 +import org.netbeans.modules.ada.project.AdaLanguageOptionsAccessor;
  168.51 +import org.netbeans.modules.ada.project.AdaProject;
  168.52 +import org.netbeans.modules.ada.project.options.AdaOptions;
  168.53 +import org.openide.filesystems.FileObject;
  168.54 +import org.openide.util.NbBundle;
  168.55 +
  168.56 +/**
  168.57 + * Helper class to get Ada language properties like Ada dialects etc.
  168.58 + * @author Andrea Lucarelli
  168.59 + */
  168.60 +public final class AdaLanguageOptions {
  168.61 +    /**
  168.62 +     * Property which is fired when {@link Properties#getAdaVersion()} changes.
  168.63 +     */
  168.64 +    public static final String PROP_ADA_VERSION = AdaLanguageOptions.class.getName() + ".adaVersion";
  168.65 +
  168.66 +    /**
  168.67 +     * Ada version, currently used only for hints.
  168.68 +     * @see Properties#getAdaVersion()
  168.69 +     * @see #getProperties(FileObject)
  168.70 +     */
  168.71 +    public static enum AdaVersion {
  168.72 +        ADA_83(NbBundle.getMessage(AdaLanguageOptions.class, "ADA_83")),
  168.73 +        ADA_95(NbBundle.getMessage(AdaLanguageOptions.class, "ADA_95")),
  168.74 +        ADA_2005(NbBundle.getMessage(AdaLanguageOptions.class, "ADA_2005")),
  168.75 +        ADA_2012(NbBundle.getMessage(AdaLanguageOptions.class, "ADA_2012"));
  168.76 +
  168.77 +        private final String displayName;
  168.78 +
  168.79 +        AdaVersion(String displayName) {
  168.80 +            assert displayName != null;
  168.81 +            this.displayName = displayName;
  168.82 +        }
  168.83 +
  168.84 +        public String getDisplayName() {
  168.85 +            return displayName;
  168.86 +        }
  168.87 +
  168.88 +        @Override
  168.89 +        public String toString() {
  168.90 +            return getDisplayName();
  168.91 +        }
  168.92 +    };
  168.93 +
  168.94 +    static final AdaLanguageOptions INSTANCE = new AdaLanguageOptions();
  168.95 +    private final PropertyChangeSupport propertyChangeSupport = new PropertyChangeSupport(this);
  168.96 +
  168.97 +    static {
  168.98 +        AdaLanguageOptionsAccessor.setDefault(new AdaLanguageOptionsAccessor() {
  168.99 +
 168.100 +            @Override
 168.101 +            public void firePropertyChange(String propertyName, Object oldValue, Object newValue) {
 168.102 +                INSTANCE.firePropertyChange(propertyName, oldValue, newValue);
 168.103 +            }
 168.104 +        });
 168.105 +    }
 168.106 +
 168.107 +    private AdaLanguageOptions() {
 168.108 +    }
 168.109 +
 168.110 +    /**
 168.111 +     * Get the default instance of {@link AdaLanguageOptions} class.
 168.112 +     * @return the default instance of {@link AdaLanguageOptions} class.
 168.113 +     */
 168.114 +    public static AdaLanguageOptions getDefault() {
 168.115 +        return INSTANCE;
 168.116 +    }
 168.117 +
 168.118 +    /**
 168.119 +     * Get {@link Properties Ada language properties} for the given file (can be <code>null</code>).
 168.120 +     * These properties are project specific. If no project is found for the file, then properties with the default values are returned.
 168.121 +     * @param file a file which could belong to a project (if not or <code>null</code>, properties with the default values are returned).
 168.122 +     * @return {@link Properties properties}.
 168.123 +     * @see AdaVersion
 168.124 +     */
 168.125 +    public Properties getProperties(FileObject file) {
 168.126 +        AdaVersion adaVersion = AdaVersion.ADA_95;
 168.127 +
 168.128 +        if (file != null) {
 168.129 +            AdaProject adaProject = org.netbeans.modules.ada.project.ui.Utils.getAdaProject(file);
 168.130 +            if (adaProject != null) {
 168.131 +                adaVersion = getAdaVersion(adaProject);
 168.132 +            }
 168.133 +        }
 168.134 +        return new Properties(adaVersion);
 168.135 +    }
 168.136 +
 168.137 +    public static AdaVersion getAdaVersion(AdaProject project) {
 168.138 +        String value = project.getEvaluator().getProperty(AdaOptions.ADA_DIALECTS);
 168.139 +        AdaVersion adaVersion = null;
 168.140 +        if (value != null) {
 168.141 +            try {
 168.142 +                adaVersion = AdaVersion.valueOf(value);
 168.143 +            } catch (IllegalArgumentException iae) {
 168.144 +                // ignored
 168.145 +            }
 168.146 +        }
 168.147 +        return adaVersion != null ? adaVersion : AdaVersion.ADA_95;
 168.148 +
 168.149 +    }
 168.150 +
 168.151 +    /**
 168.152 +     * Add listener that is notified when any "important" Ada language property changes.
 168.153 +     * @param listener a listener to add
 168.154 +     * @see #removePropertyChangeListener(PropertyChangeListener)
 168.155 +     */
 168.156 +    public void addPropertyChangeListener(PropertyChangeListener listener) {
 168.157 +        propertyChangeSupport.addPropertyChangeListener(listener);
 168.158 +    }
 168.159 +
 168.160 +    /**
 168.161 +     * Remove listener.
 168.162 +     * @param listener a listener to remove
 168.163 +     * @see #addPropertyChangeListener(PropertyChangeListener)
 168.164 +     */
 168.165 +    public void removePropertyChangeListener(PropertyChangeListener listener) {
 168.166 +        propertyChangeSupport.removePropertyChangeListener(listener);
 168.167 +    }
 168.168 +
 168.169 +    void firePropertyChange(String propertyName, Object oldValue, Object newValue) {
 168.170 +        propertyChangeSupport.firePropertyChange(propertyName, oldValue, newValue);
 168.171 +    }
 168.172 +
 168.173 +    /**
 168.174 +     * Data object for Ada language properties.
 168.175 +     */
 168.176 +    public static final class Properties {
 168.177 +        private final AdaVersion adaVersion;
 168.178 +
 168.179 +        Properties(AdaVersion adaVersion) {
 168.180 +            this.adaVersion = adaVersion;
 168.181 +        }
 168.182 +
 168.183 +
 168.184 +        /**
 168.185 +         * Get the {@link AdaVersion Ada version} of the project.
 168.186 +         * If not specified, {@link AdaVersion#ADA_95 Ada 95} is returned.
 168.187 +         * @return the {@link AdaVersion Ada version} of the project
 168.188 +         */
 168.189 +        public AdaVersion getAdaVersion() {
 168.190 +            return adaVersion;
 168.191 +        }
 168.192 +
 168.193 +        @Override
 168.194 +        public String toString() {
 168.195 +            StringBuilder sb = new StringBuilder(100);
 168.196 +            sb.append(getClass().getName());
 168.197 +            sb.append(" [Ada Version: ");
 168.198 +            sb.append(adaVersion);
 168.199 +            sb.append("]");
 168.200 +            return sb.toString();
 168.201 +        }
 168.202 +    }
 168.203 +}
   169.1 --- a/ada.project/src/org/netbeans/modules/ada/project/api/AdaSourcePath.java	Tue Oct 02 21:55:21 2012 -0400
   169.2 +++ b/ada.project/src/org/netbeans/modules/ada/project/api/AdaSourcePath.java	Mon Oct 15 23:38:26 2012 +0200
   169.3 @@ -48,7 +48,6 @@
   169.4  public final class AdaSourcePath {
   169.5      public static final String BOOT_CP = "classpath/ada-boot"; //NOI18N
   169.6      public static final String SOURCE_CP = "classpath/ada-source"; //NOI18N
   169.7 -    public static final String  MIME_TYPE = "text/x-ada"; // NOI18N
   169.8  
   169.9      /**
  169.10       * Possible types of a file.
   170.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   170.2 +++ b/ada.project/src/org/netbeans/modules/ada/project/api/Bundle.properties	Mon Oct 15 23:38:26 2012 +0200
   170.3 @@ -0,0 +1,44 @@
   170.4 +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
   170.5 +#
   170.6 +# Copyright 2010 Oracle and/or its affiliates. All rights reserved.
   170.7 +#
   170.8 +# Oracle and Java are registered trademarks of Oracle and/or its affiliates.
   170.9 +# Other names may be trademarks of their respective owners.
  170.10 +#
  170.11 +# The contents of this file are subject to the terms of either the GNU
  170.12 +# General Public License Version 2 only ("GPL") or the Common
  170.13 +# Development and Distribution License("CDDL") (collectively, the
  170.14 +# "License"). You may not use this file except in compliance with the
  170.15 +# License. You can obtain a copy of the License at
  170.16 +# http://www.netbeans.org/cddl-gplv2.html
  170.17 +# or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
  170.18 +# specific language governing permissions and limitations under the
  170.19 +# License.  When distributing the software, include this License Header
  170.20 +# Notice in each file and include the License file at
  170.21 +# nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
  170.22 +# particular file as subject to the "Classpath" exception as provided
  170.23 +# by Oracle in the GPL Version 2 section of the License file that
  170.24 +# accompanied this code. If applicable, add the following below the
  170.25 +# License Header, with the fields enclosed by brackets [] replaced by
  170.26 +# your own identifying information:
  170.27 +# "Portions Copyrighted [year] [name of copyright owner]"
  170.28 +#
  170.29 +# If you wish your version of this file to be governed by only the CDDL
  170.30 +# or only the GPL Version 2, indicate your decision by adding
  170.31 +# "[Contributor] elects to include this software in this distribution
  170.32 +# under the [CDDL or GPL Version 2] license." If you do not indicate a
  170.33 +# single choice of license, a recipient has the option to distribute
  170.34 +# your version of this file under either the CDDL, the GPL Version 2 or
  170.35 +# to extend the choice of license to its licensees as provided above.
  170.36 +# However, if you add GPL Version 2 code and therefore, elected the GPL
  170.37 +# Version 2 license, then the option applies only if the new code is
  170.38 +# made subject to such option by the copyright holder.
  170.39 +#
  170.40 +# Contributor(s):
  170.41 +#
  170.42 +# Portions Copyrighted 2009 Sun Microsystems, Inc.
  170.43 +
  170.44 +ADA_83=Ada 83
  170.45 +ADA_95=Ada 95
  170.46 +ADA_2005=Ada 2005
  170.47 +ADA_2012=Ada 2012
  170.48 \ No newline at end of file
   171.1 --- a/ada.project/src/org/netbeans/modules/ada/project/options/AdaGeneralOptionsPanel.form	Tue Oct 02 21:55:21 2012 -0400
   171.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   171.3 @@ -1,410 +0,0 @@
   171.4 -<?xml version="1.0" encoding="UTF-8" ?>
   171.5 -
   171.6 -<Form version="1.5" maxVersion="1.6" type="org.netbeans.modules.form.forminfo.JPanelFormInfo">
   171.7 -  <AuxValues>
   171.8 -    <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="1"/>
   171.9 -    <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
  171.10 -    <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="false"/>
  171.11 -    <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="true"/>
  171.12 -    <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="true"/>
  171.13 -    <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="2"/>
  171.14 -    <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
  171.15 -    <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
  171.16 -    <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
  171.17 -  </AuxValues>
  171.18 -
  171.19 -  <Layout>
  171.20 -    <DimensionLayout dim="0">
  171.21 -      <Group type="103" groupAlignment="0" attributes="0">
  171.22 -          <Group type="102" attributes="0">
  171.23 -              <Group type="103" groupAlignment="0" attributes="0">
  171.24 -                  <Group type="102" alignment="0" attributes="0">
  171.25 -                      <EmptySpace min="-2" max="-2" attributes="0"/>
  171.26 -                      <Group type="103" groupAlignment="0" attributes="0">
  171.27 -                          <Group type="102" alignment="0" attributes="0">
  171.28 -                              <Component id="standardsLabel" min="-2" max="-2" attributes="0"/>
  171.29 -                              <EmptySpace max="-2" attributes="0"/>
  171.30 -                              <Component id="standardsLineSeparator" pref="572" max="32767" attributes="0"/>
  171.31 -                          </Group>
  171.32 -                          <Component id="errorLabel" alignment="0" min="-2" max="-2" attributes="0"/>
  171.33 -                          <Group type="102" alignment="0" attributes="0">
  171.34 -                              <EmptySpace min="12" pref="12" max="12" attributes="0"/>
  171.35 -                              <Group type="103" groupAlignment="0" attributes="0">
  171.36 -                                  <Component id="adaRestrictionsLabel" linkSize="4" alignment="0" min="-2" max="-2" attributes="0"/>
  171.37 -                                  <Component id="adaDialectsLabel" linkSize="4" alignment="0" min="-2" pref="63" max="-2" attributes="0"/>
  171.38 -                              </Group>
  171.39 -                              <EmptySpace type="unrelated" max="-2" attributes="0"/>
  171.40 -                              <Group type="103" groupAlignment="0" attributes="0">
  171.41 -                                  <Component id="adaRestrictionsComboBox" linkSize="5" alignment="0" min="-2" max="-2" attributes="0"/>
  171.42 -                                  <Component id="adaDialectsComboBox" linkSize="5" alignment="0" min="-2" max="-2" attributes="0"/>
  171.43 -                              </Group>
  171.44 -                              <EmptySpace min="-2" pref="373" max="-2" attributes="0"/>
  171.45 -                          </Group>
  171.46 -                      </Group>
  171.47 -                  </Group>
  171.48 -                  <Group type="102" attributes="0">
  171.49 -                      <EmptySpace min="-2" pref="20" max="-2" attributes="0"/>
  171.50 -                      <Group type="103" groupAlignment="1" max="-2" attributes="0">
  171.51 -                          <Component id="pkgBodyMaskLabel" linkSize="6" alignment="0" max="32767" attributes="1"/>
  171.52 -                          <Component id="pkgSpecMaskLabel" linkSize="6" alignment="0" max="32767" attributes="1"/>
  171.53 -                          <Component id="separatorMaskLabel" linkSize="6" alignment="0" min="-2" pref="107" max="-2" attributes="1"/>
  171.54 -                      </Group>
  171.55 -                      <EmptySpace type="unrelated" max="-2" attributes="0"/>
  171.56 -                      <Group type="103" groupAlignment="0" attributes="0">
  171.57 -                          <Group type="103" alignment="0" groupAlignment="1" attributes="0">
  171.58 -                              <Group type="103" alignment="1" groupAlignment="0" attributes="0">
  171.59 -                                  <Component id="pkgSpecPrefixComboBox" linkSize="9" min="-2" max="-2" attributes="0"/>
  171.60 -                                  <Component id="pkgBodyPrefixComboBox" linkSize="9" alignment="0" min="-2" max="-2" attributes="0"/>
  171.61 -                              </Group>
  171.62 -                              <Component id="prefixTitleLabel" min="-2" max="-2" attributes="1"/>
  171.63 -                          </Group>
  171.64 -                          <Component id="separatePrefixComboBox" linkSize="9" alignment="0" min="-2" max="-2" attributes="0"/>
  171.65 -                      </Group>
  171.66 -                      <EmptySpace max="-2" attributes="0"/>
  171.67 -                      <Group type="103" groupAlignment="1" attributes="0">
  171.68 -                          <Component id="separatorTitleLabel" min="-2" max="-2" attributes="1"/>
  171.69 -                          <Component id="pkgSpecSepTextField" linkSize="7" min="-2" pref="38" max="-2" attributes="0"/>
  171.70 -                          <Component id="pkgBodySepTextField" linkSize="7" min="-2" pref="38" max="-2" attributes="0"/>
  171.71 -                          <Component id="separateSepTextField" linkSize="7" min="-2" pref="38" max="-2" attributes="0"/>
  171.72 -                      </Group>
  171.73 -                      <EmptySpace max="-2" attributes="0"/>
  171.74 -                      <Group type="103" groupAlignment="0" max="-2" attributes="0">
  171.75 -                          <Component id="pkgBodyPostfixComboBox" linkSize="9" alignment="0" pref="110" max="32767" attributes="1"/>
  171.76 -                          <Component id="separatePostfixComboBox" linkSize="9" alignment="0" max="32767" attributes="1"/>
  171.77 -                          <Component id="pkgSpecPostfixComboBox" linkSize="9" alignment="0" max="32767" attributes="1"/>
  171.78 -                          <Component id="postfixTitleLabel" alignment="1" min="-2" max="-2" attributes="1"/>
  171.79 -                      </Group>
  171.80 -                      <EmptySpace max="-2" attributes="0"/>
  171.81 -                      <Group type="103" groupAlignment="0" max="-2" attributes="0">
  171.82 -                          <Component id="separateExtComboBox" min="0" pref="0" max="32767" attributes="1"/>
  171.83 -                          <Component id="pkgBodyExtComboBox" alignment="0" min="0" pref="0" max="32767" attributes="1"/>
  171.84 -                          <Component id="pkgSpecExtComboBox" alignment="0" min="0" pref="0" max="32767" attributes="1"/>
  171.85 -                          <Group type="102" alignment="0" attributes="0">
  171.86 -                              <EmptySpace min="-2" pref="41" max="-2" attributes="0"/>
  171.87 -                              <Component id="extTitleLabel" min="-2" max="-2" attributes="1"/>
  171.88 -                          </Group>
  171.89 -                      </Group>
  171.90 -                  </Group>
  171.91 -                  <Group type="102" alignment="0" attributes="0">
  171.92 -                      <EmptySpace min="-2" max="-2" attributes="0"/>
  171.93 -                      <Component id="namingLabel" min="-2" max="-2" attributes="0"/>
  171.94 -                      <EmptySpace min="-2" max="-2" attributes="0"/>
  171.95 -                      <Component id="namingLineSeparator" pref="586" max="32767" attributes="0"/>
  171.96 -                  </Group>
  171.97 -              </Group>
  171.98 -              <EmptySpace max="-2" attributes="0"/>
  171.99 -          </Group>
 171.100 -      </Group>
 171.101 -    </DimensionLayout>
 171.102 -    <DimensionLayout dim="1">
 171.103 -      <Group type="103" groupAlignment="0" attributes="0">
 171.104 -          <Group type="102" attributes="0">
 171.105 -              <EmptySpace max="-2" attributes="0"/>
 171.106 -              <Group type="103" groupAlignment="2" attributes="0">
 171.107 -                  <Component id="standardsLineSeparator" alignment="2" min="-2" pref="12" max="-2" attributes="0"/>
 171.108 -                  <Component id="standardsLabel" alignment="2" min="-2" max="-2" attributes="0"/>
 171.109 -              </Group>
 171.110 -              <EmptySpace min="-2" max="-2" attributes="0"/>
 171.111 -              <Group type="103" groupAlignment="2" attributes="0">
 171.112 -                  <Component id="adaDialectsComboBox" alignment="2" min="-2" max="-2" attributes="0"/>
 171.113 -                  <Component id="adaDialectsLabel" alignment="2" min="-2" max="-2" attributes="0"/>
 171.114 -              </Group>
 171.115 -              <EmptySpace max="-2" attributes="0"/>
 171.116 -              <Group type="103" groupAlignment="2" attributes="0">
 171.117 -                  <Component id="adaRestrictionsComboBox" alignment="2" min="-2" max="-2" attributes="0"/>
 171.118 -                  <Component id="adaRestrictionsLabel" alignment="2" min="-2" max="-2" attributes="0"/>
 171.119 -              </Group>
 171.120 -              <EmptySpace type="separate" max="-2" attributes="0"/>
 171.121 -              <Group type="103" groupAlignment="2" attributes="0">
 171.122 -                  <Component id="namingLineSeparator" alignment="2" min="-2" pref="10" max="-2" attributes="0"/>
 171.123 -                  <Component id="namingLabel" alignment="2" min="-2" max="-2" attributes="0"/>
 171.124 -              </Group>
 171.125 -              <EmptySpace min="-2" pref="1" max="-2" attributes="0"/>
 171.126 -              <Group type="103" groupAlignment="0" attributes="0">
 171.127 -                  <Group type="103" alignment="0" groupAlignment="3" attributes="0">
 171.128 -                      <Component id="prefixTitleLabel" alignment="3" min="-2" max="-2" attributes="0"/>
 171.129 -                      <Component id="separatorTitleLabel" alignment="3" min="-2" max="-2" attributes="0"/>
 171.130 -                  </Group>
 171.131 -                  <Component id="extTitleLabel" alignment="0" min="-2" max="-2" attributes="0"/>
 171.132 -                  <Component id="postfixTitleLabel" alignment="0" min="-2" max="-2" attributes="0"/>
 171.133 -              </Group>
 171.134 -              <EmptySpace min="-2" pref="4" max="-2" attributes="0"/>
 171.135 -              <Group type="103" groupAlignment="2" attributes="0">
 171.136 -                  <Component id="pkgSpecMaskLabel" alignment="2" min="-2" max="-2" attributes="0"/>
 171.137 -                  <Component id="pkgSpecPrefixComboBox" alignment="2" min="-2" max="-2" attributes="0"/>
 171.138 -                  <Component id="pkgSpecSepTextField" alignment="2" min="-2" max="-2" attributes="0"/>
 171.139 -                  <Component id="pkgSpecPostfixComboBox" alignment="2" min="-2" max="-2" attributes="0"/>
 171.140 -                  <Component id="pkgSpecExtComboBox" alignment="2" min="-2" max="-2" attributes="0"/>
 171.141 -              </Group>
 171.142 -              <EmptySpace max="-2" attributes="0"/>
 171.143 -              <Group type="103" groupAlignment="0" attributes="0">
 171.144 -                  <Group type="103" alignment="0" groupAlignment="2" attributes="0">
 171.145 -                      <Component id="pkgBodyPrefixComboBox" alignment="2" min="-2" max="-2" attributes="0"/>
 171.146 -                      <Component id="pkgBodyMaskLabel" alignment="2" min="-2" max="-2" attributes="0"/>
 171.147 -                  </Group>
 171.148 -                  <Component id="pkgBodyExtComboBox" alignment="0" min="-2" max="-2" attributes="0"/>
 171.149 -                  <Group type="103" alignment="0" groupAlignment="3" attributes="0">
 171.150 -                      <Component id="pkgBodyPostfixComboBox" alignment="3" min="-2" max="-2" attributes="0"/>
 171.151 -                      <Component id="pkgBodySepTextField" alignment="3" min="-2" max="-2" attributes="0"/>
 171.152 -                  </Group>
 171.153 -              </Group>
 171.154 -              <EmptySpace max="-2" attributes="0"/>
 171.155 -              <Group type="103" groupAlignment="2" attributes="0">
 171.156 -                  <Component id="separatorMaskLabel" alignment="2" min="-2" max="-2" attributes="0"/>
 171.157 -                  <Component id="separatePrefixComboBox" alignment="2" min="-2" max="-2" attributes="0"/>
 171.158 -                  <Component id="separateSepTextField" alignment="2" min="-2" max="-2" attributes="0"/>
 171.159 -                  <Component id="separatePostfixComboBox" alignment="2" min="-2" max="-2" attributes="0"/>
 171.160 -                  <Component id="separateExtComboBox" alignment="2" min="-2" max="-2" attributes="0"/>
 171.161 -              </Group>
 171.162 -              <EmptySpace pref="150" max="32767" attributes="0"/>
 171.163 -              <Component id="errorLabel" min="-2" max="-2" attributes="0"/>
 171.164 -              <EmptySpace max="-2" attributes="0"/>
 171.165 -          </Group>
 171.166 -      </Group>
 171.167 -    </DimensionLayout>
 171.168 -  </Layout>
 171.169 -  <SubComponents>
 171.170 -    <Component class="javax.swing.JLabel" name="standardsLabel">
 171.171 -      <Properties>
 171.172 -        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
 171.173 -          <ResourceString bundle="org/netbeans/modules/ada/project/options/general/Bundle.properties" key="LBL_Standards" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
 171.174 -        </Property>
 171.175 -      </Properties>
 171.176 -    </Component>
 171.177 -    <Component class="javax.swing.JSeparator" name="standardsLineSeparator">
 171.178 -    </Component>
 171.179 -    <Component class="javax.swing.JLabel" name="adaDialectsLabel">
 171.180 -      <Properties>
 171.181 -        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
 171.182 -          <ResourceString bundle="org/netbeans/modules/ada/project/options/general/Bundle.properties" key="LBL_AdaDialects" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
 171.183 -        </Property>
 171.184 -      </Properties>
 171.185 -    </Component>
 171.186 -    <Component class="javax.swing.JLabel" name="namingLabel">
 171.187 -      <Properties>
 171.188 -        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
 171.189 -          <ResourceString bundle="org/netbeans/modules/ada/project/options/general/Bundle.properties" key="LBL_Naming" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
 171.190 -        </Property>
 171.191 -      </Properties>
 171.192 -    </Component>
 171.193 -    <Component class="javax.swing.JSeparator" name="namingLineSeparator">
 171.194 -    </Component>
 171.195 -    <Component class="javax.swing.JLabel" name="errorLabel">
 171.196 -      <Properties>
 171.197 -        <Property name="text" type="java.lang.String" value="ERROR"/>
 171.198 -      </Properties>
 171.199 -    </Component>
 171.200 -    <Component class="javax.swing.JLabel" name="adaRestrictionsLabel">
 171.201 -      <Properties>
 171.202 -        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
 171.203 -          <ResourceString bundle="org/netbeans/modules/ada/project/options/general/Bundle.properties" key="LBL_adaRestrictions" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
 171.204 -        </Property>
 171.205 -      </Properties>
 171.206 -    </Component>
 171.207 -    <Component class="javax.swing.JComboBox" name="adaDialectsComboBox">
 171.208 -      <Properties>
 171.209 -        <Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
 171.210 -          <StringArray count="3">
 171.211 -            <StringItem index="0" value="Ada 83"/>
 171.212 -            <StringItem index="1" value="Ada 95"/>
 171.213 -            <StringItem index="2" value="Ada 2005"/>
 171.214 -          </StringArray>
 171.215 -        </Property>
 171.216 -      </Properties>
 171.217 -      <Events>
 171.218 -        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="adaDialectsComboBoxActionPerformed"/>
 171.219 -      </Events>
 171.220 -    </Component>
 171.221 -    <Component class="javax.swing.JComboBox" name="adaRestrictionsComboBox">
 171.222 -      <Properties>
 171.223 -        <Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
 171.224 -          <StringArray count="3">
 171.225 -            <StringItem index="0" value="None"/>
 171.226 -            <StringItem index="1" value="Spark"/>
 171.227 -            <StringItem index="2" value="MIL-STD-498"/>
 171.228 -          </StringArray>
 171.229 -        </Property>
 171.230 -      </Properties>
 171.231 -      <Events>
 171.232 -        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="adaRestrictionsComboBoxActionPerformed"/>
 171.233 -      </Events>
 171.234 -    </Component>
 171.235 -    <Component class="javax.swing.JLabel" name="pkgSpecMaskLabel">
 171.236 -      <Properties>
 171.237 -        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
 171.238 -          <ResourceString bundle="org/netbeans/modules/ada/project/options/general/Bundle.properties" key="LBL_pkgSpecMask" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
 171.239 -        </Property>
 171.240 -      </Properties>
 171.241 -    </Component>
 171.242 -    <Component class="javax.swing.JLabel" name="pkgBodyMaskLabel">
 171.243 -      <Properties>
 171.244 -        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
 171.245 -          <ResourceString bundle="org/netbeans/modules/ada/project/options/general/Bundle.properties" key="LBL_pkgBodyMask" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
 171.246 -        </Property>
 171.247 -      </Properties>
 171.248 -    </Component>
 171.249 -    <Component class="javax.swing.JLabel" name="separatorMaskLabel">
 171.250 -      <Properties>
 171.251 -        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
 171.252 -          <ResourceString bundle="org/netbeans/modules/ada/project/options/general/Bundle.properties" key="LBL_separatorMask" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
 171.253 -        </Property>
 171.254 -      </Properties>
 171.255 -    </Component>
 171.256 -    <Component class="javax.swing.JTextField" name="pkgSpecSepTextField">
 171.257 -      <Properties>
 171.258 -        <Property name="horizontalAlignment" type="int" value="0"/>
 171.259 -      </Properties>
 171.260 -    </Component>
 171.261 -    <Component class="javax.swing.JTextField" name="separateSepTextField">
 171.262 -      <Properties>
 171.263 -        <Property name="horizontalAlignment" type="int" value="0"/>
 171.264 -      </Properties>
 171.265 -    </Component>
 171.266 -    <Component class="javax.swing.JTextField" name="pkgBodySepTextField">
 171.267 -      <Properties>
 171.268 -        <Property name="horizontalAlignment" type="int" value="0"/>
 171.269 -      </Properties>
 171.270 -    </Component>
 171.271 -    <Component class="javax.swing.JLabel" name="extTitleLabel">
 171.272 -      <Properties>
 171.273 -        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
 171.274 -          <ResourceString bundle="org/netbeans/modules/ada/project/options/general/Bundle.properties" key="LBL_extTitle" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
 171.275 -        </Property>
 171.276 -      </Properties>
 171.277 -    </Component>
 171.278 -    <Component class="javax.swing.JComboBox" name="pkgSpecPrefixComboBox">
 171.279 -      <Properties>
 171.280 -        <Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
 171.281 -          <StringArray count="2">
 171.282 -            <StringItem index="0" value="&lt;package name&gt;"/>
 171.283 -            <StringItem index="1" value="&lt;free name&gt;"/>
 171.284 -          </StringArray>
 171.285 -        </Property>
 171.286 -        <Property name="enabled" type="boolean" value="false"/>
 171.287 -      </Properties>
 171.288 -    </Component>
 171.289 -    <Component class="javax.swing.JLabel" name="prefixTitleLabel">
 171.290 -      <Properties>
 171.291 -        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
 171.292 -          <ResourceString bundle="org/netbeans/modules/ada/project/options/general/Bundle.properties" key="LBL_prefixTitle" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
 171.293 -        </Property>
 171.294 -      </Properties>
 171.295 -    </Component>
 171.296 -    <Component class="javax.swing.JComboBox" name="pkgBodyPrefixComboBox">
 171.297 -      <Properties>
 171.298 -        <Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
 171.299 -          <StringArray count="2">
 171.300 -            <StringItem index="0" value="&lt;package name&gt;"/>
 171.301 -            <StringItem index="1" value="&lt;free name&gt;"/>
 171.302 -          </StringArray>
 171.303 -        </Property>
 171.304 -        <Property name="enabled" type="boolean" value="false"/>
 171.305 -      </Properties>
 171.306 -    </Component>
 171.307 -    <Component class="javax.swing.JLabel" name="postfixTitleLabel">
 171.308 -      <Properties>
 171.309 -        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
 171.310 -          <ResourceString bundle="org/netbeans/modules/ada/project/options/general/Bundle.properties" key="LBL_postfixTitle" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
 171.311 -        </Property>
 171.312 -      </Properties>
 171.313 -    </Component>
 171.314 -    <Component class="javax.swing.JComboBox" name="pkgSpecPostfixComboBox">
 171.315 -      <Properties>
 171.316 -        <Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
 171.317 -          <StringArray count="2">
 171.318 -            <StringItem index="0" value="&lt;none&gt;"/>
 171.319 -            <StringItem index="1" value="&lt;free name&gt;"/>
 171.320 -          </StringArray>
 171.321 -        </Property>
 171.322 -      </Properties>
 171.323 -      <Events>
 171.324 -        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="pkgSpecPostfixComboBoxActionPerformed"/>
 171.325 -      </Events>
 171.326 -    </Component>
 171.327 -    <Component class="javax.swing.JComboBox" name="separatePrefixComboBox">
 171.328 -      <Properties>
 171.329 -        <Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
 171.330 -          <StringArray count="2">
 171.331 -            <StringItem index="0" value="&lt;package name&gt;"/>
 171.332 -            <StringItem index="1" value="&lt;free name&gt;"/>
 171.333 -          </StringArray>
 171.334 -        </Property>
 171.335 -        <Property name="enabled" type="boolean" value="false"/>
 171.336 -      </Properties>
 171.337 -    </Component>
 171.338 -    <Component class="javax.swing.JComboBox" name="pkgBodyPostfixComboBox">
 171.339 -      <Properties>
 171.340 -        <Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
 171.341 -          <StringArray count="2">
 171.342 -            <StringItem index="0" value="&lt;none&gt;"/>
 171.343 -            <StringItem index="1" value="&lt;free name&gt;"/>
 171.344 -          </StringArray>
 171.345 -        </Property>
 171.346 -      </Properties>
 171.347 -      <Events>
 171.348 -        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="pkgBodyPostfixComboBoxActionPerformed"/>
 171.349 -      </Events>
 171.350 -    </Component>
 171.351 -    <Component class="javax.swing.JComboBox" name="separatePostfixComboBox">
 171.352 -      <Properties>
 171.353 -        <Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
 171.354 -          <StringArray count="3">
 171.355 -            <StringItem index="0" value="&lt;procedure name&gt;"/>
 171.356 -            <StringItem index="1" value="&lt;free name&gt;"/>
 171.357 -            <StringItem index="2" value="&lt;none&gt;"/>
 171.358 -          </StringArray>
 171.359 -        </Property>
 171.360 -        <Property name="enabled" type="boolean" value="false"/>
 171.361 -      </Properties>
 171.362 -      <Events>
 171.363 -        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="separatePostfixComboBoxActionPerformed"/>
 171.364 -      </Events>
 171.365 -    </Component>
 171.366 -    <Component class="javax.swing.JComboBox" name="pkgSpecExtComboBox">
 171.367 -      <Properties>
 171.368 -        <Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
 171.369 -          <StringArray count="2">
 171.370 -            <StringItem index="0" value="ads"/>
 171.371 -            <StringItem index="1" value="ada"/>
 171.372 -          </StringArray>
 171.373 -        </Property>
 171.374 -      </Properties>
 171.375 -      <Events>
 171.376 -        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="pkgSpecExtComboBoxActionPerformed"/>
 171.377 -      </Events>
 171.378 -    </Component>
 171.379 -    <Component class="javax.swing.JComboBox" name="pkgBodyExtComboBox">
 171.380 -      <Properties>
 171.381 -        <Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
 171.382 -          <StringArray count="2">
 171.383 -            <StringItem index="0" value="adb"/>
 171.384 -            <StringItem index="1" value="ada"/>
 171.385 -          </StringArray>
 171.386 -        </Property>
 171.387 -      </Properties>
 171.388 -      <Events>
 171.389 -        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="pkgBodyExtComboBoxActionPerformed"/>
 171.390 -      </Events>
 171.391 -    </Component>
 171.392 -    <Component class="javax.swing.JComboBox" name="separateExtComboBox">
 171.393 -      <Properties>
 171.394 -        <Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
 171.395 -          <StringArray count="2">
 171.396 -            <StringItem index="0" value="adb"/>
 171.397 -            <StringItem index="1" value="ada"/>
 171.398 -          </StringArray>
 171.399 -        </Property>
 171.400 -      </Properties>
 171.401 -      <Events>
 171.402 -        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="separateExtComboBoxActionPerformed"/>
 171.403 -      </Events>
 171.404 -    </Component>
 171.405 -    <Component class="javax.swing.JLabel" name="separatorTitleLabel">
 171.406 -      <Properties>
 171.407 -        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
 171.408 -          <ResourceString bundle="org/netbeans/modules/ada/project/options/Bundle.properties" key="AdaGeneralOptionsPanel.separatorTitleLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
 171.409 -        </Property>
 171.410 -      </Properties>
 171.411 -    </Component>
 171.412 -  </SubComponents>
 171.413 -</Form>
   172.1 --- a/ada.project/src/org/netbeans/modules/ada/project/options/AdaGeneralOptionsPanel.java	Tue Oct 02 21:55:21 2012 -0400
   172.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   172.3 @@ -1,589 +0,0 @@
   172.4 -/*
   172.5 - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
   172.6 - *
   172.7 - * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
   172.8 - *
   172.9 - * The contents of this file are subject to the terms of either the GNU
  172.10 - * General Public License Version 2 only ("GPL") or the Common
  172.11 - * Development and Distribution License("CDDL") (collectively, the
  172.12 - * "License"). You may not use this file except in compliance with the
  172.13 - * License. You can obtain a copy of the License at
  172.14 - * http://www.netbeans.org/cddl-gplv2.html
  172.15 - * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
  172.16 - * specific language governing permissions and limitations under the
  172.17 - * License.  When distributing the software, include this License Header
  172.18 - * Notice in each file and include the License file at
  172.19 - * nbbuild/licenses/CDDL-GPL-2-CP.  Sun designates this
  172.20 - * particular file as subject to the "Classpath" exception as provided
  172.21 - * by Sun in the GPL Version 2 section of the License file that
  172.22 - * accompanied this code. If applicable, add the following below the
  172.23 - * License Header, with the fields enclosed by brackets [] replaced by
  172.24 - * your own identifying information:
  172.25 - * "Portions Copyrighted [year] [name of copyright owner]"
  172.26 - *
  172.27 - * If you wish your version of this file to be governed by only the CDDL
  172.28 - * or only the GPL Version 2, indicate your decision by adding
  172.29 - * "[Contributor] elects to include this software in this distribution
  172.30 - * under the [CDDL or GPL Version 2] license." If you do not indicate a
  172.31 - * single choice of license, a recipient has the option to distribute
  172.32 - * your version of this file under either the CDDL, the GPL Version 2 or
  172.33 - * to extend the choice of license to its licensees as provided above.
  172.34 - * However, if you add GPL Version 2 code and therefore, elected the GPL
  172.35 - * Version 2 license, then the option applies only if the new code is
  172.36 - * made subject to such option by the copyright holder.
  172.37 - *
  172.38 - * Contributor(s):
  172.39 - *
  172.40 - * Portions Copyrighted 2008 Sun Microsystems, Inc.
  172.41 - */
  172.42 -
  172.43 -package org.netbeans.modules.ada.project.options;
  172.44 -
  172.45 -import java.awt.Component;
  172.46 -import java.awt.event.ActionEvent;
  172.47 -import java.awt.event.ActionListener;
  172.48 -import javax.swing.DefaultComboBoxModel;
  172.49 -import javax.swing.JComboBox;
  172.50 -import javax.swing.JLabel;
  172.51 -import javax.swing.JPanel;
  172.52 -import javax.swing.JSeparator;
  172.53 -import javax.swing.JTextField;
  172.54 -import javax.swing.UIManager;
  172.55 -import javax.swing.event.ChangeListener;
  172.56 -import javax.swing.event.DocumentEvent;
  172.57 -import javax.swing.event.DocumentListener;
  172.58 -import org.jdesktop.layout.GroupLayout;
  172.59 -import org.jdesktop.layout.LayoutStyle;
  172.60 -import org.netbeans.modules.ada.project.ui.properties.AdaProjectProperties;
  172.61 -import org.openide.awt.Mnemonics;
  172.62 -import org.openide.util.ChangeSupport;
  172.63 -import org.openide.util.NbBundle;
  172.64 -
  172.65 -/**
  172.66 - * @author  Andrea Lucarelli
  172.67 - */
  172.68 -public class AdaGeneralOptionsPanel extends JPanel {
  172.69 -
  172.70 -    private final ChangeSupport changeSupport = new ChangeSupport(this);
  172.71 -    private final AdaProjectProperties uiProperties;
  172.72 -
  172.73 -    public AdaGeneralOptionsPanel(final AdaProjectProperties uiProperties) {
  172.74 -        this.uiProperties = uiProperties;
  172.75 -        initComponents();
  172.76 -        errorLabel.setText(" "); // NOI18N
  172.77 -
  172.78 -        // listeners
  172.79 -        //DocumentListener documentListener = new DefaultDocumentListener();
  172.80 -        if (uiProperties != null) {
  172.81 -            setAdaDialects(uiProperties.getAdaDialects());
  172.82 -            setAdaRestrictions(uiProperties.getAdaRestrictions());
  172.83 -            setPkgSpecPrefix(uiProperties.getPkgSpecPrefix());
  172.84 -            setPkgBodyPrefix(uiProperties.getPkgBodyPrefix());
  172.85 -            setSeparatePrefix(uiProperties.getSeparatePrefix());
  172.86 -            setPkgSpecPostfix(uiProperties.getPkgSpecPostfix());
  172.87 -            setPkgBodyPostfix(uiProperties.getPkgBodyPostfix());
  172.88 -            setSeparatePostfix(uiProperties.getSeparatePostfix());
  172.89 -            setPkgSpecExt(uiProperties.getPkgSpecExt());
  172.90 -            setPkgBodyExt(uiProperties.getPkgBodyExt());
  172.91 -            setSeparateExt(uiProperties.getSeparateExt());
  172.92 -        }
  172.93 -    }
  172.94 -
  172.95 -    public String getAdaDialects() {
  172.96 -        if (adaDialectsComboBox.getSelectedItem() != null) {
  172.97 -            return adaDialectsComboBox.getSelectedItem().toString();
  172.98 -        }
  172.99 -        return "";
 172.100 -    }
 172.101 -
 172.102 -    public void setAdaDialects(String adaDialects) {
 172.103 -        adaDialectsComboBox.setSelectedItem(adaDialects);
 172.104 -    }
 172.105 -
 172.106 -    public String getAdaRestrictions() {
 172.107 -        if (adaRestrictionsComboBox.getSelectedItem() != null) {
 172.108 -            return adaRestrictionsComboBox.getSelectedItem().toString();
 172.109 -        }
 172.110 -        return "";
 172.111 -    }
 172.112 -
 172.113 -    public void setAdaRestrictions(String adaRestrictions) {
 172.114 -        adaRestrictionsComboBox.setSelectedItem(adaRestrictions);
 172.115 -    }
 172.116 -
 172.117 -    public String getPkgSpecPrefix() {
 172.118 -        return pkgSpecPrefixComboBox.getSelectedItem().toString();
 172.119 -    }
 172.120 -
 172.121 -    public void setPkgSpecPrefix(String pkgSpecPrefix) {
 172.122 -        pkgSpecPrefixComboBox.setSelectedItem(pkgSpecPrefix);
 172.123 -    }
 172.124 -
 172.125 -    public String getPkgBodyPrefix() {
 172.126 -        return pkgBodyPrefixComboBox.getSelectedItem().toString();
 172.127 -    }
 172.128 -
 172.129 -    public void setPkgBodyPrefix(String pkgBodyPrefix) {
 172.130 -        pkgBodyPrefixComboBox.setSelectedItem(pkgBodyPrefix);
 172.131 -    }
 172.132 -
 172.133 -    public String getSeparatePrefix() {
 172.134 -        return separatePrefixComboBox.getSelectedItem().toString();
 172.135 -    }
 172.136 -
 172.137 -    public void setSeparatePrefix(String separatePrefix) {
 172.138 -        separatePrefixComboBox.setSelectedItem(separatePrefix);
 172.139 -    }
 172.140 -
 172.141 -    public String getPkgSpecPostfix() {
 172.142 -        return pkgSpecPostfixComboBox.getSelectedItem().toString();
 172.143 -    }
 172.144 -
 172.145 -    public void setPkgSpecPostfix(String pkgSpecPostfix) {
 172.146 -        if (pkgSpecPostfix.equalsIgnoreCase("<none>")) {
 172.147 -            pkgSpecPostfixComboBox.setSelectedItem(pkgSpecPostfix);
 172.148 -        } else {
 172.149 -            pkgSpecPostfixComboBox.setEditable(true);
 172.150 -            pkgSpecPostfixComboBox.addItem(pkgSpecPostfix);
 172.151 -            pkgSpecPostfixComboBox.setSelectedItem(pkgSpecPostfix);
 172.152 -        }
 172.153 -    }
 172.154 -
 172.155 -    public String getPkgBodyPostfix() {
 172.156 -        return pkgBodyPostfixComboBox.getSelectedItem().toString();
 172.157 -    }
 172.158 -
 172.159 -    public void setPkgBodyPostfix(String pkgBodyPostfix) {
 172.160 -        if (pkgBodyPostfix.equalsIgnoreCase("<none>")) {
 172.161 -            pkgBodyPostfixComboBox.setSelectedItem(pkgBodyPostfix);
 172.162 -        } else {
 172.163 -            pkgBodyPostfixComboBox.setEditable(true);
 172.164 -            pkgBodyPostfixComboBox.addItem(pkgBodyPostfix);
 172.165 -            pkgBodyPostfixComboBox.setSelectedItem(pkgBodyPostfix);
 172.166 -        }
 172.167 -    }
 172.168 -
 172.169 -    public String getSeparatePostfix() {
 172.170 -        return separatePostfixComboBox.getSelectedItem().toString();
 172.171 -    }
 172.172 -
 172.173 -    public void setSeparatePostfix(String separatePostfix) {
 172.174 -        separatePostfixComboBox.setSelectedItem(separatePostfix);
 172.175 -    }
 172.176 -
 172.177 -    public String getPkgSpecExt() {
 172.178 -        return pkgSpecExtComboBox.getSelectedItem().toString();
 172.179 -    }
 172.180 -
 172.181 -    public void setPkgSpecExt(String pkgSpecExt) {
 172.182 -        pkgSpecExtComboBox.setSelectedItem(pkgSpecExt);
 172.183 -    }
 172.184 -
 172.185 -    public String getPkgBodyExt() {
 172.186 -        return pkgBodyExtComboBox.getSelectedItem().toString();
 172.187 -    }
 172.188 -
 172.189 -    public void setPkgBodyExt(String pkgBodyExt) {
 172.190 -        pkgBodyExtComboBox.setSelectedItem(pkgBodyExt);
 172.191 -    }
 172.192 -
 172.193 -    public String getSeparateExt() {
 172.194 -        return separateExtComboBox.getSelectedItem().toString();
 172.195 -    }
 172.196 -
 172.197 -    public void setSeparateExt(String separateExt) {
 172.198 -        separateExtComboBox.setSelectedItem(separateExt);
 172.199 -    }
 172.200 -
 172.201 -    public void setError(String message) {
 172.202 -        errorLabel.setText(" "); // NOI18N
 172.203 -        errorLabel.setForeground(UIManager.getColor("nb.errorForeground")); // NOI18N
 172.204 -        errorLabel.setText(message);
 172.205 -    }
 172.206 -
 172.207 -    public void setWarning(String message) {
 172.208 -        errorLabel.setText(" "); // NOI18N
 172.209 -        errorLabel.setForeground(UIManager.getColor("nb.warningForeground")); // NOI18N
 172.210 -        errorLabel.setText(message);
 172.211 -    }
 172.212 -
 172.213 -    public void addChangeListener(ChangeListener listener) {
 172.214 -        changeSupport.addChangeListener(listener);
 172.215 -    }
 172.216 -
 172.217 -    public void removeChangeListener(ChangeListener listener) {
 172.218 -        changeSupport.removeChangeListener(listener);
 172.219 -    }
 172.220 -
 172.221 -    void fireChange() {
 172.222 -        changeSupport.fireChange();
 172.223 -    }
 172.224 -
 172.225 -    /** This method is called from within the constructor to
 172.226 -     * initialize the form.
 172.227 -     * WARNING: Do NOT modify this code. The content of this method is
 172.228 -     * always regenerated by the Form Editor.
 172.229 -     */
 172.230 -    @SuppressWarnings("unchecked")
 172.231 -    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
 172.232 -    private void initComponents() {
 172.233 -
 172.234 -
 172.235 -
 172.236 -
 172.237 -
 172.238 -
 172.239 -
 172.240 -
 172.241 -
 172.242 -        standardsLabel = new JLabel();
 172.243 -        standardsLineSeparator = new JSeparator();
 172.244 -        adaDialectsLabel = new JLabel();
 172.245 -        namingLabel = new JLabel();
 172.246 -        namingLineSeparator = new JSeparator();
 172.247 -        errorLabel = new JLabel();
 172.248 -        adaRestrictionsLabel = new JLabel();
 172.249 -        adaDialectsComboBox = new JComboBox();
 172.250 -        adaRestrictionsComboBox = new JComboBox();
 172.251 -        pkgSpecMaskLabel = new JLabel();
 172.252 -        pkgBodyMaskLabel = new JLabel();
 172.253 -        separatorMaskLabel = new JLabel();
 172.254 -        pkgSpecSepTextField = new JTextField();
 172.255 -        separateSepTextField = new JTextField();
 172.256 -        pkgBodySepTextField = new JTextField();
 172.257 -        extTitleLabel = new JLabel();
 172.258 -        pkgSpecPrefixComboBox = new JComboBox();
 172.259 -        prefixTitleLabel = new JLabel();
 172.260 -        pkgBodyPrefixComboBox = new JComboBox();
 172.261 -        postfixTitleLabel = new JLabel();
 172.262 -        pkgSpecPostfixComboBox = new JComboBox();
 172.263 -        separatePrefixComboBox = new JComboBox();
 172.264 -        pkgBodyPostfixComboBox = new JComboBox();
 172.265 -        separatePostfixComboBox = new JComboBox();
 172.266 -        pkgSpecExtComboBox = new JComboBox();
 172.267 -        pkgBodyExtComboBox = new JComboBox();
 172.268 -        separateExtComboBox = new JComboBox();
 172.269 -        separatorTitleLabel = new JLabel();
 172.270 -        Mnemonics.setLocalizedText(standardsLabel, NbBundle.getMessage(AdaGeneralOptionsPanel.class, "LBL_Standards"));
 172.271 -        Mnemonics.setLocalizedText(adaDialectsLabel, NbBundle.getMessage(AdaGeneralOptionsPanel.class, "LBL_AdaDialects"));
 172.272 -        Mnemonics.setLocalizedText(namingLabel, NbBundle.getMessage(AdaGeneralOptionsPanel.class, "LBL_Naming"));
 172.273 -        Mnemonics.setLocalizedText(errorLabel, "ERROR");
 172.274 -        Mnemonics.setLocalizedText(adaRestrictionsLabel, NbBundle.getMessage(AdaGeneralOptionsPanel.class, "LBL_adaRestrictions"));
 172.275 -        adaDialectsComboBox.setModel(new DefaultComboBoxModel(new String[] { "Ada 83", "Ada 95", "Ada 2005" }));
 172.276 -        adaDialectsComboBox.addActionListener(new ActionListener() {
 172.277 -            public void actionPerformed(ActionEvent evt) {
 172.278 -                adaDialectsComboBoxActionPerformed(evt);
 172.279 -            }
 172.280 -        });
 172.281 -
 172.282 -        adaRestrictionsComboBox.setModel(new DefaultComboBoxModel(new String[] { "None", "Spark", "MIL-STD-498" }));
 172.283 -        adaRestrictionsComboBox.addActionListener(new ActionListener() {
 172.284 -            public void actionPerformed(ActionEvent evt) {
 172.285 -                adaRestrictionsComboBoxActionPerformed(evt);
 172.286 -            }
 172.287 -        });
 172.288 -        Mnemonics.setLocalizedText(pkgSpecMaskLabel, NbBundle.getMessage(AdaGeneralOptionsPanel.class, "LBL_pkgSpecMask"));
 172.289 -        Mnemonics.setLocalizedText(pkgBodyMaskLabel, NbBundle.getMessage(AdaGeneralOptionsPanel.class, "LBL_pkgBodyMask"));
 172.290 -        Mnemonics.setLocalizedText(separatorMaskLabel, NbBundle.getMessage(AdaGeneralOptionsPanel.class, "LBL_separatorMask"));
 172.291 -        pkgSpecSepTextField.setHorizontalAlignment(JTextField.CENTER);
 172.292 -
 172.293 -        separateSepTextField.setHorizontalAlignment(JTextField.CENTER);
 172.294 -
 172.295 -        pkgBodySepTextField.setHorizontalAlignment(JTextField.CENTER);
 172.296 -        Mnemonics.setLocalizedText(extTitleLabel, NbBundle.getMessage(AdaGeneralOptionsPanel.class, "LBL_extTitle"));
 172.297 -        pkgSpecPrefixComboBox.setModel(new DefaultComboBoxModel(new String[] { "<package name>", "<free name>" }));
 172.298 -        pkgSpecPrefixComboBox.setEnabled(false);
 172.299 -
 172.300 -        Mnemonics.setLocalizedText(prefixTitleLabel, NbBundle.getMessage(AdaGeneralOptionsPanel.class, "LBL_prefixTitle"));
 172.301 -        pkgBodyPrefixComboBox.setModel(new DefaultComboBoxModel(new String[] { "<package name>", "<free name>" }));
 172.302 -        pkgBodyPrefixComboBox.setEnabled(false);
 172.303 -
 172.304 -
 172.305 -        Mnemonics.setLocalizedText(postfixTitleLabel, NbBundle.getMessage(AdaGeneralOptionsPanel.class, "LBL_postfixTitle"));
 172.306 -        pkgSpecPostfixComboBox.setModel(new DefaultComboBoxModel(new String[] { "<none>", "<free name>" }));
 172.307 -        pkgSpecPostfixComboBox.addActionListener(new ActionListener() {
 172.308 -            public void actionPerformed(ActionEvent evt) {
 172.309 -                pkgSpecPostfixComboBoxActionPerformed(evt);
 172.310 -            }
 172.311 -        });
 172.312 -
 172.313 -        separatePrefixComboBox.setModel(new DefaultComboBoxModel(new String[] { "<package name>", "<free name>" }));
 172.314 -        separatePrefixComboBox.setEnabled(false);
 172.315 -
 172.316 -        pkgBodyPostfixComboBox.setModel(new DefaultComboBoxModel(new String[] { "<none>", "<free name>" }));
 172.317 -        pkgBodyPostfixComboBox.addActionListener(new ActionListener() {
 172.318 -            public void actionPerformed(ActionEvent evt) {
 172.319 -                pkgBodyPostfixComboBoxActionPerformed(evt);
 172.320 -            }
 172.321 -        });
 172.322 -
 172.323 -        separatePostfixComboBox.setModel(new DefaultComboBoxModel(new String[] { "<procedure name>", "<free name>", "<none>" }));
 172.324 -        separatePostfixComboBox.setEnabled(false);
 172.325 -
 172.326 -        separatePostfixComboBox.addActionListener(new ActionListener() {
 172.327 -            public void actionPerformed(ActionEvent evt) {
 172.328 -                separatePostfixComboBoxActionPerformed(evt);
 172.329 -            }
 172.330 -        });
 172.331 -
 172.332 -        pkgSpecExtComboBox.setModel(new DefaultComboBoxModel(new String[] { "ads", "ada" }));
 172.333 -        pkgSpecExtComboBox.addActionListener(new ActionListener() {
 172.334 -            public void actionPerformed(ActionEvent evt) {
 172.335 -                pkgSpecExtComboBoxActionPerformed(evt);
 172.336 -            }
 172.337 -        });
 172.338 -
 172.339 -        pkgBodyExtComboBox.setModel(new DefaultComboBoxModel(new String[] { "adb", "ada" }));
 172.340 -        pkgBodyExtComboBox.addActionListener(new ActionListener() {
 172.341 -            public void actionPerformed(ActionEvent evt) {
 172.342 -                pkgBodyExtComboBoxActionPerformed(evt);
 172.343 -            }
 172.344 -        });
 172.345 -
 172.346 -        separateExtComboBox.setModel(new DefaultComboBoxModel(new String[] { "adb", "ada" }));
 172.347 -        separateExtComboBox.addActionListener(new ActionListener() {
 172.348 -            public void actionPerformed(ActionEvent evt) {
 172.349 -                separateExtComboBoxActionPerformed(evt);
 172.350 -            }
 172.351 -        });
 172.352 -        Mnemonics.setLocalizedText(separatorTitleLabel, NbBundle.getMessage(AdaGeneralOptionsPanel.class, "AdaGeneralOptionsPanel.separatorTitleLabel.text"));
 172.353 -        GroupLayout layout = new GroupLayout(this);
 172.354 -        this.setLayout(layout);
 172.355 -        layout.setHorizontalGroup(
 172.356 -            layout.createParallelGroup(GroupLayout.LEADING)
 172.357 -            .add(layout.createSequentialGroup()
 172.358 -                .add(layout.createParallelGroup(GroupLayout.LEADING)
 172.359 -                    .add(layout.createSequentialGroup()
 172.360 -                        .addContainerGap()
 172.361 -                        .add(layout.createParallelGroup(GroupLayout.LEADING)
 172.362 -                            .add(layout.createSequentialGroup()
 172.363 -                                .add(standardsLabel)
 172.364 -                                .addPreferredGap(LayoutStyle.RELATED)
 172.365 -                                .add(standardsLineSeparator, GroupLayout.DEFAULT_SIZE, 572, Short.MAX_VALUE))
 172.366 -                            .add(errorLabel)
 172.367 -                            .add(layout.createSequentialGroup()
 172.368 -                                .add(12, 12, 12)
 172.369 -                                .add(layout.createParallelGroup(GroupLayout.LEADING)
 172.370 -                                    .add(adaRestrictionsLabel)
 172.371 -                                    .add(adaDialectsLabel, GroupLayout.PREFERRED_SIZE, 63, GroupLayout.PREFERRED_SIZE))
 172.372 -                                .addPreferredGap(LayoutStyle.UNRELATED)
 172.373 -                                .add(layout.createParallelGroup(GroupLayout.LEADING)
 172.374 -                                    .add(adaRestrictionsComboBox, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
 172.375 -                                    .add(adaDialectsComboBox, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
 172.376 -                                .add(373, 373, 373))))
 172.377 -                    .add(layout.createSequentialGroup()
 172.378 -                        .add(20, 20, 20)
 172.379 -                        .add(layout.createParallelGroup(GroupLayout.TRAILING, false)
 172.380 -                            .add(GroupLayout.LEADING, pkgBodyMaskLabel, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
 172.381 -                            .add(GroupLayout.LEADING, pkgSpecMaskLabel, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
 172.382 -                            .add(GroupLayout.LEADING, separatorMaskLabel, GroupLayout.PREFERRED_SIZE, 107, GroupLayout.PREFERRED_SIZE))
 172.383 -                        .addPreferredGap(LayoutStyle.UNRELATED)
 172.384 -                        .add(layout.createParallelGroup(GroupLayout.LEADING)
 172.385 -                            .add(layout.createParallelGroup(GroupLayout.TRAILING)
 172.386 -                                .add(layout.createParallelGroup(GroupLayout.LEADING)
 172.387 -                                    .add(pkgSpecPrefixComboBox, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
 172.388 -                                    .add(pkgBodyPrefixComboBox, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
 172.389 -                                .add(prefixTitleLabel))
 172.390 -                            .add(separatePrefixComboBox, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
 172.391 -                        .addPreferredGap(LayoutStyle.RELATED)
 172.392 -                        .add(layout.createParallelGroup(GroupLayout.TRAILING)
 172.393 -                            .add(separatorTitleLabel)
 172.394 -                            .add(pkgSpecSepTextField, GroupLayout.PREFERRED_SIZE, 38, GroupLayout.PREFERRED_SIZE)
 172.395 -                            .add(pkgBodySepTextField, GroupLayout.PREFERRED_SIZE, 38, GroupLayout.PREFERRED_SIZE)
 172.396 -                            .add(separateSepTextField, GroupLayout.PREFERRED_SIZE, 38, GroupLayout.PREFERRED_SIZE))
 172.397 -                        .addPreferredGap(LayoutStyle.RELATED)
 172.398 -                        .add(layout.createParallelGroup(GroupLayout.LEADING, false)
 172.399 -                            .add(pkgBodyPostfixComboBox, 0, 110, Short.MAX_VALUE)
 172.400 -                            .add(separatePostfixComboBox, 0, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
 172.401 -                            .add(pkgSpecPostfixComboBox, 0, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
 172.402 -                            .add(GroupLayout.TRAILING, postfixTitleLabel))
 172.403 -                        .addPreferredGap(LayoutStyle.RELATED)
 172.404 -                        .add(layout.createParallelGroup(GroupLayout.LEADING, false)
 172.405 -                            .add(separateExtComboBox, 0, 0, Short.MAX_VALUE)
 172.406 -                            .add(pkgBodyExtComboBox, 0, 0, Short.MAX_VALUE)
 172.407 -                            .add(pkgSpecExtComboBox, 0, 0, Short.MAX_VALUE)
 172.408 -                            .add(layout.createSequentialGroup()
 172.409 -                                .add(41, 41, 41)
 172.410 -                                .add(extTitleLabel))))
 172.411 -                    .add(layout.createSequentialGroup()
 172.412 -                        .addContainerGap()
 172.413 -                        .add(namingLabel)
 172.414 -                        .addPreferredGap(LayoutStyle.RELATED)
 172.415 -                        .add(namingLineSeparator, GroupLayout.DEFAULT_SIZE, 586, Short.MAX_VALUE)))
 172.416 -                .addContainerGap())
 172.417 -        );
 172.418 -
 172.419 -        layout.linkSize(new Component[] {adaDialectsLabel, adaRestrictionsLabel}, GroupLayout.HORIZONTAL);
 172.420 -
 172.421 -        layout.linkSize(new Component[] {adaDialectsComboBox, adaRestrictionsComboBox}, GroupLayout.HORIZONTAL);
 172.422 -
 172.423 -        layout.linkSize(new Component[] {pkgBodyMaskLabel, pkgSpecMaskLabel, separatorMaskLabel}, GroupLayout.HORIZONTAL);
 172.424 -
 172.425 -        layout.linkSize(new Component[] {pkgBodySepTextField, pkgSpecSepTextField, separateSepTextField}, GroupLayout.HORIZONTAL);
 172.426 -
 172.427 -        layout.linkSize(new Component[] {pkgBodyPostfixComboBox, pkgBodyPrefixComboBox, pkgSpecPostfixComboBox, pkgSpecPrefixComboBox, separatePostfixComboBox, separatePrefixComboBox}, GroupLayout.HORIZONTAL);
 172.428 -
 172.429 -        layout.setVerticalGroup(
 172.430 -            layout.createParallelGroup(GroupLayout.LEADING)
 172.431 -            .add(layout.createSequentialGroup()
 172.432 -                .addContainerGap()
 172.433 -                .add(layout.createParallelGroup(GroupLayout.CENTER)
 172.434 -                    .add(standardsLineSeparator, GroupLayout.PREFERRED_SIZE, 12, GroupLayout.PREFERRED_SIZE)
 172.435 -                    .add(standardsLabel))
 172.436 -                .addPreferredGap(LayoutStyle.RELATED)
 172.437 -                .add(layout.createParallelGroup(GroupLayout.CENTER)
 172.438 -                    .add(adaDialectsComboBox, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
 172.439 -                    .add(adaDialectsLabel))
 172.440 -                .addPreferredGap(LayoutStyle.RELATED)
 172.441 -                .add(layout.createParallelGroup(GroupLayout.CENTER)
 172.442 -                    .add(adaRestrictionsComboBox, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
 172.443 -                    .add(adaRestrictionsLabel))
 172.444 -                .add(18, 18, 18)
 172.445 -                .add(layout.createParallelGroup(GroupLayout.CENTER)
 172.446 -                    .add(namingLineSeparator, GroupLayout.PREFERRED_SIZE, 10, GroupLayout.PREFERRED_SIZE)
 172.447 -                    .add(namingLabel))
 172.448 -                .add(1, 1, 1)
 172.449 -                .add(layout.createParallelGroup(GroupLayout.LEADING)
 172.450 -                    .add(layout.createParallelGroup(GroupLayout.BASELINE)
 172.451 -                        .add(prefixTitleLabel)
 172.452 -                        .add(separatorTitleLabel))
 172.453 -                    .add(extTitleLabel)
 172.454 -                    .add(postfixTitleLabel))
 172.455 -                .add(4, 4, 4)
 172.456 -                .add(layout.createParallelGroup(GroupLayout.CENTER)
 172.457 -                    .add(pkgSpecMaskLabel)
 172.458 -                    .add(pkgSpecPrefixComboBox, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
 172.459 -                    .add(pkgSpecSepTextField, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
 172.460 -                    .add(pkgSpecPostfixComboBox, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
 172.461 -                    .add(pkgSpecExtComboBox, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
 172.462 -                .addPreferredGap(LayoutStyle.RELATED)
 172.463 -                .add(layout.createParallelGroup(GroupLayout.LEADING)
 172.464 -                    .add(layout.createParallelGroup(GroupLayout.CENTER)
 172.465 -                        .add(pkgBodyPrefixComboBox, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
 172.466 -                        .add(pkgBodyMaskLabel))
 172.467 -                    .add(pkgBodyExtComboBox, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
 172.468 -                    .add(layout.createParallelGroup(GroupLayout.BASELINE)
 172.469 -                        .add(pkgBodyPostfixComboBox, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
 172.470 -                        .add(pkgBodySepTextField, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)))
 172.471 -                .addPreferredGap(LayoutStyle.RELATED)
 172.472 -                .add(layout.createParallelGroup(GroupLayout.CENTER)
 172.473 -                    .add(separatorMaskLabel)
 172.474 -                    .add(separatePrefixComboBox, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
 172.475 -                    .add(separateSepTextField, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
 172.476 -                    .add(separatePostfixComboBox, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
 172.477 -                    .add(separateExtComboBox, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
 172.478 -                .addPreferredGap(LayoutStyle.RELATED, 150, Short.MAX_VALUE)
 172.479 -                .add(errorLabel)
 172.480 -                .addContainerGap())
 172.481 -        );
 172.482 -    }// </editor-fold>//GEN-END:initComponents
 172.483 -
 172.484 -    private void adaDialectsComboBoxActionPerformed(ActionEvent evt) {//GEN-FIRST:event_adaDialectsComboBoxActionPerformed
 172.485 -        if (this.uiProperties != null) {
 172.486 -            this.uiProperties.setAdaDialects(getAdaDialects());
 172.487 -        }
 172.488 -    }//GEN-LAST:event_adaDialectsComboBoxActionPerformed
 172.489 -
 172.490 -    private void adaRestrictionsComboBoxActionPerformed(ActionEvent evt) {//GEN-FIRST:event_adaRestrictionsComboBoxActionPerformed
 172.491 -        if (this.uiProperties != null) {
 172.492 -            this.uiProperties.setAdaRestrictions(getAdaRestrictions());
 172.493 -        }
 172.494 -    }//GEN-LAST:event_adaRestrictionsComboBoxActionPerformed
 172.495 -
 172.496 -    private void pkgSpecPostfixComboBoxActionPerformed(ActionEvent evt) {//GEN-FIRST:event_pkgSpecPostfixComboBoxActionPerformed
 172.497 -        if (pkgSpecPostfixComboBox.getSelectedIndex() != 0) {
 172.498 -            pkgSpecPostfixComboBox.setEditable(true);
 172.499 -        } else {
 172.500 -            pkgSpecPostfixComboBox.setEditable(false);
 172.501 -        }
 172.502 -        if (this.uiProperties != null) {
 172.503 -            this.uiProperties.setPkgSpecPostfix(getPkgSpecPostfix());
 172.504 -        }
 172.505 -    }//GEN-LAST:event_pkgSpecPostfixComboBoxActionPerformed
 172.506 -
 172.507 -    private void pkgBodyPostfixComboBoxActionPerformed(ActionEvent evt) {//GEN-FIRST:event_pkgBodyPostfixComboBoxActionPerformed
 172.508 -        if (pkgBodyPostfixComboBox.getSelectedIndex() != 0) {
 172.509 -            pkgBodyPostfixComboBox.setEditable(true);
 172.510 -        } else {
 172.511 -            pkgBodyPostfixComboBox.setEditable(false);
 172.512 -        }
 172.513 -        if (this.uiProperties != null) {
 172.514 -            this.uiProperties.setPkgBodyPostfix(getPkgBodyPostfix());
 172.515 -        }
 172.516 -    }//GEN-LAST:event_pkgBodyPostfixComboBoxActionPerformed
 172.517 -
 172.518 -    private void separatePostfixComboBoxActionPerformed(ActionEvent evt) {//GEN-FIRST:event_separatePostfixComboBoxActionPerformed
 172.519 -        if (this.uiProperties != null) {
 172.520 -            this.uiProperties.setSeparatePostfix(getSeparatePostfix());
 172.521 -        }
 172.522 -    }//GEN-LAST:event_separatePostfixComboBoxActionPerformed
 172.523 -
 172.524 -    private void pkgSpecExtComboBoxActionPerformed(ActionEvent evt) {//GEN-FIRST:event_pkgSpecExtComboBoxActionPerformed
 172.525 -        if (this.uiProperties != null) {
 172.526 -            this.uiProperties.setPkgSpecExt(getPkgSpecExt());
 172.527 -        }
 172.528 -    }//GEN-LAST:event_pkgSpecExtComboBoxActionPerformed
 172.529 -
 172.530 -    private void pkgBodyExtComboBoxActionPerformed(ActionEvent evt) {//GEN-FIRST:event_pkgBodyExtComboBoxActionPerformed
 172.531 -        if (this.uiProperties != null) {
 172.532 -            this.uiProperties.setPkgBodyExt(getPkgBodyExt());
 172.533 -        }
 172.534 -    }//GEN-LAST:event_pkgBodyExtComboBoxActionPerformed
 172.535 -
 172.536 -    private void separateExtComboBoxActionPerformed(ActionEvent evt) {//GEN-FIRST:event_separateExtComboBoxActionPerformed
 172.537 -        if (this.uiProperties != null) {
 172.538 -            this.uiProperties.setSeparateExt(getSeparateExt());
 172.539 -        }
 172.540 -    }//GEN-LAST:event_separateExtComboBoxActionPerformed
 172.541 -
 172.542 -
 172.543 -    // Variables declaration - do not modify//GEN-BEGIN:variables
 172.544 -    private JComboBox adaDialectsComboBox;
 172.545 -    private JLabel adaDialectsLabel;
 172.546 -    private JComboBox adaRestrictionsComboBox;
 172.547 -    private JLabel adaRestrictionsLabel;
 172.548 -    private JLabel errorLabel;
 172.549 -    private JLabel extTitleLabel;
 172.550 -    private JLabel namingLabel;
 172.551 -    private JSeparator namingLineSeparator;
 172.552 -    private JComboBox pkgBodyExtComboBox;
 172.553 -    private JLabel pkgBodyMaskLabel;
 172.554 -    private JComboBox pkgBodyPostfixComboBox;
 172.555 -    private JComboBox pkgBodyPrefixComboBox;
 172.556 -    private JTextField pkgBodySepTextField;
 172.557 -    private JComboBox pkgSpecExtComboBox;
 172.558 -    private JLabel pkgSpecMaskLabel;
 172.559 -    private JComboBox pkgSpecPostfixComboBox;
 172.560 -    private JComboBox pkgSpecPrefixComboBox;
 172.561 -    private JTextField pkgSpecSepTextField;
 172.562 -    private JLabel postfixTitleLabel;
 172.563 -    private JLabel prefixTitleLabel;
 172.564 -    private JComboBox separateExtComboBox;
 172.565 -    private JComboBox separatePostfixComboBox;
 172.566 -    private JComboBox separatePrefixComboBox;
 172.567 -    private JTextField separateSepTextField;
 172.568 -    private JLabel separatorMaskLabel;
 172.569 -    private JLabel separatorTitleLabel;
 172.570 -    private JLabel standardsLabel;
 172.571 -    private JSeparator standardsLineSeparator;
 172.572 -    // End of variables declaration//GEN-END:variables
 172.573 -
 172.574 -    private final class DefaultDocumentListener implements DocumentListener {
 172.575 -
 172.576 -        public void insertUpdate(DocumentEvent e) {
 172.577 -            processUpdate();
 172.578 -        }
 172.579 -
 172.580 -        public void removeUpdate(DocumentEvent e) {
 172.581 -            processUpdate();
 172.582 -        }
 172.583 -
 172.584 -        public void changedUpdate(DocumentEvent e) {
 172.585 -            processUpdate();
 172.586 -        }
 172.587 -
 172.588 -        private void processUpdate() {
 172.589 -            fireChange();
 172.590 -        }
 172.591 -    }
 172.592 -}
   173.1 --- a/ada.project/src/org/netbeans/modules/ada/project/options/AdaOptions.java	Tue Oct 02 21:55:21 2012 -0400
   173.2 +++ b/ada.project/src/org/netbeans/modules/ada/project/options/AdaOptions.java	Mon Oct 15 23:38:26 2012 +0200
   173.3 @@ -39,10 +39,8 @@
   173.4  
   173.5  package org.netbeans.modules.ada.project.options;
   173.6  
   173.7 -import org.netbeans.modules.ada.project.options.AdaPreferences;
   173.8  import java.util.prefs.PreferenceChangeListener;
   173.9  import java.util.prefs.Preferences;
  173.10 -import org.openide.util.NbPreferences;
  173.11  
  173.12  /**
  173.13   *
  173.14 @@ -57,8 +55,8 @@
  173.15      public static final String DEFAULT_PKG_SPEC_PREFIX = "<package name>"; // NOI18N
  173.16      public static final String DEFAULT_PKG_BODY_PREFIX = "<package name>"; // NOI18N
  173.17      public static final String DEFAULT_SEPARATE_PREFIX = "<package name>"; // NOI18N
  173.18 -    public static final String DEFAULT_PKG_SPEC_POSTFIX = "<none>"; // NOI18N
  173.19 -    public static final String DEFAULT_PKG_BODY_POSTFIX = "<none>"; // NOI18N
  173.20 +    public static final String DEFAULT_PKG_SPEC_POSTFIX = ""; // NOI18N
  173.21 +    public static final String DEFAULT_PKG_BODY_POSTFIX = ""; // NOI18N
  173.22      public static final String DEFAULT_SEPARATE_POSTFIX = "<procdure name>"; // NOI18N
  173.23      public static final String DEFAULT_PKG_SPEC_EXT = "ads"; // NOI18N
  173.24      public static final String DEFAULT_PKG_BODY_EXT = "adb"; // NOI18N
   174.1 --- a/ada.project/src/org/netbeans/modules/ada/project/options/AdaPreferences.java	Tue Oct 02 21:55:21 2012 -0400
   174.2 +++ b/ada.project/src/org/netbeans/modules/ada/project/options/AdaPreferences.java	Mon Oct 15 23:38:26 2012 +0200
   174.3 @@ -58,7 +58,7 @@
   174.4       * by upgrader when first started new NB version
   174.5       * @return instance of Preferences node
   174.6       */
   174.7 -    public static final Preferences getPreferences(boolean importEnabled) {
   174.8 +    public static Preferences getPreferences(boolean importEnabled) {
   174.9          Preferences forModule = NbPreferences.forModule(AdaPreferences.class);
  174.10          return (importEnabled) ? forModule : forModule.node(PRIVATE_PREFERENCES_PATH);
  174.11      }
   175.1 --- a/ada.project/src/org/netbeans/modules/ada/project/options/Bundle.properties	Tue Oct 02 21:55:21 2012 -0400
   175.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   175.3 @@ -1,51 +0,0 @@
   175.4 -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
   175.5 -#
   175.6 -# Copyright 2009 Sun Microsystems, Inc. All rights reserved.
   175.7 -#
   175.8 -# The contents of this file are subject to the terms of either the GNU
   175.9 -# General Public License Version 2 only ("GPL") or the Common
  175.10 -# Development and Distribution License("CDDL") (collectively, the
  175.11 -# "License"). You may not use this file except in compliance with the
  175.12 -# License. You can obtain a copy of the License at
  175.13 -# http://www.netbeans.org/cddl-gplv2.html
  175.14 -# or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
  175.15 -# specific language governing permissions and limitations under the
  175.16 -# License.  When distributing the software, include this License Header
  175.17 -# Notice in each file and include the License file at
  175.18 -# nbbuild/licenses/CDDL-GPL-2-CP.  Sun designates this
  175.19 -# particular file as subject to the "Classpath" exception as provided
  175.20 -# by Sun in the GPL Version 2 section of the License file that
  175.21 -# accompanied this code. If applicable, add the following below the
  175.22 -# License Header, with the fields enclosed by brackets [] replaced by
  175.23 -# your own identifying information:
  175.24 -# "Portions Copyrighted [year] [name of copyright owner]"
  175.25 -#
  175.26 -# If you wish your version of this file to be governed by only the CDDL
  175.27 -# or only the GPL Version 2, indicate your decision by adding
  175.28 -# "[Contributor] elects to include this software in this distribution
  175.29 -# under the [CDDL or GPL Version 2] license." If you do not indicate a
  175.30 -# single choice of license, a recipient has the option to distribute
  175.31 -# your version of this file under either the CDDL, the GPL Version 2 or
  175.32 -# to extend the choice of license to its licensees as provided above.
  175.33 -# However, if you add GPL Version 2 code and therefore, elected the GPL
  175.34 -# Version 2 license, then the option applies only if the new code is
  175.35 -# made subject to such option by the copyright holder.
  175.36 -#
  175.37 -# Contributor(s):
  175.38 -#
  175.39 -# Portions Copyrighted 2009 Sun Microsystems, Inc.
  175.40 -
  175.41 -# AdaGeneralOptionsPanel
  175.42 -AdaGeneralOptionsPanel.separatorTitleLabel.text=separ.
  175.43 -LBL_Naming=File Naming
  175.44 -LBL_AdaDialects=Ada Dialects
  175.45 -LBL_pkgSpecMask=Package &Specification:
  175.46 -LBL_pkgBodyMask=Package &Body:
  175.47 -LBL_separatorMask=Separa&te:
  175.48 -LBL_prefixTitle=prefix
  175.49 -LBL_postfixTitle=postfix
  175.50 -LBL_extTitle=ext.
  175.51 -LBL_adaRestrictions=Ada &restrictions:
  175.52 -LBL_Standards=Standards
  175.53 -
  175.54 -
   176.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   176.2 +++ b/ada.project/src/org/netbeans/modules/ada/project/options/ui/AdaGeneralOptionsPanel.form	Mon Oct 15 23:38:26 2012 +0200
   176.3 @@ -0,0 +1,443 @@
   176.4 +<?xml version="1.1" encoding="UTF-8" ?>
   176.5 +
   176.6 +<Form version="1.5" maxVersion="1.6" type="org.netbeans.modules.form.forminfo.JPanelFormInfo">
   176.7 +  <AuxValues>
   176.8 +    <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="1"/>
   176.9 +    <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
  176.10 +    <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="false"/>
  176.11 +    <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="true"/>
  176.12 +    <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="true"/>
  176.13 +    <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
  176.14 +    <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
  176.15 +    <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
  176.16 +    <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
  176.17 +  </AuxValues>
  176.18 +
  176.19 +  <Layout>
  176.20 +    <DimensionLayout dim="0">
  176.21 +      <Group type="103" groupAlignment="0" attributes="0">
  176.22 +          <Group type="102" attributes="0">
  176.23 +              <Group type="103" groupAlignment="0" attributes="0">
  176.24 +                  <Group type="102" attributes="0">
  176.25 +                      <EmptySpace min="10" pref="10" max="10" attributes="0"/>
  176.26 +                      <Component id="standardsLabel" min="-2" max="-2" attributes="0"/>
  176.27 +                      <EmptySpace min="4" pref="4" max="4" attributes="0"/>
  176.28 +                      <Component id="standardsLineSeparator" min="-2" pref="572" max="-2" attributes="0"/>
  176.29 +                  </Group>
  176.30 +                  <Group type="102" attributes="0">
  176.31 +                      <EmptySpace min="10" pref="10" max="10" attributes="0"/>
  176.32 +                      <Component id="namingLabel" min="-2" max="-2" attributes="0"/>
  176.33 +                      <EmptySpace min="4" pref="4" max="4" attributes="0"/>
  176.34 +                      <Component id="namingLineSeparator" min="-2" pref="586" max="-2" attributes="0"/>
  176.35 +                  </Group>
  176.36 +                  <Group type="102" attributes="0">
  176.37 +                      <EmptySpace min="20" pref="20" max="20" attributes="0"/>
  176.38 +                      <Component id="pkgBodyMaskLabel" min="-2" pref="107" max="-2" attributes="0"/>
  176.39 +                      <EmptySpace min="10" pref="10" max="10" attributes="0"/>
  176.40 +                      <Component id="pkgBodyPrefixComboBox" min="-2" pref="119" max="-2" attributes="0"/>
  176.41 +                      <EmptySpace min="6" pref="6" max="6" attributes="0"/>
  176.42 +                      <Component id="pkgBodySepTextField" min="-2" pref="38" max="-2" attributes="0"/>
  176.43 +                      <EmptySpace min="6" pref="6" max="6" attributes="0"/>
  176.44 +                      <Component id="pkgBodyPostfixComboBox" min="-2" pref="119" max="-2" attributes="0"/>
  176.45 +                      <EmptySpace min="6" pref="6" max="6" attributes="0"/>
  176.46 +                      <Component id="pkgBodyExtComboBox" min="-2" pref="115" max="-2" attributes="0"/>
  176.47 +                  </Group>
  176.48 +                  <Group type="102" attributes="0">
  176.49 +                      <EmptySpace min="20" pref="20" max="20" attributes="0"/>
  176.50 +                      <Component id="separatorMaskLabel" min="-2" pref="107" max="-2" attributes="0"/>
  176.51 +                      <EmptySpace min="10" pref="10" max="10" attributes="0"/>
  176.52 +                      <Component id="separatePrefixComboBox" min="-2" pref="119" max="-2" attributes="0"/>
  176.53 +                      <EmptySpace min="6" pref="6" max="6" attributes="0"/>
  176.54 +                      <Component id="separateSepTextField" min="-2" pref="38" max="-2" attributes="0"/>
  176.55 +                      <EmptySpace min="6" pref="6" max="6" attributes="0"/>
  176.56 +                      <Component id="separatePostfixComboBox" min="-2" max="-2" attributes="0"/>
  176.57 +                      <EmptySpace min="6" pref="6" max="6" attributes="0"/>
  176.58 +                      <Component id="separateExtComboBox" min="-2" pref="115" max="-2" attributes="0"/>
  176.59 +                  </Group>
  176.60 +                  <Group type="102" attributes="0">
  176.61 +                      <EmptySpace min="10" pref="10" max="10" attributes="0"/>
  176.62 +                      <Component id="errorLabel" min="-2" max="-2" attributes="0"/>
  176.63 +                  </Group>
  176.64 +                  <Group type="102" alignment="0" attributes="0">
  176.65 +                      <EmptySpace min="22" pref="22" max="-2" attributes="0"/>
  176.66 +                      <Group type="103" groupAlignment="0" attributes="0">
  176.67 +                          <Component id="adaRestrictionsLabel" alignment="0" min="-2" max="-2" attributes="0"/>
  176.68 +                          <Component id="adaDialectsLabel" alignment="0" min="-2" pref="112" max="-2" attributes="0"/>
  176.69 +                      </Group>
  176.70 +                      <EmptySpace max="-2" attributes="0"/>
  176.71 +                      <Group type="103" groupAlignment="0" attributes="0">
  176.72 +                          <Component id="adaDialectsComboBox" min="-2" pref="87" max="-2" attributes="0"/>
  176.73 +                          <Component id="adaRestrictionsComboBox" alignment="0" min="-2" max="-2" attributes="0"/>
  176.74 +                      </Group>
  176.75 +                  </Group>
  176.76 +                  <Group type="102" alignment="0" attributes="0">
  176.77 +                      <Group type="103" groupAlignment="1" attributes="0">
  176.78 +                          <Group type="102" attributes="0">
  176.79 +                              <EmptySpace max="-2" attributes="0"/>
  176.80 +                              <Component id="prefixTitleLabel" min="-2" max="-2" attributes="0"/>
  176.81 +                              <EmptySpace type="separate" max="-2" attributes="0"/>
  176.82 +                              <Component id="separatorTitleLabel" min="-2" max="-2" attributes="0"/>
  176.83 +                          </Group>
  176.84 +                          <Group type="102" alignment="0" attributes="0">
  176.85 +                              <EmptySpace min="20" pref="20" max="20" attributes="0"/>
  176.86 +                              <Component id="pkgSpecMaskLabel" min="-2" pref="107" max="-2" attributes="0"/>
  176.87 +                              <EmptySpace min="10" pref="10" max="10" attributes="0"/>
  176.88 +                              <Component id="pkgSpecPrefixComboBox" min="-2" pref="119" max="-2" attributes="0"/>
  176.89 +                              <EmptySpace min="6" pref="6" max="6" attributes="0"/>
  176.90 +                              <Component id="pkgSpecSepTextField" min="-2" pref="38" max="-2" attributes="0"/>
  176.91 +                          </Group>
  176.92 +                      </Group>
  176.93 +                      <Group type="103" groupAlignment="0" attributes="0">
  176.94 +                          <Group type="102" alignment="0" attributes="0">
  176.95 +                              <EmptySpace min="6" pref="6" max="6" attributes="0"/>
  176.96 +                              <Component id="pkgSpecPostfixComboBox" min="-2" pref="119" max="-2" attributes="0"/>
  176.97 +                          </Group>
  176.98 +                          <Group type="102" alignment="1" attributes="0">
  176.99 +                              <EmptySpace min="-2" pref="92" max="-2" attributes="0"/>
 176.100 +                              <Component id="postfixTitleLabel" min="-2" max="-2" attributes="0"/>
 176.101 +                          </Group>
 176.102 +                      </Group>
 176.103 +                      <Group type="103" groupAlignment="0" attributes="0">
 176.104 +                          <Group type="102" alignment="0" attributes="0">
 176.105 +                              <EmptySpace min="6" pref="6" max="6" attributes="0"/>
 176.106 +                              <Component id="pkgSpecExtComboBox" min="-2" pref="115" max="-2" attributes="0"/>
 176.107 +                          </Group>
 176.108 +                          <Group type="102" alignment="1" attributes="0">
 176.109 +                              <EmptySpace min="-2" pref="101" max="-2" attributes="0"/>
 176.110 +                              <Component id="extTitleLabel" min="-2" max="-2" attributes="0"/>
 176.111 +                          </Group>
 176.112 +                      </Group>
 176.113 +                  </Group>
 176.114 +              </Group>
 176.115 +              <EmptySpace min="-2" pref="46" max="-2" attributes="0"/>
 176.116 +          </Group>
 176.117 +      </Group>
 176.118 +    </DimensionLayout>
 176.119 +    <DimensionLayout dim="1">
 176.120 +      <Group type="103" groupAlignment="0" attributes="0">
 176.121 +          <Group type="102" attributes="0">
 176.122 +              <EmptySpace min="11" pref="11" max="11" attributes="0"/>
 176.123 +              <Group type="103" groupAlignment="0" attributes="0">
 176.124 +                  <Component id="standardsLabel" min="-2" max="-2" attributes="0"/>
 176.125 +                  <Group type="102" attributes="0">
 176.126 +                      <EmptySpace min="1" pref="1" max="1" attributes="0"/>
 176.127 +                      <Component id="standardsLineSeparator" min="-2" pref="12" max="-2" attributes="0"/>
 176.128 +                  </Group>
 176.129 +              </Group>
 176.130 +              <EmptySpace min="-2" pref="9" max="-2" attributes="0"/>
 176.131 +              <Group type="103" groupAlignment="3" attributes="0">
 176.132 +                  <Component id="adaDialectsLabel" alignment="3" min="-2" max="-2" attributes="0"/>
 176.133 +                  <Component id="adaDialectsComboBox" alignment="3" min="-2" max="-2" attributes="0"/>
 176.134 +              </Group>
 176.135 +              <EmptySpace min="-2" pref="9" max="-2" attributes="0"/>
 176.136 +              <Group type="103" groupAlignment="0" attributes="0">
 176.137 +                  <Group type="102" attributes="0">
 176.138 +                      <EmptySpace min="3" pref="3" max="3" attributes="0"/>
 176.139 +                      <Component id="adaRestrictionsLabel" min="-2" max="-2" attributes="0"/>
 176.140 +                  </Group>
 176.141 +                  <Component id="adaRestrictionsComboBox" min="-2" max="-2" attributes="0"/>
 176.142 +              </Group>
 176.143 +              <EmptySpace min="18" pref="18" max="18" attributes="0"/>
 176.144 +              <Group type="103" groupAlignment="0" attributes="0">
 176.145 +                  <Component id="namingLabel" min="-2" max="-2" attributes="0"/>
 176.146 +                  <Group type="102" attributes="0">
 176.147 +                      <EmptySpace min="2" pref="2" max="2" attributes="0"/>
 176.148 +                      <Component id="namingLineSeparator" min="-2" pref="10" max="-2" attributes="0"/>
 176.149 +                  </Group>
 176.150 +              </Group>
 176.151 +              <EmptySpace min="1" pref="1" max="1" attributes="0"/>
 176.152 +              <Group type="103" groupAlignment="0" attributes="0">
 176.153 +                  <Group type="103" alignment="0" groupAlignment="3" attributes="0">
 176.154 +                      <Component id="separatorTitleLabel" alignment="3" min="-2" max="-2" attributes="0"/>
 176.155 +                      <Component id="prefixTitleLabel" alignment="3" min="-2" max="-2" attributes="0"/>
 176.156 +                  </Group>
 176.157 +                  <Group type="103" alignment="0" groupAlignment="3" attributes="0">
 176.158 +                      <Component id="extTitleLabel" alignment="3" min="-2" max="-2" attributes="0"/>
 176.159 +                      <Component id="postfixTitleLabel" alignment="3" min="-2" max="-2" attributes="0"/>
 176.160 +                  </Group>
 176.161 +              </Group>
 176.162 +              <EmptySpace min="4" pref="4" max="4" attributes="0"/>
 176.163 +              <Group type="103" groupAlignment="0" attributes="0">
 176.164 +                  <Group type="102" attributes="0">
 176.165 +                      <EmptySpace min="3" pref="3" max="3" attributes="0"/>
 176.166 +                      <Component id="pkgSpecMaskLabel" min="-2" max="-2" attributes="0"/>
 176.167 +                  </Group>
 176.168 +                  <Component id="pkgSpecPrefixComboBox" min="-2" max="-2" attributes="0"/>
 176.169 +                  <Component id="pkgSpecSepTextField" min="-2" max="-2" attributes="0"/>
 176.170 +                  <Component id="pkgSpecPostfixComboBox" min="-2" max="-2" attributes="0"/>
 176.171 +                  <Component id="pkgSpecExtComboBox" min="-2" max="-2" attributes="0"/>
 176.172 +              </Group>
 176.173 +              <EmptySpace min="6" pref="6" max="6" attributes="0"/>
 176.174 +              <Group type="103" groupAlignment="0" attributes="0">
 176.175 +                  <Group type="102" attributes="0">
 176.176 +                      <EmptySpace min="3" pref="3" max="3" attributes="0"/>
 176.177 +                      <Component id="pkgBodyMaskLabel" min="-2" max="-2" attributes="0"/>
 176.178 +                  </Group>
 176.179 +                  <Component id="pkgBodyPrefixComboBox" min="-2" max="-2" attributes="0"/>
 176.180 +                  <Component id="pkgBodySepTextField" min="-2" max="-2" attributes="0"/>
 176.181 +                  <Component id="pkgBodyPostfixComboBox" min="-2" max="-2" attributes="0"/>
 176.182 +                  <Component id="pkgBodyExtComboBox" min="-2" max="-2" attributes="0"/>
 176.183 +              </Group>
 176.184 +              <EmptySpace min="6" pref="6" max="6" attributes="0"/>
 176.185 +              <Group type="103" groupAlignment="0" attributes="0">
 176.186 +                  <Group type="102" attributes="0">
 176.187 +                      <EmptySpace min="3" pref="3" max="3" attributes="0"/>
 176.188 +                      <Component id="separatorMaskLabel" min="-2" max="-2" attributes="0"/>
 176.189 +                  </Group>
 176.190 +                  <Component id="separatePrefixComboBox" min="-2" max="-2" attributes="0"/>
 176.191 +                  <Component id="separateSepTextField" min="-2" max="-2" attributes="0"/>
 176.192 +                  <Component id="separatePostfixComboBox" min="-2" max="-2" attributes="0"/>
 176.193 +                  <Component id="separateExtComboBox" min="-2" max="-2" attributes="0"/>
 176.194 +              </Group>
 176.195 +              <EmptySpace min="150" pref="150" max="150" attributes="0"/>
 176.196 +              <Component id="errorLabel" min="-2" max="-2" attributes="0"/>
 176.197 +          </Group>
 176.198 +      </Group>
 176.199 +    </DimensionLayout>
 176.200 +  </Layout>
 176.201 +  <SubComponents>
 176.202 +    <Component class="javax.swing.JLabel" name="standardsLabel">
 176.203 +      <Properties>
 176.204 +        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
 176.205 +          <ResourceString bundle="org/netbeans/modules/ada/project/options/ui/Bundle.properties" key="LBL_Standards" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
 176.206 +        </Property>
 176.207 +      </Properties>
 176.208 +    </Component>
 176.209 +    <Component class="javax.swing.JSeparator" name="standardsLineSeparator">
 176.210 +    </Component>
 176.211 +    <Component class="javax.swing.JLabel" name="adaDialectsLabel">
 176.212 +      <Properties>
 176.213 +        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
 176.214 +          <ResourceString bundle="org/netbeans/modules/ada/project/options/ui/Bundle.properties" key="LBL_AdaDialects" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
 176.215 +        </Property>
 176.216 +      </Properties>
 176.217 +    </Component>
 176.218 +    <Component class="javax.swing.JLabel" name="namingLabel">
 176.219 +      <Properties>
 176.220 +        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
 176.221 +          <ResourceString bundle="org/netbeans/modules/ada/project/options/ui/Bundle.properties" key="LBL_Naming" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
 176.222 +        </Property>
 176.223 +      </Properties>
 176.224 +    </Component>
 176.225 +    <Component class="javax.swing.JSeparator" name="namingLineSeparator">
 176.226 +    </Component>
 176.227 +    <Component class="javax.swing.JLabel" name="errorLabel">
 176.228 +      <Properties>
 176.229 +        <Property name="text" type="java.lang.String" value="ERROR"/>
 176.230 +      </Properties>
 176.231 +    </Component>
 176.232 +    <Component class="javax.swing.JLabel" name="adaRestrictionsLabel">
 176.233 +      <Properties>
 176.234 +        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
 176.235 +          <ResourceString bundle="org/netbeans/modules/ada/project/options/ui/Bundle.properties" key="LBL_adaRestrictions" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
 176.236 +        </Property>
 176.237 +      </Properties>
 176.238 +    </Component>
 176.239 +    <Component class="javax.swing.JComboBox" name="adaDialectsComboBox">
 176.240 +      <Properties>
 176.241 +        <Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
 176.242 +          <StringArray count="4">
 176.243 +            <StringItem index="0" value="Ada 83"/>
 176.244 +            <StringItem index="1" value="Ada 95"/>
 176.245 +            <StringItem index="2" value="Ada 2005"/>
 176.246 +            <StringItem index="3" value="Ada 2012"/>
 176.247 +          </StringArray>
 176.248 +        </Property>
 176.249 +      </Properties>
 176.250 +      <Events>
 176.251 +        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="adaDialectsComboBoxActionPerformed"/>
 176.252 +      </Events>
 176.253 +    </Component>
 176.254 +    <Component class="javax.swing.JComboBox" name="adaRestrictionsComboBox">
 176.255 +      <Properties>
 176.256 +        <Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
 176.257 +          <StringArray count="3">
 176.258 +            <StringItem index="0" value="None"/>
 176.259 +            <StringItem index="1" value="Spark"/>
 176.260 +            <StringItem index="2" value="MIL-STD-498"/>
 176.261 +          </StringArray>
 176.262 +        </Property>
 176.263 +      </Properties>
 176.264 +      <Events>
 176.265 +        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="adaRestrictionsComboBoxActionPerformed"/>
 176.266 +      </Events>
 176.267 +    </Component>
 176.268 +    <Component class="javax.swing.JLabel" name="pkgSpecMaskLabel">
 176.269 +      <Properties>
 176.270 +        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
 176.271 +          <ResourceString bundle="org/netbeans/modules/ada/project/options/ui/Bundle.properties" key="LBL_pkgSpecMask" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
 176.272 +        </Property>
 176.273 +      </Properties>
 176.274 +    </Component>
 176.275 +    <Component class="javax.swing.JLabel" name="pkgBodyMaskLabel">
 176.276 +      <Properties>
 176.277 +        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
 176.278 +          <ResourceString bundle="org/netbeans/modules/ada/project/options/ui/Bundle.properties" key="LBL_pkgBodyMask" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
 176.279 +        </Property>
 176.280 +      </Properties>
 176.281 +    </Component>
 176.282 +    <Component class="javax.swing.JLabel" name="separatorMaskLabel">
 176.283 +      <Properties>
 176.284 +        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
 176.285 +          <ResourceString bundle="org/netbeans/modules/ada/project/options/ui/Bundle.properties" key="LBL_separatorMask" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
 176.286 +        </Property>
 176.287 +      </Properties>
 176.288 +    </Component>
 176.289 +    <Component class="javax.swing.JTextField" name="pkgSpecSepTextField">
 176.290 +      <Properties>
 176.291 +        <Property name="horizontalAlignment" type="int" value="0"/>
 176.292 +      </Properties>
 176.293 +    </Component>
 176.294 +    <Component class="javax.swing.JTextField" name="separateSepTextField">
 176.295 +      <Properties>
 176.296 +        <Property name="horizontalAlignment" type="int" value="0"/>
 176.297 +      </Properties>
 176.298 +    </Component>
 176.299 +    <Component class="javax.swing.JTextField" name="pkgBodySepTextField">
 176.300 +      <Properties>
 176.301 +        <Property name="horizontalAlignment" type="int" value="0"/>
 176.302 +      </Properties>
 176.303 +    </Component>
 176.304 +    <Component class="javax.swing.JLabel" name="extTitleLabel">
 176.305 +      <Properties>
 176.306 +        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
 176.307 +          <ResourceString bundle="org/netbeans/modules/ada/project/options/ui/Bundle.properties" key="LBL_extTitle" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
 176.308 +        </Property>
 176.309 +      </Properties>
 176.310 +    </Component>
 176.311 +    <Component class="javax.swing.JComboBox" name="pkgSpecPrefixComboBox">
 176.312 +      <Properties>
 176.313 +        <Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
 176.314 +          <StringArray count="2">
 176.315 +            <StringItem index="0" value="&lt;package name&gt;"/>
 176.316 +            <StringItem index="1" value="&lt;free name&gt;"/>
 176.317 +          </StringArray>
 176.318 +        </Property>
 176.319 +        <Property name="enabled" type="boolean" value="false"/>
 176.320 +      </Properties>
 176.321 +    </Component>
 176.322 +    <Component class="javax.swing.JLabel" name="prefixTitleLabel">
 176.323 +      <Properties>
 176.324 +        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
 176.325 +          <ResourceString bundle="org/netbeans/modules/ada/project/options/ui/Bundle.properties" key="LBL_prefixTitle" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
 176.326 +        </Property>
 176.327 +      </Properties>
 176.328 +    </Component>
 176.329 +    <Component class="javax.swing.JComboBox" name="pkgBodyPrefixComboBox">
 176.330 +      <Properties>
 176.331 +        <Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
 176.332 +          <StringArray count="2">
 176.333 +            <StringItem index="0" value="&lt;package name&gt;"/>
 176.334 +            <StringItem index="1" value="&lt;free name&gt;"/>
 176.335 +          </StringArray>
 176.336 +        </Property>
 176.337 +        <Property name="enabled" type="boolean" value="false"/>
 176.338 +      </Properties>
 176.339 +    </Component>
 176.340 +    <Component class="javax.swing.JLabel" name="postfixTitleLabel">
 176.341 +      <Properties>
 176.342 +        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
 176.343 +          <ResourceString bundle="org/netbeans/modules/ada/project/options/ui/Bundle.properties" key="LBL_postfixTitle" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
 176.344 +        </Property>
 176.345 +      </Properties>
 176.346 +    </Component>
 176.347 +    <Component class="javax.swing.JComboBox" name="pkgSpecPostfixComboBox">
 176.348 +      <Properties>
 176.349 +        <Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
 176.350 +          <StringArray count="2">
 176.351 +            <StringItem index="0" value="&lt;none&gt;"/>
 176.352 +            <StringItem index="1" value="&lt;free name&gt;"/>
 176.353 +          </StringArray>
 176.354 +        </Property>
 176.355 +      </Properties>
 176.356 +      <Events>
 176.357 +        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="pkgSpecPostfixComboBoxActionPerformed"/>
 176.358 +      </Events>
 176.359 +    </Component>
 176.360 +    <Component class="javax.swing.JComboBox" name="separatePrefixComboBox">
 176.361 +      <Properties>
 176.362 +        <Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
 176.363 +          <StringArray count="2">
 176.364 +            <StringItem index="0" value="&lt;package name&gt;"/>
 176.365 +            <StringItem index="1" value="&lt;free name&gt;"/>
 176.366 +          </StringArray>
 176.367 +        </Property>
 176.368 +        <Property name="enabled" type="boolean" value="false"/>
 176.369 +      </Properties>
 176.370 +    </Component>
 176.371 +    <Component class="javax.swing.JComboBox" name="pkgBodyPostfixComboBox">
 176.372 +      <Properties>
 176.373 +        <Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
 176.374 +          <StringArray count="2">
 176.375 +            <StringItem index="0" value="&lt;none&gt;"/>
 176.376 +            <StringItem index="1" value="&lt;free name&gt;"/>
 176.377 +          </StringArray>
 176.378 +        </Property>
 176.379 +      </Properties>
 176.380 +      <Events>
 176.381 +        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="pkgBodyPostfixComboBoxActionPerformed"/>
 176.382 +      </Events>
 176.383 +    </Component>
 176.384 +    <Component class="javax.swing.JComboBox" name="separatePostfixComboBox">
 176.385 +      <Properties>
 176.386 +        <Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
 176.387 +          <StringArray count="3">
 176.388 +            <StringItem index="0" value="&lt;procedure name&gt;"/>
 176.389 +            <StringItem index="1" value="&lt;free name&gt;"/>
 176.390 +            <StringItem index="2" value="&lt;none&gt;"/>
 176.391 +          </StringArray>
 176.392 +        </Property>
 176.393 +        <Property name="enabled" type="boolean" value="false"/>
 176.394 +      </Properties>
 176.395 +      <Events>
 176.396 +        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="separatePostfixComboBoxActionPerformed"/>
 176.397 +      </Events>
 176.398 +    </Component>
 176.399 +    <Component class="javax.swing.JComboBox" name="pkgSpecExtComboBox">
 176.400 +      <Properties>
 176.401 +        <Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
 176.402 +          <StringArray count="2">
 176.403 +            <StringItem index="0" value="ads"/>
 176.404 +            <StringItem index="1" value="ada"/>
 176.405 +          </StringArray>
 176.406 +        </Property>
 176.407 +      </Properties>
 176.408 +      <Events>
 176.409 +        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="pkgSpecExtComboBoxActionPerformed"/>
 176.410 +      </Events>
 176.411 +    </Component>
 176.412 +    <Component class="javax.swing.JComboBox" name="pkgBodyExtComboBox">
 176.413 +      <Properties>
 176.414 +        <Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
 176.415 +          <StringArray count="2">
 176.416 +            <StringItem index="0" value="adb"/>
 176.417 +            <StringItem index="1" value="ada"/>
 176.418 +          </StringArray>
 176.419 +        </Property>
 176.420 +      </Properties>
 176.421 +      <Events>
 176.422 +        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="pkgBodyExtComboBoxActionPerformed"/>
 176.423 +      </Events>
 176.424 +    </Component>
 176.425 +    <Component class="javax.swing.JComboBox" name="separateExtComboBox">
 176.426 +      <Properties>
 176.427 +        <Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
 176.428 +          <StringArray count="2">
 176.429 +            <StringItem index="0" value="adb"/>
 176.430 +            <StringItem index="1" value="ada"/>
 176.431 +          </StringArray>
 176.432 +        </Property>
 176.433 +      </Properties>
 176.434 +      <Events>
 176.435 +        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="separateExtComboBoxActionPerformed"/>
 176.436 +      </Events>
 176.437 +    </Component>
 176.438 +    <Component class="javax.swing.JLabel" name="separatorTitleLabel">
 176.439 +      <Properties>
 176.440 +        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
 176.441 +          <ResourceString bundle="org/netbeans/modules/ada/project/options/ui/Bundle.properties" key="AdaGeneralOptionsPanel.separatorTitleLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
 176.442 +        </Property>
 176.443 +      </Properties>
 176.444 +    </Component>
 176.445 +  </SubComponents>
 176.446 +</Form>
   177.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   177.2 +++ b/ada.project/src/org/netbeans/modules/ada/project/options/ui/AdaGeneralOptionsPanel.java	Mon Oct 15 23:38:26 2012 +0200
   177.3 @@ -0,0 +1,645 @@
   177.4 +/*
   177.5 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
   177.6 + *
   177.7 + * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
   177.8 + *
   177.9 + * The contents of this file are subject to the terms of either the GNU
  177.10 + * General Public License Version 2 only ("GPL") or the Common
  177.11 + * Development and Distribution License("CDDL") (collectively, the
  177.12 + * "License"). You may not use this file except in compliance with the
  177.13 + * License. You can obtain a copy of the License at
  177.14 + * http://www.netbeans.org/cddl-gplv2.html
  177.15 + * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
  177.16 + * specific language governing permissions and limitations under the
  177.17 + * License.  When distributing the software, include this License Header
  177.18 + * Notice in each file and include the License file at
  177.19 + * nbbuild/licenses/CDDL-GPL-2-CP.  Sun designates this
  177.20 + * particular file as subject to the "Classpath" exception as provided
  177.21 + * by Sun in the GPL Version 2 section of the License file that
  177.22 + * accompanied this code. If applicable, add the following below the
  177.23 + * License Header, with the fields enclosed by brackets [] replaced by
  177.24 + * your own identifying information:
  177.25 + * "Portions Copyrighted [year] [name of copyright owner]"
  177.26 + *
  177.27 + * If you wish your version of this file to be governed by only the CDDL
  177.28 + * or only the GPL Version 2, indicate your decision by adding
  177.29 + * "[Contributor] elects to include this software in this distribution
  177.30 + * under the [CDDL or GPL Version 2] license." If you do not indicate a
  177.31 + * single choice of license, a recipient has the option to distribute
  177.32 + * your version of this file under either the CDDL, the GPL Version 2 or
  177.33 + * to extend the choice of license to its licensees as provided above.
  177.34 + * However, if you add GPL Version 2 code and therefore, elected the GPL
  177.35 + * Version 2 license, then the option applies only if the new code is
  177.36 + * made subject to such option by the copyright holder.
  177.37 + *
  177.38 + * Contributor(s):
  177.39 + *
  177.40 + * Portions Copyrighted 2008 Sun Microsystems, Inc.
  177.41 + */
  177.42 +package org.netbeans.modules.ada.project.options.ui;
  177.43 +
  177.44 +import java.awt.event.ActionEvent;
  177.45 +import java.awt.event.ActionListener;
  177.46 +import javax.swing.DefaultComboBoxModel;
  177.47 +import javax.swing.GroupLayout;
  177.48 +import javax.swing.GroupLayout.Alignment;
  177.49 +import javax.swing.JComboBox;
  177.50 +import javax.swing.JLabel;
  177.51 +import javax.swing.JPanel;
  177.52 +import javax.swing.JSeparator;
  177.53 +import javax.swing.JTextField;
  177.54 +import javax.swing.LayoutStyle.ComponentPlacement;
  177.55 +import javax.swing.UIManager;
  177.56 +import javax.swing.event.ChangeEvent;
  177.57 +import javax.swing.event.ChangeListener;
  177.58 +import org.netbeans.modules.ada.project.ui.properties.AdaProjectProperties;
  177.59 +import org.openide.awt.Mnemonics;
  177.60 +import org.openide.util.ChangeSupport;
  177.61 +import org.openide.util.HelpCtx;
  177.62 +import org.openide.util.NbBundle;
  177.63 +
  177.64 +/**
  177.65 + * @author  Andrea Lucarelli
  177.66 + */
  177.67 +public final class AdaGeneralOptionsPanel extends JPanel implements ChangeListener, HelpCtx.Provider {
  177.68 +
  177.69 +    private final ChangeSupport changeSupport = new ChangeSupport(this);
  177.70 +    private final AdaProjectProperties uiProperties;
  177.71 +    private static final String UI_NONE = "<none>"; // NOI18N
  177.72 +    private static final String OPT_NONE = ""; // NOI18N
  177.73 +    private static final String UI_PACKAGE_NAME = "<package name>"; // NOI18N
  177.74 +    private static final String UI_PROCEDURE_NAME = "<procedure name>"; // NOI18N
  177.75 +
  177.76 +    public AdaGeneralOptionsPanel(final AdaProjectProperties uiProperties) {
  177.77 +        this.uiProperties = uiProperties;
  177.78 +        initComponents();
  177.79 +        errorLabel.setText(" "); // NOI18N
  177.80 +
  177.81 +        if (uiProperties != null) {
  177.82 +            setAdaDialects(uiProperties.getAdaDialects());
  177.83 +            setAdaRestrictions(uiProperties.getAdaRestrictions());
  177.84 +            setPkgSpecPrefix(uiProperties.getPkgSpecPrefix());
  177.85 +            setPkgBodyPrefix(uiProperties.getPkgBodyPrefix());
  177.86 +            setSeparatePrefix(uiProperties.getSeparatePrefix());
  177.87 +            setPkgSpecPostfix(uiProperties.getPkgSpecPostfix());
  177.88 +            setPkgBodyPostfix(uiProperties.getPkgBodyPostfix());
  177.89 +            setSeparatePostfix(uiProperties.getSeparatePostfix());
  177.90 +            setPkgSpecExt(uiProperties.getPkgSpecExt());
  177.91 +            setPkgBodyExt(uiProperties.getPkgBodyExt());
  177.92 +            setSeparateExt(uiProperties.getSeparateExt());
  177.93 +
  177.94 +            this.addChangeListener(this);
  177.95 +        }
  177.96 +    }
  177.97 +
  177.98 +    public String getAdaDialects() {
  177.99 +        String value = OPT_NONE;
 177.100 +        if (adaDialectsComboBox.getSelectedItem() != null) {
 177.101 +            value = adaDialectsComboBox.getSelectedItem().toString();
 177.102 +            if (value.equalsIgnoreCase("Ada 83")) {
 177.103 +                value = "ADA_83";
 177.104 +            }
 177.105 +            else if(value.equalsIgnoreCase("Ada 95")) {
 177.106 +                value = "ADA_95";
 177.107 +            }
 177.108 +            else if(value.equalsIgnoreCase("Ada 2005")) {
 177.109 +                value = "ADA_2005";
 177.110 +            }
 177.111 +            else if(value.equalsIgnoreCase("Ada 2012")) {
 177.112 +                value = "ADA_2012";
 177.113 +            }
 177.114 +        }
 177.115 +        return value;
 177.116 +    }
 177.117 +
 177.118 +    public void setAdaDialects(String adaDialects) {
 177.119 +        if (adaDialects.equalsIgnoreCase("ADA_83")) {
 177.120 +            adaDialects = "Ada 83";
 177.121 +        }
 177.122 +        else if(adaDialects.equalsIgnoreCase("ADA_95")) {
 177.123 +            adaDialects = "Ada 95";
 177.124 +        }
 177.125 +        else if(adaDialects.equalsIgnoreCase("ADA_2005")) {
 177.126 +            adaDialects = "Ada 2005";
 177.127 +        }
 177.128 +        else if(adaDialects.equalsIgnoreCase("ADA_2012")) {
 177.129 +            adaDialects = "Ada 2012";
 177.130 +        }
 177.131 +        adaDialectsComboBox.setSelectedItem(adaDialects);
 177.132 +    }
 177.133 +
 177.134 +    public String getAdaRestrictions() {
 177.135 +        if (adaRestrictionsComboBox.getSelectedItem() != null) {
 177.136 +            return adaRestrictionsComboBox.getSelectedItem().toString();
 177.137 +        }
 177.138 +        return OPT_NONE;
 177.139 +    }
 177.140 +
 177.141 +    public void setAdaRestrictions(String adaRestrictions) {
 177.142 +        adaRestrictionsComboBox.setSelectedItem(adaRestrictions);
 177.143 +    }
 177.144 +
 177.145 +    public String getPkgSpecPrefix() {
 177.146 +        return pkgSpecPrefixComboBox.getSelectedItem().toString();
 177.147 +    }
 177.148 +
 177.149 +    public void setPkgSpecPrefix(String pkgSpecPrefix) {
 177.150 +        pkgSpecPrefixComboBox.setSelectedItem(pkgSpecPrefix);
 177.151 +    }
 177.152 +
 177.153 +    public String getPkgBodyPrefix() {
 177.154 +        return pkgBodyPrefixComboBox.getSelectedItem().toString();
 177.155 +    }
 177.156 +
 177.157 +    public void setPkgBodyPrefix(String pkgBodyPrefix) {
 177.158 +        pkgBodyPrefixComboBox.setSelectedItem(pkgBodyPrefix);
 177.159 +    }
 177.160 +
 177.161 +    public String getSeparatePrefix() {
 177.162 +        return separatePrefixComboBox.getSelectedItem().toString();
 177.163 +    }
 177.164 +
 177.165 +    public void setSeparatePrefix(String separatePrefix) {
 177.166 +        separatePrefixComboBox.setSelectedItem(separatePrefix);
 177.167 +    }
 177.168 +
 177.169 +    public String getPkgSpecPostfix() {
 177.170 +        String pkgSpecPostfix = pkgSpecPostfixComboBox.getSelectedItem().toString();
 177.171 +        if (pkgSpecPostfix.equalsIgnoreCase(UI_NONE)) {
 177.172 +            pkgSpecPostfix = OPT_NONE;
 177.173 +        }
 177.174 +        return pkgSpecPostfix;
 177.175 +    }
 177.176 +
 177.177 +    public void setPkgSpecPostfix(String pkgSpecPostfix) {
 177.178 +        if (pkgSpecPostfix.equalsIgnoreCase(OPT_NONE)) {
 177.179 +            pkgSpecPostfixComboBox.setSelectedItem(UI_NONE);
 177.180 +        } else {
 177.181 +            pkgSpecPostfixComboBox.setEditable(true);
 177.182 +            pkgSpecPostfixComboBox.addItem(pkgSpecPostfix);
 177.183 +            pkgSpecPostfixComboBox.setSelectedItem(pkgSpecPostfix);
 177.184 +        }
 177.185 +    }
 177.186 +
 177.187 +    public String getPkgBodyPostfix() {
 177.188 +        String pkgBodyPostfix = pkgBodyPostfixComboBox.getSelectedItem().toString();
 177.189 +        if (pkgBodyPostfix.equalsIgnoreCase(UI_NONE)) {
 177.190 +            pkgBodyPostfix = OPT_NONE;
 177.191 +        }
 177.192 +        return pkgBodyPostfix;
 177.193 +    }
 177.194 +
 177.195 +    public void setPkgBodyPostfix(String pkgBodyPostfix) {
 177.196 +        if (pkgBodyPostfix.equalsIgnoreCase(OPT_NONE)) {
 177.197 +            pkgBodyPostfixComboBox.setSelectedItem(UI_NONE);
 177.198 +        } else {
 177.199 +            pkgBodyPostfixComboBox.setEditable(true);
 177.200 +            pkgBodyPostfixComboBox.addItem(pkgBodyPostfix);
 177.201 +            pkgBodyPostfixComboBox.setSelectedItem(pkgBodyPostfix);
 177.202 +        }
 177.203 +    }
 177.204 +
 177.205 +    public String getSeparatePostfix() {
 177.206 +        return separatePostfixComboBox.getSelectedItem().toString();
 177.207 +    }
 177.208 +
 177.209 +    public void setSeparatePostfix(String separatePostfix) {
 177.210 +        separatePostfixComboBox.setSelectedItem(separatePostfix);
 177.211 +    }
 177.212 +
 177.213 +    public String getPkgSpecExt() {
 177.214 +        return pkgSpecExtComboBox.getSelectedItem().toString();
 177.215 +    }
 177.216 +
 177.217 +    public void setPkgSpecExt(String pkgSpecExt) {
 177.218 +        pkgSpecExtComboBox.setSelectedItem(pkgSpecExt);
 177.219 +    }
 177.220 +
 177.221 +    public String getPkgBodyExt() {
 177.222 +        return pkgBodyExtComboBox.getSelectedItem().toString();
 177.223 +    }
 177.224 +
 177.225 +    public void setPkgBodyExt(String pkgBodyExt) {
 177.226 +        pkgBodyExtComboBox.setSelectedItem(pkgBodyExt);
 177.227 +    }
 177.228 +
 177.229 +    public String getSeparateExt() {
 177.230 +        return separateExtComboBox.getSelectedItem().toString();
 177.231 +    }
 177.232 +
 177.233 +    public void setSeparateExt(String separateExt) {
 177.234 +        separateExtComboBox.setSelectedItem(separateExt);
 177.235 +    }
 177.236 +
 177.237 +    public void setError(String message) {
 177.238 +        errorLabel.setText(" "); // NOI18N
 177.239 +        errorLabel.setForeground(UIManager.getColor("nb.errorForeground")); // NOI18N
 177.240 +        errorLabel.setText(message);
 177.241 +    }
 177.242 +
 177.243 +    public void setWarning(String message) {
 177.244 +        errorLabel.setText(" "); // NOI18N
 177.245 +        errorLabel.setForeground(UIManager.getColor("nb.warningForeground")); // NOI18N
 177.246 +        errorLabel.setText(message);
 177.247 +    }
 177.248 +
 177.249 +    public void addChangeListener(ChangeListener listener) {
 177.250 +        changeSupport.addChangeListener(listener);
 177.251 +    }
 177.252 +
 177.253 +    public void removeChangeListener(ChangeListener listener) {
 177.254 +        changeSupport.removeChangeListener(listener);
 177.255 +    }
 177.256 +
 177.257 +    void fireChange() {
 177.258 +        changeSupport.fireChange();
 177.259 +    }
 177.260 +
 177.261 +    /** This method is called from within the constructor to
 177.262 +     * initialize the form.
 177.263 +     * WARNING: Do NOT modify this code. The content of this method is
 177.264 +     * always regenerated by the Form Editor.
 177.265 +     */
 177.266 +    @SuppressWarnings("unchecked")
 177.267 +    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
 177.268 +    private void initComponents() {
 177.269 +
 177.270 +
 177.271 +
 177.272 +
 177.273 +
 177.274 +
 177.275 +
 177.276 +
 177.277 +
 177.278 +        standardsLabel = new JLabel();
 177.279 +        standardsLineSeparator = new JSeparator();
 177.280 +        adaDialectsLabel = new JLabel();
 177.281 +        namingLabel = new JLabel();
 177.282 +        namingLineSeparator = new JSeparator();
 177.283 +        errorLabel = new JLabel();
 177.284 +        adaRestrictionsLabel = new JLabel();
 177.285 +        adaDialectsComboBox = new JComboBox();
 177.286 +        adaRestrictionsComboBox = new JComboBox();
 177.287 +        pkgSpecMaskLabel = new JLabel();
 177.288 +        pkgBodyMaskLabel = new JLabel();
 177.289 +        separatorMaskLabel = new JLabel();
 177.290 +        pkgSpecSepTextField = new JTextField();
 177.291 +        separateSepTextField = new JTextField();
 177.292 +        pkgBodySepTextField = new JTextField();
 177.293 +        extTitleLabel = new JLabel();
 177.294 +        pkgSpecPrefixComboBox = new JComboBox();
 177.295 +        prefixTitleLabel = new JLabel();
 177.296 +        pkgBodyPrefixComboBox = new JComboBox();
 177.297 +        postfixTitleLabel = new JLabel();
 177.298 +        pkgSpecPostfixComboBox = new JComboBox();
 177.299 +        separatePrefixComboBox = new JComboBox();
 177.300 +        pkgBodyPostfixComboBox = new JComboBox();
 177.301 +        separatePostfixComboBox = new JComboBox();
 177.302 +        pkgSpecExtComboBox = new JComboBox();
 177.303 +        pkgBodyExtComboBox = new JComboBox();
 177.304 +        separateExtComboBox = new JComboBox();
 177.305 +        separatorTitleLabel = new JLabel();
 177.306 +        Mnemonics.setLocalizedText(standardsLabel, NbBundle.getMessage(AdaGeneralOptionsPanel.class, "LBL_Standards"));
 177.307 +        Mnemonics.setLocalizedText(adaDialectsLabel, NbBundle.getMessage(AdaGeneralOptionsPanel.class, "LBL_AdaDialects"));
 177.308 +        Mnemonics.setLocalizedText(namingLabel, NbBundle.getMessage(AdaGeneralOptionsPanel.class, "LBL_Naming"));
 177.309 +        Mnemonics.setLocalizedText(errorLabel, "ERROR");
 177.310 +        Mnemonics.setLocalizedText(adaRestrictionsLabel, NbBundle.getMessage(AdaGeneralOptionsPanel.class, "LBL_adaRestrictions"));
 177.311 +        adaDialectsComboBox.setModel(new DefaultComboBoxModel(new String[] { "Ada 83", "Ada 95", "Ada 2005", "Ada 2012" }));
 177.312 +        adaDialectsComboBox.addActionListener(new ActionListener() {
 177.313 +            public void actionPerformed(ActionEvent evt) {
 177.314 +                adaDialectsComboBoxActionPerformed(evt);
 177.315 +            }
 177.316 +        });
 177.317 +
 177.318 +        adaRestrictionsComboBox.setModel(new DefaultComboBoxModel(new String[] { "None", "Spark", "MIL-STD-498" }));
 177.319 +        adaRestrictionsComboBox.addActionListener(new ActionListener() {
 177.320 +            public void actionPerformed(ActionEvent evt) {
 177.321 +                adaRestrictionsComboBoxActionPerformed(evt);
 177.322 +            }
 177.323 +        });
 177.324 +        Mnemonics.setLocalizedText(pkgSpecMaskLabel, NbBundle.getMessage(AdaGeneralOptionsPanel.class, "LBL_pkgSpecMask"));
 177.325 +        Mnemonics.setLocalizedText(pkgBodyMaskLabel, NbBundle.getMessage(AdaGeneralOptionsPanel.class, "LBL_pkgBodyMask"));
 177.326 +        Mnemonics.setLocalizedText(separatorMaskLabel, NbBundle.getMessage(AdaGeneralOptionsPanel.class, "LBL_separatorMask"));
 177.327 +        pkgSpecSepTextField.setHorizontalAlignment(JTextField.CENTER);
 177.328 +
 177.329 +        separateSepTextField.setHorizontalAlignment(JTextField.CENTER);
 177.330 +
 177.331 +        pkgBodySepTextField.setHorizontalAlignment(JTextField.CENTER);
 177.332 +        Mnemonics.setLocalizedText(extTitleLabel, NbBundle.getMessage(AdaGeneralOptionsPanel.class, "LBL_extTitle"));
 177.333 +        pkgSpecPrefixComboBox.setModel(new DefaultComboBoxModel(new String[] { "<package name>", "<free name>" }));
 177.334 +        pkgSpecPrefixComboBox.setEnabled(false);
 177.335 +
 177.336 +        Mnemonics.setLocalizedText(prefixTitleLabel, NbBundle.getMessage(AdaGeneralOptionsPanel.class, "LBL_prefixTitle"));
 177.337 +        pkgBodyPrefixComboBox.setModel(new DefaultComboBoxModel(new String[] { "<package name>", "<free name>" }));
 177.338 +        pkgBodyPrefixComboBox.setEnabled(false);
 177.339 +
 177.340 +
 177.341 +        Mnemonics.setLocalizedText(postfixTitleLabel, NbBundle.getMessage(AdaGeneralOptionsPanel.class, "LBL_postfixTitle"));
 177.342 +        pkgSpecPostfixComboBox.setModel(new DefaultComboBoxModel(new String[] { "<none>", "<free name>" }));
 177.343 +        pkgSpecPostfixComboBox.addActionListener(new ActionListener() {
 177.344 +            public void actionPerformed(ActionEvent evt) {
 177.345 +                pkgSpecPostfixComboBoxActionPerformed(evt);
 177.346 +            }
 177.347 +        });
 177.348 +
 177.349 +        separatePrefixComboBox.setModel(new DefaultComboBoxModel(new String[] { "<package name>", "<free name>" }));
 177.350 +        separatePrefixComboBox.setEnabled(false);
 177.351 +
 177.352 +        pkgBodyPostfixComboBox.setModel(new DefaultComboBoxModel(new String[] { "<none>", "<free name>" }));
 177.353 +        pkgBodyPostfixComboBox.addActionListener(new ActionListener() {
 177.354 +            public void actionPerformed(ActionEvent evt) {
 177.355 +                pkgBodyPostfixComboBoxActionPerformed(evt);
 177.356 +            }
 177.357 +        });
 177.358 +
 177.359 +        separatePostfixComboBox.setModel(new DefaultComboBoxModel(new String[] { "<procedure name>", "<free name>", "<none>" }));
 177.360 +        separatePostfixComboBox.setEnabled(false);
 177.361 +
 177.362 +        separatePostfixComboBox.addActionListener(new ActionListener() {
 177.363 +            public void actionPerformed(ActionEvent evt) {
 177.364 +                separatePostfixComboBoxActionPerformed(evt);
 177.365 +            }
 177.366 +        });
 177.367 +
 177.368 +        pkgSpecExtComboBox.setModel(new DefaultComboBoxModel(new String[] { "ads", "ada" }));
 177.369 +        pkgSpecExtComboBox.addActionListener(new ActionListener() {
 177.370 +            public void actionPerformed(ActionEvent evt) {
 177.371 +                pkgSpecExtComboBoxActionPerformed(evt);
 177.372 +            }
 177.373 +        });
 177.374 +
 177.375 +        pkgBodyExtComboBox.setModel(new DefaultComboBoxModel(new String[] { "adb", "ada" }));
 177.376 +        pkgBodyExtComboBox.addActionListener(new ActionListener() {
 177.377 +            public void actionPerformed(ActionEvent evt) {
 177.378 +                pkgBodyExtComboBoxActionPerformed(evt);
 177.379 +            }
 177.380 +        });
 177.381 +
 177.382 +        separateExtComboBox.setModel(new DefaultComboBoxModel(new String[] { "adb", "ada" }));
 177.383 +        separateExtComboBox.addActionListener(new ActionListener() {
 177.384 +            public void actionPerformed(ActionEvent evt) {
 177.385 +                separateExtComboBoxActionPerformed(evt);
 177.386 +            }
 177.387 +        });
 177.388 +        Mnemonics.setLocalizedText(separatorTitleLabel, NbBundle.getMessage(AdaGeneralOptionsPanel.class, "AdaGeneralOptionsPanel.separatorTitleLabel.text"));
 177.389 +        GroupLayout layout = new GroupLayout(this);
 177.390 +        this.setLayout(layout);
 177.391 +        layout.setHorizontalGroup(
 177.392 +            layout.createParallelGroup(Alignment.LEADING)
 177.393 +            .addGroup(layout.createSequentialGroup()
 177.394 +                .addGroup(layout.createParallelGroup(Alignment.LEADING)
 177.395 +                    .addGroup(layout.createSequentialGroup()
 177.396 +                        .addGap(10, 10, 10)
 177.397 +                        .addComponent(standardsLabel)
 177.398 +                        .addGap(4, 4, 4)
 177.399 +                        .addComponent(standardsLineSeparator, GroupLayout.PREFERRED_SIZE, 572, GroupLayout.PREFERRED_SIZE))
 177.400 +                    .addGroup(layout.createSequentialGroup()
 177.401 +                        .addGap(10, 10, 10)
 177.402 +                        .addComponent(namingLabel)
 177.403 +                        .addGap(4, 4, 4)
 177.404 +                        .addComponent(namingLineSeparator, GroupLayout.PREFERRED_SIZE, 586, GroupLayout.PREFERRED_SIZE))
 177.405 +                    .addGroup(layout.createSequentialGroup()
 177.406 +                        .addGap(20, 20, 20)
 177.407 +                        .addComponent(pkgBodyMaskLabel, GroupLayout.PREFERRED_SIZE, 107, GroupLayout.PREFERRED_SIZE)
 177.408 +                        .addGap(10, 10, 10)
 177.409 +                        .addComponent(pkgBodyPrefixComboBox, GroupLayout.PREFERRED_SIZE, 119, GroupLayout.PREFERRED_SIZE)
 177.410 +                        .addGap(6, 6, 6)
 177.411 +                        .addComponent(pkgBodySepTextField, GroupLayout.PREFERRED_SIZE, 38, GroupLayout.PREFERRED_SIZE)
 177.412 +                        .addGap(6, 6, 6)
 177.413 +                        .addComponent(pkgBodyPostfixComboBox, GroupLayout.PREFERRED_SIZE, 119, GroupLayout.PREFERRED_SIZE)
 177.414 +                        .addGap(6, 6, 6)
 177.415 +                        .addComponent(pkgBodyExtComboBox, GroupLayout.PREFERRED_SIZE, 115, GroupLayout.PREFERRED_SIZE))
 177.416 +                    .addGroup(layout.createSequentialGroup()
 177.417 +                        .addGap(20, 20, 20)
 177.418 +                        .addComponent(separatorMaskLabel, GroupLayout.PREFERRED_SIZE, 107, GroupLayout.PREFERRED_SIZE)
 177.419 +                        .addGap(10, 10, 10)
 177.420 +                        .addComponent(separatePrefixComboBox, GroupLayout.PREFERRED_SIZE, 119, GroupLayout.PREFERRED_SIZE)
 177.421 +                        .addGap(6, 6, 6)
 177.422 +                        .addComponent(separateSepTextField, GroupLayout.PREFERRED_SIZE, 38, GroupLayout.PREFERRED_SIZE)
 177.423 +                        .addGap(6, 6, 6)
 177.424 +                        .addComponent(separatePostfixComboBox, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
 177.425 +                        .addGap(6, 6, 6)
 177.426 +                        .addComponent(separateExtComboBox, GroupLayout.PREFERRED_SIZE, 115, GroupLayout.PREFERRED_SIZE))
 177.427 +                    .addGroup(layout.createSequentialGroup()
 177.428 +                        .addGap(10, 10, 10)
 177.429 +                        .addComponent(errorLabel))
 177.430 +                    .addGroup(layout.createSequentialGroup()
 177.431 +                        .addGap(22, 22, 22)
 177.432 +                        .addGroup(layout.createParallelGroup(Alignment.LEADING)
 177.433 +                            .addComponent(adaRestrictionsLabel)
 177.434 +                            .addComponent(adaDialectsLabel, GroupLayout.PREFERRED_SIZE, 112, GroupLayout.PREFERRED_SIZE))
 177.435 +                        .addPreferredGap(ComponentPlacement.RELATED)
 177.436 +                        .addGroup(layout.createParallelGroup(Alignment.LEADING)
 177.437 +                            .addComponent(adaDialectsComboBox, GroupLayout.PREFERRED_SIZE, 87, GroupLayout.PREFERRED_SIZE)
 177.438 +                            .addComponent(adaRestrictionsComboBox, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)))
 177.439 +                    .addGroup(layout.createSequentialGroup()
 177.440 +                        .addGroup(layout.createParallelGroup(Alignment.TRAILING)
 177.441 +                            .addGroup(layout.createSequentialGroup()
 177.442 +                                .addContainerGap()
 177.443 +                                .addComponent(prefixTitleLabel)
 177.444 +                                .addGap(18, 18, 18)
 177.445 +                                .addComponent(separatorTitleLabel))
 177.446 +                            .addGroup(Alignment.LEADING, layout.createSequentialGroup()
 177.447 +                                .addGap(20, 20, 20)
 177.448 +                                .addComponent(pkgSpecMaskLabel, GroupLayout.PREFERRED_SIZE, 107, GroupLayout.PREFERRED_SIZE)
 177.449 +                                .addGap(10, 10, 10)
 177.450 +                                .addComponent(pkgSpecPrefixComboBox, GroupLayout.PREFERRED_SIZE, 119, GroupLayout.PREFERRED_SIZE)
 177.451 +                                .addGap(6, 6, 6)
 177.452 +                                .addComponent(pkgSpecSepTextField, GroupLayout.PREFERRED_SIZE, 38, GroupLayout.PREFERRED_SIZE)))
 177.453 +                        .addGroup(layout.createParallelGroup(Alignment.LEADING)
 177.454 +                            .addGroup(layout.createSequentialGroup()
 177.455 +                                .addGap(6, 6, 6)
 177.456 +                                .addComponent(pkgSpecPostfixComboBox, GroupLayout.PREFERRED_SIZE, 119, GroupLayout.PREFERRED_SIZE))
 177.457 +                            .addGroup(Alignment.TRAILING, layout.createSequentialGroup()
 177.458 +                                .addGap(92, 92, 92)
 177.459 +                                .addComponent(postfixTitleLabel)))
 177.460 +                        .addGroup(layout.createParallelGroup(Alignment.LEADING)
 177.461 +                            .addGroup(layout.createSequentialGroup()
 177.462 +                                .addGap(6, 6, 6)
 177.463 +                                .addComponent(pkgSpecExtComboBox, GroupLayout.PREFERRED_SIZE, 115, GroupLayout.PREFERRED_SIZE))
 177.464 +                            .addGroup(Alignment.TRAILING, layout.createSequentialGroup()
 177.465 +                                .addGap(101, 101, 101)
 177.466 +                                .addComponent(extTitleLabel)))))
 177.467 +                .addGap(46, 46, 46))
 177.468 +        );
 177.469 +        layout.setVerticalGroup(
 177.470 +            layout.createParallelGroup(Alignment.LEADING)
 177.471 +            .addGroup(layout.createSequentialGroup()
 177.472 +                .addGap(11, 11, 11)
 177.473 +                .addGroup(layout.createParallelGroup(Alignment.LEADING)
 177.474 +                    .addComponent(standardsLabel)
 177.475 +                    .addGroup(layout.createSequentialGroup()
 177.476 +                        .addGap(1, 1, 1)
 177.477 +                        .addComponent(standardsLineSeparator, GroupLayout.PREFERRED_SIZE, 12, GroupLayout.PREFERRED_SIZE)))
 177.478 +                .addGap(9, 9, 9)
 177.479 +                .addGroup(layout.createParallelGroup(Alignment.BASELINE)
 177.480 +                    .addComponent(adaDialectsLabel)
 177.481 +                    .addComponent(adaDialectsComboBox, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
 177.482 +                .addGap(9, 9, 9)
 177.483 +                .addGroup(layout.createParallelGroup(Alignment.LEADING)
 177.484 +                    .addGroup(layout.createSequentialGroup()
 177.485 +                        .addGap(3, 3, 3)
 177.486 +                        .addComponent(adaRestrictionsLabel))
 177.487 +                    .addComponent(adaRestrictionsComboBox, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
 177.488 +                .addGap(18, 18, 18)
 177.489 +                .addGroup(layout.createParallelGroup(Alignment.LEADING)
 177.490 +                    .addComponent(namingLabel)
 177.491 +                    .addGroup(layout.createSequentialGroup()
 177.492 +                        .addGap(2, 2, 2)
 177.493 +                        .addComponent(namingLineSeparator, GroupLayout.PREFERRED_SIZE, 10, GroupLayout.PREFERRED_SIZE)))
 177.494 +                .addGap(1, 1, 1)
 177.495 +                .addGroup(layout.createParallelGroup(Alignment.LEADING)
 177.496 +                    .addGroup(layout.createParallelGroup(Alignment.BASELINE)
 177.497 +                        .addComponent(separatorTitleLabel)
 177.498 +                        .addComponent(prefixTitleLabel))
 177.499 +                    .addGroup(layout.createParallelGroup(Alignment.BASELINE)
 177.500 +                        .addComponent(extTitleLabel)
 177.501 +                        .addComponent(postfixTitleLabel)))
 177.502 +                .addGap(4, 4, 4)
 177.503 +                .addGroup(layout.createParallelGroup(Alignment.LEADING)
 177.504 +                    .addGroup(layout.createSequentialGroup()
 177.505 +                        .addGap(3, 3, 3)
 177.506 +                        .addComponent(pkgSpecMaskLabel))
 177.507 +                    .addComponent(pkgSpecPrefixComboBox, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
 177.508 +                    .addComponent(pkgSpecSepTextField, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
 177.509 +                    .addComponent(pkgSpecPostfixComboBox, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
 177.510 +                    .addComponent(pkgSpecExtComboBox, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
 177.511 +                .addGap(6, 6, 6)
 177.512 +                .addGroup(layout.createParallelGroup(Alignment.LEADING)
 177.513 +                    .addGroup(layout.createSequentialGroup()
 177.514 +                        .addGap(3, 3, 3)
 177.515 +                        .addComponent(pkgBodyMaskLabel))
 177.516 +                    .addComponent(pkgBodyPrefixComboBox, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
 177.517 +                    .addComponent(pkgBodySepTextField, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
 177.518 +                    .addComponent(pkgBodyPostfixComboBox, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
 177.519 +                    .addComponent(pkgBodyExtComboBox, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
 177.520 +                .addGap(6, 6, 6)
 177.521 +                .addGroup(layout.createParallelGroup(Alignment.LEADING)
 177.522 +                    .addGroup(layout.createSequentialGroup()
 177.523 +                        .addGap(3, 3, 3)
 177.524 +                        .addComponent(separatorMaskLabel))
 177.525 +                    .addComponent(separatePrefixComboBox, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
 177.526 +                    .addComponent(separateSepTextField, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
 177.527 +                    .addComponent(separatePostfixComboBox, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
 177.528 +                    .addComponent(separateExtComboBox, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
 177.529 +                .addGap(150, 150, 150)
 177.530 +                .addComponent(errorLabel))
 177.531 +        );
 177.532 +    }// </editor-fold>//GEN-END:initComponents
 177.533 +
 177.534 +    private void adaDialectsComboBoxActionPerformed(ActionEvent evt) {//GEN-FIRST:event_adaDialectsComboBoxActionPerformed
 177.535 +        if (this.uiProperties != null) {
 177.536 +            this.uiProperties.setAdaDialects(getAdaDialects());
 177.537 +        }
 177.538 +    }//GEN-LAST:event_adaDialectsComboBoxActionPerformed
 177.539 +
 177.540 +    private void adaRestrictionsComboBoxActionPerformed(ActionEvent evt) {//GEN-FIRST:event_adaRestrictionsComboBoxActionPerformed
 177.541 +        if (this.uiProperties != null) {
 177.542 +            this.uiProperties.setAdaRestrictions(getAdaRestrictions());
 177.543 +        }
 177.544 +    }//GEN-LAST:event_adaRestrictionsComboBoxActionPerformed
 177.545 +
 177.546 +    private void pkgSpecPostfixComboBoxActionPerformed(ActionEvent evt) {//GEN-FIRST:event_pkgSpecPostfixComboBoxActionPerformed
 177.547 +        fireChange();
 177.548 +        if (pkgSpecPostfixComboBox.getSelectedIndex() != 0) {
 177.549 +            pkgSpecPostfixComboBox.setEditable(true);
 177.550 +            pkgSpecPostfixComboBox.getEditor().selectAll();
 177.551 +        } else {
 177.552 +            pkgSpecPostfixComboBox.setEditable(false);
 177.553 +        }
 177.554 +        if (this.uiProperties != null) {
 177.555 +            this.uiProperties.setPkgSpecPostfix(getPkgSpecPostfix());
 177.556 +        }
 177.557 +    }//GEN-LAST:event_pkgSpecPostfixComboBoxActionPerformed
 177.558 +
 177.559 +    private void pkgBodyPostfixComboBoxActionPerformed(ActionEvent evt) {//GEN-FIRST:event_pkgBodyPostfixComboBoxActionPerformed
 177.560 +        fireChange();
 177.561 +        if (pkgBodyPostfixComboBox.getSelectedIndex() != 0) {
 177.562 +            pkgBodyPostfixComboBox.setEditable(true);
 177.563 +            pkgBodyPostfixComboBox.getEditor().selectAll();
 177.564 +        } else {
 177.565 +            pkgBodyPostfixComboBox.setEditable(false);
 177.566 +        }
 177.567 +        if (this.uiProperties != null) {
 177.568 +            this.uiProperties.setPkgBodyPostfix(getPkgBodyPostfix());
 177.569 +        }
 177.570 +    }//GEN-LAST:event_pkgBodyPostfixComboBoxActionPerformed
 177.571 +
 177.572 +    private void separatePostfixComboBoxActionPerformed(ActionEvent evt) {//GEN-FIRST:event_separatePostfixComboBoxActionPerformed
 177.573 +        if (this.uiProperties != null) {
 177.574 +            this.uiProperties.setSeparatePostfix(getSeparatePostfix());
 177.575 +        }
 177.576 +    }//GEN-LAST:event_separatePostfixComboBoxActionPerformed
 177.577 +
 177.578 +    private void pkgSpecExtComboBoxActionPerformed(ActionEvent evt) {//GEN-FIRST:event_pkgSpecExtComboBoxActionPerformed
 177.579 +        if (this.uiProperties != null) {
 177.580 +            this.uiProperties.setPkgSpecExt(getPkgSpecExt());
 177.581 +        }
 177.582 +        fireChange();
 177.583 +    }//GEN-LAST:event_pkgSpecExtComboBoxActionPerformed
 177.584 +
 177.585 +    private void pkgBodyExtComboBoxActionPerformed(ActionEvent evt) {//GEN-FIRST:event_pkgBodyExtComboBoxActionPerformed
 177.586 +        if (this.uiProperties != null) {
 177.587 +            this.uiProperties.setPkgBodyExt(getPkgBodyExt());
 177.588 +        }
 177.589 +        fireChange();
 177.590 +    }//GEN-LAST:event_pkgBodyExtComboBoxActionPerformed
 177.591 +
 177.592 +    private void separateExtComboBoxActionPerformed(ActionEvent evt) {//GEN-FIRST:event_separateExtComboBoxActionPerformed
 177.593 +        if (this.uiProperties != null) {
 177.594 +            this.uiProperties.setSeparateExt(getSeparateExt());
 177.595 +        }
 177.596 +    }//GEN-LAST:event_separateExtComboBoxActionPerformed
 177.597 +    // Variables declaration - do not modify//GEN-BEGIN:variables
 177.598 +    private JComboBox adaDialectsComboBox;
 177.599 +    private JLabel adaDialectsLabel;
 177.600 +    private JComboBox adaRestrictionsComboBox;
 177.601 +    private JLabel adaRestrictionsLabel;
 177.602 +    private JLabel errorLabel;
 177.603 +    private JLabel extTitleLabel;
 177.604 +    private JLabel namingLabel;
 177.605 +    private JSeparator namingLineSeparator;
 177.606 +    private JComboBox pkgBodyExtComboBox;
 177.607 +    private JLabel pkgBodyMaskLabel;
 177.608 +    private JComboBox pkgBodyPostfixComboBox;
 177.609 +    private JComboBox pkgBodyPrefixComboBox;
 177.610 +    private JTextField pkgBodySepTextField;
 177.611 +    private JComboBox pkgSpecExtComboBox;
 177.612 +    private JLabel pkgSpecMaskLabel;
 177.613 +    private JComboBox pkgSpecPostfixComboBox;
 177.614 +    private JComboBox pkgSpecPrefixComboBox;
 177.615 +    private JTextField pkgSpecSepTextField;
 177.616 +    private JLabel postfixTitleLabel;
 177.617 +    private JLabel prefixTitleLabel;
 177.618 +    private JComboBox separateExtComboBox;
 177.619 +    private JComboBox separatePostfixComboBox;
 177.620 +    private JComboBox separatePrefixComboBox;
 177.621 +    private JTextField separateSepTextField;
 177.622 +    private JLabel separatorMaskLabel;
 177.623 +    private JLabel separatorTitleLabel;
 177.624 +    private JLabel standardsLabel;
 177.625 +    private JSeparator standardsLineSeparator;
 177.626 +    // End of variables declaration//GEN-END:variables
 177.627 +
 177.628 +    public void stateChanged(ChangeEvent e) {
 177.629 +        // errors
 177.630 +        String postfixSpec = this.getPkgSpecPostfix();
 177.631 +        String postfixBody = this.getPkgBodyPostfix();
 177.632 +        String specExt = this.getPkgSpecExt();
 177.633 +        String bodyExt = this.getPkgBodyExt();
 177.634 +
 177.635 +        // everything ok
 177.636 +        this.setError(" "); // NOI18N
 177.637 +
 177.638 +        if (specExt.equalsIgnoreCase(bodyExt)) {
 177.639 +            if (postfixSpec.equalsIgnoreCase(postfixBody)) {
 177.640 +                this.setError(NbBundle.getMessage(AdaGeneralOptionsPanel.class, "MSG_ExtetionsError"));
 177.641 +            }
 177.642 +        }
 177.643 +    }
 177.644 +
 177.645 +    public HelpCtx getHelpCtx() {
 177.646 +        return new HelpCtx(this.getClass());
 177.647 +    }
 177.648 +}
   178.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   178.2 +++ b/ada.project/src/org/netbeans/modules/ada/project/options/ui/Bundle.properties	Mon Oct 15 23:38:26 2012 +0200
   178.3 @@ -0,0 +1,50 @@
   178.4 +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
   178.5 +#
   178.6 +# Copyright 2009 Sun Microsystems, Inc. All rights reserved.
   178.7 +#
   178.8 +# The contents of this file are subject to the terms of either the GNU
   178.9 +# General Public License Version 2 only ("GPL") or the Common
  178.10 +# Development and Distribution License("CDDL") (collectively, the
  178.11 +# "License"). You may not use this file except in compliance with the
  178.12 +# License. You can obtain a copy of the License at
  178.13 +# http://www.netbeans.org/cddl-gplv2.html
  178.14 +# or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
  178.15 +# specific language governing permissions and limitations under the
  178.16 +# License.  When distributing the software, include this License Header
  178.17 +# Notice in each file and include the License file at
  178.18 +# nbbuild/licenses/CDDL-GPL-2-CP.  Sun designates this
  178.19 +# particular file as subject to the "Classpath" exception as provided
  178.20 +# by Sun in the GPL Version 2 section of the License file that
  178.21 +# accompanied this code. If applicable, add the following below the
  178.22 +# License Header, with the fields enclosed by brackets [] replaced by
  178.23 +# your own identifying information:
  178.24 +# "Portions Copyrighted [year] [name of copyright owner]"
  178.25 +#
  178.26 +# If you wish your version of this file to be governed by only the CDDL
  178.27 +# or only the GPL Version 2, indicate your decision by adding
  178.28 +# "[Contributor] elects to include this software in this distribution
  178.29 +# under the [CDDL or GPL Version 2] license." If you do not indicate a
  178.30 +# single choice of license, a recipient has the option to distribute
  178.31 +# your version of this file under either the CDDL, the GPL Version 2 or
  178.32 +# to extend the choice of license to its licensees as provided above.
  178.33 +# However, if you add GPL Version 2 code and therefore, elected the GPL
  178.34 +# Version 2 license, then the option applies only if the new code is
  178.35 +# made subject to such option by the copyright holder.
  178.36 +#
  178.37 +# Contributor(s):
  178.38 +#
  178.39 +# Portions Copyrighted 2009 Sun Microsystems, Inc.
  178.40 +
  178.41 +# AdaGeneralOptionsPanel
  178.42 +LBL_Naming=File Naming
  178.43 +LBL_AdaDialects=Ada Dialects
  178.44 +LBL_pkgSpecMask=Package &Specification:
  178.45 +LBL_pkgBodyMask=Package &Body:
  178.46 +LBL_separatorMask=Separa&te:
  178.47 +LBL_prefixTitle=prefix
  178.48 +LBL_postfixTitle=postfix
  178.49 +LBL_extTitle=ext.
  178.50 +LBL_adaRestrictions=Ada &restrictions:
  178.51 +LBL_Standards=Standards
  178.52 +AdaGeneralOptionsPanel.separatorTitleLabel.text=separ.
  178.53 +MSG_ExtetionsError= Body Postfix (".ada") cannot be the same as Spec Postfix.
  178.54 \ No newline at end of file
   179.1 --- a/ada.project/src/org/netbeans/modules/ada/project/path/AdaClassPathProvider.java	Tue Oct 02 21:55:21 2012 -0400
   179.2 +++ b/ada.project/src/org/netbeans/modules/ada/project/path/AdaClassPathProvider.java	Mon Oct 15 23:38:26 2012 +0200
   179.3 @@ -44,6 +44,7 @@
   179.4  import org.netbeans.modules.ada.project.AdaProject;
   179.5  import org.netbeans.modules.ada.project.Pair;
   179.6  import org.netbeans.modules.ada.project.SourceRoots;
   179.7 +import org.netbeans.modules.ada.project.api.AdaSourcePath;
   179.8  import org.netbeans.spi.java.classpath.ClassPathFactory;
   179.9  import org.netbeans.spi.java.classpath.ClassPathProvider;
  179.10  import org.openide.filesystems.FileObject;
  179.11 @@ -140,12 +141,9 @@
  179.12      }
  179.13  
  179.14      public ClassPath findClassPath(FileObject file, String type) {
  179.15 -        if (type.equals(ClassPath.SOURCE)) {
  179.16 +        if (type.equals(AdaSourcePath.SOURCE_CP)) {
  179.17              return getSourcepath(file);
  179.18 -        } else if (type.equals(ClassPath.BOOT)) {
  179.19 -            return getBootClassPath();
  179.20 -        } else if (type.equals(ClassPath.COMPILE)) {
  179.21 -            // Bogus
  179.22 +        } else if (type.equals(AdaSourcePath.BOOT_CP)) {
  179.23              return getBootClassPath();
  179.24          } else {
  179.25              return null;
   180.1 --- a/ada.project/src/org/netbeans/modules/ada/project/resources/Bundle.properties	Tue Oct 02 21:55:21 2012 -0400
   180.2 +++ b/ada.project/src/org/netbeans/modules/ada/project/resources/Bundle.properties	Mon Oct 15 23:38:26 2012 +0200
   180.3 @@ -35,9 +35,12 @@
   180.4  #
   180.5  # Portions Copyrighted 2008 Sun Microsystems, Inc.
   180.6  
   180.7 -Templates/Ada/NewAdaMain=Ada Application Main
   180.8 -Templates/Ada/NewAdaPackageSpec=Ada Specification Package
   180.9 -Templates/Ada/NewAdaPackageBody=Ada Body Package
  180.10 +Loaders/text/x-ada/Factories/org-netbeans-modules-gsf-GsfDataLoader.instance=Ada Files
  180.11 +Services/MIMEResolver/ada-project-mime-resolver.xml=Ada Files (content check)
  180.12 +
  180.13 +Templates/Ada/NewMain=Ada Application Main
  180.14 +Templates/Ada/NewPackageSpec=Ada Specification Package
  180.15 +Templates/Ada/NewPackageBody=Ada Body Package
  180.16  
  180.17  Templates/Project/Ada/AdaProject.xml=Ada Application
  180.18  Templates/Project/Ada/ExistingAdaProject.xml=Ada Application with Existing Sources
   181.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   181.2 +++ b/ada.project/src/org/netbeans/modules/ada/project/resources/ada-project-mime-resolver.xml	Mon Oct 15 23:38:26 2012 +0200
   181.3 @@ -0,0 +1,55 @@
   181.4 +<?xml version="1.0" encoding="UTF-8"?>
   181.5 +<!--
   181.6 +DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
   181.7 +
   181.8 +Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
   181.9 +
  181.10 +Oracle and Java are registered trademarks of Oracle and/or its affiliates.
  181.11 +Other names may be trademarks of their respective owners.
  181.12 +
  181.13 +
  181.14 +The contents of this file are subject to the terms of either the GNU
  181.15 +General Public License Version 2 only ("GPL") or the Common
  181.16 +Development and Distribution License("CDDL") (collectively, the
  181.17 +"License"). You may not use this file except in compliance with the
  181.18 +License. You can obtain a copy of the License at
  181.19 +http://www.netbeans.org/cddl-gplv2.html
  181.20 +or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
  181.21 +specific language governing permissions and limitations under the
  181.22 +License.  When distributing the software, include this License Header
  181.23 +Notice in each file and include the License file at
  181.24 +nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
  181.25 +particular file as subject to the "Classpath" exception as provided
  181.26 +by Oracle in the GPL Version 2 section of the License file that
  181.27 +accompanied this code. If applicable, add the following below the
  181.28 +License Header, with the fields enclosed by brackets [] replaced by
  181.29 +your own identifying information:
  181.30 +"Portions Copyrighted [year] [name of copyright owner]"
  181.31 +
  181.32 +Contributor(s):
  181.33 +
  181.34 +The Original Software is NetBeans. The Initial Developer of the Original
  181.35 +Software is Sun Microsystems, Inc. Portions Copyright 2008 Sun
  181.36 +Microsystems, Inc. All Rights Reserved.
  181.37 +
  181.38 +If you wish your version of this file to be governed by only the CDDL
  181.39 +or only the GPL Version 2, indicate your decision by adding
  181.40 +"[Contributor] elects to include this software in this distribution
  181.41 +under the [CDDL or GPL Version 2] license." If you do not indicate a
  181.42 +single choice of license, a recipient has the option to distribute
  181.43 +your version of this file under either the CDDL, the GPL Version 2 or
  181.44 +to extend the choice of license to its licensees as provided above.
  181.45 +However, if you add GPL Version 2 code and therefore, elected the GPL
  181.46 +Version 2 license, then the option applies only if the new code is
  181.47 +made subject to such option by the copyright holder.
  181.48 +-->
  181.49 +
  181.50 +<!DOCTYPE MIME-resolver PUBLIC "-//NetBeans//DTD MIME Resolver 1.1//EN" "http://www.netbeans.org/dtds/mime-resolver-1_1.dtd">
  181.51 +<MIME-resolver>
  181.52 +    <file>
  181.53 +        <ext name="ada"/>
  181.54 +        <ext name="ads"/>
  181.55 +        <ext name="adb"/>
  181.56 +        <resolver mime="text/x-ada"/>
  181.57 +    </file>
  181.58 +</MIME-resolver>
   182.1 --- a/ada.project/src/org/netbeans/modules/ada/project/resources/layer.xml	Tue Oct 02 21:55:21 2012 -0400
   182.2 +++ b/ada.project/src/org/netbeans/modules/ada/project/resources/layer.xml	Mon Oct 15 23:38:26 2012 +0200
   182.3 @@ -97,30 +97,30 @@
   182.4          </folder>
   182.5          <folder name="Ada">
   182.6              <attr name="position" intvalue="40"/>
   182.7 -            <file name="NewAdaMain" url="nbresloc:/org/netbeans/modules/ada/project/ui/resources/EmptyAdaMain">
   182.8 +            <file name="NewMain" url="nbresloc:/org/netbeans/modules/ada/project/ui/resources/EmptyAdaMain">
   182.9                  <attr name="template" boolvalue="true"/>
  182.10                  <attr name="SystemFileSystem.localizingBundle" stringvalue="org.netbeans.modules.ada.project.resources.Bundle"/>
  182.11 -                <attr name="SystemFileSystem.icon" urlvalue="nbresloc:org/netbeans/modules/ada/project/ui/resources/ada-body-16.png"/>
  182.12 +                <attr name="SystemFileSystem.icon" urlvalue="nbresloc:org/netbeans/modules/ada/project/ui/resources/adb-16.png"/>
  182.13                  <attr name="javax.script.ScriptEngine" stringvalue="freemarker"/>
  182.14                  <attr name="instantiatingIterator" newvalue="org.netbeans.modules.ada.project.ui.wizards.NewFileWizardIterator"/>
  182.15                  <attr name="templateWizardURL" urlvalue="nbresloc:/org/netbeans/modules/ada/project/ui/resources/EmptyAdaMainFileDescription.html"/>
  182.16                  <attr name="templateCategory" stringvalue="Ada"/>
  182.17                  <attr name="position" intvalue="100"/>
  182.18              </file>
  182.19 -            <file name="NewAdaPackageSpec" url="nbresloc:/org/netbeans/modules/ada/project/ui/resources/EmptyAdaSpec">
  182.20 +            <file name="NewPackageSpec" url="nbresloc:/org/netbeans/modules/ada/project/ui/resources/EmptyAdaSpec">
  182.21                  <attr name="template" boolvalue="true"/>
  182.22                  <attr name="SystemFileSystem.localizingBundle" stringvalue="org.netbeans.modules.ada.project.resources.Bundle"/>
  182.23 -                <attr name="SystemFileSystem.icon" urlvalue="nbresloc:org/netbeans/modules/ada/project/ui/resources/ada-spec-16.png"/>
  182.24 +                <attr name="SystemFileSystem.icon" urlvalue="nbresloc:org/netbeans/modules/ada/project/ui/resources/ads-16.png"/>
  182.25                  <attr name="javax.script.ScriptEngine" stringvalue="freemarker"/>
  182.26                  <attr name="instantiatingIterator" newvalue="org.netbeans.modules.ada.project.ui.wizards.NewFileWizardIterator"/>
  182.27                  <attr name="templateWizardURL" urlvalue="nbresloc:/org/netbeans/modules/ada/project/ui/resources/EmptyAdaSpecFileDescription.html"/>
  182.28                  <attr name="templateCategory" stringvalue="Ada"/>
  182.29                  <attr name="position" intvalue="200"/>
  182.30              </file>
  182.31 -            <file name="NewAdaPackageBody" url="nbresloc:/org/netbeans/modules/ada/project/ui/resources/EmptyAdaBody">
  182.32 +            <file name="NewPackageBody" url="nbresloc:/org/netbeans/modules/ada/project/ui/resources/EmptyAdaBody">
  182.33                  <attr name="template" boolvalue="true"/>
  182.34                  <attr name="SystemFileSystem.localizingBundle" stringvalue="org.netbeans.modules.ada.project.resources.Bundle"/>
  182.35 -                <attr name="SystemFileSystem.icon" urlvalue="nbresloc:org/netbeans/modules/ada/project/ui/resources/ada-body-16.png"/>
  182.36 +                <attr name="SystemFileSystem.icon" urlvalue="nbresloc:org/netbeans/modules/ada/project/ui/resources/adb-16.png"/>
  182.37                  <attr name="javax.script.ScriptEngine" stringvalue="freemarker"/>
  182.38                  <attr name="instantiatingIterator" newvalue="org.netbeans.modules.ada.project.ui.wizards.NewFileWizardIterator"/>
  182.39                  <attr name="templateWizardURL" urlvalue="nbresloc:/org/netbeans/modules/ada/project/ui/resources/EmptyAdaBodyFileDescription.html"/>
  182.40 @@ -133,72 +133,81 @@
  182.41          <folder name="text">
  182.42              <folder name="x-ada">
  182.43                  <folder name="Actions">
  182.44 -                    <file name="OpenAction.instance">
  182.45 -                        <attr name="instanceClass" stringvalue="org.openide.actions.OpenAction"/>
  182.46 +                    <file name="CopyAction.shadow">
  182.47 +                        <attr name="originalFile" stringvalue="Actions/Edit/org-openide-actions-CopyAction.instance"/>
  182.48 +                        <attr name="position" intvalue="400"/>
  182.49 +                    </file>
  182.50 +                    <file name="CutAction.shadow">
  182.51 +                        <attr name="originalFile" stringvalue="Actions/Edit/org-openide-actions-CutAction.instance"/>
  182.52 +                        <attr name="position" intvalue="300"/>
  182.53 +                    </file>
  182.54 +                    <file name="DeleteAction.shadow">
  182.55 +                        <attr name="originalFile" stringvalue="Actions/Edit/org-openide-actions-DeleteAction.instance"/>
  182.56 +                        <attr name="position" intvalue="800"/>
  182.57 +                    </file>
  182.58 +                    <file name="FileSystemAction.shadow">
  182.59 +                        <attr name="originalFile" stringvalue="Actions/System/org-openide-actions-FileSystemAction.instance"/>
  182.60 +                        <attr name="position" intvalue="1300"/>
  182.61 +                    </file>
  182.62 +                    <file name="NewAction.shadow">
  182.63 +                        <attr name="originalFile" stringvalue="Actions/System/org-openide-actions-NewAction.instance"/>
  182.64 +                        <attr name="position" intvalue="700"/>
  182.65 +                    </file>
  182.66 +                    <file name="OpenAction.shadow">
  182.67 +                        <attr name="originalFile" stringvalue="Actions/System/org-openide-actions-OpenAction.instance"/>
  182.68                          <attr name="position" intvalue="100"/>
  182.69                      </file>
  182.70 +                    <file name="PasteAction.shadow">
  182.71 +                        <attr name="originalFile" stringvalue="Actions/Edit/org-openide-actions-PasteAction.instance"/>
  182.72 +                        <attr name="position" intvalue="500"/>
  182.73 +                    </file>
  182.74 +                    <file name="PropertiesAction.shadow">
  182.75 +                        <attr name="originalFile" stringvalue="Actions/System/org-openide-actions-PropertiesAction.instance"/>
  182.76 +                        <attr name="position" intvalue="1600"/>
  182.77 +                    </file>
  182.78 +                    <file name="RenameAction.shadow">
  182.79 +                        <attr name="originalFile" stringvalue="Actions/System/org-openide-actions-RenameAction.instance"/>
  182.80 +                        <attr name="position" intvalue="900"/>
  182.81 +                    </file>
  182.82 +                    <file name="SaveAsTemplateAction.shadow">
  182.83 +                        <attr name="originalFile" stringvalue="Actions/System/org-openide-actions-SaveAsTemplateAction.instance"/>
  182.84 +                        <attr name="position" intvalue="1100"/>
  182.85 +                    </file>
  182.86                      <file name="Separator1.instance">
  182.87                          <attr name="instanceClass" stringvalue="javax.swing.JSeparator"/>
  182.88                          <attr name="position" intvalue="200"/>
  182.89                      </file>
  182.90 -                    <file name="CutAction.instance">
  182.91 -                        <attr name="instanceClass" stringvalue="org.openide.actions.CutAction"/>
  182.92 -                        <attr name="position" intvalue="300"/>
  182.93 -                    </file>
  182.94 -                    <file name="CopyAction.instance">
  182.95 -                        <attr name="instanceClass" stringvalue="org.openide.actions.CopyAction"/>
  182.96 -                        <attr name="position" intvalue="400"/>
  182.97 -                    </file>
  182.98 -                    <file name="PasteAction.instance">
  182.99 -                        <attr name="instanceClass" stringvalue="org.openide.actions.PasteAction"/>
 182.100 -                        <attr name="position" intvalue="500"/>
 182.101 -                    </file>
 182.102                      <file name="Separator2.instance">
 182.103                          <attr name="instanceClass" stringvalue="javax.swing.JSeparator"/>
 182.104                          <attr name="position" intvalue="600"/>
 182.105                      </file>
 182.106 -                    <file name="NewAction.instance">
 182.107 -                        <attr name="instanceClass" stringvalue="org.openide.actions.NewAction"/>
 182.108 -                        <attr name="position" intvalue="700"/>
 182.109 -                    </file>
 182.110 -                    <file name="DeleteAction.instance">
 182.111 -                        <attr name="instanceClass" stringvalue="org.openide.actions.DeleteAction"/>
 182.112 -                        <attr name="position" intvalue="800"/>
 182.113 -                    </file>
 182.114 -                    <file name="RenameAction.instance">
 182.115 -                        <attr name="instanceClass" stringvalue="org.openide.actions.RenameAction"/>
 182.116 -                        <attr name="position" intvalue="900"/>
 182.117 -                    </file>
 182.118                      <file name="Separator3.instance">
 182.119                          <attr name="instanceClass" stringvalue="javax.swing.JSeparator"/>
 182.120                          <attr name="position" intvalue="1000"/>
 182.121                      </file>
 182.122 -                    <file name="SaveAsTemplateAction.instance">
 182.123 -                        <attr name="instanceClass" stringvalue="org.openide.actions.SaveAsTemplateAction"/>
 182.124 -                        <attr name="position" intvalue="1100"/>
 182.125 -                    </file>
 182.126                      <file name="Separator4.instance">
 182.127                          <attr name="instanceClass" stringvalue="javax.swing.JSeparator"/>
 182.128                          <attr name="position" intvalue="1200"/>
 182.129                      </file>
 182.130 -                    <file name="FileSystemAction.instance">
 182.131 -                        <attr name="instanceClass" stringvalue="org.openide.actions.FileSystemAction"/>
 182.132 -                        <attr name="position" intvalue="1300"/>
 182.133 -                    </file>
 182.134                      <file name="Separator5.instance">
 182.135                          <attr name="instanceClass" stringvalue="javax.swing.JSeparator"/>
 182.136                          <attr name="position" intvalue="1400"/>
 182.137                      </file>
 182.138 -                    <file name="ToolsAction.instance">
 182.139 -                        <attr name="instanceClass" stringvalue="org.openide.actions.ToolsAction"/>
 182.140 +                    <file name="ToolsAction.shadow">
 182.141 +                        <attr name="originalFile" stringvalue="Actions/System/org-openide-actions-ToolsAction.instance"/>
 182.142                          <attr name="position" intvalue="1500"/>
 182.143                      </file>
 182.144 -                    <file name="PropertiesAction.instance">
 182.145 -                        <attr name="instanceClass" stringvalue="org.openide.actions.PropertiesAction"/>
 182.146 -                        <attr name="position" intvalue="1600"/>
 182.147 -                    </file>
 182.148                  </folder>
 182.149              </folder>
 182.150          </folder>
 182.151      </folder>
 182.152 +<!--    <folder name="Services">
 182.153 +        <folder name="MIMEResolver">
 182.154 +            <file name="ada-project-mime-resolver.xml" url="ada-project-mime-resolver.xml">
 182.155 +                <attr name="SystemFileSystem.localizingBundle" stringvalue="org.netbeans.modules.ada.project.resources.Bundle"/>
 182.156 +                <attr name="position" intvalue="99001"/>
 182.157 +            </file>
 182.158 +        </folder>
 182.159 +    </folder>-->
 182.160 +
 182.161  </filesystem>
   183.1 --- a/ada.project/src/org/netbeans/modules/ada/project/ui/MainModuleChooser.java	Tue Oct 02 21:55:21 2012 -0400
   183.2 +++ b/ada.project/src/org/netbeans/modules/ada/project/ui/MainModuleChooser.java	Mon Oct 15 23:38:26 2012 +0200
   183.3 @@ -44,6 +44,7 @@
   183.4  import java.util.List;
   183.5  import javax.swing.DefaultListModel;
   183.6  import javax.swing.JButton;
   183.7 +import javax.swing.JPanel;
   183.8  import javax.swing.SwingUtilities;
   183.9  import org.netbeans.modules.ada.project.AdaMimeResolver;
  183.10  import org.openide.filesystems.FileObject;
  183.11 @@ -55,7 +56,7 @@
  183.12   *
  183.13   * @author  Andrea Lucarelli
  183.14   */
  183.15 -final class MainModuleChooser extends javax.swing.JPanel {
  183.16 +final class MainModuleChooser extends JPanel {
  183.17      
  183.18      private final FileObject[] roots;
  183.19      private final JButton okButton;
   184.1 --- a/ada.project/src/org/netbeans/modules/ada/project/ui/SourceNodeFactory.java	Tue Oct 02 21:55:21 2012 -0400
   184.2 +++ b/ada.project/src/org/netbeans/modules/ada/project/ui/SourceNodeFactory.java	Mon Oct 15 23:38:26 2012 +0200
   184.3 @@ -90,12 +90,13 @@
   184.4  
   184.5          public List<SourceGroupKey> keys() {
   184.6              if (this.project.getProjectDirectory() == null || !this.project.getProjectDirectory().isValid()) {
   184.7 -                return Collections.EMPTY_LIST;
   184.8 +                return new ArrayList<SourceGroupKey>(0);
   184.9              }
  184.10              Sources sources = getSources();
  184.11              SourceGroup[] groups = sources.getSourceGroups(AdaSources.SOURCES_TYPE_ADA);
  184.12  
  184.13 -            List result = new ArrayList(groups.length);
  184.14 +//            List result = new ArrayList(groups.length);
  184.15 +            List<SourceGroupKey> result = new ArrayList<SourceGroupKey>(groups.length);
  184.16              for (int i = 0; i < groups.length; i++) {
  184.17                  result.add(new SourceGroupKey(groups[i]));
  184.18              }
   185.1 --- a/ada.project/src/org/netbeans/modules/ada/project/ui/Utils.java	Tue Oct 02 21:55:21 2012 -0400
   185.2 +++ b/ada.project/src/org/netbeans/modules/ada/project/ui/Utils.java	Mon Oct 15 23:38:26 2012 +0200
   185.3 @@ -122,9 +122,22 @@
   185.4          return fileObjects;
   185.5      }
   185.6  
   185.7 +    /**
   185.8 +     * Get a Ada project for the given FileObject.
   185.9 +     * @return a Ada project or <code>null</code>.
  185.10 +     */
  185.11 +    public static AdaProject getAdaProject(FileObject fo) {
  185.12 +        assert fo != null;
  185.13 +
  185.14 +        Project project = FileOwnerQuery.getOwner(fo);
  185.15 +        if (project == null) {
  185.16 +            return null;
  185.17 +        }
  185.18 +        return project.getLookup().lookup(AdaProject.class);
  185.19 +    }
  185.20 +
  185.21      public static String browseLocationAction(final Component parent, String path, String title) {
  185.22          JFileChooser chooser = new JFileChooser();
  185.23 -        FileUtil.preventFileChooserSymlinkTraversal(chooser, null);
  185.24          chooser.setDialogTitle(title);
  185.25          chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
  185.26          if (path != null && path.length() > 0) {
  185.27 @@ -244,6 +257,7 @@
  185.28              delegate = HtmlRenderer.createRenderer();
  185.29          }
  185.30  
  185.31 +        @Override
  185.32          public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
  185.33              String name;
  185.34              if (value instanceof AdaPlatform) {
  185.35 @@ -267,10 +281,12 @@
  185.36              super(data, new Object[]{"location", "label"});//NOI18N
  185.37          }
  185.38  
  185.39 +        @Override
  185.40          public boolean isCellEditable(int row, int column) {
  185.41              return column == 1;
  185.42          }
  185.43  
  185.44 +        @Override
  185.45          public Class getColumnClass(int columnIndex) {
  185.46              switch (columnIndex) {
  185.47                  case 0:
  185.48 @@ -331,6 +347,7 @@
  185.49              }
  185.50          }
  185.51  
  185.52 +        @Override
  185.53          public void setRelatedEditMediator(final SourceRootsMediator rem) {
  185.54              this.relatedEditMediator = (EditMediator) rem;
  185.55          }
  185.56 @@ -338,6 +355,7 @@
  185.57          // Implementation of ActionListener ------------------------------------
  185.58          /** Handles button events
  185.59           */
  185.60 +        @Override
  185.61          public void actionPerformed(ActionEvent e) {
  185.62  
  185.63              Object source = e.getSource();
  185.64 @@ -346,7 +364,6 @@
  185.65  
  185.66                  // Let user search for the Jar file
  185.67                  JFileChooser chooser = new JFileChooser();
  185.68 -                FileUtil.preventFileChooserSymlinkTraversal(chooser, null);
  185.69                  chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
  185.70                  chooser.setMultiSelectionEnabled(true);
  185.71                  if (isTest) {
  185.72 @@ -389,6 +406,7 @@
  185.73          // Selection listener implementation  ----------------------------------
  185.74          /** Handles changes in the selection
  185.75           */
  185.76 +        @Override
  185.77          public void valueChanged(ListSelectionEvent e) {
  185.78  
  185.79              int[] si = rootsList.getSelectedRows();
  185.80 @@ -413,9 +431,11 @@
  185.81              downButton.setEnabled(down);
  185.82          }
  185.83  
  185.84 +        @Override
  185.85          public void editingCanceled(ChangeEvent e) {
  185.86          }
  185.87  
  185.88 +        @Override
  185.89          public void editingStopped(ChangeEvent e) {
  185.90              fireChange();
  185.91          }
  185.92 @@ -445,7 +465,7 @@
  185.93                      continue;
  185.94                  }
  185.95                  if ((p = FileOwnerQuery.getOwner(normalizedFile.toURI())) != null && !p.getProjectDirectory().equals(project.getProjectDirectory())) {
  185.96 -                    final Sources sources = (Sources) p.getLookup().lookup(Sources.class);
  185.97 +                    final Sources sources = p.getLookup().lookup(Sources.class);
  185.98                      if (sources == null) {
  185.99                          rootsFromOtherProjects.add(normalizedFile);
 185.100                          continue;
 185.101 @@ -649,6 +669,7 @@
 185.102                  this.projectConflict = projectConflict;
 185.103              }
 185.104  
 185.105 +            @Override
 185.106              public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
 185.107                  File f = (File) value;
 185.108                  String message = f.getAbsolutePath();
 185.109 @@ -675,6 +696,7 @@
 185.110              this.projectFolder = projectFolder;
 185.111          }
 185.112  
 185.113 +        @Override
 185.114          public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
 185.115              String displayName;
 185.116              if (value instanceof File) {
   186.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   186.2 +++ b/ada.project/src/org/netbeans/modules/ada/project/ui/actions/ActionsUtil.java	Mon Oct 15 23:38:26 2012 +0200
   186.3 @@ -0,0 +1,117 @@
   186.4 +/*
   186.5 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
   186.6 + *
   186.7 + * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
   186.8 + *
   186.9 + * The contents of this file are subject to the terms of either the GNU
  186.10 + * General Public License Version 2 only ("GPL") or the Common
  186.11 + * Development and Distribution License("CDDL") (collectively, the
  186.12 + * "License"). You may not use this file except in compliance with the
  186.13 + * License. You can obtain a copy of the License at
  186.14 + * http://www.netbeans.org/cddl-gplv2.html
  186.15 + * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
  186.16 + * specific language governing permissions and limitations under the
  186.17 + * License.  When distributing the software, include this License Header
  186.18 + * Notice in each file and include the License file at
  186.19 + * nbbuild/licenses/CDDL-GPL-2-CP.  Sun designates this
  186.20 + * particular file as subject to the "Classpath" exception as provided
  186.21 + * by Sun in the GPL Version 2 section of the License file that
  186.22 + * accompanied this code. If applicable, add the following below the
  186.23 + * License Header, with the fields enclosed by brackets [] replaced by
  186.24 + * your own identifying information:
  186.25 + * "Portions Copyrighted [year] [name of copyright owner]"
  186.26 + *
  186.27 + * If you wish your version of this file to be governed by only the CDDL
  186.28 + * or only the GPL Version 2, indicate your decision by adding
  186.29 + * "[Contributor] elects to include this software in this distribution
  186.30 + * under the [CDDL or GPL Version 2] license." If you do not indicate a
  186.31 + * single choice of license, a recipient has the option to distribute
  186.32 + * your version of this file under either the CDDL, the GPL Version 2 or
  186.33 + * to extend the choice of license to its licensees as provided above.
  186.34 + * However, if you add GPL Version 2 code and therefore, elected the GPL
  186.35 + * Version 2 license, then the option applies only if the new code is
  186.36 + * made subject to such option by the copyright holder.
  186.37 + *
  186.38 + * Contributor(s):
  186.39 + *
  186.40 + * Portions Copyrighted 2009 Sun Microsystems, Inc.
  186.41 + */
  186.42 +package org.netbeans.modules.ada.project.ui.actions;
  186.43 +
  186.44 +import java.util.ArrayList;
  186.45 +import org.netbeans.api.ada.platform.AdaPlatform;
  186.46 +import org.netbeans.modules.ada.platform.compiler.gnat.GnatCompiler;
  186.47 +import org.netbeans.modules.ada.platform.compiler.jgnat.JGnatCompiler;
  186.48 +import org.netbeans.modules.ada.project.AdaProject;
  186.49 +import org.netbeans.modules.ada.project.AdaProjectUtil;
  186.50 +import org.netbeans.modules.ada.project.options.AdaOptions;
  186.51 +import org.netbeans.modules.ada.project.ui.properties.AdaProjectProperties;
  186.52 +import org.openide.filesystems.FileObject;
  186.53 +import org.openide.filesystems.FileUtil;
  186.54 +
  186.55 +/**
  186.56 + *
  186.57 + * @author alucarelli
  186.58 + */
  186.59 +public class ActionsUtil {
  186.60 +
  186.61 +    public static org.netbeans.spi.ada.platform.Compiler getCompilerFactory(AdaProject project, String displayTitle) {
  186.62 +        org.netbeans.spi.ada.platform.Compiler compiler = null;
  186.63 +
  186.64 +        // Retrieve project and platform
  186.65 +        AdaPlatform platform = AdaProjectUtil.getActivePlatform(project);
  186.66 +        assert platform != null;
  186.67 +
  186.68 +        ArrayList<String> sources = new ArrayList<String>();
  186.69 +        FileObject[] files;
  186.70 +
  186.71 +        // Retrieve main file
  186.72 +        String mainFile = project.getEvaluator().getProperty(AdaProjectProperties.MAIN_FILE);
  186.73 +        assert mainFile != null;
  186.74 +
  186.75 +        // Retrieve ada dialects (Ada 83, 95, etc)
  186.76 +        String adaDialects = project.getEvaluator().getProperty(AdaOptions.ADA_DIALECTS);
  186.77 +
  186.78 +        files = project.getSourcesDirectory();
  186.79 +        for (int index = 0; index < files.length; index++) {
  186.80 +            sources.add(FileUtil.toFile(files[index]).getAbsolutePath());
  186.81 +        }
  186.82 +
  186.83 +        // Init compiler factory
  186.84 +        if (project.getEvaluator().getProperty(AdaProjectProperties.OUTPUT_BUILD_FORMAT).equalsIgnoreCase(AdaProjectProperties.NATIVE_FORMAT)) {
  186.85 +            compiler = new GnatCompiler(
  186.86 +                    platform,
  186.87 +                    project.getName(), // project name
  186.88 +                    FileUtil.toFile(project.getProjectDirectory()).getAbsolutePath(), // project location
  186.89 +                    sources, // sources location
  186.90 +                    mainFile, // main file
  186.91 +                    adaDialects,
  186.92 +                    project.getName(), // executable file
  186.93 +                    displayTitle, // display name
  186.94 +                    project.getEvaluator().getProperty(AdaOptions.PKG_SPEC_POSTFIX),
  186.95 +                    project.getEvaluator().getProperty(AdaOptions.PKG_BODY_POSTFIX),
  186.96 +                    project.getEvaluator().getProperty(AdaOptions.SEPARATE_POSTFIX),
  186.97 +                    project.getEvaluator().getProperty(AdaOptions.PKG_SPEC_EXT),
  186.98 +                    project.getEvaluator().getProperty(AdaOptions.PKG_BODY_EXT),
  186.99 +                    project.getEvaluator().getProperty(AdaOptions.SEPARATE_EXT));
 186.100 +        } else if (project.getEvaluator().getProperty(AdaProjectProperties.OUTPUT_BUILD_FORMAT).equalsIgnoreCase(AdaProjectProperties.JVM_FORMAT)) {
 186.101 +            compiler = new JGnatCompiler(
 186.102 +                    platform,
 186.103 +                    project.getName(), // project name
 186.104 +                    FileUtil.toFile(project.getProjectDirectory()).getAbsolutePath(), // project location
 186.105 +                    sources, // sources location
 186.106 +                    mainFile, // main file
 186.107 +                    adaDialects,
 186.108 +                    project.getName(), // executable file
 186.109 +                    displayTitle, // display name
 186.110 +                    project.getEvaluator().getProperty(AdaOptions.PKG_SPEC_POSTFIX),
 186.111 +                    project.getEvaluator().getProperty(AdaOptions.PKG_BODY_POSTFIX),
 186.112 +                    project.getEvaluator().getProperty(AdaOptions.SEPARATE_POSTFIX),
 186.113 +                    project.getEvaluator().getProperty(AdaOptions.PKG_SPEC_EXT),
 186.114 +                    project.getEvaluator().getProperty(AdaOptions.PKG_BODY_EXT),
 186.115 +                    project.getEvaluator().getProperty(AdaOptions.SEPARATE_EXT));
 186.116 +        }
 186.117 +
 186.118 +        return compiler;
 186.119 +    }
 186.120 +}
   187.1 --- a/ada.project/src/org/netbeans/modules/ada/project/ui/actions/BuildCommand.java	Tue Oct 02 21:55:21 2012 -0400
   187.2 +++ b/ada.project/src/org/netbeans/modules/ada/project/ui/actions/BuildCommand.java	Mon Oct 15 23:38:26 2012 +0200
   187.3 @@ -74,15 +74,6 @@
   187.4      public void invokeAction(Lookup context) throws IllegalArgumentException {
   187.5          // Retrieve project and platform
   187.6          final AdaProject project = getProject();
   187.7 -        AdaPlatform platform = AdaProjectUtil.getActivePlatform(project);
   187.8 -        assert platform != null;
   187.9 -
  187.10 -        ArrayList<String> sources = new ArrayList<String>();
  187.11 -        FileObject[] files;
  187.12 -
  187.13 -        // Retrieve main file
  187.14 -        String mainFile = project.getEvaluator().getProperty(AdaProjectProperties.MAIN_FILE);
  187.15 -        assert mainFile != null;
  187.16  
  187.17          // Create Build/Dist folders
  187.18          try {
  187.19 @@ -92,29 +83,8 @@
  187.20              Exceptions.printStackTrace(ex);
  187.21          }
  187.22  
  187.23 -        files = project.getSourcesDirectory();
  187.24 -        for (int index = 0; index < files.length; index++) {
  187.25 -            sources.add(FileUtil.toFile(files[index]).getAbsolutePath());
  187.26 -        }
  187.27 -
  187.28 -        // Init compiler factory
  187.29 -        GnatCompiler comp = new GnatCompiler(
  187.30 -                platform,
  187.31 -                project.getName(),                        // project name
  187.32 -                FileUtil.toFile(project.getProjectDirectory()).getAbsolutePath(),  // project location
  187.33 -                sources,                                  // sources location
  187.34 -                mainFile,                                 // main file
  187.35 -                project.getName(),                        // executable file
  187.36 -                COMMAND_ID,                              // display name
  187.37 -                project.getEvaluator().getProperty(AdaOptions.PKG_SPEC_POSTFIX),
  187.38 -                project.getEvaluator().getProperty(AdaOptions.PKG_BODY_POSTFIX),
  187.39 -                project.getEvaluator().getProperty(AdaOptions.SEPARATE_POSTFIX),
  187.40 -                project.getEvaluator().getProperty(AdaOptions.PKG_SPEC_EXT),
  187.41 -                project.getEvaluator().getProperty(AdaOptions.PKG_BODY_EXT),
  187.42 -                project.getEvaluator().getProperty(AdaOptions.SEPARATE_EXT));
  187.43 -
  187.44          // Start build
  187.45 -        comp.Build();
  187.46 +        ActionsUtil.getCompilerFactory(project, COMMAND_ID).Build();
  187.47      }
  187.48  
  187.49      @Override
  187.50 @@ -124,6 +94,10 @@
  187.51          if (platform == null) {
  187.52              return false;
  187.53          }
  187.54 +        String mainFile = project.getEvaluator().getProperty(AdaProjectProperties.MAIN_FILE);
  187.55 +        if (mainFile == null) {
  187.56 +            return false;
  187.57 +        }
  187.58          return true;
  187.59      }
  187.60  
  187.61 @@ -145,14 +119,16 @@
  187.62  
  187.63      private void createBuildRoot(final AdaProject project) throws IOException {
  187.64          // Retrieve build path
  187.65 -        String buildPath = project.getEvaluator().getProperty(AdaProjectProperties.BUILD_DIR);
  187.66 +        final File projectDirectory = FileUtil.toFile(project.getProjectDirectory());
  187.67 +        String buildPath = projectDirectory + File.separator + project.getEvaluator().getProperty(AdaProjectProperties.BUILD_DIR);
  187.68          assert buildPath != null;
  187.69          FileUtil.createFolder(new File(buildPath));
  187.70      }
  187.71  
  187.72      private void createDistRoot(final AdaProject project) throws IOException {
  187.73          // Retrieve dist path
  187.74 -        String distPath = project.getEvaluator().getProperty(AdaProjectProperties.DIST_DIR);
  187.75 +        final File projectDirectory = FileUtil.toFile(project.getProjectDirectory());
  187.76 +        String distPath = projectDirectory + File.separator + project.getEvaluator().getProperty(AdaProjectProperties.DIST_DIR);
  187.77          assert distPath != null;
  187.78  		FileUtil.createFolder(new File(distPath));
  187.79      }
   188.1 --- a/ada.project/src/org/netbeans/modules/ada/project/ui/actions/CleanCommand.java	Tue Oct 02 21:55:21 2012 -0400
   188.2 +++ b/ada.project/src/org/netbeans/modules/ada/project/ui/actions/CleanCommand.java	Mon Oct 15 23:38:26 2012 +0200
   188.3 @@ -71,38 +71,9 @@
   188.4      @Override
   188.5      public void invokeAction(Lookup context) throws IllegalArgumentException {
   188.6          final AdaProject project = getProject();
   188.7 -        AdaPlatform platform = AdaProjectUtil.getActivePlatform(project);
   188.8 -        assert platform != null;
   188.9 -        ArrayList<String> sources = new ArrayList<String>();
  188.10 -        FileObject[] files;
  188.11 -
  188.12 -        // Retrieve main file
  188.13 -        String mainFile = project.getEvaluator().getProperty(AdaProjectProperties.MAIN_FILE);
  188.14 -        assert mainFile != null;
  188.15 -
  188.16 -        files = project.getSourcesDirectory();
  188.17 -        for (int index = 0; index < files.length; index++) {
  188.18 -            sources.add(FileUtil.toFile(files[index]).getAbsolutePath());
  188.19 -        }
  188.20 -
  188.21 -        // Init compiler factory
  188.22 -        GnatCompiler comp = new GnatCompiler(
  188.23 -                platform,
  188.24 -                project.getName(),                        // project name
  188.25 -                FileUtil.toFile(project.getProjectDirectory()).getAbsolutePath(),  // project location
  188.26 -                sources,  // sources location
  188.27 -                mainFile,                                 // main file
  188.28 -                project.getName(),                        // executable file
  188.29 -                COMMAND_ID,                              // display name
  188.30 -                project.getEvaluator().getProperty(AdaOptions.PKG_SPEC_POSTFIX),
  188.31 -                project.getEvaluator().getProperty(AdaOptions.PKG_BODY_POSTFIX),
  188.32 -                project.getEvaluator().getProperty(AdaOptions.SEPARATE_POSTFIX),
  188.33 -                project.getEvaluator().getProperty(AdaOptions.PKG_SPEC_EXT),
  188.34 -                project.getEvaluator().getProperty(AdaOptions.PKG_BODY_EXT),
  188.35 -                project.getEvaluator().getProperty(AdaOptions.SEPARATE_EXT));
  188.36  
  188.37          // Start clean
  188.38 -        comp.Clean();
  188.39 +        ActionsUtil.getCompilerFactory(project, COMMAND_ID).Clean();
  188.40      }
  188.41  
  188.42      @Override
  188.43 @@ -112,8 +83,12 @@
  188.44          if (platform == null) {
  188.45              return false;
  188.46          } else {
  188.47 +            String mainFile = project.getEvaluator().getProperty(AdaProjectProperties.MAIN_FILE);
  188.48 +            if (mainFile == null) {
  188.49 +                return false;
  188.50 +            }
  188.51              if (!new File(FileUtil.toFile(project.getProjectDirectory()), "build").isDirectory() ||
  188.52 -                !new File(FileUtil.toFile(project.getProjectDirectory()), "dist").isDirectory()) {
  188.53 +                    !new File(FileUtil.toFile(project.getProjectDirectory()), "dist").isDirectory()) {
  188.54                  return false;
  188.55              }
  188.56          }
   189.1 --- a/ada.project/src/org/netbeans/modules/ada/project/ui/actions/RebuildCommand.java	Tue Oct 02 21:55:21 2012 -0400
   189.2 +++ b/ada.project/src/org/netbeans/modules/ada/project/ui/actions/RebuildCommand.java	Mon Oct 15 23:38:26 2012 +0200
   189.3 @@ -36,19 +36,14 @@
   189.4   *
   189.5   * Portions Copyrighted 2008 Sun Microsystems, Inc.
   189.6   */
   189.7 -
   189.8  package org.netbeans.modules.ada.project.ui.actions;
   189.9  
  189.10  import java.io.File;
  189.11 -import java.util.ArrayList;
  189.12  import org.netbeans.api.ada.platform.AdaPlatform;
  189.13 -import org.netbeans.modules.ada.platform.compiler.gnat.GnatCompiler;
  189.14  import org.netbeans.modules.ada.project.AdaActionProvider;
  189.15  import org.netbeans.modules.ada.project.AdaProject;
  189.16  import org.netbeans.modules.ada.project.AdaProjectUtil;
  189.17 -import org.netbeans.modules.ada.project.options.AdaOptions;
  189.18  import org.netbeans.modules.ada.project.ui.properties.AdaProjectProperties;
  189.19 -import org.openide.filesystems.FileObject;
  189.20  import org.openide.filesystems.FileUtil;
  189.21  import org.openide.util.Lookup;
  189.22  
  189.23 @@ -71,41 +66,15 @@
  189.24  
  189.25      @Override
  189.26      public void invokeAction(Lookup context) throws IllegalArgumentException {
  189.27 -        // Retrieve project and platform
  189.28 +        // Retrieve project
  189.29          final AdaProject project = getProject();
  189.30 -        AdaPlatform platform = AdaProjectUtil.getActivePlatform(project);
  189.31 -        assert platform != null;
  189.32 -        ArrayList<String> sources = new ArrayList<String>();
  189.33 -        FileObject[] files;
  189.34 -
  189.35 -        // Retrieve main file
  189.36 -        String mainFile = project.getEvaluator().getProperty(AdaProjectProperties.MAIN_FILE);
  189.37 -        assert mainFile != null;
  189.38 -
  189.39 -        files = project.getSourcesDirectory();
  189.40 -        for (int index = 0; index < files.length; index++) {
  189.41 -            sources.add(FileUtil.toFile(files[index]).getAbsolutePath());
  189.42 -        }
  189.43  
  189.44          // Init compiler factory
  189.45 -        GnatCompiler comp = new GnatCompiler(
  189.46 -                platform,
  189.47 -                project.getName(),                        // project name
  189.48 -                FileUtil.toFile(project.getProjectDirectory()).getAbsolutePath(),  // project location
  189.49 -                sources,  // sources location
  189.50 -                mainFile,                                 // main file
  189.51 -                project.getName(),                        // executable file
  189.52 -                COMMAND_ID,                              // display name
  189.53 -                project.getEvaluator().getProperty(AdaOptions.PKG_SPEC_POSTFIX),
  189.54 -                project.getEvaluator().getProperty(AdaOptions.PKG_BODY_POSTFIX),
  189.55 -                project.getEvaluator().getProperty(AdaOptions.SEPARATE_POSTFIX),
  189.56 -                project.getEvaluator().getProperty(AdaOptions.PKG_SPEC_EXT),
  189.57 -                project.getEvaluator().getProperty(AdaOptions.PKG_BODY_EXT),
  189.58 -                project.getEvaluator().getProperty(AdaOptions.SEPARATE_EXT));
  189.59 +        org.netbeans.spi.ada.platform.Compiler compiler = ActionsUtil.getCompilerFactory(project, COMMAND_ID);
  189.60  
  189.61          // Start rebuild
  189.62 -        comp.Clean();
  189.63 -        comp.Build();
  189.64 +        compiler.Clean();
  189.65 +        compiler.Build();
  189.66      }
  189.67  
  189.68      @Override
  189.69 @@ -115,12 +84,15 @@
  189.70          if (platform == null) {
  189.71              return false;
  189.72          } else {
  189.73 +            String mainFile = project.getEvaluator().getProperty(AdaProjectProperties.MAIN_FILE);
  189.74 +            if (mainFile == null) {
  189.75 +                return false;
  189.76 +            }
  189.77              if (!new File(FileUtil.toFile(project.getProjectDirectory()), "build").isDirectory() ||
  189.78 -                !new File(FileUtil.toFile(project.getProjectDirectory()), "dist").isDirectory()) {
  189.79 +                    !new File(FileUtil.toFile(project.getProjectDirectory()), "dist").isDirectory()) {
  189.80                  return false;
  189.81              }
  189.82          }
  189.83          return true;
  189.84      }
  189.85 -    
  189.86  }
   190.1 --- a/ada.project/src/org/netbeans/modules/ada/project/ui/actions/RunCommand.java	Tue Oct 02 21:55:21 2012 -0400
   190.2 +++ b/ada.project/src/org/netbeans/modules/ada/project/ui/actions/RunCommand.java	Mon Oct 15 23:38:26 2012 +0200
   190.3 @@ -40,15 +40,11 @@
   190.4  
   190.5  import java.io.File;
   190.6  import java.io.IOException;
   190.7 -import java.util.ArrayList;
   190.8  import org.netbeans.api.ada.platform.AdaPlatform;
   190.9 -import org.netbeans.modules.ada.platform.compiler.gnat.GnatCompiler;
  190.10  import org.netbeans.modules.ada.project.AdaActionProvider;
  190.11  import org.netbeans.modules.ada.project.AdaProject;
  190.12  import org.netbeans.modules.ada.project.AdaProjectUtil;
  190.13 -import org.netbeans.modules.ada.project.options.AdaOptions;
  190.14  import org.netbeans.modules.ada.project.ui.properties.AdaProjectProperties;
  190.15 -import org.openide.filesystems.FileObject;
  190.16  import org.openide.filesystems.FileUtil;
  190.17  import org.openide.util.Exceptions;
  190.18  import org.openide.util.Lookup;
  190.19 @@ -73,14 +69,6 @@
  190.20      @Override
  190.21      public void invokeAction(Lookup context) throws IllegalArgumentException {
  190.22          final AdaProject project = getProject();
  190.23 -        AdaPlatform platform = AdaProjectUtil.getActivePlatform(project);
  190.24 -        assert platform != null;
  190.25 -        ArrayList<String> sources = new ArrayList<String>();
  190.26 -        FileObject[] files;
  190.27 -
  190.28 -        // Retrieve main file
  190.29 -        String mainFile = project.getEvaluator().getProperty(AdaProjectProperties.MAIN_FILE);
  190.30 -        assert mainFile != null;
  190.31  
  190.32          // Create Build/Dist folders
  190.33          try {
  190.34 @@ -90,30 +78,13 @@
  190.35              Exceptions.printStackTrace(ex);
  190.36          }
  190.37  
  190.38 -        files = project.getSourcesDirectory();
  190.39 -        for (int index = 0; index < files.length; index++) {
  190.40 -            sources.add(FileUtil.toFile(files[index]).getAbsolutePath());
  190.41 -        }
  190.42  
  190.43          // Init compiler factory
  190.44 -        GnatCompiler comp = new GnatCompiler(
  190.45 -                platform,
  190.46 -                project.getName(),                       // project name
  190.47 -                FileUtil.toFile(project.getProjectDirectory()).getAbsolutePath(),  // project location
  190.48 -                sources,   // sources location
  190.49 -                mainFile,                                // main file
  190.50 -                project.getName(),                        // executable file
  190.51 -                COMMAND_ID,                              // display name
  190.52 -                project.getEvaluator().getProperty(AdaOptions.PKG_SPEC_POSTFIX),
  190.53 -                project.getEvaluator().getProperty(AdaOptions.PKG_BODY_POSTFIX),
  190.54 -                project.getEvaluator().getProperty(AdaOptions.SEPARATE_POSTFIX),
  190.55 -                project.getEvaluator().getProperty(AdaOptions.PKG_SPEC_EXT),
  190.56 -                project.getEvaluator().getProperty(AdaOptions.PKG_BODY_EXT),
  190.57 -                project.getEvaluator().getProperty(AdaOptions.SEPARATE_EXT));
  190.58 +        org.netbeans.spi.ada.platform.Compiler compiler = ActionsUtil.getCompilerFactory(project, COMMAND_ID);
  190.59  
  190.60          // Start run
  190.61 -        comp.Build();
  190.62 -        comp.Run(project.getEvaluator().getProperty(AdaProjectProperties.APPLICATION_ARGS));
  190.63 +        compiler.Build();
  190.64 +        compiler.Run(project.getEvaluator().getProperty(AdaProjectProperties.APPLICATION_ARGS));
  190.65      }
  190.66  
  190.67      @Override
  190.68 @@ -123,22 +94,26 @@
  190.69          if (platform == null) {
  190.70              return false;
  190.71          }
  190.72 +        String mainFile = project.getEvaluator().getProperty(AdaProjectProperties.MAIN_FILE);
  190.73 +        if (mainFile == null) {
  190.74 +            return false;
  190.75 +        }
  190.76          return true;
  190.77      }
  190.78  
  190.79      private void createBuildRoot(final AdaProject project) throws IOException {
  190.80          // Retrieve build path
  190.81 -        String buildPath = project.getEvaluator().getProperty(AdaProjectProperties.BUILD_DIR);
  190.82 +        final File projectDirectory = FileUtil.toFile(project.getProjectDirectory());
  190.83 +        String buildPath = projectDirectory + File.separator + project.getEvaluator().getProperty(AdaProjectProperties.BUILD_DIR);
  190.84          assert buildPath != null;
  190.85 -
  190.86          FileUtil.createFolder(new File(buildPath));
  190.87      }
  190.88  
  190.89      private void createDistRoot(final AdaProject project) throws IOException {
  190.90          // Retrieve dist path
  190.91 -        String distPath = project.getEvaluator().getProperty(AdaProjectProperties.DIST_DIR);
  190.92 +        final File projectDirectory = FileUtil.toFile(project.getProjectDirectory());
  190.93 +        String distPath = projectDirectory + File.separator + project.getEvaluator().getProperty(AdaProjectProperties.DIST_DIR);
  190.94          assert distPath != null;
  190.95 -
  190.96  		FileUtil.createFolder(new File(distPath));
  190.97      }
  190.98  }
   191.1 --- a/ada.project/src/org/netbeans/modules/ada/project/ui/properties/AdaProjectProperties.java	Tue Oct 02 21:55:21 2012 -0400
   191.2 +++ b/ada.project/src/org/netbeans/modules/ada/project/ui/properties/AdaProjectProperties.java	Mon Oct 15 23:38:26 2012 +0200
   191.3 @@ -77,6 +77,10 @@
   191.4      public static final String ACTIVE_PLATFORM = "platform.active"; //NOI18N
   191.5      public static final String ADA_LIB_PATH = "ada.lib.path"; //NOI18N
   191.6      public static final String SOURCE_ENCODING = "source.encoding"; //NOI18N
   191.7 +    public static final String OUTPUT_BUILD_FORMAT = "output.build.format"; //NOI18N
   191.8 +
   191.9 +    public static final String NATIVE_FORMAT = "NATIVE_FORMAT"; //NOI18N
  191.10 +    public static final String JVM_FORMAT = "JVM_FORMAT"; //NOI18N
  191.11  
  191.12      private final AdaProject project;
  191.13      private final PropertyEvaluator eval;
  191.14 @@ -89,6 +93,7 @@
  191.15      private volatile ArrayList<String> librariesPath;
  191.16  
  191.17      private volatile String activePlatformId;
  191.18 +    private volatile String outputBuildFormat;
  191.19      private volatile String adaDialects;
  191.20      private volatile String adaRestrictions;
  191.21      private volatile String pkgSpecPrefix;
  191.22 @@ -217,6 +222,17 @@
  191.23          this.activePlatformId = activePlatformId;
  191.24      }
  191.25  
  191.26 +    public String getOutputBuildFormat() {
  191.27 +        if (outputBuildFormat == null) {
  191.28 +            outputBuildFormat = eval.getProperty(OUTPUT_BUILD_FORMAT);
  191.29 +        }
  191.30 +        return outputBuildFormat;
  191.31 +    }
  191.32 +
  191.33 +    public void setOutputBuildFormat(String outputBuildFormat) {
  191.34 +        this.outputBuildFormat = outputBuildFormat;
  191.35 +    }
  191.36 +
  191.37      // Storing
  191.38      void save() {
  191.39          try {
  191.40 @@ -271,6 +287,10 @@
  191.41              projectProperties.put(ACTIVE_PLATFORM, activePlatformId);
  191.42          }
  191.43  
  191.44 +        if (outputBuildFormat != null) {
  191.45 +            projectProperties.put(OUTPUT_BUILD_FORMAT, outputBuildFormat);
  191.46 +        }
  191.47 +
  191.48          if (adaDialects != null) {
  191.49              projectProperties.put(AdaOptions.ADA_DIALECTS, adaDialects);
  191.50          }
   192.1 --- a/ada.project/src/org/netbeans/modules/ada/project/ui/properties/Bundle.properties	Tue Oct 02 21:55:21 2012 -0400
   192.2 +++ b/ada.project/src/org/netbeans/modules/ada/project/ui/properties/Bundle.properties	Mon Oct 15 23:38:26 2012 +0200
   192.3 @@ -80,3 +80,6 @@
   192.4  CustomizerBuild.manage.text=Manage...
   192.5  CustomizerBuild.jLabel2.text=Ada Platform:
   192.6  CustomizerRun.executableName.text=&Executable Name:
   192.7 +CustomizerBuild.jLabel3.text=Build Format:
   192.8 +CustomizerBuild.nativeFormat.text=Native
   192.9 +CustomizerBuild.jvmFormat.text=JVM
   193.1 --- a/ada.project/src/org/netbeans/modules/ada/project/ui/properties/CompositePanelProviderImpl.java	Tue Oct 02 21:55:21 2012 -0400
   193.2 +++ b/ada.project/src/org/netbeans/modules/ada/project/ui/properties/CompositePanelProviderImpl.java	Mon Oct 15 23:38:26 2012 +0200
   193.3 @@ -36,13 +36,11 @@
   193.4   *
   193.5   * Portions Copyrighted 2008 Sun Microsystems, Inc.
   193.6   */
   193.7 -
   193.8 -
   193.9  package org.netbeans.modules.ada.project.ui.properties;
  193.10  
  193.11  import javax.swing.JComponent;
  193.12  import javax.swing.JPanel;
  193.13 -import org.netbeans.modules.ada.project.options.AdaGeneralOptionsPanel;
  193.14 +import org.netbeans.modules.ada.project.options.ui.AdaGeneralOptionsPanel;
  193.15  import org.netbeans.spi.project.ui.support.ProjectCustomizer;
  193.16  import org.netbeans.spi.project.ui.support.ProjectCustomizer.CompositeCategoryProvider;
  193.17  import org.openide.util.Lookup;
  193.18 @@ -100,7 +98,7 @@
  193.19                      null,
  193.20                      categories);
  193.21          }
  193.22 -        
  193.23 +
  193.24          assert toReturn != null : "No category for name: " + name;
  193.25          return toReturn;
  193.26      }
  193.27 @@ -120,7 +118,7 @@
  193.28          } else if (STANDARDS_AND_NAMING.equals(nm)) {
  193.29              return new AdaGeneralOptionsPanel(uiProps);
  193.30          }
  193.31 -        
  193.32 +
  193.33          return new JPanel();
  193.34      }
  193.35  
   194.1 --- a/ada.project/src/org/netbeans/modules/ada/project/ui/properties/CustomizerBuild.form	Tue Oct 02 21:55:21 2012 -0400
   194.2 +++ b/ada.project/src/org/netbeans/modules/ada/project/ui/properties/CustomizerBuild.form	Mon Oct 15 23:38:26 2012 +0200
   194.3 @@ -1,4 +1,4 @@
   194.4 -<?xml version="1.0" encoding="UTF-8" ?>
   194.5 +<?xml version="1.1" encoding="UTF-8" ?>
   194.6  
   194.7  <Form version="1.5" maxVersion="1.6" type="org.netbeans.modules.form.forminfo.JPanelFormInfo">
   194.8    <AuxValues>
   194.9 @@ -7,7 +7,7 @@
  194.10      <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
  194.11      <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
  194.12      <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="true"/>
  194.13 -    <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="2"/>
  194.14 +    <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
  194.15      <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
  194.16      <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
  194.17      <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
  194.18 @@ -16,21 +16,32 @@
  194.19    <Layout>
  194.20      <DimensionLayout dim="0">
  194.21        <Group type="103" groupAlignment="0" attributes="0">
  194.22 -          <Group type="102" attributes="0">
  194.23 +          <Group type="102" alignment="0" attributes="0">
  194.24                <EmptySpace max="-2" attributes="0"/>
  194.25                <Group type="103" groupAlignment="0" attributes="0">
  194.26 -                  <Component id="jLabel1" alignment="0" min="-2" max="-2" attributes="0"/>
  194.27 -                  <Component id="jLabel2" alignment="0" min="-2" max="-2" attributes="0"/>
  194.28 -              </Group>
  194.29 -              <EmptySpace min="-2" pref="49" max="-2" attributes="0"/>
  194.30 -              <Group type="103" groupAlignment="0" attributes="0">
  194.31 -                  <Component id="platforms" pref="323" max="32767" attributes="0"/>
  194.32 -                  <Component id="mainModule" pref="323" max="32767" attributes="0"/>
  194.33 -              </Group>
  194.34 -              <EmptySpace max="-2" attributes="0"/>
  194.35 -              <Group type="103" groupAlignment="0" max="-2" attributes="0">
  194.36 -                  <Component id="browse" alignment="1" max="32767" attributes="1"/>
  194.37 -                  <Component id="manage" alignment="1" max="32767" attributes="1"/>
  194.38 +                  <Group type="102" alignment="0" attributes="0">
  194.39 +                      <Component id="jLabel3" min="-2" max="-2" attributes="0"/>
  194.40 +                      <EmptySpace min="-2" pref="49" max="-2" attributes="0"/>
  194.41 +                      <Component id="nativeFormat" min="-2" max="-2" attributes="0"/>
  194.42 +                      <EmptySpace type="separate" max="-2" attributes="0"/>
  194.43 +                      <Component id="jvmFormat" min="-2" max="-2" attributes="0"/>
  194.44 +                  </Group>
  194.45 +                  <Group type="102" alignment="0" attributes="0">
  194.46 +                      <Group type="103" groupAlignment="0" attributes="0">
  194.47 +                          <Component id="jLabel1" alignment="0" min="-2" max="-2" attributes="0"/>
  194.48 +                          <Component id="jLabel2" alignment="0" min="-2" max="-2" attributes="0"/>
  194.49 +                      </Group>
  194.50 +                      <EmptySpace min="-2" pref="49" max="-2" attributes="0"/>
  194.51 +                      <Group type="103" groupAlignment="0" attributes="0">
  194.52 +                          <Component id="platforms" pref="323" max="32767" attributes="0"/>
  194.53 +                          <Component id="mainModule" pref="323" max="32767" attributes="0"/>
  194.54 +                      </Group>
  194.55 +                      <EmptySpace max="-2" attributes="0"/>
  194.56 +                      <Group type="103" groupAlignment="0" max="-2" attributes="0">
  194.57 +                          <Component id="browse" alignment="1" max="32767" attributes="1"/>
  194.58 +                          <Component id="manage" alignment="1" max="32767" attributes="1"/>
  194.59 +                      </Group>
  194.60 +                  </Group>
  194.61                </Group>
  194.62                <EmptySpace max="-2" attributes="0"/>
  194.63            </Group>
  194.64 @@ -51,7 +62,13 @@
  194.65                    <Component id="browse" alignment="3" min="-2" max="-2" attributes="0"/>
  194.66                    <Component id="mainModule" alignment="3" min="-2" max="-2" attributes="0"/>
  194.67                </Group>
  194.68 -              <EmptySpace pref="224" max="32767" attributes="0"/>
  194.69 +              <EmptySpace type="unrelated" max="-2" attributes="0"/>
  194.70 +              <Group type="103" groupAlignment="3" attributes="0">
  194.71 +                  <Component id="jLabel3" alignment="3" min="-2" max="-2" attributes="0"/>
  194.72 +                  <Component id="nativeFormat" alignment="3" min="-2" max="-2" attributes="0"/>
  194.73 +                  <Component id="jvmFormat" alignment="3" min="-2" max="-2" attributes="0"/>
  194.74 +              </Group>
  194.75 +              <EmptySpace pref="194" max="32767" attributes="0"/>
  194.76            </Group>
  194.77        </Group>
  194.78      </DimensionLayout>
  194.79 @@ -120,5 +137,38 @@
  194.80          <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="manageActionPerformed"/>
  194.81        </Events>
  194.82      </Component>
  194.83 +    <Component class="javax.swing.JLabel" name="jLabel3">
  194.84 +      <Properties>
  194.85 +        <Property name="labelFor" type="java.awt.Component" editor="org.netbeans.modules.form.ComponentChooserEditor">
  194.86 +          <ComponentRef name="mainModule"/>
  194.87 +        </Property>
  194.88 +        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
  194.89 +          <ResourceString bundle="org/netbeans/modules/ada/project/ui/properties/Bundle.properties" key="CustomizerBuild.jLabel3.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
  194.90 +        </Property>
  194.91 +      </Properties>
  194.92 +      <AuxValues>
  194.93 +        <AuxValue name="generateMnemonicsCode" type="java.lang.Boolean" value="true"/>
  194.94 +      </AuxValues>
  194.95 +    </Component>
  194.96 +    <Component class="javax.swing.JRadioButton" name="nativeFormat">
  194.97 +      <Properties>
  194.98 +        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
  194.99 +          <ResourceString bundle="org/netbeans/modules/ada/project/ui/properties/Bundle.properties" key="CustomizerBuild.nativeFormat.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
 194.100 +        </Property>
 194.101 +      </Properties>
 194.102 +      <Events>
 194.103 +        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="nativeFormatActionPerformed"/>
 194.104 +      </Events>
 194.105 +    </Component>
 194.106 +    <Component class="javax.swing.JRadioButton" name="jvmFormat">
 194.107 +      <Properties>
 194.108 +        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
 194.109 +          <ResourceString bundle="org/netbeans/modules/ada/project/ui/properties/Bundle.properties" key="CustomizerBuild.jvmFormat.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
 194.110 +        </Property>
 194.111 +      </Properties>
 194.112 +      <Events>
 194.113 +        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jvmFormatActionPerformed"/>
 194.114 +      </Events>
 194.115 +    </Component>
 194.116    </SubComponents>
 194.117  </Form>
   195.1 --- a/ada.project/src/org/netbeans/modules/ada/project/ui/properties/CustomizerBuild.java	Tue Oct 02 21:55:21 2012 -0400
   195.2 +++ b/ada.project/src/org/netbeans/modules/ada/project/ui/properties/CustomizerBuild.java	Mon Oct 15 23:38:26 2012 +0200
   195.3 @@ -48,7 +48,6 @@
   195.4  import org.netbeans.modules.ada.project.ui.Utils;
   195.5  import org.openide.filesystems.FileObject;
   195.6  import org.openide.filesystems.FileUtil;
   195.7 -import org.openide.filesystems.Repository;
   195.8  import org.openide.loaders.DataObject;
   195.9  import org.openide.loaders.InstanceDataObject;
  195.10  import org.openide.util.Exceptions;
  195.11 @@ -63,7 +62,8 @@
  195.12  
  195.13      private final AdaProjectProperties uiProperties;
  195.14      private final DocListener listener;
  195.15 -
  195.16 +    private final AdaPlatformManager manager;
  195.17 +    
  195.18      /** Creates new form CustomizerBuild */
  195.19      public CustomizerBuild(final AdaProjectProperties uiProperties) {
  195.20          assert uiProperties != null;
  195.21 @@ -78,15 +78,36 @@
  195.22  
  195.23          this.platforms.setRenderer(Utils.createPlatformRenderer());
  195.24          this.platforms.setModel(Utils.createPlatformModel());
  195.25 -        final AdaPlatformManager manager = AdaPlatformManager.getInstance();
  195.26 +        manager = AdaPlatformManager.getInstance();
  195.27          String pid = uiProperties.getActivePlatformId();
  195.28          if (pid == null) {
  195.29              pid = manager.getDefaultPlatform();
  195.30          }
  195.31 +
  195.32          final AdaPlatform activePlatform = manager.getPlatform(pid);
  195.33          if (activePlatform != null) {
  195.34              platforms.setSelectedItem(activePlatform);
  195.35          }
  195.36 +        
  195.37 +        if (activePlatform.getJvmGnatCompilerCommand() != null) {
  195.38 +            nativeFormat.setEnabled(true);
  195.39 +            jvmFormat.setEnabled(true);
  195.40 +            if (uiProperties.getOutputBuildFormat().equalsIgnoreCase(AdaProjectProperties.NATIVE_FORMAT)) {
  195.41 +                nativeFormat.setSelected(true);
  195.42 +                jvmFormat.setSelected(false);
  195.43 +            }
  195.44 +            else {
  195.45 +                nativeFormat.setSelected(false);
  195.46 +                jvmFormat.setSelected(true);
  195.47 +            }
  195.48 +        }
  195.49 +        else {
  195.50 +            nativeFormat.setSelected(true);
  195.51 +            jvmFormat.setSelected(false);
  195.52 +            nativeFormat.setEnabled(false);
  195.53 +            jvmFormat.setEnabled(false);
  195.54 +        }
  195.55 +        
  195.56      }
  195.57  
  195.58      public HelpCtx getHelpCtx() {
  195.59 @@ -108,6 +129,9 @@
  195.60          platforms = new javax.swing.JComboBox();
  195.61          jLabel2 = new javax.swing.JLabel();
  195.62          manage = new javax.swing.JButton();
  195.63 +        jLabel3 = new javax.swing.JLabel();
  195.64 +        nativeFormat = new javax.swing.JRadioButton();
  195.65 +        jvmFormat = new javax.swing.JRadioButton();
  195.66  
  195.67          jLabel1.setLabelFor(mainModule);
  195.68          org.openide.awt.Mnemonics.setLocalizedText(jLabel1, org.openide.util.NbBundle.getMessage(CustomizerBuild.class, "CustomizerRun.mainModule.text")); // NOI18N
  195.69 @@ -137,39 +161,69 @@
  195.70              }
  195.71          });
  195.72  
  195.73 -        org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(this);
  195.74 +        jLabel3.setLabelFor(mainModule);
  195.75 +        org.openide.awt.Mnemonics.setLocalizedText(jLabel3, org.openide.util.NbBundle.getMessage(CustomizerBuild.class, "CustomizerBuild.jLabel3.text")); // NOI18N
  195.76 +
  195.77 +        nativeFormat.setText(org.openide.util.NbBundle.getMessage(CustomizerBuild.class, "CustomizerBuild.nativeFormat.text")); // NOI18N
  195.78 +        nativeFormat.addActionListener(new java.awt.event.ActionListener() {
  195.79 +            public void actionPerformed(java.awt.event.ActionEvent evt) {
  195.80 +                nativeFormatActionPerformed(evt);
  195.81 +            }
  195.82 +        });
  195.83 +
  195.84 +        jvmFormat.setText(org.openide.util.NbBundle.getMessage(CustomizerBuild.class, "CustomizerBuild.jvmFormat.text")); // NOI18N
  195.85 +        jvmFormat.addActionListener(new java.awt.event.ActionListener() {
  195.86 +            public void actionPerformed(java.awt.event.ActionEvent evt) {
  195.87 +                jvmFormatActionPerformed(evt);
  195.88 +            }
  195.89 +        });
  195.90 +
  195.91 +        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
  195.92          this.setLayout(layout);
  195.93          layout.setHorizontalGroup(
  195.94 -            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
  195.95 -            .add(layout.createSequentialGroup()
  195.96 +            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  195.97 +            .addGroup(layout.createSequentialGroup()
  195.98                  .addContainerGap()
  195.99 -                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
 195.100 -                    .add(jLabel1)
 195.101 -                    .add(jLabel2))
 195.102 -                .add(49, 49, 49)
 195.103 -                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
 195.104 -                    .add(platforms, 0, 323, Short.MAX_VALUE)
 195.105 -                    .add(mainModule, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 323, Short.MAX_VALUE))
 195.106 -                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
 195.107 -                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false)
 195.108 -                    .add(org.jdesktop.layout.GroupLayout.TRAILING, browse, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
 195.109 -                    .add(org.jdesktop.layout.GroupLayout.TRAILING, manage, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
 195.110 +                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 195.111 +                    .addGroup(layout.createSequentialGroup()
 195.112 +                        .addComponent(jLabel3)
 195.113 +                        .addGap(49, 49, 49)
 195.114 +                        .addComponent(nativeFormat)
 195.115 +                        .addGap(18, 18, 18)
 195.116 +                        .addComponent(jvmFormat))
 195.117 +                    .addGroup(layout.createSequentialGroup()
 195.118 +                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 195.119 +                            .addComponent(jLabel1)
 195.120 +                            .addComponent(jLabel2))
 195.121 +                        .addGap(49, 49, 49)
 195.122 +                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 195.123 +                            .addComponent(platforms, 0, 323, Short.MAX_VALUE)
 195.124 +                            .addComponent(mainModule, javax.swing.GroupLayout.DEFAULT_SIZE, 323, Short.MAX_VALUE))
 195.125 +                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 195.126 +                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
 195.127 +                            .addComponent(browse, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
 195.128 +                            .addComponent(manage, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
 195.129                  .addContainerGap())
 195.130          );
 195.131          layout.setVerticalGroup(
 195.132 -            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
 195.133 -            .add(layout.createSequentialGroup()
 195.134 -                .add(4, 4, 4)
 195.135 -                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
 195.136 -                    .add(platforms, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
 195.137 -                    .add(jLabel2)
 195.138 -                    .add(manage))
 195.139 -                .add(9, 9, 9)
 195.140 -                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
 195.141 -                    .add(jLabel1)
 195.142 -                    .add(browse)
 195.143 -                    .add(mainModule, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
 195.144 -                .addContainerGap(224, Short.MAX_VALUE))
 195.145 +            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 195.146 +            .addGroup(layout.createSequentialGroup()
 195.147 +                .addGap(4, 4, 4)
 195.148 +                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
 195.149 +                    .addComponent(platforms, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
 195.150 +                    .addComponent(jLabel2)
 195.151 +                    .addComponent(manage))
 195.152 +                .addGap(9, 9, 9)
 195.153 +                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
 195.154 +                    .addComponent(jLabel1)
 195.155 +                    .addComponent(browse)
 195.156 +                    .addComponent(mainModule, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
 195.157 +                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
 195.158 +                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
 195.159 +                    .addComponent(jLabel3)
 195.160 +                    .addComponent(nativeFormat)
 195.161 +                    .addComponent(jvmFormat))
 195.162 +                .addContainerGap(194, Short.MAX_VALUE))
 195.163          );
 195.164      }// </editor-fold>//GEN-END:initComponents
 195.165  
 195.166 @@ -183,12 +237,32 @@
 195.167  private void platformsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_platformsActionPerformed
 195.168      uiProperties.setActivePlatformId(
 195.169              ((AdaPlatform) platforms.getSelectedItem()).getName());
 195.170 +
 195.171 +    final AdaPlatform activePlatform = manager.getPlatform(uiProperties.getActivePlatformId());
 195.172 +    
 195.173 +    if (activePlatform.getJvmGnatCompilerCommand() != null) {
 195.174 +        nativeFormat.setEnabled(true);
 195.175 +        jvmFormat.setEnabled(true);
 195.176 +        if (uiProperties.getOutputBuildFormat().equalsIgnoreCase(AdaProjectProperties.NATIVE_FORMAT)) {
 195.177 +            nativeFormat.setSelected(true);
 195.178 +            jvmFormat.setSelected(false);
 195.179 +        } else {
 195.180 +            nativeFormat.setSelected(false);
 195.181 +            jvmFormat.setSelected(true);
 195.182 +        }
 195.183 +    } else {
 195.184 +        nativeFormat.setSelected(true);
 195.185 +        jvmFormat.setSelected(false);
 195.186 +        nativeFormat.setEnabled(false);
 195.187 +        jvmFormat.setEnabled(false);
 195.188 +        uiProperties.setOutputBuildFormat(AdaProjectProperties.NATIVE_FORMAT);
 195.189 +    }
 195.190 +
 195.191  }//GEN-LAST:event_platformsActionPerformed
 195.192  
 195.193  private void manageActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_manageActionPerformed
 195.194      // Workaround, Needs an API to display platform customizer
 195.195 -//    final FileObject fo = FileUtil.getConfigFile("Actions/Ada/org-netbeans-modules-ada-platform-PlatformsCustomizerAction.instance");  //NOI18N
 195.196 -    final FileObject fo = Repository.getDefault().getDefaultFileSystem().findResource("Actions/Ada/org-netbeans-modules-ada-platform-PlatformsCustomizerAction.instance");  //NOI18N
 195.197 +    final FileObject fo = FileUtil.getConfigFile("Actions/Ada/org-netbeans-modules-ada-platform-PlatformsCustomizerAction.instance");  //NOI18N
 195.198      if (fo != null) {
 195.199          try {
 195.200              InstanceDataObject ido = (InstanceDataObject) DataObject.find(fo);
 195.201 @@ -202,12 +276,26 @@
 195.202          }
 195.203      }
 195.204  }//GEN-LAST:event_manageActionPerformed
 195.205 +
 195.206 +private void nativeFormatActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_nativeFormatActionPerformed
 195.207 +    uiProperties.setOutputBuildFormat(AdaProjectProperties.NATIVE_FORMAT);
 195.208 +    jvmFormat.setSelected(false);
 195.209 +}//GEN-LAST:event_nativeFormatActionPerformed
 195.210 +
 195.211 +private void jvmFormatActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jvmFormatActionPerformed
 195.212 +    uiProperties.setOutputBuildFormat(AdaProjectProperties.JVM_FORMAT);
 195.213 +    nativeFormat.setSelected(false);
 195.214 +}//GEN-LAST:event_jvmFormatActionPerformed
 195.215 +
 195.216      // Variables declaration - do not modify//GEN-BEGIN:variables
 195.217      private javax.swing.JButton browse;
 195.218      private javax.swing.JLabel jLabel1;
 195.219      private javax.swing.JLabel jLabel2;
 195.220 +    private javax.swing.JLabel jLabel3;
 195.221 +    private javax.swing.JRadioButton jvmFormat;
 195.222      private javax.swing.JTextField mainModule;
 195.223      private javax.swing.JButton manage;
 195.224 +    private javax.swing.JRadioButton nativeFormat;
 195.225      private javax.swing.JComboBox platforms;
 195.226      // End of variables declaration//GEN-END:variables
 195.227  
   196.1 --- a/ada.project/src/org/netbeans/modules/ada/project/ui/properties/CustomizerLibrariesPath.form	Tue Oct 02 21:55:21 2012 -0400
   196.2 +++ b/ada.project/src/org/netbeans/modules/ada/project/ui/properties/CustomizerLibrariesPath.form	Mon Oct 15 23:38:26 2012 +0200
   196.3 @@ -1,4 +1,4 @@
   196.4 -<?xml version="1.0" encoding="UTF-8" ?>
   196.5 +<?xml version="1.1" encoding="UTF-8" ?>
   196.6  
   196.7  <Form version="1.5" maxVersion="1.7" type="org.netbeans.modules.form.forminfo.JPanelFormInfo">
   196.8    <AuxValues>
   196.9 @@ -7,7 +7,7 @@
  196.10      <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
  196.11      <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
  196.12      <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="true"/>
  196.13 -    <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="2"/>
  196.14 +    <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
  196.15      <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
  196.16      <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
  196.17      <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
   197.1 --- a/ada.project/src/org/netbeans/modules/ada/project/ui/properties/CustomizerLibrariesPath.java	Tue Oct 02 21:55:21 2012 -0400
   197.2 +++ b/ada.project/src/org/netbeans/modules/ada/project/ui/properties/CustomizerLibrariesPath.java	Mon Oct 15 23:38:26 2012 +0200
   197.3 @@ -113,38 +113,38 @@
   197.4  
   197.5          jLabel2.setText(org.openide.util.NbBundle.getMessage(CustomizerLibrariesPath.class, "CustomizerLibrariesPath.jLabel2.text")); // NOI18N
   197.6  
   197.7 -        org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(this);
   197.8 +        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
   197.9          this.setLayout(layout);
  197.10          layout.setHorizontalGroup(
  197.11 -            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
  197.12 -            .add(layout.createSequentialGroup()
  197.13 -                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
  197.14 -                    .add(layout.createSequentialGroup()
  197.15 -                        .add(jScrollPane2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 407, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
  197.16 -                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
  197.17 -                        .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
  197.18 -                            .add(moveDownAdaPath, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 123, Short.MAX_VALUE)
  197.19 -                            .add(moveUpAdaPath, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 123, Short.MAX_VALUE)
  197.20 -                            .add(removeAdaPath, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 123, Short.MAX_VALUE)
  197.21 -                            .add(addAdaPath, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 123, Short.MAX_VALUE)))
  197.22 -                    .add(jLabel2))
  197.23 +            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  197.24 +            .addGroup(layout.createSequentialGroup()
  197.25 +                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  197.26 +                    .addGroup(layout.createSequentialGroup()
  197.27 +                        .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 407, javax.swing.GroupLayout.PREFERRED_SIZE)
  197.28 +                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  197.29 +                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  197.30 +                            .addComponent(moveDownAdaPath, javax.swing.GroupLayout.DEFAULT_SIZE, 123, Short.MAX_VALUE)
  197.31 +                            .addComponent(moveUpAdaPath, javax.swing.GroupLayout.DEFAULT_SIZE, 123, Short.MAX_VALUE)
  197.32 +                            .addComponent(removeAdaPath, javax.swing.GroupLayout.DEFAULT_SIZE, 123, Short.MAX_VALUE)
  197.33 +                            .addComponent(addAdaPath, javax.swing.GroupLayout.DEFAULT_SIZE, 123, Short.MAX_VALUE)))
  197.34 +                    .addComponent(jLabel2))
  197.35                  .addContainerGap())
  197.36          );
  197.37          layout.setVerticalGroup(
  197.38 -            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
  197.39 -            .add(layout.createSequentialGroup()
  197.40 -                .add(jLabel2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 16, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
  197.41 -                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
  197.42 -                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
  197.43 -                    .add(layout.createSequentialGroup()
  197.44 -                        .add(addAdaPath)
  197.45 -                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
  197.46 -                        .add(removeAdaPath)
  197.47 -                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
  197.48 -                        .add(moveUpAdaPath)
  197.49 -                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
  197.50 -                        .add(moveDownAdaPath))
  197.51 -                    .add(jScrollPane2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 264, Short.MAX_VALUE))
  197.52 +            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  197.53 +            .addGroup(layout.createSequentialGroup()
  197.54 +                .addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 16, javax.swing.GroupLayout.PREFERRED_SIZE)
  197.55 +                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  197.56 +                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  197.57 +                    .addGroup(layout.createSequentialGroup()
  197.58 +                        .addComponent(addAdaPath)
  197.59 +                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  197.60 +                        .addComponent(removeAdaPath)
  197.61 +                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  197.62 +                        .addComponent(moveUpAdaPath)
  197.63 +                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  197.64 +                        .addComponent(moveDownAdaPath))
  197.65 +                    .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 264, Short.MAX_VALUE))
  197.66                  .addContainerGap())
  197.67          );
  197.68      }// </editor-fold>//GEN-END:initComponents
   198.1 --- a/ada.project/src/org/netbeans/modules/ada/project/ui/properties/CustomizerRun.form	Tue Oct 02 21:55:21 2012 -0400
   198.2 +++ b/ada.project/src/org/netbeans/modules/ada/project/ui/properties/CustomizerRun.form	Mon Oct 15 23:38:26 2012 +0200
   198.3 @@ -1,4 +1,4 @@
   198.4 -<?xml version="1.0" encoding="UTF-8" ?>
   198.5 +<?xml version="1.1" encoding="UTF-8" ?>
   198.6  
   198.7  <Form version="1.5" maxVersion="1.6" type="org.netbeans.modules.form.forminfo.JPanelFormInfo">
   198.8    <AuxValues>
   198.9 @@ -7,7 +7,7 @@
  198.10      <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
  198.11      <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
  198.12      <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="true"/>
  198.13 -    <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="2"/>
  198.14 +    <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
  198.15      <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
  198.16      <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
  198.17      <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
   199.1 --- a/ada.project/src/org/netbeans/modules/ada/project/ui/properties/CustomizerRun.java	Tue Oct 02 21:55:21 2012 -0400
   199.2 +++ b/ada.project/src/org/netbeans/modules/ada/project/ui/properties/CustomizerRun.java	Mon Oct 15 23:38:26 2012 +0200
   199.3 @@ -99,30 +99,30 @@
   199.4          jLabel2.setLabelFor(appArgs);
   199.5          org.openide.awt.Mnemonics.setLocalizedText(jLabel2, org.openide.util.NbBundle.getMessage(CustomizerRun.class, "CustomizerRun.appArgs.text")); // NOI18N
   199.6  
   199.7 -        org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(this);
   199.8 +        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
   199.9          this.setLayout(layout);
  199.10          layout.setHorizontalGroup(
  199.11 -            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
  199.12 -            .add(layout.createSequentialGroup()
  199.13 -                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
  199.14 -                    .add(jLabel2)
  199.15 -                    .add(jLabel1))
  199.16 -                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
  199.17 -                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
  199.18 -                    .add(executableFile, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 333, Short.MAX_VALUE)
  199.19 -                    .add(appArgs, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 333, Short.MAX_VALUE))
  199.20 -                .add(99, 99, 99))
  199.21 +            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  199.22 +            .addGroup(layout.createSequentialGroup()
  199.23 +                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  199.24 +                    .addComponent(jLabel2)
  199.25 +                    .addComponent(jLabel1))
  199.26 +                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  199.27 +                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  199.28 +                    .addComponent(executableFile, javax.swing.GroupLayout.DEFAULT_SIZE, 333, Short.MAX_VALUE)
  199.29 +                    .addComponent(appArgs, javax.swing.GroupLayout.DEFAULT_SIZE, 333, Short.MAX_VALUE))
  199.30 +                .addGap(99, 99, 99))
  199.31          );
  199.32          layout.setVerticalGroup(
  199.33 -            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
  199.34 -            .add(layout.createSequentialGroup()
  199.35 -                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
  199.36 -                    .add(jLabel1)
  199.37 -                    .add(executableFile, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
  199.38 -                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
  199.39 -                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
  199.40 -                    .add(jLabel2)
  199.41 -                    .add(appArgs, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
  199.42 +            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  199.43 +            .addGroup(layout.createSequentialGroup()
  199.44 +                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  199.45 +                    .addComponent(jLabel1)
  199.46 +                    .addComponent(executableFile, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
  199.47 +                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  199.48 +                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  199.49 +                    .addComponent(jLabel2)
  199.50 +                    .addComponent(appArgs, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
  199.51                  .addContainerGap(237, Short.MAX_VALUE))
  199.52          );
  199.53      }// </editor-fold>//GEN-END:initComponents
   200.1 Binary file ada.project/src/org/netbeans/modules/ada/project/ui/resources/adb-16.png has changed
   201.1 Binary file ada.project/src/org/netbeans/modules/ada/project/ui/resources/ads-16.png has changed
   202.1 --- a/ada.project/src/org/netbeans/modules/ada/project/ui/wizards/Bundle.properties	Tue Oct 02 21:55:21 2012 -0400
   202.2 +++ b/ada.project/src/org/netbeans/modules/ada/project/ui/wizards/Bundle.properties	Mon Oct 15 23:38:26 2012 +0200
   202.3 @@ -56,7 +56,7 @@
   202.4  # PanelOptionsVisual
   202.5  TXT_MainFileName={0}
   202.6  ERROR_IllegalMainFileName=Illegal main file name.
   202.7 -LBL_setAsMainCheckBox=Set as &Main Project
   202.8 +LBL_setAsMainCheckBox=Set as Main Project
   202.9  LBL_createMainCheckBox=&Create Main File
  202.10  
  202.11  # PanelConfigureProjectVisual
  202.12 @@ -80,3 +80,4 @@
  202.13  ERR_AlreadyAnProject="There is already a NetBeans project in the project folder."
  202.14  ExistingAdaProjectPanelVisual.projectName.text=Project &Name:
  202.15  ExistingAdaProjectPanelVisual.projectFolder.text=Project &Folder:
  202.16 +ACSD_createMainCheckBox=null
   203.1 --- a/ada.project/src/org/netbeans/modules/ada/project/ui/wizards/EmptyAdaProjectPanelVisual.form	Tue Oct 02 21:55:21 2012 -0400
   203.2 +++ b/ada.project/src/org/netbeans/modules/ada/project/ui/wizards/EmptyAdaProjectPanelVisual.form	Mon Oct 15 23:38:26 2012 +0200
   203.3 @@ -1,4 +1,4 @@
   203.4 -<?xml version="1.0" encoding="UTF-8" ?>
   203.5 +<?xml version="1.1" encoding="UTF-8" ?>
   203.6  
   203.7  <Form version="1.3" maxVersion="1.3" type="org.netbeans.modules.form.forminfo.JPanelFormInfo">
   203.8    <AuxValues>
   203.9 @@ -7,7 +7,7 @@
  203.10      <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
  203.11      <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="true"/>
  203.12      <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
  203.13 -    <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="2"/>
  203.14 +    <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
  203.15      <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
  203.16      <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
  203.17      <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
   204.1 --- a/ada.project/src/org/netbeans/modules/ada/project/ui/wizards/EmptyAdaProjectPanelVisual.java	Tue Oct 02 21:55:21 2012 -0400
   204.2 +++ b/ada.project/src/org/netbeans/modules/ada/project/ui/wizards/EmptyAdaProjectPanelVisual.java	Mon Oct 15 23:38:26 2012 +0200
   204.3 @@ -101,40 +101,40 @@
   204.4  
   204.5          createdFolderTextField.setEditable(false);
   204.6  
   204.7 -        org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(this);
   204.8 +        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
   204.9          this.setLayout(layout);
  204.10          layout.setHorizontalGroup(
  204.11 -            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
  204.12 -            .add(layout.createSequentialGroup()
  204.13 -                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
  204.14 -                    .add(projectLocationLabel)
  204.15 -                    .add(createdFolderLabel)
  204.16 -                    .add(projectNameLabel))
  204.17 -                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
  204.18 -                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
  204.19 -                    .add(layout.createSequentialGroup()
  204.20 -                        .add(projectLocationTextField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 249, Short.MAX_VALUE)
  204.21 -                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
  204.22 -                        .add(browseButton))
  204.23 -                    .add(projectNameTextField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 343, Short.MAX_VALUE)
  204.24 -                    .add(createdFolderTextField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 343, Short.MAX_VALUE)))
  204.25 +            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  204.26 +            .addGroup(layout.createSequentialGroup()
  204.27 +                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  204.28 +                    .addComponent(projectLocationLabel)
  204.29 +                    .addComponent(createdFolderLabel)
  204.30 +                    .addComponent(projectNameLabel))
  204.31 +                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  204.32 +                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  204.33 +                    .addGroup(layout.createSequentialGroup()
  204.34 +                        .addComponent(projectLocationTextField, javax.swing.GroupLayout.DEFAULT_SIZE, 258, Short.MAX_VALUE)
  204.35 +                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  204.36 +                        .addComponent(browseButton))
  204.37 +                    .addComponent(projectNameTextField, javax.swing.GroupLayout.DEFAULT_SIZE, 343, Short.MAX_VALUE)
  204.38 +                    .addComponent(createdFolderTextField, javax.swing.GroupLayout.DEFAULT_SIZE, 343, Short.MAX_VALUE)))
  204.39          );
  204.40          layout.setVerticalGroup(
  204.41 -            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
  204.42 -            .add(layout.createSequentialGroup()
  204.43 -                .add(20, 20, 20)
  204.44 -                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
  204.45 -                    .add(projectNameLabel)
  204.46 -                    .add(projectNameTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
  204.47 -                .add(8, 8, 8)
  204.48 -                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
  204.49 -                    .add(projectLocationLabel)
  204.50 -                    .add(browseButton)
  204.51 -                    .add(projectLocationTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
  204.52 -                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
  204.53 -                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
  204.54 -                    .add(createdFolderLabel)
  204.55 -                    .add(createdFolderTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
  204.56 +            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  204.57 +            .addGroup(layout.createSequentialGroup()
  204.58 +                .addGap(20, 20, 20)
  204.59 +                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  204.60 +                    .addComponent(projectNameLabel)
  204.61 +                    .addComponent(projectNameTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
  204.62 +                .addGap(8, 8, 8)
  204.63 +                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  204.64 +                    .addComponent(projectLocationLabel)
  204.65 +                    .addComponent(browseButton)
  204.66 +                    .addComponent(projectLocationTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
  204.67 +                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  204.68 +                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  204.69 +                    .addComponent(createdFolderLabel)
  204.70 +                    .addComponent(createdFolderTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
  204.71                  .addContainerGap(31, Short.MAX_VALUE))
  204.72          );
  204.73      }// </editor-fold>//GEN-END:initComponents
  204.74 @@ -143,7 +143,7 @@
  204.75          String command = evt.getActionCommand();
  204.76          if ("BROWSE".equals(command)) {
  204.77              JFileChooser chooser = new JFileChooser();
  204.78 -            FileUtil.preventFileChooserSymlinkTraversal(chooser, null);
  204.79 +//            FileUtil.preventFileChooserSymlinkTraversal(chooser, null);
  204.80              chooser.setDialogTitle("Select Project Location");
  204.81              chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
  204.82              String path = this.projectLocationTextField.getText();
  204.83 @@ -238,7 +238,7 @@
  204.84  
  204.85          String projectName = (String) settings.getProperty(NewAdaProjectWizardIterator.PROP_PROJECT_NAME);
  204.86          if (projectName == null) {
  204.87 -            projectName = NewAdaProjectWizardIterator.getFreeFolderName(projectLocation,"NewAdaApplication"); //NOI18N
  204.88 +            projectName = NewAdaProjectWizardIterator.getFreeFolderName(projectLocation,"AdaApplication"); //NOI18N
  204.89          }
  204.90          this.projectNameTextField.setText(projectName);
  204.91          this.projectNameTextField.selectAll();
   205.1 --- a/ada.project/src/org/netbeans/modules/ada/project/ui/wizards/ExistingAdaProjectPanelVisual.form	Tue Oct 02 21:55:21 2012 -0400
   205.2 +++ b/ada.project/src/org/netbeans/modules/ada/project/ui/wizards/ExistingAdaProjectPanelVisual.form	Mon Oct 15 23:38:26 2012 +0200
   205.3 @@ -1,4 +1,4 @@
   205.4 -<?xml version="1.0" encoding="UTF-8" ?>
   205.5 +<?xml version="1.1" encoding="UTF-8" ?>
   205.6  
   205.7  <Form version="1.5" maxVersion="1.6" type="org.netbeans.modules.form.forminfo.JPanelFormInfo">
   205.8    <AuxValues>
   205.9 @@ -7,7 +7,7 @@
  205.10      <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
  205.11      <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
  205.12      <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="true"/>
  205.13 -    <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="2"/>
  205.14 +    <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
  205.15      <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
  205.16      <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
  205.17      <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
   206.1 --- a/ada.project/src/org/netbeans/modules/ada/project/ui/wizards/ExistingAdaProjectPanelVisual.java	Tue Oct 02 21:55:21 2012 -0400
   206.2 +++ b/ada.project/src/org/netbeans/modules/ada/project/ui/wizards/ExistingAdaProjectPanelVisual.java	Mon Oct 15 23:38:26 2012 +0200
   206.3 @@ -101,42 +101,42 @@
   206.4              }
   206.5          });
   206.6  
   206.7 -        org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(this);
   206.8 +        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
   206.9          this.setLayout(layout);
  206.10          layout.setHorizontalGroup(
  206.11 -            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
  206.12 -            .add(layout.createSequentialGroup()
  206.13 -                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
  206.14 -                    .add(jLabel2)
  206.15 -                    .add(jLabel1))
  206.16 -                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
  206.17 -                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
  206.18 -                    .add(layout.createSequentialGroup()
  206.19 -                        .add(projectFolderTextField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 276, Short.MAX_VALUE)
  206.20 -                        .add(1, 1, 1)
  206.21 -                        .add(browse))
  206.22 -                    .add(projectNameTextField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 344, Short.MAX_VALUE))
  206.23 +            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  206.24 +            .addGroup(layout.createSequentialGroup()
  206.25 +                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  206.26 +                    .addComponent(jLabel2)
  206.27 +                    .addComponent(jLabel1))
  206.28 +                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  206.29 +                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  206.30 +                    .addGroup(layout.createSequentialGroup()
  206.31 +                        .addComponent(projectFolderTextField, javax.swing.GroupLayout.DEFAULT_SIZE, 276, Short.MAX_VALUE)
  206.32 +                        .addGap(1, 1, 1)
  206.33 +                        .addComponent(browse))
  206.34 +                    .addComponent(projectNameTextField, javax.swing.GroupLayout.DEFAULT_SIZE, 344, Short.MAX_VALUE))
  206.35                  .addContainerGap())
  206.36          );
  206.37          layout.setVerticalGroup(
  206.38 -            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
  206.39 -            .add(layout.createSequentialGroup()
  206.40 +            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  206.41 +            .addGroup(layout.createSequentialGroup()
  206.42                  .addContainerGap()
  206.43 -                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
  206.44 -                    .add(jLabel1)
  206.45 -                    .add(projectNameTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
  206.46 -                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
  206.47 -                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
  206.48 -                    .add(jLabel2)
  206.49 -                    .add(projectFolderTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
  206.50 -                    .add(browse))
  206.51 +                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  206.52 +                    .addComponent(jLabel1)
  206.53 +                    .addComponent(projectNameTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
  206.54 +                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  206.55 +                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  206.56 +                    .addComponent(jLabel2)
  206.57 +                    .addComponent(projectFolderTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  206.58 +                    .addComponent(browse))
  206.59                  .addContainerGap(29, Short.MAX_VALUE))
  206.60          );
  206.61      }// </editor-fold>//GEN-END:initComponents
  206.62  
  206.63      private void browseAction(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_browseAction
  206.64          JFileChooser chooser = new JFileChooser();
  206.65 -        FileUtil.preventFileChooserSymlinkTraversal(chooser, null);
  206.66 +//        FileUtil.preventFileChooserSymlinkTraversal(chooser, null);
  206.67          chooser.setDialogTitle(NbBundle.getMessage(ExistingAdaProjectPanelVisual.class, "LBL_SelectProjectFolder"));
  206.68          chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
  206.69          String path = this.projectFolderTextField.getText();
  206.70 @@ -176,7 +176,7 @@
  206.71          File projectLocation = (File) settings.getProperty(NewAdaProjectWizardIterator.PROP_PROJECT_LOCATION);
  206.72          String defaultName = null;
  206.73          if (projectLocation == null || projectLocation.getParentFile() == null || !projectLocation.getParentFile().isDirectory()) {
  206.74 -            defaultName = NewAdaProjectWizardIterator.getFreeFolderName(ProjectChooser.getProjectsFolder(), "NewAdaApplication");     //NOI18N
  206.75 +            defaultName = NewAdaProjectWizardIterator.getFreeFolderName(ProjectChooser.getProjectsFolder(), "AdaApplication");     //NOI18N
  206.76              projectLocation = new File (ProjectChooser.getProjectsFolder(),defaultName);
  206.77          }
  206.78          this.projectFolderTextField.setText(projectLocation.getAbsolutePath());
   207.1 --- a/ada.project/src/org/netbeans/modules/ada/project/ui/wizards/NewAdaProjectWizardIterator.java	Tue Oct 02 21:55:21 2012 -0400
   207.2 +++ b/ada.project/src/org/netbeans/modules/ada/project/ui/wizards/NewAdaProjectWizardIterator.java	Mon Oct 15 23:38:26 2012 +0200
   207.3 @@ -48,6 +48,7 @@
   207.4  import java.util.Map;
   207.5  import java.util.NoSuchElementException;
   207.6  import java.util.Set;
   207.7 +import java.util.StringTokenizer;
   207.8  import javax.swing.event.ChangeListener;
   207.9  import org.netbeans.api.progress.ProgressHandle;
  207.10  import org.netbeans.api.project.Project;
  207.11 @@ -64,7 +65,6 @@
  207.12  import org.openide.WizardDescriptor;
  207.13  import org.openide.filesystems.FileObject;
  207.14  import org.openide.filesystems.FileUtil;
  207.15 -import org.openide.filesystems.Repository;
  207.16  import org.openide.loaders.DataFolder;
  207.17  import org.openide.loaders.DataObject;
  207.18  import org.openide.util.Exceptions;
  207.19 @@ -74,7 +74,7 @@
  207.20  import org.w3c.dom.Document;
  207.21  import org.w3c.dom.Element;
  207.22  
  207.23 -public class NewAdaProjectWizardIterator implements WizardDescriptor.ProgressInstantiatingIterator {
  207.24 +public class NewAdaProjectWizardIterator implements WizardDescriptor.ProgressInstantiatingIterator<WizardDescriptor> {
  207.25  
  207.26      static final String SET_AS_MAIN = "setAsMain"; //NOI18N
  207.27      static final String MAIN_FILE = "mainFile"; //NOI18N
  207.28 @@ -97,7 +97,7 @@
  207.29      }
  207.30      private final WizardType wizardType;
  207.31      private WizardDescriptor descriptor;
  207.32 -    private WizardDescriptor.Panel[] panels;
  207.33 +    private WizardDescriptor.Panel<WizardDescriptor>[] panels;
  207.34      private int index;
  207.35  
  207.36      public NewAdaProjectWizardIterator() {
  207.37 @@ -116,6 +116,7 @@
  207.38          return new NewAdaProjectWizardIterator(WizardType.EXISTING);
  207.39      }
  207.40  
  207.41 +    @Override
  207.42      public void initialize(WizardDescriptor wizard) {
  207.43          descriptor = wizard;
  207.44          index = 0;
  207.45 @@ -124,17 +125,20 @@
  207.46          initDescriptor(wizard);
  207.47      }
  207.48  
  207.49 +    @Override
  207.50      public void uninitialize(WizardDescriptor wizard) {
  207.51          panels = null;
  207.52          descriptor = null;
  207.53      }
  207.54  
  207.55 -    public Set instantiate() throws IOException {
  207.56 +    @Override
  207.57 +    public Set<FileObject> instantiate() throws IOException {
  207.58          assert false : "Cannot call this method if implements WizardDescriptor.ProgressInstantiatingIterator.";
  207.59          return null;
  207.60      }
  207.61  
  207.62 -    public Set instantiate(ProgressHandle handle) throws IOException {
  207.63 +    @Override
  207.64 +    public Set<FileObject> instantiate(ProgressHandle handle) throws IOException {
  207.65          final Set<FileObject> resultSet = new HashSet<FileObject>();
  207.66  
  207.67          handle.start(5);
  207.68 @@ -163,8 +167,8 @@
  207.69              // main file
  207.70              final String mainName = (String) descriptor.getProperty(NewAdaProjectWizardIterator.MAIN_FILE);
  207.71              if (mainName != null) {
  207.72 -                resultSet.add(createMainFile(Repository.getDefault().getDefaultFileSystem().findResource("Templates/Ada/NewAdaMain"),
  207.73 -                        sourceDir, mainName).getPrimaryFile());
  207.74 +                resultSet.add(createMainFile(FileUtil.getConfigFile("Templates/Ada/NewMain"),
  207.75 +                        sourceDir, removeSpaces(mainName)).getPrimaryFile());
  207.76              }
  207.77          }
  207.78  
  207.79 @@ -175,18 +179,22 @@
  207.80          return resultSet;
  207.81      }
  207.82  
  207.83 +    @Override
  207.84      public String name() {
  207.85          return NbBundle.getMessage(NewAdaProjectWizardIterator.class, "LBL_IteratorName", index + 1, panels.length);
  207.86      }
  207.87  
  207.88 +    @Override
  207.89      public boolean hasNext() {
  207.90          return index < panels.length - 1;
  207.91      }
  207.92  
  207.93 +    @Override
  207.94      public boolean hasPrevious() {
  207.95          return index > 0;
  207.96      }
  207.97  
  207.98 +    @Override
  207.99      public void nextPanel() {
 207.100          if (!hasNext()) {
 207.101              throw new NoSuchElementException();
 207.102 @@ -194,6 +202,7 @@
 207.103          index++;
 207.104      }
 207.105  
 207.106 +    @Override
 207.107      public void previousPanel() {
 207.108          if (!hasPrevious()) {
 207.109              throw new NoSuchElementException();
 207.110 @@ -201,7 +210,8 @@
 207.111          index--;
 207.112      }
 207.113  
 207.114 -    public WizardDescriptor.Panel current() {
 207.115 +    @Override
 207.116 +    public WizardDescriptor.Panel<WizardDescriptor> current() {
 207.117          // wizard title
 207.118          String title = NbBundle.getMessage(NewAdaProjectWizardIterator.class, wizardType == WizardType.NEW ? "TXT_AdaProject" : "TXT_ExistingAdaProject");
 207.119          descriptor.putProperty("NewProjectWizard_Title", title); // NOI18N
 207.120 @@ -228,15 +238,26 @@
 207.121          return freeName;
 207.122      }
 207.123  
 207.124 -    private WizardDescriptor.Panel[] createPanels() {
 207.125 +    private String removeSpaces(String s) {
 207.126 +        StringTokenizer st = new StringTokenizer(s, " ", false);
 207.127 +        String t = "";
 207.128 +        while (st.hasMoreElements()) {
 207.129 +            t += st.nextElement();
 207.130 +        }
 207.131 +        return t;
 207.132 +    }
 207.133 +
 207.134 +    private WizardDescriptor.Panel<WizardDescriptor>[] createPanels() {
 207.135          switch (wizardType) {
 207.136              case NEW: {
 207.137                  String[] steps = new String[]{
 207.138                      NbBundle.getBundle(NewAdaProjectWizardIterator.class).getString("LBL_ProjectNameLocation"),};
 207.139  
 207.140                  PanelConfigureProject configureProjectPanel = new PanelConfigureProject(wizardType, steps);
 207.141 -                return new WizardDescriptor.Panel[]{
 207.142 -                            configureProjectPanel,};
 207.143 +                @SuppressWarnings("unchecked") // Generic Array Creation
 207.144 +                WizardDescriptor.Panel<WizardDescriptor>[] pnls = new WizardDescriptor.Panel[]{
 207.145 +                    configureProjectPanel,};
 207.146 +                return pnls;
 207.147              }
 207.148              case EXISTING: {
 207.149                  String[] steps = new String[]{
 207.150 @@ -245,9 +266,11 @@
 207.151  
 207.152                  PanelConfigureProject configureProjectPanel = new PanelConfigureProject(wizardType, steps);
 207.153                  PanelConfigureSources configureSourcesPanel = new PanelConfigureSources(wizardType, steps);
 207.154 -                return new WizardDescriptor.Panel[]{
 207.155 +                @SuppressWarnings("unchecked") // Generic Array Creation
 207.156 +                WizardDescriptor.Panel<WizardDescriptor>[] pnls = new WizardDescriptor.Panel[]{
 207.157                              configureProjectPanel,
 207.158                              configureSourcesPanel,};
 207.159 +                return pnls;
 207.160              }
 207.161              default:
 207.162                  throw new IllegalStateException(wizardType.toString());
 207.163 @@ -279,7 +302,6 @@
 207.164                          nameEl.appendChild(doc.createTextNode(name));
 207.165                          data.appendChild(nameEl);
 207.166  
 207.167 -
 207.168                          EditableProperties properties = helper.getProperties(AntProjectHelper.PROJECT_PROPERTIES_PATH);
 207.169  
 207.170                          configureSources(helper, data, properties);
 207.171 @@ -351,11 +373,11 @@
 207.172          String platformId = (String) descriptor.getProperty(PROP_PLATFORM_ID);
 207.173          assert platformId != null;
 207.174          properties.setProperty(AdaProjectProperties.ACTIVE_PLATFORM, platformId);
 207.175 -        properties.setProperty(AdaProjectProperties.ADA_LIB_PATH, "");    //NOI18N
 207.176 -        final File projectDirectory = FileUtil.toFile(helper.getProjectDirectory());
 207.177 -        String buildPath = projectDirectory + File.separator + DEFAULT_BUILD_DIR;
 207.178 +        properties.setProperty(AdaProjectProperties.OUTPUT_BUILD_FORMAT, AdaProjectProperties.NATIVE_FORMAT);
 207.179 +        properties.setProperty(AdaProjectProperties.ADA_LIB_PATH, ""); //NOI18N
 207.180 +        String buildPath = DEFAULT_BUILD_DIR;
 207.181          properties.setProperty(AdaProjectProperties.BUILD_DIR, buildPath);
 207.182 -        String distPath = projectDirectory + File.separator + DEFAULT_DIST_DIR;
 207.183 +        String distPath = DEFAULT_DIST_DIR;
 207.184          properties.setProperty(AdaProjectProperties.DIST_DIR, distPath);
 207.185      }
 207.186  
   208.1 --- a/ada.project/src/org/netbeans/modules/ada/project/ui/wizards/NewFileWizardIterator.java	Tue Oct 02 21:55:21 2012 -0400
   208.2 +++ b/ada.project/src/org/netbeans/modules/ada/project/ui/wizards/NewFileWizardIterator.java	Mon Oct 15 23:38:26 2012 +0200
   208.3 @@ -79,14 +79,17 @@
   208.4      private WizardDescriptor.Panel<WizardDescriptor>[] getPanels() {
   208.5          Project p = Templates.getProject(wizard);
   208.6          final SourceGroup[] groups = Utils.getSourceGroups(p);
   208.7 -        WizardDescriptor.Panel<WizardDescriptor> simpleTargetChooserPanel = Templates.createSimpleTargetChooser(p, groups);
   208.8 +        WizardDescriptor.Panel<WizardDescriptor> simpleTargetChooserPanel = Templates.buildSimpleTargetChooser(p, groups).create();
   208.9          FileObject template = Templates.getTemplate(wizard);
  208.10  
  208.11 -        return new WizardDescriptor.Panel[]{
  208.12 -                    simpleTargetChooserPanel
  208.13 -                };
  208.14 +        @SuppressWarnings("unchecked") // Generic Array Creation
  208.15 +        WizardDescriptor.Panel<WizardDescriptor>[] panels = new WizardDescriptor.Panel[] {
  208.16 +            simpleTargetChooserPanel
  208.17 +        };
  208.18 +        return panels;
  208.19      }
  208.20  
  208.21 +    @Override
  208.22      public Set instantiate() throws IOException {
  208.23          FileObject dir = Templates.getTargetFolder(wizard);
  208.24          FileObject template = Templates.getTemplate(wizard);
  208.25 @@ -118,6 +121,7 @@
  208.26          return Collections.<FileObject>singleton(createdFile.getPrimaryFile());
  208.27      }
  208.28  
  208.29 +    @Override
  208.30      public void initialize(WizardDescriptor wizard) {
  208.31          this.wizard = wizard;
  208.32          FileObject targetFolder = Templates.getTargetFolder(wizard);
  208.33 @@ -135,19 +139,24 @@
  208.34          FileObject template = Templates.getTemplate(this.wizard);
  208.35          String ext = template.getExt();
  208.36          String postfix = "";
  208.37 -        if (template.getName().startsWith("NewAdaMain")) {
  208.38 -            ext = AdaOptions.getInstance().getSeparateExt();
  208.39 -            postfix = AdaOptions.getInstance().getSeparatePostfix();
  208.40 -        } else if (template.getName().startsWith("NewAdaPackageSpec")) {
  208.41 -            ext = AdaOptions.getInstance().getPkgSpecExt();
  208.42 -            postfix = AdaOptions.getInstance().getPkgSpecPostfix();
  208.43 -        } else if (template.getName().startsWith("NewAdaPackageBody")) {
  208.44 -            ext = AdaOptions.getInstance().getPkgBodyExt();
  208.45 -            postfix = AdaOptions.getInstance().getPkgBodyPostfix();
  208.46 +
  208.47 +        Project project = Templates.getProject(wizard);
  208.48 +        assert project instanceof AdaProject;
  208.49 +        AdaProject adaProject = (AdaProject) project;
  208.50 +
  208.51 +        if (template.getName().startsWith("NewMain")) {
  208.52 +            ext = adaProject.getEvaluator().getProperty(AdaOptions.SEPARATE_EXT);
  208.53 +            postfix = adaProject.getEvaluator().getProperty(AdaOptions.SEPARATE_POSTFIX);
  208.54 +        } else if (template.getName().startsWith("NewPackageSpec")) {
  208.55 +            ext = adaProject.getEvaluator().getProperty(AdaOptions.PKG_SPEC_EXT);
  208.56 +            postfix = adaProject.getEvaluator().getProperty(AdaOptions.PKG_SPEC_POSTFIX);
  208.57 +        } else if (template.getName().startsWith("NewPackageBody")) {
  208.58 +            ext = adaProject.getEvaluator().getProperty(AdaOptions.PKG_BODY_EXT);
  208.59 +            postfix = adaProject.getEvaluator().getProperty(AdaOptions.PKG_BODY_POSTFIX);
  208.60          }
  208.61          String targetName = (targetFolder != null) ? FileUtil.findFreeFileName(targetFolder, template.getName(), ext) : template.getName();//NOI18N
  208.62          // TODO: manage postfix naming
  208.63 -        targetName += /*postfix + */"." + ext;
  208.64 +        targetName += "." + ext;
  208.65          Templates.setTargetName(this.wizard, targetName);//NOI18N
  208.66          wizardPanels = getPanels();
  208.67  
  208.68 @@ -178,26 +187,32 @@
  208.69          return res;
  208.70      }
  208.71  
  208.72 +    @Override
  208.73      public void uninitialize(WizardDescriptor wizard) {
  208.74          wizardPanels = null;
  208.75      }
  208.76  
  208.77 +    @Override
  208.78      public WizardDescriptor.Panel current() {
  208.79          return wizardPanels[index];
  208.80      }
  208.81  
  208.82 +    @Override
  208.83      public String name() {
  208.84          return index + 1 + ". from " + getPanels().length;
  208.85      }
  208.86  
  208.87 +    @Override
  208.88      public boolean hasNext() {
  208.89          return index < getPanels().length - 1;
  208.90      }
  208.91  
  208.92 +    @Override
  208.93      public boolean hasPrevious() {
  208.94          return index > 0;
  208.95      }
  208.96  
  208.97 +    @Override
  208.98      public void nextPanel() {
  208.99          if (!hasNext()) {
 208.100              throw new NoSuchElementException();
 208.101 @@ -205,6 +220,7 @@
 208.102          index++;
 208.103      }
 208.104  
 208.105 +    @Override
 208.106      public void previousPanel() {
 208.107          if (!hasPrevious()) {
 208.108              throw new NoSuchElementException();
 208.109 @@ -213,9 +229,11 @@
 208.110      }
 208.111  
 208.112      // If nothing unusual changes in the middle of the wizard, simply:
 208.113 +    @Override
 208.114      public void addChangeListener(ChangeListener l) {
 208.115      }
 208.116  
 208.117 +    @Override
 208.118      public void removeChangeListener(ChangeListener l) {
 208.119      }
 208.120  
   209.1 --- a/ada.project/src/org/netbeans/modules/ada/project/ui/wizards/PanelConfigureSourcesVisual.form	Tue Oct 02 21:55:21 2012 -0400
   209.2 +++ b/ada.project/src/org/netbeans/modules/ada/project/ui/wizards/PanelConfigureSourcesVisual.form	Mon Oct 15 23:38:26 2012 +0200
   209.3 @@ -1,4 +1,4 @@
   209.4 -<?xml version="1.0" encoding="UTF-8" ?>
   209.5 +<?xml version="1.1" encoding="UTF-8" ?>
   209.6  
   209.7  <Form version="1.4" maxVersion="1.6" type="org.netbeans.modules.form.forminfo.JPanelFormInfo">
   209.8    <AuxValues>
   209.9 @@ -7,7 +7,7 @@
  209.10      <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
  209.11      <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
  209.12      <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="true"/>
  209.13 -    <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="2"/>
  209.14 +    <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
  209.15      <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
  209.16      <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
  209.17      <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
   210.1 --- a/ada.project/src/org/netbeans/modules/ada/project/ui/wizards/PanelConfigureSourcesVisual.java	Tue Oct 02 21:55:21 2012 -0400
   210.2 +++ b/ada.project/src/org/netbeans/modules/ada/project/ui/wizards/PanelConfigureSourcesVisual.java	Mon Oct 15 23:38:26 2012 +0200
   210.3 @@ -167,48 +167,48 @@
   210.4              }
   210.5          });
   210.6  
   210.7 -        org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(this);
   210.8 +        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
   210.9          this.setLayout(layout);
  210.10          layout.setHorizontalGroup(
  210.11 -            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
  210.12 -            .add(layout.createSequentialGroup()
  210.13 -                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
  210.14 -                    .add(jLabel1)
  210.15 -                    .add(jLabel2)
  210.16 -                    .add(jLabel3)
  210.17 -                    .add(jScrollPane2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 465, Short.MAX_VALUE)
  210.18 -                    .add(jScrollPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 465, Short.MAX_VALUE))
  210.19 -                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
  210.20 -                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false)
  210.21 -                    .add(removeTest, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  210.22 -                    .add(addTest, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  210.23 -                    .add(addSource, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 137, Short.MAX_VALUE)
  210.24 -                    .add(removeSource, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
  210.25 +            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  210.26 +            .addGroup(layout.createSequentialGroup()
  210.27 +                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  210.28 +                    .addComponent(jLabel1)
  210.29 +                    .addComponent(jLabel2)
  210.30 +                    .addComponent(jLabel3)
  210.31 +                    .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 465, Short.MAX_VALUE)
  210.32 +                    .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 465, Short.MAX_VALUE))
  210.33 +                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  210.34 +                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
  210.35 +                    .addComponent(removeTest, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  210.36 +                    .addComponent(addTest, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  210.37 +                    .addComponent(addSource, javax.swing.GroupLayout.DEFAULT_SIZE, 137, Short.MAX_VALUE)
  210.38 +                    .addComponent(removeSource, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
  210.39          );
  210.40          layout.setVerticalGroup(
  210.41 -            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
  210.42 -            .add(layout.createSequentialGroup()
  210.43 -                .add(20, 20, 20)
  210.44 -                .add(jLabel1)
  210.45 -                .add(18, 18, 18)
  210.46 -                .add(jLabel2)
  210.47 -                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
  210.48 -                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
  210.49 -                    .add(layout.createSequentialGroup()
  210.50 -                        .add(jScrollPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 100, Short.MAX_VALUE)
  210.51 -                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
  210.52 -                        .add(jLabel3))
  210.53 -                    .add(layout.createSequentialGroup()
  210.54 -                        .add(addSource)
  210.55 -                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
  210.56 -                        .add(removeSource)))
  210.57 -                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
  210.58 -                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
  210.59 -                    .add(layout.createSequentialGroup()
  210.60 -                        .add(addTest)
  210.61 -                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
  210.62 -                        .add(removeTest))
  210.63 -                    .add(jScrollPane2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 100, Short.MAX_VALUE))
  210.64 +            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  210.65 +            .addGroup(layout.createSequentialGroup()
  210.66 +                .addGap(20, 20, 20)
  210.67 +                .addComponent(jLabel1)
  210.68 +                .addGap(18, 18, 18)
  210.69 +                .addComponent(jLabel2)
  210.70 +                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  210.71 +                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  210.72 +                    .addGroup(layout.createSequentialGroup()
  210.73 +                        .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 100, Short.MAX_VALUE)
  210.74 +                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
  210.75 +                        .addComponent(jLabel3))
  210.76 +                    .addGroup(layout.createSequentialGroup()
  210.77 +                        .addComponent(addSource)
  210.78 +                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  210.79 +                        .addComponent(removeSource)))
  210.80 +                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  210.81 +                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  210.82 +                    .addGroup(layout.createSequentialGroup()
  210.83 +                        .addComponent(addTest)
  210.84 +                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
  210.85 +                        .addComponent(removeTest))
  210.86 +                    .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 100, Short.MAX_VALUE))
  210.87                  .addContainerGap())
  210.88          );
  210.89      }// </editor-fold>//GEN-END:initComponents
  210.90 @@ -244,7 +244,6 @@
  210.91  
  210.92      private File[] browse (String label, FolderModel other) {
  210.93          JFileChooser chooser = new JFileChooser();
  210.94 -        FileUtil.preventFileChooserSymlinkTraversal(chooser, null);
  210.95          chooser.setDialogTitle(label);
  210.96          chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);        
  210.97          chooser.setMultiSelectionEnabled(true);
   211.1 --- a/ada.project/src/org/netbeans/modules/ada/project/ui/wizards/PanelOptionsVisual.form	Tue Oct 02 21:55:21 2012 -0400
   211.2 +++ b/ada.project/src/org/netbeans/modules/ada/project/ui/wizards/PanelOptionsVisual.form	Mon Oct 15 23:38:26 2012 +0200
   211.3 @@ -1,21 +1,13 @@
   211.4 -<?xml version="1.0" encoding="UTF-8" ?>
   211.5 +<?xml version="1.1" encoding="UTF-8" ?>
   211.6  
   211.7  <Form version="1.2" maxVersion="1.2" type="org.netbeans.modules.form.forminfo.JPanelFormInfo">
   211.8 -  <AccessibilityProperties>
   211.9 -    <Property name="AccessibleContext.accessibleName" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
  211.10 -      <ResourceString bundle="net/java/dev/nbpython/project/templets/Bundle.properties" key="ACSN_PanelOptionsVisual" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
  211.11 -    </Property>
  211.12 -    <Property name="AccessibleContext.accessibleDescription" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
  211.13 -      <ResourceString bundle="net/java/dev/nbpython/project/templets/Bundle.properties" key="ACSD_PanelOptionsVisual" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
  211.14 -    </Property>
  211.15 -  </AccessibilityProperties>
  211.16    <AuxValues>
  211.17      <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
  211.18      <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
  211.19      <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
  211.20      <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="true"/>
  211.21      <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
  211.22 -    <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="2"/>
  211.23 +    <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
  211.24      <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
  211.25      <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
  211.26      <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
  211.27 @@ -79,10 +71,7 @@
  211.28        </Properties>
  211.29        <AccessibilityProperties>
  211.30          <Property name="AccessibleContext.accessibleName" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
  211.31 -          <ResourceString bundle="net/java/dev/nbpython/project/templets/Bundle.properties" key="ACSN_createMainCheckBox" replaceFormat="org.openide.util.NbBundle.getBundle({sourceFileName}.class).getString(&quot;{key}&quot;)"/>
  211.32 -        </Property>
  211.33 -        <Property name="AccessibleContext.accessibleDescription" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
  211.34 -          <ResourceString bundle="net/java/dev/nbpython/project/templets/Bundle.properties" key="ACSD_createMainCheckBox" replaceFormat="org.openide.util.NbBundle.getBundle({sourceFileName}.class).getString(&quot;{key}&quot;)"/>
  211.35 +          <ResourceString bundle="org/netbeans/modules/ada/project/ui/wizards/Bundle.properties" key="LBL_createMainCheckBox" replaceFormat="org.openide.util.NbBundle.getBundle({sourceFileName}.class).getString(&quot;{key}&quot;)"/>
  211.36          </Property>
  211.37        </AccessibilityProperties>
  211.38        <AuxValues>
  211.39 @@ -93,14 +82,6 @@
  211.40        <Properties>
  211.41          <Property name="text" type="java.lang.String" value="Main"/>
  211.42        </Properties>
  211.43 -      <AccessibilityProperties>
  211.44 -        <Property name="AccessibleContext.accessibleName" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
  211.45 -          <ResourceString bundle="net/java/dev/nbpython/project/templets/Bundle.properties" key="ASCN_mainClassTextFiled" replaceFormat="org.openide.util.NbBundle.getBundle({sourceFileName}.class).getString(&quot;{key}&quot;)"/>
  211.46 -        </Property>
  211.47 -        <Property name="AccessibleContext.accessibleDescription" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
  211.48 -          <ResourceString bundle="net/java/dev/nbpython/project/templets/Bundle.properties" key="ASCD_mainClassTextFiled" replaceFormat="org.openide.util.NbBundle.getBundle({sourceFileName}.class).getString(&quot;{key}&quot;)"/>
  211.49 -        </Property>
  211.50 -      </AccessibilityProperties>
  211.51      </Component>
  211.52      <Component class="javax.swing.JCheckBox" name="setAsMainCheckBox">
  211.53        <Properties>
  211.54 @@ -114,10 +95,7 @@
  211.55        </Properties>
  211.56        <AccessibilityProperties>
  211.57          <Property name="AccessibleContext.accessibleName" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
  211.58 -          <ResourceString bundle="net/java/dev/nbpython/project/templets/Bundle.properties" key="ACSN_setAsMainCheckBox" replaceFormat="org.openide.util.NbBundle.getBundle({sourceFileName}.class).getString(&quot;{key}&quot;)"/>
  211.59 -        </Property>
  211.60 -        <Property name="AccessibleContext.accessibleDescription" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
  211.61 -          <ResourceString bundle="net/java/dev/nbpython/project/templets/Bundle.properties" key="ACSD_setAsMainCheckBox" replaceFormat="org.openide.util.NbBundle.getBundle({sourceFileName}.class).getString(&quot;{key}&quot;)"/>
  211.62 +          <ResourceString bundle="org/netbeans/modules/ada/project/ui/wizards/Bundle.properties" key="LBL_setAsMainCheckBox" replaceFormat="org.openide.util.NbBundle.getBundle({sourceFileName}.class).getString(&quot;{key}&quot;)"/>
  211.63          </Property>
  211.64        </AccessibilityProperties>
  211.65        <AuxValues>
   212.1 --- a/ada.project/src/org/netbeans/modules/ada/project/ui/wizards/PanelOptionsVisual.java	Tue Oct 02 21:55:21 2012 -0400
   212.2 +++ b/ada.project/src/org/netbeans/modules/ada/project/ui/wizards/PanelOptionsVisual.java	Mon Oct 15 23:38:26 2012 +0200
   212.3 @@ -54,6 +54,7 @@
   212.4  import org.openide.WizardDescriptor;
   212.5  import org.openide.WizardValidationException;
   212.6  import org.openide.filesystems.FileObject;
   212.7 +import org.openide.filesystems.FileUtil;
   212.8  import org.openide.filesystems.Repository;
   212.9  import org.openide.loaders.DataObject;
  212.10  import org.openide.loaders.InstanceDataObject;
  212.11 @@ -118,12 +119,21 @@
  212.12          }
  212.13      }
  212.14  
  212.15 +    private String removeSpaces(String s) {
  212.16 +        StringTokenizer st = new StringTokenizer(s, " ", false);
  212.17 +        String t = "";
  212.18 +        while (st.hasMoreElements()) {
  212.19 +            t += st.nextElement();
  212.20 +        }
  212.21 +        return t;
  212.22 +    }
  212.23 +
  212.24      public void propertyChange(PropertyChangeEvent event) {
  212.25          if (NewAdaProjectWizardIterator.PROP_PROJECT_NAME.equals(event.getPropertyName())) {
  212.26              String newProjectName = (String) event.getNewValue();
  212.27              this.mainFileTextField.setText(MessageFormat.format(
  212.28                      NbBundle.getMessage(PanelOptionsVisual.class, "TXT_MainFileName"), 
  212.29 -                    new Object[]{newProjectName + "." + AdaOptions.getInstance().getSeparateExt()}));
  212.30 +                    new Object[]{removeSpaces(newProjectName) + "." + AdaOptions.getInstance().getSeparateExt()}));
  212.31          }
  212.32          if (NewAdaProjectWizardIterator.PROP_PROJECT_LOCATION.equals(event.getPropertyName())) {
  212.33              projectLocation = (String) event.getNewValue();
  212.34 @@ -167,56 +177,49 @@
  212.35              }
  212.36          });
  212.37  
  212.38 -        org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(this);
  212.39 +        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
  212.40          this.setLayout(layout);
  212.41          layout.setHorizontalGroup(
  212.42 -            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
  212.43 -            .add(layout.createSequentialGroup()
  212.44 -                .add(setAsMainCheckBox)
  212.45 +            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  212.46 +            .addGroup(layout.createSequentialGroup()
  212.47 +                .addComponent(setAsMainCheckBox)
  212.48                  .addContainerGap(562, Short.MAX_VALUE))
  212.49 -            .add(layout.createSequentialGroup()
  212.50 -                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
  212.51 -                    .add(createMainCheckBox)
  212.52 -                    .add(jLabel1))
  212.53 -                .add(18, 18, 18)
  212.54 -                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
  212.55 -                    .add(layout.createSequentialGroup()
  212.56 -                        .add(platforms, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 233, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
  212.57 -                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
  212.58 -                        .add(manage)
  212.59 -                        .add(4, 4, 4))
  212.60 -                    .add(mainFileTextField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 558, Short.MAX_VALUE)))
  212.61 +            .addGroup(layout.createSequentialGroup()
  212.62 +                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  212.63 +                    .addComponent(createMainCheckBox)
  212.64 +                    .addComponent(jLabel1))
  212.65 +                .addGap(18, 18, 18)
  212.66 +                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  212.67 +                    .addGroup(layout.createSequentialGroup()
  212.68 +                        .addComponent(platforms, javax.swing.GroupLayout.PREFERRED_SIZE, 233, javax.swing.GroupLayout.PREFERRED_SIZE)
  212.69 +                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
  212.70 +                        .addComponent(manage)
  212.71 +                        .addGap(4, 4, 4))
  212.72 +                    .addComponent(mainFileTextField, javax.swing.GroupLayout.DEFAULT_SIZE, 558, Short.MAX_VALUE)))
  212.73          );
  212.74          layout.setVerticalGroup(
  212.75 -            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
  212.76 -            .add(layout.createSequentialGroup()
  212.77 -                .add(setAsMainCheckBox)
  212.78 -                .add(5, 5, 5)
  212.79 -                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
  212.80 -                    .add(createMainCheckBox)
  212.81 -                    .add(mainFileTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
  212.82 -                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
  212.83 -                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.CENTER)
  212.84 -                    .add(jLabel1)
  212.85 -                    .add(platforms, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
  212.86 -                    .add(manage))
  212.87 +            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  212.88 +            .addGroup(layout.createSequentialGroup()
  212.89 +                .addComponent(setAsMainCheckBox)
  212.90 +                .addGap(5, 5, 5)
  212.91 +                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  212.92 +                    .addComponent(createMainCheckBox)
  212.93 +                    .addComponent(mainFileTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
  212.94 +                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  212.95 +                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
  212.96 +                    .addComponent(jLabel1)
  212.97 +                    .addComponent(platforms, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  212.98 +                    .addComponent(manage))
  212.99                  .addContainerGap(50, Short.MAX_VALUE))
 212.100          );
 212.101  
 212.102 -        createMainCheckBox.getAccessibleContext().setAccessibleName("null");
 212.103 -        createMainCheckBox.getAccessibleContext().setAccessibleDescription("null");
 212.104 -        mainFileTextField.getAccessibleContext().setAccessibleName("null");
 212.105 -        mainFileTextField.getAccessibleContext().setAccessibleDescription("null");
 212.106 -        setAsMainCheckBox.getAccessibleContext().setAccessibleName("null");
 212.107 -        setAsMainCheckBox.getAccessibleContext().setAccessibleDescription("null");
 212.108 -
 212.109 -        getAccessibleContext().setAccessibleName("null");
 212.110 -        getAccessibleContext().setAccessibleDescription("null");
 212.111 +        createMainCheckBox.getAccessibleContext().setAccessibleName(org.openide.util.NbBundle.getBundle(PanelOptionsVisual.class).getString("LBL_createMainCheckBox")); // NOI18N
 212.112 +        setAsMainCheckBox.getAccessibleContext().setAccessibleName(org.openide.util.NbBundle.getBundle(PanelOptionsVisual.class).getString("LBL_setAsMainCheckBox")); // NOI18N
 212.113      }// </editor-fold>//GEN-END:initComponents
 212.114  
 212.115  private void manageActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_manageActionPerformed
 212.116      // Workaround, Needs an API to display platform customizer
 212.117 -    final FileObject fo = Repository.getDefault().getDefaultFileSystem().findResource("Actions/Ada/org-netbeans-modules-ada-platform-PlatformsCustomizerAction.instance");  //NOI18N
 212.118 +    final FileObject fo = FileUtil.getConfigFile("Actions/Ada/org-netbeans-modules-ada-platform-PlatformsCustomizerAction.instance");  //NOI18N
 212.119      if (fo != null) {
 212.120          try {
 212.121              InstanceDataObject ido = (InstanceDataObject) DataObject.find(fo);