<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:template match="Classes">
<xsl:text>/*----------------------------------------------------------------------------*/
/*                                                                            */
/* Copyright (c) 1995, 2004 IBM Corporation. All rights reserved.             */
/* Copyright (c) 2005-2018 Rexx Language Association. All rights reserved.    */
/*                                                                            */
/* This program and the accompanying materials are made available under       */
/* the terms of the Common Public License v1.0 which accompanies this         */
/* distribution. A copy is also available at the following address:           */
/* https://www.oorexx.org/license.html                                        */
/*                                                                            */
/* Redistribution and use in source and binary forms, with or                 */
/* without modification, are permitted provided that the following            */
/* conditions are met:                                                        */
/*                                                                            */
/* Redistributions of source code must retain the above copyright             */
/* notice, this list of conditions and the following disclaimer.              */
/* Redistributions in binary form must reproduce the above copyright          */
/* notice, this list of conditions and the following disclaimer in            */
/* the documentation and/or other materials provided with the distribution.   */
/*                                                                            */
/* Neither the name of Rexx Language Association nor the names                */
/* of its contributors may be used to endorse or promote products             */
/* derived from this software without specific prior written permission.      */
/*                                                                            */
/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS        */
/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT          */
/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS          */
/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT   */
/* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,      */
/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED   */
/* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,        */
/* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY     */
/* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING    */
/* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS         */
/* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.               */
/*                                                                            */
/*----------------------------------------------------------------------------*/
/******************************************************************************/
/* REXX  Support                                                              */
/*                                                                            */
/* Rexx primitive class id codes                                              */
/*                                                                            */
/*        -- DO NOT CHANGE THIS FILE, ALL CHANGES WILL BE LOST! --            */
/*                  -- FILE WAS GENERATED BY ClassTypeIds.xsl --              */
/******************************************************************************/

#ifndef ClassTypeCodes_Included
#define ClassTypeCodes_Included

typedef enum
{</xsl:text>
<xsl:variable name="firstexported" select="0"/>
<xsl:variable name="lastexported" select="$firstexported + ((count(Exported/Class) * 2) - 1)"/>
<xsl:text>
    T_First_Primitive_Class = </xsl:text><xsl:value-of select="$firstexported"/><xsl:text>,
    T_First_Exported_Class = </xsl:text><xsl:value-of select="$firstexported"/><xsl:text>,
</xsl:text>

    <xsl:for-each select="Exported/Class">
<xsl:text>
    T_</xsl:text><xsl:value-of select="@id"/><xsl:text> = </xsl:text><xsl:value-of select="$firstexported + ((position() - 1) * 2)"/><xsl:text>,
    T_</xsl:text><xsl:value-of select="@id"/><xsl:text>Class = </xsl:text><xsl:value-of select="$firstexported + (((position() - 1) * 2) + 1)"/><xsl:text>,</xsl:text>
    </xsl:for-each>
<xsl:text>

    T_Last_Exported_Class = </xsl:text><xsl:value-of select="$lastexported"/><xsl:text>,
    </xsl:text>

<xsl:variable name="firstinternal" select="$lastexported + 1"/>
<xsl:variable name="lastinternal" select="$firstinternal + (count(Internal/Class) - 1)"/>
<xsl:text>
    T_First_Internal_Class = </xsl:text><xsl:value-of select="$firstinternal"/><xsl:text>,
</xsl:text>

    <xsl:for-each select="Internal/Class">
<xsl:text>
    T_</xsl:text><xsl:value-of select="@id"/><xsl:text> = </xsl:text><xsl:value-of select="$firstinternal + (position() - 1)"/><xsl:text>,</xsl:text>
    </xsl:for-each>
<xsl:text>

    T_Last_Internal_Class = </xsl:text><xsl:value-of select="$lastinternal"/><xsl:text>,
    </xsl:text>

<xsl:variable name="firsttransient" select="$lastinternal + 1"/>
<xsl:variable name="lasttransient" select="$firsttransient + (count(Transient/Class) - 1)"/>
<xsl:text>
    T_First_Transient_Class = </xsl:text><xsl:value-of select="$firsttransient"/><xsl:text>,
</xsl:text>

    <xsl:for-each select="Transient/Class">
<xsl:text>
    T_</xsl:text><xsl:value-of select="@id"/><xsl:text> = </xsl:text><xsl:value-of select="$firsttransient + (position() - 1)"/><xsl:text>,</xsl:text>
    </xsl:for-each>
<xsl:text>

    T_Last_Transient_Class = </xsl:text><xsl:value-of select="$lasttransient"/><xsl:text>,
    T_Last_Primitive_Class = </xsl:text><xsl:value-of select="$lasttransient"/><xsl:text>,
    T_Last_Class_Type = </xsl:text><xsl:value-of select="$lasttransient"/><xsl:text>,
    </xsl:text>
    <xsl:text>
} ClassTypeCode;

/* -------------------------------------------------------------------------- */
/* --            ==================================================        -- */
/* --            DO NOT CHANGE THIS FILE, ALL CHANGES WILL BE LOST!        -- */
/* --            ==================================================        -- */
/* -------------------------------------------------------------------------- */
#endif
</xsl:text>
</xsl:template>

<xsl:template match="CopyRight"></xsl:template>
</xsl:stylesheet>
