diff options
author | Andreas Stöckel <astoecke@techfak.uni-bielefeld.de> | 2015-01-23 15:25:46 +0100 |
---|---|---|
committer | Andreas Stöckel <andreas@somweyr.de> | 2015-01-23 15:25:46 +0100 |
commit | 6c1007fc979da229ba2b9794fcb20a29e2edebc3 (patch) | |
tree | 3cb59f1063bb8ee019c0d701d4b2a2598f6bae74 /src/core/Tokenizer.cpp | |
parent | a7e40c1f1572b05e9608e0ed43ac54c1f7e7d84b (diff) |
Addapted Tokenizer to new SourceLocation
Diffstat (limited to 'src/core/Tokenizer.cpp')
-rw-r--r-- | src/core/Tokenizer.cpp | 19 |
1 files changed, 6 insertions, 13 deletions
diff --git a/src/core/Tokenizer.cpp b/src/core/Tokenizer.cpp index 9d25608..ab4735a 100644 --- a/src/core/Tokenizer.cpp +++ b/src/core/Tokenizer.cpp @@ -81,8 +81,7 @@ bool Tokenizer::prepare() { std::stringstream buffer; char c; - int startColumn = input.getColumn(); - int startLine = input.getLine(); + SourcePosition start = input.getOffset(); bool bufEmpty = true; while (input.peek(c)) { if (root.children.find(c) != root.children.end()) { @@ -124,20 +123,16 @@ bool Tokenizer::prepare() if (bufEmpty) { // if we did not have text before, construct that token. if (doPrepare( - Token{match, tBuf.str(), startColumn, startLine, - input.getColumn(), input.getLine()}, + Token{match, tBuf.str(), input.getLocation(start)}, peeked)) { return true; } else { - startColumn = input.getColumn(); - startLine = input.getLine(); + start = input.getOffset(); continue; } } else { // otherwise we return the text before the token. - if (doPrepare(Token{TOKEN_TEXT, buffer.str(), startColumn, - startLine, input.getColumn(), - input.getLine()}, + if (doPrepare(Token{TOKEN_TEXT, buffer.str(), input.getLocation(start)}, peeked)) { return true; } else{ @@ -146,8 +141,7 @@ bool Tokenizer::prepare() //constructed. buffer.str(std::string()); bufEmpty = true; - startColumn = input.getColumn(); - startLine = input.getLine(); + start = input.getOffset(); continue; } } @@ -161,8 +155,7 @@ bool Tokenizer::prepare() input.consumePeek(); } if (!bufEmpty) { - return doPrepare(Token{TOKEN_TEXT, buffer.str(), startColumn, startLine, - input.getColumn(), input.getLine()}, + return doPrepare(Token{TOKEN_TEXT, buffer.str(), input.getLocation(start)}, peeked); } return false; |