#252: xlst out of date
-------------------------+--------------------------------------------------
  Reporter:  H4ck3rm1k3  |        Type:  bug     
    Status:  closed      |    Priority:  minor   
 Milestone:              |   Component:  language
   Version:  trunk       |    Severity:  low     
Resolution:  invalid     |    Keywords:          
      Lang:  php         |       Patch:  rejected
  Platform:  linux       |  
-------------------------+--------------------------------------------------
Changes (by coke):

  * status:  new => closed
  * resolution:  => invalid
  * patch:  new => rejected


Old description:

> Index: src/phc/phc_xml_to_past_xml.xsl
> ===================================================================
> --- src/phc/phc_xml_to_past_xml.xsl     (Revision 34015)
> +++ src/phc/phc_xml_to_past_xml.xsl     (Arbeitskopie)
> @@ -1,11 +1,17 @@
>  <?xml version='1.0'?>
>  <xsl:stylesheet
> -  xmlns:phc="http://www.phpcompiler.org/phc-1.0";
> +  xmlns:AST="http://www.phpcompiler.org/phc-1.1";
>    xmlns:past="http://www.parrotcode.org/PAST-0.1";
>    xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
>    version="1.0" >
> +
>  <!--
>
> +TODO: AST:source_rep
> +
> +-->
> +<!--
> +
>  $Id$
>
>  This transformation takes a XML abstract syntax tree as generated
> @@ -15,235 +21,235 @@
>  <xsl:output method='xml' indent='yes' />
>
>  <xsl:template match="/">
> -  <xsl:apply-templates select="phc:AST_php_script" />
> +  <xsl:apply-templates select="AST:PHP_script" />
>  </xsl:template>
>
> -<xsl:template match="phc:AST_php_script" >
> -  <xsl:apply-templates select="phc:AST_class_def_list" />
> +<xsl:template match="AST:PHP_script" >
> +  <xsl:apply-templates select="AST:PHP_class_def_list" />
>  </xsl:template>
>
> -<xsl:template match="phc:AST_class_def_list" >
> -  <xsl:apply-templates select="phc:AST_class_def" />
> +<xsl:template match="AST:PHP_class_def_list" >
> +  <xsl:apply-templates select="AST:PHP_class_def" />
>  </xsl:template>
>
> -<xsl:template match="phc:AST_class_def" >
> +<xsl:template match="AST:PHP_class_def" >
>  </xsl:template>
> -<xsl:template
> match="phc:AST_class_def[phc:Token_class_name[phc:value='%MAIN%']]">
> -  <xsl:apply-templates select="phc:AST_member_list" />
> +<xsl:template
> match="AST:PHP_class_def[AST:CLASS_NAME[AST:value='%MAIN%']]">
> +  <xsl:apply-templates select="AST:PHP_member_list" />
>  </xsl:template>
>
> -<xsl:template match="phc:AST_member_list" >
> -  <xsl:apply-templates select="phc:AST_method" />
> +<xsl:template match="AST:PHP_member_list" >
> +  <xsl:apply-templates select="AST:PHP_method" />
>  </xsl:template>
>
> -<xsl:template match="phc:AST_method" >
> +<xsl:template match="AST:PHP_method" >
>  </xsl:template>
> -<xsl:template
> match="phc:AST_method[phc:AST_signature[phc:Token_method_name[phc:value='%run%']]]">
> -  <xsl:apply-templates select="phc:AST_statement_list" />
> +<xsl:template
> match="AST:PHP_method[AST:PHP_signature[AST:METHOD_NAME[AST:value='%run%']]]">
> +  <xsl:apply-templates select="AST:PHP_statement_list" />
>  </xsl:template>
>
> -<xsl:template match="phc:AST_statement_list" >
> +<xsl:template match="AST:PHP_statement_list" >
>    <past:Stmts>
> -    <xsl:apply-templates select="phc:AST_eval_expr" />
> -    <xsl:apply-templates select="phc:AST_if" />
> +    <xsl:apply-templates select="AST:PHP_eval_expr" />
> +    <xsl:apply-templates select="AST:PHP_if" />
>    </past:Stmts>
>  </xsl:template>
>
> -<xsl:template match="phc:AST_eval_expr" >
> -  <xsl:apply-templates select="phc:AST_method_invocation" />
> -  <xsl:apply-templates select="phc:AST_assignment" />
> +<xsl:template match="AST:PHP_eval_expr" >
> +  <xsl:apply-templates select="AST:PHP_method_invocation" />
> +  <xsl:apply-templates select="AST:PHP_assignment" />
>  </xsl:template>
>
> -<xsl:template match="phc:AST_method_invocation" >
> +<xsl:template match="AST:PHP_method_invocation" >
>    <past:Op>
> -    <xsl:attribute name="name" ><xsl:value-of
> select="phc:Token_method_name/phc:value" /></xsl:attribute>
> -    <xsl:apply-templates select="phc:AST_actual_parameter_list" />
> +    <xsl:attribute name="name" ><xsl:value-of
> select="AST:METHOD_NAME/AST:value" /></xsl:attribute>
> +    <xsl:apply-templates select="AST:PHP_actual_parameter_list" />
>    </past:Op>
>  </xsl:template>
>
> -<xsl:template match="phc:AST_actual_parameter_list" >
> -  <xsl:apply-templates select="phc:AST_actual_parameter" />
> +<xsl:template match="AST:PHP_actual_parameter_list" >
> +  <xsl:apply-templates select="AST:PHP_actual_parameter" />
>  </xsl:template>
>
> -<xsl:template match="phc:AST_actual_parameter" >
> -  <xsl:apply-templates select="  phc:AST_method_invocation
> -                               | phc:Token_string
> -                               | phc:Token_int
> -                               | phc:Token_bool
> -                               | phc:Token_null
> -                               | phc:Token_real
> -                               | phc:AST_bin_op
> -                               | phc:AST_unary_op
> -                               | phc:AST_variable
> -                               | phc:AST_constant" />
> +<xsl:template match="AST:PHP_actual_parameter" >
> +  <xsl:apply-templates select="  AST:PHP_method_invocation
> +                               | AST:STRING
> +                               | AST:INT
> +                               | AST:BOOL
> +                               | AST:NULL
> +                               | AST:REAL
> +                               | AST:PHP_bin_op
> +                               | AST:PHP_unary_op
> +                               | AST:PHP_variable
> +                               | AST:PHP_constant" />
>  </xsl:template>
>
> -<xsl:template match="phc:AST_bin_op" >
> +<xsl:template match="AST:PHP_bin_op" >
>    <past:Op>
>
>      <xsl:attribute name="pirop" >
>        <xsl:choose>
> -        <xsl:when test="phc:Token_op/phc:value = '+'" >n_add</xsl:when>
> -        <xsl:when test="phc:Token_op/phc:value = '-'" >n_sub</xsl:when>
> -        <xsl:when test="phc:Token_op/phc:value = '*'" >n_mul</xsl:when>
> -        <xsl:when test="phc:Token_op/phc:value = '/'" >n_div</xsl:when>
> -        <xsl:when test="phc:Token_op/phc:value = '%'" >n_mod</xsl:when>
> +        <xsl:when test="AST:OP/AST:value = '+'" >n_add</xsl:when>
> +        <xsl:when test="AST:OP/AST:value = '-'" >n_sub</xsl:when>
> +        <xsl:when test="AST:OP/AST:value = '*'" >n_mul</xsl:when>
> +        <xsl:when test="AST:OP/AST:value = '/'" >n_div</xsl:when>
> +        <xsl:when test="AST:OP/AST:value = '%'" >n_mod</xsl:when>
>        </xsl:choose>
>      </xsl:attribute>
>
>      <xsl:attribute name="name" >
>        <xsl:choose>
> -        <xsl:when test="phc:Token_op/phc:value/@encoding = 'base64'" >
> +        <xsl:when test="AST:OP/AST:value/@encoding = 'base64'" >
>            <xsl:choose>
> -            <xsl:when test="phc:Token_op/phc:value = 'PA=='"
> >infix:&lt;</xsl:when>
> -            <xsl:when test="phc:Token_op/phc:value = 'PD0='"
> >infix:&lt;=</xsl:when>
> -            <xsl:when test="phc:Token_op/phc:value = 'Pj0='"
> >infix:&gt;=</xsl:when>
> -            <xsl:when test="phc:Token_op/phc:value = 'Pg=='"
> >infix:&gt;</xsl:when>
> -            <xsl:when test="phc:Token_op/phc:value = 'Jg=='"
> >infix:&amp;</xsl:when>
> +            <xsl:when test="AST:OP/AST:value = 'PA=='"
> >infix:&lt;</xsl:when>
> +            <xsl:when test="AST:OP/AST:value = 'PD0='"
> >infix:&lt;=</xsl:when>
> +            <xsl:when test="AST:OP/AST:value = 'Pj0='"
> >infix:&gt;=</xsl:when>
> +            <xsl:when test="AST:OP/AST:value = 'Pg=='"
> >infix:&gt;</xsl:when>
> +            <xsl:when test="AST:OP/AST:value = 'Jg=='"
> >infix:&amp;</xsl:when>
>            </xsl:choose>
>          </xsl:when>
> -        <xsl:when test="phc:Token_op/phc:value = '&amp;&amp;'"
> >infix:AND</xsl:when>
> -        <xsl:when test="phc:Token_op/phc:value = '||'"
> >infix:OR</xsl:when>
> +        <xsl:when test="AST:OP/AST:value = '&amp;&amp;'"
> >infix:AND</xsl:when>
> +        <xsl:when test="AST:OP/AST:value = '||'" >infix:OR</xsl:when>
>          <xsl:otherwise>
> -          <xsl:value-of select="concat('infix:',
> phc:Token_op/phc:value)" />
> +          <xsl:value-of select="concat('infix:', AST:OP/AST:value)" />
>          </xsl:otherwise>
>        </xsl:choose>
>      </xsl:attribute>
>
> -    <xsl:apply-templates select="  phc:Token_string
> -                                 | phc:Token_int
> -                                 | phc:Token_real
> -                                 | phc:AST_bin_op
> -                                 | phc:AST_unary_op
> -                                 | phc:AST_variable
> -                                 | phc:AST_constant" />
> +    <xsl:apply-templates select="  AST:STRING
> +                                 | AST:INT
> +                                 | AST:REAL
> +                                 | AST:PHP_bin_op
> +                                 | AST:PHP_unary_op
> +                                 | AST:PHP_variable
> +                                 | AST:PHP_constant" />
>
>    </past:Op>
>  </xsl:template>
>
> -<xsl:template match="phc:AST_unary_op" >
> +<xsl:template match="AST:PHP_unary_op" >
>    <past:Op >
>      <xsl:attribute name="name" >
> -      <xsl:value-of select="concat('prefix:', phc:Token_op/phc:value)"
> />
> +      <xsl:value-of select="concat('prefix:', AST:OP/AST:value)" />
>      </xsl:attribute>
> -    <xsl:apply-templates select="  phc:Token_int
> -                                 | phc:Token_real
> -                                 | phc:AST_bin_op
> -                                 | phc:AST_unary_op" />
> +    <xsl:apply-templates select="  AST:INT
> +                                 | AST:REAL
> +                                 | AST:PHP_bin_op
> +                                 | AST:PHP_unary_op" />
>    </past:Op>
>  </xsl:template>
>
>  <!-- value assignment -->
> -<xsl:template match="phc:AST_assignment[string(phc:bool) = 'false']" >
> +<xsl:template match="AST:PHP_assignment[string(AST:BOOL) = 'false']" >
>    <past:Op name='infix:=' pasttype='bind' >
> -    <xsl:apply-templates select="phc:AST_variable" />
> -    <xsl:apply-templates select="  phc:Token_string
> -                                 | phc:Token_int
> -                                 | phc:AST_bin_op
> -                                 | phc:AST_constant" />
> +    <xsl:apply-templates select="AST:PHP_variable" />
> +    <xsl:apply-templates select="  AST:STRING
> +                                 | AST:INT
> +                                 | AST:PHP_bin_op
> +                                 | AST:PHP_constant" />
>    </past:Op>
>  </xsl:template>
>
>  <!-- aliasing -->
> -<xsl:template match="phc:AST_assignment[string(phc:bool) = 'true']" >
> +<xsl:template match="AST:PHP_assignment[string(AST:BOOL) = 'true']" >
>    <past:Op name='infix::=' pasttype='bind' >
> -    <xsl:apply-templates select="phc:AST_variable" />
> -    <xsl:apply-templates select="  phc:Token_string
> -                                 | phc:Token_int
> -                                 | phc:AST_bin_op
> -                                 | phc:AST_constant" />
> +    <xsl:apply-templates select="AST:PHP_variable" />
> +    <xsl:apply-templates select="  AST:STRING
> +                                 | AST:INT
> +                                 | AST:PHP_bin_op
> +                                 | AST:PHP_constant" />
>    </past:Op>
>  </xsl:template>
>
> -<xsl:template match="phc:AST_variable" >
> +<xsl:template match="AST:PHP_variable" >
>    <past:Var scope="package" >
>      <xsl:attribute name="name" >
> -      <xsl:value-of select="concat( '$',
> phc:Token_variable_name/phc:value )" />
> +      <xsl:value-of select="concat( '$', AST:VARIABLE_NAME/AST:value )"
> />
>      </xsl:attribute>
>    </past:Var>
>  </xsl:template>
>
> -<xsl:template match="phc:AST_variable[
> phc:AST_expr_list/phc:Token_string | phc:AST_expr_list/phc:Token_int ]" >
> +<xsl:template match="AST:PHP_variable[ AST:PHP_expr_list/AST:STRING |
> AST:PHP_expr_list/AST:INT ]" >
>    <past:Var scope="keyed" viviself="Undef" lvalue="1" >
>      <xsl:choose>
> -      <xsl:when test="phc:Token_variable_name/phc:value = '_GET' or
> phc:Token_variable_name/phc:value = '_POST'" >
> +      <xsl:when test="AST:VARIABLE_NAME/AST:value = '_GET' or
> AST:VARIABLE_NAME/AST:value = '_POST'" >
>          <past:Var scope="package" >
> -          <xsl:attribute name="name" ><xsl:value-of select="concat( '$',
> phc:Token_variable_name/phc:value )" /></xsl:attribute>
> +          <xsl:attribute name="name" ><xsl:value-of select="concat( '$',
> AST:VARIABLE_NAME/AST:value )" /></xsl:attribute>
>          </past:Var>
>        </xsl:when>
>        <xsl:otherwise>
>          <past:Var viviself="PhpArray" scope="package" lvalue="1" >
> -          <xsl:attribute name="name" ><xsl:value-of select="concat( '$',
> phc:Token_variable_name/phc:value )" /></xsl:attribute>
> +          <xsl:attribute name="name" ><xsl:value-of select="concat( '$',
> AST:VARIABLE_NAME/AST:value )" /></xsl:attribute>
>          </past:Var>
>        </xsl:otherwise>
>      </xsl:choose>
> -    <xsl:apply-templates select="  phc:AST_expr_list/phc:Token_string
> -                                 | phc:AST_expr_list/phc:Token_int" />
> +    <xsl:apply-templates select="  AST:PHP_expr_list/AST:STRING
> +                                 | AST:PHP_expr_list/AST:INT" />
>    </past:Var>
>  </xsl:template>
>
> -<xsl:template match="phc:AST_constant" >
> +<xsl:template match="AST:PHP_constant" >
>    <past:Op name="constant" >
>      <past:Val returns="PhpString" >
> -      <xsl:attribute name="value" ><xsl:value-of
> select="phc:Token_constant_name/phc:value" /></xsl:attribute>
> +      <xsl:attribute name="value" ><xsl:value-of
> select="AST:CONSTANT_NAME/AST:value" /></xsl:attribute>
>      </past:Val>
>    </past:Op>
>  </xsl:template>
>
> -<xsl:template match="phc:Token_string" >
> +<xsl:template match="AST:STRING" >
>    <past:Val returns="PhpString" >
> -    <xsl:attribute name="encoding" ><xsl:value-of
> select="phc:value/@encoding" /></xsl:attribute>
> -    <xsl:attribute name="value" ><xsl:value-of select="phc:value"
> /></xsl:attribute>
> +    <xsl:attribute name="encoding" ><xsl:value-of
> select="AST:value/@encoding" /></xsl:attribute>
> +    <xsl:attribute name="value" ><xsl:value-of select="AST:value"
> /></xsl:attribute>
>    </past:Val>
>  </xsl:template>
>
> -<xsl:template match="phc:Token_int" >
> +<xsl:template match="AST:INT" >
>    <past:Val returns="PhpInteger" >
> -    <xsl:attribute name="value" ><xsl:value-of select="phc:value"
> /></xsl:attribute>
> +    <xsl:attribute name="value" ><xsl:value-of select="AST:value"
> /></xsl:attribute>
>    </past:Val>
>  </xsl:template>
>
> -<xsl:template match="phc:Token_bool" >
> +<xsl:template match="AST:BOOL" >
>    <past:Val returns="PhpBoolean" >
>      <xsl:attribute name="value" ><xsl:choose>
> -      <xsl:when test="phc:value = 'True'"  >1</xsl:when>
> -      <xsl:when test="phc:value = 'False'" >0</xsl:when>
> +      <xsl:when test="AST:value = 'True'"  >1</xsl:when>
> +      <xsl:when test="AST:value = 'False'" >0</xsl:when>
>      </xsl:choose></xsl:attribute>
>    </past:Val>
>  </xsl:template>
>
> -<xsl:template match="phc:Token_null" >
> +<xsl:template match="AST:BOOL" >
>    <past:Val returns="PhpNull" >
>      <xsl:attribute name="value" >0</xsl:attribute>
>    </past:Val>
>  </xsl:template>
>
>  <!-- looks like phc is running into a floating point issue -->
> -<xsl:template match="phc:Token_real" >
> +<xsl:template match="AST:REAL" >
>    <past:Val returns='PhpFloat' >
> -    <xsl:attribute name="value" ><xsl:value-of select="phc:source_rep"
> /></xsl:attribute>
> +    <xsl:attribute name="value" ><xsl:value-of select="AST:source_rep"
> /></xsl:attribute>
>    </past:Val>
>  </xsl:template>
>
> -<xsl:template match="  phc:value
> -                     | phc:source_rep" >
> +<xsl:template match="  AST:value
> +                     | AST:source_rep" >
>    <xsl:value-of select="." />
>  </xsl:template>
>
> -<xsl:template match="phc:AST_if" >
> +<xsl:template match="AST:PHP_if" >
>    <past:Op pasttype="if" >
> -    <xsl:apply-templates select="  phc:Token_string
> -                                 | phc:Token_int
> -                                 | phc:Token_real
> -                                 | phc:AST_bin_op
> -                                 | phc:AST_unary_op
> -                                 | phc:AST_variable
> -                                 | phc:AST_constant" />
> +    <xsl:apply-templates select="  AST:STRING
> +                                 | AST:INT
> +                                 | AST:REAL
> +                                 | AST:PHP_bin_op
> +                                 | AST:PHP_unary_op
> +                                 | AST:PHP_variable
> +                                 | AST:PHP_constant" />
>      <past:Block blocktype="immediate" >
> -      <xsl:apply-templates select="phc:AST_statement_list[1]" />
> +      <xsl:apply-templates select="AST:PHP_statement_list[1]" />
>      </past:Block>
>      <past:Block blocktype="immediate" >
> -      <xsl:apply-templates select="phc:AST_statement_list[2]" />
> +      <xsl:apply-templates select="AST:PHP_statement_list[2]" />
>      </past:Block>
>    </past:Op>
>  </xsl:template>

