Open carueda opened 5 years ago
Antlr (https://www.antlr.org) makes writing that sort of thing really easy.
Thanks for the suggestion. When the times comes, https://github.com/lihaoyi/fastparse/ would actually be my first option as I have other Scala projects already using it and it's simply great.
Just to note that I've been having a great experience with cats-parse in some other project where I successfully migrated from fastparse, which, unfortunately seems like it is not going to be updated to Scala 3 any time soon.
The use of the Lightbend/Typesafe Config library itself for purposes of parsing the input used to generate the wrapper has a number of limitations and counter-intuitive effects, in concrete when doing the automatic type detection from given values (NOTE: explicit types are not an issue). See for example #41, #50, #46.
This is not a fault of that library but rather a consequence of using it to infer the types. In particular, note that Lightbend/Typesafe Config:
getInt
,getDouble
, etc., so, in other words, it defers to the user to decide how to access the value.The proposal here is to define a proper syntax/language more appropriate for schema definition purposes and, along with that, implement/use a corresponding parsing mechanism. Although tscfg is not yet v1, perhaps consider forcing the new proper syntax as the default in some stable version, while also adding an option to indicate the particular input language.
Reactions/comments welcome.