aboutsummaryrefslogtreecommitdiff
path: root/src/parseTools.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/parseTools.js')
-rw-r--r--src/parseTools.js19
1 files changed, 15 insertions, 4 deletions
diff --git a/src/parseTools.js b/src/parseTools.js
index 7cf0fa0b..51988753 100644
--- a/src/parseTools.js
+++ b/src/parseTools.js
@@ -156,14 +156,19 @@ function splitTokenList(tokens) {
if (tokens.slice(-1)[0].text != ',') tokens.push({text:','});
var ret = [];
var seg = [];
- tokens.forEach(function(token) {
- if (token.text == ',') {
+ var SPLITTERS = searchable(',', 'to'); // 'to' can separate parameters as well...
+ for (var i = 0; i < tokens.length; i++) {
+ var token = tokens[i];
+ if (token.text in SPLITTERS) {
ret.push(seg);
seg = [];
+ } else if (token.text == ';') {
+ ret.push(seg);
+ break;
} else {
seg.push(token);
}
- });
+ }
return ret;
}
@@ -269,7 +274,13 @@ function parseParamTokens(params) {
// Segment ==> Parameter
function parseLLVMSegment(segment) {
- if (segment[1].text in PARSABLE_LLVM_FUNCTIONS) {
+ if (segment.length == 1) {
+ return {
+ intertype: 'value',
+ ident: segment[0].text,
+ type: '?',
+ };
+ } else if (segment[1].text in PARSABLE_LLVM_FUNCTIONS) {
return parseLLVMFunctionCall(segment);
} else {
return {