plcopen/instance_tagname.ysl2
author Edouard Tisserant
Tue, 20 Aug 2019 10:08:11 +0200
changeset 2631 b5402859dfad
parent 1950 752ec68da94d
permissions -rw-r--r--
Swap CTN code gen and Libraries code generation order. In general library part of an extension needs to be computed before CTN part.
1936
b85b13b1c2ec YSLT auto indent trick is useless here, added yslt_noindent.yml2, regenerated XSLT files
Edouard Tisserant <edouard.tisserant@gmail.com>
parents: 1351
diff changeset
     1
include yslt_noindent.yml2
b85b13b1c2ec YSLT auto indent trick is useless here, added yslt_noindent.yml2, regenerated XSLT files
Edouard Tisserant <edouard.tisserant@gmail.com>
parents: 1351
diff changeset
     2
istylesheet xmlns:ppx="http://www.plcopen.org/xml/tc6_0201"
1351
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
     3
            xmlns:xhtml="http://www.w3.org/1999/xhtml"
1950
752ec68da94d GetPouInstanceTagName optimized with XSLTModelQuery.
Edouard Tisserant
parents: 1936
diff changeset
     4
            xmlns:ns="beremiz" 
1351
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
     5
            extension-element-prefixes="ns" 
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
     6
            exclude-result-prefixes="ns" {
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
     7
    
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
     8
    param "instance_path";
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
     9
    
1950
752ec68da94d GetPouInstanceTagName optimized with XSLTModelQuery.
Edouard Tisserant
parents: 1936
diff changeset
    10
    variable "project", "ns:GetProject()";
1351
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    11
    
1950
752ec68da94d GetPouInstanceTagName optimized with XSLTModelQuery.
Edouard Tisserant
parents: 1936
diff changeset
    12
    variable "stdlib", "ns:GetStdLibs()";
752ec68da94d GetPouInstanceTagName optimized with XSLTModelQuery.
Edouard Tisserant
parents: 1936
diff changeset
    13
752ec68da94d GetPouInstanceTagName optimized with XSLTModelQuery.
Edouard Tisserant
parents: 1936
diff changeset
    14
    variable "extensions", "ns:GetExtensions()";
752ec68da94d GetPouInstanceTagName optimized with XSLTModelQuery.
Edouard Tisserant
parents: 1936
diff changeset
    15
752ec68da94d GetPouInstanceTagName optimized with XSLTModelQuery.
Edouard Tisserant
parents: 1936
diff changeset
    16
    variable "all_types", "($project | $stdlib | $extensions)/ppx:types";
1351
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    17
    
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    18
    function "element_name" {
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    19
        param "path";
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    20
        choose {
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    21
            when "contains($path,'.')" > «substring-before($path,'.')»
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    22
            otherwise > «$path»
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    23
        }
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    24
    }
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    25
    
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    26
    function "next_path" {
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    27
        param "path";
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    28
        choose {
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    29
            when "contains($path,'.')" > «substring-after($path,'.')»
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    30
        }
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    31
    }
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    32
    
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    33
    template "ppx:project" {
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    34
        variable "config_name" {
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    35
            call "element_name" {
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    36
                with "path", "$instance_path";
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    37
            }
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    38
        }
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    39
        apply "ppx:instances/ppx:configurations/ppx:configuration[@name=$config_name]" {
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    40
            with "element_path" {
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    41
                call "next_path" {
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    42
                    with "path", "$instance_path";
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    43
                }
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    44
            }
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    45
        }
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    46
    }
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    47
    
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    48
    template "ppx:configuration" {
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    49
        param "element_path";
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    50
        choose {
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    51
            when "$element_path!=''" {
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    52
                variable "child_name" {
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    53
                    call "element_name" {
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    54
                        with "path", "$element_path";
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    55
                    }
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    56
                }
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    57
                apply "ppx:resource[@name=$child_name] | ppx:globalVars/ppx:variable[@name=$child_name]/ppx:type/*[self::ppx:derived or self::ppx:struct or self::ppx:array]" {
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    58
                    with "element_path" {
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    59
                        call "next_path" {
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    60
                            with "path", "$element_path";
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    61
                        }
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    62
                    }
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    63
                }
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    64
            }
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    65
            otherwise {
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    66
                value "ns:ConfigTagName(@name)";
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    67
            }
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    68
        }
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    69
    }
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    70
    
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    71
    template "ppx:resource" {
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    72
        param "element_path";
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    73
        choose {
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    74
            when "$element_path!=''" {
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    75
                variable "child_name" {
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    76
                    call "element_name" {
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    77
                        with "path" > «$element_path»
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    78
                    }
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    79
                }
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    80
                apply "ppx:pouInstance[@name=$child_name] | ppx:task/ppx:pouInstance[@name=$child_name] | ppx:globalVars/ppx:variable[@name=$child_name]/ppx:type/*[self::ppx:derived or self::ppx:struct or self::ppx:array]" {
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    81
                    with "element_path" {
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    82
                        call "next_path" {
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    83
                            with "path", "$element_path";
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    84
                        }
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    85
                    }
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    86
                }
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    87
            }
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    88
            otherwise {
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    89
                value "ns:ResourceTagName(ancestor::ppx:configuration/@name, @name)";
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    90
            }
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    91
        }
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    92
    }
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    93
    
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    94
    template "ppx:pouInstance" {
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    95
        param "element_path";
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    96
        variable "type_name" > «@typeName»
1950
752ec68da94d GetPouInstanceTagName optimized with XSLTModelQuery.
Edouard Tisserant
parents: 1936
diff changeset
    97
        apply """$all_types/ppx:pous/ppx:pou[@name=$type_name] | \
752ec68da94d GetPouInstanceTagName optimized with XSLTModelQuery.
Edouard Tisserant
parents: 1936
diff changeset
    98
                 $all_types/ppx:dataTypes/ppx:dataType[@name=$type_name]""" {
1351
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
    99
            with "element_path", "$element_path";
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   100
        }
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   101
    }
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   102
    
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   103
    template "ppx:pou" {
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   104
        param "element_path";
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   105
        choose {
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   106
            when "$element_path!=''" {
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   107
                variable "child_name" {
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   108
                    call "element_name" {
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   109
                        with "path", "$element_path";
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   110
                    }
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   111
                }
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   112
                apply "ppx:interface/*/ppx:variable[@name=$child_name]/ppx:type/*[self::ppx:derived or self::ppx:struct or self::ppx:array]" {
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   113
                    with "element_path" {
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   114
                        call "next_path" {
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   115
                            with "path", "$element_path";
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   116
                        }
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   117
                    }
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   118
                }
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   119
                apply "ppx:actions/ppx:action[@name=$child_name] | ppx:transitions/ppx:transition[@name=$child_name]";
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   120
            }
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   121
            otherwise {
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   122
                variable "name" > «@name»
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   123
                value "ns:PouTagName($name)";
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   124
            }
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   125
        }
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   126
    }
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   127
    
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   128
    template "ppx:action" {
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   129
        value "ns:ActionTagName(ancestor::ppx:pou/@name, @name)";
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   130
    }
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   131
    
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   132
    template "ppx:transition" {
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   133
        value "ns:TransitionTagName(ancestor::ppx:pou/@name, @name)";
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   134
    }
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   135
    
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   136
    template "ppx:dataType" {
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   137
        param "element_path";
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   138
        apply "ppx:baseType/*[self::ppx:derived or self::ppx:struct or self::ppx:array]" {
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   139
            with "element_path", "$element_path";
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   140
        }
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   141
    }
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   142
    
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   143
    template "ppx:derived" {
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   144
        param "element_path";
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   145
        variable "type_name" > «@name»
1950
752ec68da94d GetPouInstanceTagName optimized with XSLTModelQuery.
Edouard Tisserant
parents: 1936
diff changeset
   146
        apply """$all_types/ppx:pous/ppx:pou[@name=$type_name] | \
752ec68da94d GetPouInstanceTagName optimized with XSLTModelQuery.
Edouard Tisserant
parents: 1936
diff changeset
   147
                 $all_types/ppx:dataTypes/ppx:dataType[@name=$type_name]""" {
1351
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   148
            with "element_path", "$element_path";
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   149
        }
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   150
    }
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   151
    
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   152
    template "ppx:array" {
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   153
        param "element_path";
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   154
        apply "ppx:baseType/*[self::ppx:derived or self::ppx:struct or self::ppx:array]" {
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   155
            with "element_path", "$element_path";
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   156
        }
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   157
    }
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   158
    
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   159
    template "ppx:struct" {
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   160
        param "element_path";
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   161
        variable "child_name" {
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   162
            call "element_name" {
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   163
                with "path", "$element_path";
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   164
            }
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   165
        }
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   166
        apply "ppx:variable[@name=$child_name]/ppx:type/*[self::ppx:derived or self::ppx:struct or self::ppx:array]" {
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   167
            with "element_path" {
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   168
                call "next_path" {
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   169
                    with "path", "$element_path";
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   170
                }
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   171
            }
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   172
        }
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   173
    }
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   174
    
a546a63ce1bf Fixed pou tagname of instance path computing stylesheet
Laurent Bessard
parents:
diff changeset
   175
}