public static List<VariableDefinitionImpl> parseVariableDefinitions(Element element, Parse parse, boolean initRequired) {
List<VariableDefinitionImpl> variableDefinitions = new ArrayList<VariableDefinitionImpl>();
for (Element inElement: XmlUtil.elements(element, "variable")) {
VariableDefinitionImpl variableDefinition = new VariableDefinitionImpl();
String name = XmlUtil.attribute(inElement, "name", true, parse);
variableDefinition.setName(name);
int sources = 0;
String initExpr = XmlUtil.attribute(inElement, "init");
if (initExpr!=null) {
variableDefinition.setInitExpression(initExpr);
sources++;
}
Element valueElement = XmlUtil.element(inElement);
if (valueElement!=null) {
Descriptor initValueDescriptor = (Descriptor) WireParser.getInstance().parseElement(valueElement, parse);
variableDefinition.setInitDescriptor(initValueDescriptor);
sources++;
}
if (initRequired && sources==0) {
parse.addProblem("no init specified", inElement);