plcopen/pou_variables.ysl2
author Andrey Skvortsov <andrej.skvortzov@gmail.com>
Thu, 28 Sep 2017 12:20:40 +0300
changeset 1831 56b48961cc68
parent 1348 aee0a7eb833a
child 1936 b85b13b1c2ec
permissions -rw-r--r--
fix (old-style-class) Old-style class defined error for most parts of
the code

only PyJS code is left, because it does some fancy tricks and can't be
easily fixed. So far PyJS doesn't support Python3 anyway.
1348
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
     1
include yslt.yml2
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
     2
estylesheet xmlns:ppx="http://www.plcopen.org/xml/tc6_0201"
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
     3
            xmlns:xhtml="http://www.w3.org/1999/xhtml"
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
     4
            xmlns:ns="pou_vars_ns" 
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
     5
            extension-element-prefixes="ns" 
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
     6
            exclude-result-prefixes="ns" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
     7
    
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
     8
    template "text()";
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
     9
    template "text()", mode="var_class";
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    10
    template "text()", mode="var_type";
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    11
    template "text()", mode="var_edit";
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    12
    template "text()", mode="var_debug";
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    13
    
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    14
    variable "project" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    15
        copy "document('project')/project/*";
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    16
    }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    17
    
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    18
    variable "stdlib" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    19
        copy "document('stdlib')/stdlib/*";
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    20
    }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    21
    variable "extensions" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    22
        copy "document('extensions')/extensions/*";
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    23
    }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    24
    
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    25
    function "add_root" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    26
        param "class";
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    27
        param "type";
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    28
        param "edit" > true
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    29
        param "debug" > true
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    30
        value "ns:SetRoot($class, $type, $edit, $debug)";
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    31
    }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    32
    
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    33
    template "ppx:pou" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    34
        call "add_root" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    35
            with "class" > «@pouType»
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    36
            with "type" > «@name»
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    37
        }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    38
        apply "ppx:interface";
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    39
        apply "ppx:actions/ppx:action | ppx:transitions/ppx:transition", mode="variable_list";
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    40
    }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    41
    
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    42
    template "ppx:action" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    43
        call "add_root" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    44
            with "class" > action
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    45
        }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    46
        apply "ancestor::ppx:pou/child::ppx:interface";
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    47
    }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    48
    
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    49
    template "ppx:transition" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    50
        call "add_root" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    51
            with "class" > transition
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    52
        }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    53
        apply "ancestor::ppx:pou/child::ppx:interface";
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    54
    }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    55
    
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    56
    template "ppx:configuration" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    57
        call "add_root" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    58
            with "class" > configuration
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    59
            with "debug" > false
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    60
        }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    61
        apply "ppx:resource", mode="variable_list";
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    62
        apply "ppx:globalVars";
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    63
    }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    64
    
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    65
    template "ppx:resource" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    66
        call "add_root" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    67
            with "class" > resource
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    68
            with "debug" > false
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    69
        }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    70
        apply "ppx:pouInstance | ppx:task/ppx:pouInstance",  mode="variable_list";
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    71
        apply "ppx:globalVars";
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    72
    }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    73
    
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    74
    function "variables_infos" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    75
        param "var_class";
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    76
        foreach "ppx:variable" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    77
            variable "class" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    78
                apply "ppx:type", mode="var_class" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    79
                    with "default_class" > «$var_class»
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    80
                }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    81
            }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    82
            variable "type" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    83
                apply"ppx:type", mode="var_type";
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    84
            }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    85
            variable "edit" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    86
                apply "ppx:type", mode="var_edit";
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    87
            }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    88
            variable "debug" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    89
                apply "ppx:type", mode="var_debug";
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    90
            }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    91
            value "ns:AddVariable(@name, $class, $type, $edit, $debug)";
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    92
        }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    93
    }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    94
    
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    95
    template "ppx:localVars" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    96
        call "variables_infos" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    97
            with "var_class" > Local
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    98
        }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
    99
    }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   100
    
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   101
    template "ppx:globalVars" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   102
        call "variables_infos" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   103
            with "var_class" > Global
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   104
        }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   105
    }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   106
    
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   107
    template "ppx:externalVars" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   108
        call "variables_infos" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   109
            with "var_class" > External
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   110
        }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   111
    }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   112
    
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   113
    template "ppx:tempVars" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   114
        call "variables_infos" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   115
            with "var_class" > Temp
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   116
        }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   117
    }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   118
    
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   119
    template "ppx:inputVars" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   120
        call "variables_infos" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   121
            with "var_class" > Input
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   122
        }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   123
    }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   124
    
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   125
    template "ppx:outputVars" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   126
        call "variables_infos" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   127
            with "var_class" > Output
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   128
        }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   129
    }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   130
    
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   131
    template "ppx:inOutVars" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   132
        call "variables_infos" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   133
            with "var_class" > InOut
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   134
        }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   135
    }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   136
    
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   137
    function "add_variable" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   138
        param "name";
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   139
        param "class";
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   140
        param "type";
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   141
        param "edit" > true
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   142
        param "debug" > true
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   143
        value "ns:AddVariable($name, $class, $type, $edit, $debug)";
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   144
    }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   145
    
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   146
    template "ppx:action", mode="variable_list" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   147
        call "add_variable" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   148
            with "name" > «@name»
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   149
            with "class" > action
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   150
        }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   151
    }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   152
    
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   153
    template "ppx:transition", mode="variable_list" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   154
        call "add_variable" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   155
            with "name" > «@name»
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   156
            with "class" > transition
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   157
        }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   158
    }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   159
    
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   160
    template "ppx:resource", mode="variable_list" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   161
        call "add_variable" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   162
            with "name" > «@name»
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   163
            with "class" > resource
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   164
            with "debug" > false
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   165
        } 
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   166
    }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   167
    
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   168
    template "ppx:pouInstance", mode="variable_list" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   169
        call "add_variable" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   170
            with "name" > «@name»
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   171
            with "class" > program
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   172
            with "type" > «@typeName»
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   173
        }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   174
    }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   175
    
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   176
    template "*[self::ppx:type or self::ppx:baseType]/ppx:derived", mode="var_class" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   177
        param "default_class";
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   178
        variable "type_name", "@name";
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   179
        variable "pou_infos" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   180
            copy """exsl:node-set($project)/ppx:project/ppx:types/ppx:pous/ppx:pou[@name=$type_name] |
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   181
                    exsl:node-set($stdlib)/ppx:project/ppx:types/ppx:pous/ppx:pou[@name=$type_name] |
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   182
                    exsl:node-set($extensions)/ppx:project/ppx:types/ppx:pous/ppx:pou[@name=$type_name]""";
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   183
        }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   184
        choose {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   185
            when "$pou_infos != ''" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   186
                apply "exsl:node-set($pou_infos)", mode="var_class";
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   187
            }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   188
            otherwise {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   189
                value "$default_class"
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   190
            }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   191
        }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   192
    }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   193
    
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   194
    template "ppx:pou", mode="var_class" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   195
        value "@pouType";
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   196
    }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   197
    
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   198
    template "*[self::ppx:type or self::ppx:baseType]/*" mode="var_class" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   199
        param "default_class";
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   200
        value "$default_class";
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   201
    }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   202
  
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   203
    template "*[self::ppx:type or self::ppx:baseType]/ppx:derived", mode="var_type" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   204
        > «@name»
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   205
    }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   206
    
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   207
    template "*[self::ppx:type or self::ppx:baseType]/ppx:array", mode="var_type" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   208
        > ARRAY [
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   209
        foreach "ppx:dimension" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   210
            > «@lower»..«@upper»
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   211
        }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   212
        > ] OF 
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   213
        apply "ppx:baseType", mode="var_type";
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   214
    }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   215
    
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   216
    template "*[self::ppx:type or self::ppx:baseType]/ppx:string", mode="var_type" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   217
        > STRING
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   218
    }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   219
  
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   220
    template "*[self::ppx:type or self::ppx:baseType]/ppx:wstring", mode="var_type" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   221
        > WSTRING
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   222
    }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   223
  
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   224
    template "*[self::ppx:type or self::ppx:baseType]/*", mode="var_type" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   225
        > «local-name()»
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   226
    }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   227
    
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   228
    template "*[self::ppx:type or self::ppx:baseType]/ppx:derived", mode="var_edit" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   229
        variable "type_name", "@name";
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   230
        variable "pou_infos" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   231
            copy "exsl:node-set($project)/ppx:project/ppx:types/ppx:pous/ppx:pou[@name=$type_name]";
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   232
        }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   233
        choose {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   234
            when "$pou_infos != ''" > true
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   235
            otherwise > false
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   236
        }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   237
    }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   238
    
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   239
    template "*[self::ppx:type or self::ppx:baseType]/ppx:array", mode="var_edit" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   240
        apply "ppx:baseType", mode="var_edit";
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   241
    }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   242
    
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   243
    template "*[self::ppx:type or self::ppx:baseType]/*", mode="var_edit" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   244
        > false
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   245
    }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   246
    
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   247
    template "*[self::ppx:type or self::ppx:baseType]/ppx:derived", mode="var_debug" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   248
        variable "type_name", "@name";
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   249
        variable "datatype_infos" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   250
            copy """exsl:node-set($project)/ppx:project/ppx:types/ppx:pous/ppx:pou[@name=$type_name] |
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   251
                    exsl:node-set($project)/ppx:project/ppx:types/ppx:dataTypes/ppx:dataType[@name=$type_name] |
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   252
                    exsl:node-set($stdlib)/ppx:project/ppx:types/ppx:dataTypes/ppx:dataType[@name=$type_name] |
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   253
                    exsl:node-set($extensions)/ppx:project/ppx:types/ppx:dataTypes/ppx:dataType[@name=$type_name]""";
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   254
        }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   255
        choose {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   256
            when "$datatype_infos != ''" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   257
                apply "exsl:node-set($datatype_infos)", mode="var_debug";
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   258
            }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   259
            otherwise > false
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   260
        }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   261
    }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   262
    
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   263
    template "ppx:pou", mode="var_debug" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   264
        > true
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   265
    }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   266
    
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   267
    template "*[self::ppx:type or self::ppx:baseType]/ppx:array", mode="var_debug" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   268
        > false
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   269
    }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   270
    
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   271
    template "*[self::ppx:type or self::ppx:baseType]/ppx:struct", mode="var_debug" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   272
        > false
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   273
    }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   274
    
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   275
    template "*[self::ppx:type or self::ppx:baseType]/*", mode="var_debug" {
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   276
        > true
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   277
    }
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   278
    
aee0a7eb833a Fixed pou variables instance information loading stylesheet
Laurent Bessard
parents:
diff changeset
   279
}