New description:

 Index: src/phc/phc_xml_to_past_xml.xsl
 ===================================================================
 --- src/phc/phc_xml_to_past_xml.xsl     (Revision 34015)
 +++ src/phc/phc_xml_to_past_xml.xsl     (Arbeitskopie)
 @@ -1,11 +1,17 @@
  <?xml version='1.0'?>
  <xsl:stylesheet
 -  xmlns:phc="http://www.phpcompiler.org/phc-1.0";
 +  xmlns:AST="http://www.phpcompiler.org/phc-1.1";
    xmlns:past="http://www.parrotcode.org/PAST-0.1";
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
    version="1.0" >
 +
  <!--

 +TODO: AST:source_rep
 +
 +-->
 +<!--
 +
  $Id$

  This transformation takes a XML abstract syntax tree as generated
 @@ -15,235 +21,235 @@
  <xsl:output method='xml' indent='yes' />

  <xsl:template match="/">
 -  <xsl:apply-templates select="phc:AST_php_script" />
 +  <xsl:apply-templates select="AST:PHP_script" />
  </xsl:template>

 -<xsl:template match="phc:AST_php_script" >
 -  <xsl:apply-templates select="phc:AST_class_def_list" />
 +<xsl:template match="AST:PHP_script" >
 +  <xsl:apply-templates select="AST:PHP_class_def_list" />
  </xsl:template>

 -<xsl:template match="phc:AST_class_def_list" >
 -  <xsl:apply-templates select="phc:AST_class_def" />
 +<xsl:template match="AST:PHP_class_def_list" >
 +  <xsl:apply-templates select="AST:PHP_class_def" />
  </xsl:template>

 -<xsl:template match="phc:AST_class_def" >
 +<xsl:template match="AST:PHP_class_def" >
  </xsl:template>
 -<xsl:template
 match="phc:AST_class_def[phc:Token_class_name[phc:value='%MAIN%']]">
 -  <xsl:apply-templates select="phc:AST_member_list" />
 +<xsl:template
 match="AST:PHP_class_def[AST:CLASS_NAME[AST:value='%MAIN%']]">
 +  <xsl:apply-templates select="AST:PHP_member_list" />
  </xsl:template>

 -<xsl:template match="phc:AST_member_list" >
 -  <xsl:apply-templates select="phc:AST_method" />
 +<xsl:template match="AST:PHP_member_list" >
 +  <xsl:apply-templates select="AST:PHP_method" />
  </xsl:template>

 -<xsl:template match="phc:AST_method" >
 +<xsl:template match="AST:PHP_method" >
  </xsl:template>
 -<xsl:template
 
