-/* Cycript - Optimizing JavaScript Compiler/Runtime
- * Copyright (C) 2009-2015 Jay Freeman (saurik)
+/* Cycript - The Truly Universal Scripting Language
+ * Copyright (C) 2009-2016 Jay Freeman (saurik)
*/
/* GNU Affero General Public License, Version 3 {{{ */
}
struct CYKey {
+ unsigned priority_ = 0;
+
std::string code_;
unsigned flags_;
};
CYCXString spelling(cursor);
std::string name(spelling);
std::ostringstream value;
+ unsigned priority(2);
unsigned flags(0);
/*CXSourceLocation location(clang_getCursorLocation(cursor));
} break;
case CXCursor_StructDecl: {
- if (!clang_isCursorDefinition(cursor))
- goto skip;
if (spelling[0] == '\0')
goto skip;
+ if (!clang_isCursorDefinition(cursor))
+ priority = 1;
std::ostringstream types;
std::ostringstream names;
}
}));
+ value << "new Type([" << types.str() << "],[" << names.str() << "]).withName(\"" << name << "\")";
name += "$cy";
- value << "new Type([" << types.str() << "],[" << names.str() << "])";
} break;
case CXCursor_TypedefDecl: {
{
CYKey &key(baton.keys[name]);
- key.code_ = value.str();
- key.flags_ = flags;
+ if (key.priority_ < priority) {
+ key.priority_ = priority;
+ key.code_ = value.str();
+ key.flags_ = flags;
+ }
}
skip: