JavaScript
var line = "negative seventeen million thirty five";
var l = line.split(" ");
var o = {
"negative": {"v": "-", "g": -1},
"zero": {"v": 0, "g": 0},
"one": {"v": 1, "g": 0},
"two": {"v": 2, "g": 0},
"three": {"v": 3, "g": 0},
"four": {"v": 4, "g": 0},
"five": {"v": 5, "g": 0},
"six": {"v": 6, "g": 0},
"seven": {"v": 7, "g": 0},
"eight": {"v": 8, "g": 0},
"nine": {"v": 9, "g": 0},
"ten": {"v": 10, "g": 1},
"eleven": {"v": 11, "g": 1},
"twelve": {"v": 12, "g": 1},
"thirteen": {"v": 13, "g": 1},
"fourteen": {"v": 14, "g": 1},
"fifteen": {"v": 15, "g": 1},
"sixteen": {"v": 16, "g": 1},
"seventeen": {"v": 17, "g": 1},
"eighteen": {"v": 18, "g": 1},
"nineteen": {"v": 19, "g": 1},
"twenty": {"v": 20, "g": 2},
"thirty": {"v": 30, "g": 2},
"forty": {"v": 40, "g": 2},
"fifty": {"v": 50, "g": 2},
"sixty": {"v": 60, "g": 2},
"seventy": {"v": 70, "g": 2},
"eighty": {"v": 80, "g": 2},
"ninety": {"v": 90, "g": 2},
"hundred": {"v": 100, "g": 3},
"thousand": {"v": 1000, "g": 3},
"million": {"v": 1000000, "g": 3}
};
var s = 0;
var f = false;
for (var i = 0; i < l.length; i++) {
if (o[l[i]].g === -1 || f) {
f = false;
continue;
}
if ((o[l[i]].g === 0 || o[l[i]].g === 1) && o[l[i+1]] && o[l[i+1]].g === 3) {
s += o[l[i]].v*o[l[i+1]].v;
f=true;
continue;
}
s += o[l[i]].v;
}
if (o[l[0]].g === -1 && s > 0) {
s *= -1;
}
console.log(s);