Строка 137: |
Строка 137: |
| local serialised = {} | | local serialised = {} |
| if tag.__name then | | if tag.__name then |
− | serialised [#serialised + 1] = { '<' .. tag.__name } | + | serialised [#serialised + 1] = '<' .. tag.__name |
| for attr, value in pairs (tag) do | | for attr, value in pairs (tag) do |
| if type (attr) ~= 'number' and attr ~= '__name' and value ~= '' then | | if type (attr) ~= 'number' and attr ~= '__name' and value ~= '' then |
Строка 153: |
Строка 153: |
| serialised [#serialised + 1] = '</' .. tag.__name .. '>' | | serialised [#serialised + 1] = '</' .. tag.__name .. '>' |
| end | | end |
− |
| + | |
| return concat (serialised, ' ') | | return concat (serialised, ' ') |
| end | | end |
Строка 167: |
Строка 167: |
| fragment = (V'tag' + C (V'char' ^ 1)) ^ 0, | | fragment = (V'tag' + C (V'char' ^ 1)) ^ 0, |
| tag = Ct (V'open' * V'fragment' * V'close' + V'void') / function (tbl) | | tag = Ct (V'open' * V'fragment' * V'close' + V'void') / function (tbl) |
− | local tag = setmetatable ({ __name = tbl.__name }, { __tostring = serialise }) | + | --local tag = setmetatable ({ __name = tbl.__name }, { __tostring = serialise }) |
− | --local tag = { __name = tbl.__name } | + | local tag = { __name = tbl.__name } |
| for _, attr in ipairs (tbl.__attrs) do | | for _, attr in ipairs (tbl.__attrs) do |
| tag [attr.name] = attr.value | | tag [attr.name] = attr.value |