throw new Error("Missing return statement in function");
}
final public Protocol ProtocolDeclaration() throws ParseException {
String name;
Protocol p;
Map<String, JsonNode> props = new LinkedHashMap<String, JsonNode>();
label_2:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case AT:
;
break;
default:
jj_la1[4] = jj_gen;
break label_2;
}
SchemaProperty(props);
}
if (props.containsKey("namespace"))
namespace = getTextProp("namespace", props, token);
jj_consume_token(PROTOCOL);
name = Identifier();
p = new Protocol(name, getDoc(), namespace);
for (String key : props.keySet())
if ("namespace".equals(key)) { // already handled: ignore
} else if (props.get(key).isTextual()) { // ignore other non-textual
p.addProp(key, getTextProp(key, props, token));
}
ProtocolBody(p);
{if (true) return p;}
throw new Error("Missing return statement in function");
}