pantoniou / libfyaml

Fully feature complete YAML parser and emitter, supporting the latest YAML spec and passing the full YAML testsuite.
MIT License
241 stars 74 forks source link

Boolean values for YAML v1.2 #52

Open benmordaunt opened 2 years ago

benmordaunt commented 2 years ago

The v1.2 spec states that "true", "false", "on", "off" etc. should be interpreted as their boolean value counterparts. As this library claims to support YAML 1.2, how is that handled, or do I just have to strcmp regardless?

Thanks

pantoniou commented 2 years ago

Well, the problem is that C does not have a native object model that maps directly to a YAML core schema.

So, a boolean as defined by the core schema cannot right now automatically converted to a 'C' bool type.

There is some work being done to have user-defined schemas that would handle these cases (among lots of others) but nothing is ready yet.

For now you can extract the string and strcmp(), perhaps even using the scanf family of functions of the library.

benjaminmordaunt commented 2 years ago

What's stopping {"true", "on", etc.} -> 1 (char), {"false", "off", etc.} -> 0 (char) ?

yrashk commented 1 year ago

👍 Looking into this issue as well; wondering if you had any more thoughts on this?

I started writing some small scalar helps for handling types.

pantoniou commented 1 year ago

FWIW work is underway to support the builtin YAML spec schemas. That will support what you need among other things.