diff options
Diffstat (limited to 'src/parseTools.js')
-rw-r--r-- | src/parseTools.js | 19 |
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 { |