summaryrefslogtreecommitdiff
path: root/Source/JavaScriptCore/parser/ParserTokens.h
diff options
context:
space:
mode:
authorSergio Ahumada <sahumada@blackberry.com>2014-06-14 21:52:49 +0200
committerSergio Ahumada <sahumada@blackberry.com>2014-06-14 21:52:49 +0200
commit0f3323294246759fe7bc193f487cacbab9be853b (patch)
tree71972312ddfb1d2ce55bae2043763fe4f576bc13 /Source/JavaScriptCore/parser/ParserTokens.h
parentd2d7e41f4d8717c8072e252aa9ac3b9ee5ae7e00 (diff)
parentba4102c575d338cdccba9937a116701c26509abb (diff)
downloadqtwebkit-0f3323294246759fe7bc193f487cacbab9be853b.tar.gz
Merge remote-tracking branch 'origin/5.3' into dev
Conflicts: .qmake.conf Change-Id: I8b5c89466108ab0302cd1841f0781471aefeb113
Diffstat (limited to 'Source/JavaScriptCore/parser/ParserTokens.h')
-rw-r--r--Source/JavaScriptCore/parser/ParserTokens.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/Source/JavaScriptCore/parser/ParserTokens.h b/Source/JavaScriptCore/parser/ParserTokens.h
index ed9780b52..898fe62cb 100644
--- a/Source/JavaScriptCore/parser/ParserTokens.h
+++ b/Source/JavaScriptCore/parser/ParserTokens.h
@@ -150,6 +150,23 @@ enum JSTokenType {
INVALID_STRING_LITERAL_ERRORTOK = 9 | ErrorTokenFlag,
};
+struct JSTextPosition {
+ JSTextPosition() : line(0), offset(0), lineStartOffset(0) { }
+ JSTextPosition(int _line, int _offset, int _lineStartOffset) : line(_line), offset(_offset), lineStartOffset(_lineStartOffset) { }
+ JSTextPosition(const JSTextPosition& other) : line(other.line), offset(other.offset), lineStartOffset(other.lineStartOffset) { }
+
+ JSTextPosition operator+(int adjustment) const { return JSTextPosition(line, offset + adjustment, lineStartOffset); }
+ JSTextPosition operator+(unsigned adjustment) const { return *this + static_cast<int>(adjustment); }
+ JSTextPosition operator-(int adjustment) const { return *this + (- adjustment); }
+ JSTextPosition operator-(unsigned adjustment) const { return *this + (- static_cast<int>(adjustment)); }
+
+ operator int() const { return offset; }
+
+ int line;
+ int offset;
+ int lineStartOffset;
+};
+
union JSTokenData {
struct {
uint32_t line;
@@ -180,6 +197,8 @@ struct JSToken {
JSTokenType m_type;
JSTokenData m_data;
JSTokenLocation m_location;
+ JSTextPosition m_startPosition;
+ JSTextPosition m_endPosition;
};
} // namespace JSC