From 7830940a9a576099d5b1f04cb512b29e9d11e114 Mon Sep 17 00:00:00 2001 From: Kim Alvefur Date: Wed, 2 Aug 2023 12:04:40 +0200 Subject: [PATCH] Handle special-case numbers in Lua encoder --- pkg/yqlib/encoder_lua.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/pkg/yqlib/encoder_lua.go b/pkg/yqlib/encoder_lua.go index dafb7d24..92b2d708 100644 --- a/pkg/yqlib/encoder_lua.go +++ b/pkg/yqlib/encoder_lua.go @@ -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 // lower case 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: return writeString(writer, node.Value) }