Adjust the source location of the last accepted token.
authorRoberto Raggi <roberto.raggi@nokia.com>
Mon, 5 Dec 2011 13:42:09 +0000 (14:42 +0100)
committerQt by Nokia <qt-info@nokia.com>
Mon, 5 Dec 2011 14:35:36 +0000 (15:35 +0100)
This is necessary to get automatic semicolons inserted at the correct
location.

Change-Id: Ie3f806ed20704310cd6155f2dac6d0388a4a9f78
Reviewed-by: Aaron Kennedy <aaron.kennedy@nokia.com>
src/declarative/qml/parser/qdeclarativejs.g
src/declarative/qml/parser/qdeclarativejsparser.cpp

index da8ce4c..8a8342b 100644 (file)
@@ -1112,6 +1112,7 @@ case $rule_number: {
   }
 
   loc(1).length = lexer->tokenLength();
+  yylloc = loc(1); // adjust the location of the current token
 
   AST::RegExpLiteral *node = new (pool) AST::RegExpLiteral(
     driver->newStringRef(lexer->regExpPattern()), lexer->regExpFlags());
@@ -1133,6 +1134,7 @@ case $rule_number: {
   }
 
   loc(1).length = lexer->tokenLength();
+  yylloc = loc(1); // adjust the location of the current token
 
   AST::RegExpLiteral *node = new (pool) AST::RegExpLiteral(
     driver->newStringRef(lexer->regExpPattern()), lexer->regExpFlags());
index b1384d3..4db8a10 100644 (file)
@@ -577,6 +577,7 @@ case 79: {
   }
 
   loc(1).length = lexer->tokenLength();
+  yylloc = loc(1); // adjust the location of the current token
 
   AST::RegExpLiteral *node = new (pool) AST::RegExpLiteral(
     driver->newStringRef(lexer->regExpPattern()), lexer->regExpFlags());
@@ -592,6 +593,7 @@ case 80: {
   }
 
   loc(1).length = lexer->tokenLength();
+  yylloc = loc(1); // adjust the location of the current token
 
   AST::RegExpLiteral *node = new (pool) AST::RegExpLiteral(
     driver->newStringRef(lexer->regExpPattern()), lexer->regExpFlags());