32 Commits

Author SHA1 Message Date
7e060f2a7e Bumped version numbers 2018-06-04 21:12:17 +02:00
c2ff8f1f67 Fixed NPE in generator 2018-06-04 20:55:10 +02:00
aee194f777 Fixed project wizard and removed JDT/PDE dependency 2018-06-04 20:54:35 +02:00
c7d8d6c417 Cleanup and fix of old settings 2018-06-04 18:49:04 +02:00
acb5b95f5a Fixed pom setting for product naming 2018-06-03 13:02:58 +02:00
e43f205ba7 Fixed version numbers 2018-06-03 11:19:08 +02:00
661a40c5d4 Merge branch 'develop' 2018-06-03 10:52:03 +02:00
1eea28e55c Added hyperlinking and bumped version numbers 2018-06-03 10:48:41 +02:00
9a55dd5a21 Migrated to XText 2.14 and Photon for RDL Editor RCP 2018-06-02 23:41:27 +02:00
cc6d106838 Update to XText 2.13 2018-06-02 18:41:09 +02:00
71f8f3b920 Fixed repo release number 2017-10-11 08:31:19 +02:00
126046430d Merge pull request #2 from Minres/develop
Merge for patch release
2017-10-05 07:21:02 +00:00
30653d0f26 Minor fixes for packaging 2017-10-05 09:18:23 +02:00
dada6724db Removed by accident overwritten function 2017-10-04 10:12:19 +02:00
0e526f811a Fixed size calculation and error generating std::array of plain
datatypes
2017-10-04 10:10:36 +02:00
f950322d05 Fixed build problem and adapted visibility in generated code 2017-10-03 15:52:48 +02:00
a1bcd48a4c Delete CNAME 2017-09-25 22:56:38 +02:00
781b83091c Create CNAME 2017-09-25 22:55:48 +02:00
b6528d97e3 Set theme jekyll-theme-tactile 2017-09-25 22:49:39 +02:00
fd0d001b3f Update README.md 2017-09-25 22:47:48 +02:00
6c7515fd49 Update README.md 2017-09-25 22:46:34 +02:00
8a4469923a Updated ignore list 2017-09-25 21:26:02 +02:00
a973f43fe6 Fixed code generation to use sc_register_indexed for register arrays 2017-09-20 22:36:20 +02:00
8ceb09beed Minor fixes in Main rgd. CLI processing 2017-09-20 10:44:11 +02:00
d865faf127 Changed option processing 2017-09-20 10:37:50 +02:00
bc15a75974 Updated version 2017-09-19 23:01:26 +02:00
d050a47357 ensure string consistency 2017-09-19 21:50:42 +02:00
dc6577b2b9 Added preferences store and UI 2017-09-19 21:43:50 +02:00
93646a3ad0 Merge branch 'develop' of https://github.com/Minres/RDL-Editor.git into develop 2017-09-19 18:32:02 +02:00
bd660003f4 Added standalone module 2017-09-19 18:31:23 +02:00
cc2891cb8c Changed grammar and added code generator
* changed the grammar to ease code generation
* added a code generator and a standalone setup to generate SystemC code
using SC-Components lib
2017-09-19 18:08:17 +02:00
2d55eac2b9 Set theme jekyll-theme-minimal 2017-09-13 23:04:23 +02:00
223 changed files with 25147 additions and 15069 deletions

View File

