/**
* generated by Xtext
*/
package org.example.smalljava.generator;
import com.google.inject.Inject;
import com.google.inject.Injector;
import java.util.List;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.ResourceSet;
import org.eclipse.xtext.util.CancelIndicator;
import org.eclipse.xtext.validation.CheckMode;
import org.eclipse.xtext.validation.IResourceValidator;
import org.eclipse.xtext.validation.Issue;
import org.eclipse.xtext.xbase.lib.Conversions;
import org.eclipse.xtext.xbase.lib.IterableExtensions;
import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;
import org.example.smalljava.SmallJavaStandaloneSetupGenerated;
import org.example.smalljava.lib.SmallJavaLib;
@SuppressWarnings("all")
public class Main {
public static void main(final String[] args) {
boolean _isEmpty = ((List<String>)Conversions.doWrapArray(args)).isEmpty();
if (_isEmpty) {
System.err.println("Aborting: no SmallJava resource provided!");
return;
}
SmallJavaStandaloneSetupGenerated _smallJavaStandaloneSetupGenerated = new SmallJavaStandaloneSetupGenerated();
final Injector injector = _smallJavaStandaloneSetupGenerated.createInjectorAndDoEMFRegistration();
final Main main = injector.<Main>getInstance(Main.class);
main.runGenerator(args);
}
@Inject
private IResourceValidator validator;
@Inject
private SmallJavaLib smallJavaLib;
protected void runGenerator(final String[] strings) {
final ResourceSet set = this.smallJavaLib.loadLib();
final Procedure1<String> _function = new Procedure1<String>() {
@Override
public void apply(final String s) {
URI _createURI = URI.createURI(s);
set.getResource(_createURI, true);
}
};
IterableExtensions.<String>forEach(((Iterable<String>)Conversions.doWrapArray(strings)), _function);
boolean ok = true;
EList<Resource> _resources = set.getResources();
for (final Resource resource : _resources) {
{
URI _uRI = resource.getURI();
String _plus = ("Checking " + _uRI);
String _plus_1 = (_plus + "...");
System.out.println(_plus_1);
final List<Issue> issues = this.validator.validate(resource, CheckMode.ALL, CancelIndicator.NullImpl);
boolean _isEmpty = issues.isEmpty();
boolean _not = (!_isEmpty);
if (_not) {
for (final Issue issue : issues) {
System.err.println(issue);
}
ok = false;
}
}
}
if (ok) {
System.out.println("Programs well-typed.");
}
}
}