I've used gcc-xml (apparently has been superseded by another tool now) when I've needed this sort of thing in the past. It has the advantage of being a real C parser rather than a jumble of regexes.
Please don't be rudely dismissive of new work, even when it seems that someone doesn't know much. The Show HN guidelines specifically emphasize this: https://news.ycombinator.com/showhn.html.
You're right, that's kind of why I named the bash command 'proto' instead of 'cproto', but maybe that's not enough. Any suggestions? I'll change it later today.
I should step back some from it being a bad name... It's actually a great name, it just conflicts with an in-use library that does substantially the same thing for another platform.
Is there a convention where the 'node-' prefix is off-limits for any reason? I don't know if it's really any better but if this were 'node-cproto' I wouldn't have commented.
The other option would be to do some word-play name like 'domesticator'.
Would there be something that goes the other way? Given a JSON input generates C structs and efficient serialization/deserialization for given input? It could be useful for C++ too but generate classes instead. I'm aware of gsoap which did this for wsdl and generated code for use by SOAP xml clients and servers but not sure if anyone has done this for json
JSONedit has (experimental) C++ code generator that serializes and deserializes JSON to/from object (default name for class is "Settings" and it uses json-cpp 0.5 as parser and generator): http://tomeko.net/software/JSONedit/cpp_class_generator.php
While it's not quite what you want (as the specification language is not JSON---it's more like C declarations), "protobufs" allow you to generate serializers and de-serializers in a number of languages.
29 comments
[ 4.2 ms ] story [ 76.1 ms ] threadhttps://en.wikipedia.org/wiki/Compilers:_Principles,_Techniq...
http://invisible-island.net/cproto/cproto.html
Is there a convention where the 'node-' prefix is off-limits for any reason? I don't know if it's really any better but if this were 'node-cproto' I wouldn't have commented.
The other option would be to do some word-play name like 'domesticator'.
http://github.com/google/protobuf
https://thrift.apache.org/