@ -1,2 +1,9 @@
# RDL-Editor
An Xtext based SystemRDL editor with syntax highlighting and cross references
## RDL Editor
This is an editor for [SystemRDL](http://www.accellera.org/activities/working-groups/systemrdl/).
Quote from Accellera: "SystemRDL is designed to increase productivity, quality, and reuse during the design and development of complex digital systems. It can be used to share IP within and between groups, companies, and consortiums. This is accomplished by specifying a single source for the register description from which all views can be automatically generated, which ensures consistency between multiple views. A view is any output generated from the SystemRDL description, e.g., RTL code or documentation."
The editor is build on top of [Eclipse Xtext](http://www.eclipse.org/Xtext/), a framework to build **D**omain **S**pecific **L**anguages (DSL).
It has a code generator to create the register models using the [SC-Components](https://github.com/Minres/SystemC-Components) library. Due to the nature of Xtext this generator can easily be tailored to various needs.

1
_config.yml Normal file
View File

@ -0,0 +1 @@
theme: jekyll-theme-tactile

View File

@ -2,31 +2,8 @@
<feature
id="com.minres.rdl.feature"
label="RDL Feature "
version="1.0.0.qualifier">
<requires>
<import plugin="org.eclipse.xtext"/>
<import plugin="org.eclipse.xtext.xbase"/>
<import plugin="org.eclipse.equinox.common" version="3.5.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.emf.ecore"/>
<import plugin="org.eclipse.xtext.xbase.lib"/>
<import plugin="org.antlr.runtime"/>
<import plugin="org.eclipse.xtext.util"/>
<import plugin="org.eclipse.xtend.lib"/>
<import plugin="org.eclipse.emf.common"/>
<import plugin="org.eclipse.equinox.preferences"/>
<import plugin="org.apache.log4j"/>
<import plugin="org.eclipse.xtext.ide"/>
<import plugin="org.eclipse.xtext.xbase.ide"/>
<import plugin="org.eclipse.xtext.ui"/>
<import plugin="org.eclipse.xtext.ui.shared"/>
<import plugin="org.eclipse.xtext.ui.codetemplates.ui"/>
<import plugin="org.eclipse.ui.editors" version="3.5.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.ui.ide" version="3.5.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.ui"/>
<import plugin="org.eclipse.compare"/>
<import plugin="org.eclipse.xtext.builder"/>
</requires>
version="1.0.0.qualifier"
provider-name="MINRES Technologies GmbH">
<plugin
id="com.minres.rdl"

View File

@ -1,4 +1,5 @@
Manifest-Version: 1.0
Automatic-Module-Name: com.minres.rdl.ide
Bundle-ManifestVersion: 2
Bundle-Name: com.minres.rdl.ide
Bundle-Vendor: My Company

View File

@ -9,12 +9,182 @@
<artifactId>com.minres.rdl.ide</artifactId>
<packaging>eclipse-plugin</packaging>
<dependencies>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
</dependency>
<dependency>
<groupId>org.eclipse.lsp4j</groupId>
<artifactId>org.eclipse.lsp4j</artifactId>
<version>0.4.0</version>
</dependency>
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm</artifactId>
<version>6.1.1</version>
</dependency>
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm-commons</artifactId>
<version>6.1.1</version>
</dependency>
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm-tree</artifactId>
<version>6.1.1</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.eclipse.xtend</groupId>
<artifactId>xtend-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>target-platform-configuration</artifactId>
<configuration>
<pomDependencies>consider</pomDependencies>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.0.1</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/libs</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>false</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
<excludeTransitive>true</excludeTransitive>
<excludeArtifactIds>
com.ibm.icu,
org.apache.ant,
org.apache.commons.lang,
org.apache.commons.logging,
org.eclipse.core.commands,
org.eclipse.core.contenttype,
org.eclipse.core.expressions,
org.eclipse.core.filesystem,
org.eclipse.core.jobs,
org.eclipse.core.resources,
org.eclipse.core.runtime,
org.eclipse.core.variables,
org.eclipse.debug.core,
org.eclipse.emf.codegen.ecore,
org.eclipse.emf.codegen,
org.eclipse.emf.mwe.core,
org.eclipse.emf.mwe.utils,
org.eclipse.emf.mwe2.lib,
org.eclipse.emf.mwe2.runtime,
org.eclipse.equinox.app,
org.eclipse.equinox.preferences,
org.eclipse.equinox.registry,
org.eclipse.jdt.core,
org.eclipse.jdt.debug,
org.eclipse.jdt.launching,
org.eclipse.text,
org.eclipse.xtend.typesystem.emf,
org.eclipse.xtend,
</excludeArtifactIds>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.googlecode.addjars-maven-plugin</groupId>
<artifactId>addjars-maven-plugin</artifactId>
<version>1.0.5</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>add-jars</goal>
</goals>
<configuration>
<resources>
<resource>
<directory>${project.build.directory}/libs</directory>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>org.eclipse.xtext.ide.server.ServerLauncher</mainClass>
</transformer>
<transformer
implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>plugin.properties</resource>
</transformer>
</transformers>
<artifactSet>
<excludes><!-- avoid duplicate inclusion due to addjars plugin -->
<exclude>*:com.minres.rdl.ide-org.eclipse.lsp4j*</exclude>
<exclude>*:com.minres.rdl.ide-org.eclipse.xtext.xbase.lib*</exclude>
<exclude>*:com.minres.rdl.ide-org.eclipse.xtend.lib*</exclude>
<exclude>*:com.minres.rdl.ide-com.google.guava*</exclude>
<exclude>*:com.minres.rdl.ide-asm*</exclude>
<exclude>*:com.minres.rdl.ide-log4j*</exclude>
<exclude>*:com.minres.rdl.ide-org.objectweb.asm*</exclude>
<exclude>*:com.minres.rdl.ide-org.apache.log4j*</exclude>
</excludes>
</artifactSet>
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/INDEX.LIST</exclude>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
<exclude>.options</exclude>
<exclude>.api_description</exclude>
<exclude>*.profile</exclude>
<exclude>*.html</exclude>
<exclude>about.*</exclude>
<exclude>about_files/*</exclude>
<exclude>plugin.xml</exclude>
<exclude>modeling32.png</exclude>
<exclude>systembundle.properties</exclude>
<exclude>profile.list</exclude>
<exclude>**/*._trace</exclude>
<exclude>**/*.g</exclude>
<exclude>**/*.mwe2</exclude>
<exclude>**/*.xtext</exclude>
</excludes>
</filter>
</filters>
<shadedArtifactAttached>true</shadedArtifactAttached>
<shadedClassifierName>ls</shadedClassifierName>
<minimizeJar>false</minimizeJar>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>

View File

@ -1,5 +1,5 @@
/*
* generated by Xtext 2.12.0
* generated by Xtext 2.14.0
*/
package com.minres.rdl.ide;
@ -15,6 +15,9 @@ import org.eclipse.xtext.ide.editor.contentassist.IProposalConflictHelper;
import org.eclipse.xtext.ide.editor.contentassist.antlr.AntlrProposalConflictHelper;
import org.eclipse.xtext.ide.editor.contentassist.antlr.IContentAssistParser;
import org.eclipse.xtext.ide.editor.contentassist.antlr.internal.Lexer;
import org.eclipse.xtext.ide.refactoring.IRenameStrategy2;
import org.eclipse.xtext.ide.server.rename.IRenameService;
import org.eclipse.xtext.ide.server.rename.RenameService;
/**
* Manual modifications go to {@link RDLIdeModule}.
@ -44,4 +47,14 @@ public abstract class AbstractRDLIdeModule extends DefaultIdeModule {
return FQNPrefixMatcher.class;
}
// contributed by org.eclipse.xtext.xtext.generator.ui.refactoring.RefactorElementNameFragment2
public Class<? extends IRenameService> bindIRenameService() {
return RenameService.class;
}
// contributed by org.eclipse.xtext.xtext.generator.ui.refactoring.RefactorElementNameFragment2
public Class<? extends IRenameStrategy2> bindIRenameStrategy2() {
return IRenameStrategy2.DefaultImpl.class;
}
}

View File

@ -1,5 +1,5 @@
/*
* generated by Xtext 2.12.0
* generated by Xtext 2.14.0
*/
package com.minres.rdl.ide.contentassist.antlr;

View File

@ -1,23 +1,222 @@
/*
* generated by Xtext 2.12.0
* generated by Xtext 2.14.0
*/
package com.minres.rdl.ide.contentassist.antlr;
import com.google.common.collect.ImmutableMap;
import com.google.inject.Inject;
import com.google.inject.Singleton;
import com.minres.rdl.ide.contentassist.antlr.internal.InternalRDLParser;
import com.minres.rdl.services.RDLGrammarAccess;
import java.util.HashMap;
import java.util.Map;
import org.eclipse.xtext.AbstractElement;
import org.eclipse.xtext.ide.editor.contentassist.antlr.AbstractContentAssistParser;
public class RDLParser extends AbstractContentAssistParser {
@Singleton
public static final class NameMappings {
private final Map<AbstractElement, String> mappings;
@Inject
public NameMappings(RDLGrammarAccess grammarAccess) {
ImmutableMap.Builder<AbstractElement, String> builder = ImmutableMap.builder();
init(builder, grammarAccess);
this.mappings = builder.build();
}
public String getRuleName(AbstractElement element) {
return mappings.get(element);
}
private static void init(ImmutableMap.Builder<AbstractElement, String> builder, RDLGrammarAccess grammarAccess) {
builder.put(grammarAccess.getRootAccess().getAlternatives(), "rule__Root__Alternatives");
builder.put(grammarAccess.getPropertyDefinitionAccess().getAlternatives_3(), "rule__PropertyDefinition__Alternatives_3");
builder.put(grammarAccess.getPropertyDefinitionAccess().getAlternatives_3_0_4(), "rule__PropertyDefinition__Alternatives_3_0_4");
builder.put(grammarAccess.getPropertyDefinitionAccess().getAlternatives_3_1_1(), "rule__PropertyDefinition__Alternatives_3_1_1");
builder.put(grammarAccess.getPropertyDefinitionAccess().getAlternatives_3_2_1(), "rule__PropertyDefinition__Alternatives_3_2_1");
builder.put(grammarAccess.getPropertyDefaultAccess().getAlternatives_2(), "rule__PropertyDefault__Alternatives_2");
builder.put(grammarAccess.getComponentDefinitionAccess().getAlternatives_3(), "rule__ComponentDefinition__Alternatives_3");
builder.put(grammarAccess.getInstantiationAccess().getAlternatives_0(), "rule__Instantiation__Alternatives_0");
builder.put(grammarAccess.getRangeAccess().getAlternatives_1(), "rule__Range__Alternatives_1");
builder.put(grammarAccess.getPropertyAssignmentAccess().getAlternatives(), "rule__PropertyAssignment__Alternatives");
builder.put(grammarAccess.getExplicitPropertyAssignmentAccess().getAlternatives(), "rule__ExplicitPropertyAssignment__Alternatives");
builder.put(grammarAccess.getPostPropertyAssignmentAccess().getAlternatives_0(), "rule__PostPropertyAssignment__Alternatives_0");
builder.put(grammarAccess.getPostPropertyAssignmentAccess().getAlternatives_0_0_2(), "rule__PostPropertyAssignment__Alternatives_0_0_2");
builder.put(grammarAccess.getInstancePropertyRefAccess().getAlternatives_1_1(), "rule__InstancePropertyRef__Alternatives_1_1");
builder.put(grammarAccess.getEntityAccess().getAlternatives(), "rule__Entity__Alternatives");
builder.put(grammarAccess.getPropertyAssignmentRhsAccess().getAlternatives(), "rule__PropertyAssignmentRhs__Alternatives");
builder.put(grammarAccess.getConcatElemAccess().getAlternatives(), "rule__ConcatElem__Alternatives");
builder.put(grammarAccess.getPropertyRvalueConstantAccess().getAlternatives(), "rule__PropertyRvalueConstant__Alternatives");
builder.put(grammarAccess.getEnumPropertyAccess().getAlternatives_0(), "rule__EnumProperty__Alternatives_0");
builder.put(grammarAccess.getEnumInstanceTypeAccess().getAlternatives(), "rule__EnumInstanceType__Alternatives");
builder.put(grammarAccess.getPropertyTypeNameAccess().getAlternatives(), "rule__PropertyTypeName__Alternatives");
builder.put(grammarAccess.getPropertyComponentAccess().getAlternatives(), "rule__PropertyComponent__Alternatives");
builder.put(grammarAccess.getComponentDefinitionTypeAccess().getAlternatives(), "rule__ComponentDefinitionType__Alternatives");
builder.put(grammarAccess.getPropertyEnumAccess().getAlternatives(), "rule__PropertyEnum__Alternatives");
builder.put(grammarAccess.getPropertyAccess().getAlternatives(), "rule__Property__Alternatives");
builder.put(grammarAccess.getRValueConstantAccess().getAlternatives(), "rule__RValueConstant__Alternatives");
builder.put(grammarAccess.getPropertyModifierAccess().getAlternatives(), "rule__PropertyModifier__Alternatives");
builder.put(grammarAccess.getRootAccess().getGroup_1(), "rule__Root__Group_1__0");
builder.put(grammarAccess.getRootAccess().getGroup_2(), "rule__Root__Group_2__0");
builder.put(grammarAccess.getRootAccess().getGroup_3(), "rule__Root__Group_3__0");
builder.put(grammarAccess.getRootAccess().getGroup_4(), "rule__Root__Group_4__0");
builder.put(grammarAccess.getRootAccess().getGroup_5(), "rule__Root__Group_5__0");
builder.put(grammarAccess.getIncludeAccess().getGroup(), "rule__Include__Group__0");
builder.put(grammarAccess.getPropertyDefinitionAccess().getGroup(), "rule__PropertyDefinition__Group__0");
builder.put(grammarAccess.getPropertyDefinitionAccess().getGroup_3_0(), "rule__PropertyDefinition__Group_3_0__0");
builder.put(grammarAccess.getPropertyDefinitionAccess().getGroup_3_0_4_0(), "rule__PropertyDefinition__Group_3_0_4_0__0");
builder.put(grammarAccess.getPropertyDefinitionAccess().getGroup_3_0_4_1(), "rule__PropertyDefinition__Group_3_0_4_1__0");
builder.put(grammarAccess.getPropertyDefinitionAccess().getGroup_3_1(), "rule__PropertyDefinition__Group_3_1__0");
builder.put(grammarAccess.getPropertyDefinitionAccess().getGroup_3_1_1_0(), "rule__PropertyDefinition__Group_3_1_1_0__0");
builder.put(grammarAccess.getPropertyDefinitionAccess().getGroup_3_1_1_1(), "rule__PropertyDefinition__Group_3_1_1_1__0");
builder.put(grammarAccess.getPropertyDefinitionAccess().getGroup_3_2(), "rule__PropertyDefinition__Group_3_2__0");
builder.put(grammarAccess.getPropertyDefinitionAccess().getGroup_3_2_1_0(), "rule__PropertyDefinition__Group_3_2_1_0__0");
builder.put(grammarAccess.getPropertyDefinitionAccess().getGroup_3_2_1_1(), "rule__PropertyDefinition__Group_3_2_1_1__0");
builder.put(grammarAccess.getPropertyDefaultAccess().getGroup(), "rule__PropertyDefault__Group__0");
builder.put(grammarAccess.getPropertyUsageAccess().getGroup(), "rule__PropertyUsage__Group__0");
builder.put(grammarAccess.getPropertyUsageAccess().getGroup_3(), "rule__PropertyUsage__Group_3__0");
builder.put(grammarAccess.getComponentDefinitionAccess().getGroup(), "rule__ComponentDefinition__Group__0");
builder.put(grammarAccess.getComponentDefinitionAccess().getGroup_3_0(), "rule__ComponentDefinition__Group_3_0__0");
builder.put(grammarAccess.getComponentDefinitionAccess().getGroup_3_1(), "rule__ComponentDefinition__Group_3_1__0");
builder.put(grammarAccess.getComponentDefinitionAccess().getGroup_3_2(), "rule__ComponentDefinition__Group_3_2__0");
builder.put(grammarAccess.getComponentDefinitionAccess().getGroup_3_3(), "rule__ComponentDefinition__Group_3_3__0");
builder.put(grammarAccess.getInstantiationAccess().getGroup(), "rule__Instantiation__Group__0");
builder.put(grammarAccess.getInstantiationAccess().getGroup_0_0(), "rule__Instantiation__Group_0_0__0");
builder.put(grammarAccess.getInstantiationAccess().getGroup_0_0_1(), "rule__Instantiation__Group_0_0_1__0");
builder.put(grammarAccess.getInstantiationAccess().getGroup_0_1(), "rule__Instantiation__Group_0_1__0");
builder.put(grammarAccess.getInstantiationAccess().getGroup_2(), "rule__Instantiation__Group_2__0");
builder.put(grammarAccess.getComponentInstanceAccess().getGroup(), "rule__ComponentInstance__Group__0");
builder.put(grammarAccess.getComponentInstanceAccess().getGroup_2(), "rule__ComponentInstance__Group_2__0");
builder.put(grammarAccess.getComponentInstanceAccess().getGroup_3(), "rule__ComponentInstance__Group_3__0");
builder.put(grammarAccess.getComponentInstanceAccess().getGroup_4(), "rule__ComponentInstance__Group_4__0");
builder.put(grammarAccess.getComponentInstanceAccess().getGroup_5(), "rule__ComponentInstance__Group_5__0");
builder.put(grammarAccess.getRangeAccess().getGroup(), "rule__Range__Group__0");
builder.put(grammarAccess.getRangeAccess().getGroup_1_0(), "rule__Range__Group_1_0__0");
builder.put(grammarAccess.getDefaultProperyAssignmentAccess().getGroup(), "rule__DefaultProperyAssignment__Group__0");
builder.put(grammarAccess.getExplicitPropertyAssignmentAccess().getGroup_0(), "rule__ExplicitPropertyAssignment__Group_0__0");
builder.put(grammarAccess.getExplicitPropertyAssignmentAccess().getGroup_1(), "rule__ExplicitPropertyAssignment__Group_1__0");
builder.put(grammarAccess.getExplicitPropertyAssignmentAccess().getGroup_1_1(), "rule__ExplicitPropertyAssignment__Group_1_1__0");
builder.put(grammarAccess.getPostPropertyAssignmentAccess().getGroup(), "rule__PostPropertyAssignment__Group__0");
builder.put(grammarAccess.getPostPropertyAssignmentAccess().getGroup_0_0(), "rule__PostPropertyAssignment__Group_0_0__0");
builder.put(grammarAccess.getPostPropertyAssignmentAccess().getGroup_1(), "rule__PostPropertyAssignment__Group_1__0");
builder.put(grammarAccess.getInstancePropertyRefAccess().getGroup(), "rule__InstancePropertyRef__Group__0");
builder.put(grammarAccess.getInstancePropertyRefAccess().getGroup_1(), "rule__InstancePropertyRef__Group_1__0");
builder.put(grammarAccess.getInstanceRefAccess().getGroup(), "rule__InstanceRef__Group__0");
builder.put(grammarAccess.getInstanceRefAccess().getGroup_1(), "rule__InstanceRef__Group_1__0");
builder.put(grammarAccess.getHierInstanceRefAccess().getGroup(), "rule__HierInstanceRef__Group__0");
builder.put(grammarAccess.getHierInstanceRefAccess().getGroup_1(), "rule__HierInstanceRef__Group_1__0");
builder.put(grammarAccess.getPropertyAssignmentRhsAccess().getGroup_2(), "rule__PropertyAssignmentRhs__Group_2__0");
builder.put(grammarAccess.getConcatAccess().getGroup(), "rule__Concat__Group__0");
builder.put(grammarAccess.getConcatAccess().getGroup_2(), "rule__Concat__Group_2__0");
builder.put(grammarAccess.getEnumDefinitionAccess().getGroup(), "rule__EnumDefinition__Group__0");
builder.put(grammarAccess.getEnumBodyAccess().getGroup(), "rule__EnumBody__Group__0");
builder.put(grammarAccess.getEnumEntryAccess().getGroup(), "rule__EnumEntry__Group__0");
builder.put(grammarAccess.getEnumEntryAccess().getGroup_3(), "rule__EnumEntry__Group_3__0");
builder.put(grammarAccess.getEnumPropertyAccess().getGroup(), "rule__EnumProperty__Group__0");
builder.put(grammarAccess.getEnumPropertyAccess().getGroup_0_0(), "rule__EnumProperty__Group_0_0__0");
builder.put(grammarAccess.getEnumPropertyAccess().getGroup_0_1(), "rule__EnumProperty__Group_0_1__0");
builder.put(grammarAccess.getRootAccess().getIncludesAssignment_0(), "rule__Root__IncludesAssignment_0");
builder.put(grammarAccess.getRootAccess().getComponentDefinitionsAssignment_1_0(), "rule__Root__ComponentDefinitionsAssignment_1_0");
builder.put(grammarAccess.getRootAccess().getEnumDefinitionsAssignment_2_0(), "rule__Root__EnumDefinitionsAssignment_2_0");
builder.put(grammarAccess.getRootAccess().getInstantiationsAssignment_3_0(), "rule__Root__InstantiationsAssignment_3_0");
builder.put(grammarAccess.getRootAccess().getPropertyAssignmentsAssignment_4_0(), "rule__Root__PropertyAssignmentsAssignment_4_0");
builder.put(grammarAccess.getRootAccess().getPropertyDefinitionsAssignment_5_0(), "rule__Root__PropertyDefinitionsAssignment_5_0");
builder.put(grammarAccess.getIncludeAccess().getImportURIAssignment_1(), "rule__Include__ImportURIAssignment_1");
builder.put(grammarAccess.getPropertyDefinitionAccess().getNameAssignment_1(), "rule__PropertyDefinition__NameAssignment_1");
builder.put(grammarAccess.getPropertyDefinitionAccess().getTypeAssignment_3_0_2(), "rule__PropertyDefinition__TypeAssignment_3_0_2");
builder.put(grammarAccess.getPropertyDefinitionAccess().getUsageAssignment_3_0_4_0_0(), "rule__PropertyDefinition__UsageAssignment_3_0_4_0_0");
builder.put(grammarAccess.getPropertyDefinitionAccess().getDefaultAssignment_3_0_4_0_1(), "rule__PropertyDefinition__DefaultAssignment_3_0_4_0_1");
builder.put(grammarAccess.getPropertyDefinitionAccess().getDefaultAssignment_3_0_4_1_0(), "rule__PropertyDefinition__DefaultAssignment_3_0_4_1_0");
builder.put(grammarAccess.getPropertyDefinitionAccess().getUsageAssignment_3_0_4_1_1(), "rule__PropertyDefinition__UsageAssignment_3_0_4_1_1");
builder.put(grammarAccess.getPropertyDefinitionAccess().getUsageAssignment_3_1_0(), "rule__PropertyDefinition__UsageAssignment_3_1_0");
builder.put(grammarAccess.getPropertyDefinitionAccess().getTypeAssignment_3_1_1_0_2(), "rule__PropertyDefinition__TypeAssignment_3_1_1_0_2");
builder.put(grammarAccess.getPropertyDefinitionAccess().getDefaultAssignment_3_1_1_0_4(), "rule__PropertyDefinition__DefaultAssignment_3_1_1_0_4");
builder.put(grammarAccess.getPropertyDefinitionAccess().getDefaultAssignment_3_1_1_1_0(), "rule__PropertyDefinition__DefaultAssignment_3_1_1_1_0");
builder.put(grammarAccess.getPropertyDefinitionAccess().getTypeAssignment_3_1_1_1_3(), "rule__PropertyDefinition__TypeAssignment_3_1_1_1_3");
builder.put(grammarAccess.getPropertyDefinitionAccess().getDefaultAssignment_3_2_0(), "rule__PropertyDefinition__DefaultAssignment_3_2_0");
builder.put(grammarAccess.getPropertyDefinitionAccess().getTypeAssignment_3_2_1_0_2(), "rule__PropertyDefinition__TypeAssignment_3_2_1_0_2");
builder.put(grammarAccess.getPropertyDefinitionAccess().getUsageAssignment_3_2_1_0_4(), "rule__PropertyDefinition__UsageAssignment_3_2_1_0_4");
builder.put(grammarAccess.getPropertyDefinitionAccess().getUsageAssignment_3_2_1_1_0(), "rule__PropertyDefinition__UsageAssignment_3_2_1_1_0");
builder.put(grammarAccess.getPropertyDefinitionAccess().getTypeAssignment_3_2_1_1_3(), "rule__PropertyDefinition__TypeAssignment_3_2_1_1_3");
builder.put(grammarAccess.getPropertyDefaultAccess().getStringAssignment_2_0(), "rule__PropertyDefault__StringAssignment_2_0");
builder.put(grammarAccess.getPropertyDefaultAccess().getValueAssignment_2_1(), "rule__PropertyDefault__ValueAssignment_2_1");
builder.put(grammarAccess.getPropertyDefaultAccess().getStringAssignment_2_2(), "rule__PropertyDefault__StringAssignment_2_2");
builder.put(grammarAccess.getPropertyDefaultAccess().getStringAssignment_2_3(), "rule__PropertyDefault__StringAssignment_2_3");
builder.put(grammarAccess.getPropertyUsageAccess().getComponentsAssignment_2(), "rule__PropertyUsage__ComponentsAssignment_2");
builder.put(grammarAccess.getPropertyUsageAccess().getComponentsAssignment_3_1(), "rule__PropertyUsage__ComponentsAssignment_3_1");
builder.put(grammarAccess.getComponentDefinitionAccess().getTypeAssignment_0(), "rule__ComponentDefinition__TypeAssignment_0");
builder.put(grammarAccess.getComponentDefinitionAccess().getNameAssignment_1(), "rule__ComponentDefinition__NameAssignment_1");
builder.put(grammarAccess.getComponentDefinitionAccess().getComponentDefinitionsAssignment_3_0_0(), "rule__ComponentDefinition__ComponentDefinitionsAssignment_3_0_0");
builder.put(grammarAccess.getComponentDefinitionAccess().getInstantiationsAssignment_3_1_0(), "rule__ComponentDefinition__InstantiationsAssignment_3_1_0");
builder.put(grammarAccess.getComponentDefinitionAccess().getPropertyAssignmentsAssignment_3_2_0(), "rule__ComponentDefinition__PropertyAssignmentsAssignment_3_2_0");
builder.put(grammarAccess.getComponentDefinitionAccess().getEnumDefinitionsAssignment_3_3_0(), "rule__ComponentDefinition__EnumDefinitionsAssignment_3_3_0");
builder.put(grammarAccess.getInstantiationAccess().getInstanceTypeAssignment_0_0_0(), "rule__Instantiation__InstanceTypeAssignment_0_0_0");
builder.put(grammarAccess.getInstantiationAccess().getAliasAssignment_0_0_1_1(), "rule__Instantiation__AliasAssignment_0_0_1_1");
builder.put(grammarAccess.getInstantiationAccess().getComponentRefAssignment_0_0_2(), "rule__Instantiation__ComponentRefAssignment_0_0_2");
builder.put(grammarAccess.getInstantiationAccess().getComponentAssignment_0_1_0(), "rule__Instantiation__ComponentAssignment_0_1_0");
builder.put(grammarAccess.getInstantiationAccess().getInstanceTypeAssignment_0_1_1(), "rule__Instantiation__InstanceTypeAssignment_0_1_1");
builder.put(grammarAccess.getInstantiationAccess().getComponentInstancesAssignment_1(), "rule__Instantiation__ComponentInstancesAssignment_1");
builder.put(grammarAccess.getInstantiationAccess().getComponentInstancesAssignment_2_1(), "rule__Instantiation__ComponentInstancesAssignment_2_1");
builder.put(grammarAccess.getComponentInstanceAccess().getNameAssignment_0(), "rule__ComponentInstance__NameAssignment_0");
builder.put(grammarAccess.getComponentInstanceAccess().getRangeAssignment_1(), "rule__ComponentInstance__RangeAssignment_1");
builder.put(grammarAccess.getComponentInstanceAccess().getResetAssignment_2_1(), "rule__ComponentInstance__ResetAssignment_2_1");
builder.put(grammarAccess.getComponentInstanceAccess().getAddressAssignment_3_1(), "rule__ComponentInstance__AddressAssignment_3_1");
builder.put(grammarAccess.getComponentInstanceAccess().getAddrIncAssignment_4_1(), "rule__ComponentInstance__AddrIncAssignment_4_1");
builder.put(grammarAccess.getComponentInstanceAccess().getAddrModAssignment_5_1(), "rule__ComponentInstance__AddrModAssignment_5_1");
builder.put(grammarAccess.getRangeAccess().getLeftAssignment_1_0_0(), "rule__Range__LeftAssignment_1_0_0");
builder.put(grammarAccess.getRangeAccess().getRightAssignment_1_0_2(), "rule__Range__RightAssignment_1_0_2");
builder.put(grammarAccess.getRangeAccess().getSizeAssignment_1_1(), "rule__Range__SizeAssignment_1_1");
builder.put(grammarAccess.getExplicitPropertyAssignmentAccess().getModifierAssignment_0_0(), "rule__ExplicitPropertyAssignment__ModifierAssignment_0_0");
builder.put(grammarAccess.getExplicitPropertyAssignmentAccess().getNameAssignment_0_1(), "rule__ExplicitPropertyAssignment__NameAssignment_0_1");
builder.put(grammarAccess.getExplicitPropertyAssignmentAccess().getNameAssignment_1_0(), "rule__ExplicitPropertyAssignment__NameAssignment_1_0");
builder.put(grammarAccess.getExplicitPropertyAssignmentAccess().getRhsAssignment_1_1_1(), "rule__ExplicitPropertyAssignment__RhsAssignment_1_1_1");
builder.put(grammarAccess.getPostPropertyAssignmentAccess().getInstanceAssignment_0_0_0(), "rule__PostPropertyAssignment__InstanceAssignment_0_0_0");
builder.put(grammarAccess.getPostPropertyAssignmentAccess().getPropertyEnumAssignment_0_0_2_0(), "rule__PostPropertyAssignment__PropertyEnumAssignment_0_0_2_0");
builder.put(grammarAccess.getPostPropertyAssignmentAccess().getPropertyAssignment_0_0_2_1(), "rule__PostPropertyAssignment__PropertyAssignment_0_0_2_1");
builder.put(grammarAccess.getPostPropertyAssignmentAccess().getPropertyAssignment_0_1(), "rule__PostPropertyAssignment__PropertyAssignment_0_1");
builder.put(grammarAccess.getPostPropertyAssignmentAccess().getRhsAssignment_1_1(), "rule__PostPropertyAssignment__RhsAssignment_1_1");
builder.put(grammarAccess.getInstancePropertyRefAccess().getInstanceAssignment_0(), "rule__InstancePropertyRef__InstanceAssignment_0");
builder.put(grammarAccess.getInstancePropertyRefAccess().getPropertyEnumAssignment_1_1_0(), "rule__InstancePropertyRef__PropertyEnumAssignment_1_1_0");
builder.put(grammarAccess.getInstancePropertyRefAccess().getPropertyAssignment_1_1_1(), "rule__InstancePropertyRef__PropertyAssignment_1_1_1");
builder.put(grammarAccess.getInstanceRefAccess().getInstanceAssignment_0(), "rule__InstanceRef__InstanceAssignment_0");
builder.put(grammarAccess.getInstanceRefAccess().getTailAssignment_1_1(), "rule__InstanceRef__TailAssignment_1_1");
builder.put(grammarAccess.getHierInstanceRefAccess().getInstanceAssignment_0(), "rule__HierInstanceRef__InstanceAssignment_0");
builder.put(grammarAccess.getHierInstanceRefAccess().getTailAssignment_1_1(), "rule__HierInstanceRef__TailAssignment_1_1");
builder.put(grammarAccess.getPropertyAssignmentRhsAccess().getValueAssignment_0(), "rule__PropertyAssignmentRhs__ValueAssignment_0");
builder.put(grammarAccess.getPropertyAssignmentRhsAccess().getInstPropRefAssignment_1(), "rule__PropertyAssignmentRhs__InstPropRefAssignment_1");
builder.put(grammarAccess.getPropertyAssignmentRhsAccess().getEnumRefAssignment_2_0(), "rule__PropertyAssignmentRhs__EnumRefAssignment_2_0");
builder.put(grammarAccess.getPropertyAssignmentRhsAccess().getEnumsAssignment_2_2(), "rule__PropertyAssignmentRhs__EnumsAssignment_2_2");
builder.put(grammarAccess.getPropertyAssignmentRhsAccess().getElementsAssignment_3(), "rule__PropertyAssignmentRhs__ElementsAssignment_3");
builder.put(grammarAccess.getConcatAccess().getElementsAssignment_1(), "rule__Concat__ElementsAssignment_1");
builder.put(grammarAccess.getConcatAccess().getElementsAssignment_2_1(), "rule__Concat__ElementsAssignment_2_1");
builder.put(grammarAccess.getConcatElemAccess().getInstPropRefAssignment_0(), "rule__ConcatElem__InstPropRefAssignment_0");
builder.put(grammarAccess.getConcatElemAccess().getValueAssignment_1(), "rule__ConcatElem__ValueAssignment_1");
builder.put(grammarAccess.getPropertyRvalueConstantAccess().getValAssignment_0(), "rule__PropertyRvalueConstant__ValAssignment_0");
builder.put(grammarAccess.getPropertyRvalueConstantAccess().getNumAssignment_1(), "rule__PropertyRvalueConstant__NumAssignment_1");
builder.put(grammarAccess.getPropertyRvalueConstantAccess().getStrAssignment_2(), "rule__PropertyRvalueConstant__StrAssignment_2");
builder.put(grammarAccess.getEnumDefinitionAccess().getNameAssignment_1(), "rule__EnumDefinition__NameAssignment_1");
builder.put(grammarAccess.getEnumDefinitionAccess().getBodyAssignment_2(), "rule__EnumDefinition__BodyAssignment_2");
builder.put(grammarAccess.getEnumBodyAccess().getEntriesAssignment_2(), "rule__EnumBody__EntriesAssignment_2");
builder.put(grammarAccess.getEnumEntryAccess().getNameAssignment_0(), "rule__EnumEntry__NameAssignment_0");
builder.put(grammarAccess.getEnumEntryAccess().getIndexAssignment_2(), "rule__EnumEntry__IndexAssignment_2");
builder.put(grammarAccess.getEnumEntryAccess().getPropertiesAssignment_3_1(), "rule__EnumEntry__PropertiesAssignment_3_1");
builder.put(grammarAccess.getEnumPropertyAccess().getNameAssignment_0_0_0(), "rule__EnumProperty__NameAssignment_0_0_0");
builder.put(grammarAccess.getEnumPropertyAccess().getValueAssignment_0_0_2(), "rule__EnumProperty__ValueAssignment_0_0_2");
builder.put(grammarAccess.getEnumPropertyAccess().getNameAssignment_0_1_0(), "rule__EnumProperty__NameAssignment_0_1_0");
builder.put(grammarAccess.getEnumPropertyAccess().getValueAssignment_0_1_2(), "rule__EnumProperty__ValueAssignment_0_1_2");
builder.put(grammarAccess.getEnumInstanceTypeAccess().getEXTERNALAssignment_0(), "rule__EnumInstanceType__EXTERNALAssignment_0");
builder.put(grammarAccess.getEnumInstanceTypeAccess().getINTERNALAssignment_1(), "rule__EnumInstanceType__INTERNALAssignment_1");
}
}
@Inject
private NameMappings nameMappings;
@Inject
private RDLGrammarAccess grammarAccess;
private Map<AbstractElement, String> nameMappings;
@Override
protected InternalRDLParser createParser() {
InternalRDLParser result = new InternalRDLParser(null);
@ -27,183 +226,9 @@ public class RDLParser extends AbstractContentAssistParser {
@Override
protected String getRuleName(AbstractElement element) {
if (nameMappings == null) {
nameMappings = new HashMap<AbstractElement, String>() {
private static final long serialVersionUID = 1L;
{
put(grammarAccess.getRootAccess().getAlternatives(), "rule__Root__Alternatives");
put(grammarAccess.getPropertyDefinitionAccess().getAlternatives_3(), "rule__PropertyDefinition__Alternatives_3");
put(grammarAccess.getPropertyDefinitionAccess().getAlternatives_3_0_4(), "rule__PropertyDefinition__Alternatives_3_0_4");
put(grammarAccess.getPropertyDefinitionAccess().getAlternatives_3_1_1(), "rule__PropertyDefinition__Alternatives_3_1_1");
put(grammarAccess.getPropertyDefinitionAccess().getAlternatives_3_2_1(), "rule__PropertyDefinition__Alternatives_3_2_1");
put(grammarAccess.getPropertyDefaultAccess().getAlternatives_2(), "rule__PropertyDefault__Alternatives_2");
put(grammarAccess.getComponentDefinitionAccess().getAlternatives_3(), "rule__ComponentDefinition__Alternatives_3");
put(grammarAccess.getRangeAccess().getAlternatives_1(), "rule__Range__Alternatives_1");
put(grammarAccess.getPropertyAssignmentAccess().getAlternatives(), "rule__PropertyAssignment__Alternatives");
put(grammarAccess.getExplicitPropertyAssignmentAccess().getAlternatives(), "rule__ExplicitPropertyAssignment__Alternatives");
put(grammarAccess.getPostPropertyAssignmentAccess().getAlternatives_0(), "rule__PostPropertyAssignment__Alternatives_0");
put(grammarAccess.getPostPropertyAssignmentAccess().getAlternatives_0_0_2(), "rule__PostPropertyAssignment__Alternatives_0_0_2");
put(grammarAccess.getInstancePropertyRefAccess().getAlternatives_1_1(), "rule__InstancePropertyRef__Alternatives_1_1");
put(grammarAccess.getEntityAccess().getAlternatives(), "rule__Entity__Alternatives");
put(grammarAccess.getPropertyAssignmentRhsAccess().getAlternatives(), "rule__PropertyAssignmentRhs__Alternatives");
put(grammarAccess.getConcatElemAccess().getAlternatives(), "rule__ConcatElem__Alternatives");
put(grammarAccess.getPropertyRvalueConstantAccess().getAlternatives(), "rule__PropertyRvalueConstant__Alternatives");
put(grammarAccess.getEnumPropertyAccess().getAlternatives_0(), "rule__EnumProperty__Alternatives_0");
put(grammarAccess.getPropertyTypeNameAccess().getAlternatives(), "rule__PropertyTypeName__Alternatives");
put(grammarAccess.getPropertyComponentAccess().getAlternatives(), "rule__PropertyComponent__Alternatives");
put(grammarAccess.getComponentDefinitionTypeAccess().getAlternatives(), "rule__ComponentDefinitionType__Alternatives");
put(grammarAccess.getPropertyEnumAccess().getAlternatives(), "rule__PropertyEnum__Alternatives");
put(grammarAccess.getPropertyAccess().getAlternatives(), "rule__Property__Alternatives");
put(grammarAccess.getRValueConstantAccess().getAlternatives(), "rule__RValueConstant__Alternatives");
put(grammarAccess.getPropertyModifierAccess().getAlternatives(), "rule__PropertyModifier__Alternatives");
put(grammarAccess.getIncludeAccess().getGroup(), "rule__Include__Group__0");
put(grammarAccess.getPropertyDefinitionAccess().getGroup(), "rule__PropertyDefinition__Group__0");
put(grammarAccess.getPropertyDefinitionAccess().getGroup_3_0(), "rule__PropertyDefinition__Group_3_0__0");
put(grammarAccess.getPropertyDefinitionAccess().getGroup_3_0_4_0(), "rule__PropertyDefinition__Group_3_0_4_0__0");
put(grammarAccess.getPropertyDefinitionAccess().getGroup_3_0_4_1(), "rule__PropertyDefinition__Group_3_0_4_1__0");
put(grammarAccess.getPropertyDefinitionAccess().getGroup_3_1(), "rule__PropertyDefinition__Group_3_1__0");
put(grammarAccess.getPropertyDefinitionAccess().getGroup_3_1_1_0(), "rule__PropertyDefinition__Group_3_1_1_0__0");
put(grammarAccess.getPropertyDefinitionAccess().getGroup_3_1_1_1(), "rule__PropertyDefinition__Group_3_1_1_1__0");
put(grammarAccess.getPropertyDefinitionAccess().getGroup_3_2(), "rule__PropertyDefinition__Group_3_2__0");
put(grammarAccess.getPropertyDefinitionAccess().getGroup_3_2_1_0(), "rule__PropertyDefinition__Group_3_2_1_0__0");
put(grammarAccess.getPropertyDefinitionAccess().getGroup_3_2_1_1(), "rule__PropertyDefinition__Group_3_2_1_1__0");
put(grammarAccess.getPropertyDefaultAccess().getGroup(), "rule__PropertyDefault__Group__0");
put(grammarAccess.getPropertyUsageAccess().getGroup(), "rule__PropertyUsage__Group__0");
put(grammarAccess.getPropertyUsageAccess().getGroup_3(), "rule__PropertyUsage__Group_3__0");
put(grammarAccess.getComponentDefinitionAccess().getGroup(), "rule__ComponentDefinition__Group__0");
put(grammarAccess.getNamedInstantiationAccess().getGroup(), "rule__NamedInstantiation__Group__0");
put(grammarAccess.getNamedInstantiationAccess().getGroup_2(), "rule__NamedInstantiation__Group_2__0");
put(grammarAccess.getNamedInstantiationAccess().getGroup_5(), "rule__NamedInstantiation__Group_5__0");
put(grammarAccess.getImmediateInstantiationAccess().getGroup(), "rule__ImmediateInstantiation__Group__0");
put(grammarAccess.getImmediateInstantiationAccess().getGroup_2(), "rule__ImmediateInstantiation__Group_2__0");
put(grammarAccess.getComponentInstanceAccess().getGroup(), "rule__ComponentInstance__Group__0");
put(grammarAccess.getComponentInstanceAccess().getGroup_2(), "rule__ComponentInstance__Group_2__0");
put(grammarAccess.getComponentInstanceAccess().getGroup_3(), "rule__ComponentInstance__Group_3__0");
put(grammarAccess.getComponentInstanceAccess().getGroup_4(), "rule__ComponentInstance__Group_4__0");
put(grammarAccess.getComponentInstanceAccess().getGroup_5(), "rule__ComponentInstance__Group_5__0");
put(grammarAccess.getRangeAccess().getGroup(), "rule__Range__Group__0");
put(grammarAccess.getRangeAccess().getGroup_1_0(), "rule__Range__Group_1_0__0");
put(grammarAccess.getDefaultProperyAssignmentAccess().getGroup(), "rule__DefaultProperyAssignment__Group__0");
put(grammarAccess.getExplicitPropertyAssignmentAccess().getGroup_0(), "rule__ExplicitPropertyAssignment__Group_0__0");
put(grammarAccess.getExplicitPropertyAssignmentAccess().getGroup_1(), "rule__ExplicitPropertyAssignment__Group_1__0");
put(grammarAccess.getExplicitPropertyAssignmentAccess().getGroup_1_1(), "rule__ExplicitPropertyAssignment__Group_1_1__0");
put(grammarAccess.getPostPropertyAssignmentAccess().getGroup(), "rule__PostPropertyAssignment__Group__0");
put(grammarAccess.getPostPropertyAssignmentAccess().getGroup_0_0(), "rule__PostPropertyAssignment__Group_0_0__0");
put(grammarAccess.getPostPropertyAssignmentAccess().getGroup_1(), "rule__PostPropertyAssignment__Group_1__0");
put(grammarAccess.getInstancePropertyRefAccess().getGroup(), "rule__InstancePropertyRef__Group__0");
put(grammarAccess.getInstancePropertyRefAccess().getGroup_1(), "rule__InstancePropertyRef__Group_1__0");
put(grammarAccess.getInstanceRefAccess().getGroup(), "rule__InstanceRef__Group__0");
put(grammarAccess.getInstanceRefAccess().getGroup_1(), "rule__InstanceRef__Group_1__0");
put(grammarAccess.getHierInstanceRefAccess().getGroup(), "rule__HierInstanceRef__Group__0");
put(grammarAccess.getHierInstanceRefAccess().getGroup_1(), "rule__HierInstanceRef__Group_1__0");
put(grammarAccess.getPropertyAssignmentRhsAccess().getGroup_2(), "rule__PropertyAssignmentRhs__Group_2__0");
put(grammarAccess.getConcatAccess().getGroup(), "rule__Concat__Group__0");
put(grammarAccess.getConcatAccess().getGroup_2(), "rule__Concat__Group_2__0");
put(grammarAccess.getEnumDefinitionAccess().getGroup(), "rule__EnumDefinition__Group__0");
put(grammarAccess.getEnumBodyAccess().getGroup(), "rule__EnumBody__Group__0");
put(grammarAccess.getEnumEntryAccess().getGroup(), "rule__EnumEntry__Group__0");
put(grammarAccess.getEnumEntryAccess().getGroup_3(), "rule__EnumEntry__Group_3__0");
put(grammarAccess.getEnumPropertyAccess().getGroup(), "rule__EnumProperty__Group__0");
put(grammarAccess.getEnumPropertyAccess().getGroup_0_0(), "rule__EnumProperty__Group_0_0__0");
put(grammarAccess.getEnumPropertyAccess().getGroup_0_1(), "rule__EnumProperty__Group_0_1__0");
put(grammarAccess.getRootAccess().getIncludesAssignment_0(), "rule__Root__IncludesAssignment_0");
put(grammarAccess.getRootAccess().getComponentDefinitionsAssignment_1(), "rule__Root__ComponentDefinitionsAssignment_1");
put(grammarAccess.getRootAccess().getEnumDefinitionsAssignment_2(), "rule__Root__EnumDefinitionsAssignment_2");
put(grammarAccess.getRootAccess().getNamedInstantiationsAssignment_3(), "rule__Root__NamedInstantiationsAssignment_3");
put(grammarAccess.getRootAccess().getPropertyAssignmentsAssignment_4(), "rule__Root__PropertyAssignmentsAssignment_4");
put(grammarAccess.getRootAccess().getPropertyDefinitionsAssignment_5(), "rule__Root__PropertyDefinitionsAssignment_5");
put(grammarAccess.getIncludeAccess().getImportURIAssignment_1(), "rule__Include__ImportURIAssignment_1");
put(grammarAccess.getPropertyDefinitionAccess().getNameAssignment_1(), "rule__PropertyDefinition__NameAssignment_1");
put(grammarAccess.getPropertyDefinitionAccess().getTypeAssignment_3_0_2(), "rule__PropertyDefinition__TypeAssignment_3_0_2");
put(grammarAccess.getPropertyDefinitionAccess().getUsageAssignment_3_0_4_0_0(), "rule__PropertyDefinition__UsageAssignment_3_0_4_0_0");
put(grammarAccess.getPropertyDefinitionAccess().getDefaultAssignment_3_0_4_0_1(), "rule__PropertyDefinition__DefaultAssignment_3_0_4_0_1");
put(grammarAccess.getPropertyDefinitionAccess().getDefaultAssignment_3_0_4_1_0(), "rule__PropertyDefinition__DefaultAssignment_3_0_4_1_0");
put(grammarAccess.getPropertyDefinitionAccess().getUsageAssignment_3_0_4_1_1(), "rule__PropertyDefinition__UsageAssignment_3_0_4_1_1");
put(grammarAccess.getPropertyDefinitionAccess().getUsageAssignment_3_1_0(), "rule__PropertyDefinition__UsageAssignment_3_1_0");
put(grammarAccess.getPropertyDefinitionAccess().getTypeAssignment_3_1_1_0_2(), "rule__PropertyDefinition__TypeAssignment_3_1_1_0_2");
put(grammarAccess.getPropertyDefinitionAccess().getDefaultAssignment_3_1_1_0_4(), "rule__PropertyDefinition__DefaultAssignment_3_1_1_0_4");
put(grammarAccess.getPropertyDefinitionAccess().getDefaultAssignment_3_1_1_1_0(), "rule__PropertyDefinition__DefaultAssignment_3_1_1_1_0");
put(grammarAccess.getPropertyDefinitionAccess().getTypeAssignment_3_1_1_1_3(), "rule__PropertyDefinition__TypeAssignment_3_1_1_1_3");
put(grammarAccess.getPropertyDefinitionAccess().getDefaultAssignment_3_2_0(), "rule__PropertyDefinition__DefaultAssignment_3_2_0");
put(grammarAccess.getPropertyDefinitionAccess().getTypeAssignment_3_2_1_0_2(), "rule__PropertyDefinition__TypeAssignment_3_2_1_0_2");
put(grammarAccess.getPropertyDefinitionAccess().getUsageAssignment_3_2_1_0_4(), "rule__PropertyDefinition__UsageAssignment_3_2_1_0_4");
put(grammarAccess.getPropertyDefinitionAccess().getUsageAssignment_3_2_1_1_0(), "rule__PropertyDefinition__UsageAssignment_3_2_1_1_0");
put(grammarAccess.getPropertyDefinitionAccess().getTypeAssignment_3_2_1_1_3(), "rule__PropertyDefinition__TypeAssignment_3_2_1_1_3");
put(grammarAccess.getPropertyDefaultAccess().getStringAssignment_2_0(), "rule__PropertyDefault__StringAssignment_2_0");
put(grammarAccess.getPropertyDefaultAccess().getValueAssignment_2_1(), "rule__PropertyDefault__ValueAssignment_2_1");
put(grammarAccess.getPropertyDefaultAccess().getStringAssignment_2_2(), "rule__PropertyDefault__StringAssignment_2_2");
put(grammarAccess.getPropertyDefaultAccess().getStringAssignment_2_3(), "rule__PropertyDefault__StringAssignment_2_3");
put(grammarAccess.getPropertyUsageAccess().getComponentsAssignment_2(), "rule__PropertyUsage__ComponentsAssignment_2");
put(grammarAccess.getPropertyUsageAccess().getComponentsAssignment_3_1(), "rule__PropertyUsage__ComponentsAssignment_3_1");
put(grammarAccess.getComponentDefinitionAccess().getTypeAssignment_0(), "rule__ComponentDefinition__TypeAssignment_0");
put(grammarAccess.getComponentDefinitionAccess().getNameAssignment_1(), "rule__ComponentDefinition__NameAssignment_1");
put(grammarAccess.getComponentDefinitionAccess().getComponentDefinitionsAssignment_3_0(), "rule__ComponentDefinition__ComponentDefinitionsAssignment_3_0");
put(grammarAccess.getComponentDefinitionAccess().getNamedInstantiationsAssignment_3_1(), "rule__ComponentDefinition__NamedInstantiationsAssignment_3_1");
put(grammarAccess.getComponentDefinitionAccess().getPropertyAssignmentsAssignment_3_2(), "rule__ComponentDefinition__PropertyAssignmentsAssignment_3_2");
put(grammarAccess.getComponentDefinitionAccess().getEnumDefinitionsAssignment_3_3(), "rule__ComponentDefinition__EnumDefinitionsAssignment_3_3");
put(grammarAccess.getComponentDefinitionAccess().getImmediateInstantiationAssignment_5(), "rule__ComponentDefinition__ImmediateInstantiationAssignment_5");
put(grammarAccess.getNamedInstantiationAccess().getExternalAssignment_0(), "rule__NamedInstantiation__ExternalAssignment_0");
put(grammarAccess.getNamedInstantiationAccess().getInternalAssignment_1(), "rule__NamedInstantiation__InternalAssignment_1");
put(grammarAccess.getNamedInstantiationAccess().getAliasAssignment_2_1(), "rule__NamedInstantiation__AliasAssignment_2_1");
put(grammarAccess.getNamedInstantiationAccess().getComponentAssignment_3(), "rule__NamedInstantiation__ComponentAssignment_3");
put(grammarAccess.getNamedInstantiationAccess().getComponentInstancesAssignment_4(), "rule__NamedInstantiation__ComponentInstancesAssignment_4");
put(grammarAccess.getNamedInstantiationAccess().getComponentInstancesAssignment_5_1(), "rule__NamedInstantiation__ComponentInstancesAssignment_5_1");
put(grammarAccess.getImmediateInstantiationAccess().getExternalAssignment_0(), "rule__ImmediateInstantiation__ExternalAssignment_0");
put(grammarAccess.getImmediateInstantiationAccess().getComponentInstancesAssignment_1(), "rule__ImmediateInstantiation__ComponentInstancesAssignment_1");
put(grammarAccess.getImmediateInstantiationAccess().getComponentInstancesAssignment_2_1(), "rule__ImmediateInstantiation__ComponentInstancesAssignment_2_1");
put(grammarAccess.getComponentInstanceAccess().getNameAssignment_0(), "rule__ComponentInstance__NameAssignment_0");
put(grammarAccess.getComponentInstanceAccess().getRangeAssignment_1(), "rule__ComponentInstance__RangeAssignment_1");
put(grammarAccess.getComponentInstanceAccess().getResetAssignment_2_1(), "rule__ComponentInstance__ResetAssignment_2_1");
put(grammarAccess.getComponentInstanceAccess().getAddressAssignment_3_1(), "rule__ComponentInstance__AddressAssignment_3_1");
put(grammarAccess.getComponentInstanceAccess().getAddrIncAssignment_4_1(), "rule__ComponentInstance__AddrIncAssignment_4_1");
put(grammarAccess.getComponentInstanceAccess().getAddrModAssignment_5_1(), "rule__ComponentInstance__AddrModAssignment_5_1");
put(grammarAccess.getRangeAccess().getStartAssignment_1_0_0(), "rule__Range__StartAssignment_1_0_0");
put(grammarAccess.getRangeAccess().getEndAssignment_1_0_2(), "rule__Range__EndAssignment_1_0_2");
put(grammarAccess.getRangeAccess().getSizeAssignment_1_1(), "rule__Range__SizeAssignment_1_1");
put(grammarAccess.getExplicitPropertyAssignmentAccess().getModifierAssignment_0_0(), "rule__ExplicitPropertyAssignment__ModifierAssignment_0_0");
put(grammarAccess.getExplicitPropertyAssignmentAccess().getNameAssignment_0_1(), "rule__ExplicitPropertyAssignment__NameAssignment_0_1");
put(grammarAccess.getExplicitPropertyAssignmentAccess().getNameAssignment_1_0(), "rule__ExplicitPropertyAssignment__NameAssignment_1_0");
put(grammarAccess.getExplicitPropertyAssignmentAccess().getRhsAssignment_1_1_1(), "rule__ExplicitPropertyAssignment__RhsAssignment_1_1_1");
put(grammarAccess.getPostPropertyAssignmentAccess().getInstanceAssignment_0_0_0(), "rule__PostPropertyAssignment__InstanceAssignment_0_0_0");
put(grammarAccess.getPostPropertyAssignmentAccess().getPropertyEnumAssignment_0_0_2_0(), "rule__PostPropertyAssignment__PropertyEnumAssignment_0_0_2_0");
put(grammarAccess.getPostPropertyAssignmentAccess().getPropertyAssignment_0_0_2_1(), "rule__PostPropertyAssignment__PropertyAssignment_0_0_2_1");
put(grammarAccess.getPostPropertyAssignmentAccess().getPropertyAssignment_0_1(), "rule__PostPropertyAssignment__PropertyAssignment_0_1");
put(grammarAccess.getPostPropertyAssignmentAccess().getRhsAssignment_1_1(), "rule__PostPropertyAssignment__RhsAssignment_1_1");
put(grammarAccess.getInstancePropertyRefAccess().getInstanceAssignment_0(), "rule__InstancePropertyRef__InstanceAssignment_0");
put(grammarAccess.getInstancePropertyRefAccess().getPropertyEnumAssignment_1_1_0(), "rule__InstancePropertyRef__PropertyEnumAssignment_1_1_0");
put(grammarAccess.getInstancePropertyRefAccess().getPropertyAssignment_1_1_1(), "rule__InstancePropertyRef__PropertyAssignment_1_1_1");
put(grammarAccess.getInstanceRefAccess().getInstanceAssignment_0(), "rule__InstanceRef__InstanceAssignment_0");
put(grammarAccess.getInstanceRefAccess().getTailAssignment_1_1(), "rule__InstanceRef__TailAssignment_1_1");
put(grammarAccess.getHierInstanceRefAccess().getInstanceAssignment_0(), "rule__HierInstanceRef__InstanceAssignment_0");
put(grammarAccess.getHierInstanceRefAccess().getTailAssignment_1_1(), "rule__HierInstanceRef__TailAssignment_1_1");
put(grammarAccess.getPropertyAssignmentRhsAccess().getValueAssignment_0(), "rule__PropertyAssignmentRhs__ValueAssignment_0");
put(grammarAccess.getPropertyAssignmentRhsAccess().getInstPropRefAssignment_1(), "rule__PropertyAssignmentRhs__InstPropRefAssignment_1");
put(grammarAccess.getPropertyAssignmentRhsAccess().getEnumRefAssignment_2_0(), "rule__PropertyAssignmentRhs__EnumRefAssignment_2_0");
put(grammarAccess.getPropertyAssignmentRhsAccess().getEnumsAssignment_2_2(), "rule__PropertyAssignmentRhs__EnumsAssignment_2_2");
put(grammarAccess.getPropertyAssignmentRhsAccess().getElementsAssignment_3(), "rule__PropertyAssignmentRhs__ElementsAssignment_3");
put(grammarAccess.getConcatAccess().getElementsAssignment_1(), "rule__Concat__ElementsAssignment_1");
put(grammarAccess.getConcatAccess().getElementsAssignment_2_1(), "rule__Concat__ElementsAssignment_2_1");
put(grammarAccess.getConcatElemAccess().getInstPropRefAssignment_0(), "rule__ConcatElem__InstPropRefAssignment_0");
put(grammarAccess.getConcatElemAccess().getValueAssignment_1(), "rule__ConcatElem__ValueAssignment_1");
put(grammarAccess.getPropertyRvalueConstantAccess().getValAssignment_0(), "rule__PropertyRvalueConstant__ValAssignment_0");
put(grammarAccess.getPropertyRvalueConstantAccess().getNumAssignment_1(), "rule__PropertyRvalueConstant__NumAssignment_1");
put(grammarAccess.getPropertyRvalueConstantAccess().getStrAssignment_2(), "rule__PropertyRvalueConstant__StrAssignment_2");
put(grammarAccess.getEnumDefinitionAccess().getNameAssignment_1(), "rule__EnumDefinition__NameAssignment_1");
put(grammarAccess.getEnumDefinitionAccess().getBodyAssignment_2(), "rule__EnumDefinition__BodyAssignment_2");
put(grammarAccess.getEnumBodyAccess().getEntriesAssignment_2(), "rule__EnumBody__EntriesAssignment_2");
put(grammarAccess.getEnumEntryAccess().getNameAssignment_0(), "rule__EnumEntry__NameAssignment_0");
put(grammarAccess.getEnumEntryAccess().getIndexAssignment_2(), "rule__EnumEntry__IndexAssignment_2");
put(grammarAccess.getEnumEntryAccess().getPropertiesAssignment_3_1(), "rule__EnumEntry__PropertiesAssignment_3_1");
put(grammarAccess.getEnumPropertyAccess().getNameAssignment_0_0_0(), "rule__EnumProperty__NameAssignment_0_0_0");
put(grammarAccess.getEnumPropertyAccess().getValueAssignment_0_0_2(), "rule__EnumProperty__ValueAssignment_0_0_2");
put(grammarAccess.getEnumPropertyAccess().getNameAssignment_0_1_0(), "rule__EnumProperty__NameAssignment_0_1_0");
put(grammarAccess.getEnumPropertyAccess().getValueAssignment_0_1_2(), "rule__EnumProperty__ValueAssignment_0_1_2");
}
};
}
return nameMappings.get(element);
return nameMappings.getRuleName(element);
}
@Override
protected String[] getInitialHiddenTokens() {
return new String[] { "RULE_WS", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_ESCAPE_JSP", "RULE_ESCAPE_ORDL" };
@ -216,4 +241,12 @@ public class RDLParser extends AbstractContentAssistParser {
public void setGrammarAccess(RDLGrammarAccess grammarAccess) {
this.grammarAccess = grammarAccess;
}
public NameMappings getNameMappings() {
return nameMappings;
}
public void setNameMappings(NameMappings nameMappings) {
this.nameMappings = nameMappings;
}
}

View File

@ -4,13 +4,13 @@
'->'=131
'.'=132
':'=130
';'=117
';'=113
'='=119
'@'=125
'UNDEFINED'=97
'['=128
']'=129
'`include'=113
'`include'=114
'accesswidth'=81
'activehigh'=60
'activelow'=61
@ -78,7 +78,7 @@
'overflow'=44
'posedge'=108
'precedence'=85
'property'=114
'property'=115
'r'=102
'rclr'=26
'ref'=19
@ -118,9 +118,9 @@
'woset'=28
'wr'=101
'xored'=42
'{'=115
'{'=116
'|'=122
'}'=116
'}'=117
RULE_ESCAPE_JSP=10
RULE_ESCAPE_ORDL=11
RULE_ID=5

View File

@ -2282,11 +2282,10 @@ public class InternalRDLLexer extends Lexer {
try {
int _type = T__113;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalRDL.g:112:8: ( '`include' )
// InternalRDL.g:112:10: '`include'
// InternalRDL.g:112:8: ( ';' )
// InternalRDL.g:112:10: ';'
{
match("`include");
match(';');
}
@ -2303,10 +2302,10 @@ public class InternalRDLLexer extends Lexer {
try {
int _type = T__114;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalRDL.g:113:8: ( 'property' )
// InternalRDL.g:113:10: 'property'
// InternalRDL.g:113:8: ( '`include' )
// InternalRDL.g:113:10: '`include'
{
match("property");
match("`include");
}
@ -2324,10 +2323,11 @@ public class InternalRDLLexer extends Lexer {
try {
int _type = T__115;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalRDL.g:114:8: ( '{' )
// InternalRDL.g:114:10: '{'
// InternalRDL.g:114:8: ( 'property' )
// InternalRDL.g:114:10: 'property'
{
match('{');
match("property");
}
@ -2344,10 +2344,10 @@ public class InternalRDLLexer extends Lexer {
try {
int _type = T__116;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalRDL.g:115:8: ( '}' )
// InternalRDL.g:115:10: '}'
// InternalRDL.g:115:8: ( '{' )
// InternalRDL.g:115:10: '{'
{
match('}');
match('{');
}
@ -2364,10 +2364,10 @@ public class InternalRDLLexer extends Lexer {
try {
int _type = T__117;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalRDL.g:116:8: ( ';' )
// InternalRDL.g:116:10: ';'
// InternalRDL.g:116:8: ( '}' )
// InternalRDL.g:116:10: '}'
{
match(';');
match('}');
}
@ -2733,10 +2733,10 @@ public class InternalRDLLexer extends Lexer {
try {
int _type = RULE_ID;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalRDL.g:7642:9: ( ( '\\\\' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
// InternalRDL.g:7642:11: ( '\\\\' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
// InternalRDL.g:7882:9: ( ( '\\\\' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
// InternalRDL.g:7882:11: ( '\\\\' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
{
// InternalRDL.g:7642:11: ( '\\\\' )?
// InternalRDL.g:7882:11: ( '\\\\' )?
int alt1=2;
int LA1_0 = input.LA(1);
@ -2745,7 +2745,7 @@ public class InternalRDLLexer extends Lexer {
}
switch (alt1) {
case 1 :
// InternalRDL.g:7642:11: '\\\\'
// InternalRDL.g:7882:11: '\\\\'
{
match('\\');
@ -2763,7 +2763,7 @@ public class InternalRDLLexer extends Lexer {
recover(mse);
throw mse;}
// InternalRDL.g:7642:41: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
// InternalRDL.g:7882:41: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
loop2:
do {
int alt2=2;
@ -2812,10 +2812,10 @@ public class InternalRDLLexer extends Lexer {
try {
int _type = RULE_WS;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalRDL.g:7644:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
// InternalRDL.g:7644:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
// InternalRDL.g:7884:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
// InternalRDL.g:7884:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
{
// InternalRDL.g:7644:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
// InternalRDL.g:7884:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
int cnt3=0;
loop3:
do {
@ -2869,12 +2869,12 @@ public class InternalRDLLexer extends Lexer {
try {
int _type = RULE_ML_COMMENT;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalRDL.g:7646:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
// InternalRDL.g:7646:19: '/*' ( options {greedy=false; } : . )* '*/'
// InternalRDL.g:7886:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
// InternalRDL.g:7886:19: '/*' ( options {greedy=false; } : . )* '*/'
{
match("/*");
// InternalRDL.g:7646:24: ( options {greedy=false; } : . )*
// InternalRDL.g:7886:24: ( options {greedy=false; } : . )*
loop4:
do {
int alt4=2;
@ -2899,7 +2899,7 @@ public class InternalRDLLexer extends Lexer {
switch (alt4) {
case 1 :
// InternalRDL.g:7646:52: .
// InternalRDL.g:7886:52: .
{
matchAny();
@ -2929,12 +2929,12 @@ public class InternalRDLLexer extends Lexer {
try {
int _type = RULE_SL_COMMENT;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalRDL.g:7648:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
// InternalRDL.g:7648:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
// InternalRDL.g:7888:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
// InternalRDL.g:7888:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
{
match("//");
// InternalRDL.g:7648:24: (~ ( ( '\\n' | '\\r' ) ) )*
// InternalRDL.g:7888:24: (~ ( ( '\\n' | '\\r' ) ) )*
loop5:
do {
int alt5=2;
@ -2947,7 +2947,7 @@ public class InternalRDLLexer extends Lexer {
switch (alt5) {
case 1 :
// InternalRDL.g:7648:24: ~ ( ( '\\n' | '\\r' ) )
// InternalRDL.g:7888:24: ~ ( ( '\\n' | '\\r' ) )
{
if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\uFFFF') ) {
input.consume();
@ -2967,7 +2967,7 @@ public class InternalRDLLexer extends Lexer {
}
} while (true);
// InternalRDL.g:7648:40: ( ( '\\r' )? '\\n' )?
// InternalRDL.g:7888:40: ( ( '\\r' )? '\\n' )?
int alt7=2;
int LA7_0 = input.LA(1);
@ -2976,9 +2976,9 @@ public class InternalRDLLexer extends Lexer {
}
switch (alt7) {
case 1 :
// InternalRDL.g:7648:41: ( '\\r' )? '\\n'
// InternalRDL.g:7888:41: ( '\\r' )? '\\n'
{
// InternalRDL.g:7648:41: ( '\\r' )?
// InternalRDL.g:7888:41: ( '\\r' )?
int alt6=2;
int LA6_0 = input.LA(1);
@ -2987,7 +2987,7 @@ public class InternalRDLLexer extends Lexer {
}
switch (alt6) {
case 1 :
// InternalRDL.g:7648:41: '\\r'
// InternalRDL.g:7888:41: '\\r'
{
match('\r');
@ -3019,12 +3019,12 @@ public class InternalRDLLexer extends Lexer {
try {
int _type = RULE_ESCAPE_JSP;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalRDL.g:7650:17: ( '<%' ( options {greedy=false; } : . )* '%>' )
// InternalRDL.g:7650:19: '<%' ( options {greedy=false; } : . )* '%>'
// InternalRDL.g:7890:17: ( '<%' ( options {greedy=false; } : . )* '%>' )
// InternalRDL.g:7890:19: '<%' ( options {greedy=false; } : . )* '%>'
{
match("<%");
// InternalRDL.g:7650:24: ( options {greedy=false; } : . )*
// InternalRDL.g:7890:24: ( options {greedy=false; } : . )*
loop8:
do {
int alt8=2;
@ -3049,7 +3049,7 @@ public class InternalRDLLexer extends Lexer {
switch (alt8) {
case 1 :
// InternalRDL.g:7650:52: .
// InternalRDL.g:7890:52: .
{
matchAny();
@ -3079,11 +3079,11 @@ public class InternalRDLLexer extends Lexer {
try {
int _type = RULE_ESCAPE_ORDL;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalRDL.g:7652:18: ( '(' ( options {greedy=false; } : . )* ')' )
// InternalRDL.g:7652:20: '(' ( options {greedy=false; } : . )* ')'
// InternalRDL.g:7892:18: ( '(' ( options {greedy=false; } : . )* ')' )
// InternalRDL.g:7892:20: '(' ( options {greedy=false; } : . )* ')'
{
match('(');
// InternalRDL.g:7652:24: ( options {greedy=false; } : . )*
// InternalRDL.g:7892:24: ( options {greedy=false; } : . )*
loop9:
do {
int alt9=2;
@ -3099,7 +3099,7 @@ public class InternalRDLLexer extends Lexer {
switch (alt9) {
case 1 :
// InternalRDL.g:7652:52: .
// InternalRDL.g:7892:52: .
{
matchAny();
@ -3128,17 +3128,17 @@ public class InternalRDLLexer extends Lexer {
try {
int _type = RULE_NUM;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalRDL.g:7654:10: ( ( ( '0' .. '9' )+ '\\'b' ( '0' | '1' | '_' )+ | ( '0' .. '9' )+ '\\'o' ( '0' .. '7' | '_' )+ | ( '0' .. '9' )+ '\\'h' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ | ( '0' .. '9' )+ '\\'d' ( '0' .. '9' | '_' )+ | '0x' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )+ | ( '0' .. '9' )+ ) )
// InternalRDL.g:7654:12: ( ( '0' .. '9' )+ '\\'b' ( '0' | '1' | '_' )+ | ( '0' .. '9' )+ '\\'o' ( '0' .. '7' | '_' )+ | ( '0' .. '9' )+ '\\'h' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ | ( '0' .. '9' )+ '\\'d' ( '0' .. '9' | '_' )+ | '0x' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )+ | ( '0' .. '9' )+ )
// InternalRDL.g:7894:10: ( ( ( '0' .. '9' )+ '\\'b' ( '0' | '1' | '_' )+ | ( '0' .. '9' )+ '\\'o' ( '0' .. '7' | '_' )+ | ( '0' .. '9' )+ '\\'h' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ | ( '0' .. '9' )+ '\\'d' ( '0' .. '9' | '_' )+ | '0x' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )+ | ( '0' .. '9' )+ ) )
// InternalRDL.g:7894:12: ( ( '0' .. '9' )+ '\\'b' ( '0' | '1' | '_' )+ | ( '0' .. '9' )+ '\\'o' ( '0' .. '7' | '_' )+ | ( '0' .. '9' )+ '\\'h' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ | ( '0' .. '9' )+ '\\'d' ( '0' .. '9' | '_' )+ | '0x' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )+ | ( '0' .. '9' )+ )
{
// InternalRDL.g:7654:12: ( ( '0' .. '9' )+ '\\'b' ( '0' | '1' | '_' )+ | ( '0' .. '9' )+ '\\'o' ( '0' .. '7' | '_' )+ | ( '0' .. '9' )+ '\\'h' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ | ( '0' .. '9' )+ '\\'d' ( '0' .. '9' | '_' )+ | '0x' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )+ | ( '0' .. '9' )+ )
// InternalRDL.g:7894:12: ( ( '0' .. '9' )+ '\\'b' ( '0' | '1' | '_' )+ | ( '0' .. '9' )+ '\\'o' ( '0' .. '7' | '_' )+ | ( '0' .. '9' )+ '\\'h' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ | ( '0' .. '9' )+ '\\'d' ( '0' .. '9' | '_' )+ | '0x' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )+ | ( '0' .. '9' )+ )
int alt20=6;
alt20 = dfa20.predict(input);
switch (alt20) {
case 1 :
// InternalRDL.g:7654:13: ( '0' .. '9' )+ '\\'b' ( '0' | '1' | '_' )+
// InternalRDL.g:7894:13: ( '0' .. '9' )+ '\\'b' ( '0' | '1' | '_' )+
{
// InternalRDL.g:7654:13: ( '0' .. '9' )+
// InternalRDL.g:7894:13: ( '0' .. '9' )+
int cnt10=0;
loop10:
do {
@ -3152,7 +3152,7 @@ public class InternalRDLLexer extends Lexer {
switch (alt10) {
case 1 :
// InternalRDL.g:7654:14: '0' .. '9'
// InternalRDL.g:7894:14: '0' .. '9'
{
matchRange('0','9');
@ -3170,7 +3170,7 @@ public class InternalRDLLexer extends Lexer {
match("'b");
// InternalRDL.g:7654:31: ( '0' | '1' | '_' )+
// InternalRDL.g:7894:31: ( '0' | '1' | '_' )+
int cnt11=0;
loop11:
do {
@ -3212,9 +3212,9 @@ public class InternalRDLLexer extends Lexer {
}
break;
case 2 :
// InternalRDL.g:7654:46: ( '0' .. '9' )+ '\\'o' ( '0' .. '7' | '_' )+
// InternalRDL.g:7894:46: ( '0' .. '9' )+ '\\'o' ( '0' .. '7' | '_' )+
{
// InternalRDL.g:7654:46: ( '0' .. '9' )+
// InternalRDL.g:7894:46: ( '0' .. '9' )+
int cnt12=0;
loop12:
do {
@ -3228,7 +3228,7 @@ public class InternalRDLLexer extends Lexer {
switch (alt12) {
case 1 :
// InternalRDL.g:7654:47: '0' .. '9'
// InternalRDL.g:7894:47: '0' .. '9'
{
matchRange('0','9');
@ -3246,7 +3246,7 @@ public class InternalRDLLexer extends Lexer {
match("'o");
// InternalRDL.g:7654:64: ( '0' .. '7' | '_' )+
// InternalRDL.g:7894:64: ( '0' .. '7' | '_' )+
int cnt13=0;
loop13:
do {
@ -3288,9 +3288,9 @@ public class InternalRDLLexer extends Lexer {
}
break;
case 3 :
// InternalRDL.g:7654:80: ( '0' .. '9' )+ '\\'h' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+
// InternalRDL.g:7894:80: ( '0' .. '9' )+ '\\'h' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+
{
// InternalRDL.g:7654:80: ( '0' .. '9' )+
// InternalRDL.g:7894:80: ( '0' .. '9' )+
int cnt14=0;
loop14:
do {
@ -3304,7 +3304,7 @@ public class InternalRDLLexer extends Lexer {
switch (alt14) {
case 1 :
// InternalRDL.g:7654:81: '0' .. '9'
// InternalRDL.g:7894:81: '0' .. '9'
{
matchRange('0','9');
@ -3322,7 +3322,7 @@ public class InternalRDLLexer extends Lexer {
match("'h");
// InternalRDL.g:7654:98: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+
// InternalRDL.g:7894:98: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+
int cnt15=0;
loop15:
do {
@ -3364,9 +3364,9 @@ public class InternalRDLLexer extends Lexer {
}
break;
case 4 :
// InternalRDL.g:7654:132: ( '0' .. '9' )+ '\\'d' ( '0' .. '9' | '_' )+
// InternalRDL.g:7894:132: ( '0' .. '9' )+ '\\'d' ( '0' .. '9' | '_' )+
{
// InternalRDL.g:7654:132: ( '0' .. '9' )+
// InternalRDL.g:7894:132: ( '0' .. '9' )+
int cnt16=0;
loop16:
do {
@ -3380,7 +3380,7 @@ public class InternalRDLLexer extends Lexer {
switch (alt16) {
case 1 :
// InternalRDL.g:7654:133: '0' .. '9'
// InternalRDL.g:7894:133: '0' .. '9'
{
matchRange('0','9');
@ -3398,7 +3398,7 @@ public class InternalRDLLexer extends Lexer {
match("'d");
// InternalRDL.g:7654:150: ( '0' .. '9' | '_' )+
// InternalRDL.g:7894:150: ( '0' .. '9' | '_' )+
int cnt17=0;
loop17:
do {
@ -3440,11 +3440,11 @@ public class InternalRDLLexer extends Lexer {
}
break;
case 5 :
// InternalRDL.g:7654:166: '0x' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )+
// InternalRDL.g:7894:166: '0x' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )+
{
match("0x");
// InternalRDL.g:7654:171: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )+
// InternalRDL.g:7894:171: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )+
int cnt18=0;
loop18:
do {
@ -3486,9 +3486,9 @@ public class InternalRDLLexer extends Lexer {
}
break;
case 6 :
// InternalRDL.g:7654:201: ( '0' .. '9' )+
// InternalRDL.g:7894:201: ( '0' .. '9' )+
{
// InternalRDL.g:7654:201: ( '0' .. '9' )+
// InternalRDL.g:7894:201: ( '0' .. '9' )+
int cnt19=0;
loop19:
do {
@ -3502,7 +3502,7 @@ public class InternalRDLLexer extends Lexer {
switch (alt19) {
case 1 :
// InternalRDL.g:7654:202: '0' .. '9'
// InternalRDL.g:7894:202: '0' .. '9'
{
matchRange('0','9');
@ -3540,11 +3540,11 @@ public class InternalRDLLexer extends Lexer {
try {
int _type = RULE_STR;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalRDL.g:7656:10: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' )
// InternalRDL.g:7656:12: '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
// InternalRDL.g:7896:10: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' )
// InternalRDL.g:7896:12: '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
{
match('\"');
// InternalRDL.g:7656:16: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )*
// InternalRDL.g:7896:16: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )*
loop21:
do {
int alt21=3;
@ -3560,7 +3560,7 @@ public class InternalRDLLexer extends Lexer {
switch (alt21) {
case 1 :
// InternalRDL.g:7656:17: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' )
// InternalRDL.g:7896:17: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' )
{
match('\\');
if ( input.LA(1)=='\"'||input.LA(1)=='\''||input.LA(1)=='\\'||input.LA(1)=='b'||input.LA(1)=='f'||input.LA(1)=='n'||input.LA(1)=='r'||(input.LA(1)>='t' && input.LA(1)<='u') ) {
@ -3576,7 +3576,7 @@ public class InternalRDLLexer extends Lexer {
}
break;
case 2 :
// InternalRDL.g:7656:62: ~ ( ( '\\\\' | '\"' ) )
// InternalRDL.g:7896:62: ~ ( ( '\\\\' | '\"' ) )
{
if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
input.consume();
@ -4593,7 +4593,7 @@ public class InternalRDLLexer extends Lexer {
this.transition = DFA20_transition;
}
public String getDescription() {
return "7654:12: ( ( '0' .. '9' )+ '\\'b' ( '0' | '1' | '_' )+ | ( '0' .. '9' )+ '\\'o' ( '0' .. '7' | '_' )+ | ( '0' .. '9' )+ '\\'h' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ | ( '0' .. '9' )+ '\\'d' ( '0' .. '9' | '_' )+ | '0x' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )+ | ( '0' .. '9' )+ )";
return "7894:12: ( ( '0' .. '9' )+ '\\'b' ( '0' | '1' | '_' )+ | ( '0' .. '9' )+ '\\'o' ( '0' .. '7' | '_' )+ | ( '0' .. '9' )+ '\\'h' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ | ( '0' .. '9' )+ '\\'d' ( '0' .. '9' | '_' )+ | '0x' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )+ | ( '0' .. '9' )+ )";
}
}
static final String DFA22_eotS =
@ -4605,11 +4605,11 @@ public class InternalRDLLexer extends Lexer {
static final String DFA22_maxS =
"\1\175\1\171\1\165\1\162\1\163\1\172\1\165\1\157\1\172\1\167\1\156\1\166\1\157\1\160\1\170\2\163\1\156\1\171\1\162\1\116\21\uffff\1\57\4\uffff\1\162\1\156\1\172\1\141\1\156\1\164\1\155\1\172\1\170\1\156\1\164\1\147\1\151\1\144\1\154\1\142\1\144\1\171\1\164\1\163\1\166\1\154\1\172\1\uffff\1\145\2\154\1\163\1\156\1\163\2\172\1\uffff\1\172\1\154\1\164\2\145\1\162\2\165\1\157\1\162\1\165\2\164\1\142\1\166\1\142\1\163\1\144\1\162\1\165\1\160\1\157\1\163\1\104\2\uffff\1\151\1\143\1\156\1\147\1\145\1\157\1\143\1\uffff\1\162\1\143\1\165\1\142\1\145\1\uffff\1\164\1\145\1\163\1\154\1\150\1\145\1\144\1\162\1\172\1\147\1\151\1\145\1\156\1\151\1\145\2\172\1\145\1\164\1\144\1\162\1\uffff\1\154\1\163\1\154\1\143\1\162\1\141\1\164\1\154\1\145\1\172\2\uffff\1\145\1\154\1\156\1\141\1\uffff\1\164\2\162\1\144\1\162\1\145\1\156\1\160\1\151\1\143\1\145\1\157\1\142\1\155\1\145\1\164\1\60\1\145\1\60\1\153\4\145\1\143\1\160\1\145\1\105\1\156\1\153\1\141\1\154\1\172\1\144\1\143\1\145\1\172\1\162\1\145\2\172\1\144\1\164\2\145\1\156\1\147\1\155\1\uffff\1\156\1\163\1\164\1\144\1\143\1\166\1\163\2\151\1\154\2\uffff\1\164\1\172\1\163\1\172\1\144\1\145\1\141\2\172\1\165\1\164\1\162\1\164\1\uffff\1\164\1\162\1\141\1\163\2\172\1\162\2\172\1\146\1\144\1\164\1\157\1\146\1\153\1\170\1\144\1\154\1\172\1\162\1\154\1\172\1\154\2\172\1\162\1\163\2\172\2\145\1\144\1\106\1\147\1\171\1\154\1\145\1\172\1\uffff\2\172\1\144\1\uffff\1\141\1\162\2\uffff\1\147\1\151\1\141\2\144\1\145\1\141\1\163\1\155\1\172\1\145\2\172\1\145\1\163\1\154\1\144\1\151\1\172\1\uffff\1\145\1\uffff\2\172\1\154\1\uffff\1\151\2\141\1\150\1\uffff\1\154\1\157\1\145\4\172\1\142\1\153\1\141\1\156\2\uffff\1\156\1\151\1\141\2\uffff\1\154\1\172\1\145\1\143\1\156\1\137\1\172\1\164\2\145\1\uffff\1\156\1\145\1\uffff\1\172\2\uffff\1\146\1\150\2\uffff\1\144\1\162\1\147\1\111\3\172\1\160\3\uffff\1\172\1\164\1\172\1\145\1\143\1\156\1\147\1\151\1\172\1\160\1\163\1\145\1\uffff\1\162\2\uffff\1\154\1\167\1\145\1\164\1\147\1\151\1\uffff\1\164\1\162\1\151\2\uffff\1\151\1\144\1\154\1\164\1\162\1\164\1\155\1\163\4\uffff\1\154\1\172\1\163\2\141\1\144\1\154\1\157\1\uffff\1\162\1\164\1\145\1\162\1\uffff\1\142\2\172\1\141\1\145\1\uffff\1\154\1\157\1\145\1\164\1\145\1\116\1\uffff\1\151\1\uffff\1\151\1\uffff\1\165\1\170\1\uffff\1\145\1\uffff\1\172\1\153\1\172\1\145\1\141\1\uffff\1\172\1\151\1\156\1\172\1\151\1\157\1\151\1\172\1\150\1\156\1\147\1\172\1\145\1\144\1\147\1\164\2\165\1\145\1\172\1\160\1\164\1\145\1\uffff\1\153\1\142\1\154\1\164\1\165\1\167\2\172\1\156\1\145\1\165\2\uffff\1\154\1\156\1\157\1\154\1\156\1\171\1\172\1\105\1\164\1\144\1\154\1\164\1\172\1\uffff\1\171\1\uffff\1\172\1\156\1\uffff\1\156\1\164\1\uffff\1\147\1\167\1\144\1\uffff\2\172\1\156\1\172\1\uffff\1\163\1\164\1\156\1\150\1\145\1\162\1\163\1\uffff\1\141\3\172\1\154\1\172\1\150\1\145\1\172\2\uffff\1\164\2\163\1\172\1\144\1\167\1\144\1\143\1\172\1\uffff\1\104\1\172\1\164\1\163\1\142\1\uffff\1\172\1\uffff\1\172\1\147\1\172\1\150\1\172\1\164\2\uffff\1\141\1\uffff\1\145\1\150\3\172\1\141\1\150\1\162\3\uffff\1\145\1\uffff\2\172\1\uffff\1\172\1\145\1\172\1\uffff\1\151\2\172\1\145\1\uffff\1\172\1\uffff\1\150\1\145\1\165\2\uffff\1\172\1\uffff\1\172\1\uffff\1\150\1\154\1\164\1\172\3\uffff\1\164\1\157\1\145\1\172\3\uffff\1\164\1\uffff\1\141\2\uffff\1\172\1\uffff\2\172\1\163\2\uffff\3\172\1\uffff\1\145\1\154\1\172\1\uffff\1\172\1\156\3\uffff\1\172\3\uffff\1\172\1\144\2\uffff\1\172\2\uffff\1\172\2\uffff";
static final String DFA22_acceptS =
"\25\uffff\1\146\1\150\1\151\1\152\1\154\1\157\1\161\1\162\1\163\1\164\1\165\1\166\1\167\1\170\1\171\1\174\1\175\1\uffff\1\u0080\1\u0081\1\u0082\1\u0083\27\uffff\1\133\10\uffff\1\134\30\uffff\1\176\1\177\7\uffff\1\107\5\uffff\1\135\25\uffff\1\131\12\uffff\1\22\1\132\4\uffff\1\110\60\uffff\1\12\12\uffff\1\5\1\10\15\uffff\1\23\46\uffff\1\24\3\uffff\1\55\2\uffff\1\13\1\125\23\uffff\1\16\1\uffff\1\17\3\uffff\1\14\4\uffff\1\66\13\uffff\1\124\1\34\3\uffff\1\65\1\36\12\uffff\1\172\2\uffff\1\54\1\uffff\1\53\1\116\2\uffff\1\127\1\153\10\uffff\1\25\1\30\1\31\14\uffff\1\160\1\uffff\1\35\1\56\6\uffff\1\44\3\uffff\1\7\1\130\10\uffff\1\20\1\21\1\26\1\27\10\uffff\1\37\4\uffff\1\115\5\uffff\1\144\6\uffff\1\1\1\uffff\1\32\1\uffff\1\11\2\uffff\1\52\1\uffff\1\2\5\uffff\1\51\27\uffff\1\121\13\uffff\1\113\1\117\15\uffff\1\142\1\uffff\1\3\2\uffff\1\4\2\uffff\1\15\3\uffff\1\6\4\uffff\1\47\7\uffff\1\155\11\uffff\1\40\1\136\11\uffff\1\141\5\uffff\1\73\1\uffff\1\143\6\uffff\1\103\1\137\1\uffff\1\50\10\uffff\1\100\1\120\1\122\1\uffff\1\101\2\uffff\1\41\3\uffff\1\173\4\uffff\1\147\1\uffff\1\33\3\uffff\1\145\1\46\1\uffff\1\102\1\uffff\1\62\4\uffff\1\140\1\70\1\72\4\uffff\1\67\1\71\1\156\1\uffff\1\43\1\uffff\1\64\1\75\1\uffff\1\126\3\uffff\1\111\1\61\3\uffff\1\104\3\uffff\1\123\2\uffff\1\112\1\105\1\63\1\uffff\1\106\1\114\1\60\2\uffff\1\77\1\57\1\uffff\1\42\1\74\1\uffff\1\45\1\76";
"\25\uffff\1\146\1\147\1\151\1\152\1\154\1\157\1\161\1\162\1\163\1\164\1\165\1\166\1\167\1\170\1\171\1\174\1\175\1\uffff\1\u0080\1\u0081\1\u0082\1\u0083\27\uffff\1\133\10\uffff\1\134\30\uffff\1\176\1\177\7\uffff\1\107\5\uffff\1\135\25\uffff\1\131\12\uffff\1\22\1\132\4\uffff\1\110\60\uffff\1\12\12\uffff\1\5\1\10\15\uffff\1\23\46\uffff\1\24\3\uffff\1\55\2\uffff\1\13\1\125\23\uffff\1\16\1\uffff\1\17\3\uffff\1\14\4\uffff\1\66\13\uffff\1\124\1\34\3\uffff\1\65\1\36\12\uffff\1\172\2\uffff\1\54\1\uffff\1\53\1\116\2\uffff\1\127\1\153\10\uffff\1\25\1\30\1\31\14\uffff\1\160\1\uffff\1\35\1\56\6\uffff\1\44\3\uffff\1\7\1\130\10\uffff\1\20\1\21\1\26\1\27\10\uffff\1\37\4\uffff\1\115\5\uffff\1\144\6\uffff\1\1\1\uffff\1\32\1\uffff\1\11\2\uffff\1\52\1\uffff\1\2\5\uffff\1\51\27\uffff\1\121\13\uffff\1\113\1\117\15\uffff\1\142\1\uffff\1\3\2\uffff\1\4\2\uffff\1\15\3\uffff\1\6\4\uffff\1\47\7\uffff\1\155\11\uffff\1\40\1\136\11\uffff\1\141\5\uffff\1\73\1\uffff\1\143\6\uffff\1\103\1\137\1\uffff\1\50\10\uffff\1\100\1\120\1\122\1\uffff\1\101\2\uffff\1\41\3\uffff\1\173\4\uffff\1\150\1\uffff\1\33\3\uffff\1\145\1\46\1\uffff\1\102\1\uffff\1\62\4\uffff\1\140\1\70\1\72\4\uffff\1\67\1\71\1\156\1\uffff\1\43\1\uffff\1\64\1\75\1\uffff\1\126\3\uffff\1\111\1\61\3\uffff\1\104\3\uffff\1\123\2\uffff\1\112\1\105\1\63\1\uffff\1\106\1\114\1\60\2\uffff\1\77\1\57\1\uffff\1\42\1\74\1\uffff\1\45\1\76";
static final String DFA22_specialS =
"\u0284\uffff}>";
static final String[] DFA22_transitionS = {
"\2\45\2\uffff\1\45\22\uffff\1\45\1\uffff\1\52\2\uffff\1\36\2\uffff\1\50\2\uffff\1\35\1\33\1\42\1\43\1\46\12\51\1\41\1\30\1\47\1\31\2\uffff\1\34\24\44\1\24\5\44\1\37\1\44\1\40\1\uffff\1\44\1\25\1\4\1\3\1\15\1\7\1\16\1\6\1\44\1\11\1\12\2\44\1\17\1\20\1\2\1\13\1\23\1\44\1\5\1\1\1\22\1\21\1\44\1\10\1\14\2\44\1\26\1\32\1\27",
"\2\45\2\uffff\1\45\22\uffff\1\45\1\uffff\1\52\2\uffff\1\36\2\uffff\1\50\2\uffff\1\35\1\33\1\42\1\43\1\46\12\51\1\41\1\25\1\47\1\31\2\uffff\1\34\24\44\1\24\5\44\1\37\1\44\1\40\1\uffff\1\44\1\26\1\4\1\3\1\15\1\7\1\16\1\6\1\44\1\11\1\12\2\44\1\17\1\20\1\2\1\13\1\23\1\44\1\5\1\1\1\22\1\21\1\44\1\10\1\14\2\44\1\27\1\32\1\30",
"\1\60\6\uffff\1\56\1\54\12\uffff\1\53\2\uffff\1\55\1\uffff\1\57",
"\1\62\3\uffff\1\63\11\uffff\1\64\5\uffff\1\61",
"\1\66\5\uffff\1\65\2\uffff\1\67",

View File

@ -1,5 +1,5 @@
/*
* generated by Xtext 2.12.0
* generated by Xtext 2.14.0
*/
package com.minres.rdl.ide

View File

@ -1,5 +1,5 @@
/*
* generated by Xtext 2.12.0
* generated by Xtext 2.14.0
*/
package com.minres.rdl.ide

View File

@ -1,5 +1,5 @@
/**
* generated by Xtext 2.12.0
* generated by Xtext 2.14.0
*/
package com.minres.rdl.ide;

View File

@ -1,5 +1,5 @@
/**
* generated by Xtext 2.12.0
* generated by Xtext 2.14.0
*/
package com.minres.rdl.ide;

View File

@ -2,8 +2,8 @@
<feature
id="com.minres.rdl.platform.feature"
label="Xtext Platform Feature"
version="1.0.0.qualifier"
provider-name="MINRES">
version="1.1.0.qualifier"
provider-name="MINRES Technologies GmbH">
<description url="http://www.example.com/description">
[Enter Feature Description here.]
@ -17,400 +17,21 @@
[Enter License Description here.]
</license>
<includes
id="org.eclipse.xtext.runtime"
version="0.0.0"/>
<includes
id="org.eclipse.rcp"
version="0.0.0"/>
<requires>
<import plugin="org.eclipse.e4.core.di" version="1.5.1" match="greaterOrEqual"/>
<import plugin="org.eclipse.core.runtime" version="3.5.0" match="compatible"/>
<import plugin="org.eclipse.core.resources" version="3.5.0" match="compatible"/>
<import plugin="org.eclipse.jdt.core" version="3.5.0" match="compatible"/>
<import plugin="org.eclipse.jdt.launching" version="3.5.0" match="compatible"/>
<import plugin="org.eclipse.emf.ecore" version="2.12.0" match="compatible"/>
<import plugin="org.eclipse.emf.codegen" version="2.11.0" match="compatible"/>
<import plugin="org.eclipse.emf.ecore.xmi" version="2.12.0" match="compatible"/>
<import plugin="org.eclipse.text" version="3.5.0" match="compatible"/>
<import plugin="org.apache.batik.util.gui" version="1.7.0" match="equivalent"/>
<import plugin="org.eclipse.equinox.common" version="3.5.0" match="compatible"/>
<import plugin="org.eclipse.equinox.common" version="3.6.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.equinox.registry" version="3.5.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.debug.core" version="3.9.0" match="compatible"/>
<import plugin="org.eclipse.core.variables" version="3.2.800" match="compatible"/>
<import plugin="org.eclipse.xtend" version="1.1.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.xpand" version="1.1.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.xtend.typesystem.emf" version="1.0.1" match="greaterOrEqual"/>
<import plugin="org.eclipse.emf.ecore" version="2.10.2" match="greaterOrEqual"/>
<import plugin="org.eclipse.emf.common" version="2.10.1" match="greaterOrEqual"/>
<import plugin="org.eclipse.core.runtime" version="3.6.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.equinox.security" version="1.0.0" match="compatible"/>
<import plugin="org.eclipse.equinox.common" version="3.4.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.equinox.preferences" version="3.2.200" match="greaterOrEqual"/>
<import plugin="org.eclipse.osgi" version="3.4.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.equinox.registry" version="3.4.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.core.expressions" version="3.4.0" match="compatible"/>
<import plugin="org.eclipse.ui" version="3.5.0" match="compatible"/>
<import plugin="org.eclipse.ui.console" version="3.5.300" match="compatible"/>
<import plugin="org.eclipse.help" version="3.4.0" match="compatible"/>
<import plugin="org.eclipse.jface.text" version="3.5.0" match="compatible"/>
<import plugin="org.eclipse.ui.workbench.texteditor" version="3.5.0" match="compatible"/>
<import plugin="org.eclipse.ui.ide" version="3.5.0" match="compatible"/>
<import plugin="org.eclipse.ui.editors" version="3.5.0" match="compatible"/>
<import plugin="org.eclipse.core.runtime" version="3.11.0" match="compatible"/>
<import plugin="org.eclipse.core.filesystem" version="1.2.0" match="compatible"/>
<import plugin="org.eclipse.emf.codegen.ecore" version="2.10.2" match="greaterOrEqual"/>
<import plugin="org.eclipse.jdt.core" version="3.3.0" match="compatible"/>
<import plugin="org.eclipse.pde.core" version="3.6.0" match="compatible"/>
<import plugin="org.eclipse.ui.ide" version="3.2.0" match="compatible"/>
<import plugin="org.eclipse.ui.views" version="3.2.0" match="compatible"/>
<import plugin="org.eclipse.jface.text" version="3.7.0" match="compatible"/>
<import plugin="org.eclipse.ui.editors" version="3.2.0" match="compatible"/>
<import plugin="org.eclipse.debug.ui" version="3.10.0" match="compatible"/>
<import plugin="org.eclipse.jdt.core" version="3.2.0" match="compatible"/>
<import plugin="org.eclipse.jdt.debug.ui" version="3.2.0" match="compatible"/>
<import plugin="org.eclipse.jdt.launching" version="3.2.0" match="compatible"/>
<import plugin="org.eclipse.jdt.ui" version="3.2.0" match="compatible"/>
<import plugin="org.eclipse.pde.build" version="3.2.0" match="compatible"/>
<import plugin="org.eclipse.search" version="3.7.0" match="compatible"/>
<import plugin="org.eclipse.team.core" version="3.2.0" match="compatible"/>
<import plugin="org.eclipse.ui.forms" version="3.2.0" match="compatible"/>
<import plugin="org.eclipse.ant.launching" version="1.0.400" match="compatible"/>
<import plugin="org.eclipse.ant.ui" version="3.1.0" match="compatible"/>
<import plugin="org.eclipse.jdt.junit" version="3.2.0" match="compatible"/>
<import plugin="org.eclipse.ui.intro" version="3.2.0" match="compatible"/>
<import plugin="org.eclipse.ui.cheatsheets" version="3.2.0" match="compatible"/>
<import plugin="org.eclipse.update.configurator" version="3.1.0" match="compatible"/>
<import plugin="org.eclipse.ui.views.log" version="1.0.0" match="compatible"/>
<import plugin="org.eclipse.ltk.core.refactoring" version="3.2.0" match="compatible"/>
<import plugin="org.eclipse.core.variables" version="3.1.0" match="compatible"/>
<import plugin="org.eclipse.compare" version="3.2.0" match="compatible"/>
<import plugin="org.eclipse.core.filesystem" version="1.0.0" match="compatible"/>
<import plugin="org.eclipse.ltk.ui.refactoring" version="3.2.0" match="compatible"/>
<import plugin="org.eclipse.core.expressions" version="3.2.0" match="compatible"/>
<import plugin="org.eclipse.ui.navigator.resources" version="3.3.100" match="compatible"/>
<import plugin="org.eclipse.equinox.p2.ui" version="2.0.0" match="compatible"/>
<import plugin="org.eclipse.equinox.p2.metadata" version="2.0.0" match="compatible"/>
<import plugin="org.eclipse.equinox.p2.engine" version="2.0.0" match="compatible"/>
<import plugin="org.eclipse.equinox.p2.core" version="2.0.0" match="compatible"/>
<import plugin="org.eclipse.equinox.p2.director" version="2.1.0" match="compatible"/>
<import plugin="org.eclipse.equinox.p2.artifact.repository" version="1.0.100" match="compatible"/>
<import plugin="org.eclipse.equinox.p2.metadata.repository" version="1.0.100" match="compatible"/>
<import plugin="org.eclipse.equinox.p2.operations" version="2.0.0" match="compatible"/>
<import plugin="org.eclipse.equinox.p2.repository" version="2.0.0" match="compatible"/>
<import plugin="org.eclipse.equinox.frameworkadmin" version="2.0.0" match="compatible"/>
<import plugin="org.eclipse.equinox.frameworkadmin.equinox" version="1.0.100" match="compatible"/>
<import plugin="org.eclipse.pde.launching" version="3.6.0" match="compatible"/>
<import plugin="org.eclipse.ui.console" version="3.5.0" match="compatible"/>
<import plugin="org.eclipse.equinox.simpleconfigurator" version="1.0.200" match="compatible"/>
<import plugin="org.eclipse.equinox.p2.repository.tools" version="2.0.100" match="compatible"/>
<import plugin="org.eclipse.team.ui" version="3.6.100" match="compatible"/>
<import plugin="org.eclipse.debug.core" version="3.10.0" match="compatible"/>
<import plugin="org.eclipse.ui.trace" version="1.0.0" match="compatible"/>
<import plugin="org.eclipse.equinox.bidi" version="0.10.0"/>
<import plugin="org.eclipse.equinox.registry" version="3.3.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.emf.codegen.ecore" version="2.12.0" match="compatible"/>
<import plugin="org.eclipse.emf.edit.ui" version="2.12.0" match="compatible"/>
<import plugin="org.eclipse.emf.ecore.edit" version="2.9.0" match="compatible"/>
<import plugin="org.eclipse.equinox.common" version="3.3.0" match="compatible"/>
<import plugin="org.eclipse.core.jobs" version="3.3.0" match="compatible"/>
<import plugin="org.sat4j.core" version="2.3.5" match="compatible"/>
<import plugin="org.sat4j.pb" version="2.3.5" match="compatible"/>
<import plugin="org.eclipse.swt" version="3.2.0" match="compatible"/>
<import plugin="org.eclipse.jface" version="3.2.0" match="compatible"/>
<import plugin="org.eclipse.equinox.common" version="3.2.0" match="compatible"/>
<import plugin="org.eclipse.core.databinding.observable" version="1.3.0" match="compatible"/>
<import plugin="org.eclipse.core.databinding.property" version="1.3.0" match="compatible"/>
<import plugin="org.eclipse.core.databinding" version="1.2.0" match="compatible"/>
<import plugin="org.eclipse.equinox.registry" version="3.4.0" match="compatible"/>
<import plugin="com.google.guava" version="14.0.0"/>
<import plugin="com.google.inject" version="3.0.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.e4.ui.model.workbench" version="1.0.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.e4.core.contexts" version="0.9.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.e4.core.di" version="0.9.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.e4.ui.workbench" version="0.9.1" match="greaterOrEqual"/>
<import plugin="org.eclipse.e4.core.services" version="0.9.1" match="greaterOrEqual"/>
<import plugin="org.eclipse.osgi.services" version="3.2.100" match="compatible"/>
<import plugin="org.eclipse.e4.ui.workbench.renderers.swt" version="0.9.1" match="greaterOrEqual"/>
<import plugin="org.eclipse.e4.ui.widgets" version="0.11.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.e4.ui.css.swt" version="0.9.1" match="greaterOrEqual"/>
<import plugin="org.eclipse.e4.ui.css.core" version="0.9.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.swt" version="3.7.0" match="compatible"/>
<import plugin="org.eclipse.jface" version="3.7.0" match="compatible"/>
<import plugin="org.eclipse.core.runtime" version="3.7.0" match="compatible"/>
<import plugin="org.eclipse.e4.ui.di" version="0.10.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.e4.ui.services" version="1.0.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.emf.ecore.xmi" version="2.7.0" match="greaterOrEqual"/>
<import plugin="org.apache.ant" version="1.9.4" match="greaterOrEqual"/>
<import plugin="org.eclipse.ant.core" version="3.2.0" match="compatible"/>
<import plugin="org.eclipse.core.resources" version="3.2.0" match="compatible"/>
<import plugin="org.eclipse.ui.externaltools" version="3.2.0" match="compatible"/>
<import plugin="org.eclipse.ui" version="3.2.0" match="compatible"/>
<import plugin="org.eclipse.ui.console" version="3.1.0" match="compatible"/>
<import plugin="org.eclipse.debug.core" version="3.6.0" match="compatible"/>
<import plugin="org.eclipse.debug.ui" version="3.6.0" match="compatible"/>
<import plugin="org.eclipse.jdt.junit" version="3.5.0" match="compatible"/>
<import plugin="org.eclipse.ant.launching" version="1.0.0" match="compatible"/>
<import plugin="org.eclipse.core.externaltools" version="1.0.0" match="compatible"/>
<import plugin="org.eclipse.emf.edit" version="2.10.1" match="greaterOrEqual"/>
<import plugin="org.eclipse.equinox.preferences" version="3.2.200" match="compatible"/>
<import plugin="org.eclipse.ui" version="3.4.0" match="compatible"/>
<import plugin="org.eclipse.core.runtime" version="3.4.0" match="compatible"/>
<import plugin="org.eclipse.swt" version="3.6.0" match="compatible"/>
<import plugin="org.eclipse.equinox.common" version="3.6.0" match="compatible"/>
<import plugin="org.w3c.css.sac" version="1.3.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.equinox.registry" version="3.5.0" match="compatible"/>
<import plugin="org.eclipse.equinox.preferences" version="3.3.0" match="compatible"/>
<import plugin="org.eclipse.core.runtime" version="3.8.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.ui.editors" version="3.5.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.ui.ide" version="3.5.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.core.runtime" version="3.6.0" match="compatible"/>
<import plugin="org.eclipse.help" version="3.2.0" match="compatible"/>
<import plugin="org.eclipse.jface" version="3.9.0" match="compatible"/>
<import plugin="org.eclipse.swt" version="3.101.0" match="compatible"/>
<import plugin="org.eclipse.jface.databinding" version="1.3.0" match="compatible"/>
<import plugin="org.eclipse.core.databinding.property" version="1.2.0" match="compatible"/>
<import plugin="org.eclipse.core.databinding.observable" version="1.2.0" match="compatible"/>
<import plugin="org.eclipse.e4.core.services" version="1.0.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.e4.core.contexts" version="1.0.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.e4.core.di" version="1.1.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.e4.ui.workbench.swt" version="0.9.1" match="greaterOrEqual"/>
<import plugin="org.eclipse.e4.ui.di" version="0.9.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.e4.ui.model.workbench" version="0.9.1" match="greaterOrEqual"/>
<import plugin="org.eclipse.e4.ui.css.swt.theme" version="0.9.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.e4.ui.bindings" version="0.9.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.e4.ui.workbench3" version="0.12.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.e4.ui.workbench.addons.swt" version="0.10.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.emf.ecore" version="2.7.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.emf.ecore.xmi" version="2.11.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.e4.core.di.extensions" version="0.13.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.e4.ui.workbench.renderers.swt" version="0.10.0" match="compatible"/>
<import plugin="org.eclipse.equinox.common" version="3.3.0" match="greaterOrEqual"/>
<import plugin="org.tukaani.xz" version="1.3.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.text" version="3.1.0" match="compatible"/>
<import plugin="org.eclipse.core.filebuffers" version="3.2.0" match="compatible"/>
<import plugin="org.eclipse.ant.core" version="3.1.0" match="compatible"/>
<import plugin="org.eclipse.equinox.simpleconfigurator.manipulator" version="2.0.0" match="compatible"/>
<import plugin="org.eclipse.debug.core" version="3.5.0" match="compatible"/>
<import plugin="org.eclipse.equinox.p2.repository" version="2.0.0"/>
<import plugin="org.eclipse.equinox.p2.garbagecollector" version="1.0.100" match="compatible"/>
<import plugin="org.eclipse.equinox.p2.touchpoint.eclipse" version="2.0.0" match="compatible"/>
<import plugin="org.eclipse.emf.common" version="2.12.0" match="compatible"/>
<import plugin="org.eclipse.core.commands" version="3.5.0" match="compatible"/>
<import plugin="org.eclipse.equinox.common" version="3.8.0" match="compatible"/>
<import plugin="org.eclipse.ui" version="3.107.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.equinox.security.ui" version="1.0.0" match="compatible"/>
<import plugin="org.eclipse.core.resources" version="3.3.0" match="compatible"/>
<import plugin="org.eclipse.core.runtime" version="3.2.0" match="compatible"/>
<import plugin="org.eclipse.core.filesystem" version="1.1.0" match="compatible"/>
<import plugin="org.eclipse.compare.core" version="3.5.200" match="compatible"/>
<import plugin="org.eclipse.osgi" version="3.10.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.ui.ide" version="3.6.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.jdt.core" version="3.6.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.debug.ui" version="3.6.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.help" version="3.5.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.core.expressions" version="3.4.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.ui.editors" version="3.6.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.ui" version="3.6.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.compare" version="3.5.101" match="greaterOrEqual"/>
<import plugin="org.eclipse.jface.databinding" version="1.3.1" match="greaterOrEqual"/>
<import plugin="org.eclipse.core.databinding" version="1.2.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.core.databinding.beans" version="1.2.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.core.databinding.property" version="1.2.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.jdt.launching" version="3.5.0" match="greaterOrEqual"/>
<import plugin="org.apache.batik.util" version="1.7.0" match="equivalent"/>
<import plugin="org.eclipse.emf.common.ui" version="2.11.0" match="compatible"/>
<import plugin="org.eclipse.e4.core.services" version="0.9.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.e4.core.di" version="1.0.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.emf.ecore" version="2.9.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.e4.emf.xpath" version="0.1.100" match="greaterOrEqual"/>
<import plugin="org.eclipse.emf.ecore.editor" version="2.10.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.ui.views" version="3.3.100" match="compatible"/>
<import plugin="org.eclipse.core.expressions" version="3.4.100" match="compatible"/>
<import plugin="org.eclipse.debug.ui" version="3.5.0" match="compatible"/>
<import plugin="org.eclipse.jdt.core" version="3.12.0" match="compatible"/>
<import plugin="org.eclipse.jdt.ui" version="3.12.0" match="compatible"/>
<import plugin="org.eclipse.jdt.debug.ui" version="3.3.0" match="compatible"/>
<import plugin="org.eclipse.jdt.junit.runtime" version="3.4.100" match="compatible"/>
<import plugin="org.eclipse.compare" version="3.5.0" match="compatible"/>
<import plugin="org.eclipse.ltk.core.refactoring" version="3.5.0" match="compatible"/>
<import plugin="org.eclipse.core.variables" version="3.2.200" match="compatible"/>
<import plugin="org.eclipse.ltk.ui.refactoring" version="3.5.0" match="compatible"/>
<import plugin="org.eclipse.jdt.junit.core" version="3.6.0" match="compatible"/>
<import plugin="com.ibm.icu" version="4.4.2" match="greaterOrEqual"/>
<import plugin="org.eclipse.emf.ecore.xmi" version="2.10.2" match="greaterOrEqual"/>
<import plugin="org.eclipse.equinox.common" version="3.5.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.core.resources" version="3.4.0" match="compatible"/>
<import plugin="org.eclipse.jface.text" version="3.8.0" match="compatible"/>
<import plugin="org.eclipse.ui.ide" version="3.3.0" match="compatible"/>
<import plugin="org.eclipse.compare.core" version="3.5.0" match="compatible"/>
<import plugin="org.eclipse.e4.ui.workbench" version="0.9.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.e4.ui.services" version="0.9.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.swt" version="3.5.0" match="compatible"/>
<import plugin="org.eclipse.jface" version="3.5.0" match="compatible"/>
<import plugin="org.eclipse.e4.ui.workbench.swt" version="0.9.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.e4.ui.model.workbench" version="0.9.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.osgi.services" version="3.2.0" match="compatible"/>
<import plugin="org.eclipse.e4.core.commands" version="0.9.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.core.expressions" version="3.4.200" match="compatible"/>
<import plugin="org.eclipse.osgi" version="3.6.0" match="compatible"/>
<import plugin="org.eclipse.e4.ui.css.swt" version="0.11.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.e4.core.di.extensions" version="0.12.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.equinox.preferences" version="3.5.200" match="greaterOrEqual"/>
<import plugin="org.eclipse.osgi" version="3.8.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.core.runtime" version="3.3.0" match="compatible"/>
<import plugin="com.jcraft.jsch" version="0.1.50" match="compatible"/>
<import plugin="org.eclipse.core.net" version="1.0.0" match="compatible"/>
<import plugin="org.eclipse.swt" version="3.104.0" match="compatible"/>
<import plugin="org.eclipse.core.commands" version="3.4.0" match="compatible"/>
<import plugin="org.eclipse.ui" version="3.106.0" match="compatible"/>
<import plugin="org.eclipse.ui.workbench" version="3.7.0" match="compatible"/>
<import plugin="org.eclipse.jface.text" version="3.2.0" match="compatible"/>
<import plugin="org.eclipse.e4.core.services" version="2.0.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.e4.core.contexts" version="1.3.100" match="compatible"/>
<import plugin="org.eclipse.e4.ui.workbench" version="1.3.0" match="compatible"/>
<import plugin="org.eclipse.e4.core.commands" version="0.11.0" match="compatible"/>
<import plugin="org.eclipse.e4.ui.model.workbench" version="1.1.0" match="compatible"/>
<import plugin="org.eclipse.e4.core.di" version="1.6.0" match="compatible"/>
<import plugin="org.eclipse.e4.core.di.extensions" version="0.14.0" match="compatible"/>
<import plugin="org.eclipse.osgi.services" version="3.5.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.jdt.core" version="3.8.0" match="compatible"/>
<import plugin="org.eclipse.core.runtime" version="3.12.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.emf.mwe2.runtime" version="2.9.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.xtext" version="2.8.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.xtext.common.types" version="2.8.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.swt" version="3.4.1" match="compatible"/>
<import plugin="org.eclipse.ui" version="3.6.0" match="compatible"/>
<import plugin="org.eclipse.ui.forms" version="3.5.0" match="compatible"/>
<import plugin="org.eclipse.help" version="3.5.0" match="compatible"/>
<import plugin="org.eclipse.core.expressions" version="3.4.200" match="greaterOrEqual"/>
<import plugin="org.eclipse.equinox.common" version="3.7.0" match="compatible"/>
<import plugin="org.eclipse.swt" version="3.103.0" match="compatible"/>
<import plugin="org.eclipse.core.resources" version="3.9.0" match="compatible"/>
<import plugin="org.objectweb.asm" version="5.0.1" match="compatible"/>
<import plugin="org.eclipse.jdt.debug" version="3.7.100" match="compatible"/>
<import plugin="org.eclipse.core.variables" version="3.2.0" match="compatible"/>
<import plugin="org.eclipse.osgi" version="3.8.0" match="compatible"/>
<import plugin="org.eclipse.core.resources" version="3.6.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.jdt.ui" version="3.6.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.search" version="3.5.1" match="greaterOrEqual"/>
<import plugin="org.eclipse.ltk.ui.refactoring" version="3.4.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.jdt.core.manipulation" version="1.3.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.swt" version="3.0.0" match="compatible"/>
<import plugin="org.eclipse.core.filebuffers" version="3.5.0" match="compatible"/>
<import plugin="org.eclipse.jdt.debug" version="3.10.0" match="compatible"/>
<import plugin="org.eclipse.jdt.launching" version="3.7.0" match="compatible"/>
<import plugin="org.eclipse.jdt.ui" version="3.8.0" match="compatible"/>
<import plugin="org.eclipse.ui.console" version="3.4.0" match="compatible"/>
<import plugin="org.eclipse.jdt.core.manipulation" version="1.3.0" match="compatible"/>
<import plugin="org.eclipse.search" version="3.5.0" match="compatible"/>
<import plugin="org.eclipse.ui.forms" version="3.4.0" match="compatible"/>
<import plugin="org.eclipse.core.jobs" version="3.5.0" match="greaterOrEqual"/>
<import plugin="org.junit" version="3.8.2" match="greaterOrEqual"/>
<import plugin="org.eclipse.ui.console" version="3.5.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.osgi" version="3.7.0" match="compatible"/>
<import plugin="org.eclipse.core.jobs" version="3.2.0" match="compatible"/>
<import plugin="org.eclipse.equinox.preferences" version="3.4.0" match="compatible"/>
<import plugin="org.eclipse.core.contenttype" version="3.3.0" match="compatible"/>
<import plugin="org.eclipse.equinox.app" version="1.0.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.equinox.p2.metadata.repository" version="0.1.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.equinox.p2.artifact.repository" version="0.1.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.ltk.core.refactoring" version="3.7.0" match="compatible"/>
<import plugin="org.eclipse.ui.navigator" version="3.3.200" match="compatible"/>
<import plugin="org.eclipse.team.core" version="3.4.100" match="compatible"/>
<import plugin="org.eclipse.team.ui" version="3.4.100" match="compatible"/>
<import plugin="org.eclipse.ui.forms" version="3.3.0" match="compatible"/>
<import plugin="org.eclipse.ui" version="3.3.0" match="compatible"/>
<import plugin="org.apache.commons.lang" version="2.0.0" match="compatible"/>
<import plugin="org.apache.commons.logging" version="1.0.0" match="compatible"/>
<import plugin="org.eclipse.core.filesystem" version="1.3.0" match="compatible"/>
<import plugin="org.hamcrest.core" version="1.3.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.equinox.preferences" version="3.3.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.ui.ide" version="3.6.0" match="compatible"/>
<import plugin="org.eclipse.core.resources" version="3.6.0" match="compatible"/>
<import plugin="org.eclipse.jface" version="3.6.0" match="compatible"/>
<import plugin="org.eclipse.ui.navigator" version="3.5.0" match="compatible"/>
<import plugin="org.eclipse.ui.views.properties.tabbed" version="3.5.0" match="compatible"/>
<import plugin="org.eclipse.ui.workbench.texteditor" version="3.6.0" match="compatible"/>
<import plugin="org.eclipse.jface" version="3.10.100" match="compatible"/>
<import plugin="org.eclipse.ui.workbench" version="3.105.0" match="compatible"/>
<import plugin="org.eclipse.ui.workbench.texteditor" version="3.6.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.core.expressions" version="3.4.100" match="greaterOrEqual"/>
<import plugin="org.eclipse.ui.navigator" version="3.4.1" match="greaterOrEqual"/>
<import plugin="org.eclipse.e4.core.di.extensions" version="0.13.200" match="greaterOrEqual"/>
<import plugin="org.eclipse.core.runtime" version="3.4.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.core.resources" version="3.4.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.ui" version="3.4.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.ui.editors" version="3.4.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.jface.text" version="3.4.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.ui.ide" version="3.4.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.ui.views" version="3.3.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.emf.edit.ui" version="2.10.2" match="greaterOrEqual"/>
<import plugin="org.eclipse.ui.workbench.texteditor" version="3.4.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.ui.forms" version="3.4.1" match="greaterOrEqual"/>
<import plugin="org.eclipse.e4.ui.css.core" version="0.10.100" match="greaterOrEqual"/>
<import plugin="org.eclipse.e4.ui.css.swt" version="0.11.100" match="greaterOrEqual"/>
<import plugin="org.apache.commons.jxpath" version="1.2.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.emf.ecore" version="2.6.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.e4.core.di.annotations" version="1.4.0" match="compatible"/>
<import plugin="org.eclipse.core.runtime" version="3.1.0" match="compatible"/>
<import plugin="org.eclipse.core.externaltools" version="1.0.300" match="compatible"/>
<import plugin="org.apache.lucene.core" version="3.5.0" match="compatible"/>
<import plugin="org.eclipse.ui.views" version="3.4.0" match="compatible"/>
<import plugin="org.eclipse.ui.workbench" version="3.5.0" match="compatible"/>
<import plugin="org.eclipse.emf.edit" version="2.12.0" match="compatible"/>
<import plugin="org.eclipse.core.jobs" version="3.4.0" match="compatible"/>
<import plugin="org.eclipse.search" version="3.10.0" match="compatible"/>
<import plugin="org.eclipse.debug.ui" version="3.11.0" match="compatible"/>
<import plugin="org.eclipse.jdt.launching" version="3.8.0" match="compatible"/>
<import plugin="org.eclipse.jface" version="3.11.0" match="compatible"/>
<import plugin="org.eclipse.ui.workbench.texteditor" version="3.10.0" match="compatible"/>
<import plugin="org.eclipse.ltk.ui.refactoring" version="3.8.0" match="compatible"/>
<import plugin="org.eclipse.ui.navigator.resources" version="3.4.0" match="compatible"/>
<import plugin="org.eclipse.jdt.core.manipulation" version="1.7.0" match="compatible"/>
<import plugin="org.w3c.dom.smil" version="1.0.0" match="equivalent"/>
<import plugin="org.eclipse.core.runtime" version="3.12.0" match="compatible"/>
<import plugin="org.eclipse.core.resources" version="3.8.100" match="compatible"/>
<import plugin="org.eclipse.e4.ui.model.workbench" version="1.2.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.osgi" version="3.4.0" match="compatible"/>
<import plugin="org.eclipse.e4.core.commands" version="0.11.100" match="greaterOrEqual"/>
<import plugin="org.eclipse.emf.ecore.change" version="2.5.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.core.runtime" version="3.3.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.equinox.preferences" version="3.2.0" match="compatible"/>
<import plugin="org.eclipse.equinox.registry" version="3.2.0" match="compatible"/>
<import plugin="org.eclipse.xtext.ide" version="2.11.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.ant.core" version="3.1.100" match="compatible"/>
<import plugin="org.eclipse.osgi" version="3.3.0" match="compatible"/>
<import plugin="org.eclipse.equinox.p2.jarprocessor" version="1.0.1" match="compatible"/>
<import plugin="org.eclipse.equinox.p2.publisher" version="1.1.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.equinox.p2.director.app" version="1.0.200" match="greaterOrEqual"/>
<import plugin="org.eclipse.equinox.p2.publisher.eclipse" version="1.0.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.osgi" version="3.2.0" match="compatible"/>
<import plugin="org.eclipse.team.core" version="3.6.0" match="compatible"/>
<import plugin="org.eclipse.compare" version="3.3.0" match="compatible"/>
<import plugin="org.eclipse.ui.navigator" version="3.3.0" match="compatible"/>
<import plugin="org.eclipse.jface.text" version="3.3.0" match="compatible"/>
<import plugin="org.eclipse.ui.editors" version="3.3.0" match="compatible"/>
<import plugin="org.eclipse.ltk.core.refactoring" version="3.6.0" match="compatible"/>
<import plugin="org.eclipse.debug.core" version="3.2.0" match="compatible"/>
<import plugin="org.eclipse.pde.core" version="3.2.0" match="compatible"/>
<import plugin="org.eclipse.jdt.debug" version="3.2.0" match="compatible"/>
<import plugin="org.eclipse.help.base" version="4.0.0" match="compatible"/>
<import plugin="org.eclipse.equinox.app" version="1.3.0" match="compatible"/>
<import plugin="org.eclipse.e4.ui.workbench" version="0.10.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.e4.ui.services" version="0.1.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.e4.ui.css.swt" version="0.9.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.e4.ui.workbench3" version="0.11.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.core.jobs" version="3.5.0" match="compatible"/>
<import plugin="org.eclipse.core.filesystem" version="1.3.0" match="greaterOrEqual"/>
<import plugin="org.apache.lucene.analysis" version="3.5.0" match="compatible"/>
<import plugin="org.eclipse.core.net" version="1.2.200" match="greaterOrEqual"/>
<import plugin="org.apache.batik.css" version="1.7.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.emf.mwe.utils" version="1.3.0" match="greaterOrEqual"/>
</requires>
<includes
id="org.eclipse.xtext.redist"
version="0.0.0"/>
<includes
id="org.eclipse.xtext.ui"
version="0.0.0"/>
<includes
id="org.eclipse.help"
version="0.0.0"/>
<plugin
id="org.eclipse.e4.core.di.extensions"
@ -433,13 +54,6 @@
version="0.0.0"
unpack="false"/>
<plugin
id="org.apache.batik.util"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.equinox.p2.director.app"
download-size="0"
@ -516,28 +130,6 @@
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.jdt.compiler.tool"
download-size="0"
install-size="0"
version="0.0.0"
fragment="true"
unpack="false"/>
<plugin
id="org.eclipse.pde.ui"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="com.minres.rdl.ide"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.equinox.p2.repository"
download-size="0"
@ -657,13 +249,6 @@
version="0.0.0"
unpack="false"/>
<plugin
id="com.minres.rdl.ui"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.ui.workbench"
download-size="0"
@ -678,13 +263,6 @@
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.pde.core"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.emf.codegen"
download-size="0"
@ -713,13 +291,6 @@
version="0.0.0"
unpack="false"/>
<plugin
id="javax.xml"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.core.jobs"
download-size="0"
@ -784,13 +355,6 @@
version="0.0.0"
unpack="false"/>
<plugin
id="org.apache.batik.css"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.emf.common"
download-size="0"
@ -812,20 +376,6 @@
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.xtext.ui.ecore"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.jdt.junit"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.xtext"
download-size="0"
@ -909,19 +459,6 @@
install-size="0"
version="0.0.0"/>
<plugin
id="org.eclipse.jdt.debug"
download-size="0"
install-size="0"
version="0.0.0"/>
<plugin
id="com.minres.rdl.product"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.emf.mwe2.language"
download-size="0"
@ -1006,13 +543,6 @@
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.jdt.launching"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.emf.mwe2.runtime"
download-size="0"
@ -1111,13 +641,6 @@
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.jdt.debug.ui"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.equinox.p2.operations"
download-size="0"
@ -1125,13 +648,6 @@
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.jdt.junit.runtime"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.ant.launching"
download-size="0"
@ -1313,13 +829,6 @@
version="0.0.0"
unpack="false"/>
<plugin
id="com.minres.rdl"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.ui.navigator.resources"
download-size="0"
@ -1348,13 +857,6 @@
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.xtext.ui.codetemplates.ui"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.e4.ui.di"
download-size="0"
@ -1362,13 +864,6 @@
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.xtext.ui"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.ui.forms"
download-size="0"
@ -1411,13 +906,6 @@
version="0.0.0"
unpack="false"/>
<plugin
id="org.apache.batik.util.gui"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.e4.emf.xpath"
download-size="0"
@ -1446,13 +934,6 @@
version="0.0.0"
unpack="false"/>
<plugin
id="org.apache.lucene.analysis"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.emf.edit.ui"
download-size="0"
@ -1481,13 +962,6 @@
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.jdt.ui"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.w3c.dom.svg"
download-size="0"
@ -1509,13 +983,6 @@
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.jdt.junit.core"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.e4.ui.workbench"
download-size="0"
@ -1600,12 +1067,6 @@
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.pde.build"
download-size="0"
install-size="0"
version="0.0.0"/>
<plugin
id="org.eclipse.ant.core"
download-size="0"
@ -1627,13 +1088,6 @@
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.xtext.ui.shared"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.emf.ecore.editor"
download-size="0"
@ -1690,13 +1144,6 @@
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.jdt.core.manipulation"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.ui.trace"
download-size="0"
@ -1718,13 +1165,6 @@
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.pde.launching"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.apache.commons.lang"
download-size="0"
@ -1739,13 +1179,6 @@
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.xtext.ui.codetemplates"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.xtend.lib"
download-size="0"
@ -1767,14 +1200,6 @@
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.jdt.compiler.apt"
download-size="0"
install-size="0"
version="0.0.0"
fragment="true"
unpack="false"/>
<plugin
id="org.eclipse.osgi.services"
download-size="0"
@ -1817,13 +1242,6 @@
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.jdt.core"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.ui.editors"
download-size="0"
@ -1901,4 +1319,18 @@
version="0.0.0"
unpack="false"/>
<plugin
id="org.antlr.runtime"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.ui.genericeditor"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
</feature>

View File

@ -8,7 +8,26 @@
</parent>
<artifactId>com.minres.rdl.platform.feature</artifactId>
<packaging>eclipse-feature</packaging>
<version>1.1.0-SNAPSHOT</version>
<build>
<plugins>
<plugin>
<groupId>org.eclipse.tycho.extras</groupId>
<artifactId>tycho-source-feature-plugin</artifactId>
<version>${tycho-version}</version>
<executions>
<execution>
<id>source-feature</id>
<phase>none</phase>
<!-- <goals>
<goal>source-feature</goal>
</goals>
--> </execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
</dependencies>

View File

@ -2,7 +2,8 @@
<feature
id="com.minres.rdl.product.feature"
label="RDL Feature "
version="1.0.0.qualifier">
version="1.0.0.qualifier"
provider-name="MINRES Technologies GmbH">
<requires>
<import feature="com.minres.rdl.feature" version="1.0.0.qualifier"/>

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>com.minres.rdl.product.releng</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.m2e.core.maven2Nature</nature>
</natures>
</projectDescription>

View File

@ -0,0 +1,4 @@
activeProfiles=
eclipse.preferences.version=1
resolveWorkspaceProjects=true
version=1

View File

@ -1,8 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<?pde version="3.5"?>
<product name="RDL" uid="com.minres.rdl.product.product" id="com.minres.rdl.product.product" application="org.eclipse.ui.ide.workbench" version="1.0.0.qualifier" useFeatures="true" includeLaunchers="true">
<product name="RDL Editor" uid="com.minres.rdl.product.product" id="com.minres.rdl.product.product" application="org.eclipse.ui.ide.workbench" version="1.2.1.qualifier" useFeatures="true" includeLaunchers="true">
<configIni use="default">
</configIni>
@ -14,14 +13,12 @@
<windowImages/>
<launcher>
<solaris/>
<launcher name="rdl-editor">
<win useIco="false">
<bmp/>
</win>
</launcher>
<vm>
</vm>
@ -103,9 +100,19 @@
</plugins>
<features>
<feature id="com.minres.rdl.platform.feature" version="1.0.0.qualifier"/>
<feature id="com.minres.rdl.product.feature" version="1.0.0.qualifier"/>
<feature id="com.minres.rdl.feature" version="1.0.0.qualifier"/>
<feature id="com.minres.rdl.platform.feature"/>
<feature id="com.minres.rdl.product.feature"/>
<feature id="com.minres.rdl.feature"/>
<feature id="org.eclipse.emf.ecore"/>
<feature id="org.eclipse.rcp"/>
<feature id="org.eclipse.emf.common"/>
<feature id="org.eclipse.xtext.runtime"/>
<feature id="org.eclipse.e4.rcp"/>
<feature id="org.eclipse.xtext.xbase"/>
<feature id="org.eclipse.help"/>
<feature id="org.eclipse.xtext.redist"/>
<feature id="org.eclipse.xtext.xbase.lib"/>
<feature id="org.eclipse.xtext.ui"/>
</features>
<configurations>

View File

@ -0,0 +1,52 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>com.minres.rdl.product.releng</artifactId>
<packaging>eclipse-repository</packaging>
<name>RDL Editor</name>
<version>1.2.1-SNAPSHOT</version>
<parent>
<version>1.0.0-SNAPSHOT</version>
<groupId>com.minres.rdl</groupId>
<artifactId>com.minres.rdl.parent</artifactId>
</parent>
<build>
<plugins>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-p2-director-plugin</artifactId>
<version>${tycho-version}</version>
<configuration>
<formats>
<win32>zip</win32>
<linux>tar.gz</linux>
<macosx>tar.gz</macosx>
</formats>
<products>
<product>
<id>com.minres.rdl.product.product</id>
<archiveFileName>RDL-Editor-${project.version}</archiveFileName>
</product>
</products>
</configuration>
<executions>
<execution>
<id>materialize-products</id>
<goals>
<goal>materialize-products</goal>
</goals>
</execution>
<execution>
<id>archive-products</id>
<goals>
<goal>archive-products</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>

View File

@ -3,5 +3,5 @@
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="output" path="bin"/>
<classpathentry kind="output" path="target/classes"/>
</classpath>

View File

@ -2,7 +2,8 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: RDL Editor
Bundle-SymbolicName: com.minres.rdl.product;singleton:=true
Bundle-Version: 1.0.0.qualifier
Bundle-Vendor: MINRES
Bundle-Version: 1.1.1.qualifier
Bundle-Vendor: MINRES Technologies GmbH
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Require-Bundle: org.eclipse.core.runtime;bundle-version="3.12.0"
Automatic-Module-Name: com.minres.rdl.product

View File

@ -1,5 +1,4 @@
source.. = src/
output.. = bin/
bin.includes = META-INF/,\
.,\
plugin.xml

View File

@ -6,10 +6,10 @@
point="org.eclipse.core.runtime.products">
<product
application="org.eclipse.ui.ide.workbench"
name="RDL">
name="RDL Editor">
<property
name="appName"
value="RDL">
value="RDL Editor">
</property>
</product>
</extension>

View File

@ -7,15 +7,6 @@
<version>1.0.0-SNAPSHOT</version>
</parent>
<artifactId>com.minres.rdl.product</artifactId>
<packaging>eclipse-application</packaging>
<build>
<plugins>
<plugin>
<groupId>org.eclipse.xtend</groupId>
<artifactId>xtend-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<packaging>eclipse-plugin</packaging>
<version>1.1.1-SNAPSHOT</version>
</project>

View File

@ -1,7 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<site>
<feature id="com.minres.rdl.feature" version="0.0.0">
<category name="main"/>
</feature>
<category-def name="main" label="RDL"/>
<feature id="com.minres.rdl.feature" version="0.0.0">
<category name="main"/>
</feature>
<feature id="com.minres.rdl.feature.source" version="0.0.0">
<category name="main.source"/>
</feature>
<category-def name="main" label="RDL"/>
<category-def name="main.source" label="RDL (Sources)"/>
</site>

View File

@ -7,6 +7,7 @@
<version>1.0.0-SNAPSHOT</version>
</parent>
<artifactId>com.minres.rdl.repository</artifactId>
<version>1.2.0-SNAPSHOT</version>
<packaging>eclipse-repository</packaging>
<build>

View File

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" output="target/classes" path="src/main/java">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry exported="true" kind="con" path="GROOVY_SUPPORT"/>
<classpathentry exported="true" kind="con" path="GROOVY_DSL_SUPPORT"/>
<classpathentry kind="output" path="target/classes"/>
</classpath>

View File

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>com.minres.rdl.standalone</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.groovy.core.groovyNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.m2e.core.maven2Nature</nature>
</natures>
</projectDescription>

View File

@ -0,0 +1,2 @@
eclipse.preferences.version=1
encoding/<project>=UTF-8

View File

@ -0,0 +1,8 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
org.eclipse.jdt.core.compiler.source=1.8

View File

@ -0,0 +1,2 @@
eclipse.preferences.version=1
groovy.compiler.level=25

View File

@ -0,0 +1,4 @@
activeProfiles=
eclipse.preferences.version=1
resolveWorkspaceProjects=true
version=1

View File

@ -0,0 +1,20 @@
import static groovy.io.FileType.FILES
// Collect all jars.
def jars = []
def root = new File(project.getBasedir(), 'target/classes')
def libs = new File(project.getBasedir(), 'target/classes/lib')
libs.eachFileRecurse (FILES) { file ->
jars << root.toURI().relativize(file.toURI()).toString()
}
// Write the manifest file.
def manifest = new File(project.getBasedir(), 'target/classes/META-INF/MANIFEST.MF')
manifest.write ''
manifest << 'Manifest-Version: 1.0\n'
manifest << 'Class-Path: . ' + jars.join(' ') + '\n'
manifest << 'Rsrc-Main-Class: com.minres.rdl.generator.Main\n'
manifest << 'Main-Class: org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader\n'

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<site>
<bundle id="com.minres.rdl" version="0.0.0"/>
<category-def name="main" label="RDL"/>
</site>

View File

@ -0,0 +1,174 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>com.minres.rdl.parent</artifactId>
<groupId>com.minres.rdl</groupId>
<version>1.0.0-SNAPSHOT</version>
</parent>
<artifactId>com.minres.rdl.standalone</artifactId>
<version>1.2.0-SNAPSHOT</version>
<packaging>eclipse-repository</packaging>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-clean-plugin
</artifactId>
<versionRange>
[2.5,)
</versionRange>
<goals>
<goal>clean</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore></ignore>
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-p2-repository-plugin</artifactId>
<version>${tycho-version}</version>
<configuration>
<includeAllDependencies>true</includeAllDependencies>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.0.1</version>
<executions>
<execution>
<id>unpack</id>
<phase>package</phase>
<goals>
<goal>unpack</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>org.raisercostin</groupId>
<artifactId>eclipse-jarinjarloader</artifactId>
<version>1.3</version>
<type>jar</type>
<overWrite>false</overWrite>
<outputDirectory>${project.build.directory}/classes</outputDirectory>
</artifactItem>
<artifactItem>
<groupId>com.minres.rdl</groupId>
<artifactId>com.minres.rdl</artifactId>
<version>1.0.0-SNAPSHOT</version>
<type>jar</type>
<overWrite>false</overWrite>
<outputDirectory>${project.build.directory}/classes</outputDirectory>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version>
<executions>
<execution>
<id>copy-resources</id>
<phase>package</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/classes/lib</outputDirectory>
<resources>
<resource>
<directory>${project.build.directory}/repository/plugins</directory>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.alexecollins.maven.plugin</groupId>
<artifactId>script-maven-plugin</artifactId>
<version>1.0.0</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<language>groovy</language>
<scriptFile>assemble.groovy</scriptFile>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-bsf</artifactId>
<version>2.4.3</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<jar manifest="${project.build.directory}/classes/META-INF/MANIFEST.MF"
destfile="${project.build.directory}/${project.name}-${project.version}.jar">
<fileset dir="${project.build.directory}/classes" />
</jar>
</target>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>jcenter-bintray</id>
<name>Bintray JCenter Maven Repository</name>
<layout>default</layout>
<url>https://jcenter.bintray.com/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
</project>

View File

@ -1,25 +1,33 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?pde version="3.8"?><target name="com.minres.rdl.target" sequenceNumber="3">
<?pde version="3.8"?><target name="com.minres.rdl.target" sequenceNumber="1">
<locations>
<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
<unit id="org.eclipse.emf.mwe2.launcher.feature.group" version="0.0.0"/>
<repository location="http://download.eclipse.org/modeling/emft/mwe/updates/releases/2.9.0/"/>
</location>
<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
<unit id="org.eclipse.xtext.sdk.feature.group" version="0.0.0"/>
<repository location="http://download.eclipse.org/modeling/tmf/xtext/updates/releases/2.12.0/"/>
</location>
<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
<unit id="org.eclipse.equinox.sdk.feature.group" version="0.0.0"/>
<unit id="org.eclipse.jdt.feature.group" version="0.0.0"/>
<unit id="org.eclipse.platform.feature.group" version="0.0.0"/>
<unit id="org.eclipse.pde.feature.group" version="0.0.0"/>
<unit id="org.eclipse.draw2d.feature.group" version="0.0.0"/>
<unit id="org.eclipse.emf.sdk.feature.group" version="0.0.0"/>
<unit id="org.eclipse.equinox.executable.feature.group" version="0.0.0"/>
<unit id="org.eclipse.jdt.feature.group" version="0.0.0"/>
<unit id="org.eclipse.pde.feature.group" version="0.0.0"/>
<unit id="org.eclipse.platform.feature.group" version="0.0.0"/>
<unit id="org.eclipse.xpand" version="0.0.0"/>
<unit id="org.eclipse.xtend" version="0.0.0"/>
<unit id="org.eclipse.xtend.typesystem.emf" version="0.0.0"/>
<repository location="http://download.eclipse.org/releases/neon/201606221000/"/>
<repository location="http://download.eclipse.org/releases/photon"/>
</location>
<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
<unit id="org.eclipse.emf.mwe2.launcher.feature.group" version="0.0.0"/>
<repository location="http://download.eclipse.org/modeling/emft/mwe/updates/releases/2.9.1/"/>
</location>
<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
<unit id="org.eclipse.xtext.sdk.feature.group" version="0.0.0"/>
<repository location="http://download.eclipse.org/modeling/tmf/xtext/updates/releases/2.14.0/"/>
</location>
<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
<unit id="com.google.gson" version="2.7.0.v20170129-0911"/>
<unit id="org.antlr.runtime" version="3.2.0.v201101311130"/>
<unit id="org.junit" version="4.12.0.v201504281640"/>
<unit id="org.objectweb.asm" version="6.1.1.v20180414-0329"/>
<unit id="org.objectweb.asm.tree" version="6.1.1.v20180414-0329"/>
<repository location="http://download.eclipse.org/tools/orbit/downloads/drops/S20180504181223/repository"/>
</location>
</locations>
</target>

View File

@ -3,6 +3,7 @@
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="src-gen"/>
<classpathentry kind="src" path="xtend-gen"/>
<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="output" path="target/classes"/>

View File

@ -1,4 +1,5 @@
Manifest-Version: 1.0
Automatic-Module-Name: com.minres.rdl.tests
Bundle-ManifestVersion: 2
Bundle-Name: com.minres.rdl.tests
Bundle-Vendor: My Company
@ -9,13 +10,7 @@ Require-Bundle: com.minres.rdl,
org.junit;bundle-version="4.12.0",
org.eclipse.xtext.testing,
org.eclipse.xtext.xbase.testing,
org.eclipse.xtext.xbase.lib
org.eclipse.xtext.xbase.lib;bundle-version="2.14.0"
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Export-Package: com.minres.rdl.tests;x-internal=true
Import-Package: org.hamcrest.core,
org.junit;version="4.5.0",
org.junit.runners.model;version="4.5.0",
org.junit.runner;version="4.5.0",
org.junit.runners;version="4.5.0",
org.junit.runner.manipulation;version="4.5.0",
org.junit.runner.notification;version="4.5.0"

View File

@ -18,7 +18,7 @@
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-surefire-plugin</artifactId>
<version>${tycho-version}</version>
<!-- <version>${tycho-version}</version> -->
<configuration>
<failIfNoTests>false</failIfNoTests>
</configuration>

View File

@ -1,5 +1,5 @@
/*
* generated by Xtext 2.12.0
* generated by Xtext 2.14.0
*/
package com.minres.rdl.tests;

View File

@ -1,5 +1,5 @@
/*
* generated by Xtext 2.12.0
* generated by Xtext 2.14.0
*/
package com.minres.rdl.tests
@ -21,9 +21,53 @@ class RDLParsingTest {
@Test
def void loadModel() {
val result = parseHelper.parse('''
Hello Xtext!
regfile uart_regs {
reg {
name="txdata";
desc="Transmit data register";
field {} data[7:0];
field {} full[31:31];
} txdata @0x00;
reg {
name="rxdata";
desc="Receive data register";
field {} data[7:0];
field {} empty[31:31];
}rxdata @0x04;
reg {
name="txctrl";
desc="Transmit control register";
field {} txen[1];
field {} nstop[1];
field {} txcnt[18:16];
}txctrl @0x08;
reg {
name="rxctrl";
desc="Receive control register";
field {} rxen[1];
field {} rxcnt[18:16];
}rxctrl @0x0C;
reg {
name="ie";
desc="UART interrupt enable";
field{} txwm[1];
field{} rxwm[1];
}ie @0x10;
reg {
name="ip";
desc="UART Interrupt pending";
field{} txwm[1];
field{} rxwm[1];
} ip @0x14;
reg {
name="div";
desc="Baud rate divisor";
field{} div[16];
} div @0x18;
};
''')
Assert.assertNotNull(result)
Assert.assertTrue(result.eResource.errors.isEmpty)
val errors = result.eResource.errors
Assert.assertTrue('''Unexpected errors: «errors.join(", ")»''', errors.isEmpty)
}
}

View File

@ -1,16 +1,19 @@
/**
* generated by Xtext 2.12.0
* generated by Xtext 2.14.0
*/
package com.minres.rdl.tests;
import com.google.inject.Inject;
import com.minres.rdl.rdl.Root;
import com.minres.rdl.tests.RDLInjectorProvider;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.xtend2.lib.StringConcatenation;
import org.eclipse.xtext.testing.InjectWith;
import org.eclipse.xtext.testing.XtextRunner;
import org.eclipse.xtext.testing.util.ParseHelper;
import org.eclipse.xtext.xbase.lib.Exceptions;
import org.eclipse.xtext.xbase.lib.IterableExtensions;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
@ -26,11 +29,144 @@ public class RDLParsingTest {
public void loadModel() {
try {
StringConcatenation _builder = new StringConcatenation();
_builder.append("Hello Xtext!");
_builder.append("regfile uart_regs {");
_builder.newLine();
_builder.append("\t");
_builder.append("reg {");
_builder.newLine();
_builder.append("\t\t");
_builder.append("name=\"txdata\";");
_builder.newLine();
_builder.append("\t\t");
_builder.append("desc=\"Transmit data register\";");
_builder.newLine();
_builder.append("\t\t");
_builder.append("field {} data[7:0];");
_builder.newLine();
_builder.append("\t\t");
_builder.append("field {} full[31:31];");
_builder.newLine();
_builder.append("\t");
_builder.append("} txdata @0x00;");
_builder.newLine();
_builder.append("\t");
_builder.append("reg {");
_builder.newLine();
_builder.append("\t\t");
_builder.append("name=\"rxdata\";");
_builder.newLine();
_builder.append("\t\t");
_builder.append("desc=\"Receive data register\";");
_builder.newLine();
_builder.append("\t\t");
_builder.append("field {} data[7:0];");
_builder.newLine();
_builder.append("\t\t");
_builder.append("field {} empty[31:31];");
_builder.newLine();
_builder.append("\t");
_builder.append("}rxdata @0x04;");
_builder.newLine();
_builder.append("\t");
_builder.append("reg {");
_builder.newLine();
_builder.append("\t\t");
_builder.append("name=\"txctrl\";");
_builder.newLine();
_builder.append("\t\t");
_builder.append("desc=\"Transmit control register\";");
_builder.newLine();
_builder.append("\t\t");
_builder.append("field {} txen[1];");
_builder.newLine();
_builder.append("\t\t");
_builder.append("field {} nstop[1];");
_builder.newLine();
_builder.append("\t\t");
_builder.append("field {} txcnt[18:16];");
_builder.newLine();
_builder.append("\t");
_builder.append("}txctrl @0x08;");
_builder.newLine();
_builder.append("\t");
_builder.append("reg {");
_builder.newLine();
_builder.append("\t\t");
_builder.append("name=\"rxctrl\";");
_builder.newLine();
_builder.append("\t\t");
_builder.append("desc=\"Receive control register\";");
_builder.newLine();
_builder.append("\t\t");
_builder.append("field {} rxen[1];");
_builder.newLine();
_builder.append("\t\t");
_builder.append("field {} rxcnt[18:16];");
_builder.newLine();
_builder.append("\t");
_builder.append("}rxctrl @0x0C;");
_builder.newLine();
_builder.append("\t");
_builder.append("reg {");
_builder.newLine();
_builder.append("\t\t");
_builder.append("name=\"ie\";");
_builder.newLine();
_builder.append("\t\t");
_builder.append("desc=\"UART interrupt enable\";");
_builder.newLine();
_builder.append("\t\t");
_builder.append("field{} txwm[1];");
_builder.newLine();
_builder.append("\t\t");
_builder.append("field{} rxwm[1];");
_builder.newLine();
_builder.append("\t");
_builder.append("}ie @0x10;");
_builder.newLine();
_builder.append("\t");
_builder.append("reg {");
_builder.newLine();
_builder.append("\t\t");
_builder.append("name=\"ip\";");
_builder.newLine();
_builder.append("\t\t");
_builder.append("desc=\"UART Interrupt pending\";");
_builder.newLine();
_builder.append("\t\t");
_builder.append("field{} txwm[1];");
_builder.newLine();
_builder.append("\t\t");
_builder.append("field{} rxwm[1];");
_builder.newLine();
_builder.append("\t");
_builder.append("} ip @0x14;");
_builder.newLine();
_builder.append("\t");
_builder.append("reg {");
_builder.newLine();
_builder.append("\t\t");
_builder.append("name=\"div\";");
_builder.newLine();
_builder.append("\t\t");
_builder.append("desc=\"Baud rate divisor\";");
_builder.newLine();
_builder.append("\t\t");
_builder.append("field{} div[16];");
_builder.newLine();
_builder.append("\t");
_builder.append("} div @0x18;");
_builder.newLine();
_builder.append("};");
_builder.newLine();
final Root result = this.parseHelper.parse(_builder);
Assert.assertNotNull(result);
Assert.assertTrue(result.eResource().getErrors().isEmpty());
final EList<Resource.Diagnostic> errors = result.eResource().getErrors();
StringConcatenation _builder_1 = new StringConcatenation();
_builder_1.append("Unexpected errors: ");
String _join = IterableExtensions.join(errors, ", ");
_builder_1.append(_join);
Assert.assertTrue(_builder_1.toString(), errors.isEmpty());
} catch (Throwable _e) {
throw Exceptions.sneakyThrow(_e);
}

View File

@ -3,6 +3,7 @@
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="src-gen"/>
<classpathentry kind="src" path="xtend-gen"/>
<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="output" path="target/classes"/>

View File

@ -1,4 +1,5 @@
Manifest-Version: 1.0
Automatic-Module-Name: com.minres.rdl.ui.tests
Bundle-ManifestVersion: 2
Bundle-Name: com.minres.rdl.ui.tests
Bundle-Vendor: My Company
@ -15,10 +16,4 @@ Require-Bundle: com.minres.rdl.ui,
org.eclipse.ui.workbench;resolution:=optional
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Export-Package: com.minres.rdl.ui.tests;x-internal=true
Import-Package: org.hamcrest.core,
org.junit;version="4.5.0",
org.junit.runners.model;version="4.5.0",
org.junit.runner;version="4.5.0",
org.junit.runners;version="4.5.0",
org.junit.runner.manipulation;version="4.5.0",
org.junit.runner.notification;version="4.5.0"

View File

@ -18,7 +18,6 @@
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-surefire-plugin</artifactId>
<version>${tycho-version}</version>
<configuration>
<failIfNoTests>false</failIfNoTests>
<useUIHarness>true</useUIHarness>
@ -45,18 +44,4 @@
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>testing-on-mac</id>
<activation>
<os>
<family>mac</family>
</os>
</activation>
<properties>
<tycho.testArgLine>-XstartOnFirstThread</tycho.testArgLine>
</properties>
</profile>
</profiles>
</project>

View File

@ -1,5 +1,5 @@
/*
* generated by Xtext 2.12.0
* generated by Xtext 2.14.0
*/
package com.minres.rdl.ui.tests;

View File

@ -0,0 +1 @@
/plugin.xml_gen

View File

@ -1,8 +1,9 @@
Manifest-Version: 1.0
Automatic-Module-Name: com.minres.rdl.ui
Bundle-ManifestVersion: 2
Bundle-Name: com.minres.rdl.ui
Bundle-Vendor: My Company
Bundle-Version: 1.0.0.qualifier
Bundle-Vendor: MINRES Technologies GmbH
Bundle-Version: 1.2.0.qualifier
Bundle-SymbolicName: com.minres.rdl.ui; singleton:=true
Bundle-ActivationPolicy: lazy
Require-Bundle: com.minres.rdl,
@ -15,11 +16,15 @@ Require-Bundle: com.minres.rdl,
org.eclipse.ui,
org.eclipse.compare,
org.eclipse.xtext.builder,
org.eclipse.xtext.xbase.lib;bundle-version="2.14.0",
org.eclipse.xtend.lib;resolution:=optional,
org.eclipse.xtext.xbase.lib
org.eclipse.core.runtime,
org.eclipse.core.resources,
org.eclipse.ui.forms
Import-Package: org.apache.log4j
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Export-Package: com.minres.rdl.ui.internal,
com.minres.rdl.ui.contentassist,
com.minres.rdl.ui.quickfix,
com.minres.rdl.ui.contentassist
com.minres.rdl.ui.wizard
Bundle-Activator: com.minres.rdl.ui.internal.RdlActivator

View File

@ -3,5 +3,6 @@ source.. = src/,\
xtend-gen/
bin.includes = .,\
META-INF/,\
plugin.xml
plugin.xml,\
icons/
bin.excludes = **/*.xtend

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 493 B

View File

@ -97,6 +97,12 @@
name="Templates">
<keywordReference id="com.minres.rdl.ui.keyword_RDL"/>
</page>
<page category="com.minres.rdl.RDL"
class="com.minres.rdl.ui.RDLExecutableExtensionFactory:com.minres.rdl.ui.preferences.RdlPreferencePage"
id="com.minres.rdl.RDL.preferences"
name="Generator">
<keywordReference id="com.minres.rdl.ui.keyword_RDL"/>
</page>
</extension>
<extension
point="org.eclipse.ui.propertyPages">
@ -204,6 +210,15 @@
</activeWhen>
</handler>
</extension>
<extension point="org.eclipse.core.contenttype.contentTypes">
<content-type
base-type="org.eclipse.core.runtime.text"
file-extensions="rdl"
id="com.minres.rdl.RDL.contenttype"
name="RDL File"
priority="normal">
</content-type>
</extension>
<!-- adding resource factories -->
<extension
point="org.eclipse.emf.ecore.extension_parser">
@ -240,6 +255,15 @@
<super type="org.eclipse.xtext.ui.check.expensive"/>
<persistent value="true"/>
</extension>
<extension point="org.eclipse.ui.preferencePages">
<page
category="com.minres.rdl.RDL"
class="com.minres.rdl.ui.RDLExecutableExtensionFactory:org.eclipse.xtext.ui.validation.ValidatorPreferencePage"
id="com.minres.rdl.RDL.validator.preferencePage"
name="Errors/Warnings">
<keywordReference id="com.minres.rdl.ui.keyword_RDL"/>
</page>
</extension>
<extension point="org.eclipse.xtext.builder.participant">
<participant
class="com.minres.rdl.ui.RDLExecutableExtensionFactory:org.eclipse.xtext.builder.IXtextBuilderParticipant"
@ -388,12 +412,18 @@
class="com.minres.rdl.ui.RDLExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"
extensions="rdl">
</viewer>
<contentTypeBinding
contentTypeId="com.minres.rdl.RDL.contenttype"
contentViewerId="com.minres.rdl.RDL.compare.contentViewers" />
</extension>
<extension point="org.eclipse.compare.contentMergeViewers">
<viewer id="com.minres.rdl.RDL.compare.contentMergeViewers"
class="com.minres.rdl.ui.RDLExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"
extensions="rdl" label="RDL Compare">
</viewer>
<contentTypeBinding
contentTypeId="com.minres.rdl.RDL.contenttype"
contentMergeViewerId="com.minres.rdl.RDL.compare.contentMergeViewers" />
</extension>
<extension point="org.eclipse.ui.editors.documentProviders">
<provider id="com.minres.rdl.RDL.editors.documentProviders"
@ -407,4 +437,30 @@
type="text">
</fileTypes>
</extension>
<extension
point="org.eclipse.ui.newWizards">
<category id="com.minres.category" name="MINRES">
</category>
<wizard
category="com.minres.category"
class="com.minres.rdl.ui.RDLExecutableExtensionFactory:org.eclipse.xtext.ui.wizard.template.TemplateNewProjectWizard"
id="com.minres.rdl.ui.wizard.RDLNewProjectWizard"
name="RDL Project"
icon="icons/new_RDL_proj.gif"
project="true">
</wizard>
</extension>
<extension
point="org.eclipse.xtext.ui.projectTemplate">
<projectTemplateProvider
class="com.minres.rdl.ui.wizard.RDLProjectTemplateProvider"
grammarName="com.minres.rdl.RDL">
</projectTemplateProvider>
</extension>
<extension
point="org.eclipse.ui.perspectiveExtensions">
<perspectiveExtension targetID="org.eclipse.ui.resourcePerspective">
<newWizardShortcut id="com.minres.rdl.ui.wizard.RDLNewProjectWizard"/>
</perspectiveExtension>
</extension>
</plugin>

View File

@ -18,4 +18,5 @@
</plugins>
</build>
<version>1.2.0-SNAPSHOT</version>
</project>

View File

@ -1,5 +1,5 @@
/*
* generated by Xtext 2.12.0
* generated by Xtext 2.14.0
*/
package com.minres.rdl.ui;
@ -14,6 +14,7 @@ import com.minres.rdl.ui.labeling.RDLDescriptionLabelProvider;
import com.minres.rdl.ui.labeling.RDLLabelProvider;
import com.minres.rdl.ui.outline.RDLOutlineTreeProvider;
import com.minres.rdl.ui.quickfix.RDLQuickfixProvider;
import com.minres.rdl.validation.RDLValidatorConfigurationBlock;
import org.eclipse.compare.IViewerCreator;
import org.eclipse.core.resources.IWorkspaceRoot;
import org.eclipse.core.resources.ResourcesPlugin;
@ -58,6 +59,8 @@ import org.eclipse.xtext.ui.editor.contentassist.IProposalConflictHelper;
import org.eclipse.xtext.ui.editor.contentassist.PrefixMatcher;
import org.eclipse.xtext.ui.editor.contentassist.antlr.AntlrProposalConflictHelper;
import org.eclipse.xtext.ui.editor.contentassist.antlr.DelegatingContentAssistContextFactory;
import org.eclipse.xtext.ui.editor.formatting.IContentFormatterFactory;
import org.eclipse.xtext.ui.editor.formatting2.ContentFormatterFactory;
import org.eclipse.xtext.ui.editor.outline.IOutlineTreeProvider;
import org.eclipse.xtext.ui.editor.outline.impl.IOutlineTreeStructureProvider;
import org.eclipse.xtext.ui.editor.preferences.IPreferenceStoreInitializer;
@ -76,6 +79,9 @@ import org.eclipse.xtext.ui.refactoring.ui.IRenameSupport;
import org.eclipse.xtext.ui.refactoring.ui.RefactoringPreferences;
import org.eclipse.xtext.ui.resource.ResourceServiceDescriptionLabelProvider;
import org.eclipse.xtext.ui.shared.Access;
import org.eclipse.xtext.ui.validation.AbstractValidatorConfigurationBlock;
import org.eclipse.xtext.ui.wizard.IProjectCreator;
import org.eclipse.xtext.ui.wizard.template.DefaultTemplateProjectCreator;
/**
* Manual modifications go to {@link RDLUiModule}.
@ -133,6 +139,11 @@ public abstract class AbstractRDLUiModule extends DefaultUiModule {
binder.bind(InternalRDLLexer.class).toProvider(LexerProvider.create(InternalRDLLexer.class));
}
// contributed by org.eclipse.xtext.xtext.generator.validation.ValidatorFragment2
public Class<? extends AbstractValidatorConfigurationBlock> bindAbstractValidatorConfigurationBlock() {
return RDLValidatorConfigurationBlock.class;
}
// contributed by org.eclipse.xtext.xtext.generator.exporting.QualifiedNamesFragment2
public Class<? extends PrefixMatcher> bindPrefixMatcher() {
return FQNPrefixMatcher.class;
@ -180,6 +191,11 @@ public abstract class AbstractRDLUiModule extends DefaultUiModule {
.to(BuilderPreferenceAccess.Initializer.class);
}
// contributed by org.eclipse.xtext.xtext.generator.formatting.Formatter2Fragment2
public Class<? extends IContentFormatterFactory> bindIContentFormatterFactory() {
return ContentFormatterFactory.class;
}
// contributed by org.eclipse.xtext.xtext.generator.ui.labeling.LabelProviderFragment2
public Class<? extends ILabelProvider> bindILabelProvider() {
return RDLLabelProvider.class;
@ -210,6 +226,13 @@ public abstract class AbstractRDLUiModule extends DefaultUiModule {
return RDLProposalProvider.class;
}
// contributed by org.eclipse.xtext.xtext.generator.ui.refactoring.RefactorElementNameFragment2
public void configureIPreferenceStoreInitializer(Binder binder) {
binder.bind(IPreferenceStoreInitializer.class)
.annotatedWith(Names.named("RefactoringPreferences"))
.to(RefactoringPreferences.Initializer.class);
}
// contributed by org.eclipse.xtext.xtext.generator.ui.refactoring.RefactorElementNameFragment2
public Class<? extends IRenameStrategy> bindIRenameStrategy() {
return DefaultRenameStrategy.class;
@ -220,13 +243,6 @@ public abstract class AbstractRDLUiModule extends DefaultUiModule {
return DefaultReferenceUpdater.class;
}
// contributed by org.eclipse.xtext.xtext.generator.ui.refactoring.RefactorElementNameFragment2
public void configureIPreferenceStoreInitializer(Binder binder) {
binder.bind(IPreferenceStoreInitializer.class)
.annotatedWith(Names.named("RefactoringPreferences"))
.to(RefactoringPreferences.Initializer.class);
}
// contributed by org.eclipse.xtext.xtext.generator.ui.refactoring.RefactorElementNameFragment2
public Class<? extends IRenameRefactoringProvider> bindIRenameRefactoringProvider() {
return DefaultRenameRefactoringProvider.class;
@ -278,6 +294,11 @@ public abstract class AbstractRDLUiModule extends DefaultUiModule {
binder.bind(String.class).annotatedWith(Names.named(UIBindings.COMPARE_VIEWER_TITLE)).toInstance("RDL Compare");
}
// contributed by org.eclipse.xtext.xtext.generator.ui.projectWizard.TemplateProjectWizardFragment
public Class<? extends IProjectCreator> bindIProjectCreator() {
return DefaultTemplateProjectCreator.class;
}
// contributed by org.eclipse.xtext.xtext.generator.exporting.SimpleNamesFragment2
public Class<? extends IDependentElementsCalculator> bindIDependentElementsCalculator() {
return DefaultDependentElementsCalculator.class;

View File

@ -1,10 +1,11 @@
/*
* generated by Xtext 2.12.0
* generated by Xtext 2.14.0
*/
package com.minres.rdl.ui;
import com.google.inject.Injector;
import com.minres.rdl.ui.internal.RdlActivator;
import org.eclipse.core.runtime.Platform;
import org.eclipse.xtext.ui.guice.AbstractGuiceAwareExecutableExtensionFactory;
import org.osgi.framework.Bundle;
@ -16,12 +17,13 @@ public class RDLExecutableExtensionFactory extends AbstractGuiceAwareExecutableE
@Override
protected Bundle getBundle() {
return RdlActivator.getInstance().getBundle();
return Platform.getBundle(RdlActivator.PLUGIN_ID);
}
@Override
protected Injector getInjector() {
return RdlActivator.getInstance().getInjector(RdlActivator.COM_MINRES_RDL_RDL);
RdlActivator activator = RdlActivator.getInstance();
return activator != null ? activator.getInjector(RdlActivator.COM_MINRES_RDL_RDL) : null;
}
}

View File

@ -1,5 +1,5 @@
/*
* generated by Xtext 2.12.0
* generated by Xtext 2.14.0
*/
package com.minres.rdl.ui.contentassist;
@ -28,7 +28,7 @@ public abstract class AbstractRDLProposalProvider extends AbstractJavaBasedConte
public void completeRoot_EnumDefinitions(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
}
public void completeRoot_NamedInstantiations(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
public void completeRoot_Instantiations(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
}
public void completeRoot_PropertyAssignments(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
@ -75,7 +75,7 @@ public abstract class AbstractRDLProposalProvider extends AbstractJavaBasedConte
public void completeComponentDefinition_ComponentDefinitions(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
}
public void completeComponentDefinition_NamedInstantiations(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
public void completeComponentDefinition_Instantiations(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
}
public void completeComponentDefinition_PropertyAssignments(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
@ -84,28 +84,19 @@ public abstract class AbstractRDLProposalProvider extends AbstractJavaBasedConte
public void completeComponentDefinition_EnumDefinitions(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
}
public void completeComponentDefinition_ImmediateInstantiation(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
public void completeInstantiation_InstanceType(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
}
public void completeNamedInstantiation_External(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
// subclasses may override
}
public void completeNamedInstantiation_Internal(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
// subclasses may override
}
public void completeNamedInstantiation_Alias(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
public void completeInstantiation_Alias(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
}
public void completeNamedInstantiation_Component(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
public void completeInstantiation_ComponentRef(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
}
public void completeNamedInstantiation_ComponentInstances(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
public void completeInstantiation_Component(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
}
public void completeImmediateInstantiation_External(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
// subclasses may override
}
public void completeImmediateInstantiation_ComponentInstances(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
public void completeInstantiation_ComponentInstances(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
}
public void completeComponentInstance_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
@ -126,10 +117,10 @@ public abstract class AbstractRDLProposalProvider extends AbstractJavaBasedConte
public void completeComponentInstance_AddrMod(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
}
public void completeRange_Start(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
public void completeRange_Left(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
}
public void completeRange_End(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
public void completeRange_Right(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
}
public void completeRange_Size(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
@ -234,6 +225,12 @@ public abstract class AbstractRDLProposalProvider extends AbstractJavaBasedConte
public void completeEnumProperty_Value(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
}
public void completeEnumInstanceType_EXTERNAL(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
// subclasses may override
}
public void completeEnumInstanceType_INTERNAL(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
// subclasses may override
}
public void complete_Root(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
// subclasses may override
@ -262,10 +259,7 @@ public abstract class AbstractRDLProposalProvider extends AbstractJavaBasedConte
public void complete_ComponentDefinitionType(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
// subclasses may override
}
public void complete_NamedInstantiation(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
// subclasses may override
}
public void complete_ImmediateInstantiation(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
public void complete_Instantiation(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
// subclasses may override
}
public void complete_ComponentInstance(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
@ -334,6 +328,9 @@ public abstract class AbstractRDLProposalProvider extends AbstractJavaBasedConte
public void complete_EnumProperty(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
// subclasses may override
}
public void complete_EnumInstanceType(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
// subclasses may override
}
public void complete_ID(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
// subclasses may override
}

View File

@ -1,12 +1,11 @@
/*
* generated by Xtext 2.12.0
* generated by Xtext 2.14.0
*/
package com.minres.rdl.ui.internal;
import com.google.common.collect.Maps;
import com.google.inject.Guice;
import com.google.inject.Injector;
import com.google.inject.Module;
import com.minres.rdl.RDLRuntimeModule;
import com.minres.rdl.ui.RDLUiModule;
import java.util.Collections;
@ -23,6 +22,7 @@ import org.osgi.framework.BundleContext;
*/
public class RdlActivator extends AbstractUIPlugin {
public static final String PLUGIN_ID = "com.minres.rdl.ui";
public static final String COM_MINRES_RDL_RDL = "com.minres.rdl.RDL";
private static final Logger logger = Logger.getLogger(RdlActivator.class);
@ -60,10 +60,10 @@ public class RdlActivator extends AbstractUIPlugin {
protected Injector createInjector(String language) {
try {
Module runtimeModule = getRuntimeModule(language);
Module sharedStateModule = getSharedStateModule();
Module uiModule = getUiModule(language);
Module mergedModule = Modules2.mixin(runtimeModule, sharedStateModule, uiModule);
com.google.inject.Module runtimeModule = getRuntimeModule(language);
com.google.inject.Module sharedStateModule = getSharedStateModule();
com.google.inject.Module uiModule = getUiModule(language);
com.google.inject.Module mergedModule = Modules2.mixin(runtimeModule, sharedStateModule, uiModule);
return Guice.createInjector(mergedModule);
} catch (Exception e) {
logger.error("Failed to create injector for " + language);
@ -72,22 +72,23 @@ public class RdlActivator extends AbstractUIPlugin {
}
}
protected Module getRuntimeModule(String grammar) {
protected com.google.inject.Module getRuntimeModule(String grammar) {
if (COM_MINRES_RDL_RDL.equals(grammar)) {
return new RDLRuntimeModule();
}
throw new IllegalArgumentException(grammar);
}
protected Module getUiModule(String grammar) {
protected com.google.inject.Module getUiModule(String grammar) {
if (COM_MINRES_RDL_RDL.equals(grammar)) {
return new RDLUiModule(this);
}
throw new IllegalArgumentException(grammar);
}
protected Module getSharedStateModule() {
protected com.google.inject.Module getSharedStateModule() {
return new SharedStateModule();
}
}

View File

@ -0,0 +1,65 @@
/*
* generated by Xtext 2.14.0
*/
package com.minres.rdl.validation;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.jface.dialogs.IDialogSettings;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.xtext.ui.preferences.OptionsConfigurationBlock;
import org.eclipse.xtext.ui.validation.AbstractValidatorConfigurationBlock;
import org.eclipse.xtext.validation.SeverityConverter;
@SuppressWarnings("restriction")
public class RDLValidatorConfigurationBlock extends AbstractValidatorConfigurationBlock {
@Override
protected void fillSettingsPage(Composite composite, int nColumns, int defaultIndent) {
addComboBox(RDLConfigurableIssueCodesProvider.DEPRECATED_MODEL_PART, "Deprecated Model Part", composite, defaultIndent);
}
@Override
protected Job getBuildJob(IProject project) {
Job buildJob = new OptionsConfigurationBlock.BuildJob("Validation Settings Changed", project);
buildJob.setRule(ResourcesPlugin.getWorkspace().getRuleFactory().buildRule());
buildJob.setUser(true);
return buildJob;
}
@Override
protected String[] getFullBuildDialogStrings(boolean workspaceSettings) {
return new String[] { "Validation Settings Changed",
"Validation settings have changed. A full rebuild is required for changes to take effect. Do the full build now?" };
}
@Override
protected void validateSettings(String changedKey, String oldValue, String newValue) {
}
protected Combo addComboBox(String prefKey, String label, Composite parent, int indent) {
String[] values = new String[] { SeverityConverter.SEVERITY_ERROR, SeverityConverter.SEVERITY_WARNING,
SeverityConverter.SEVERITY_INFO, SeverityConverter.SEVERITY_IGNORE };
String[] valueLabels = new String[] { "Error", "Warning", "Info", "Ignore" };
Combo comboBox = addComboBox(parent, label, prefKey, indent, values, valueLabels);
return comboBox;
}
@Override
public void dispose() {
storeSectionExpansionStates(getDialogSettings());
super.dispose();
}
@Override
protected IDialogSettings getDialogSettings() {
IDialogSettings dialogSettings = super.getDialogSettings();
IDialogSettings section = dialogSettings.getSection("RDL");
if (section == null) {
return dialogSettings.addNewSection("RDL");
}
return section;
}
}

View File

@ -4,23 +4,19 @@ import org.eclipse.emf.ecore.EObject
import org.eclipse.xtext.ui.editor.hover.html.DefaultEObjectHoverProvider
import com.minres.rdl.rdl.ComponentDefinition
import com.minres.rdl.rdl.ComponentInstance
import com.minres.rdl.rdl.ImmediateInstantiation
import com.minres.rdl.rdl.NamedInstantiation
import com.minres.rdl.rdl.Instantiation
class RDLEObjectHoverProvider extends DefaultEObjectHoverProvider {
override protected String getFirstLine(EObject o) {
switch(o){
ComponentDefinition: return 'Component '+o.name+' of type '+o.type.literal
ComponentInstance: {
val parent = o.eContainer
if (parent instanceof ImmediateInstantiation) {
val compDef = parent.eContainer as ComponentDefinition
return compDef.type.literal+' '+o.name
} else if (parent instanceof NamedInstantiation) {
return parent.component.type.literal+' '+o.name
}
}
}
return super.getFirstLine(o)
}
override protected String getFirstLine(EObject o) {
switch(o){
ComponentDefinition: return 'Component '+o.name+' of type '+o.type.literal
ComponentInstance: {
val parent = o.eContainer
if (parent instanceof Instantiation) {
return (if(parent.componentRef !== null) parent.componentRef.type else parent.component.type).literal.toFirstUpper+' '+o.name
}
}
}
return super.getFirstLine(o)
}
}

View File

@ -1,11 +1,17 @@
/*
* generated by Xtext 2.12.0
* generated by Xtext 2.14.0
*/
package com.minres.rdl.ui
import com.minres.structural.ui.hyperlink.MyHyperlinkHelper
import com.minres.structural.ui.hyperlink.MyXtextHyperlink
import org.eclipse.xtend.lib.annotations.FinalFieldsConstructor
import org.eclipse.xtext.ui.editor.hover.IEObjectHoverProvider
import org.eclipse.xtext.documentation.IEObjectDocumentationProvider
import org.eclipse.xtext.ui.editor.hover.IEObjectHoverProvider
import org.eclipse.xtext.ui.editor.hyperlinking.HyperlinkHelper
import org.eclipse.xtext.ui.editor.hyperlinking.XtextHyperlink
import org.eclipse.xtext.ui.resource.IResourceSetProvider
import org.eclipse.xtext.ui.resource.SimpleResourceSetProvider
/**
* Use this class to register components to be used within the Eclipse IDE.
@ -21,4 +27,20 @@ class RDLUiModule extends AbstractRDLUiModule {
typeof(RDLEObjectDocumentationProvider);
}
// override Class<? extends IProjectCreator> bindIProjectCreator() {
// return JDTFreeStructuralProjectCreator;
// }
override Class<? extends IResourceSetProvider> bindIResourceSetProvider() {
return SimpleResourceSetProvider
}
def Class<? extends HyperlinkHelper> bindHyperlinkHelper() {
return MyHyperlinkHelper
}
def Class<? extends XtextHyperlink> bindHyperlink() {
return MyXtextHyperlink
}
}

View File

@ -1,5 +1,5 @@
/*
* generated by Xtext 2.12.0
* generated by Xtext 2.14.0
*/
package com.minres.rdl.ui.contentassist

View File

@ -1,5 +1,5 @@
/*
* generated by Xtext 2.12.0
* generated by Xtext 2.14.0
*/
package com.minres.rdl.ui.labeling

View File

@ -1,5 +1,5 @@
/*
* generated by Xtext 2.12.0
* generated by Xtext 2.14.0
*/
package com.minres.rdl.ui.labeling
@ -8,7 +8,6 @@ import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider
import org.eclipse.xtext.ui.label.DefaultEObjectLabelProvider
import com.minres.rdl.rdl.ComponentDefinition
import com.minres.rdl.rdl.ExplicitPropertyAssignment
import com.minres.rdl.rdl.ImmediateInstantiation
import com.minres.rdl.rdl.ComponentInstance
import com.minres.rdl.rdl.PropertyAssignment
import com.minres.rdl.rdl.PropertyAssignmentRhs
@ -19,7 +18,6 @@ import com.minres.rdl.rdl.RValueConstant
import com.minres.rdl.rdl.PropertyModifier
import com.minres.rdl.rdl.ComponentDefinitionType
import com.minres.rdl.rdl.EnumDefinition
import com.minres.rdl.rdl.NamedInstantiation
import com.minres.rdl.rdl.PostPropertyAssignment
import com.minres.rdl.rdl.InstanceRef
import com.minres.rdl.rdl.InstancePropertyRef
@ -38,23 +36,8 @@ class RDLLabelProvider extends DefaultEObjectLabelProvider {
super(delegate);
}
// Labels and icons can be computed like this:
// def text(Greeting ele) {
// 'A greeting to ' + ele.name
// }
//
// def image(Greeting ele) {
// 'Greeting.gif'
// }
def text(ComponentDefinition e){
if(e.immediateInstantiation!==null){
if(e.name!==null)
text(e.immediateInstantiation)+' ('+e.name+')'
else
text(e.immediateInstantiation)
}else if(e.name!==null){
if(e.name!==null){
e.type.literal+' '+e.name
} else{
val pa = e.propertyAssignments.findFirst[PropertyAssignment pa |
@ -91,14 +74,10 @@ class RDLLabelProvider extends DefaultEObjectLabelProvider {
e.instance.name
}
def text( ImmediateInstantiation e){
e.componentInstances.map[text(it)].join(", ")
}
def text( ComponentInstance e){
var res = e.name
if(e.range !== null)
res+='['+(if(e.range.size!==null) e.range.size.toString else e.range.start+':'+e.range.end)+']'
res+='['+(if(e.range.size!==null) e.range.size.toString else e.range.left+':'+e.range.right)+']'
if(e.address!==null)
res+=' @'+e.address
return res
@ -140,10 +119,6 @@ class RDLLabelProvider extends DefaultEObjectLabelProvider {
return string
}
def text(NamedInstantiation e){
e.componentInstances.map[text(it)].join(", ")+' ('+e.component.name+')'
}
def text(EnumEntry e){
if(e.index !== null)
e.name + '=' + e.index.toString
@ -198,7 +173,7 @@ class RDLLabelProvider extends DefaultEObjectLabelProvider {
'P.png'
}
def image(NamedInstantiation e){
def image(ComponentInstance e){
'I.png'
}

View File

@ -1,5 +1,5 @@
/*
* generated by Xtext 2.12.0
* generated by Xtext 2.14.0
*/
package com.minres.rdl.ui.outline
@ -8,13 +8,13 @@ import org.eclipse.xtext.ui.editor.outline.impl.DefaultOutlineTreeProvider
import org.eclipse.xtext.ui.editor.outline.impl.DocumentRootNode
import com.minres.rdl.rdl.ComponentDefinition
import org.eclipse.xtext.ui.editor.outline.IOutlineNode
import com.minres.rdl.rdl.PropertyAssignment
import com.minres.rdl.rdl.NamedInstantiation
import com.minres.rdl.rdl.ExplicitPropertyAssignment
import com.minres.rdl.rdl.PostPropertyAssignment
import com.minres.rdl.rdl.PropertyAssignmentRhs
import com.minres.rdl.rdl.EnumDefinition
import com.minres.rdl.rdl.EnumEntry
import com.minres.rdl.rdl.Instantiation
import com.minres.rdl.rdl.ComponentInstance
/**
* Customization of the default outline structure.
@ -28,16 +28,22 @@ class RDLOutlineTreeProvider extends DefaultOutlineTreeProvider {
domainModel.propertyDefinitions.forEach[createNode(parentNode, it)]
domainModel.componentDefinitions.forEach[createNode(parentNode, it)]
domainModel.propertyAssignments.forEach[createNode(parentNode, it)]
domainModel.namedInstantiations.forEach[createNode(parentNode, it)]
domainModel.instantiations.forEach[Instantiation instantiation |
if(instantiation.component!==null) createNode(parentNode, instantiation.component)
instantiation.componentInstances.forEach[createNode(parentNode, it)]
]
}
protected def _createChildren(IOutlineNode parentNode, ComponentDefinition compDef) {
compDef.enumDefinitions.forEach[createNode(parentNode, it)]
compDef.componentDefinitions.forEach[createNode(parentNode, it)]
compDef.propertyAssignments.forEach[createNode(parentNode, it)]
compDef.namedInstantiations.forEach[createNode(parentNode, it)]
compDef.instantiations.forEach[Instantiation instantiation |
if(instantiation.component!==null) createNode(parentNode, instantiation.component)
instantiation.componentInstances.forEach[createNode(parentNode, it)]
]
}
protected def _createChildren(IOutlineNode parentNode, EnumDefinition e) {
e.body.entries.forEach[createNode(parentNode, it)]
}
@ -50,14 +56,18 @@ class RDLOutlineTreeProvider extends DefaultOutlineTreeProvider {
return true;
}
protected def boolean _isLeaf(NamedInstantiation feature) {
return true;
protected def boolean _isLeaf(Instantiation feature) {
return feature.component===null && feature.componentInstances.size==0;
}
protected def boolean _isLeaf(PropertyAssignmentRhs feature) {
return true;
}
protected def boolean _isLeaf(ComponentInstance feature) {
return true;
}
protected def boolean _isLeaf(EnumEntry feature) {
return feature.properties.size==0;
}

View File

@ -0,0 +1,29 @@
package com.minres.rdl.ui.preferences
import org.eclipse.jface.preference.FieldEditorPreferencePage
import org.eclipse.ui.IWorkbenchPreferencePage
import org.eclipse.ui.IWorkbench
import org.eclipse.jface.preference.BooleanFieldEditor
import com.minres.rdl.preferences.PreferenceConstants
import org.eclipse.ui.preferences.ScopedPreferenceStore
import org.eclipse.core.runtime.preferences.InstanceScope
import org.eclipse.jface.preference.ComboFieldEditor
class RdlPreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {
new() {
super(GRID)
val store = new ScopedPreferenceStore(InstanceScope.INSTANCE, PreferenceConstants.SCOPE_NAME);
setPreferenceStore(store);
setDescription("Code generator configuration options");
}
override createFieldEditors() {
addField(new BooleanFieldEditor(PreferenceConstants.P_GENERATE_CSV, "Generate CSV:", getFieldEditorParent()));
addField(new ComboFieldEditor(PreferenceConstants.P_ADDRESSUNIT, "Address unit size", #[#["Byte (8bit)","byte"], #["Word (16bit)","word"], #["DWord (32bit)","dword"]], getFieldEditorParent()))
}
override init(IWorkbench workbench) {
}
}

View File

@ -1,5 +1,5 @@
/*
* generated by Xtext 2.12.0
* generated by Xtext 2.14.0
*/
package com.minres.rdl.ui.quickfix

View File

@ -0,0 +1,20 @@
package com.minres.rdl.ui.wizard;
import org.eclipse.osgi.util.NLS;
public class Messages extends NLS {
private static final String BUNDLE_NAME = "com.minres.rdl.ui.wizard.messages"; //$NON-NLS-1$
public static String HelloWorldProject_Label;
public static String HelloWorldProject_Description;
public static String RdlProject_Label;
public static String RdlProject_Description;
static {
// initialize resource bundle
NLS.initializeMessages(BUNDLE_NAME, Messages.class);
}
private Messages() {
}
}

View File

@ -0,0 +1,81 @@
/*
* generated by Xtext 2.14.0
*/
package com.minres.rdl.ui.wizard
import org.eclipse.xtext.ui.XtextProjectHelper
import org.eclipse.xtext.ui.util.PluginProjectFactory
import org.eclipse.xtext.ui.wizard.template.IProjectGenerator
import org.eclipse.xtext.ui.wizard.template.IProjectTemplateProvider
import org.eclipse.xtext.ui.wizard.template.ProjectTemplate
/**
* Create a list with all project templates to be shown in the template new project wizard.
*
* Each template is able to generate one or more projects. Each project can be configured such that any number of files are included.
*/
class RDLProjectTemplateProvider implements IProjectTemplateProvider {
override getProjectTemplates() {
#[new RdlProject]
}
}
@ProjectTemplate(
label="RDL template",
icon="project_template.png",
description="<p><b>RDL</b></p><p>This is a simple project for RDL.</p>")
final class RdlProject {
// val advanced = check("Advanced:", false)
// val advancedGroup = group("Properties")
// val name = combo("Name:", #["Xtext", "World", "Foo", "Bar"], "The name to say 'Hello' to", advancedGroup)
// val path = text("Package:", "mydsl", "The package path to place the files in", advancedGroup)
//
// override protected updateVariables() {
// name.enabled = advanced.value
// path.enabled = advanced.value
// if (!advanced.value) {
// name.value = "Xtext"
// path.value = "rdl"
// }
// }
//
// override protected validate() {
// if (path.value.matches('[a-z][a-z0-9_]*(/[a-z][a-z0-9_]*)*'))
// null
// else
// new Status(ERROR, "Wizard", "'" + path + "' is not a valid package name")
// }
override generateProjects(IProjectGenerator generator) {
generator.generate(new PluginProjectFactory => [
projectName = projectInfo.projectName
location = projectInfo.locationPath
projectNatures += XtextProjectHelper.NATURE_ID //#[JavaCore.NATURE_ID, "org.eclipse.pde.PluginNature", XtextProjectHelper.NATURE_ID]
builderIds += XtextProjectHelper.BUILDER_ID //JavaCore.BUILDER_ID
folders += "src"
addFile('''src/Model.rdl''', '''
enum ERRSLICE0_MISSIONERR_ENABLE_ERR25_enum{
DISABLE = 1'd0;
ENABLE = 1'd1;
};
addrmap {
name = "foo registers";
desc = "this is a bunch of foo regs bla bla bla";
regfile bar_regs {
name = "bar registers";
desc = "this is a bunch of bar regs bla bla bla";
reg {
field { name="field 1"; sw=rw; hw=rw; we; } fld1[9:0] = 10'd0;
field { name="field 2"; sw=rw; hw=r; } fld2[15:15];
field {encode=ERRSLICE0_MISSIONERR_ENABLE_ERR25_enum; sw=rw; hw=r; reset=1'h1;} ERR25[25:25];
} a_reg[2];
} bar;
} foo;
''')
])
}
}

View File

@ -0,0 +1,4 @@
HelloWorldProject_Label=Hello World
HelloWorldProject_Description=<p><b>Hello World</b></p> <p>This is a parameterized hello world for RDL. You can set a parameter to modify the content in the generated file and a parameter to set the package the file is created in.</p>
RdlProject_Label=RDL template
RdlProject_Description=<p><b>RDL</b></p><p>This is a simple project for RDL.</p>

View File

@ -0,0 +1,52 @@
package com.minres.structural.ui.hyperlink
import com.google.inject.Inject
import org.eclipse.emf.common.util.URI
import org.eclipse.emf.ecore.util.EcoreUtil
import org.eclipse.jface.text.Region
import org.eclipse.xtext.EcoreUtil2
import org.eclipse.xtext.nodemodel.util.NodeModelUtils
import org.eclipse.xtext.resource.XtextResource
import org.eclipse.xtext.scoping.impl.ImportUriResolver
import org.eclipse.xtext.ui.editor.hyperlinking.HyperlinkHelper
import org.eclipse.xtext.ui.editor.hyperlinking.IHyperlinkAcceptor
import org.eclipse.xtext.util.TextRegion
class MyHyperlinkHelper extends HyperlinkHelper {
@Inject ImportUriResolver resolver;
override createHyperlinksByOffset(XtextResource resource, int offset, IHyperlinkAcceptor acceptor) {
val region = new TextRegion(offset, 0)
val crossRefNode = getEObjectAtOffsetHelper().getCrossReferenceNode(resource, region);
if (crossRefNode === null){
val parseResult = resource.getParseResult();
if (parseResult !== null) {
val leaf = NodeModelUtils.findLeafNodeAtOffset(parseResult.getRootNode(), region.getOffset());
//val rule = EcoreUtil2.getContainerOfType(leaf.grammarElement, AbstractRule);
val semObj = NodeModelUtils.findActualSemanticObjectFor(leaf);
val importURI = resolver.resolve(semObj);
if (importURI !== null && EcoreUtil2.isValidUri(semObj, URI.createURI(importURI))) {
val referencedResource = EcoreUtil2.getResource(resource, importURI)
if(referencedResource !== null && referencedResource.contents.size>0){
val top = referencedResource.contents.get(0)
val textRegion = leaf.getTextRegion();
val uri = EcoreUtil.getURI(top);
val result = hyperlinkProvider.get();
result.setHyperlinkRegion(new Region(textRegion.getOffset(), textRegion.getLength()));
result.setURI(if(uri.isPlatformResource()) uri else resource.getResourceSet().getURIConverter().normalize(uri));
result.setHyperlinkText(labelProvider.getText(top));
if(result instanceof MyXtextHyperlink) result.selectTarget=false
acceptor.accept(result);
}
}
}
} else {
val crossLinkedEObject = getEObjectAtOffsetHelper().getCrossReferencedElement(crossRefNode);
if (crossLinkedEObject !== null && !crossLinkedEObject.eIsProxy()) {
createHyperlinksTo(resource, crossRefNode, crossLinkedEObject, acceptor);
}
}
}
}

View File

@ -0,0 +1,24 @@
package com.minres.structural.ui.hyperlink
import com.google.inject.Inject
import org.eclipse.xtext.ui.editor.IURIEditorOpener
import org.eclipse.xtext.ui.editor.hyperlinking.XtextHyperlink
class MyXtextHyperlink extends XtextHyperlink {
var boolean select = true
@Inject var IURIEditorOpener uriEditorOpener;
override void open() {
uriEditorOpener.open(getURI(), select);
}
def boolean getSelectTarget(){
return select
}
def void setSelectTarget(boolean select){
this.select=select
}
}

View File

@ -1,11 +1,12 @@
package com.minres.rdl.ui;
import com.minres.rdl.rdl.ComponentDefinition;
import com.minres.rdl.rdl.ComponentDefinitionType;
import com.minres.rdl.rdl.ComponentInstance;
import com.minres.rdl.rdl.ImmediateInstantiation;
import com.minres.rdl.rdl.NamedInstantiation;
import com.minres.rdl.rdl.Instantiation;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.ui.editor.hover.html.DefaultEObjectHoverProvider;
import org.eclipse.xtext.xbase.lib.StringExtensions;
@SuppressWarnings("all")
public class RDLEObjectHoverProvider extends DefaultEObjectHoverProvider {
@ -24,20 +25,19 @@ public class RDLEObjectHoverProvider extends DefaultEObjectHoverProvider {
if (o instanceof ComponentInstance) {
_matched=true;
final EObject parent = ((ComponentInstance)o).eContainer();
if ((parent instanceof ImmediateInstantiation)) {
EObject _eContainer = ((ImmediateInstantiation)parent).eContainer();
final ComponentDefinition compDef = ((ComponentDefinition) _eContainer);
String _literal = compDef.getType().getLiteral();
String _plus = (_literal + " ");
if ((parent instanceof Instantiation)) {
ComponentDefinitionType _xifexpression = null;
ComponentDefinition _componentRef = ((Instantiation)parent).getComponentRef();
boolean _tripleNotEquals = (_componentRef != null);
if (_tripleNotEquals) {
_xifexpression = ((Instantiation)parent).getComponentRef().getType();
} else {
_xifexpression = ((Instantiation)parent).getComponent().getType();
}
String _firstUpper = StringExtensions.toFirstUpper(_xifexpression.getLiteral());
String _plus = (_firstUpper + " ");
String _name = ((ComponentInstance)o).getName();
return (_plus + _name);
} else {
if ((parent instanceof NamedInstantiation)) {
String _literal_1 = ((NamedInstantiation)parent).getComponent().getType().getLiteral();
String _plus_1 = (_literal_1 + " ");
String _name_1 = ((ComponentInstance)o).getName();
return (_plus_1 + _name_1);
}
}
}
}

View File

@ -1,15 +1,21 @@
/**
* generated by Xtext 2.12.0
* generated by Xtext 2.14.0
*/
package com.minres.rdl.ui;
import com.minres.rdl.ui.AbstractRDLUiModule;
import com.minres.rdl.ui.RDLEObjectDocumentationProvider;
import com.minres.rdl.ui.RDLEObjectHoverProvider;
import com.minres.structural.ui.hyperlink.MyHyperlinkHelper;
import com.minres.structural.ui.hyperlink.MyXtextHyperlink;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.eclipse.xtend.lib.annotations.FinalFieldsConstructor;
import org.eclipse.xtext.documentation.IEObjectDocumentationProvider;
import org.eclipse.xtext.ui.editor.hover.IEObjectHoverProvider;
import org.eclipse.xtext.ui.editor.hyperlinking.HyperlinkHelper;
import org.eclipse.xtext.ui.editor.hyperlinking.XtextHyperlink;
import org.eclipse.xtext.ui.resource.IResourceSetProvider;
import org.eclipse.xtext.ui.resource.SimpleResourceSetProvider;
/**
* Use this class to register components to be used within the Eclipse IDE.
@ -25,7 +31,20 @@ public class RDLUiModule extends AbstractRDLUiModule {
return RDLEObjectDocumentationProvider.class;
}
public RDLUiModule(final AbstractUIPlugin arg0) {
super(arg0);
@Override
public Class<? extends IResourceSetProvider> bindIResourceSetProvider() {
return SimpleResourceSetProvider.class;
}
public Class<? extends HyperlinkHelper> bindHyperlinkHelper() {
return MyHyperlinkHelper.class;
}
public Class<? extends XtextHyperlink> bindHyperlink() {
return MyXtextHyperlink.class;
}
public RDLUiModule(final AbstractUIPlugin plugin) {
super(plugin);
}
}

View File

@ -1,5 +1,5 @@
/**
* generated by Xtext 2.12.0
* generated by Xtext 2.14.0
*/
package com.minres.rdl.ui.contentassist;

View File

@ -1,5 +1,5 @@
/**
* generated by Xtext 2.12.0
* generated by Xtext 2.14.0
*/
package com.minres.rdl.ui.labeling;

View File

@ -1,5 +1,5 @@
/**
* generated by Xtext 2.12.0
* generated by Xtext 2.14.0
*/
package com.minres.rdl.ui.labeling;
@ -13,10 +13,8 @@ import com.minres.rdl.rdl.EnumDefinition;
import com.minres.rdl.rdl.EnumEntry;
import com.minres.rdl.rdl.EnumProperty;
import com.minres.rdl.rdl.ExplicitPropertyAssignment;
import com.minres.rdl.rdl.ImmediateInstantiation;
import com.minres.rdl.rdl.InstancePropertyRef;
import com.minres.rdl.rdl.InstanceRef;
import com.minres.rdl.rdl.NamedInstantiation;
import com.minres.rdl.rdl.PostPropertyAssignment;
import com.minres.rdl.rdl.PropertyAssignment;
import com.minres.rdl.rdl.PropertyAssignmentRhs;
@ -46,46 +44,26 @@ public class RDLLabelProvider extends DefaultEObjectLabelProvider {
public String text(final ComponentDefinition e) {
String _xifexpression = null;
ImmediateInstantiation _immediateInstantiation = e.getImmediateInstantiation();
boolean _tripleNotEquals = (_immediateInstantiation != null);
String _name = e.getName();
boolean _tripleNotEquals = (_name != null);
if (_tripleNotEquals) {
String _xifexpression_1 = null;
String _name = e.getName();
boolean _tripleNotEquals_1 = (_name != null);
if (_tripleNotEquals_1) {
String _text = this.text(e.getImmediateInstantiation());
String _plus = (_text + " (");
String _name_1 = e.getName();
String _plus_1 = (_plus + _name_1);
_xifexpression_1 = (_plus_1 + ")");
} else {
_xifexpression_1 = this.text(e.getImmediateInstantiation());
}
_xifexpression = _xifexpression_1;
String _literal = e.getType().getLiteral();
String _plus = (_literal + " ");
String _name_1 = e.getName();
_xifexpression = (_plus + _name_1);
} else {
String _xifexpression_2 = null;
String _name_2 = e.getName();
boolean _tripleNotEquals_2 = (_name_2 != null);
if (_tripleNotEquals_2) {
String _literal = e.getType().getLiteral();
String _plus_2 = (_literal + " ");
String _name_3 = e.getName();
_xifexpression_2 = (_plus_2 + _name_3);
} else {
String _xblockexpression = null;
{
final Function1<PropertyAssignment, Boolean> _function = (PropertyAssignment pa) -> {
return Boolean.valueOf(((pa instanceof ExplicitPropertyAssignment) && Objects.equal(((ExplicitPropertyAssignment) pa).getName(), PropertyEnum.NAME)));
};
final PropertyAssignment pa = IterableExtensions.<PropertyAssignment>findFirst(e.getPropertyAssignments(), _function);
String _literal_1 = e.getType().getLiteral();
String _plus_3 = (_literal_1 + " ");
Object _text_1 = this.text(((ExplicitPropertyAssignment) pa).getRhs());
_xblockexpression = (_plus_3 + _text_1);
}
_xifexpression_2 = _xblockexpression;
String _xblockexpression = null;
{
final Function1<PropertyAssignment, Boolean> _function = (PropertyAssignment pa) -> {
return Boolean.valueOf(((pa instanceof ExplicitPropertyAssignment) && Objects.equal(((ExplicitPropertyAssignment) pa).getName(), PropertyEnum.NAME)));
};
final PropertyAssignment pa = IterableExtensions.<PropertyAssignment>findFirst(e.getPropertyAssignments(), _function);
String _literal_1 = e.getType().getLiteral();
String _plus_1 = (_literal_1 + " ");
Object _text = this.text(((ExplicitPropertyAssignment) pa).getRhs());
_xblockexpression = (_plus_1 + _text);
}
_xifexpression = _xifexpression_2;
_xifexpression = _xblockexpression;
}
return _xifexpression;
}
@ -154,13 +132,6 @@ public class RDLLabelProvider extends DefaultEObjectLabelProvider {
return _xifexpression;
}
public String text(final ImmediateInstantiation e) {
final Function1<ComponentInstance, String> _function = (ComponentInstance it) -> {
return this.text(it);
};
return IterableExtensions.join(ListExtensions.<ComponentInstance, String>map(e.getComponentInstances(), _function), ", ");
}
public String text(final ComponentInstance e) {
String res = e.getName();
Range _range = e.getRange();
@ -173,10 +144,10 @@ public class RDLLabelProvider extends DefaultEObjectLabelProvider {
if (_tripleNotEquals_1) {
_xifexpression = e.getRange().getSize().toString();
} else {
Object _start = e.getRange().getStart();
String _plus = (_start + ":");
Object _end = e.getRange().getEnd();
_xifexpression = (_plus + _end);
Object _left = e.getRange().getLeft();
String _plus = (_left + ":");
Object _right = e.getRange().getRight();
_xifexpression = (_plus + _right);
}
String _plus_1 = ("[" + _xifexpression);
String _plus_2 = (_plus_1 + "]");
@ -283,17 +254,6 @@ public class RDLLabelProvider extends DefaultEObjectLabelProvider {
}
}
public String text(final NamedInstantiation e) {
final Function1<ComponentInstance, String> _function = (ComponentInstance it) -> {
return this.text(it);
};
String _join = IterableExtensions.join(ListExtensions.<ComponentInstance, String>map(e.getComponentInstances(), _function), ", ");
String _plus = (_join + " (");
String _name = e.getComponent().getName();
String _plus_1 = (_plus + _name);
return (_plus_1 + ")");
}
public String text(final EnumEntry e) {
String _xifexpression = null;
Object _index = e.getIndex();
@ -401,7 +361,7 @@ public class RDLLabelProvider extends DefaultEObjectLabelProvider {
return "P.png";
}
public String image(final NamedInstantiation e) {
public String image(final ComponentInstance e) {
return "I.png";
}

View File

@ -1,13 +1,14 @@
/**
* generated by Xtext 2.12.0
* generated by Xtext 2.14.0
*/
package com.minres.rdl.ui.outline;
import com.minres.rdl.rdl.ComponentDefinition;
import com.minres.rdl.rdl.ComponentInstance;
import com.minres.rdl.rdl.EnumDefinition;
import com.minres.rdl.rdl.EnumEntry;
import com.minres.rdl.rdl.ExplicitPropertyAssignment;
import com.minres.rdl.rdl.NamedInstantiation;
import com.minres.rdl.rdl.Instantiation;
import com.minres.rdl.rdl.PostPropertyAssignment;
import com.minres.rdl.rdl.PropertyAssignment;
import com.minres.rdl.rdl.PropertyAssignmentRhs;
@ -42,10 +43,18 @@ public class RDLOutlineTreeProvider extends DefaultOutlineTreeProvider {
this.createNode(parentNode, it);
};
domainModel.getPropertyAssignments().forEach(_function_3);
final Consumer<NamedInstantiation> _function_4 = (NamedInstantiation it) -> {
this.createNode(parentNode, it);
final Consumer<Instantiation> _function_4 = (Instantiation instantiation) -> {
ComponentDefinition _component = instantiation.getComponent();
boolean _tripleNotEquals = (_component != null);
if (_tripleNotEquals) {
this.createNode(parentNode, instantiation.getComponent());
}
final Consumer<ComponentInstance> _function_5 = (ComponentInstance it) -> {
this.createNode(parentNode, it);
};
instantiation.getComponentInstances().forEach(_function_5);
};
domainModel.getNamedInstantiations().forEach(_function_4);
domainModel.getInstantiations().forEach(_function_4);
}
protected void _createChildren(final IOutlineNode parentNode, final ComponentDefinition compDef) {
@ -61,10 +70,18 @@ public class RDLOutlineTreeProvider extends DefaultOutlineTreeProvider {
this.createNode(parentNode, it);
};
compDef.getPropertyAssignments().forEach(_function_2);
final Consumer<NamedInstantiation> _function_3 = (NamedInstantiation it) -> {
this.createNode(parentNode, it);
final Consumer<Instantiation> _function_3 = (Instantiation instantiation) -> {
ComponentDefinition _component = instantiation.getComponent();
boolean _tripleNotEquals = (_component != null);
if (_tripleNotEquals) {
this.createNode(parentNode, instantiation.getComponent());
}
final Consumer<ComponentInstance> _function_4 = (ComponentInstance it) -> {
this.createNode(parentNode, it);
};
instantiation.getComponentInstances().forEach(_function_4);
};
compDef.getNamedInstantiations().forEach(_function_3);
compDef.getInstantiations().forEach(_function_3);
}
protected void _createChildren(final IOutlineNode parentNode, final EnumDefinition e) {
@ -82,14 +99,18 @@ public class RDLOutlineTreeProvider extends DefaultOutlineTreeProvider {
return true;
}
protected boolean _isLeaf(final NamedInstantiation feature) {
return true;
protected boolean _isLeaf(final Instantiation feature) {
return ((feature.getComponent() == null) && (feature.getComponentInstances().size() == 0));
}
protected boolean _isLeaf(final PropertyAssignmentRhs feature) {
return true;
}
protected boolean _isLeaf(final ComponentInstance feature) {
return true;
}
protected boolean _isLeaf(final EnumEntry feature) {
int _size = feature.getProperties().size();
return (_size == 0);

View File

@ -0,0 +1,35 @@
package com.minres.rdl.ui.preferences;
import com.minres.rdl.preferences.PreferenceConstants;
import org.eclipse.core.runtime.preferences.InstanceScope;
import org.eclipse.jface.preference.BooleanFieldEditor;
import org.eclipse.jface.preference.ComboFieldEditor;
import org.eclipse.jface.preference.FieldEditorPreferencePage;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;
import org.eclipse.ui.preferences.ScopedPreferenceStore;
@SuppressWarnings("all")
public class RdlPreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {
public RdlPreferencePage() {
super(FieldEditorPreferencePage.GRID);
final ScopedPreferenceStore store = new ScopedPreferenceStore(InstanceScope.INSTANCE, PreferenceConstants.SCOPE_NAME);
this.setPreferenceStore(store);
this.setDescription("Code generator configuration options");
}
@Override
public void createFieldEditors() {
Composite _fieldEditorParent = this.getFieldEditorParent();
BooleanFieldEditor _booleanFieldEditor = new BooleanFieldEditor(PreferenceConstants.P_GENERATE_CSV, "Generate CSV:", _fieldEditorParent);
this.addField(_booleanFieldEditor);
Composite _fieldEditorParent_1 = this.getFieldEditorParent();
ComboFieldEditor _comboFieldEditor = new ComboFieldEditor(PreferenceConstants.P_ADDRESSUNIT, "Address unit size", new String[][] { new String[] { "Byte (8bit)", "byte" }, new String[] { "Word (16bit)", "word" }, new String[] { "DWord (32bit)", "dword" } }, _fieldEditorParent_1);
this.addField(_comboFieldEditor);
}
@Override
public void init(final IWorkbench workbench) {
}
}

View File

@ -1,5 +1,5 @@
/**
* generated by Xtext 2.12.0
* generated by Xtext 2.14.0
*/
package com.minres.rdl.ui.quickfix;

View File

@ -0,0 +1,22 @@
/**
* generated by Xtext 2.14.0
*/
package com.minres.rdl.ui.wizard;
import com.minres.rdl.ui.wizard.RdlProject;
import org.eclipse.xtext.ui.wizard.template.AbstractProjectTemplate;
import org.eclipse.xtext.ui.wizard.template.IProjectTemplateProvider;
/**
* Create a list with all project templates to be shown in the template new project wizard.
*
* Each template is able to generate one or more projects. Each project can be configured such that any number of files are included.
*/
@SuppressWarnings("all")
public class RDLProjectTemplateProvider implements IProjectTemplateProvider {
@Override
public AbstractProjectTemplate[] getProjectTemplates() {
RdlProject _rdlProject = new RdlProject();
return new AbstractProjectTemplate[] { _rdlProject };
}
}

View File

@ -0,0 +1,94 @@
/**
* generated by Xtext 2.14.0
*/
package com.minres.rdl.ui.wizard;
import java.util.List;
import org.eclipse.xtend2.lib.StringConcatenation;
import org.eclipse.xtext.ui.XtextProjectHelper;
import org.eclipse.xtext.ui.util.PluginProjectFactory;
import org.eclipse.xtext.ui.wizard.template.AbstractProjectTemplate;
import org.eclipse.xtext.ui.wizard.template.IProjectGenerator;
import org.eclipse.xtext.ui.wizard.template.ProjectTemplate;
import org.eclipse.xtext.xbase.lib.ObjectExtensions;
import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;
@ProjectTemplate(label = "RDL template", icon = "project_template.png", description = "<p><b>RDL</b></p><p>This is a simple project for RDL.</p>")
@SuppressWarnings("all")
public final class RdlProject extends AbstractProjectTemplate {
@Override
public void generateProjects(final IProjectGenerator generator) {
PluginProjectFactory _pluginProjectFactory = new PluginProjectFactory();
final Procedure1<PluginProjectFactory> _function = (PluginProjectFactory it) -> {
it.setProjectName(this.getProjectInfo().getProjectName());
it.setLocation(this.getProjectInfo().getLocationPath());
List<String> _projectNatures = it.getProjectNatures();
_projectNatures.add(XtextProjectHelper.NATURE_ID);
List<String> _builderIds = it.getBuilderIds();
_builderIds.add(XtextProjectHelper.BUILDER_ID);
List<String> _folders = it.getFolders();
_folders.add("src");
StringConcatenation _builder = new StringConcatenation();
_builder.append("src/Model.rdl");
StringConcatenation _builder_1 = new StringConcatenation();
_builder_1.append("enum ERRSLICE0_MISSIONERR_ENABLE_ERR25_enum{");
_builder_1.newLine();
_builder_1.append(" ");
_builder_1.append("DISABLE = 1\'d0;");
_builder_1.newLine();
_builder_1.append(" ");
_builder_1.append("ENABLE = 1\'d1;");
_builder_1.newLine();
_builder_1.append("};");
_builder_1.newLine();
_builder_1.append("addrmap {");
_builder_1.newLine();
_builder_1.append(" ");
_builder_1.append("name = \"foo registers\";");
_builder_1.newLine();
_builder_1.append(" ");
_builder_1.append("desc = \"this is a bunch of foo regs bla bla bla\";");
_builder_1.newLine();
_builder_1.append(" ");
_builder_1.newLine();
_builder_1.append(" ");
_builder_1.append("regfile bar_regs {");
_builder_1.newLine();
_builder_1.append(" ");
_builder_1.append("name = \"bar registers\";");
_builder_1.newLine();
_builder_1.append(" ");
_builder_1.append("desc = \"this is a bunch of bar regs bla bla bla\";");
_builder_1.newLine();
_builder_1.append(" ");
_builder_1.newLine();
_builder_1.append("\t ");
_builder_1.append("reg {");
_builder_1.newLine();
_builder_1.append(" ");
_builder_1.append("field { name=\"field 1\"; sw=rw; hw=rw; we; } fld1[9:0] = 10\'d0;");
_builder_1.newLine();
_builder_1.append(" ");
_builder_1.append("field { name=\"field 2\"; sw=rw; hw=r; } fld2[15:15];");
_builder_1.newLine();
_builder_1.append(" ");
_builder_1.append("field {encode=ERRSLICE0_MISSIONERR_ENABLE_ERR25_enum; sw=rw; hw=r; reset=1\'h1;} ERR25[25:25];");
_builder_1.newLine();
_builder_1.append("\t ");
_builder_1.append("} a_reg[2];\t ");
_builder_1.newLine();
_builder_1.append("\t ");
_builder_1.newLine();
_builder_1.append(" ");
_builder_1.append("} bar;");
_builder_1.newLine();
_builder_1.append(" ");
_builder_1.newLine();
_builder_1.append("} foo;");
_builder_1.newLine();
this.addFile(it, _builder, _builder_1);
};
PluginProjectFactory _doubleArrow = ObjectExtensions.<PluginProjectFactory>operator_doubleArrow(_pluginProjectFactory, _function);
generator.generate(_doubleArrow);
}
}

View File

@ -0,0 +1,72 @@
package com.minres.structural.ui.hyperlink;
import com.google.inject.Inject;
import com.minres.structural.ui.hyperlink.MyXtextHyperlink;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.jface.text.Region;
import org.eclipse.xtext.EcoreUtil2;
import org.eclipse.xtext.nodemodel.ILeafNode;
import org.eclipse.xtext.nodemodel.INode;
import org.eclipse.xtext.nodemodel.util.NodeModelUtils;
import org.eclipse.xtext.parser.IParseResult;
import org.eclipse.xtext.resource.XtextResource;
import org.eclipse.xtext.scoping.impl.ImportUriResolver;
import org.eclipse.xtext.ui.editor.hyperlinking.HyperlinkHelper;
import org.eclipse.xtext.ui.editor.hyperlinking.IHyperlinkAcceptor;
import org.eclipse.xtext.ui.editor.hyperlinking.XtextHyperlink;
import org.eclipse.xtext.util.ITextRegion;
import org.eclipse.xtext.util.TextRegion;
@SuppressWarnings("all")
public class MyHyperlinkHelper extends HyperlinkHelper {
@Inject
private ImportUriResolver resolver;
@Override
public void createHyperlinksByOffset(final XtextResource resource, final int offset, final IHyperlinkAcceptor acceptor) {
final TextRegion region = new TextRegion(offset, 0);
final INode crossRefNode = this.getEObjectAtOffsetHelper().getCrossReferenceNode(resource, region);
if ((crossRefNode == null)) {
final IParseResult parseResult = resource.getParseResult();
if ((parseResult != null)) {
final ILeafNode leaf = NodeModelUtils.findLeafNodeAtOffset(parseResult.getRootNode(), region.getOffset());
final EObject semObj = NodeModelUtils.findActualSemanticObjectFor(leaf);
final String importURI = this.resolver.resolve(semObj);
if (((importURI != null) && EcoreUtil2.isValidUri(semObj, URI.createURI(importURI)))) {
final Resource referencedResource = EcoreUtil2.getResource(resource, importURI);
if (((referencedResource != null) && (referencedResource.getContents().size() > 0))) {
final EObject top = referencedResource.getContents().get(0);
final ITextRegion textRegion = leaf.getTextRegion();
final URI uri = EcoreUtil.getURI(top);
final XtextHyperlink result = this.getHyperlinkProvider().get();
int _offset = textRegion.getOffset();
int _length = textRegion.getLength();
Region _region = new Region(_offset, _length);
result.setHyperlinkRegion(_region);
URI _xifexpression = null;
boolean _isPlatformResource = uri.isPlatformResource();
if (_isPlatformResource) {
_xifexpression = uri;
} else {
_xifexpression = resource.getResourceSet().getURIConverter().normalize(uri);
}
result.setURI(_xifexpression);
result.setHyperlinkText(this.getLabelProvider().getText(top));
if ((result instanceof MyXtextHyperlink)) {
((MyXtextHyperlink)result).setSelectTarget(false);
}
acceptor.accept(result);
}
}
}
} else {
final EObject crossLinkedEObject = this.getEObjectAtOffsetHelper().getCrossReferencedElement(crossRefNode);
if (((crossLinkedEObject != null) && (!crossLinkedEObject.eIsProxy()))) {
this.createHyperlinksTo(resource, crossRefNode, crossLinkedEObject, acceptor);
}
}
}
}

View File

@ -0,0 +1,26 @@
package com.minres.structural.ui.hyperlink;
import com.google.inject.Inject;
import org.eclipse.xtext.ui.editor.IURIEditorOpener;
import org.eclipse.xtext.ui.editor.hyperlinking.XtextHyperlink;
@SuppressWarnings("all")
public class MyXtextHyperlink extends XtextHyperlink {
private boolean select = true;
@Inject
private IURIEditorOpener uriEditorOpener;
@Override
public void open() {
this.uriEditorOpener.open(this.getURI(), this.select);
}
public boolean getSelectTarget() {
return this.select;
}
public void setSelectTarget(final boolean select) {
this.select = select;
}
}

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="src-gen"/>
<classpathentry kind="src" path="xtend-gen"/>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
<classpathentry kind="output" path="target/classes"/>
</classpath>

View File

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>com.minres.rdl.web</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.m2e.core.maven2Nature</nature>
<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>

View File

@ -0,0 +1,2 @@
eclipse.preferences.version=1
encoding/<project>=UTF-8

View File

@ -0,0 +1,7 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.source=1.8

View File

@ -0,0 +1,44 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="Content-Language" content="en-us">
<title>Example Web Editor</title>
<link rel="stylesheet" type="text/css" href="xtext/2.14.0/xtext-ace.css"/>
<link rel="stylesheet" type="text/css" href="style.css"/>
<script src="webjars/requirejs/2.3.2/require.min.js"></script>
<script type="text/javascript">
var baseUrl = window.location.pathname;
var fileIndex = baseUrl.indexOf("index.html");
if (fileIndex > 0)
baseUrl = baseUrl.slice(0, fileIndex);
require.config({
baseUrl: baseUrl,
paths: {
"jquery": "webjars/jquery/2.2.4/jquery.min",
"ace/ext/language_tools": "webjars/ace/1.2.3/src/ext-language_tools",
"xtext/xtext-ace": "xtext/2.14.0/xtext-ace"
}
});
require(["webjars/ace/1.2.3/src/ace"], function() {
require(["xtext/xtext-ace"], function(xtext) {
xtext.createEditor({
baseUrl: baseUrl,
syntaxDefinition: "xtext-resources/generated/mode-rdl"
});
});
});
</script>
</head>
<body>
<div class="container">
<div class="header">
<h1>Example RDL Web Editor</h1>
</div>
<div class="content">
<div id="xtext-editor" data-editor-xtext-lang="rdl"></div>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,56 @@
body {
width: 100%;
height: 100%;
overflow: hidden;
font: 16px Helvetica,sans-serif;
}
a {
color: #22a;
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
.container {
display: block;
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
margin: 20px;
}
.header {
display: block;
position: absolute;
background-color: #e8e8e8;
top: 0;
left: 0;
right: 0;
height: 60px;
padding: 10px;
}
.content {
display: block;
position: absolute;
top: 90px;
bottom: 0;
left: 0;
width: 640px;
}
#xtext-editor {
display: block;
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
padding: 4px;
border: 1px solid #aaa;
}

View File

@ -0,0 +1,26 @@
define(["ace/lib/oop", "ace/mode/text", "ace/mode/text_highlight_rules"], function(oop, mText, mTextHighlightRules) {
var HighlightRules = function() {
var keywords = "UNDEFINED|UNSPECIFIED|accesswidth|activehigh|activelow|addressing|addrmap|alias|alignment|all|anded|arbiter|async|bigendian|boolean|bothedge|bridge|clock|compact|component|counter|cpuif_reset|decr|decrsaturate|decrthreshold|decrvalue|decrwidth|default|desc|dontcompare|donttest|enable|encode|enum|errextbus|external|false|field|field_reset|fieldwidth|fullalign|halt|haltenable|haltmask|hw|hwclr|hwenable|hwmask|hwset|incr|incrvalue|incrwidth|internal|intr|level|littleendian|lsb0|mask|msb0|na|name|negedge|next|nonsticky|number|ored|overflow|posedge|precedence|property|r|rclr|ref|reg|regalign|regfile|regwidth|reset|resetsignal|rset|rsvdset|rsvdsetX|rw|saturate|shared|sharedextbus|signal|signalwidth|singlepulse|sticky|stickybit|string|sw|swacc|swmod|swwe|swwel|sync|threshold|true|type|underflow|w|we|wel|woclr|woset|wr|xored";
this.$rules = {
"start": [
{token: "lparen", regex: "[\\[{]"},
{token: "rparen", regex: "[\\]}]"},
{token: "keyword", regex: "\\b(?:" + keywords + ")\\b"}
]
};
};
oop.inherits(HighlightRules, mTextHighlightRules.TextHighlightRules);
var Mode = function() {
this.HighlightRules = HighlightRules;
};
oop.inherits(Mode, mText.Mode);
Mode.prototype.$id = "xtext/rdl";
Mode.prototype.getCompletions = function(state, session, pos, prefix) {
return [];
}
return {
Mode: Mode
};
});

View File

@ -0,0 +1,129 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.minres.rdl</groupId>
<artifactId>com.minres.rdl.parent</artifactId>
<version>1.0.0-SNAPSHOT</version>
</parent>
<artifactId>com.minres.rdl.web</artifactId>
<packaging>war</packaging>
<build>
<sourceDirectory>src</sourceDirectory>
<resources>
<resource>
<directory>src</directory>
<excludes>
<exclude>**/*.java</exclude>
<exclude>**/*.xtend</exclude>
</excludes>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.eclipse.xtend</groupId>
<artifactId>xtend-maven-plugin</artifactId>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<warSourceDirectory>WebRoot</warSourceDirectory>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>9.4.9.v20180320</version>
<configuration>
<webAppSourceDirectory>WebRoot</webAppSourceDirectory>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.9.1</version>
<executions>
<execution>
<id>add-source</id>
<phase>initialize</phase>
<goals>
<goal>add-source</goal>
<goal>add-resource</goal>
</goals>
<configuration>
<sources>
<source>src-gen</source>
</sources>
<resources>
<resource>
<directory>src-gen</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>com.minres.rdl</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>com.minres.rdl.ide</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.xtext</groupId>
<artifactId>org.eclipse.xtext.xbase.web</artifactId>
<version>${xtextVersion}</version>
</dependency>
<dependency>
<groupId>org.eclipse.xtext</groupId>
<artifactId>org.eclipse.xtext.web.servlet</artifactId>
<version>${xtextVersion}</version>
</dependency>
<dependency>
<groupId>org.eclipse.xtend</groupId>
<artifactId>org.eclipse.xtend.lib</artifactId>
<version>${xtextVersion}</version>
</dependency>
<dependency>
<groupId>org.webjars</groupId>
<artifactId>requirejs</artifactId>
<version>2.3.2</version>
</dependency>
<dependency>
<groupId>org.webjars</groupId>
<artifactId>jquery</artifactId>
<version>2.2.4</version>
</dependency>
<dependency>
<groupId>org.webjars</groupId>
<artifactId>ace</artifactId>
<version>1.2.3</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-annotations</artifactId>
<version>9.4.9.v20180320</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.21</version>
<scope>provided</scope>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,14 @@
/*
* generated by Xtext 2.14.0
*/
package com.minres.rdl.web;
import org.eclipse.xtext.web.server.DefaultWebModule;
/**
* Manual modifications go to {@link RDLWebModule}.
*/
@SuppressWarnings("all")
public abstract class AbstractRDLWebModule extends DefaultWebModule {
}

View File

@ -0,0 +1,32 @@
/*
* generated by Xtext 2.14.0
*/
package com.minres.rdl.web
import javax.servlet.annotation.WebServlet
import org.eclipse.xtext.util.DisposableRegistry
import org.eclipse.xtext.web.servlet.XtextServlet
/**
* Deploy this class into a servlet container to enable DSL-specific services.
*/
@WebServlet(name = 'XtextServices', urlPatterns = '/xtext-service/*')
class RDLServlet extends XtextServlet {
DisposableRegistry disposableRegistry
override init() {
super.init()
val injector = new RDLWebSetup().createInjectorAndDoEMFRegistration()
disposableRegistry = injector.getInstance(DisposableRegistry)
}
override destroy() {
if (disposableRegistry !== null) {
disposableRegistry.dispose()
disposableRegistry = null
}
super.destroy()
}
}

View File

@ -0,0 +1,11 @@
/*
* generated by Xtext 2.14.0
*/
package com.minres.rdl.web
/**
* Use this class to register additional components to be used within the web application.
*/
class RDLWebModule extends AbstractRDLWebModule {
}

View File

@ -0,0 +1,22 @@
/*
* generated by Xtext 2.14.0
*/
package com.minres.rdl.web
import com.google.inject.Guice
import com.google.inject.Injector
import com.minres.rdl.RDLRuntimeModule
import com.minres.rdl.RDLStandaloneSetup
import com.minres.rdl.ide.RDLIdeModule
import org.eclipse.xtext.util.Modules2
/**
* Initialization support for running Xtext languages in web applications.
*/
class RDLWebSetup extends RDLStandaloneSetup {
override Injector createInjector() {
return Guice.createInjector(Modules2.mixin(new RDLRuntimeModule, new RDLIdeModule, new RDLWebModule))
}
}

View File

@ -0,0 +1,54 @@
/*
* generated by Xtext 2.14.0
*/
package com.minres.rdl.web
import java.net.InetSocketAddress
import org.eclipse.jetty.annotations.AnnotationConfiguration
import org.eclipse.jetty.server.Server
import org.eclipse.jetty.util.log.Slf4jLog
import org.eclipse.jetty.webapp.MetaInfConfiguration
import org.eclipse.jetty.webapp.WebAppContext
import org.eclipse.jetty.webapp.WebInfConfiguration
import org.eclipse.jetty.webapp.WebXmlConfiguration
/**
* This program starts an HTTP server for testing the web integration of your DSL.
* Just execute it and point a web browser to http://localhost:8080/
*/
class ServerLauncher {
def static void main(String[] args) {
val server = new Server(new InetSocketAddress('localhost', 8080))
server.handler = new WebAppContext => [
resourceBase = 'WebRoot'
welcomeFiles = #["index.html"]
contextPath = "/"
configurations = #[
new AnnotationConfiguration,
new WebXmlConfiguration,
new WebInfConfiguration,
new MetaInfConfiguration
]
setAttribute(WebInfConfiguration.CONTAINER_JAR_PATTERN, '.*/com\\.minres\\.rdl\\.web/.*,.*\\.jar')
setInitParameter("org.mortbay.jetty.servlet.Default.useFileMappedBuffer", "false")
]
val log = new Slf4jLog(ServerLauncher.name)
try {
server.start
log.info('Server started ' + server.getURI + '...')
new Thread[
log.info('Press enter to stop the server...')
val key = System.in.read
if (key != -1) {
server.stop
} else {
log.warn('Console input is not available. In order to stop the server, you need to cancel process manually.')
}
].start
server.join
} catch (Exception exception) {
log.warn(exception.message)
System.exit(1)
}
}
}

Some files were not shown because too many files have changed in this diff Show More