# HG changeset patch # User Edouard Tisserant # Date 1519049736 -3600 # Node ID c266fbaae0f6ad026a22004454ad4daad95e895d # Parent b9a3f771aaab9096d989b6d531040452cb2178f5 Better writing of some xpath added in previous commits about XSLT optimization. diff -r b9a3f771aaab -r c266fbaae0f6 plcopen/instances_path.xslt --- a/plcopen/instances_path.xslt Mon Feb 19 15:14:30 2018 +0100 +++ b/plcopen/instances_path.xslt Mon Feb 19 15:15:36 2018 +0100 @@ -6,7 +6,7 @@ <xsl:variable name="project" select="ns:GetProject()"/> <xsl:variable name="stdlib" select="ns:GetStdLibs()"/> <xsl:variable name="extensions" select="ns:GetExtensions()"/> - <xsl:variable name="all" select="$project | $stdlib | $extensions"/> + <xsl:variable name="all_types" select="($project | $stdlib | $extensions)/ppx:types"/> <xsl:template match="ppx:project"> <xsl:apply-templates select="ppx:instances/ppx:configurations/ppx:configuration"/> </xsl:template> @@ -45,7 +45,7 @@ <xsl:variable name="type_name"> <xsl:value-of select="@typeName"/> </xsl:variable> - <xsl:apply-templates select="$all/ppx:types/ppx:pous/ppx:pou[@name=$type_name] | $all/ppx:types/ppx:dataTypes/ppx:dataType[@name=$type_name]"> + <xsl:apply-templates select="$all_types/ppx:pous/ppx:pou[@name=$type_name] | $all_types/ppx:dataTypes/ppx:dataType[@name=$type_name]"> <xsl:with-param name="instance_path"> <xsl:value-of select="$pou_instance_path"/> </xsl:with-param> @@ -92,7 +92,7 @@ <xsl:variable name="type_name"> <xsl:value-of select="@name"/> </xsl:variable> - <xsl:apply-templates select="$all/ppx:types/ppx:pous/ppx:pou[@name=$type_name] | $all/ppx:types/ppx:dataTypes/ppx:dataType[@name=$type_name]"> + <xsl:apply-templates select="$all_types/ppx:pous/ppx:pou[@name=$type_name] | $all_types/ppx:dataTypes/ppx:dataType[@name=$type_name]"> <xsl:with-param name="instance_path"> <xsl:value-of select="$variable_path"/> </xsl:with-param> diff -r b9a3f771aaab -r c266fbaae0f6 plcopen/instances_path.ysl2 --- a/plcopen/instances_path.ysl2 Mon Feb 19 15:14:30 2018 +0100 +++ b/plcopen/instances_path.ysl2 Mon Feb 19 15:15:36 2018 +0100 @@ -15,8 +15,7 @@ variable "extensions", "ns:GetExtensions()"; - variable "all", "$project | $stdlib | $extensions"; - + variable "all_types", "($project | $stdlib | $extensions)/ppx:types"; template "ppx:project" { apply "ppx:instances/ppx:configurations/ppx:configuration"; @@ -45,8 +44,8 @@ } otherwise { variable "type_name" > «@typeName» - apply """$all/ppx:types/ppx:pous/ppx:pou[@name=$type_name] | \ - $all/ppx:types/ppx:dataTypes/ppx:dataType[@name=$type_name]""" { + apply """$all_types/ppx:pous/ppx:pou[@name=$type_name] | \ + $all_types/ppx:dataTypes/ppx:dataType[@name=$type_name]""" { with "instance_path" > «$pou_instance_path» } } @@ -83,8 +82,8 @@ } otherwise { variable "type_name" > «@name» - apply """$all/ppx:types/ppx:pous/ppx:pou[@name=$type_name] | \ - $all/ppx:types/ppx:dataTypes/ppx:dataType[@name=$type_name]""" { + apply """$all_types/ppx:pous/ppx:pou[@name=$type_name] | \ + $all_types/ppx:dataTypes/ppx:dataType[@name=$type_name]""" { with "instance_path" > «$variable_path» } } diff -r b9a3f771aaab -r c266fbaae0f6 plcopen/pou_variables.xslt --- a/plcopen/pou_variables.xslt Mon Feb 19 15:14:30 2018 +0100 +++ b/plcopen/pou_variables.xslt Mon Feb 19 15:15:36 2018 +0100 @@ -9,7 +9,7 @@ <xsl:variable name="project" select="ns:GetProject()"/> <xsl:variable name="stdlib" select="ns:GetStdLibs()"/> <xsl:variable name="extensions" select="ns:GetExtensions()"/> - <xsl:variable name="all" select="$project | $stdlib | $extensions"/> + <xsl:variable name="all_types" select="($project | $stdlib | $extensions)/ppx:types"/> <xsl:template name="add_root"> <xsl:param name="class"/> <xsl:param name="type"/> @@ -205,7 +205,7 @@ <xsl:template mode="var_class" match="*[self::ppx:type or self::ppx:baseType]/ppx:derived"> <xsl:param name="default_class"/> <xsl:variable name="type_name" select="@name"/> - <xsl:variable name="pou_infos" select="$all/ppx:types/ppx:pous/ppx:pou[@name=$type_name]"/> + <xsl:variable name="pou_infos" select="$all_types/ppx:pous/ppx:pou[@name=$type_name]"/> <xsl:choose> <xsl:when test="$pou_infos"> <xsl:apply-templates mode="var_class" select="$pou_infos"/> @@ -264,7 +264,7 @@ </xsl:template> <xsl:template mode="var_debug" match="*[self::ppx:type or self::ppx:baseType]/ppx:derived"> <xsl:variable name="type_name" select="@name"/> - <xsl:variable name="datatype_infos" select=" $project/ppx:types/ppx:pous/ppx:pou[@name=$type_name] | $all/ppx:types/ppx:dataTypes/ppx:dataType[@name=$type_name] "/> + <xsl:variable name="datatype_infos" select=" $project/ppx:types/ppx:pous/ppx:pou[@name=$type_name] | $all_types/ppx:dataTypes/ppx:dataType[@name=$type_name] "/> <xsl:choose> <xsl:when test="$datatype_infos"> <xsl:apply-templates mode="var_debug" select="$datatype_infos"/> diff -r b9a3f771aaab -r c266fbaae0f6 plcopen/pou_variables.ysl2 --- a/plcopen/pou_variables.ysl2 Mon Feb 19 15:14:30 2018 +0100 +++ b/plcopen/pou_variables.ysl2 Mon Feb 19 15:15:36 2018 +0100 @@ -17,7 +17,7 @@ variable "extensions", "ns:GetExtensions()"; - variable "all", "$project | $stdlib | $extensions"; + variable "all_types", "($project | $stdlib | $extensions)/ppx:types"; function "add_root" { param "class"; @@ -173,7 +173,7 @@ template "*[self::ppx:type or self::ppx:baseType]/ppx:derived", mode="var_class" { param "default_class"; variable "type_name", "@name"; - variable "pou_infos", "$all/ppx:types/ppx:pous/ppx:pou[@name=$type_name]"; + variable "pou_infos", "$all_types/ppx:pous/ppx:pou[@name=$type_name]"; choose { when "$pou_infos" { apply "$pou_infos", mode="var_class"; @@ -239,7 +239,7 @@ variable "type_name", "@name"; variable "datatype_infos", """ \ $project/ppx:types/ppx:pous/ppx:pou[@name=$type_name] | \ - $all/ppx:types/ppx:dataTypes/ppx:dataType[@name=$type_name] \ + $all_types/ppx:dataTypes/ppx:dataType[@name=$type_name] \ """; choose { when "$datatype_infos" {