If we're golfing:
https://github.com/quartzjer/js0n/blob/master/js0n.c
Appears to work the same way, though it doesn't bubble back type information.
(Also, the `goto * go[ * cur];` trick was pretty crazy the first time I saw it)
https://github.com/quartzjer/js0n/blob/master/js0n.c
Appears to work the same way, though it doesn't bubble back type information.
(Also, the `goto * go[ * cur];` trick was pretty crazy the first time I saw it)
http://docs.oracle.com/cd/E19205-01/820-7598/bjabt/index.html
And LLVM: http://blog.llvm.org/2010/01/address-of-label-and-indirect-branches.htmlAnswer: C99, borrowed from a GCC extension. http://gcc.gnu.org/onlinedocs/gcc-4.1.2/gcc/Designated-Inits...
As far as js0n, it's a great example of cool things that can be done in gcc, but isn't really useful at all since it only handles the first level of depth and has no typing. The jsmn, with typing and nesting, is actually usable, also compiles a lot smaller than the big tables in js0n.