From 2d58147ca582c388d8e037695f251142efab7eaf Mon Sep 17 00:00:00 2001 From: Sean Callanan Date: Tue, 9 Feb 2010 01:50:54 +0000 Subject: [PATCH] Updated the enhanced disassembly library to produce whitespace tokens in the right places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95645 91177308-0d34-0410-b5e6-96231b3b80d8 --- tools/edis/EDToken.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/tools/edis/EDToken.cpp b/tools/edis/EDToken.cpp index 9408305d4bb..cd79152e359 100644 --- a/tools/edis/EDToken.cpp +++ b/tools/edis/EDToken.cpp @@ -106,11 +106,28 @@ int EDToken::tokenize(std::vector &tokens, bool readOpcode = false; + const char *wsPointer = asmTokens.begin()->getLoc().getPointer(); + for (tokenIterator = asmTokens.begin(); tokenIterator != asmTokens.end(); ++tokenIterator) { SMLoc tokenLoc = tokenIterator->getLoc(); + const char *tokenPointer = tokenLoc.getPointer(); + + if(tokenPointer > wsPointer) { + unsigned long wsLength = tokenPointer - wsPointer; + + EDToken *whitespaceToken = new EDToken(StringRef(wsPointer, wsLength), + EDToken::kTokenWhitespace, + 0, + disassembler); + + tokens.push_back(whitespaceToken); + } + + wsPointer = tokenPointer + tokenIterator->getString().size(); + while (operandIterator != parsedOperands.end() && tokenLoc.getPointer() > (*operandIterator)->getEndLoc().getPointer()) { -- 2.34.1