QmlJS: Merge new parser from Qt 5.

Change-Id: I986df52b7ddb31e3bae1148eda881acc1829b102
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
This commit is contained in:
Christian Kamm
2011-12-07 11:16:26 +01:00
parent 72c06cb6fd
commit 67dd062a31
19 changed files with 1469 additions and 1416 deletions

View File

@@ -246,9 +246,6 @@ public:
AST::UiObjectMemberList *UiObjectMemberList;
AST::UiArrayMemberList *UiArrayMemberList;
AST::UiQualifiedId *UiQualifiedId;
AST::UiSignature *UiSignature;
AST::UiFormalList *UiFormalList;
AST::UiFormal *UiFormal;
};
public:
@@ -781,7 +778,10 @@ case $rule_number: {
UiScriptStatement: Block ;
UiScriptStatement: EmptyStatement ;
UiScriptStatement: ExpressionStatement ;
UiScriptStatement: IfStatement ; --- ### do we really want if statement in a binding?
UiScriptStatement: IfStatement ;
UiScriptStatement: WithStatement ;
UiScriptStatement: SwitchStatement ;
UiScriptStatement: TryStatement ;
UiObjectMember: UiQualifiedId T_COLON UiScriptStatement ;
/.
@@ -816,6 +816,7 @@ UiParameterList: UiPropertyType JsIdentifier ;
/.
case $rule_number: {
AST::UiParameterList *node = new (pool) AST::UiParameterList(stringRef(1), stringRef(2));
node->propertyTypeToken = loc(1);
node->identifierToken = loc(2);
sym(1).Node = node;
} break;
@@ -1100,6 +1101,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());
@@ -1121,6 +1123,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());
@@ -2810,6 +2813,8 @@ case $rule_number: {
} break;
./
Program: Empty ;
Program: SourceElements ;
/.
case $rule_number: {