Handle special-case numbers in Lua encoder

This commit is contained in:
Kim Alvefur 2023-08-02 12:04:40 +02:00
parent 32277e2c7c
commit 7830940a9a

View File

@ -180,6 +180,22 @@ func (le *luaEncoder) encodeAny(writer io.Writer, node *yaml.Node) error {
// Yaml 1.2 has case variation e.g. True, FALSE etc but Lua only has // Yaml 1.2 has case variation e.g. True, FALSE etc but Lua only has
// lower case // lower case
return writeString(writer, strings.ToLower(node.Value)) return writeString(writer, strings.ToLower(node.Value))
case "!!int":
if strings.HasPrefix(node.Value, "0o") {
panic("Lua encoder NYI -- octal") // FIXME
}
return writeString(writer, strings.ToLower(node.Value))
case "!!float":
switch strings.ToLower(node.Value) {
case ".inf":
return writeString(writer, "(1/0)")
case "-.inf":
return writeString(writer, "(-1/0)")
case ".nan":
return writeString(writer, "(0/0)")
default:
return writeString(writer, node.Value)
}
default: default:
return writeString(writer, node.Value) return writeString(writer, node.Value)
} }