DeHydra
Jump to navigation
Jump to search
DeHydra is a tool inspired by UNO.
DeHydra integrates a low level C++ core and a JavaScript engine for user scripts. More info.
C++ core deals with parsing, name resolution, scoping, control flow graphs.
A user can utilize the JS engine to:
- Write scripts using that core to accomplish custom analyses without recompilation.
- Work on these scripts to make them progressively as sound and as complete as possible.
Quickstart
Step 1.
In a new file(test.js) define functions process & path_end:
function process(vars, state) {
if (!state)
state = 0;
print(state + ": " + vars);
}
function path_end(state) {
print(state)
}
More Details
Bugs
- P1: Need information about static variables (both global definitions and statics inside functions)
- P2: Need information about typedefs to properly determine type hierarchies
- P3: Need information about namespaces
- P2: Won't process jsemit.ii or jsgc.ii from actionmonkey correctly (crashes)
- P1: Won't process toolkit/components/places/src/*.ii correctly (asserts)
- P3: It would be nice if dehydra kept information about types and typedefs around, so that when the types were used the script has immediate access to the type declarations, instead of having to cache them (not a big deal)