I'm trying to write an IDL to 
describe 
http://bulletphysics.org/Bullet/BulletFull/btSoftBody_8h_source.html#l00486, 
basically:

class btSoftBody {
  struct Joint {
    struct eType {
      enum _ {
        Linear, Angular, Contact
      };
    };
  };
}; 

However, I can't figure out how to express this in my .idl file. Based 
on 
https://kripken.github.io/emscripten-site/docs/porting/connecting_cpp_and_javascript/WebIDL-Binder.html#enums,
 
I tried:

enum btSoftBody_Joint_eType__ {
  "btSoftBody::Joint::eType::Linear",
  "btSoftBody::Joint::eType::Angular",
  "btSoftBody::Joint::eType::Contact"
};

[Prefix="btSoftBody::Joint::"]
interface eType {
};

... // So on for Joint and btSoftBody.

But that gives me:

Traceback (most recent call last):
  File 
"/Users/k/emsdk_portable/emscripten/incoming/tools/webidl_binder.py", line 
709, in <module>
    raise Exception("Illegal enum value %s" % value)

So then I tried:

enum btSoftBody_Joint_eType__ {
  "eType::Linear",
  "eType::Angular",
  "eType::Contact"
};

This gets further (it generates the cpp bindings) but when it tries to 
compile them, the types don't resolve to anything:

glue.cpp:4539:1: error: unknown type name 'btSoftBody_Joint_eType__'
btSoftBody_Joint_eType__ EMSCRIPTEN_KEEPALIVE 
emscripten_enum_btSoftBody_Joint_eType___Linear() {
^
glue.cpp:4539:26: error: expected unqualified-id
btSoftBody_Joint_eType__ EMSCRIPTEN_KEEPALIVE 
emscripten_enum_btSoftBody_Joint_eType___Linear() {
                         ^
/Users/k/emsdk_portable/emscripten/incoming/system/include/emscripten/emscripten.h:64:30:
 
note: expanded from macro 'EMSCRIPTEN_KEEPALIVE'
#define EMSCRIPTEN_KEEPALIVE __attribute__((used))
                             ^
glue.cpp:4542:1: error: unknown type name 'btSoftBody_Joint_eType__'
...

Does anyone know what I'm doing wrong?  Or how to express this?

-- 
You received this message because you are subscribed to the Google Groups 
"emscripten-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to