diff options
Diffstat (limited to 'src/declarative/qml/parser/javascript.g')
-rw-r--r-- | src/declarative/qml/parser/javascript.g | 38 |
1 files changed, 15 insertions, 23 deletions
diff --git a/src/declarative/qml/parser/javascript.g b/src/declarative/qml/parser/javascript.g index f1d8826..5482392 100644 --- a/src/declarative/qml/parser/javascript.g +++ b/src/declarative/qml/parser/javascript.g @@ -45,7 +45,7 @@ %parser JavaScriptGrammar %decl javascriptparser_p.h %impl javascriptparser.cpp -%expect 8 +%expect 2 %expect-rr 1 %token T_AND "&" T_AND_AND "&&" T_AND_EQ "&=" @@ -86,7 +86,7 @@ %token T_IMPORT "import" %nonassoc SHIFT_THERE -%nonassoc T_IDENTIFIER T_COLON +%nonassoc T_IDENTIFIER T_COLON T_SIGNAL T_PROPERTY %nonassoc REDUCE_HERE %start UiProgram @@ -688,7 +688,8 @@ UiObjectMember: T_DEFAULT T_PROPERTY UiPropertyType T_IDENTIFIER ; case $rule_number: { AST::UiPublicMember *node = makeAstNode<AST::UiPublicMember> (driver->nodePool(), sym(3).sval, sym(4).sval); node->isDefaultMember = true; - node->propertyToken = loc(1); + node->defaultToken = loc(1); + node->propertyToken = loc(2); node->typeToken = loc(3); node->identifierToken = loc(4); sym(1).Node = node; @@ -714,7 +715,8 @@ case $rule_number: { AST::UiPublicMember *node = makeAstNode<AST::UiPublicMember> (driver->nodePool(), sym(3).sval, sym(4).sval, sym(6).Expression); node->isDefaultMember = true; - node->propertyToken = loc(1); + node->defaultToken = loc(1); + node->propertyToken = loc(2); node->typeToken = loc(3); node->identifierToken = loc(4); node->colonToken = loc(5); @@ -737,9 +739,8 @@ case $rule_number: { ./ UiQualifiedId: T_RESERVED_WORD ; -/. -case $rule_number: -./ +/.case $rule_number: ./ + UiQualifiedId: T_RETURN ; /. case $rule_number: @@ -751,6 +752,7 @@ case $rule_number: ./ JsIdentifier: T_IDENTIFIER; + JsIdentifier: T_PROPERTY ; /. case $rule_number: { @@ -759,6 +761,7 @@ case $rule_number: { break; } ./ + JsIdentifier: T_SIGNAL ; /. case $rule_number: { @@ -1043,6 +1046,8 @@ case $rule_number: { ./ PropertyName: T_SIGNAL ; +/.case $rule_number:./ + PropertyName: T_PROPERTY ; /. case $rule_number: { @@ -2445,6 +2450,8 @@ case $rule_number: { ./ LabelledStatement: T_SIGNAL T_COLON Statement ; +/.case $rule_number:./ + LabelledStatement: T_PROPERTY T_COLON Statement ; /. case $rule_number: { @@ -2535,22 +2542,7 @@ case $rule_number: { } break; ./ -FunctionDeclaration: T_FUNCTION T_SIGNAL T_LPAREN FormalParameterListOpt T_RPAREN T_LBRACE FunctionBodyOpt T_RBRACE ; -FunctionDeclaration: T_FUNCTION T_PROPERTY T_LPAREN FormalParameterListOpt T_RPAREN T_LBRACE FunctionBodyOpt T_RBRACE ; -/. -case $rule_number: { - AST::FunctionDeclaration *node = makeAstNode<AST::FunctionDeclaration> (driver->nodePool(), driver->intern(lexer->characterBuffer(), lexer->characterCount()), sym(4).FormalParameterList, sym(7).FunctionBody); - node->functionToken = loc(1); - node->identifierToken = loc(2); - node->lparenToken = loc(3); - node->rparenToken = loc(5); - node->lbraceToken = loc(6); - node->rbraceToken = loc(8); - sym(1).Node = node; -} break; -./ - -FunctionDeclaration: T_FUNCTION T_IDENTIFIER T_LPAREN FormalParameterListOpt T_RPAREN T_LBRACE FunctionBodyOpt T_RBRACE ; +FunctionDeclaration: T_FUNCTION JsIdentifier T_LPAREN FormalParameterListOpt T_RPAREN T_LBRACE FunctionBodyOpt T_RBRACE ; /. case $rule_number: { AST::FunctionDeclaration *node = makeAstNode<AST::FunctionDeclaration> (driver->nodePool(), sym(2).sval, sym(4).FormalParameterList, sym(7).FunctionBody); |