match="phc:AST_method[phc:AST_signature[phc:Token_method_name[phc:value='%run%']]]">
 -  <xsl:apply-templates select="phc:AST_statement_list" />
 +<xsl:template
 match="AST:PHP_method[AST:PHP_signature[AST:METHOD_NAME[AST:value='%run%']]]">
 +  <xsl:apply-templates select="AST:PHP_statement_list" />
  </xsl:template>

 -<xsl:template match="phc:AST_statement_list" >
 +<xsl:template match="AST:PHP_statement_list" >
    <past:Stmts>
 -    <xsl:apply-templates select="phc:AST_eval_expr" />
 -    <xsl:apply-templates select="phc:AST_if" />
 +    <xsl:apply-templates select="AST:PHP_eval_expr" />
 +    <xsl:apply-templates select="AST:PHP_if" />
    </past:Stmts>
  </xsl:template>

 -<xsl:template match="phc:AST_eval_expr" >
 -  <xsl:apply-templates select="phc:AST_method_invocation" />
 -  <xsl:apply-templates select="phc:AST_assignment" />
 +<xsl:template match="AST:PHP_eval_expr" >
 +  <xsl:apply-templates select="AST:PHP_method_invocation" />
 +  <xsl:apply-templates select="AST:PHP_assignment" />
  </xsl:template>

 -<xsl:template match="phc:AST_method_invocation" >
 +<xsl:template match="AST:PHP_method_invocation" >
    <past:Op>
 -    <xsl:attribute name="name" ><xsl:value-of
 select="phc:Token_method_name/phc:value" /></xsl:attribute>
 -    <xsl:apply-templates select="phc:AST_actual_parameter_list" />
 +    <xsl:attribute name="name" ><xsl:value-of
 select="AST:METHOD_NAME/AST:value" /></xsl:attribute>
 +    <xsl:apply-templates select="AST:PHP_actual_parameter_list" />
    </past:Op>
  </xsl:template>

 -<xsl:template match="phc:AST_actual_parameter_list" >
 -  <xsl:apply-templates select="phc:AST_actual_parameter" />
 +<xsl:template match="AST:PHP_actual_parameter_list" >
 +  <xsl:apply-templates select="AST:PHP_actual_parameter" />
  </xsl:template>

 -<xsl:template match="phc:AST_actual_parameter" >
 -  <xsl:apply-templates select="  phc:AST_method_invocation
 -                               | phc:Token_string
 -                               | phc:Token_int
 -                               | phc:Token_bool
 -                               | phc:Token_null
 -                               | phc:Token_real
 -                               | phc:AST_bin_op
 -                               | phc:AST_unary_op
 -                               | phc:AST_variable
 -                               | phc:AST_constant" />
 +<xsl:template match="AST:PHP_actual_parameter" >
 +  <xsl:apply-templates select="  AST:PHP_method_invocation
 +                               | AST:STRING
 +                               | AST:INT
 +                               | AST:BOOL
 +                               | AST:NULL
 +                               | AST:REAL
 +                               | AST:PHP_bin_op
 +                               | AST:PHP_unary_op
 +                               | AST:PHP_variable
 +                               | AST:PHP_constant" />
  </xsl:template>

 -<xsl:template match="phc:AST_bin_op" >
 +<xsl:template match="AST:PHP_bin_op" >
    <past:Op>

      <xsl:attribute name="pirop" >
        <xsl:choose>
 -        <xsl:when test="phc:Token_op/phc:value = '+'" >n_add</xsl:when>
 -        <xsl:when test="phc:Token_op/phc:value = '-'" >n_sub</xsl:when>
 -        <xsl:when test="phc:Token_op/phc:value = '*'" >n_mul</xsl:when>
 -        <xsl:when test="phc:Token_op/phc:value = '/'" >n_div</xsl:when>
 -        <xsl:when test="phc:Token_op/phc:value = '%'" >n_mod</xsl:when>
 +        <xsl:when test="AST:OP/AST:value = '+'" >n_add</xsl:when>
 +        <xsl:when test="AST:OP/AST:value = '-'" >n_sub</xsl:when>
 +        <xsl:when test="AST:OP/AST:value = '*'" >n_mul</xsl:when>
 +        <xsl:when test="AST:OP/AST:value = '/'" >n_div</xsl:when>
 +        <xsl:when test="AST:OP/AST:value = '%'" >n_mod</xsl:when>
        </xsl:choose>
      </xsl:attribute>

      <xsl:attribute name="name" >
        <xsl:choose>
 -        <xsl:when test="phc:Token_op/phc:value/@encoding = 'base64'" >
 +        <xsl:when test="AST:OP/AST:value/@encoding = 'base64'" >
            <xsl:choose>
 -            <xsl:when test="phc:Token_op/phc:value = 'PA=='"
 >infix:&lt;</xsl:when>
 -            <xsl:when test="phc:Token_op/phc:value = 'PD0='"
 >infix:&lt;=</xsl:when>
 -            <xsl:when test="phc:Token_op/phc:value = 'Pj0='"
 >infix:&gt;=</xsl:when>
 -            <xsl:when test="phc:Token_op/phc:value = 'Pg=='"
 >infix:&gt;</xsl:when>
 -            <xsl:when test="phc:Token_op/phc:value = 'Jg=='"
 >infix:&amp;</xsl:when>
 +            <xsl:when test="AST:OP/AST:value = 'PA=='"
 >infix:&lt;</xsl:when>
 +            <xsl:when test="AST:OP/AST:value = 'PD0='"
 >infix:&lt;=</xsl:when>
 +            <xsl:when test="AST:OP/AST:value = 'Pj0='"
 >infix:&gt;=</xsl:when>
 +            <xsl:when test="AST:OP/AST:value = 'Pg=='"
 >infix:&gt;</xsl:when>
 +            <xsl:when test="AST:OP/AST:value = 'Jg=='"
 >infix:&amp;</xsl:when>
            </xsl:choose>
          </xsl:when>
 -        <xsl:when test="phc:Token_op/phc:value = '&amp;&amp;'"
 >infix:AND</xsl:when>
 -        <xsl:when test="phc:Token_op/phc:value = '||'"
 >infix:OR</xsl:when>
 +        <xsl:when test="AST:OP/AST:value = '&amp;&amp;'"
 >infix:AND</xsl:when>
 +        <xsl:when test="AST:OP/AST:value = '||'" >infix:OR</xsl:when>
          <xsl:otherwise>
 -          <xsl:value-of select="concat('infix:', phc:Token_op/phc:value)"
 />
 +          <xsl:value-of select="concat('infix:', AST:OP/AST:value)" />
          </xsl:otherwise>
        </xsl:choose>
      </xsl:attribute>

 -    <xsl:apply-templates select="  phc:Token_string
 -                                 | phc:Token_int
 -                                 | phc:Token_real
 -                                 | phc:AST_bin_op
 -                                 | phc:AST_unary_op
 -                                 | phc:AST_variable
 -                                 | phc:AST_constant" />
 +    <xsl:apply-templates select="  AST:STRING
 +                                 | AST:INT
 +                                 | AST:REAL
 +                                 | AST:PHP_bin_op
 +                                 | AST:PHP_unary_op
 +                                 | AST:PHP_variable
 +                                 | AST:PHP_constant" />

    </past:Op>
  </xsl:template>

 -<xsl:template match="phc:AST_unary_op" >
 +<xsl:template match="AST:PHP_unary_op" >
    <past:Op >
      <xsl:attribute name="name" >
 -      <xsl:value-of select="concat('prefix:', phc:Token_op/phc:value)" />
 +      <xsl:value-of select="concat('prefix:', AST:OP/AST:value)" />
      </xsl:attribute>
 -    <xsl:apply-templates select="  phc:Token_int
 -                                 | phc:Token_real
 -                                 | phc:AST_bin_op
 -                                 | phc:AST_unary_op" />
 +    <xsl:apply-templates select="  AST:INT
 +                                 | AST:REAL
 +                                 | AST:PHP_bin_op
 +                                 | AST:PHP_unary_op" />
    </past:Op>
  </xsl:template>

  <!-- value assignment -->
 -<xsl:template match="phc:AST_assignment[string(phc:bool) = 'false']" >
 +<xsl:template match="AST:PHP_assignment[string(AST:BOOL) = 'false']" >
    <past:Op name='infix:=' pasttype='bind' >
 -    <xsl:apply-templates select="phc:AST_variable" />
 -    <xsl:apply-templates select="  phc:Token_string
 -                                 | phc:Token_int
 -                                 | phc:AST_bin_op
 -                                 | phc:AST_constant" />
 +    <xsl:apply-templates select="AST:PHP_variable" />
 +    <xsl:apply-templates select="  AST:STRING
 +                                 | AST:INT
 +                                 | AST:PHP_bin_op
 +                                 | AST:PHP_constant" />
    </past:Op>
  </xsl:template>

  <!-- aliasing -->
 -<xsl:template match="phc:AST_assignment[string(phc:bool) = 'true']" >
 +<xsl:template match="AST:PHP_assignment[string(AST:BOOL) = 'true']" >
    <past:Op name='infix::=' pasttype='bind' >
 -    <xsl:apply-templates select="phc:AST_variable" />
 -    <xsl:apply-templates select="  phc:Token_string
 -                                 | phc:Token_int
 -                                 | phc:AST_bin_op
 -                                 | phc:AST_constant" />
 +    <xsl:apply-templates select="AST:PHP_variable" />
 +    <xsl:apply-templates select="  AST:STRING
 +                                 | AST:INT
 +                                 | AST:PHP_bin_op
 +                                 | AST:PHP_constant" />
    </past:Op>
  </xsl:template>

 -<xsl:template match="phc:AST_variable" >
 +<xsl:template match="AST:PHP_variable" >
    <past:Var scope="package" >
      <xsl:attribute name="name" >
 -      <xsl:value-of select="concat( '$',
 phc:Token_variable_name/phc:value )" />
 +      <xsl:value-of select="concat( '$', AST:VARIABLE_NAME/AST:value )"
 />
      </xsl:attribute>
    </past:Var>
  </xsl:template>

 -<xsl:template match="phc:AST_variable[ phc:AST_expr_list/phc:Token_string
 | phc:AST_expr_list/phc:Token_int ]" >
 +<xsl:template match="AST:PHP_variable[ AST:PHP_expr_list/AST:STRING |
 AST:PHP_expr_list/AST:INT ]" >
    <past:Var scope="keyed" viviself="Undef" lvalue="1" >
      <xsl:choose>
 -      <xsl:when test="phc:Token_variable_name/phc:value = '_GET' or
 phc:Token_variable_name/phc:value = '_POST'" >
 +      <xsl:when test="AST:VARIABLE_NAME/AST:value = '_GET' or
 AST:VARIABLE_NAME/AST:value = '_POST'" >
          <past:Var scope="package" >
 -          <xsl:attribute name="name" ><xsl:value-of select="concat( '$',
 phc:Token_variable_name/phc:value )" /></xsl:attribute>
 +          <xsl:attribute name="name" ><xsl:value-of select="concat( '$',
 AST:VARIABLE_NAME/AST:value )" /></xsl:attribute>
          </past:Var>
        </xsl:when>
        <xsl:otherwise>
          <past:Var viviself="PhpArray" scope="package" lvalue="1" >
 -          <xsl:attribute name="name" ><xsl:value-of select="concat( '$',
 phc:Token_variable_name/phc:value )" /></xsl:attribute>
 +          <xsl:attribute name="name" ><xsl:value-of select="concat( '$',
 AST:VARIABLE_NAME/AST:value )" /></xsl:attribute>
          </past:Var>
        </xsl:otherwise>
      </xsl:choose>
 -    <xsl:apply-templates select="  phc:AST_expr_list/phc:Token_string
 -                                 | phc:AST_expr_list/phc:Token_int" />
 +    <xsl:apply-templates select="  AST:PHP_expr_list/AST:STRING
 +                                 | AST:PHP_expr_list/AST:INT" />
    </past:Var>
  </xsl:template>

 -<xsl:template match="phc:AST_constant" >
 +<xsl:template match="AST:PHP_constant" >
    <past:Op name="constant" >
      <past:Val returns="PhpString" >
 -      <xsl:attribute name="value" ><xsl:value-of
 select="phc:Token_constant_name/phc:value" /></xsl:attribute>
 +      <xsl:attribute name="value" ><xsl:value-of
 select="AST:CONSTANT_NAME/AST:value" /></xsl:attribute>
      </past:Val>
    </past:Op>
  </xsl:template>

 -<xsl:template match="phc:Token_string" >
 +<xsl:template match="AST:STRING" >
    <past:Val returns="PhpString" >
 -    <xsl:attribute name="encoding" ><xsl:value-of
 select="phc:value/@encoding" /></xsl:attribute>
 -    <xsl:attribute name="value" ><xsl:value-of select="phc:value"
 /></xsl:attribute>
 +    <xsl:attribute name="encoding" ><xsl:value-of
 select="AST:value/@encoding" /></xsl:attribute>
 +    <xsl:attribute name="value" ><xsl:value-of select="AST:value"
 /></xsl:attribute>
    </past:Val>
  </xsl:template>

 -<xsl:template match="phc:Token_int" >
 +<xsl:template match="AST:INT" >
    <past:Val returns="PhpInteger" >
 -    <xsl:attribute name="value" ><xsl:value-of select="phc:value"
 /></xsl:attribute>
 +    <xsl:attribute name="value" ><xsl:value-of select="AST:value"
 /></xsl:attribute>
    </past:Val>
  </xsl:template>

 -<xsl:template match="phc:Token_bool" >
 +<xsl:template match="AST:BOOL" >
    <past:Val returns="PhpBoolean" >
      <xsl:attribute name="value" ><xsl:choose>
 -      <xsl:when test="phc:value = 'True'"  >1</xsl:when>
 -      <xsl:when test="phc:value = 'False'" >0</xsl:when>
 +      <xsl:when test="AST:value = 'True'"  >1</xsl:when>
 +      <xsl:when test="AST:value = 'False'" >0</xsl:when>
      </xsl:choose></xsl:attribute>
    </past:Val>
  </xsl:template>

 -<xsl:template match="phc:Token_null" >
 +<xsl:template match="AST:BOOL" >
    <past:Val returns="PhpNull" >
      <xsl:attribute name="value" >0</xsl:attribute>
    </past:Val>
  </xsl:template>

  <!-- looks like phc is running into a floating point issue -->
 -<xsl:template match="phc:Token_real" >
 +<xsl:template match="AST:REAL" >
    <past:Val returns='PhpFloat' >
 -    <xsl:attribute name="value" ><xsl:value-of select="phc:source_rep"
 /></xsl:attribute>
 +    <xsl:attribute name="value" ><xsl:value-of select="AST:source_rep"
 /></xsl:attribute>
    </past:Val>
  </xsl:template>

 -<xsl:template match="  phc:value
 -                     | phc:source_rep" >
 +<xsl:template match="  AST:value
 +                     | AST:source_rep" >
    <xsl:value-of select="." />
  </xsl:template>

 -<xsl:template match="phc:AST_if" >
 +<xsl:template match="AST:PHP_if" >
    <past:Op pasttype="if" >
 -    <xsl:apply-templates select="  phc:Token_string
 -                                 | phc:Token_int
 -                                 | phc:Token_real
 -                                 | phc:AST_bin_op
 -                                 | phc:AST_unary_op
 -                                 | phc:AST_variable
 -                                 | phc:AST_constant" />
 +    <xsl:apply-templates select="  AST:STRING
 +                                 | AST:INT
 +                                 | AST:REAL
 +                                 | AST:PHP_bin_op
 +                                 | AST:PHP_unary_op
 +                                 | AST:PHP_variable
 +                                 | AST:PHP_constant" />
      <past:Block blocktype="immediate" >
 -      <xsl:apply-templates select="phc:AST_statement_list[1]" />
 +      <xsl:apply-templates select="AST:PHP_statement_list[1]" />
      </past:Block>
      <past:Block blocktype="immediate" >
 -      <xsl:apply-templates select="phc:AST_statement_list[2]" />
 +      <xsl:apply-templates select="AST:PHP_statement_list[2]" />
      </past:Block>
    </past:Op>
  </xsl:template>

--

Comment:

 Sorry, this language hasn't been hosted in the parrot repository for some
 time.

 I did a search for Plumage/PHP on parrot but was unable to find a
 repository to point you at.

 Regards.

-- 
Ticket URL: <https://trac.parrot.org/parrot/ticket/252#comment:1>
Parrot <https://trac.parrot.org/parrot/>
Parrot Development
_______________________________________________
parrot-tickets mailing list
[email protected]
http://lists.parrot.org/mailman/listinfo/parrot-tickets

Reply via email to