plcopen/instance_tagname.ysl2
author Edouard Tisserant
Tue, 02 Oct 2018 15:52:11 +0200
changeset 2306 908471b344ba
parent 1950 752ec68da94d
permissions -rw-r--r--
Some cleanup in WampClient and added functions that are usefull for extensions that need to use pub/sub.
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
}