private static void convertBlock(
     final Statement stm, final ISyntacticElement elt, final Set<Diagnostic> errors) {
   Block block = stm.getBlock();
   if (block != null) {
     Expression function = block.getFunction();
     if (function != null) {
       // If it is a function (and not a regular block), we add it as a facet
       addFacet(elt, FUNCTION, convExpr(function, errors), errors);
     } else {
       convStatements(elt, EGaml.getStatementsOf(block), errors);
     }
   }
 }
 private static void convElse(
     final S_If stm, final ISyntacticElement elt, final Set<Diagnostic> errors) {
   EObject elseBlock = stm.getElse();
   if (elseBlock != null) {
     ISyntacticElement elseElt =
         SyntacticFactory.create(ELSE, elseBlock, EGaml.hasChildren(elseBlock));
     if (elseBlock instanceof Statement) {
       elseElt.addChild(convStatement(elt, (Statement) elseBlock, errors));
     } else {
       convStatements(elseElt, EGaml.getStatementsOf((Block) elseBlock), errors);
     }
     elt.addChild(elseElt);
   }
 }
  public static SyntacticModelElement buildSyntacticContents(
      final EObject root, final Set<Diagnostic> errors) {
    if (!(root instanceof Model)) {
      return null;
    }
    ModelImpl m = (ModelImpl) root;
    Object[] imps;
    if (m.eIsSet(GamlPackage.MODEL__IMPORTS)) {
      List<Import> imports = m.getImports();
      imps = new Object[imports.size()];
      for (int i = 0; i < imps.length; i++) {
        URI uri = URI.createURI(imports.get(i).getImportURI(), false);
        imps[i] = uri;
      }
    } else {
      imps = null;
    }

    SyntacticModelElement model =
        (SyntacticModelElement) SyntacticFactory.create(MODEL, m, EGaml.hasChildren(m), imps);
    model.setFacet(NAME, convertToLabel(null, m.getName()));
    convStatements(model, EGaml.getStatementsOf(m), errors);
    return model;
  }