Skip to content
Snippets Groups Projects
Commit b42fc268 authored by silvergl's avatar silvergl
Browse files

Generate from String

parent 88cb1514
Branches
No related tags found
No related merge requests found
......@@ -108,5 +108,6 @@
<accessrule ignoreifbetter="true" kind="nonaccessible" pattern="**/*"/>
</accessrules>
</classpathentry>
<classpathentry kind="src" path="/org.xtext.example.mydsl2"/>
<classpathentry kind="output" path="bin/default"/>
</classpath>
{"name":"Dummykernel","classpathEntries":[{"kind":"binary","path":"C:\\Program Files\\Java\\jre1.8.0_221\\lib\\resources.jar","javadocContainerUrl":"https://docs.oracle.com/javase/1/docs/api/","isSystem":true,"isOwn":false,"isTest":false,"isJavaContent":false},{"kind":"binary","path":"C:\\Program Files\\Java\\jre1.8.0_221\\lib\\rt.jar","javadocContainerUrl":"https://docs.oracle.com/javase/1/docs/api/","isSystem":true,"isOwn":false,"isTest":false,"isJavaContent":false},{"kind":"binary","path":"C:\\Program Files\\Java\\jre1.8.0_221\\lib\\jsse.jar","javadocContainerUrl":"https://docs.oracle.com/javase/1/docs/api/","isSystem":true,"isOwn":false,"isTest":false,"isJavaContent":false},{"kind":"binary","path":"C:\\Program Files\\Java\\jre1.8.0_221\\lib\\jce.jar","javadocContainerUrl":"https://docs.oracle.com/javase/1/docs/api/","isSystem":true,"isOwn":false,"isTest":false,"isJavaContent":false},{"kind":"binary","path":"C:\\Program Files\\Java\\jre1.8.0_221\\lib\\charsets.jar","javadocContainerUrl":"https://docs.oracle.com/javase/1/docs/api/","isSystem":true,"isOwn":false,"isTest":false,"isJavaContent":false},{"kind":"binary","path":"C:\\Program Files\\Java\\jre1.8.0_221\\lib\\jfr.jar","javadocContainerUrl":"https://docs.oracle.com/javase/1/docs/api/","isSystem":true,"isOwn":false,"isTest":false,"isJavaContent":false},{"kind":"binary","path":"C:\\Users\\Lenovo\\.gradle\\caches\\modules-2\\files-2.1\\io.github.spencerpark\\jupyter-jvm-basekernel\\2.3.0\\abac807e2c2336fe0c68fe5926611445618f65d9\\jupyter-jvm-basekernel-2.3.0.jar","isSystem":false,"isOwn":false,"isTest":false,"isJavaContent":false},{"kind":"binary","path":"C:\\Users\\Lenovo\\.gradle\\caches\\modules-2\\files-2.1\\com.google.guava\\guava\\28.0-jre\\54fed371b4b8a8cce1e94a9abd9620982d3aa54b\\guava-28.0-jre.jar","isSystem":false,"isOwn":false,"isTest":false,"isJavaContent":false},{"kind":"binary","path":"C:\\Users\\Lenovo\\.gradle\\caches\\modules-2\\files-2.1\\org.zeromq\\jeromq\\0.5.1\\7ef8199a62e6bc91b549fcb49f85ccdf6ffc5078\\jeromq-0.5.1.jar","isSystem":false,"isOwn":false,"isTest":false,"isJavaContent":false},{"kind":"binary","path":"C:\\Users\\Lenovo\\.gradle\\caches\\modules-2\\files-2.1\\com.google.code.gson\\gson\\2.8.5\\f645ed69d595b24d4cf8b3fbb64cc505bede8829\\gson-2.8.5.jar","isSystem":false,"isOwn":false,"isTest":false,"isJavaContent":false},{"kind":"binary","path":"C:\\Users\\Lenovo\\.gradle\\caches\\modules-2\\files-2.1\\com.google.guava\\failureaccess\\1.0.1\\1dcf1de382a0bf95a3d8b0849546c88bac1292c9\\failureaccess-1.0.1.jar","isSystem":false,"isOwn":false,"isTest":false,"isJavaContent":false},{"kind":"binary","path":"C:\\Users\\Lenovo\\.gradle\\caches\\modules-2\\files-2.1\\com.google.guava\\listenablefuture\\9999.0-empty-to-avoid-conflict-with-guava\\b421526c5f297295adef1c886e5246c39d4ac629\\listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar","isSystem":false,"isOwn":false,"isTest":false,"isJavaContent":false},{"kind":"binary","path":"C:\\Users\\Lenovo\\.gradle\\caches\\modules-2\\files-2.1\\com.google.code.findbugs\\jsr305\\3.0.2\\25ea2e8b0c338a877313bd4672d3fe056ea78f0d\\jsr305-3.0.2.jar","isSystem":false,"isOwn":false,"isTest":false,"isJavaContent":false},{"kind":"binary","path":"C:\\Users\\Lenovo\\.gradle\\caches\\modules-2\\files-2.1\\org.checkerframework\\checker-qual\\2.8.1\\eb2e8ab75598548cc8acf9a1ca227e480e01881e\\checker-qual-2.8.1.jar","isSystem":false,"isOwn":false,"isTest":false,"isJavaContent":false},{"kind":"binary","path":"C:\\Users\\Lenovo\\.gradle\\caches\\modules-2\\files-2.1\\com.google.errorprone\\error_prone_annotations\\2.3.2\\d1a0c5032570e0f64be6b4d9c90cdeb103129029\\error_prone_annotations-2.3.2.jar","isSystem":false,"isOwn":false,"isTest":false,"isJavaContent":false},{"kind":"binary","path":"C:\\Users\\Lenovo\\.gradle\\caches\\modules-2\\files-2.1\\com.google.j2objc\\j2objc-annotations\\1.3\\ba035118bc8bac37d7eff77700720999acd9986d\\j2objc-annotations-1.3.jar","isSystem":false,"isOwn":false,"isTest":false,"isJavaContent":false},{"kind":"binary","path":"C:\\Users\\Lenovo\\.gradle\\caches\\modules-2\\files-2.1\\org.codehaus.mojo\\animal-sniffer-annotations\\1.17\\f97ce6decaea32b36101e37979f8b647f00681fb\\animal-sniffer-annotations-1.17.jar","isSystem":false,"isOwn":false,"isTest":false,"isJavaContent":false},{"kind":"binary","path":"C:\\Users\\Lenovo\\.gradle\\caches\\modules-2\\files-2.1\\eu.neilalexander\\jnacl\\1.0.0\\82e9034fb81a33cb9d7e0c4cd241a2ba84802ae2\\jnacl-1.0.0.jar","isSystem":false,"isOwn":false,"isTest":false,"isJavaContent":false},{"kind":"binary","path":"C:\\Users\\Lenovo\\.gradle\\caches\\modules-2\\files-2.1\\junit\\junit\\4.12\\2973d150c0dc1fefe998f834810d68f278ea58ec\\junit-4.12.jar","isSystem":false,"isOwn":false,"isTest":false,"isJavaContent":false},{"kind":"binary","path":"C:\\Users\\Lenovo\\.gradle\\caches\\modules-2\\files-2.1\\org.hamcrest\\hamcrest-core\\1.3\\42a25dc3219429f0e5d060061f71acb49bf010a0\\hamcrest-core-1.3.jar","isSystem":false,"isOwn":false,"isTest":false,"isJavaContent":false},{"kind":"source","path":"C:\\Users\\Lenovo\\Desktop\\Neuer Ordner\\jupyter-base-kernel\\Dummykernel\\src\\main\\java","outputFolder":"C:\\Users\\Lenovo\\Desktop\\Neuer Ordner\\jupyter-base-kernel\\Dummykernel\\bin\\main","isSystem":false,"isOwn":true,"isTest":false,"isJavaContent":true},{"kind":"source","path":"C:\\Users\\Lenovo\\Desktop\\Neuer Ordner\\jupyter-base-kernel\\Dummykernel\\src\\main\\resources","outputFolder":"C:\\Users\\Lenovo\\Desktop\\Neuer Ordner\\jupyter-base-kernel\\Dummykernel\\bin\\main","isSystem":false,"isOwn":true,"isTest":false,"isJavaContent":true},{"kind":"source","path":"C:\\Users\\Lenovo\\Desktop\\Neuer Ordner\\jupyter-base-kernel\\Dummykernel\\src\\test\\java","outputFolder":"C:\\Users\\Lenovo\\Desktop\\Neuer Ordner\\jupyter-base-kernel\\Dummykernel\\bin\\test","isSystem":false,"isOwn":true,"isTest":true,"isJavaContent":true},{"kind":"source","path":"C:\\Users\\Lenovo\\Desktop\\Neuer Ordner\\jupyter-base-kernel\\Dummykernel\\src\\test\\resources","outputFolder":"C:\\Users\\Lenovo\\Desktop\\Neuer Ordner\\jupyter-base-kernel\\Dummykernel\\bin\\test","isSystem":false,"isOwn":true,"isTest":true,"isJavaContent":true}]}
\ No newline at end of file
No preview for this file type
......@@ -8,15 +8,23 @@ import com.google.inject.Injector;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.xtext.generator.IFileSystemAccess2;
import org.eclipse.xtext.generator.InMemoryFileSystemAccess;
import org.eclipse.xtext.resource.XtextResource;
//import org.eclipse.emf.mwe.internal.core.ast.util.Injector;
//import org.eclipse.xtext.resource.XtextResource;
import org.eclipse.xtext.resource.XtextResourceSet;
import org.xtext.example.mydsl2.MyDslStandaloneSetup;
import org.xtext.example.mydsl2.generator.MyCustomGenerator;
import org.xtext.example.mydsl2.myDsl.Model;
public class MyXtextGenerator {
private static final XtextResourceSet resourceSet;
// private static final XtextResourceSet resourceSet;
private final IFileSystemAccess2 fsa;
public MyXtextGenerator() {
this.fsa = new InMemoryFileSystemAccess();
}
public static Model parseToModel(final String dsl) {
Injector injector = new MyDslStandaloneSetup().createInjectorAndDoEMFRegistration();
......@@ -31,7 +39,21 @@ public class MyXtextGenerator {
return (Model) resource.getContents().get(0);
}
public static File generate(final Model model) {
// generate DSL
public String generate(final String dslText) {
Injector injector = new MyDslStandaloneSetup().createInjectorAndDoEMFRegistration();
XtextResourceSet resourceSet = injector.getInstance(XtextResourceSet.class);
resourceSet.addLoadOption(XtextResource.OPTION_RESOLVE_ALL, Boolean.TRUE);
Resource resource = resourceSet.createResource(URI.createURI("temp.mydsl2"));
try {
resource.load(new ByteArrayInputStream(dslText.getBytes("UTF-8")), new HashMap<>());
} catch (IOException e) {
throw new RuntimeException(e);
}
String result = MyCustomGenerator.generateFromString(resource);
return result;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment