Changeset 72 in default
- Timestamp:
- 06/15/14 08:59:05 (10 years ago)
- Files:
-
- 15 added
- 3 deleted
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
v2/trunk/de.ugoe.cs.swe.bnftools.ebnf.ui/plugin.xml
r71 r72 248 248 </extension> 249 249 250 <!-- 250 <!-- --> 251 251 252 <extension 252 253 point="org.eclipse.xtext.builder.participant"> … … 255 256 </participant> 256 257 </extension> 257 --> 258 259 <!--this is for using a button for generation -->258 259 260 <!--this is for using a button for generation 260 261 <extension 261 262 point="org.eclipse.ui.handlers"> … … 291 292 </menuContribution> 292 293 </extension> 293 294 --> 294 295 295 296 … … 433 434 </provider> 434 435 </extension> 436 <!-- 437 <extension 438 point="org.eclipse.ui.commands"> 439 <command 440 defaultHandler="de.ugoe.cs.swe.bnftools.ui.EbnfExecutableExtensionFactory:de.ugoe.cs.swe.bnftools.ui.handler.BT_GenerationHandler" 441 id="de.ugoe.cs.swe.bnftools.ebnf.ui.cmdgenerate" 442 name="button_generate"> 443 </command> 444 </extension> 445 <extension 446 point="org.eclipse.ui.menus"> 447 <menuContribution 448 allPopups="false" 449 locationURI="toolbar:org.eclipse.ui.main.toolbar"> 450 <command 451 commandId="de.ugoe.cs.swe.bnftools.ebnf.ui.cmdgenerate" 452 icon="lrun_obj.gif" 453 style="push" 454 tooltip="Generate Code"> 455 </command> 456 </menuContribution> 457 </extension> 458 --> 459 <extension 460 id="product" 461 point="org.eclipse.core.runtime.products"> 462 <product 463 application="de.ugoe.cs.swe.bnftools.product.application" 464 name="bnf"> 465 <property 466 name="appName" 467 value="bnf"> 468 </property> 469 </product> 470 </extension> 435 471 436 472 </plugin> -
v2/trunk/de.ugoe.cs.swe.bnftools.ebnf.ui/src/de/ugoe/cs/swe/bnftools/ui/handler/GenerationHandler.java
r71 r72 1 1 package de.ugoe.cs.swe.bnftools.ui.handler; 2 3 import java.util.Iterator; 4 import java.util.Map; 5 import java.util.Map.Entry; 2 6 3 7 import org.eclipse.core.commands.AbstractHandler; … … 5 9 import org.eclipse.core.commands.ExecutionException; 6 10 import org.eclipse.core.commands.IHandler; 11 import org.eclipse.core.commands.common.NotDefinedException; 7 12 import org.eclipse.core.resources.IFile; 8 13 import org.eclipse.core.resources.IFolder; … … 11 16 import org.eclipse.core.runtime.NullProgressMonitor; 12 17 import org.eclipse.emf.common.util.URI; 18 import org.eclipse.emf.ecore.EcorePackage; 13 19 import org.eclipse.emf.ecore.resource.Resource; 14 20 import org.eclipse.emf.ecore.resource.ResourceSet; 21 import org.eclipse.emf.ecore.xml.type.SimpleAnyType; 22 import org.eclipse.emf.ecore.xml.type.XMLTypeFactory; 15 23 import org.eclipse.jface.viewers.ISelection; 16 24 import org.eclipse.jface.viewers.IStructuredSelection; 17 25 import org.eclipse.ui.handlers.HandlerUtil; 18 import org.eclipse.xtext.builder.EclipseResourceFileSystemAccess ;26 import org.eclipse.xtext.builder.EclipseResourceFileSystemAccess2; 19 27 import org.eclipse.xtext.generator.IGenerator; 28 import org.eclipse.xtext.generator.OutputConfiguration; 20 29 import org.eclipse.xtext.resource.IResourceDescriptions; 21 30 import org.eclipse.xtext.ui.resource.IResourceSetProvider; … … 30 39 31 40 @Inject 32 private Provider<EclipseResourceFileSystemAccess > fileAccessProvider;41 private Provider<EclipseResourceFileSystemAccess2> fileAccessProvider; 33 42 34 43 @Inject … … 40 49 @Override 41 50 public Object execute(ExecutionEvent event) throws ExecutionException { 42 51 String mode = ""; 52 53 try { 54 mode = event.getCommand().getName(); 55 } catch (NotDefinedException e1) { 56 // catch block 57 e1.printStackTrace(); 58 } 59 60 61 43 62 ISelection selection = HandlerUtil.getCurrentSelection(event); 44 63 if (selection instanceof IStructuredSelection) { … … 58 77 } 59 78 60 final EclipseResourceFileSystemAccess fsa = fileAccessProvider.get();79 final EclipseResourceFileSystemAccess2 fsa = fileAccessProvider.get(); 61 80 fsa.setOutputPath(srcGenFolder.getFullPath().toString()); 81 82 //complete the filesystemaccess 83 fsa.setMonitor(new NullProgressMonitor()); 84 Map<String, OutputConfiguration> teste = fsa.getOutputConfigurations(); 85 86 Iterator<Entry<String, OutputConfiguration>> it = teste.entrySet().iterator(); 87 88 while(it.hasNext()){ 89 90 Entry<String, OutputConfiguration> next = it.next(); 91 OutputConfiguration out = next.getValue(); 92 out.isOverrideExistingResources(); 93 out.setCreateOutputDirectory(true); // <--- do not touch this 62 94 95 } 96 // -----> 97 63 98 URI uri = URI.createPlatformResourceURI(file.getFullPath().toString(), true); 64 99 ResourceSet rs = resourceSetProvider.get(project); 65 100 Resource r = rs.getResource(uri, true); 101 102 // to pass a String inside a resource i have to wrap it in a EOBject 103 SimpleAnyType wrapper = XMLTypeFactory.eINSTANCE.createSimpleAnyType(); 104 wrapper.setInstanceType(EcorePackage.eINSTANCE.getEString()); 105 wrapper.setValue(mode); 106 // 107 108 // add string to resource 109 r.getContents().add(wrapper); 110 66 111 generator.doGenerate(r, fsa); 67 112 -
v2/trunk/de.ugoe.cs.swe.bnftools.ebnf/.classpath
r69 r72 1 1 <?xml version="1.0" encoding="UTF-8"?> 2 2 <classpath> 3 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/> 4 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> 3 5 <classpathentry kind="src" path="src"/> 4 6 <classpathentry kind="src" path="src-gen"/> 5 7 <classpathentry kind="src" path="xtend-gen"/> 6 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/> 7 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> 8 <classpathentry kind="lib" path="C:/Users/hauke/Desktop/Uni/Hiwijob bnf tools/fop-1.1/lib/avalon-framework-4.2.0.jar"/> 9 <classpathentry kind="lib" path="C:/Users/hauke/Desktop/Uni/Hiwijob bnf tools/fop-1.1/lib/batik-all-1.7.jar"/> 10 <classpathentry kind="lib" path="C:/Users/hauke/Desktop/Uni/Hiwijob bnf tools/fop-1.1/lib/commons-io-1.3.1.jar"/> 11 <classpathentry kind="lib" path="C:/Users/hauke/Desktop/Uni/Hiwijob bnf tools/fop-1.1/lib/commons-logging-1.0.4.jar"/> 12 <classpathentry kind="lib" path="C:/Users/hauke/Desktop/Uni/Hiwijob bnf tools/fop-1.1/lib/serializer-2.7.0.jar"/> 13 <classpathentry kind="lib" path="C:/Users/hauke/Desktop/Uni/Hiwijob bnf tools/fop-1.1/lib/xalan-2.7.0.jar"/> 14 <classpathentry kind="lib" path="C:/Users/hauke/Desktop/Uni/Hiwijob bnf tools/fop-1.1/lib/xercesImpl-2.7.1.jar"/> 15 <classpathentry kind="lib" path="C:/Users/hauke/Desktop/Uni/Hiwijob bnf tools/fop-1.1/lib/xml-apis-1.3.04.jar"/> 16 <classpathentry kind="lib" path="C:/Users/hauke/Desktop/Uni/Hiwijob bnf tools/fop-1.1/lib/xml-apis-ext-1.3.04.jar"/> 17 <classpathentry kind="lib" path="C:/Users/hauke/Desktop/Uni/Hiwijob bnf tools/fop-1.1/lib/xmlgraphics-commons-1.5.jar"/> 18 <classpathentry kind="lib" path="C:/Users/hauke/Desktop/Uni/Hiwijob bnf tools/fop-1.1/build/fop.jar"/> 8 <classpathentry kind="src" path="libs"/> 9 <classpathentry kind="lib" path="libs/avalon-framework-4.2.0.jar"/> 10 <classpathentry kind="lib" path="libs/batik-all-1.7.jar"/> 11 <classpathentry kind="lib" path="libs/commons-io-1.3.1.jar"/> 12 <classpathentry kind="lib" path="libs/commons-logging-1.0.4.jar"/> 13 <classpathentry kind="lib" path="libs/fop.jar"/> 14 <classpathentry kind="lib" path="libs/serializer-2.7.0.jar"/> 15 <classpathentry kind="lib" path="libs/xalan-2.7.0.jar"/> 16 <classpathentry kind="lib" path="libs/xercesImpl-2.7.1.jar"/> 17 <classpathentry kind="lib" path="libs/xml-apis-1.3.04.jar"/> 18 <classpathentry kind="lib" path="libs/xml-apis-ext-1.3.04.jar"/> 19 <classpathentry kind="lib" path="libs/xmlgraphics-commons-1.5.jar"/> 19 20 <classpathentry kind="output" path="bin"/> 20 21 </classpath> -
v2/trunk/de.ugoe.cs.swe.bnftools.ebnf/META-INF/MANIFEST.MF
r70 r72 21 21 org.eclipse.core.resources, 22 22 org.eclipse.core.runtime;version="3.4.0", 23 org.eclipse.xtext.xbase.lib 23 org.eclipse.xtext.xbase.lib 24 24 Bundle-RequiredExecutionEnvironment: J2SE-1.5 25 Export-Package: de.ugoe.cs.swe.bnftools, 26 de.ugoe.cs.swe.bnftools.services, 27 de.ugoe.cs.swe.bnftools.ebnf, 28 de.ugoe.cs.swe.bnftools.ebnf.impl, 29 de.ugoe.cs.swe.bnftools.ebnf.util, 30 de.ugoe.cs.swe.bnftools.serializer, 31 de.ugoe.cs.swe.bnftools.parser.antlr, 32 de.ugoe.cs.swe.bnftools.parser.antlr.internal, 33 de.ugoe.cs.swe.bnftools.validation, 34 de.ugoe.cs.swe.bnftools.scoping, 35 de.ugoe.cs.swe.bnftools.generator, 36 de.ugoe.cs.swe.bnftools.formatting 25 Export-Package: de.ugoe.cs.swe.bnftools;uses:="org.eclipse.xtext,org.eclipse.xtext.service,com.google.inject", 26 de.ugoe.cs.swe.bnftools.ebnf;uses:="org.eclipse.emf.ecore,org.eclipse.emf.common.util", 27 de.ugoe.cs.swe.bnftools.ebnf.impl; 28 uses:="org.eclipse.emf.ecore, 29 de.ugoe.cs.swe.bnftools.ebnf, 30 org.eclipse.emf.common.util, 31 org.eclipse.emf.ecore.impl, 32 org.eclipse.emf.common.notify", 33 de.ugoe.cs.swe.bnftools.ebnf.util; 34 uses:="org.eclipse.emf.ecore.util, 35 org.eclipse.emf.ecore, 36 org.eclipse.emf.common.notify.impl, 37 de.ugoe.cs.swe.bnftools.ebnf, 38 org.eclipse.emf.common.notify", 39 de.ugoe.cs.swe.bnftools.formatting;uses:="org.eclipse.xtext.formatting.impl", 40 de.ugoe.cs.swe.bnftools.generator;uses:="org.eclipse.emf.ecore.resource,de.ugoe.cs.swe.bnftools.ebnf,org.eclipse.xtext.generator", 41 de.ugoe.cs.swe.bnftools.parser.antlr;uses:="de.ugoe.cs.swe.bnftools.services,org.eclipse.xtext.parser.antlr,de.ugoe.cs.swe.bnftools.parser.antlr.internal", 42 de.ugoe.cs.swe.bnftools.parser.antlr.internal; 43 uses:="org.eclipse.emf.ecore, 44 de.ugoe.cs.swe.bnftools.services, 45 org.antlr.runtime, 46 org.eclipse.xtext.parser.antlr", 47 de.ugoe.cs.swe.bnftools.scoping;uses:="org.eclipse.xtext.scoping.impl", 48 de.ugoe.cs.swe.bnftools.serializer; 49 uses:="org.eclipse.xtext, 50 org.eclipse.emf.ecore, 51 org.eclipse.xtext.serializer.sequencer, 52 de.ugoe.cs.swe.bnftools.services, 53 de.ugoe.cs.swe.bnftools.ebnf, 54 org.eclipse.xtext.serializer.analysis, 55 org.eclipse.xtext.nodemodel", 56 de.ugoe.cs.swe.bnftools.services;uses:="org.eclipse.xtext,org.eclipse.xtext.service", 57 de.ugoe.cs.swe.bnftools.validation;uses:="de.ugoe.cs.swe.bnftools.ebnf" -
v2/trunk/de.ugoe.cs.swe.bnftools.ebnf/build.properties
r61 r72 1 source.. = src/,\2 src-gen/,\3 xtend-gen/4 1 bin.includes = model/,\ 5 2 META-INF/,\ 6 .,\7 3 plugin.xml 4 5 jars.compile.order = -
v2/trunk/de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/serializer/EbnfSyntacticSequencer.java
r67 r72 76 76 * Syntax: 77 77 * ( 78 ']' | 79 '|' | 78 80 '(' | 81 '*' | 82 '+' | 79 83 '}' | 84 '{' | 80 85 '[' | 81 '*' | 82 '|' | 83 '{' | 84 ')' | 85 ']' | 86 '+' 86 ')' 87 87 )* 88 88 */ -
v2/trunk/de.ugoe.cs.swe.bnftools.ebnf/src/de/ugoe/cs/swe/bnftools/formatting/EbnfFormatter.xtend
r65 r72 6 6 import com.google.inject.Inject 7 7 import de.ugoe.cs.swe.bnftools.services.EbnfGrammarAccess 8 import org.eclipse.xtext.Keyword9 8 import org.eclipse.xtext.formatting.impl.AbstractDeclarativeFormatter 10 9 import org.eclipse.xtext.formatting.impl.FormattingConfig 11 import org.eclipse.emf.ecore.EObject 12 import de.ugoe.cs.swe.bnftools.ebnf.Rule 13 import de.ugoe.cs.swe.bnftools.ebnf.DefinitionList 10 14 11 15 12 /** … … 38 35 39 36 40 // for (Keyword bar : f.findKeywords("|")) {41 //42 // c.setSpace("\n\t\t").before(bar);43 // }44 45 37 } 46 38 } -
v2/trunk/de.ugoe.cs.swe.bnftools.ebnf/src/de/ugoe/cs/swe/bnftools/generator/EbnfGenerator.xtend
r70 r72 24 24 import org.eclipse.xtext.generator.IFileSystemAccessExtension 25 25 import java.io.PrintWriter 26 26 27 /** 27 28 * Generates code from your model files on save. … … 30 31 */ 31 32 class EbnfGenerator implements IGenerator { 33 32 34 //generation of the xsl-file 33 35 override void doGenerate(Resource resource, IFileSystemAccess fsa) { 34 var String workspacePath = WorkspaceResolver.getWorkspace();36 var String workspacePath = WorkspaceResolver.getWorkspace(); 35 37 for (e : resource.allContents.toIterable.filter(EtsiBnf)) { 36 if (e.bnfEntry.size !=0) {37 38 39 40 var uri = (fsa as IFileSystemAccessExtension2).getURI(e.name+".fo");41 var String fullUri = workspacePath+uri.path.substring(10,uri.path.length);42 System.out.println(workspacePath +uri.path.substring(10,uri.path.length));38 if (e.bnfEntry.size != 0) { 39 fsa.generateFile(e.name + ".fo", e.compile) 40 41 //generate pdf 42 var uri = (fsa as IFileSystemAccessExtension2).getURI(e.name + ".fo"); 43 var String fullUri = workspacePath + uri.path.substring(10, uri.path.length); 44 System.out.println(workspacePath + uri.path.substring(10, uri.path.length)); 43 45 var File file = new File(fullUri); 44 System.out.println(file.exists); 45 // System.out.println(uri.toString()); 46 47 48 // System.out.println(file.exists); 49 50 // foToPdf.createPdfFromFo(file,aPath.substring(0,aPath.length-3)); 46 System.out.println(file.exists+ "," + fullUri.substring(0, fullUri.length - 3)); 47 48 if (file.exists) { 49 foToPdf.createPdfFromFo(fullUri.substring(0, fullUri.length - 3)); 50 } 51 51 } 52 52 } … … 54 54 55 55 // compile the different entities of the Bnf----------------------------------------------------------------------------- 56 def compile(EtsiBnf bnf) 57 ''' 56 def compile(EtsiBnf bnf) ''' 58 57 <?xml version="1.0"?> 59 58 <!-- fop «bnf.name».xml -rtf «bnf.name».rtf --> 60 59 <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"> 61 60 62 61 <fo:layout-master-set> 63 64 65 62 <fo:simple-page-master master-name="A4" page-width="210mm" page-height="297mm"> 63 <fo:region-body region-name="xsl-region-body" margin="2cm"/> 64 </fo:simple-page-master> 66 65 </fo:layout-master-set> 67 66 … … 69 68 <fo:flow flow-name="xsl-region-body" font-family="verdana"> 70 69 71 <fo:block span="all" text-align="center" text-indent="1em" font-family="Arial" font-size="20pt" font-weight="bold" background-color="#EEEEEE" line-height="20mm">«bnf.name»</fo:block> 70 <fo:block span="all" text-align="center" text-indent="1em" font-family="Arial" font-size="20pt" font-weight="bold" background-color="#EEEEEE" line-height="20mm">«bnf. 71 name»</fo:block> 72 72 73 «FOR bnfentry :bnf.bnfEntry»73 «FOR bnfentry : bnf.bnfEntry» 74 74 «bnfentry.compile» 75 75 «ENDFOR» … … 77 77 </fo:page-sequence> 78 78 </fo:root>''' 79 80 def compile(BnfEntry bnfEntry) '''81 «IF bnfEntry.rule != null»82 79 80 def compile(BnfEntry bnfEntry) ''' 81 «IF bnfEntry.rule != null» 82 «bnfEntry.rule.compile» 83 83 «ENDIF» 84 84 ''' 85 86 def compile(Rule rule)'''<fo:block><fo:inline id="«rule.name»" color="purple">«IF rule.rulenumber!=0»«rule.rulenumber». «ENDIF»«rule.name»</fo:inline> ::= «rule.definitionList.compile»</fo:block>'''87 88 def compile(DefinitionList dList)'''«FOR sDef:dList.singleDefinition»«sDef.compile»«IF !sDef.equals(dList.singleDefinition.last)» | «ENDIF»«ENDFOR»'''89 90 def compile(SingleDefinition sDefinition)'''«FOR term:sDefinition.terms»«term.compile»«ENDFOR»'''91 92 def compile(Term term)'''«IF term.termAtom!=null»«term.termAtom.compile»«ENDIF»«IF term.termOptionalSequence!=null»«term.termOptionalSequence.compile»«ENDIF»«IF term.termRepeatedSequence!=null»«term.termRepeatedSequence.compile»«ENDIF»«IF term.termGroupedSequence!=null»«term.termGroupedSequence.compile»«ENDIF»'''93 94 def compile(GroupedSequence gSequ)'''«FOR d :gSequ.definitionList»«d.compile»«ENDFOR»'''95 85 96 def compile(RepeatedSequence rSequ)'''{«FOR d:rSequ.definitions»«d.compile»«ENDFOR»}«IF rSequ.morethanonce»+«ENDIF»''' 97 98 def compile(OptionalSequence oSequ)'''(«FOR d:oSequ.definitionList»«d.compile»«ENDFOR»)''' 99 100 def compile(Atom atom)''' 101 «IF atom.atomRuleReference!= null»«atom.atomRuleReference.compile»«ENDIF»«IF atom.atomStringRule!= null»«atom.atomStringRule.compile»«ENDIF»''' 102 103 def compile(RuleReference rRef)'''<fo:basic-link internal-destination="«rRef.ruleref.name»" text-decoration="underline" color="blue">«rRef.ruleref.name»</fo:basic-link> ''' 104 105 def compile(StringRule sRule)'''«IF sRule.colon!=null»«sRule.colon»«ENDIF»«IF sRule.literal!=null»«sRule.literal» «ENDIF»''' 106 107 86 def compile(Rule rule) '''<fo:block><fo:inline id="«rule.name»" color="purple">«IF rule.rulenumber != 0»«rule. 87 rulenumber». «ENDIF»«rule.name»</fo:inline> ::= «rule.definitionList.compile»</fo:block>''' 88 89 def compile(DefinitionList dList) '''«FOR sDef : dList.singleDefinition»«sDef.compile»«IF !sDef.equals( 90 dList.singleDefinition.last)» | «ENDIF»«ENDFOR»''' 91 92 def compile(SingleDefinition sDefinition) '''«FOR term : sDefinition.terms»«term.compile»«ENDFOR»''' 93 94 def compile(Term term) '''«IF term.termAtom != null»«term.termAtom.compile»«ENDIF»«IF term.termOptionalSequence != 95 null»«term.termOptionalSequence.compile»«ENDIF»«IF term.termRepeatedSequence != null»«term.termRepeatedSequence. 96 compile»«ENDIF»«IF term.termGroupedSequence != null»«term.termGroupedSequence.compile»«ENDIF»''' 97 98 def compile(GroupedSequence gSequ) '''«FOR d : gSequ.definitionList»«d.compile»«ENDFOR»''' 99 100 def compile(RepeatedSequence rSequ) '''{«FOR d : rSequ.definitions»«d.compile»«ENDFOR»}«IF rSequ.morethanonce»+«ENDIF»''' 101 102 def compile(OptionalSequence oSequ) '''(«FOR d : oSequ.definitionList»«d.compile»«ENDFOR»)''' 103 104 def compile(Atom atom) ''' 105 «IF atom.atomRuleReference != null»«atom.atomRuleReference.compile»«ENDIF»«IF atom.atomStringRule != null»«atom. 106 atomStringRule.compile»«ENDIF»''' 107 108 def compile(RuleReference rRef) '''<fo:basic-link internal-destination="«rRef.ruleref.name»" text-decoration="underline" color="blue">«rRef. 109 ruleref.name»</fo:basic-link> ''' 110 111 def compile(StringRule sRule) '''«IF sRule.colon != null»«sRule.colon»«ENDIF»«IF sRule.literal != null»«sRule. 112 literal» «ENDIF»''' 113 108 114 } -
v2/trunk/de.ugoe.cs.swe.bnftools.ebnf/src/de/ugoe/cs/swe/bnftools/generator/foToPdf.java
r70 r72 15 15 import javax.xml.transform.stream.StreamSource; 16 16 17 18 17 19 import org.apache.fop.apps.FOPException; 20 import org.apache.fop.apps.Fop; 18 21 import org.apache.fop.apps.FopFactory; 19 import org.apache.fop.apps.Fop;20 22 import org.apache.fop.apps.MimeConstants; 23 21 24 22 25 public class foToPdf { 23 26 24 public static void main(String args[]) throws IOException, FOPException,25 TransformerException {26 27 27 createfoFromPdf("test1","test1");28 }29 28 30 29 public static void createPdfFromFo(String fileName) throws IOException, FOPException, -
v2/trunk/de.ugoe.cs.swe.bnftools.ebnf/src/de/ugoe/cs/swe/bnftools/validation/EbnfValidator.xtend
r66 r72 14 14 import de.ugoe.cs.swe.bnftools.ebnf.DefinitionList 15 15 import de.ugoe.cs.swe.bnftools.ebnf.SingleDefinition 16 import java.util.ArrayList17 16 import com.google.inject.Inject 18 17 import org.eclipse.xtext.resource.IResourceDescriptions
Note: See TracChangeset
for help on using the changeset viewer.