parseObject method
Implementation
VlJson parseObject() {
VlJson v = VlJson();
v.kind = 5;
i = i + 1;
this.skipWs();
if ( i < n ) {
if ( s.codeUnitAt(i) == 125 ) {
i = i + 1;
return v;
}
}
bool go = true;
while (go) {
this.skipWs();
if ( i >= n ) {
this.fail("unterminated object");
go = false;
} else {
if ( s.codeUnitAt(i) != 34 ) {
this.fail("expected string key in object");
go = false;
} else {
String key = this.readRawString();
this.skipWs();
if ( i >= n ) {
this.fail("expected ':' in object");
go = false;
} else {
if ( s.codeUnitAt(i) != 58 ) {
this.fail("expected ':' in object");
go = false;
} else {
i = i + 1;
VlJson val = this.parseValue();
v.setMember(key, val);
this.skipWs();
if ( i >= n ) {
this.fail("unterminated object");
go = false;
} else {
int c = s.codeUnitAt(i);
if ( c == 44 ) {
i = i + 1;
} else {
if ( c == 125 ) {
i = i + 1;
go = false;
} else {
this.fail("expected ',' or '}' in object");
go = false;
}
}
}
}
}
}
}
if ( ok == false ) {
go = false;
}
}
return v;
}