diff options
author | Benjamin Paassen <bpaassen@techfak.uni-bielefeld.de> | 2015-01-23 15:47:59 +0100 |
---|---|---|
committer | Benjamin Paassen <bpaassen@techfak.uni-bielefeld.de> | 2015-01-23 15:47:59 +0100 |
commit | 18d3637ca02ab69f1ee744fa94c43c243de0f571 (patch) | |
tree | 42c859f014ab7dbb7d31a747e0ef3839c77c60fa /src/core/Tokenizer.cpp | |
parent | 85d72823ef18711fe7a29f5b23cc37b318766332 (diff) | |
parent | aa817d3bfd90aa39b6fd8a915bc78a8bb210cd3d (diff) |
Merge branch 'master' of somweyr.de:ousia
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; |