qmljs: use new qml parser

adds support for singleton and getter/setter properties

Change-Id: Ia6691ac7799a46885db0df44617617dcc3c13189
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
This commit is contained in:
Fawzi Mohamed
2013-11-06 14:17:23 +01:00
parent 0374d83e83
commit e9c97aa1d1
35 changed files with 2420 additions and 1675 deletions

View File

@@ -662,15 +662,38 @@ protected:
return false;
}
virtual bool visit(PropertyNameAndValueList *ast)
virtual bool visit(PropertyAssignmentList *ast)
{
for (PropertyNameAndValueList *it = ast; it; it = it->next) {
accept(it->name);
out(": ", ast->colonToken);
accept(it->value);
if (it->next) {
out(",", ast->commaToken); // always invalid?
newLine();
for (PropertyAssignmentList *it = ast; it; it = it->next) {
PropertyNameAndValue *assignment = AST::cast<PropertyNameAndValue *>(it->assignment);
if (assignment) {
accept(assignment->name);
out(": ", assignment->colonToken);
accept(assignment->value);
if (it->next) {
out(",", ast->commaToken); // always invalid?
newLine();
}
continue;
}
PropertyGetterSetter *getterSetter = AST::cast<PropertyGetterSetter *>(it->assignment);
if (getterSetter) {
switch (getterSetter->type) {
case PropertyGetterSetter::Getter:
out("get");
break;
case PropertyGetterSetter::Setter:
out("set");
break;
}
accept(getterSetter->name);
out("(", getterSetter->lparenToken);
accept(getterSetter->formals);
out("(", getterSetter->rparenToken);
out(" {", getterSetter->lbraceToken);
accept(getterSetter->functionBody);
out(" }", getterSetter->rbraceToken);
}
}
return false;
@@ -1136,10 +1159,10 @@ protected:
}
virtual bool visit(UiImportList *ast)
virtual bool visit(UiHeaderItemList *ast)
{
for (UiImportList *it = ast; it; it = it->next) {
accept(it->import);
for (UiHeaderItemList *it = ast; it; it = it->next) {
accept(it->headerItem);
newLine();
}
requireEmptyLine();