Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBogdan Gheorghe2011-10-27 14:45:12 +0000
committerBogdan Gheorghe2011-10-27 14:45:12 +0000
commit9f28e4622537fdf7819b8a70259274b3f80a8345 (patch)
tree50c532514455805629dec9b20cb8fa9a4c34e442 /bundles/org.eclipse.e4.tools.css.editor
parent538e09e75ee44c32978028a5a8b3efff5e47473d (diff)
downloadorg.eclipse.e4.tools-9f28e4622537fdf7819b8a70259274b3f80a8345.tar.gz
org.eclipse.e4.tools-9f28e4622537fdf7819b8a70259274b3f80a8345.tar.xz
org.eclipse.e4.tools-9f28e4622537fdf7819b8a70259274b3f80a8345.zip
XText-based css editorv20111027-1445
Diffstat (limited to 'bundles/org.eclipse.e4.tools.css.editor')
-rw-r--r--bundles/org.eclipse.e4.tools.css.editor/.antlr-generator-3.2.0.jarbin0 -> 1482584 bytes
-rw-r--r--bundles/org.eclipse.e4.tools.css.editor/.classpath9
-rw-r--r--bundles/org.eclipse.e4.tools.css.editor/.project34
-rw-r--r--bundles/org.eclipse.e4.tools.css.editor/GenerateCSS.mwe2.launch14
-rw-r--r--bundles/org.eclipse.e4.tools.css.editor/META-INF/MANIFEST.MF33
-rw-r--r--bundles/org.eclipse.e4.tools.css.editor/build.properties6
-rw-r--r--bundles/org.eclipse.e4.tools.css.editor/plugin.xml18
-rw-r--r--bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/AbstractCSSRuntimeModule.java162
-rw-r--r--bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore88
-rw-r--r--bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.genmodel72
-rw-r--r--bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.xmi609
-rw-r--r--bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSSStandaloneSetupGenerated.java44
-rw-r--r--bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/CSSFactory.java155
-rw-r--r--bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/CSSPackage.java1529
-rw-r--r--bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/Rules.java64
-rw-r--r--bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/URI.java62
-rw-r--r--bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/css_hash_class.java82
-rw-r--r--bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/css_import.java55
-rw-r--r--bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/declaration.java109
-rw-r--r--bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/element_name.java55
-rw-r--r--bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/expr.java64
-rw-r--r--bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/function.java82
-rw-r--r--bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/impl/CSSFactoryImpl.java254
-rw-r--r--bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/impl/CSSPackageImpl.java838
-rw-r--r--bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/impl/RulesImpl.java210
-rw-r--r--bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/impl/URIImpl.java203
-rw-r--r--bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/impl/css_hash_classImpl.java237
-rw-r--r--bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/impl/css_importImpl.java181
-rw-r--r--bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/impl/declarationImpl.java325
-rw-r--r--bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/impl/element_nameImpl.java181
-rw-r--r--bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/impl/exprImpl.java225
-rw-r--r--bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/impl/functionImpl.java269
-rw-r--r--bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/impl/pseudoImpl.java269
-rw-r--r--bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/impl/selectorImpl.java340
-rw-r--r--bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/impl/simple_selectorImpl.java284
-rw-r--r--bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/impl/stylesheetImpl.java283
-rw-r--r--bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/impl/termImpl.java565
-rw-r--r--bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/pseudo.java82
-rw-r--r--bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/selector.java109
-rw-r--r--bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/simple_selector.java91
-rw-r--r--bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/stylesheet.java91
-rw-r--r--bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/term.java217
-rw-r--r--bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/util/CSSAdapterFactory.java376
-rw-r--r--bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/util/CSSSwitch.java400
-rw-r--r--bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parseTreeConstruction/CSSParsetreeConstructor.java3070
-rw-r--r--bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/CSSAntlrTokenFileProvider.java15
-rw-r--r--bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/CSSParser.java39
-rw-r--r--bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g1737
-rw-r--r--bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.tokens77
-rw-r--r--bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSSLexer.java2018
-rw-r--r--bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSSParser.java4665
-rw-r--r--bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/services/CSSGrammarAccess.java1279
-rw-r--r--bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/validation/AbstractCSSJavaValidator.java20
-rw-r--r--bundles/org.eclipse.e4.tools.css.editor/src/org/eclipse/e4/CSS.xtext90
-rw-r--r--bundles/org.eclipse.e4.tools.css.editor/src/org/eclipse/e4/CSSRuntimeModule.java11
-rw-r--r--bundles/org.eclipse.e4.tools.css.editor/src/org/eclipse/e4/CSSStandaloneSetup.java14
-rw-r--r--bundles/org.eclipse.e4.tools.css.editor/src/org/eclipse/e4/GenerateCSS.mwe2132
-rw-r--r--bundles/org.eclipse.e4.tools.css.editor/src/org/eclipse/e4/formatting/CSSFormatter.java27
-rw-r--r--bundles/org.eclipse.e4.tools.css.editor/src/org/eclipse/e4/generator/CSSGenerator.xtend15
-rw-r--r--bundles/org.eclipse.e4.tools.css.editor/src/org/eclipse/e4/generator/CSSGeneratorMWE.mwe232
-rw-r--r--bundles/org.eclipse.e4.tools.css.editor/src/org/eclipse/e4/generator/Main.java67
-rw-r--r--bundles/org.eclipse.e4.tools.css.editor/src/org/eclipse/e4/scoping/CSSScopeProvider.java17
-rw-r--r--bundles/org.eclipse.e4.tools.css.editor/src/org/eclipse/e4/validation/CSSJavaValidator.java13
-rw-r--r--bundles/org.eclipse.e4.tools.css.editor/xtend-gen/org/eclipse/e4/generator/CSSGenerator.java12
64 files changed, 22726 insertions, 0 deletions
diff --git a/bundles/org.eclipse.e4.tools.css.editor/.antlr-generator-3.2.0.jar b/bundles/org.eclipse.e4.tools.css.editor/.antlr-generator-3.2.0.jar
new file mode 100644
index 00000000..42434924
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.css.editor/.antlr-generator-3.2.0.jar
Binary files differ
diff --git a/bundles/org.eclipse.e4.tools.css.editor/.classpath b/bundles/org.eclipse.e4.tools.css.editor/.classpath
new file mode 100644
index 00000000..3f1be502
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.css.editor/.classpath
@@ -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.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/bundles/org.eclipse.e4.tools.css.editor/.project b/bundles/org.eclipse.e4.tools.css.editor/.project
new file mode 100644
index 00000000..a36907a4
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.css.editor/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.e4.tools.css.editor</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+ </natures>
+</projectDescription>
diff --git a/bundles/org.eclipse.e4.tools.css.editor/GenerateCSS.mwe2.launch b/bundles/org.eclipse.e4.tools.css.editor/GenerateCSS.mwe2.launch
new file mode 100644
index 00000000..bd973d7a
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.css.editor/GenerateCSS.mwe2.launch
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.emf.mwe2.launch.Mwe2LaunchConfigurationType">
+<stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${working_set:&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;launchConfigurationWorkingSet factoryID=&quot;org.eclipse.ui.internal.WorkingSetFactory&quot; id=&quot;1299248699643_13&quot; label=&quot;working set&quot; name=&quot;working set&quot;&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/org.eclipse.e4.tools.css.editor&quot; type=&quot;4&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/org.eclipse.e4.tools.css.editor.generator&quot; type=&quot;4&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/org.eclipse.e4.tools.css.editor.tests&quot; type=&quot;4&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/org.eclipse.e4.tools.css.editor.ui&quot; type=&quot;4&quot;/&gt;&#10;&lt;/launchConfigurationWorkingSet&gt;}"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.e4.tools.css.editor"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="4"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="src/org/eclipse/e4/GenerateCSS.mwe2"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.e4.tools.css.editor"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xmx512m"/>
+</launchConfiguration>
diff --git a/bundles/org.eclipse.e4.tools.css.editor/META-INF/MANIFEST.MF b/bundles/org.eclipse.e4.tools.css.editor/META-INF/MANIFEST.MF
new file mode 100644
index 00000000..1ce8d51d
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.css.editor/META-INF/MANIFEST.MF
@@ -0,0 +1,33 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.e4.tools.css.editor
+Bundle-Vendor: My Company
+Bundle-Version: 1.0.0
+Bundle-SymbolicName: org.eclipse.e4.tools.css.editor; singleton:=true
+Bundle-ActivationPolicy: lazy
+Require-Bundle: org.eclipse.xtext;bundle-version="2.0.0";visibility:=reexport,
+ org.apache.log4j;bundle-version="1.2.15";visibility:=reexport,
+ org.apache.commons.logging;bundle-version="1.0.4";resolution:=optional;visibility:=reexport,
+ org.eclipse.xtext.generator;resolution:=optional,
+ org.eclipse.emf.codegen.ecore;resolution:=optional,
+ org.eclipse.emf.mwe.utils;resolution:=optional,
+ org.eclipse.emf.mwe2.launch;resolution:=optional,
+ org.eclipse.xtext.util,
+ org.eclipse.emf.ecore,
+ org.eclipse.emf.common,
+ org.antlr.runtime,
+ org.eclipse.xtext.common.types
+Import-Package: org.apache.log4j,
+ org.apache.commons.logging,
+ org.eclipse.xtext.xbase.lib,
+ org.eclipse.xtext.xtend2.lib
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Export-Package: org.eclipse.e4,
+ org.eclipse.e4.services,
+ org.eclipse.e4.cSS,
+ org.eclipse.e4.cSS.impl,
+ org.eclipse.e4.cSS.util,
+ org.eclipse.e4.parseTreeConstruction,
+ org.eclipse.e4.parser.antlr,
+ org.eclipse.e4.parser.antlr.internal,
+ org.eclipse.e4.validation
diff --git a/bundles/org.eclipse.e4.tools.css.editor/build.properties b/bundles/org.eclipse.e4.tools.css.editor/build.properties
new file mode 100644
index 00000000..31255ed0
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.css.editor/build.properties
@@ -0,0 +1,6 @@
+source.. = src/,\
+ src-gen/,\
+ xtend-gen/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml \ No newline at end of file
diff --git a/bundles/org.eclipse.e4.tools.css.editor/plugin.xml b/bundles/org.eclipse.e4.tools.css.editor/plugin.xml
new file mode 100644
index 00000000..a141ff46
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.css.editor/plugin.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<plugin>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <package
+ uri = "http://www.eclipse.org/e4/CSS"
+ class = "org.eclipse.e4.cSS.CSSPackage"
+ genModel = "org/eclipse/e4/CSS.genmodel" />
+
+ </extension>
+
+
+
+
+
+</plugin>
diff --git a/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/AbstractCSSRuntimeModule.java b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/AbstractCSSRuntimeModule.java
new file mode 100644
index 00000000..1852e451
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/AbstractCSSRuntimeModule.java
@@ -0,0 +1,162 @@
+/*
+ * generated by Xtext
+ */
+package org.eclipse.e4;
+
+import java.util.Properties;
+
+import org.eclipse.xtext.Constants;
+import org.eclipse.xtext.service.DefaultRuntimeModule;
+
+import com.google.inject.Binder;
+import com.google.inject.name.Names;
+
+/**
+ * Manual modifications go to {org.eclipse.e4.CSSRuntimeModule}
+ */
+ @SuppressWarnings("all")
+public abstract class AbstractCSSRuntimeModule extends DefaultRuntimeModule {
+
+ protected Properties properties = null;
+
+ @Override
+ public void configure(Binder binder) {
+ properties = tryBindProperties(binder, "org/eclipse/e4/CSS.properties");
+ super.configure(binder);
+ }
+
+ public void configureLanguageName(Binder binder) {
+ binder.bind(String.class).annotatedWith(Names.named(Constants.LANGUAGE_NAME)).toInstance("org.eclipse.e4.CSS");
+ }
+
+ public void configureFileExtensions(Binder binder) {
+ if (properties == null || properties.getProperty(Constants.FILE_EXTENSIONS) == null)
+ binder.bind(String.class).annotatedWith(Names.named(Constants.FILE_EXTENSIONS)).toInstance("css");
+ }
+
+ // contributed by org.eclipse.xtext.generator.grammarAccess.GrammarAccessFragment
+ public Class<? extends org.eclipse.xtext.IGrammarAccess> bindIGrammarAccess() {
+ return org.eclipse.e4.services.CSSGrammarAccess.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.parseTreeConstructor.ParseTreeConstructorFragment
+ public Class<? extends org.eclipse.xtext.parsetree.reconstr.IParseTreeConstructor> bindIParseTreeConstructor() {
+ return org.eclipse.e4.parseTreeConstruction.CSSParsetreeConstructor.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+ public Class<? extends org.eclipse.xtext.parser.IParser> bindIParser() {
+ return org.eclipse.e4.parser.antlr.CSSParser.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+ public Class<? extends org.eclipse.xtext.parser.ITokenToStringConverter> bindITokenToStringConverter() {
+ return org.eclipse.xtext.parser.antlr.AntlrTokenToStringConverter.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+ public Class<? extends org.eclipse.xtext.parser.antlr.IAntlrTokenFileProvider> bindIAntlrTokenFileProvider() {
+ return org.eclipse.e4.parser.antlr.CSSAntlrTokenFileProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+ public Class<? extends org.eclipse.xtext.parser.antlr.Lexer> bindLexer() {
+ return org.eclipse.e4.parser.antlr.internal.InternalCSSLexer.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+ public com.google.inject.Provider<org.eclipse.e4.parser.antlr.internal.InternalCSSLexer> provideInternalCSSLexer() {
+ return org.eclipse.xtext.parser.antlr.LexerProvider.create(org.eclipse.e4.parser.antlr.internal.InternalCSSLexer.class);
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+ public void configureRuntimeLexer(com.google.inject.Binder binder) {
+ binder.bind(org.eclipse.xtext.parser.antlr.Lexer.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.parser.antlr.LexerBindings.RUNTIME)).to(org.eclipse.e4.parser.antlr.internal.InternalCSSLexer.class);
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+ public Class<? extends org.eclipse.xtext.parser.antlr.ITokenDefProvider> bindITokenDefProvider() {
+ return org.eclipse.xtext.parser.antlr.AntlrTokenDefProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.validation.JavaValidatorFragment
+ @org.eclipse.xtext.service.SingletonBinding(eager=true) public Class<? extends org.eclipse.e4.validation.CSSJavaValidator> bindCSSJavaValidator() {
+ return org.eclipse.e4.validation.CSSJavaValidator.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.scoping.AbstractScopingFragment
+ public Class<? extends org.eclipse.xtext.scoping.IScopeProvider> bindIScopeProvider() {
+ return org.eclipse.e4.scoping.CSSScopeProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.scoping.AbstractScopingFragment
+ public void configureIScopeProviderDelegate(com.google.inject.Binder binder) {
+ binder.bind(org.eclipse.xtext.scoping.IScopeProvider.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.scoping.impl.AbstractDeclarativeScopeProvider.NAMED_DELEGATE)).to(org.eclipse.xtext.scoping.impl.ImportedNamespaceAwareLocalScopeProvider.class);
+ }
+
+ // contributed by org.eclipse.xtext.generator.scoping.AbstractScopingFragment
+ public void configureIgnoreCaseLinking(com.google.inject.Binder binder) {
+ binder.bindConstant().annotatedWith(org.eclipse.xtext.scoping.IgnoreCaseLinking.class).to(false);
+ }
+
+ // contributed by org.eclipse.xtext.generator.exporting.QualifiedNamesFragment
+ public Class<? extends org.eclipse.xtext.naming.IQualifiedNameProvider> bindIQualifiedNameProvider() {
+ return org.eclipse.xtext.naming.DefaultDeclarativeQualifiedNameProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+ public Class<? extends org.eclipse.xtext.resource.IContainer.Manager> bindIContainer$Manager() {
+ return org.eclipse.xtext.resource.containers.StateBasedContainerManager.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+ public Class<? extends org.eclipse.xtext.resource.containers.IAllContainersState.Provider> bindIAllContainersState$Provider() {
+ return org.eclipse.xtext.resource.containers.ResourceSetBasedAllContainersStateProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+ public void configureIResourceDescriptions(com.google.inject.Binder binder) {
+ binder.bind(org.eclipse.xtext.resource.IResourceDescriptions.class).to(org.eclipse.xtext.resource.impl.ResourceSetBasedResourceDescriptions.class);
+ }
+
+ // contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+ public void configureIResourceDescriptionsBuilderScope(com.google.inject.Binder binder) {
+ binder.bind(org.eclipse.xtext.resource.IResourceDescriptions.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.resource.impl.ResourceDescriptionsProvider.NAMED_BUILDER_SCOPE)).to(org.eclipse.xtext.resource.impl.ResourceSetBasedResourceDescriptions.class);
+ }
+
+ // contributed by org.eclipse.xtext.generator.generator.GeneratorFragment
+ public Class<? extends org.eclipse.xtext.generator.IGenerator> bindIGenerator() {
+ return org.eclipse.e4.generator.CSSGenerator.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.formatting.FormatterFragment
+ public Class<? extends org.eclipse.xtext.formatting.IFormatter> bindIFormatter() {
+ return org.eclipse.e4.formatting.CSSFormatter.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+ public java.lang.ClassLoader bindClassLoaderToInstance() {
+ return getClass().getClassLoader();
+ }
+
+ // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+ public org.eclipse.xtext.common.types.TypesFactory bindTypesFactoryToInstance() {
+ return org.eclipse.xtext.common.types.TypesFactory.eINSTANCE;
+ }
+
+ // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+ public Class<? extends org.eclipse.xtext.common.types.access.IJvmTypeProvider.Factory> bindIJvmTypeProvider$Factory() {
+ return org.eclipse.xtext.common.types.access.ClasspathTypeProviderFactory.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+ public Class<? extends org.eclipse.xtext.common.types.xtext.AbstractTypeScopeProvider> bindAbstractTypeScopeProvider() {
+ return org.eclipse.xtext.common.types.xtext.ClasspathBasedTypeScopeProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+ public Class<? extends org.eclipse.xtext.scoping.IGlobalScopeProvider> bindIGlobalScopeProvider() {
+ return org.eclipse.xtext.common.types.xtext.TypesAwareDefaultGlobalScopeProvider.class;
+ }
+
+}
diff --git a/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore
new file mode 100644
index 00000000..5a6fdcbc
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="cSS"
+ nsURI="http://www.eclipse.org/e4/CSS" nsPrefix="cSS">
+ <eClassifiers xsi:type="ecore:EClass" name="stylesheet">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="location" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="importName" upperBound="-1"
+ eType="ecore:EClass platform:/resource/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore#//css_import"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="ruleset" upperBound="-1"
+ eType="ecore:EClass platform:/resource/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore#//Rules"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Rules">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="selectors" upperBound="-1"
+ eType="ecore:EClass platform:/resource/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore#//selector"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="declarations" upperBound="-1"
+ eType="ecore:EClass platform:/resource/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore#//declaration"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="css_import">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="string_name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="selector">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="simpleselectors" eType="ecore:EClass platform:/resource/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore#//simple_selector"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="combinator" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="selector" eType="ecore:EClass platform:/resource/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore#//selector"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="simple_selector">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="element" eType="ecore:EClass platform:/resource/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore#//element_name"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="id" upperBound="-1" eType="ecore:EClass platform:/resource/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore#//css_hash_class"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="pseudo" upperBound="-1"
+ eType="ecore:EClass platform:/resource/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore#//pseudo"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="pseudo">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="function" eType="ecore:EClass platform:/resource/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore#//function"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="element_name">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="declaration">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="property" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="expr" eType="ecore:EClass platform:/resource/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore#//expr"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="priority" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="expr">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="term" upperBound="-1" eType="ecore:EClass platform:/resource/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore#//term"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="operators" unique="false"
+ upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="term">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="unary" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="number" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="uri" eType="ecore:EClass platform:/resource/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore#//URI"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="color" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="function" eType="ecore:EClass platform:/resource/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore#//function"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="function">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="expr" eType="ecore:EClass platform:/resource/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore#//expr"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="URI" eSuperTypes="platform:/resource/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore#//css_import">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" unique="false" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" unique="false" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="css_hash_class">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.genmodel b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.genmodel
new file mode 100644
index 00000000..d1d5df91
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.genmodel
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.eclipse.e4.tools.css.editor/src-gen"
+ editDirectory="/org.eclipse.e4.tools.css.editor.edit/src" editorDirectory="/org.eclipse.e4.tools.css.editor.editor/src"
+ modelPluginID="org.eclipse.e4.tools.css.editor" forceOverwrite="true" modelName="CSS"
+ updateClasspath="false" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
+ complianceLevel="5.0" copyrightFields="false" editPluginID="org.eclipse.e4.tools.css.editor.edit"
+ editorPluginID="org.eclipse.e4.tools.css.editor.editor">
+ <genPackages prefix="CSS" basePackage="org.eclipse.e4" disposableProviderFactory="true"
+ ecorePackage="platform:/resource/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore#/">
+ <genClasses ecoreClass="platform:/resource/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore#//stylesheet">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore#//stylesheet/location"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore#//stylesheet/importName"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore#//stylesheet/ruleset"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore#//Rules">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore#//Rules/selectors"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore#//Rules/declarations"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore#//css_import">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore#//css_import/string_name"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore#//selector">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore#//selector/simpleselectors"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore#//selector/combinator"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore#//selector/selector"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore#//simple_selector">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore#//simple_selector/element"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore#//simple_selector/id"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore#//simple_selector/pseudo"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore#//pseudo">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore#//pseudo/name"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore#//pseudo/function"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore#//element_name">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore#//element_name/name"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore#//declaration">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore#//declaration/property"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore#//declaration/expr"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore#//declaration/priority"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore#//expr">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore#//expr/term"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore#//expr/operators"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore#//term">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore#//term/unary"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore#//term/number"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore#//term/name"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore#//term/id"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore#//term/uri"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore#//term/color"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore#//term/function"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore#//function">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore#//function/name"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference platform:/resource/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore#//function/expr"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore#//URI">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore#//URI/name"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore#//URI/id"/>
+ </genClasses>
+ <genClasses ecoreClass="platform:/resource/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore#//css_hash_class">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore#//css_hash_class/type"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute platform:/resource/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.ecore#//css_hash_class/name"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.xmi b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.xmi
new file mode 100644
index 00000000..6c6b3438
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSS.xmi
@@ -0,0 +1,609 @@
+<?xml version="1.0" encoding="ASCII"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:xtext="http://www.eclipse.org/2008/Xtext">
+ <xtext:Grammar name="org.eclipse.e4.CSS" usedGrammars="/1">
+ <metamodelDeclarations xsi:type="xtext:GeneratedMetamodel" name="cSS">
+ <ePackage href="http://www.eclipse.org/e4/CSS#/"/>
+ </metamodelDeclarations>
+ <rules xsi:type="xtext:ParserRule" name="stylesheet">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/e4/CSS#//stylesheet"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Assignment" cardinality="?" feature="location" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.2"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" cardinality="*" feature="importName" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.2"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" cardinality="*" feature="ruleset" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.1"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="Rules">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/e4/CSS#//Rules"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Assignment" feature="selectors" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/>
+ </elements>
+ <elements xsi:type="xtext:Group" cardinality="*">
+ <elements xsi:type="xtext:Keyword" value=","/>
+ <elements xsi:type="xtext:Assignment" feature="selectors" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/>
+ </elements>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="{"/>
+ <elements xsi:type="xtext:Assignment" cardinality="?" feature="declarations" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.7"/>
+ </elements>
+ <elements xsi:type="xtext:Group" cardinality="*">
+ <elements xsi:type="xtext:Keyword" value=";"/>
+ <elements xsi:type="xtext:Assignment" cardinality="?" feature="declarations" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.7"/>
+ </elements>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="}"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="css_import">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/e4/CSS#//css_import"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="@import"/>
+ <elements xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:Assignment" feature="string_name" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.2"/>
+ </elements>
+ <elements xsi:type="xtext:RuleCall" rule="/0/@rules.11"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value=";"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="selector" definesHiddenTokens="true">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/e4/CSS#//selector"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Assignment" feature="simpleselectors" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.4"/>
+ </elements>
+ <elements xsi:type="xtext:Alternatives" cardinality="?">
+ <elements xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Assignment" feature="combinator" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.23"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" feature="selector" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/>
+ </elements>
+ </elements>
+ <elements xsi:type="xtext:Group">
+ <elements xsi:type="xtext:RuleCall" cardinality="+" rule="/1/@rules.5"/>
+ <elements xsi:type="xtext:Group" cardinality="?">
+ <elements xsi:type="xtext:Assignment" cardinality="?" feature="combinator" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.23"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" feature="selector" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/>
+ </elements>
+ </elements>
+ </elements>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="simple_selector">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/e4/CSS#//simple_selector"/>
+ </type>
+ <alternatives xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Assignment" feature="element" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.6"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" cardinality="*" feature="id" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.20"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" cardinality="*" feature="pseudo" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.5"/>
+ </elements>
+ </elements>
+ <elements xsi:type="xtext:Assignment" cardinality="+" feature="id" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.20"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="pseudo">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/e4/CSS#//pseudo"/>
+ </type>
+ <alternatives xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value=":"/>
+ <elements xsi:type="xtext:Assignment" feature="name" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.22"/>
+ </elements>
+ </elements>
+ <elements xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Assignment" feature="function" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.10"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" cardinality="?" feature="name" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.22"/>
+ </elements>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="element_name">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/e4/CSS#//element_name"/>
+ </type>
+ <alternatives xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:Assignment" feature="name" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.22"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" feature="name" operator="=">
+ <terminal xsi:type="xtext:Keyword" value="*"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="declaration">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/e4/CSS#//declaration"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Assignment" feature="property" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.22"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value=":"/>
+ <elements xsi:type="xtext:Assignment" feature="expr" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.8"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" cardinality="?" feature="priority" operator="=">
+ <terminal xsi:type="xtext:Keyword" value="!important"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="expr">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/e4/CSS#//expr"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Assignment" feature="term" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.9"/>
+ </elements>
+ <elements xsi:type="xtext:Group" cardinality="*">
+ <elements xsi:type="xtext:Assignment" cardinality="?" feature="operators" operator="+=">
+ <terminal xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:Keyword" value="/"/>
+ <elements xsi:type="xtext:Keyword" value=","/>
+ </terminal>
+ </elements>
+ <elements xsi:type="xtext:Assignment" feature="term" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.9"/>
+ </elements>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="term">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/e4/CSS#//term"/>
+ </type>
+ <alternatives xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Assignment" cardinality="?" feature="unary" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.24"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" feature="number" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.12"/>
+ </elements>
+ </elements>
+ <elements xsi:type="xtext:Assignment" feature="name" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.2"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" feature="id" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.22"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" feature="uri" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.11"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" feature="color" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.21"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" feature="function" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.10"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="function">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/e4/CSS#//function"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Assignment" feature="name" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.22"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="("/>
+ <elements xsi:type="xtext:Assignment" feature="expr" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.8"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value=")"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="URI">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/e4/CSS#//URI"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="url"/>
+ <elements xsi:type="xtext:Keyword" value="("/>
+ <elements xsi:type="xtext:Action">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/e4/CSS#//URI"/>
+ </type>
+ </elements>
+ <elements xsi:type="xtext:Alternatives" cardinality="*">
+ <elements xsi:type="xtext:Assignment" feature="name" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.2"/>
+ </elements>
+ <elements xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:Keyword" value="\"/>
+ <elements xsi:type="xtext:Keyword" value="/"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" feature="id" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.22"/>
+ </elements>
+ </elements>
+ </elements>
+ <elements xsi:type="xtext:Group" cardinality="?">
+ <elements xsi:type="xtext:Keyword" value="."/>
+ <elements xsi:type="xtext:Assignment" feature="id" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.22"/>
+ </elements>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value=")"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="unary_numbers">
+ <type metamodel="/1/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </type>
+ <alternatives xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:RuleCall" rule="/1/@rules.1"/>
+ <elements xsi:type="xtext:RuleCall" rule="/0/@rules.13"/>
+ <elements xsi:type="xtext:RuleCall" rule="/0/@rules.16"/>
+ <elements xsi:type="xtext:RuleCall" rule="/0/@rules.14"/>
+ <elements xsi:type="xtext:RuleCall" rule="/0/@rules.15"/>
+ <elements xsi:type="xtext:RuleCall" rule="/0/@rules.17"/>
+ <elements xsi:type="xtext:RuleCall" rule="/0/@rules.18"/>
+ <elements xsi:type="xtext:RuleCall" rule="/0/@rules.19"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="PERCENTAGE">
+ <type metamodel="/1/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:RuleCall" rule="/1/@rules.1"/>
+ <elements xsi:type="xtext:Keyword" value="%"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="EMS">
+ <type metamodel="/1/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:RuleCall" rule="/1/@rules.1"/>
+ <elements xsi:type="xtext:Keyword" value="em"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="EXS">
+ <type metamodel="/1/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:RuleCall" rule="/1/@rules.1"/>
+ <elements xsi:type="xtext:Keyword" value="ex"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="LENGTH" definesHiddenTokens="true">
+ <type metamodel="/1/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:RuleCall" rule="/1/@rules.1"/>
+ <elements xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:Keyword" value="px"/>
+ <elements xsi:type="xtext:Keyword" value="cm"/>
+ <elements xsi:type="xtext:Keyword" value="mm"/>
+ <elements xsi:type="xtext:Keyword" value="in"/>
+ <elements xsi:type="xtext:Keyword" value="pt"/>
+ <elements xsi:type="xtext:Keyword" value="pc"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="ANGLE">
+ <type metamodel="/1/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:RuleCall" rule="/1/@rules.1"/>
+ <elements xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:Keyword" value="deg"/>
+ <elements xsi:type="xtext:Keyword" value="rad"/>
+ <elements xsi:type="xtext:Keyword" value="grad"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="TIME">
+ <type metamodel="/1/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:RuleCall" rule="/1/@rules.1"/>
+ <elements xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:Keyword" value="ms"/>
+ <elements xsi:type="xtext:Keyword" value="s"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="FREQ">
+ <type metamodel="/1/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:RuleCall" rule="/1/@rules.1"/>
+ <elements xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:Keyword" value="hz"/>
+ <elements xsi:type="xtext:Keyword" value="khz"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="css_hash_class">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/e4/CSS#//css_hash_class"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Assignment" feature="type" operator="=">
+ <terminal xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:Keyword" value="#"/>
+ <elements xsi:type="xtext:Keyword" value="."/>
+ </terminal>
+ </elements>
+ <elements xsi:type="xtext:Assignment" feature="name" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.22"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:TerminalRule" name="hexdigits">
+ <type metamodel="/1/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="#"/>
+ <elements xsi:type="xtext:Alternatives" cardinality="+">
+ <elements xsi:type="xtext:CharacterRange">
+ <left value="0"/>
+ <right value="9"/>
+ </elements>
+ <elements xsi:type="xtext:CharacterRange">
+ <left value="a"/>
+ <right value="f"/>
+ </elements>
+ <elements xsi:type="xtext:CharacterRange">
+ <left value="A"/>
+ <right value="F"/>
+ </elements>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:TerminalRule" name="ident">
+ <type metamodel="/1/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:Keyword" value="_"/>
+ <elements xsi:type="xtext:Keyword" value="-"/>
+ <elements xsi:type="xtext:CharacterRange">
+ <left value="a"/>
+ <right value="z"/>
+ </elements>
+ <elements xsi:type="xtext:CharacterRange">
+ <left value="A"/>
+ <right value="Z"/>
+ </elements>
+ </elements>
+ <elements xsi:type="xtext:Alternatives" cardinality="*">
+ <elements xsi:type="xtext:Keyword" value="_"/>
+ <elements xsi:type="xtext:Keyword" value="-"/>
+ <elements xsi:type="xtext:CharacterRange">
+ <left value="a"/>
+ <right value="z"/>
+ </elements>
+ <elements xsi:type="xtext:CharacterRange">
+ <left value="A"/>
+ <right value="Z"/>
+ </elements>
+ <elements xsi:type="xtext:CharacterRange">
+ <left value="0"/>
+ <right value="9"/>
+ </elements>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="combinator" definesHiddenTokens="true" hiddenTokens="/1/@rules.5">
+ <type metamodel="/1/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </type>
+ <alternatives xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:Keyword" value="+"/>
+ <elements xsi:type="xtext:Keyword" value=">"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="unary_operator">
+ <type metamodel="/1/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </type>
+ <alternatives xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:Keyword" value="-"/>
+ <elements xsi:type="xtext:Keyword" value="+"/>
+ </alternatives>
+ </rules>
+ </xtext:Grammar>
+ <xtext:Grammar name="org.eclipse.xtext.common.Terminals" definesHiddenTokens="true" hiddenTokens="/1/@rules.5 /1/@rules.3 /1/@rules.4">
+ <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="ecore">
+ <ePackage href="http://www.eclipse.org/emf/2002/Ecore#/"/>
+ </metamodelDeclarations>
+ <rules xsi:type="xtext:TerminalRule" name="ID">
+ <type metamodel="/1/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" cardinality="?" value="^"/>
+ <elements xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:CharacterRange">
+ <left value="a"/>
+ <right value="z"/>
+ </elements>
+ <elements xsi:type="xtext:CharacterRange">
+ <left value="A"/>
+ <right value="Z"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="_"/>
+ </elements>
+ <elements xsi:type="xtext:Alternatives" cardinality="*">
+ <elements xsi:type="xtext:CharacterRange">
+ <left value="a"/>
+ <right value="z"/>
+ </elements>
+ <elements xsi:type="xtext:CharacterRange">
+ <left value="A"/>
+ <right value="Z"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="_"/>
+ <elements xsi:type="xtext:CharacterRange">
+ <left value="0"/>
+ <right value="9"/>
+ </elements>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:TerminalRule" name="INT">
+ <type metamodel="/1/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </type>
+ <alternatives xsi:type="xtext:CharacterRange" cardinality="+">
+ <left value="0"/>
+ <right value="9"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:TerminalRule" name="STRING">
+ <type metamodel="/1/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </type>
+ <alternatives xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="&quot;"/>
+ <elements xsi:type="xtext:Alternatives" cardinality="*">
+ <elements xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="\"/>
+ <elements xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:Keyword" value="b"/>
+ <elements xsi:type="xtext:Keyword" value="t"/>
+ <elements xsi:type="xtext:Keyword" value="n"/>
+ <elements xsi:type="xtext:Keyword" value="f"/>
+ <elements xsi:type="xtext:Keyword" value="r"/>
+ <elements xsi:type="xtext:Keyword" value="u"/>
+ <elements xsi:type="xtext:Keyword" value="&quot;"/>
+ <elements xsi:type="xtext:Keyword" value="'"/>
+ <elements xsi:type="xtext:Keyword" value="\"/>
+ </elements>
+ </elements>
+ <elements xsi:type="xtext:NegatedToken">
+ <terminal xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:Keyword" value="\"/>
+ <elements xsi:type="xtext:Keyword" value="&quot;"/>
+ </terminal>
+ </elements>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="&quot;"/>
+ </elements>
+ <elements xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="'"/>
+ <elements xsi:type="xtext:Alternatives" cardinality="*">
+ <elements xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="\"/>
+ <elements xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:Keyword" value="b"/>
+ <elements xsi:type="xtext:Keyword" value="t"/>
+ <elements xsi:type="xtext:Keyword" value="n"/>
+ <elements xsi:type="xtext:Keyword" value="f"/>
+ <elements xsi:type="xtext:Keyword" value="r"/>
+ <elements xsi:type="xtext:Keyword" value="u"/>
+ <elements xsi:type="xtext:Keyword" value="&quot;"/>
+ <elements xsi:type="xtext:Keyword" value="'"/>
+ <elements xsi:type="xtext:Keyword" value="\"/>
+ </elements>
+ </elements>
+ <elements xsi:type="xtext:NegatedToken">
+ <terminal xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:Keyword" value="\"/>
+ <elements xsi:type="xtext:Keyword" value="'"/>
+ </terminal>
+ </elements>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="'"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:TerminalRule" name="ML_COMMENT">
+ <type metamodel="/1/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="/*"/>
+ <elements xsi:type="xtext:UntilToken">
+ <terminal xsi:type="xtext:Keyword" value="*/"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:TerminalRule" name="SL_COMMENT">
+ <type metamodel="/1/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="//"/>
+ <elements xsi:type="xtext:NegatedToken" cardinality="*">
+ <terminal xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:Keyword" value="&#xA;"/>
+ <elements xsi:type="xtext:Keyword" value="&#xD;"/>
+ </terminal>
+ </elements>
+ <elements xsi:type="xtext:Group" cardinality="?">
+ <elements xsi:type="xtext:Keyword" cardinality="?" value="&#xD;"/>
+ <elements xsi:type="xtext:Keyword" value="&#xA;"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:TerminalRule" name="WS">
+ <type metamodel="/1/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </type>
+ <alternatives xsi:type="xtext:Alternatives" cardinality="+">
+ <elements xsi:type="xtext:Keyword" value=" "/>
+ <elements xsi:type="xtext:Keyword" value="&#x9;"/>
+ <elements xsi:type="xtext:Keyword" value="&#xD;"/>
+ <elements xsi:type="xtext:Keyword" value="&#xA;"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:TerminalRule" name="ANY_OTHER">
+ <type metamodel="/1/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </type>
+ <alternatives xsi:type="xtext:Wildcard"/>
+ </rules>
+ </xtext:Grammar>
+</xmi:XMI>
diff --git a/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSSStandaloneSetupGenerated.java b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSSStandaloneSetupGenerated.java
new file mode 100644
index 00000000..73234529
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/CSSStandaloneSetupGenerated.java
@@ -0,0 +1,44 @@
+
+package org.eclipse.e4;
+
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.xtext.ISetup;
+import org.eclipse.emf.ecore.resource.Resource;
+
+import com.google.inject.Guice;
+import com.google.inject.Injector;
+
+/**
+ * Generated from StandaloneSetup.xpt!
+ */
+@SuppressWarnings("all")
+public class CSSStandaloneSetupGenerated implements ISetup {
+
+ public Injector createInjectorAndDoEMFRegistration() {
+ org.eclipse.xtext.common.TerminalsStandaloneSetup.doSetup();
+
+ Injector injector = createInjector();
+ register(injector);
+ return injector;
+ }
+
+ public Injector createInjector() {
+ return Guice.createInjector(new org.eclipse.e4.CSSRuntimeModule());
+ }
+
+ public void register(Injector injector) {
+ if (!EPackage.Registry.INSTANCE.containsKey("http://www.eclipse.org/e4/CSS")) {
+ EPackage.Registry.INSTANCE.put("http://www.eclipse.org/e4/CSS", org.eclipse.e4.cSS.CSSPackage.eINSTANCE);
+ }
+
+ org.eclipse.xtext.resource.IResourceFactory resourceFactory = injector.getInstance(org.eclipse.xtext.resource.IResourceFactory.class);
+ org.eclipse.xtext.resource.IResourceServiceProvider serviceProvider = injector.getInstance(org.eclipse.xtext.resource.IResourceServiceProvider.class);
+ Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("css", resourceFactory);
+ org.eclipse.xtext.resource.IResourceServiceProvider.Registry.INSTANCE.getExtensionToFactoryMap().put("css", serviceProvider);
+
+
+
+
+
+ }
+}
diff --git a/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/CSSFactory.java b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/CSSFactory.java
new file mode 100644
index 00000000..ec7ae876
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/CSSFactory.java
@@ -0,0 +1,155 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.e4.cSS;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.e4.cSS.CSSPackage
+ * @generated
+ */
+public interface CSSFactory extends EFactory
+{
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ CSSFactory eINSTANCE = org.eclipse.e4.cSS.impl.CSSFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>stylesheet</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>stylesheet</em>'.
+ * @generated
+ */
+ stylesheet createstylesheet();
+
+ /**
+ * Returns a new object of class '<em>Rules</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Rules</em>'.
+ * @generated
+ */
+ Rules createRules();
+
+ /**
+ * Returns a new object of class '<em>css import</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>css import</em>'.
+ * @generated
+ */
+ css_import createcss_import();
+
+ /**
+ * Returns a new object of class '<em>selector</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>selector</em>'.
+ * @generated
+ */
+ selector createselector();
+
+ /**
+ * Returns a new object of class '<em>simple selector</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>simple selector</em>'.
+ * @generated
+ */
+ simple_selector createsimple_selector();
+
+ /**
+ * Returns a new object of class '<em>pseudo</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>pseudo</em>'.
+ * @generated
+ */
+ pseudo createpseudo();
+
+ /**
+ * Returns a new object of class '<em>element name</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>element name</em>'.
+ * @generated
+ */
+ element_name createelement_name();
+
+ /**
+ * Returns a new object of class '<em>declaration</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>declaration</em>'.
+ * @generated
+ */
+ declaration createdeclaration();
+
+ /**
+ * Returns a new object of class '<em>expr</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>expr</em>'.
+ * @generated
+ */
+ expr createexpr();
+
+ /**
+ * Returns a new object of class '<em>term</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>term</em>'.
+ * @generated
+ */
+ term createterm();
+
+ /**
+ * Returns a new object of class '<em>function</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>function</em>'.
+ * @generated
+ */
+ function createfunction();
+
+ /**
+ * Returns a new object of class '<em>URI</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>URI</em>'.
+ * @generated
+ */
+ URI createURI();
+
+ /**
+ * Returns a new object of class '<em>css hash class</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>css hash class</em>'.
+ * @generated
+ */
+ css_hash_class createcss_hash_class();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ CSSPackage getCSSPackage();
+
+} //CSSFactory
diff --git a/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/CSSPackage.java b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/CSSPackage.java
new file mode 100644
index 00000000..8182116d
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/CSSPackage.java
@@ -0,0 +1,1529 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.e4.cSS;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.e4.cSS.CSSFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface CSSPackage extends EPackage
+{
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "cSS";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/e4/CSS";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "cSS";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ CSSPackage eINSTANCE = org.eclipse.e4.cSS.impl.CSSPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.e4.cSS.impl.stylesheetImpl <em>stylesheet</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.e4.cSS.impl.stylesheetImpl
+ * @see org.eclipse.e4.cSS.impl.CSSPackageImpl#getstylesheet()
+ * @generated
+ */
+ int STYLESHEET = 0;
+
+ /**
+ * The feature id for the '<em><b>Location</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STYLESHEET__LOCATION = 0;
+
+ /**
+ * The feature id for the '<em><b>Import Name</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STYLESHEET__IMPORT_NAME = 1;
+
+ /**
+ * The feature id for the '<em><b>Ruleset</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STYLESHEET__RULESET = 2;
+
+ /**
+ * The number of structural features of the '<em>stylesheet</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STYLESHEET_FEATURE_COUNT = 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.e4.cSS.impl.RulesImpl <em>Rules</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.e4.cSS.impl.RulesImpl
+ * @see org.eclipse.e4.cSS.impl.CSSPackageImpl#getRules()
+ * @generated
+ */
+ int RULES = 1;
+
+ /**
+ * The feature id for the '<em><b>Selectors</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RULES__SELECTORS = 0;
+
+ /**
+ * The feature id for the '<em><b>Declarations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RULES__DECLARATIONS = 1;
+
+ /**
+ * The number of structural features of the '<em>Rules</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RULES_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.e4.cSS.impl.css_importImpl <em>css import</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.e4.cSS.impl.css_importImpl
+ * @see org.eclipse.e4.cSS.impl.CSSPackageImpl#getcss_import()
+ * @generated
+ */
+ int CSS_IMPORT = 2;
+
+ /**
+ * The feature id for the '<em><b>String name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CSS_IMPORT__STRING_NAME = 0;
+
+ /**
+ * The number of structural features of the '<em>css import</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CSS_IMPORT_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.e4.cSS.impl.selectorImpl <em>selector</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.e4.cSS.impl.selectorImpl
+ * @see org.eclipse.e4.cSS.impl.CSSPackageImpl#getselector()
+ * @generated
+ */
+ int SELECTOR = 3;
+
+ /**
+ * The feature id for the '<em><b>Simpleselectors</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SELECTOR__SIMPLESELECTORS = 0;
+
+ /**
+ * The feature id for the '<em><b>Combinator</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SELECTOR__COMBINATOR = 1;
+
+ /**
+ * The feature id for the '<em><b>Selector</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SELECTOR__SELECTOR = 2;
+
+ /**
+ * The number of structural features of the '<em>selector</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SELECTOR_FEATURE_COUNT = 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.e4.cSS.impl.simple_selectorImpl <em>simple selector</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.e4.cSS.impl.simple_selectorImpl
+ * @see org.eclipse.e4.cSS.impl.CSSPackageImpl#getsimple_selector()
+ * @generated
+ */
+ int SIMPLE_SELECTOR = 4;
+
+ /**
+ * The feature id for the '<em><b>Element</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SIMPLE_SELECTOR__ELEMENT = 0;
+
+ /**
+ * The feature id for the '<em><b>Id</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SIMPLE_SELECTOR__ID = 1;
+
+ /**
+ * The feature id for the '<em><b>Pseudo</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SIMPLE_SELECTOR__PSEUDO = 2;
+
+ /**
+ * The number of structural features of the '<em>simple selector</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SIMPLE_SELECTOR_FEATURE_COUNT = 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.e4.cSS.impl.pseudoImpl <em>pseudo</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.e4.cSS.impl.pseudoImpl
+ * @see org.eclipse.e4.cSS.impl.CSSPackageImpl#getpseudo()
+ * @generated
+ */
+ int PSEUDO = 5;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PSEUDO__NAME = 0;
+
+ /**
+ * The feature id for the '<em><b>Function</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PSEUDO__FUNCTION = 1;
+
+ /**
+ * The number of structural features of the '<em>pseudo</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PSEUDO_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.e4.cSS.impl.element_nameImpl <em>element name</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.e4.cSS.impl.element_nameImpl
+ * @see org.eclipse.e4.cSS.impl.CSSPackageImpl#getelement_name()
+ * @generated
+ */
+ int ELEMENT_NAME = 6;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ELEMENT_NAME__NAME = 0;
+
+ /**
+ * The number of structural features of the '<em>element name</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ELEMENT_NAME_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.e4.cSS.impl.declarationImpl <em>declaration</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.e4.cSS.impl.declarationImpl
+ * @see org.eclipse.e4.cSS.impl.CSSPackageImpl#getdeclaration()
+ * @generated
+ */
+ int DECLARATION = 7;
+
+ /**
+ * The feature id for the '<em><b>Property</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DECLARATION__PROPERTY = 0;
+
+ /**
+ * The feature id for the '<em><b>Expr</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DECLARATION__EXPR = 1;
+
+ /**
+ * The feature id for the '<em><b>Priority</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DECLARATION__PRIORITY = 2;
+
+ /**
+ * The number of structural features of the '<em>declaration</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DECLARATION_FEATURE_COUNT = 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.e4.cSS.impl.exprImpl <em>expr</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.e4.cSS.impl.exprImpl
+ * @see org.eclipse.e4.cSS.impl.CSSPackageImpl#getexpr()
+ * @generated
+ */
+ int EXPR = 8;
+
+ /**
+ * The feature id for the '<em><b>Term</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EXPR__TERM = 0;
+
+ /**
+ * The feature id for the '<em><b>Operators</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EXPR__OPERATORS = 1;
+
+ /**
+ * The number of structural features of the '<em>expr</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EXPR_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.e4.cSS.impl.termImpl <em>term</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.e4.cSS.impl.termImpl
+ * @see org.eclipse.e4.cSS.impl.CSSPackageImpl#getterm()
+ * @generated
+ */
+ int TERM = 9;
+
+ /**
+ * The feature id for the '<em><b>Unary</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TERM__UNARY = 0;
+
+ /**
+ * The feature id for the '<em><b>Number</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TERM__NUMBER = 1;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TERM__NAME = 2;
+
+ /**
+ * The feature id for the '<em><b>Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TERM__ID = 3;
+
+ /**
+ * The feature id for the '<em><b>Uri</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TERM__URI = 4;
+
+ /**
+ * The feature id for the '<em><b>Color</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TERM__COLOR = 5;
+
+ /**
+ * The feature id for the '<em><b>Function</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TERM__FUNCTION = 6;
+
+ /**
+ * The number of structural features of the '<em>term</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TERM_FEATURE_COUNT = 7;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.e4.cSS.impl.functionImpl <em>function</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.e4.cSS.impl.functionImpl
+ * @see org.eclipse.e4.cSS.impl.CSSPackageImpl#getfunction()
+ * @generated
+ */
+ int FUNCTION = 10;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FUNCTION__NAME = 0;
+
+ /**
+ * The feature id for the '<em><b>Expr</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FUNCTION__EXPR = 1;
+
+ /**
+ * The number of structural features of the '<em>function</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FUNCTION_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.e4.cSS.impl.URIImpl <em>URI</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.e4.cSS.impl.URIImpl
+ * @see org.eclipse.e4.cSS.impl.CSSPackageImpl#getURI()
+ * @generated
+ */
+ int URI = 11;
+
+ /**
+ * The feature id for the '<em><b>String name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int URI__STRING_NAME = CSS_IMPORT__STRING_NAME;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int URI__NAME = CSS_IMPORT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Id</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int URI__ID = CSS_IMPORT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>URI</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int URI_FEATURE_COUNT = CSS_IMPORT_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.e4.cSS.impl.css_hash_classImpl <em>css hash class</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.e4.cSS.impl.css_hash_classImpl
+ * @see org.eclipse.e4.cSS.impl.CSSPackageImpl#getcss_hash_class()
+ * @generated
+ */
+ int CSS_HASH_CLASS = 12;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CSS_HASH_CLASS__TYPE = 0;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CSS_HASH_CLASS__NAME = 1;
+
+ /**
+ * The number of structural features of the '<em>css hash class</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CSS_HASH_CLASS_FEATURE_COUNT = 2;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.e4.cSS.stylesheet <em>stylesheet</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>stylesheet</em>'.
+ * @see org.eclipse.e4.cSS.stylesheet
+ * @generated
+ */
+ EClass getstylesheet();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.e4.cSS.stylesheet#getLocation <em>Location</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Location</em>'.
+ * @see org.eclipse.e4.cSS.stylesheet#getLocation()
+ * @see #getstylesheet()
+ * @generated
+ */
+ EAttribute getstylesheet_Location();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.e4.cSS.stylesheet#getImportName <em>Import Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Import Name</em>'.
+ * @see org.eclipse.e4.cSS.stylesheet#getImportName()
+ * @see #getstylesheet()
+ * @generated
+ */
+ EReference getstylesheet_ImportName();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.e4.cSS.stylesheet#getRuleset <em>Ruleset</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Ruleset</em>'.
+ * @see org.eclipse.e4.cSS.stylesheet#getRuleset()
+ * @see #getstylesheet()
+ * @generated
+ */
+ EReference getstylesheet_Ruleset();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.e4.cSS.Rules <em>Rules</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Rules</em>'.
+ * @see org.eclipse.e4.cSS.Rules
+ * @generated
+ */
+ EClass getRules();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.e4.cSS.Rules#getSelectors <em>Selectors</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Selectors</em>'.
+ * @see org.eclipse.e4.cSS.Rules#getSelectors()
+ * @see #getRules()
+ * @generated
+ */
+ EReference getRules_Selectors();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.e4.cSS.Rules#getDeclarations <em>Declarations</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Declarations</em>'.
+ * @see org.eclipse.e4.cSS.Rules#getDeclarations()
+ * @see #getRules()
+ * @generated
+ */
+ EReference getRules_Declarations();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.e4.cSS.css_import <em>css import</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>css import</em>'.
+ * @see org.eclipse.e4.cSS.css_import
+ * @generated
+ */
+ EClass getcss_import();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.e4.cSS.css_import#getString_name <em>String name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>String name</em>'.
+ * @see org.eclipse.e4.cSS.css_import#getString_name()
+ * @see #getcss_import()
+ * @generated
+ */
+ EAttribute getcss_import_String_name();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.e4.cSS.selector <em>selector</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>selector</em>'.
+ * @see org.eclipse.e4.cSS.selector
+ * @generated
+ */
+ EClass getselector();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.e4.cSS.selector#getSimpleselectors <em>Simpleselectors</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Simpleselectors</em>'.
+ * @see org.eclipse.e4.cSS.selector#getSimpleselectors()
+ * @see #getselector()
+ * @generated
+ */
+ EReference getselector_Simpleselectors();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.e4.cSS.selector#getCombinator <em>Combinator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Combinator</em>'.
+ * @see org.eclipse.e4.cSS.selector#getCombinator()
+ * @see #getselector()
+ * @generated
+ */
+ EAttribute getselector_Combinator();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.e4.cSS.selector#getSelector <em>Selector</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Selector</em>'.
+ * @see org.eclipse.e4.cSS.selector#getSelector()
+ * @see #getselector()
+ * @generated
+ */
+ EReference getselector_Selector();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.e4.cSS.simple_selector <em>simple selector</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>simple selector</em>'.
+ * @see org.eclipse.e4.cSS.simple_selector
+ * @generated
+ */
+ EClass getsimple_selector();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.e4.cSS.simple_selector#getElement <em>Element</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Element</em>'.
+ * @see org.eclipse.e4.cSS.simple_selector#getElement()
+ * @see #getsimple_selector()
+ * @generated
+ */
+ EReference getsimple_selector_Element();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.e4.cSS.simple_selector#getId <em>Id</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Id</em>'.
+ * @see org.eclipse.e4.cSS.simple_selector#getId()
+ * @see #getsimple_selector()
+ * @generated
+ */
+ EReference getsimple_selector_Id();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.e4.cSS.simple_selector#getPseudo <em>Pseudo</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Pseudo</em>'.
+ * @see org.eclipse.e4.cSS.simple_selector#getPseudo()
+ * @see #getsimple_selector()
+ * @generated
+ */
+ EReference getsimple_selector_Pseudo();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.e4.cSS.pseudo <em>pseudo</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>pseudo</em>'.
+ * @see org.eclipse.e4.cSS.pseudo
+ * @generated
+ */
+ EClass getpseudo();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.e4.cSS.pseudo#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.e4.cSS.pseudo#getName()
+ * @see #getpseudo()
+ * @generated
+ */
+ EAttribute getpseudo_Name();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.e4.cSS.pseudo#getFunction <em>Function</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Function</em>'.
+ * @see org.eclipse.e4.cSS.pseudo#getFunction()
+ * @see #getpseudo()
+ * @generated
+ */
+ EReference getpseudo_Function();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.e4.cSS.element_name <em>element name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>element name</em>'.
+ * @see org.eclipse.e4.cSS.element_name
+ * @generated
+ */
+ EClass getelement_name();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.e4.cSS.element_name#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.e4.cSS.element_name#getName()
+ * @see #getelement_name()
+ * @generated
+ */
+ EAttribute getelement_name_Name();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.e4.cSS.declaration <em>declaration</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>declaration</em>'.
+ * @see org.eclipse.e4.cSS.declaration
+ * @generated
+ */
+ EClass getdeclaration();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.e4.cSS.declaration#getProperty <em>Property</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Property</em>'.
+ * @see org.eclipse.e4.cSS.declaration#getProperty()
+ * @see #getdeclaration()
+ * @generated
+ */
+ EAttribute getdeclaration_Property();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.e4.cSS.declaration#getExpr <em>Expr</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Expr</em>'.
+ * @see org.eclipse.e4.cSS.declaration#getExpr()
+ * @see #getdeclaration()
+ * @generated
+ */
+ EReference getdeclaration_Expr();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.e4.cSS.declaration#getPriority <em>Priority</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Priority</em>'.
+ * @see org.eclipse.e4.cSS.declaration#getPriority()
+ * @see #getdeclaration()
+ * @generated
+ */
+ EAttribute getdeclaration_Priority();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.e4.cSS.expr <em>expr</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>expr</em>'.
+ * @see org.eclipse.e4.cSS.expr
+ * @generated
+ */
+ EClass getexpr();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.e4.cSS.expr#getTerm <em>Term</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Term</em>'.
+ * @see org.eclipse.e4.cSS.expr#getTerm()
+ * @see #getexpr()
+ * @generated
+ */
+ EReference getexpr_Term();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.e4.cSS.expr#getOperators <em>Operators</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Operators</em>'.
+ * @see org.eclipse.e4.cSS.expr#getOperators()
+ * @see #getexpr()
+ * @generated
+ */
+ EAttribute getexpr_Operators();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.e4.cSS.term <em>term</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>term</em>'.
+ * @see org.eclipse.e4.cSS.term
+ * @generated
+ */
+ EClass getterm();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.e4.cSS.term#getUnary <em>Unary</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Unary</em>'.
+ * @see org.eclipse.e4.cSS.term#getUnary()
+ * @see #getterm()
+ * @generated
+ */
+ EAttribute getterm_Unary();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.e4.cSS.term#getNumber <em>Number</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Number</em>'.
+ * @see org.eclipse.e4.cSS.term#getNumber()
+ * @see #getterm()
+ * @generated
+ */
+ EAttribute getterm_Number();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.e4.cSS.term#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.e4.cSS.term#getName()
+ * @see #getterm()
+ * @generated
+ */
+ EAttribute getterm_Name();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.e4.cSS.term#getId <em>Id</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Id</em>'.
+ * @see org.eclipse.e4.cSS.term#getId()
+ * @see #getterm()
+ * @generated
+ */
+ EAttribute getterm_Id();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.e4.cSS.term#getUri <em>Uri</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Uri</em>'.
+ * @see org.eclipse.e4.cSS.term#getUri()
+ * @see #getterm()
+ * @generated
+ */
+ EReference getterm_Uri();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.e4.cSS.term#getColor <em>Color</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Color</em>'.
+ * @see org.eclipse.e4.cSS.term#getColor()
+ * @see #getterm()
+ * @generated
+ */
+ EAttribute getterm_Color();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.e4.cSS.term#getFunction <em>Function</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Function</em>'.
+ * @see org.eclipse.e4.cSS.term#getFunction()
+ * @see #getterm()
+ * @generated
+ */
+ EReference getterm_Function();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.e4.cSS.function <em>function</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>function</em>'.
+ * @see org.eclipse.e4.cSS.function
+ * @generated
+ */
+ EClass getfunction();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.e4.cSS.function#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.e4.cSS.function#getName()
+ * @see #getfunction()
+ * @generated
+ */
+ EAttribute getfunction_Name();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.e4.cSS.function#getExpr <em>Expr</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Expr</em>'.
+ * @see org.eclipse.e4.cSS.function#getExpr()
+ * @see #getfunction()
+ * @generated
+ */
+ EReference getfunction_Expr();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.e4.cSS.URI <em>URI</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>URI</em>'.
+ * @see org.eclipse.e4.cSS.URI
+ * @generated
+ */
+ EClass getURI();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.e4.cSS.URI#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Name</em>'.
+ * @see org.eclipse.e4.cSS.URI#getName()
+ * @see #getURI()
+ * @generated
+ */
+ EAttribute getURI_Name();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.e4.cSS.URI#getId <em>Id</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Id</em>'.
+ * @see org.eclipse.e4.cSS.URI#getId()
+ * @see #getURI()
+ * @generated
+ */
+ EAttribute getURI_Id();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.e4.cSS.css_hash_class <em>css hash class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>css hash class</em>'.
+ * @see org.eclipse.e4.cSS.css_hash_class
+ * @generated
+ */
+ EClass getcss_hash_class();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.e4.cSS.css_hash_class#getType <em>Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Type</em>'.
+ * @see org.eclipse.e4.cSS.css_hash_class#getType()
+ * @see #getcss_hash_class()
+ * @generated
+ */
+ EAttribute getcss_hash_class_Type();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.e4.cSS.css_hash_class#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.e4.cSS.css_hash_class#getName()
+ * @see #getcss_hash_class()
+ * @generated
+ */
+ EAttribute getcss_hash_class_Name();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ CSSFactory getCSSFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals
+ {
+ /**
+ * The meta object literal for the '{@link org.eclipse.e4.cSS.impl.stylesheetImpl <em>stylesheet</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.e4.cSS.impl.stylesheetImpl
+ * @see org.eclipse.e4.cSS.impl.CSSPackageImpl#getstylesheet()
+ * @generated
+ */
+ EClass STYLESHEET = eINSTANCE.getstylesheet();
+
+ /**
+ * The meta object literal for the '<em><b>Location</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute STYLESHEET__LOCATION = eINSTANCE.getstylesheet_Location();
+
+ /**
+ * The meta object literal for the '<em><b>Import Name</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference STYLESHEET__IMPORT_NAME = eINSTANCE.getstylesheet_ImportName();
+
+ /**
+ * The meta object literal for the '<em><b>Ruleset</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference STYLESHEET__RULESET = eINSTANCE.getstylesheet_Ruleset();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.e4.cSS.impl.RulesImpl <em>Rules</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.e4.cSS.impl.RulesImpl
+ * @see org.eclipse.e4.cSS.impl.CSSPackageImpl#getRules()
+ * @generated
+ */
+ EClass RULES = eINSTANCE.getRules();
+
+ /**
+ * The meta object literal for the '<em><b>Selectors</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference RULES__SELECTORS = eINSTANCE.getRules_Selectors();
+
+ /**
+ * The meta object literal for the '<em><b>Declarations</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference RULES__DECLARATIONS = eINSTANCE.getRules_Declarations();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.e4.cSS.impl.css_importImpl <em>css import</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.e4.cSS.impl.css_importImpl
+ * @see org.eclipse.e4.cSS.impl.CSSPackageImpl#getcss_import()
+ * @generated
+ */
+ EClass CSS_IMPORT = eINSTANCE.getcss_import();
+
+ /**
+ * The meta object literal for the '<em><b>String name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CSS_IMPORT__STRING_NAME = eINSTANCE.getcss_import_String_name();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.e4.cSS.impl.selectorImpl <em>selector</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.e4.cSS.impl.selectorImpl
+ * @see org.eclipse.e4.cSS.impl.CSSPackageImpl#getselector()
+ * @generated
+ */
+ EClass SELECTOR = eINSTANCE.getselector();
+
+ /**
+ * The meta object literal for the '<em><b>Simpleselectors</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SELECTOR__SIMPLESELECTORS = eINSTANCE.getselector_Simpleselectors();
+
+ /**
+ * The meta object literal for the '<em><b>Combinator</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SELECTOR__COMBINATOR = eINSTANCE.getselector_Combinator();
+
+ /**
+ * The meta object literal for the '<em><b>Selector</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SELECTOR__SELECTOR = eINSTANCE.getselector_Selector();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.e4.cSS.impl.simple_selectorImpl <em>simple selector</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.e4.cSS.impl.simple_selectorImpl
+ * @see org.eclipse.e4.cSS.impl.CSSPackageImpl#getsimple_selector()
+ * @generated
+ */
+ EClass SIMPLE_SELECTOR = eINSTANCE.getsimple_selector();
+
+ /**
+ * The meta object literal for the '<em><b>Element</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SIMPLE_SELECTOR__ELEMENT = eINSTANCE.getsimple_selector_Element();
+
+ /**
+ * The meta object literal for the '<em><b>Id</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SIMPLE_SELECTOR__ID = eINSTANCE.getsimple_selector_Id();
+
+ /**
+ * The meta object literal for the '<em><b>Pseudo</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SIMPLE_SELECTOR__PSEUDO = eINSTANCE.getsimple_selector_Pseudo();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.e4.cSS.impl.pseudoImpl <em>pseudo</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.e4.cSS.impl.pseudoImpl
+ * @see org.eclipse.e4.cSS.impl.CSSPackageImpl#getpseudo()
+ * @generated
+ */
+ EClass PSEUDO = eINSTANCE.getpseudo();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute PSEUDO__NAME = eINSTANCE.getpseudo_Name();
+
+ /**
+ * The meta object literal for the '<em><b>Function</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PSEUDO__FUNCTION = eINSTANCE.getpseudo_Function();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.e4.cSS.impl.element_nameImpl <em>element name</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.e4.cSS.impl.element_nameImpl
+ * @see org.eclipse.e4.cSS.impl.CSSPackageImpl#getelement_name()
+ * @generated
+ */
+ EClass ELEMENT_NAME = eINSTANCE.getelement_name();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ELEMENT_NAME__NAME = eINSTANCE.getelement_name_Name();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.e4.cSS.impl.declarationImpl <em>declaration</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.e4.cSS.impl.declarationImpl
+ * @see org.eclipse.e4.cSS.impl.CSSPackageImpl#getdeclaration()
+ * @generated
+ */
+ EClass DECLARATION = eINSTANCE.getdeclaration();
+
+ /**
+ * The meta object literal for the '<em><b>Property</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DECLARATION__PROPERTY = eINSTANCE.getdeclaration_Property();
+
+ /**
+ * The meta object literal for the '<em><b>Expr</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DECLARATION__EXPR = eINSTANCE.getdeclaration_Expr();
+
+ /**
+ * The meta object literal for the '<em><b>Priority</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DECLARATION__PRIORITY = eINSTANCE.getdeclaration_Priority();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.e4.cSS.impl.exprImpl <em>expr</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.e4.cSS.impl.exprImpl
+ * @see org.eclipse.e4.cSS.impl.CSSPackageImpl#getexpr()
+ * @generated
+ */
+ EClass EXPR = eINSTANCE.getexpr();
+
+ /**
+ * The meta object literal for the '<em><b>Term</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference EXPR__TERM = eINSTANCE.getexpr_Term();
+
+ /**
+ * The meta object literal for the '<em><b>Operators</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute EXPR__OPERATORS = eINSTANCE.getexpr_Operators();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.e4.cSS.impl.termImpl <em>term</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.e4.cSS.impl.termImpl
+ * @see org.eclipse.e4.cSS.impl.CSSPackageImpl#getterm()
+ * @generated
+ */
+ EClass TERM = eINSTANCE.getterm();
+
+ /**
+ * The meta object literal for the '<em><b>Unary</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TERM__UNARY = eINSTANCE.getterm_Unary();
+
+ /**
+ * The meta object literal for the '<em><b>Number</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TERM__NUMBER = eINSTANCE.getterm_Number();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TERM__NAME = eINSTANCE.getterm_Name();
+
+ /**
+ * The meta object literal for the '<em><b>Id</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TERM__ID = eINSTANCE.getterm_Id();
+
+ /**
+ * The meta object literal for the '<em><b>Uri</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TERM__URI = eINSTANCE.getterm_Uri();
+
+ /**
+ * The meta object literal for the '<em><b>Color</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TERM__COLOR = eINSTANCE.getterm_Color();
+
+ /**
+ * The meta object literal for the '<em><b>Function</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TERM__FUNCTION = eINSTANCE.getterm_Function();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.e4.cSS.impl.functionImpl <em>function</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.e4.cSS.impl.functionImpl
+ * @see org.eclipse.e4.cSS.impl.CSSPackageImpl#getfunction()
+ * @generated
+ */
+ EClass FUNCTION = eINSTANCE.getfunction();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute FUNCTION__NAME = eINSTANCE.getfunction_Name();
+
+ /**
+ * The meta object literal for the '<em><b>Expr</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference FUNCTION__EXPR = eINSTANCE.getfunction_Expr();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.e4.cSS.impl.URIImpl <em>URI</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.e4.cSS.impl.URIImpl
+ * @see org.eclipse.e4.cSS.impl.CSSPackageImpl#getURI()
+ * @generated
+ */
+ EClass URI = eINSTANCE.getURI();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute URI__NAME = eINSTANCE.getURI_Name();
+
+ /**
+ * The meta object literal for the '<em><b>Id</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute URI__ID = eINSTANCE.getURI_Id();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.e4.cSS.impl.css_hash_classImpl <em>css hash class</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.e4.cSS.impl.css_hash_classImpl
+ * @see org.eclipse.e4.cSS.impl.CSSPackageImpl#getcss_hash_class()
+ * @generated
+ */
+ EClass CSS_HASH_CLASS = eINSTANCE.getcss_hash_class();
+
+ /**
+ * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CSS_HASH_CLASS__TYPE = eINSTANCE.getcss_hash_class_Type();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CSS_HASH_CLASS__NAME = eINSTANCE.getcss_hash_class_Name();
+
+ }
+
+} //CSSPackage
diff --git a/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/Rules.java b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/Rules.java
new file mode 100644
index 00000000..759cb2b2
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/Rules.java
@@ -0,0 +1,64 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.e4.cSS;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Rules</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.e4.cSS.Rules#getSelectors <em>Selectors</em>}</li>
+ * <li>{@link org.eclipse.e4.cSS.Rules#getDeclarations <em>Declarations</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.e4.cSS.CSSPackage#getRules()
+ * @model
+ * @generated
+ */
+public interface Rules extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Selectors</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.e4.cSS.selector}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Selectors</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Selectors</em>' containment reference list.
+ * @see org.eclipse.e4.cSS.CSSPackage#getRules_Selectors()
+ * @model containment="true"
+ * @generated
+ */
+ EList<selector> getSelectors();
+
+ /**
+ * Returns the value of the '<em><b>Declarations</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.e4.cSS.declaration}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Declarations</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Declarations</em>' containment reference list.
+ * @see org.eclipse.e4.cSS.CSSPackage#getRules_Declarations()
+ * @model containment="true"
+ * @generated
+ */
+ EList<declaration> getDeclarations();
+
+} // Rules
diff --git a/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/URI.java b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/URI.java
new file mode 100644
index 00000000..c0cc2613
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/URI.java
@@ -0,0 +1,62 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.e4.cSS;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>URI</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.e4.cSS.URI#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.e4.cSS.URI#getId <em>Id</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.e4.cSS.CSSPackage#getURI()
+ * @model
+ * @generated
+ */
+public interface URI extends css_import
+{
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.String}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute list.
+ * @see org.eclipse.e4.cSS.CSSPackage#getURI_Name()
+ * @model unique="false"
+ * @generated
+ */
+ EList<String> getName();
+
+ /**
+ * Returns the value of the '<em><b>Id</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.String}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Id</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Id</em>' attribute list.
+ * @see org.eclipse.e4.cSS.CSSPackage#getURI_Id()
+ * @model unique="false"
+ * @generated
+ */
+ EList<String> getId();
+
+} // URI
diff --git a/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/css_hash_class.java b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/css_hash_class.java
new file mode 100644
index 00000000..8655b5d3
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/css_hash_class.java
@@ -0,0 +1,82 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.e4.cSS;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>css hash class</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.e4.cSS.css_hash_class#getType <em>Type</em>}</li>
+ * <li>{@link org.eclipse.e4.cSS.css_hash_class#getName <em>Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.e4.cSS.CSSPackage#getcss_hash_class()
+ * @model
+ * @generated
+ */
+public interface css_hash_class extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Type</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Type</em>' attribute.
+ * @see #setType(String)
+ * @see org.eclipse.e4.cSS.CSSPackage#getcss_hash_class_Type()
+ * @model
+ * @generated
+ */
+ String getType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.e4.cSS.css_hash_class#getType <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Type</em>' attribute.
+ * @see #getType()
+ * @generated
+ */
+ void setType(String value);
+
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.e4.cSS.CSSPackage#getcss_hash_class_Name()
+ * @model
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.e4.cSS.css_hash_class#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+} // css_hash_class
diff --git a/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/css_import.java b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/css_import.java
new file mode 100644
index 00000000..32710fbd
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/css_import.java
@@ -0,0 +1,55 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.e4.cSS;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>css import</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.e4.cSS.css_import#getString_name <em>String name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.e4.cSS.CSSPackage#getcss_import()
+ * @model
+ * @generated
+ */
+public interface css_import extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>String name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>String name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>String name</em>' attribute.
+ * @see #setString_name(String)
+ * @see org.eclipse.e4.cSS.CSSPackage#getcss_import_String_name()
+ * @model
+ * @generated
+ */
+ String getString_name();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.e4.cSS.css_import#getString_name <em>String name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>String name</em>' attribute.
+ * @see #getString_name()
+ * @generated
+ */
+ void setString_name(String value);
+
+} // css_import
diff --git a/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/declaration.java b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/declaration.java
new file mode 100644
index 00000000..0e9d831d
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/declaration.java
@@ -0,0 +1,109 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.e4.cSS;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>declaration</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.e4.cSS.declaration#getProperty <em>Property</em>}</li>
+ * <li>{@link org.eclipse.e4.cSS.declaration#getExpr <em>Expr</em>}</li>
+ * <li>{@link org.eclipse.e4.cSS.declaration#getPriority <em>Priority</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.e4.cSS.CSSPackage#getdeclaration()
+ * @model
+ * @generated
+ */
+public interface declaration extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Property</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Property</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Property</em>' attribute.
+ * @see #setProperty(String)
+ * @see org.eclipse.e4.cSS.CSSPackage#getdeclaration_Property()
+ * @model
+ * @generated
+ */
+ String getProperty();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.e4.cSS.declaration#getProperty <em>Property</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Property</em>' attribute.
+ * @see #getProperty()
+ * @generated
+ */
+ void setProperty(String value);
+
+ /**
+ * Returns the value of the '<em><b>Expr</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Expr</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Expr</em>' containment reference.
+ * @see #setExpr(expr)
+ * @see org.eclipse.e4.cSS.CSSPackage#getdeclaration_Expr()
+ * @model containment="true"
+ * @generated
+ */
+ expr getExpr();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.e4.cSS.declaration#getExpr <em>Expr</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Expr</em>' containment reference.
+ * @see #getExpr()
+ * @generated
+ */
+ void setExpr(expr value);
+
+ /**
+ * Returns the value of the '<em><b>Priority</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Priority</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Priority</em>' attribute.
+ * @see #setPriority(String)
+ * @see org.eclipse.e4.cSS.CSSPackage#getdeclaration_Priority()
+ * @model
+ * @generated
+ */
+ String getPriority();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.e4.cSS.declaration#getPriority <em>Priority</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Priority</em>' attribute.
+ * @see #getPriority()
+ * @generated
+ */
+ void setPriority(String value);
+
+} // declaration
diff --git a/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/element_name.java b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/element_name.java
new file mode 100644
index 00000000..73052de6
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/element_name.java
@@ -0,0 +1,55 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.e4.cSS;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>element name</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.e4.cSS.element_name#getName <em>Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.e4.cSS.CSSPackage#getelement_name()
+ * @model
+ * @generated
+ */
+public interface element_name extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.e4.cSS.CSSPackage#getelement_name_Name()
+ * @model
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.e4.cSS.element_name#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+} // element_name
diff --git a/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/expr.java b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/expr.java
new file mode 100644
index 00000000..a3d39fe3
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/expr.java
@@ -0,0 +1,64 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.e4.cSS;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>expr</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.e4.cSS.expr#getTerm <em>Term</em>}</li>
+ * <li>{@link org.eclipse.e4.cSS.expr#getOperators <em>Operators</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.e4.cSS.CSSPackage#getexpr()
+ * @model
+ * @generated
+ */
+public interface expr extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Term</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.e4.cSS.term}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Term</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Term</em>' containment reference list.
+ * @see org.eclipse.e4.cSS.CSSPackage#getexpr_Term()
+ * @model containment="true"
+ * @generated
+ */
+ EList<term> getTerm();
+
+ /**
+ * Returns the value of the '<em><b>Operators</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.String}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Operators</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Operators</em>' attribute list.
+ * @see org.eclipse.e4.cSS.CSSPackage#getexpr_Operators()
+ * @model unique="false"
+ * @generated
+ */
+ EList<String> getOperators();
+
+} // expr
diff --git a/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/function.java b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/function.java
new file mode 100644
index 00000000..8ecf5d79
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/function.java
@@ -0,0 +1,82 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.e4.cSS;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>function</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.e4.cSS.function#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.e4.cSS.function#getExpr <em>Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.e4.cSS.CSSPackage#getfunction()
+ * @model
+ * @generated
+ */
+public interface function extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.e4.cSS.CSSPackage#getfunction_Name()
+ * @model
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.e4.cSS.function#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Expr</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Expr</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Expr</em>' containment reference.
+ * @see #setExpr(expr)
+ * @see org.eclipse.e4.cSS.CSSPackage#getfunction_Expr()
+ * @model containment="true"
+ * @generated
+ */
+ expr getExpr();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.e4.cSS.function#getExpr <em>Expr</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Expr</em>' containment reference.
+ * @see #getExpr()
+ * @generated
+ */
+ void setExpr(expr value);
+
+} // function
diff --git a/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/impl/CSSFactoryImpl.java b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/impl/CSSFactoryImpl.java
new file mode 100644
index 00000000..6c1496a7
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/impl/CSSFactoryImpl.java
@@ -0,0 +1,254 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.e4.cSS.impl;
+
+import org.eclipse.e4.cSS.*;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CSSFactoryImpl extends EFactoryImpl implements CSSFactory
+{
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static CSSFactory init()
+ {
+ try
+ {
+ CSSFactory theCSSFactory = (CSSFactory)EPackage.Registry.INSTANCE.getEFactory("http://www.eclipse.org/e4/CSS");
+ if (theCSSFactory != null)
+ {
+ return theCSSFactory;
+ }
+ }
+ catch (Exception exception)
+ {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new CSSFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CSSFactoryImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass)
+ {
+ switch (eClass.getClassifierID())
+ {
+ case CSSPackage.STYLESHEET: return createstylesheet();
+ case CSSPackage.RULES: return createRules();
+ case CSSPackage.CSS_IMPORT: return createcss_import();
+ case CSSPackage.SELECTOR: return createselector();
+ case CSSPackage.SIMPLE_SELECTOR: return createsimple_selector();
+ case CSSPackage.PSEUDO: return createpseudo();
+ case CSSPackage.ELEMENT_NAME: return createelement_name();
+ case CSSPackage.DECLARATION: return createdeclaration();
+ case CSSPackage.EXPR: return createexpr();
+ case CSSPackage.TERM: return createterm();
+ case CSSPackage.FUNCTION: return createfunction();
+ case CSSPackage.URI: return createURI();
+ case CSSPackage.CSS_HASH_CLASS: return createcss_hash_class();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public stylesheet createstylesheet()
+ {
+ stylesheetImpl stylesheet = new stylesheetImpl();
+ return stylesheet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Rules createRules()
+ {
+ RulesImpl rules = new RulesImpl();
+ return rules;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public css_import createcss_import()
+ {
+ css_importImpl css_import = new css_importImpl();
+ return css_import;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public selector createselector()
+ {
+ selectorImpl selector = new selectorImpl();
+ return selector;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public simple_selector createsimple_selector()
+ {
+ simple_selectorImpl simple_selector = new simple_selectorImpl();
+ return simple_selector;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public pseudo createpseudo()
+ {
+ pseudoImpl pseudo = new pseudoImpl();
+ return pseudo;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public element_name createelement_name()
+ {
+ element_nameImpl element_name = new element_nameImpl();
+ return element_name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public declaration createdeclaration()
+ {
+ declarationImpl declaration = new declarationImpl();
+ return declaration;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public expr createexpr()
+ {
+ exprImpl expr = new exprImpl();
+ return expr;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public term createterm()
+ {
+ termImpl term = new termImpl();
+ return term;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public function createfunction()
+ {
+ functionImpl function = new functionImpl();
+ return function;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public URI createURI()
+ {
+ URIImpl uri = new URIImpl();
+ return uri;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public css_hash_class createcss_hash_class()
+ {
+ css_hash_classImpl css_hash_class = new css_hash_classImpl();
+ return css_hash_class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CSSPackage getCSSPackage()
+ {
+ return (CSSPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static CSSPackage getPackage()
+ {
+ return CSSPackage.eINSTANCE;
+ }
+
+} //CSSFactoryImpl
diff --git a/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/impl/CSSPackageImpl.java b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/impl/CSSPackageImpl.java
new file mode 100644
index 00000000..da6d9c45
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/impl/CSSPackageImpl.java
@@ -0,0 +1,838 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.e4.cSS.impl;
+
+import org.eclipse.e4.cSS.CSSFactory;
+import org.eclipse.e4.cSS.CSSPackage;
+import org.eclipse.e4.cSS.Rules;
+import org.eclipse.e4.cSS.css_hash_class;
+import org.eclipse.e4.cSS.css_import;
+import org.eclipse.e4.cSS.declaration;
+import org.eclipse.e4.cSS.element_name;
+import org.eclipse.e4.cSS.expr;
+import org.eclipse.e4.cSS.function;
+import org.eclipse.e4.cSS.pseudo;
+import org.eclipse.e4.cSS.selector;
+import org.eclipse.e4.cSS.simple_selector;
+import org.eclipse.e4.cSS.stylesheet;
+import org.eclipse.e4.cSS.term;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CSSPackageImpl extends EPackageImpl implements CSSPackage
+{
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass stylesheetEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass rulesEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass css_importEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass selectorEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass simple_selectorEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass pseudoEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass element_nameEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass declarationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass exprEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass termEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass functionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass uriEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass css_hash_classEClass = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.eclipse.e4.cSS.CSSPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private CSSPackageImpl()
+ {
+ super(eNS_URI, CSSFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link CSSPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static CSSPackage init()
+ {
+ if (isInited) return (CSSPackage)EPackage.Registry.INSTANCE.getEPackage(CSSPackage.eNS_URI);
+
+ // Obtain or create and register package
+ CSSPackageImpl theCSSPackage = (CSSPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof CSSPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new CSSPackageImpl());
+
+ isInited = true;
+
+ // Create package meta-data objects
+ theCSSPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theCSSPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theCSSPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(CSSPackage.eNS_URI, theCSSPackage);
+ return theCSSPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getstylesheet()
+ {
+ return stylesheetEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getstylesheet_Location()
+ {
+ return (EAttribute)stylesheetEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getstylesheet_ImportName()
+ {
+ return (EReference)stylesheetEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getstylesheet_Ruleset()
+ {
+ return (EReference)stylesheetEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getRules()
+ {
+ return rulesEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getRules_Selectors()
+ {
+ return (EReference)rulesEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getRules_Declarations()
+ {
+ return (EReference)rulesEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getcss_import()
+ {
+ return css_importEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getcss_import_String_name()
+ {
+ return (EAttribute)css_importEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getselector()
+ {
+ return selectorEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getselector_Simpleselectors()
+ {
+ return (EReference)selectorEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getselector_Combinator()
+ {
+ return (EAttribute)selectorEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getselector_Selector()
+ {
+ return (EReference)selectorEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getsimple_selector()
+ {
+ return simple_selectorEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getsimple_selector_Element()
+ {
+ return (EReference)simple_selectorEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getsimple_selector_Id()
+ {
+ return (EReference)simple_selectorEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getsimple_selector_Pseudo()
+ {
+ return (EReference)simple_selectorEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getpseudo()
+ {
+ return pseudoEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getpseudo_Name()
+ {
+ return (EAttribute)pseudoEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getpseudo_Function()
+ {
+ return (EReference)pseudoEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getelement_name()
+ {
+ return element_nameEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getelement_name_Name()
+ {
+ return (EAttribute)element_nameEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getdeclaration()
+ {
+ return declarationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getdeclaration_Property()
+ {
+ return (EAttribute)declarationEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getdeclaration_Expr()
+ {
+ return (EReference)declarationEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getdeclaration_Priority()
+ {
+ return (EAttribute)declarationEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getexpr()
+ {
+ return exprEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getexpr_Term()
+ {
+ return (EReference)exprEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getexpr_Operators()
+ {
+ return (EAttribute)exprEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getterm()
+ {
+ return termEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getterm_Unary()
+ {
+ return (EAttribute)termEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getterm_Number()
+ {
+ return (EAttribute)termEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getterm_Name()
+ {
+ return (EAttribute)termEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getterm_Id()
+ {
+ return (EAttribute)termEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getterm_Uri()
+ {
+ return (EReference)termEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getterm_Color()
+ {
+ return (EAttribute)termEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getterm_Function()
+ {
+ return (EReference)termEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getfunction()
+ {
+ return functionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getfunction_Name()
+ {
+ return (EAttribute)functionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getfunction_Expr()
+ {
+ return (EReference)functionEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getURI()
+ {
+ return uriEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getURI_Name()
+ {
+ return (EAttribute)uriEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getURI_Id()
+ {
+ return (EAttribute)uriEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getcss_hash_class()
+ {
+ return css_hash_classEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getcss_hash_class_Type()
+ {
+ return (EAttribute)css_hash_classEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getcss_hash_class_Name()
+ {
+ return (EAttribute)css_hash_classEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CSSFactory getCSSFactory()
+ {
+ return (CSSFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents()
+ {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ stylesheetEClass = createEClass(STYLESHEET);
+ createEAttribute(stylesheetEClass, STYLESHEET__LOCATION);
+ createEReference(stylesheetEClass, STYLESHEET__IMPORT_NAME);
+ createEReference(stylesheetEClass, STYLESHEET__RULESET);
+
+ rulesEClass = createEClass(RULES);
+ createEReference(rulesEClass, RULES__SELECTORS);
+ createEReference(rulesEClass, RULES__DECLARATIONS);
+
+ css_importEClass = createEClass(CSS_IMPORT);
+ createEAttribute(css_importEClass, CSS_IMPORT__STRING_NAME);
+
+ selectorEClass = createEClass(SELECTOR);
+ createEReference(selectorEClass, SELECTOR__SIMPLESELECTORS);
+ createEAttribute(selectorEClass, SELECTOR__COMBINATOR);
+ createEReference(selectorEClass, SELECTOR__SELECTOR);
+
+ simple_selectorEClass = createEClass(SIMPLE_SELECTOR);
+ createEReference(simple_selectorEClass, SIMPLE_SELECTOR__ELEMENT);
+ createEReference(simple_selectorEClass, SIMPLE_SELECTOR__ID);
+ createEReference(simple_selectorEClass, SIMPLE_SELECTOR__PSEUDO);
+
+ pseudoEClass = createEClass(PSEUDO);
+ createEAttribute(pseudoEClass, PSEUDO__NAME);
+ createEReference(pseudoEClass, PSEUDO__FUNCTION);
+
+ element_nameEClass = createEClass(ELEMENT_NAME);
+ createEAttribute(element_nameEClass, ELEMENT_NAME__NAME);
+
+ declarationEClass = createEClass(DECLARATION);
+ createEAttribute(declarationEClass, DECLARATION__PROPERTY);
+ createEReference(declarationEClass, DECLARATION__EXPR);
+ createEAttribute(declarationEClass, DECLARATION__PRIORITY);
+
+ exprEClass = createEClass(EXPR);
+ createEReference(exprEClass, EXPR__TERM);
+ createEAttribute(exprEClass, EXPR__OPERATORS);
+
+ termEClass = createEClass(TERM);
+ createEAttribute(termEClass, TERM__UNARY);
+ createEAttribute(termEClass, TERM__NUMBER);
+ createEAttribute(termEClass, TERM__NAME);
+ createEAttribute(termEClass, TERM__ID);
+ createEReference(termEClass, TERM__URI);
+ createEAttribute(termEClass, TERM__COLOR);
+ createEReference(termEClass, TERM__FUNCTION);
+
+ functionEClass = createEClass(FUNCTION);
+ createEAttribute(functionEClass, FUNCTION__NAME);
+ createEReference(functionEClass, FUNCTION__EXPR);
+
+ uriEClass = createEClass(URI);
+ createEAttribute(uriEClass, URI__NAME);
+ createEAttribute(uriEClass, URI__ID);
+
+ css_hash_classEClass = createEClass(CSS_HASH_CLASS);
+ createEAttribute(css_hash_classEClass, CSS_HASH_CLASS__TYPE);
+ createEAttribute(css_hash_classEClass, CSS_HASH_CLASS__NAME);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents()
+ {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ uriEClass.getESuperTypes().add(this.getcss_import());
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(stylesheetEClass, stylesheet.class, "stylesheet", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getstylesheet_Location(), ecorePackage.getEString(), "location", null, 0, 1, stylesheet.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getstylesheet_ImportName(), this.getcss_import(), null, "importName", null, 0, -1, stylesheet.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getstylesheet_Ruleset(), this.getRules(), null, "ruleset", null, 0, -1, stylesheet.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(rulesEClass, Rules.class, "Rules", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getRules_Selectors(), this.getselector(), null, "selectors", null, 0, -1, Rules.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getRules_Declarations(), this.getdeclaration(), null, "declarations", null, 0, -1, Rules.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(css_importEClass, css_import.class, "css_import", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getcss_import_String_name(), ecorePackage.getEString(), "string_name", null, 0, 1, css_import.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(selectorEClass, selector.class, "selector", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getselector_Simpleselectors(), this.getsimple_selector(), null, "simpleselectors", null, 0, 1, selector.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getselector_Combinator(), ecorePackage.getEString(), "combinator", null, 0, 1, selector.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getselector_Selector(), this.getselector(), null, "selector", null, 0, 1, selector.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(simple_selectorEClass, simple_selector.class, "simple_selector", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getsimple_selector_Element(), this.getelement_name(), null, "element", null, 0, 1, simple_selector.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getsimple_selector_Id(), this.getcss_hash_class(), null, "id", null, 0, -1, simple_selector.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getsimple_selector_Pseudo(), this.getpseudo(), null, "pseudo", null, 0, -1, simple_selector.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(pseudoEClass, pseudo.class, "pseudo", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getpseudo_Name(), ecorePackage.getEString(), "name", null, 0, 1, pseudo.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getpseudo_Function(), this.getfunction(), null, "function", null, 0, 1, pseudo.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(element_nameEClass, element_name.class, "element_name", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getelement_name_Name(), ecorePackage.getEString(), "name", null, 0, 1, element_name.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(declarationEClass, declaration.class, "declaration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getdeclaration_Property(), ecorePackage.getEString(), "property", null, 0, 1, declaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getdeclaration_Expr(), this.getexpr(), null, "expr", null, 0, 1, declaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getdeclaration_Priority(), ecorePackage.getEString(), "priority", null, 0, 1, declaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(exprEClass, expr.class, "expr", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getexpr_Term(), this.getterm(), null, "term", null, 0, -1, expr.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getexpr_Operators(), ecorePackage.getEString(), "operators", null, 0, -1, expr.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(termEClass, term.class, "term", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getterm_Unary(), ecorePackage.getEString(), "unary", null, 0, 1, term.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getterm_Number(), ecorePackage.getEString(), "number", null, 0, 1, term.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getterm_Name(), ecorePackage.getEString(), "name", null, 0, 1, term.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getterm_Id(), ecorePackage.getEString(), "id", null, 0, 1, term.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getterm_Uri(), this.getURI(), null, "uri", null, 0, 1, term.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getterm_Color(), ecorePackage.getEString(), "color", null, 0, 1, term.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getterm_Function(), this.getfunction(), null, "function", null, 0, 1, term.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(functionEClass, function.class, "function", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getfunction_Name(), ecorePackage.getEString(), "name", null, 0, 1, function.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getfunction_Expr(), this.getexpr(), null, "expr", null, 0, 1, function.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(uriEClass, org.eclipse.e4.cSS.URI.class, "URI", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getURI_Name(), ecorePackage.getEString(), "name", null, 0, -1, org.eclipse.e4.cSS.URI.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getURI_Id(), ecorePackage.getEString(), "id", null, 0, -1, org.eclipse.e4.cSS.URI.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(css_hash_classEClass, css_hash_class.class, "css_hash_class", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getcss_hash_class_Type(), ecorePackage.getEString(), "type", null, 0, 1, css_hash_class.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getcss_hash_class_Name(), ecorePackage.getEString(), "name", null, 0, 1, css_hash_class.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ // Create resource
+ createResource(eNS_URI);
+ }
+
+} //CSSPackageImpl
diff --git a/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/impl/RulesImpl.java b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/impl/RulesImpl.java
new file mode 100644
index 00000000..7525fe53
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/impl/RulesImpl.java
@@ -0,0 +1,210 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.e4.cSS.impl;
+
+import java.util.Collection;
+
+import org.eclipse.e4.cSS.CSSPackage;
+import org.eclipse.e4.cSS.Rules;
+import org.eclipse.e4.cSS.declaration;
+import org.eclipse.e4.cSS.selector;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Rules</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.e4.cSS.impl.RulesImpl#getSelectors <em>Selectors</em>}</li>
+ * <li>{@link org.eclipse.e4.cSS.impl.RulesImpl#getDeclarations <em>Declarations</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class RulesImpl extends MinimalEObjectImpl.Container implements Rules
+{
+ /**
+ * The cached value of the '{@link #getSelectors() <em>Selectors</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSelectors()
+ * @generated
+ * @ordered
+ */
+ protected EList<selector> selectors;
+
+ /**
+ * The cached value of the '{@link #getDeclarations() <em>Declarations</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDeclarations()
+ * @generated
+ * @ordered
+ */
+ protected EList<declaration> declarations;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected RulesImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return CSSPackage.Literals.RULES;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<selector> getSelectors()
+ {
+ if (selectors == null)
+ {
+ selectors = new EObjectContainmentEList<selector>(selector.class, this, CSSPackage.RULES__SELECTORS);
+ }
+ return selectors;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<declaration> getDeclarations()
+ {
+ if (declarations == null)
+ {
+ declarations = new EObjectContainmentEList<declaration>(declaration.class, this, CSSPackage.RULES__DECLARATIONS);
+ }
+ return declarations;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case CSSPackage.RULES__SELECTORS:
+ return ((InternalEList<?>)getSelectors()).basicRemove(otherEnd, msgs);
+ case CSSPackage.RULES__DECLARATIONS:
+ return ((InternalEList<?>)getDeclarations()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case CSSPackage.RULES__SELECTORS:
+ return getSelectors();
+ case CSSPackage.RULES__DECLARATIONS:
+ return getDeclarations();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case CSSPackage.RULES__SELECTORS:
+ getSelectors().clear();
+ getSelectors().addAll((Collection<? extends selector>)newValue);
+ return;
+ case CSSPackage.RULES__DECLARATIONS:
+ getDeclarations().clear();
+ getDeclarations().addAll((Collection<? extends declaration>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case CSSPackage.RULES__SELECTORS:
+ getSelectors().clear();
+ return;
+ case CSSPackage.RULES__DECLARATIONS:
+ getDeclarations().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case CSSPackage.RULES__SELECTORS:
+ return selectors != null && !selectors.isEmpty();
+ case CSSPackage.RULES__DECLARATIONS:
+ return declarations != null && !declarations.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //RulesImpl
diff --git a/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/impl/URIImpl.java b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/impl/URIImpl.java
new file mode 100644
index 00000000..800404d5
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/impl/URIImpl.java
@@ -0,0 +1,203 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.e4.cSS.impl;
+
+import java.util.Collection;
+
+import org.eclipse.e4.cSS.CSSPackage;
+import org.eclipse.e4.cSS.URI;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.util.EDataTypeEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>URI</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.e4.cSS.impl.URIImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.e4.cSS.impl.URIImpl#getId <em>Id</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class URIImpl extends css_importImpl implements URI
+{
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected EList<String> name;
+
+ /**
+ * The cached value of the '{@link #getId() <em>Id</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getId()
+ * @generated
+ * @ordered
+ */
+ protected EList<String> id;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected URIImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return CSSPackage.Literals.URI;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<String> getName()
+ {
+ if (name == null)
+ {
+ name = new EDataTypeEList<String>(String.class, this, CSSPackage.URI__NAME);
+ }
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<String> getId()
+ {
+ if (id == null)
+ {
+ id = new EDataTypeEList<String>(String.class, this, CSSPackage.URI__ID);
+ }
+ return id;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case CSSPackage.URI__NAME:
+ return getName();
+ case CSSPackage.URI__ID:
+ return getId();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case CSSPackage.URI__NAME:
+ getName().clear();
+ getName().addAll((Collection<? extends String>)newValue);
+ return;
+ case CSSPackage.URI__ID:
+ getId().clear();
+ getId().addAll((Collection<? extends String>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case CSSPackage.URI__NAME:
+ getName().clear();
+ return;
+ case CSSPackage.URI__ID:
+ getId().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case CSSPackage.URI__NAME:
+ return name != null && !name.isEmpty();
+ case CSSPackage.URI__ID:
+ return id != null && !id.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (name: ");
+ result.append(name);
+ result.append(", id: ");
+ result.append(id);
+ result.append(')');
+ return result.toString();
+ }
+
+} //URIImpl
diff --git a/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/impl/css_hash_classImpl.java b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/impl/css_hash_classImpl.java
new file mode 100644
index 00000000..206e4b70
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/impl/css_hash_classImpl.java
@@ -0,0 +1,237 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.e4.cSS.impl;
+
+import org.eclipse.e4.cSS.CSSPackage;
+import org.eclipse.e4.cSS.css_hash_class;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>css hash class</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.e4.cSS.impl.css_hash_classImpl#getType <em>Type</em>}</li>
+ * <li>{@link org.eclipse.e4.cSS.impl.css_hash_classImpl#getName <em>Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class css_hash_classImpl extends MinimalEObjectImpl.Container implements css_hash_class
+{
+ /**
+ * The default value of the '{@link #getType() <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected static final String TYPE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected String type = TYPE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected css_hash_classImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return CSSPackage.Literals.CSS_HASH_CLASS;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getType()
+ {
+ return type;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setType(String newType)
+ {
+ String oldType = type;
+ type = newType;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CSSPackage.CSS_HASH_CLASS__TYPE, oldType, type));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName)
+ {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CSSPackage.CSS_HASH_CLASS__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case CSSPackage.CSS_HASH_CLASS__TYPE:
+ return getType();
+ case CSSPackage.CSS_HASH_CLASS__NAME:
+ return getName();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case CSSPackage.CSS_HASH_CLASS__TYPE:
+ setType((String)newValue);
+ return;
+ case CSSPackage.CSS_HASH_CLASS__NAME:
+ setName((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case CSSPackage.CSS_HASH_CLASS__TYPE:
+ setType(TYPE_EDEFAULT);
+ return;
+ case CSSPackage.CSS_HASH_CLASS__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case CSSPackage.CSS_HASH_CLASS__TYPE:
+ return TYPE_EDEFAULT == null ? type != null : !TYPE_EDEFAULT.equals(type);
+ case CSSPackage.CSS_HASH_CLASS__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (type: ");
+ result.append(type);
+ result.append(", name: ");
+ result.append(name);
+ result.append(')');
+ return result.toString();
+ }
+
+} //css_hash_classImpl
diff --git a/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/impl/css_importImpl.java b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/impl/css_importImpl.java
new file mode 100644
index 00000000..ec9a5ef2
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/impl/css_importImpl.java
@@ -0,0 +1,181 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.e4.cSS.impl;
+
+import org.eclipse.e4.cSS.CSSPackage;
+import org.eclipse.e4.cSS.css_import;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>css import</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.e4.cSS.impl.css_importImpl#getString_name <em>String name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class css_importImpl extends MinimalEObjectImpl.Container implements css_import
+{
+ /**
+ * The default value of the '{@link #getString_name() <em>String name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getString_name()
+ * @generated
+ * @ordered
+ */
+ protected static final String STRING_NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getString_name() <em>String name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getString_name()
+ * @generated
+ * @ordered
+ */
+ protected String string_name = STRING_NAME_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected css_importImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return CSSPackage.Literals.CSS_IMPORT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getString_name()
+ {
+ return string_name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setString_name(String newString_name)
+ {
+ String oldString_name = string_name;
+ string_name = newString_name;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CSSPackage.CSS_IMPORT__STRING_NAME, oldString_name, string_name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case CSSPackage.CSS_IMPORT__STRING_NAME:
+ return getString_name();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case CSSPackage.CSS_IMPORT__STRING_NAME:
+ setString_name((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case CSSPackage.CSS_IMPORT__STRING_NAME:
+ setString_name(STRING_NAME_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case CSSPackage.CSS_IMPORT__STRING_NAME:
+ return STRING_NAME_EDEFAULT == null ? string_name != null : !STRING_NAME_EDEFAULT.equals(string_name);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (string_name: ");
+ result.append(string_name);
+ result.append(')');
+ return result.toString();
+ }
+
+} //css_importImpl
diff --git a/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/impl/declarationImpl.java b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/impl/declarationImpl.java
new file mode 100644
index 00000000..5fb819ae
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/impl/declarationImpl.java
@@ -0,0 +1,325 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.e4.cSS.impl;
+
+import org.eclipse.e4.cSS.CSSPackage;
+import org.eclipse.e4.cSS.declaration;
+import org.eclipse.e4.cSS.expr;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>declaration</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.e4.cSS.impl.declarationImpl#getProperty <em>Property</em>}</li>
+ * <li>{@link org.eclipse.e4.cSS.impl.declarationImpl#getExpr <em>Expr</em>}</li>
+ * <li>{@link org.eclipse.e4.cSS.impl.declarationImpl#getPriority <em>Priority</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class declarationImpl extends MinimalEObjectImpl.Container implements declaration
+{
+ /**
+ * The default value of the '{@link #getProperty() <em>Property</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getProperty()
+ * @generated
+ * @ordered
+ */
+ protected static final String PROPERTY_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getProperty() <em>Property</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getProperty()
+ * @generated
+ * @ordered
+ */
+ protected String property = PROPERTY_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getExpr() <em>Expr</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExpr()
+ * @generated
+ * @ordered
+ */
+ protected expr expr;
+
+ /**
+ * The default value of the '{@link #getPriority() <em>Priority</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPriority()
+ * @generated
+ * @ordered
+ */
+ protected static final String PRIORITY_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getPriority() <em>Priority</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPriority()
+ * @generated
+ * @ordered
+ */
+ protected String priority = PRIORITY_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected declarationImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return CSSPackage.Literals.DECLARATION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getProperty()
+ {
+ return property;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setProperty(String newProperty)
+ {
+ String oldProperty = property;
+ property = newProperty;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CSSPackage.DECLARATION__PROPERTY, oldProperty, property));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public expr getExpr()
+ {
+ return expr;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetExpr(expr newExpr, NotificationChain msgs)
+ {
+ expr oldExpr = expr;
+ expr = newExpr;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, CSSPackage.DECLARATION__EXPR, oldExpr, newExpr);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setExpr(expr newExpr)
+ {
+ if (newExpr != expr)
+ {
+ NotificationChain msgs = null;
+ if (expr != null)
+ msgs = ((InternalEObject)expr).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - CSSPackage.DECLARATION__EXPR, null, msgs);
+ if (newExpr != null)
+ msgs = ((InternalEObject)newExpr).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - CSSPackage.DECLARATION__EXPR, null, msgs);
+ msgs = basicSetExpr(newExpr, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CSSPackage.DECLARATION__EXPR, newExpr, newExpr));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getPriority()
+ {
+ return priority;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPriority(String newPriority)
+ {
+ String oldPriority = priority;
+ priority = newPriority;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CSSPackage.DECLARATION__PRIORITY, oldPriority, priority));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case CSSPackage.DECLARATION__EXPR:
+ return basicSetExpr(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case CSSPackage.DECLARATION__PROPERTY:
+ return getProperty();
+ case CSSPackage.DECLARATION__EXPR:
+ return getExpr();
+ case CSSPackage.DECLARATION__PRIORITY:
+ return getPriority();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case CSSPackage.DECLARATION__PROPERTY:
+ setProperty((String)newValue);
+ return;
+ case CSSPackage.DECLARATION__EXPR:
+ setExpr((expr)newValue);
+ return;
+ case CSSPackage.DECLARATION__PRIORITY:
+ setPriority((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case CSSPackage.DECLARATION__PROPERTY:
+ setProperty(PROPERTY_EDEFAULT);
+ return;
+ case CSSPackage.DECLARATION__EXPR:
+ setExpr((expr)null);
+ return;
+ case CSSPackage.DECLARATION__PRIORITY:
+ setPriority(PRIORITY_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case CSSPackage.DECLARATION__PROPERTY:
+ return PROPERTY_EDEFAULT == null ? property != null : !PROPERTY_EDEFAULT.equals(property);
+ case CSSPackage.DECLARATION__EXPR:
+ return expr != null;
+ case CSSPackage.DECLARATION__PRIORITY:
+ return PRIORITY_EDEFAULT == null ? priority != null : !PRIORITY_EDEFAULT.equals(priority);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (property: ");
+ result.append(property);
+ result.append(", priority: ");
+ result.append(priority);
+ result.append(')');
+ return result.toString();
+ }
+
+} //declarationImpl
diff --git a/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/impl/element_nameImpl.java b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/impl/element_nameImpl.java
new file mode 100644
index 00000000..9a20c8d6
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/impl/element_nameImpl.java
@@ -0,0 +1,181 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.e4.cSS.impl;
+
+import org.eclipse.e4.cSS.CSSPackage;
+import org.eclipse.e4.cSS.element_name;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>element name</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.e4.cSS.impl.element_nameImpl#getName <em>Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class element_nameImpl extends MinimalEObjectImpl.Container implements element_name
+{
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected element_nameImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return CSSPackage.Literals.ELEMENT_NAME;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName)
+ {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CSSPackage.ELEMENT_NAME__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case CSSPackage.ELEMENT_NAME__NAME:
+ return getName();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case CSSPackage.ELEMENT_NAME__NAME:
+ setName((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case CSSPackage.ELEMENT_NAME__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case CSSPackage.ELEMENT_NAME__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (name: ");
+ result.append(name);
+ result.append(')');
+ return result.toString();
+ }
+
+} //element_nameImpl
diff --git a/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/impl/exprImpl.java b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/impl/exprImpl.java
new file mode 100644
index 00000000..f1fabd98
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/impl/exprImpl.java
@@ -0,0 +1,225 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.e4.cSS.impl;
+
+import java.util.Collection;
+
+import org.eclipse.e4.cSS.CSSPackage;
+import org.eclipse.e4.cSS.expr;
+import org.eclipse.e4.cSS.term;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EDataTypeEList;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>expr</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.e4.cSS.impl.exprImpl#getTerm <em>Term</em>}</li>
+ * <li>{@link org.eclipse.e4.cSS.impl.exprImpl#getOperators <em>Operators</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class exprImpl extends MinimalEObjectImpl.Container implements expr
+{
+ /**
+ * The cached value of the '{@link #getTerm() <em>Term</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTerm()
+ * @generated
+ * @ordered
+ */
+ protected EList<term> term;
+
+ /**
+ * The cached value of the '{@link #getOperators() <em>Operators</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOperators()
+ * @generated
+ * @ordered
+ */
+ protected EList<String> operators;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected exprImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return CSSPackage.Literals.EXPR;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<term> getTerm()
+ {
+ if (term == null)
+ {
+ term = new EObjectContainmentEList<term>(term.class, this, CSSPackage.EXPR__TERM);
+ }
+ return term;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<String> getOperators()
+ {
+ if (operators == null)
+ {
+ operators = new EDataTypeEList<String>(String.class, this, CSSPackage.EXPR__OPERATORS);
+ }
+ return operators;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case CSSPackage.EXPR__TERM:
+ return ((InternalEList<?>)getTerm()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case CSSPackage.EXPR__TERM:
+ return getTerm();
+ case CSSPackage.EXPR__OPERATORS:
+ return getOperators();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case CSSPackage.EXPR__TERM:
+ getTerm().clear();
+ getTerm().addAll((Collection<? extends term>)newValue);
+ return;
+ case CSSPackage.EXPR__OPERATORS:
+ getOperators().clear();
+ getOperators().addAll((Collection<? extends String>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case CSSPackage.EXPR__TERM:
+ getTerm().clear();
+ return;
+ case CSSPackage.EXPR__OPERATORS:
+ getOperators().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case CSSPackage.EXPR__TERM:
+ return term != null && !term.isEmpty();
+ case CSSPackage.EXPR__OPERATORS:
+ return operators != null && !operators.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (operators: ");
+ result.append(operators);
+ result.append(')');
+ return result.toString();
+ }
+
+} //exprImpl
diff --git a/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/impl/functionImpl.java b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/impl/functionImpl.java
new file mode 100644
index 00000000..01717971
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/impl/functionImpl.java
@@ -0,0 +1,269 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.e4.cSS.impl;
+
+import org.eclipse.e4.cSS.CSSPackage;
+import org.eclipse.e4.cSS.expr;
+import org.eclipse.e4.cSS.function;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>function</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.e4.cSS.impl.functionImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.e4.cSS.impl.functionImpl#getExpr <em>Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class functionImpl extends MinimalEObjectImpl.Container implements function
+{
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getExpr() <em>Expr</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExpr()
+ * @generated
+ * @ordered
+ */
+ protected expr expr;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected functionImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return CSSPackage.Literals.FUNCTION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName)
+ {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CSSPackage.FUNCTION__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public expr getExpr()
+ {
+ return expr;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetExpr(expr newExpr, NotificationChain msgs)
+ {
+ expr oldExpr = expr;
+ expr = newExpr;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, CSSPackage.FUNCTION__EXPR, oldExpr, newExpr);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setExpr(expr newExpr)
+ {
+ if (newExpr != expr)
+ {
+ NotificationChain msgs = null;
+ if (expr != null)
+ msgs = ((InternalEObject)expr).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - CSSPackage.FUNCTION__EXPR, null, msgs);
+ if (newExpr != null)
+ msgs = ((InternalEObject)newExpr).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - CSSPackage.FUNCTION__EXPR, null, msgs);
+ msgs = basicSetExpr(newExpr, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CSSPackage.FUNCTION__EXPR, newExpr, newExpr));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case CSSPackage.FUNCTION__EXPR:
+ return basicSetExpr(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case CSSPackage.FUNCTION__NAME:
+ return getName();
+ case CSSPackage.FUNCTION__EXPR:
+ return getExpr();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case CSSPackage.FUNCTION__NAME:
+ setName((String)newValue);
+ return;
+ case CSSPackage.FUNCTION__EXPR:
+ setExpr((expr)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case CSSPackage.FUNCTION__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case CSSPackage.FUNCTION__EXPR:
+ setExpr((expr)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case CSSPackage.FUNCTION__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case CSSPackage.FUNCTION__EXPR:
+ return expr != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (name: ");
+ result.append(name);
+ result.append(')');
+ return result.toString();
+ }
+
+} //functionImpl
diff --git a/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/impl/pseudoImpl.java b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/impl/pseudoImpl.java
new file mode 100644
index 00000000..cc038b23
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/impl/pseudoImpl.java
@@ -0,0 +1,269 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.e4.cSS.impl;
+
+import org.eclipse.e4.cSS.CSSPackage;
+import org.eclipse.e4.cSS.function;
+import org.eclipse.e4.cSS.pseudo;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>pseudo</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.e4.cSS.impl.pseudoImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.e4.cSS.impl.pseudoImpl#getFunction <em>Function</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class pseudoImpl extends MinimalEObjectImpl.Container implements pseudo
+{
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getFunction() <em>Function</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFunction()
+ * @generated
+ * @ordered
+ */
+ protected function function;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected pseudoImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return CSSPackage.Literals.PSEUDO;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName)
+ {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CSSPackage.PSEUDO__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public function getFunction()
+ {
+ return function;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetFunction(function newFunction, NotificationChain msgs)
+ {
+ function oldFunction = function;
+ function = newFunction;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, CSSPackage.PSEUDO__FUNCTION, oldFunction, newFunction);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFunction(function newFunction)
+ {
+ if (newFunction != function)
+ {
+ NotificationChain msgs = null;
+ if (function != null)
+ msgs = ((InternalEObject)function).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - CSSPackage.PSEUDO__FUNCTION, null, msgs);
+ if (newFunction != null)
+ msgs = ((InternalEObject)newFunction).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - CSSPackage.PSEUDO__FUNCTION, null, msgs);
+ msgs = basicSetFunction(newFunction, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CSSPackage.PSEUDO__FUNCTION, newFunction, newFunction));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case CSSPackage.PSEUDO__FUNCTION:
+ return basicSetFunction(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case CSSPackage.PSEUDO__NAME:
+ return getName();
+ case CSSPackage.PSEUDO__FUNCTION:
+ return getFunction();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case CSSPackage.PSEUDO__NAME:
+ setName((String)newValue);
+ return;
+ case CSSPackage.PSEUDO__FUNCTION:
+ setFunction((function)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case CSSPackage.PSEUDO__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case CSSPackage.PSEUDO__FUNCTION:
+ setFunction((function)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case CSSPackage.PSEUDO__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case CSSPackage.PSEUDO__FUNCTION:
+ return function != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (name: ");
+ result.append(name);
+ result.append(')');
+ return result.toString();
+ }
+
+} //pseudoImpl
diff --git a/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/impl/selectorImpl.java b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/impl/selectorImpl.java
new file mode 100644
index 00000000..8fcefb3b
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/impl/selectorImpl.java
@@ -0,0 +1,340 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.e4.cSS.impl;
+
+import org.eclipse.e4.cSS.CSSPackage;
+import org.eclipse.e4.cSS.selector;
+import org.eclipse.e4.cSS.simple_selector;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>selector</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.e4.cSS.impl.selectorImpl#getSimpleselectors <em>Simpleselectors</em>}</li>
+ * <li>{@link org.eclipse.e4.cSS.impl.selectorImpl#getCombinator <em>Combinator</em>}</li>
+ * <li>{@link org.eclipse.e4.cSS.impl.selectorImpl#getSelector <em>Selector</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class selectorImpl extends MinimalEObjectImpl.Container implements selector
+{
+ /**
+ * The cached value of the '{@link #getSimpleselectors() <em>Simpleselectors</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSimpleselectors()
+ * @generated
+ * @ordered
+ */
+ protected simple_selector simpleselectors;
+
+ /**
+ * The default value of the '{@link #getCombinator() <em>Combinator</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCombinator()
+ * @generated
+ * @ordered
+ */
+ protected static final String COMBINATOR_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getCombinator() <em>Combinator</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCombinator()
+ * @generated
+ * @ordered
+ */
+ protected String combinator = COMBINATOR_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getSelector() <em>Selector</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSelector()
+ * @generated
+ * @ordered
+ */
+ protected selector selector;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected selectorImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return CSSPackage.Literals.SELECTOR;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public simple_selector getSimpleselectors()
+ {
+ return simpleselectors;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetSimpleselectors(simple_selector newSimpleselectors, NotificationChain msgs)
+ {
+ simple_selector oldSimpleselectors = simpleselectors;
+ simpleselectors = newSimpleselectors;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, CSSPackage.SELECTOR__SIMPLESELECTORS, oldSimpleselectors, newSimpleselectors);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSimpleselectors(simple_selector newSimpleselectors)
+ {
+ if (newSimpleselectors != simpleselectors)
+ {
+ NotificationChain msgs = null;
+ if (simpleselectors != null)
+ msgs = ((InternalEObject)simpleselectors).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - CSSPackage.SELECTOR__SIMPLESELECTORS, null, msgs);
+ if (newSimpleselectors != null)
+ msgs = ((InternalEObject)newSimpleselectors).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - CSSPackage.SELECTOR__SIMPLESELECTORS, null, msgs);
+ msgs = basicSetSimpleselectors(newSimpleselectors, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CSSPackage.SELECTOR__SIMPLESELECTORS, newSimpleselectors, newSimpleselectors));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getCombinator()
+ {
+ return combinator;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCombinator(String newCombinator)
+ {
+ String oldCombinator = combinator;
+ combinator = newCombinator;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CSSPackage.SELECTOR__COMBINATOR, oldCombinator, combinator));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public selector getSelector()
+ {
+ return selector;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetSelector(selector newSelector, NotificationChain msgs)
+ {
+ selector oldSelector = selector;
+ selector = newSelector;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, CSSPackage.SELECTOR__SELECTOR, oldSelector, newSelector);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSelector(selector newSelector)
+ {
+ if (newSelector != selector)
+ {
+ NotificationChain msgs = null;
+ if (selector != null)
+ msgs = ((InternalEObject)selector).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - CSSPackage.SELECTOR__SELECTOR, null, msgs);
+ if (newSelector != null)
+ msgs = ((InternalEObject)newSelector).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - CSSPackage.SELECTOR__SELECTOR, null, msgs);
+ msgs = basicSetSelector(newSelector, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CSSPackage.SELECTOR__SELECTOR, newSelector, newSelector));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case CSSPackage.SELECTOR__SIMPLESELECTORS:
+ return basicSetSimpleselectors(null, msgs);
+ case CSSPackage.SELECTOR__SELECTOR:
+ return basicSetSelector(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case CSSPackage.SELECTOR__SIMPLESELECTORS:
+ return getSimpleselectors();
+ case CSSPackage.SELECTOR__COMBINATOR:
+ return getCombinator();
+ case CSSPackage.SELECTOR__SELECTOR:
+ return getSelector();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case CSSPackage.SELECTOR__SIMPLESELECTORS:
+ setSimpleselectors((simple_selector)newValue);
+ return;
+ case CSSPackage.SELECTOR__COMBINATOR:
+ setCombinator((String)newValue);
+ return;
+ case CSSPackage.SELECTOR__SELECTOR:
+ setSelector((selector)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case CSSPackage.SELECTOR__SIMPLESELECTORS:
+ setSimpleselectors((simple_selector)null);
+ return;
+ case CSSPackage.SELECTOR__COMBINATOR:
+ setCombinator(COMBINATOR_EDEFAULT);
+ return;
+ case CSSPackage.SELECTOR__SELECTOR:
+ setSelector((selector)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case CSSPackage.SELECTOR__SIMPLESELECTORS:
+ return simpleselectors != null;
+ case CSSPackage.SELECTOR__COMBINATOR:
+ return COMBINATOR_EDEFAULT == null ? combinator != null : !COMBINATOR_EDEFAULT.equals(combinator);
+ case CSSPackage.SELECTOR__SELECTOR:
+ return selector != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (combinator: ");
+ result.append(combinator);
+ result.append(')');
+ return result.toString();
+ }
+
+} //selectorImpl
diff --git a/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/impl/simple_selectorImpl.java b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/impl/simple_selectorImpl.java
new file mode 100644
index 00000000..420022ea
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/impl/simple_selectorImpl.java
@@ -0,0 +1,284 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.e4.cSS.impl;
+
+import java.util.Collection;
+
+import org.eclipse.e4.cSS.CSSPackage;
+import org.eclipse.e4.cSS.css_hash_class;
+import org.eclipse.e4.cSS.element_name;
+import org.eclipse.e4.cSS.pseudo;
+import org.eclipse.e4.cSS.simple_selector;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>simple selector</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.e4.cSS.impl.simple_selectorImpl#getElement <em>Element</em>}</li>
+ * <li>{@link org.eclipse.e4.cSS.impl.simple_selectorImpl#getId <em>Id</em>}</li>
+ * <li>{@link org.eclipse.e4.cSS.impl.simple_selectorImpl#getPseudo <em>Pseudo</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class simple_selectorImpl extends MinimalEObjectImpl.Container implements simple_selector
+{
+ /**
+ * The cached value of the '{@link #getElement() <em>Element</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getElement()
+ * @generated
+ * @ordered
+ */
+ protected element_name element;
+
+ /**
+ * The cached value of the '{@link #getId() <em>Id</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getId()
+ * @generated
+ * @ordered
+ */
+ protected EList<css_hash_class> id;
+
+ /**
+ * The cached value of the '{@link #getPseudo() <em>Pseudo</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPseudo()
+ * @generated
+ * @ordered
+ */
+ protected EList<pseudo> pseudo;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected simple_selectorImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return CSSPackage.Literals.SIMPLE_SELECTOR;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public element_name getElement()
+ {
+ return element;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetElement(element_name newElement, NotificationChain msgs)
+ {
+ element_name oldElement = element;
+ element = newElement;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, CSSPackage.SIMPLE_SELECTOR__ELEMENT, oldElement, newElement);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setElement(element_name newElement)
+ {
+ if (newElement != element)
+ {
+ NotificationChain msgs = null;
+ if (element != null)
+ msgs = ((InternalEObject)element).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - CSSPackage.SIMPLE_SELECTOR__ELEMENT, null, msgs);
+ if (newElement != null)
+ msgs = ((InternalEObject)newElement).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - CSSPackage.SIMPLE_SELECTOR__ELEMENT, null, msgs);
+ msgs = basicSetElement(newElement, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CSSPackage.SIMPLE_SELECTOR__ELEMENT, newElement, newElement));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<css_hash_class> getId()
+ {
+ if (id == null)
+ {
+ id = new EObjectContainmentEList<css_hash_class>(css_hash_class.class, this, CSSPackage.SIMPLE_SELECTOR__ID);
+ }
+ return id;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<pseudo> getPseudo()
+ {
+ if (pseudo == null)
+ {
+ pseudo = new EObjectContainmentEList<pseudo>(pseudo.class, this, CSSPackage.SIMPLE_SELECTOR__PSEUDO);
+ }
+ return pseudo;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case CSSPackage.SIMPLE_SELECTOR__ELEMENT:
+ return basicSetElement(null, msgs);
+ case CSSPackage.SIMPLE_SELECTOR__ID:
+ return ((InternalEList<?>)getId()).basicRemove(otherEnd, msgs);
+ case CSSPackage.SIMPLE_SELECTOR__PSEUDO:
+ return ((InternalEList<?>)getPseudo()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case CSSPackage.SIMPLE_SELECTOR__ELEMENT:
+ return getElement();
+ case CSSPackage.SIMPLE_SELECTOR__ID:
+ return getId();
+ case CSSPackage.SIMPLE_SELECTOR__PSEUDO:
+ return getPseudo();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case CSSPackage.SIMPLE_SELECTOR__ELEMENT:
+ setElement((element_name)newValue);
+ return;
+ case CSSPackage.SIMPLE_SELECTOR__ID:
+ getId().clear();
+ getId().addAll((Collection<? extends css_hash_class>)newValue);
+ return;
+ case CSSPackage.SIMPLE_SELECTOR__PSEUDO:
+ getPseudo().clear();
+ getPseudo().addAll((Collection<? extends pseudo>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case CSSPackage.SIMPLE_SELECTOR__ELEMENT:
+ setElement((element_name)null);
+ return;
+ case CSSPackage.SIMPLE_SELECTOR__ID:
+ getId().clear();
+ return;
+ case CSSPackage.SIMPLE_SELECTOR__PSEUDO:
+ getPseudo().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case CSSPackage.SIMPLE_SELECTOR__ELEMENT:
+ return element != null;
+ case CSSPackage.SIMPLE_SELECTOR__ID:
+ return id != null && !id.isEmpty();
+ case CSSPackage.SIMPLE_SELECTOR__PSEUDO:
+ return pseudo != null && !pseudo.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //simple_selectorImpl
diff --git a/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/impl/stylesheetImpl.java b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/impl/stylesheetImpl.java
new file mode 100644
index 00000000..adf5db66
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/impl/stylesheetImpl.java
@@ -0,0 +1,283 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.e4.cSS.impl;
+
+import java.util.Collection;
+
+import org.eclipse.e4.cSS.CSSPackage;
+import org.eclipse.e4.cSS.Rules;
+import org.eclipse.e4.cSS.css_import;
+import org.eclipse.e4.cSS.stylesheet;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>stylesheet</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.e4.cSS.impl.stylesheetImpl#getLocation <em>Location</em>}</li>
+ * <li>{@link org.eclipse.e4.cSS.impl.stylesheetImpl#getImportName <em>Import Name</em>}</li>
+ * <li>{@link org.eclipse.e4.cSS.impl.stylesheetImpl#getRuleset <em>Ruleset</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class stylesheetImpl extends MinimalEObjectImpl.Container implements stylesheet
+{
+ /**
+ * The default value of the '{@link #getLocation() <em>Location</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLocation()
+ * @generated
+ * @ordered
+ */
+ protected static final String LOCATION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getLocation() <em>Location</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLocation()
+ * @generated
+ * @ordered
+ */
+ protected String location = LOCATION_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getImportName() <em>Import Name</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getImportName()
+ * @generated
+ * @ordered
+ */
+ protected EList<css_import> importName;
+
+ /**
+ * The cached value of the '{@link #getRuleset() <em>Ruleset</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRuleset()
+ * @generated
+ * @ordered
+ */
+ protected EList<Rules> ruleset;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected stylesheetImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return CSSPackage.Literals.STYLESHEET;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLocation()
+ {
+ return location;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLocation(String newLocation)
+ {
+ String oldLocation = location;
+ location = newLocation;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CSSPackage.STYLESHEET__LOCATION, oldLocation, location));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<css_import> getImportName()
+ {
+ if (importName == null)
+ {
+ importName = new EObjectContainmentEList<css_import>(css_import.class, this, CSSPackage.STYLESHEET__IMPORT_NAME);
+ }
+ return importName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Rules> getRuleset()
+ {
+ if (ruleset == null)
+ {
+ ruleset = new EObjectContainmentEList<Rules>(Rules.class, this, CSSPackage.STYLESHEET__RULESET);
+ }
+ return ruleset;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case CSSPackage.STYLESHEET__IMPORT_NAME:
+ return ((InternalEList<?>)getImportName()).basicRemove(otherEnd, msgs);
+ case CSSPackage.STYLESHEET__RULESET:
+ return ((InternalEList<?>)getRuleset()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case CSSPackage.STYLESHEET__LOCATION:
+ return getLocation();
+ case CSSPackage.STYLESHEET__IMPORT_NAME:
+ return getImportName();
+ case CSSPackage.STYLESHEET__RULESET:
+ return getRuleset();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case CSSPackage.STYLESHEET__LOCATION:
+ setLocation((String)newValue);
+ return;
+ case CSSPackage.STYLESHEET__IMPORT_NAME:
+ getImportName().clear();
+ getImportName().addAll((Collection<? extends css_import>)newValue);
+ return;
+ case CSSPackage.STYLESHEET__RULESET:
+ getRuleset().clear();
+ getRuleset().addAll((Collection<? extends Rules>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case CSSPackage.STYLESHEET__LOCATION:
+ setLocation(LOCATION_EDEFAULT);
+ return;
+ case CSSPackage.STYLESHEET__IMPORT_NAME:
+ getImportName().clear();
+ return;
+ case CSSPackage.STYLESHEET__RULESET:
+ getRuleset().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case CSSPackage.STYLESHEET__LOCATION:
+ return LOCATION_EDEFAULT == null ? location != null : !LOCATION_EDEFAULT.equals(location);
+ case CSSPackage.STYLESHEET__IMPORT_NAME:
+ return importName != null && !importName.isEmpty();
+ case CSSPackage.STYLESHEET__RULESET:
+ return ruleset != null && !ruleset.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (location: ");
+ result.append(location);
+ result.append(')');
+ return result.toString();
+ }
+
+} //stylesheetImpl
diff --git a/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/impl/termImpl.java b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/impl/termImpl.java
new file mode 100644
index 00000000..54a28a2b
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/impl/termImpl.java
@@ -0,0 +1,565 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.e4.cSS.impl;
+
+import org.eclipse.e4.cSS.CSSPackage;
+import org.eclipse.e4.cSS.URI;
+import org.eclipse.e4.cSS.function;
+import org.eclipse.e4.cSS.term;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>term</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.e4.cSS.impl.termImpl#getUnary <em>Unary</em>}</li>
+ * <li>{@link org.eclipse.e4.cSS.impl.termImpl#getNumber <em>Number</em>}</li>
+ * <li>{@link org.eclipse.e4.cSS.impl.termImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.e4.cSS.impl.termImpl#getId <em>Id</em>}</li>
+ * <li>{@link org.eclipse.e4.cSS.impl.termImpl#getUri <em>Uri</em>}</li>
+ * <li>{@link org.eclipse.e4.cSS.impl.termImpl#getColor <em>Color</em>}</li>
+ * <li>{@link org.eclipse.e4.cSS.impl.termImpl#getFunction <em>Function</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class termImpl extends MinimalEObjectImpl.Container implements term
+{
+ /**
+ * The default value of the '{@link #getUnary() <em>Unary</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getUnary()
+ * @generated
+ * @ordered
+ */
+ protected static final String UNARY_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getUnary() <em>Unary</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getUnary()
+ * @generated
+ * @ordered
+ */
+ protected String unary = UNARY_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getNumber() <em>Number</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNumber()
+ * @generated
+ * @ordered
+ */
+ protected static final String NUMBER_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getNumber() <em>Number</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNumber()
+ * @generated
+ * @ordered
+ */
+ protected String number = NUMBER_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getId() <em>Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getId()
+ * @generated
+ * @ordered
+ */
+ protected static final String ID_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getId() <em>Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getId()
+ * @generated
+ * @ordered
+ */
+ protected String id = ID_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getUri() <em>Uri</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getUri()
+ * @generated
+ * @ordered
+ */
+ protected URI uri;
+
+ /**
+ * The default value of the '{@link #getColor() <em>Color</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getColor()
+ * @generated
+ * @ordered
+ */
+ protected static final String COLOR_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getColor() <em>Color</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getColor()
+ * @generated
+ * @ordered
+ */
+ protected String color = COLOR_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getFunction() <em>Function</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFunction()
+ * @generated
+ * @ordered
+ */
+ protected function function;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected termImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return CSSPackage.Literals.TERM;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getUnary()
+ {
+ return unary;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setUnary(String newUnary)
+ {
+ String oldUnary = unary;
+ unary = newUnary;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CSSPackage.TERM__UNARY, oldUnary, unary));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getNumber()
+ {
+ return number;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setNumber(String newNumber)
+ {
+ String oldNumber = number;
+ number = newNumber;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CSSPackage.TERM__NUMBER, oldNumber, number));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName)
+ {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CSSPackage.TERM__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getId()
+ {
+ return id;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setId(String newId)
+ {
+ String oldId = id;
+ id = newId;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CSSPackage.TERM__ID, oldId, id));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public URI getUri()
+ {
+ return uri;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetUri(URI newUri, NotificationChain msgs)
+ {
+ URI oldUri = uri;
+ uri = newUri;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, CSSPackage.TERM__URI, oldUri, newUri);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setUri(URI newUri)
+ {
+ if (newUri != uri)
+ {
+ NotificationChain msgs = null;
+ if (uri != null)
+ msgs = ((InternalEObject)uri).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - CSSPackage.TERM__URI, null, msgs);
+ if (newUri != null)
+ msgs = ((InternalEObject)newUri).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - CSSPackage.TERM__URI, null, msgs);
+ msgs = basicSetUri(newUri, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CSSPackage.TERM__URI, newUri, newUri));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getColor()
+ {
+ return color;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setColor(String newColor)
+ {
+ String oldColor = color;
+ color = newColor;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CSSPackage.TERM__COLOR, oldColor, color));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public function getFunction()
+ {
+ return function;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetFunction(function newFunction, NotificationChain msgs)
+ {
+ function oldFunction = function;
+ function = newFunction;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, CSSPackage.TERM__FUNCTION, oldFunction, newFunction);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFunction(function newFunction)
+ {
+ if (newFunction != function)
+ {
+ NotificationChain msgs = null;
+ if (function != null)
+ msgs = ((InternalEObject)function).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - CSSPackage.TERM__FUNCTION, null, msgs);
+ if (newFunction != null)
+ msgs = ((InternalEObject)newFunction).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - CSSPackage.TERM__FUNCTION, null, msgs);
+ msgs = basicSetFunction(newFunction, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CSSPackage.TERM__FUNCTION, newFunction, newFunction));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case CSSPackage.TERM__URI:
+ return basicSetUri(null, msgs);
+ case CSSPackage.TERM__FUNCTION:
+ return basicSetFunction(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case CSSPackage.TERM__UNARY:
+ return getUnary();
+ case CSSPackage.TERM__NUMBER:
+ return getNumber();
+ case CSSPackage.TERM__NAME:
+ return getName();
+ case CSSPackage.TERM__ID:
+ return getId();
+ case CSSPackage.TERM__URI:
+ return getUri();
+ case CSSPackage.TERM__COLOR:
+ return getColor();
+ case CSSPackage.TERM__FUNCTION:
+ return getFunction();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case CSSPackage.TERM__UNARY:
+ setUnary((String)newValue);
+ return;
+ case CSSPackage.TERM__NUMBER:
+ setNumber((String)newValue);
+ return;
+ case CSSPackage.TERM__NAME:
+ setName((String)newValue);
+ return;
+ case CSSPackage.TERM__ID:
+ setId((String)newValue);
+ return;
+ case CSSPackage.TERM__URI:
+ setUri((URI)newValue);
+ return;
+ case CSSPackage.TERM__COLOR:
+ setColor((String)newValue);
+ return;
+ case CSSPackage.TERM__FUNCTION:
+ setFunction((function)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case CSSPackage.TERM__UNARY:
+ setUnary(UNARY_EDEFAULT);
+ return;
+ case CSSPackage.TERM__NUMBER:
+ setNumber(NUMBER_EDEFAULT);
+ return;
+ case CSSPackage.TERM__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case CSSPackage.TERM__ID:
+ setId(ID_EDEFAULT);
+ return;
+ case CSSPackage.TERM__URI:
+ setUri((URI)null);
+ return;
+ case CSSPackage.TERM__COLOR:
+ setColor(COLOR_EDEFAULT);
+ return;
+ case CSSPackage.TERM__FUNCTION:
+ setFunction((function)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case CSSPackage.TERM__UNARY:
+ return UNARY_EDEFAULT == null ? unary != null : !UNARY_EDEFAULT.equals(unary);
+ case CSSPackage.TERM__NUMBER:
+ return NUMBER_EDEFAULT == null ? number != null : !NUMBER_EDEFAULT.equals(number);
+ case CSSPackage.TERM__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case CSSPackage.TERM__ID:
+ return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
+ case CSSPackage.TERM__URI:
+ return uri != null;
+ case CSSPackage.TERM__COLOR:
+ return COLOR_EDEFAULT == null ? color != null : !COLOR_EDEFAULT.equals(color);
+ case CSSPackage.TERM__FUNCTION:
+ return function != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (unary: ");
+ result.append(unary);
+ result.append(", number: ");
+ result.append(number);
+ result.append(", name: ");
+ result.append(name);
+ result.append(", id: ");
+ result.append(id);
+ result.append(", color: ");
+ result.append(color);
+ result.append(')');
+ return result.toString();
+ }
+
+} //termImpl
diff --git a/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/pseudo.java b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/pseudo.java
new file mode 100644
index 00000000..bea44c4d
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/pseudo.java
@@ -0,0 +1,82 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.e4.cSS;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>pseudo</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.e4.cSS.pseudo#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.e4.cSS.pseudo#getFunction <em>Function</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.e4.cSS.CSSPackage#getpseudo()
+ * @model
+ * @generated
+ */
+public interface pseudo extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.e4.cSS.CSSPackage#getpseudo_Name()
+ * @model
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.e4.cSS.pseudo#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Function</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Function</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Function</em>' containment reference.
+ * @see #setFunction(function)
+ * @see org.eclipse.e4.cSS.CSSPackage#getpseudo_Function()
+ * @model containment="true"
+ * @generated
+ */
+ function getFunction();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.e4.cSS.pseudo#getFunction <em>Function</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Function</em>' containment reference.
+ * @see #getFunction()
+ * @generated
+ */
+ void setFunction(function value);
+
+} // pseudo
diff --git a/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/selector.java b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/selector.java
new file mode 100644
index 00000000..a5431c4f
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/selector.java
@@ -0,0 +1,109 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.e4.cSS;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>selector</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.e4.cSS.selector#getSimpleselectors <em>Simpleselectors</em>}</li>
+ * <li>{@link org.eclipse.e4.cSS.selector#getCombinator <em>Combinator</em>}</li>
+ * <li>{@link org.eclipse.e4.cSS.selector#getSelector <em>Selector</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.e4.cSS.CSSPackage#getselector()
+ * @model
+ * @generated
+ */
+public interface selector extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Simpleselectors</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Simpleselectors</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Simpleselectors</em>' containment reference.
+ * @see #setSimpleselectors(simple_selector)
+ * @see org.eclipse.e4.cSS.CSSPackage#getselector_Simpleselectors()
+ * @model containment="true"
+ * @generated
+ */
+ simple_selector getSimpleselectors();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.e4.cSS.selector#getSimpleselectors <em>Simpleselectors</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Simpleselectors</em>' containment reference.
+ * @see #getSimpleselectors()
+ * @generated
+ */
+ void setSimpleselectors(simple_selector value);
+
+ /**
+ * Returns the value of the '<em><b>Combinator</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Combinator</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Combinator</em>' attribute.
+ * @see #setCombinator(String)
+ * @see org.eclipse.e4.cSS.CSSPackage#getselector_Combinator()
+ * @model
+ * @generated
+ */
+ String getCombinator();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.e4.cSS.selector#getCombinator <em>Combinator</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Combinator</em>' attribute.
+ * @see #getCombinator()
+ * @generated
+ */
+ void setCombinator(String value);
+
+ /**
+ * Returns the value of the '<em><b>Selector</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Selector</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Selector</em>' containment reference.
+ * @see #setSelector(selector)
+ * @see org.eclipse.e4.cSS.CSSPackage#getselector_Selector()
+ * @model containment="true"
+ * @generated
+ */
+ selector getSelector();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.e4.cSS.selector#getSelector <em>Selector</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Selector</em>' containment reference.
+ * @see #getSelector()
+ * @generated
+ */
+ void setSelector(selector value);
+
+} // selector
diff --git a/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/simple_selector.java b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/simple_selector.java
new file mode 100644
index 00000000..66768e91
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/simple_selector.java
@@ -0,0 +1,91 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.e4.cSS;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>simple selector</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.e4.cSS.simple_selector#getElement <em>Element</em>}</li>
+ * <li>{@link org.eclipse.e4.cSS.simple_selector#getId <em>Id</em>}</li>
+ * <li>{@link org.eclipse.e4.cSS.simple_selector#getPseudo <em>Pseudo</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.e4.cSS.CSSPackage#getsimple_selector()
+ * @model
+ * @generated
+ */
+public interface simple_selector extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Element</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Element</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Element</em>' containment reference.
+ * @see #setElement(element_name)
+ * @see org.eclipse.e4.cSS.CSSPackage#getsimple_selector_Element()
+ * @model containment="true"
+ * @generated
+ */
+ element_name getElement();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.e4.cSS.simple_selector#getElement <em>Element</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Element</em>' containment reference.
+ * @see #getElement()
+ * @generated
+ */
+ void setElement(element_name value);
+
+ /**
+ * Returns the value of the '<em><b>Id</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.e4.cSS.css_hash_class}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Id</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Id</em>' containment reference list.
+ * @see org.eclipse.e4.cSS.CSSPackage#getsimple_selector_Id()
+ * @model containment="true"
+ * @generated
+ */
+ EList<css_hash_class> getId();
+
+ /**
+ * Returns the value of the '<em><b>Pseudo</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.e4.cSS.pseudo}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Pseudo</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Pseudo</em>' containment reference list.
+ * @see org.eclipse.e4.cSS.CSSPackage#getsimple_selector_Pseudo()
+ * @model containment="true"
+ * @generated
+ */
+ EList<pseudo> getPseudo();
+
+} // simple_selector
diff --git a/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/stylesheet.java b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/stylesheet.java
new file mode 100644
index 00000000..2cb03394
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/stylesheet.java
@@ -0,0 +1,91 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.e4.cSS;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>stylesheet</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.e4.cSS.stylesheet#getLocation <em>Location</em>}</li>
+ * <li>{@link org.eclipse.e4.cSS.stylesheet#getImportName <em>Import Name</em>}</li>
+ * <li>{@link org.eclipse.e4.cSS.stylesheet#getRuleset <em>Ruleset</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.e4.cSS.CSSPackage#getstylesheet()
+ * @model
+ * @generated
+ */
+public interface stylesheet extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Location</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Location</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Location</em>' attribute.
+ * @see #setLocation(String)
+ * @see org.eclipse.e4.cSS.CSSPackage#getstylesheet_Location()
+ * @model
+ * @generated
+ */
+ String getLocation();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.e4.cSS.stylesheet#getLocation <em>Location</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Location</em>' attribute.
+ * @see #getLocation()
+ * @generated
+ */
+ void setLocation(String value);
+
+ /**
+ * Returns the value of the '<em><b>Import Name</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.e4.cSS.css_import}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Import Name</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Import Name</em>' containment reference list.
+ * @see org.eclipse.e4.cSS.CSSPackage#getstylesheet_ImportName()
+ * @model containment="true"
+ * @generated
+ */
+ EList<css_import> getImportName();
+
+ /**
+ * Returns the value of the '<em><b>Ruleset</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.e4.cSS.Rules}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Ruleset</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Ruleset</em>' containment reference list.
+ * @see org.eclipse.e4.cSS.CSSPackage#getstylesheet_Ruleset()
+ * @model containment="true"
+ * @generated
+ */
+ EList<Rules> getRuleset();
+
+} // stylesheet
diff --git a/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/term.java b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/term.java
new file mode 100644
index 00000000..6a97eb7b
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/term.java
@@ -0,0 +1,217 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.e4.cSS;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>term</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.e4.cSS.term#getUnary <em>Unary</em>}</li>
+ * <li>{@link org.eclipse.e4.cSS.term#getNumber <em>Number</em>}</li>
+ * <li>{@link org.eclipse.e4.cSS.term#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.e4.cSS.term#getId <em>Id</em>}</li>
+ * <li>{@link org.eclipse.e4.cSS.term#getUri <em>Uri</em>}</li>
+ * <li>{@link org.eclipse.e4.cSS.term#getColor <em>Color</em>}</li>
+ * <li>{@link org.eclipse.e4.cSS.term#getFunction <em>Function</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.e4.cSS.CSSPackage#getterm()
+ * @model
+ * @generated
+ */
+public interface term extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Unary</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Unary</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Unary</em>' attribute.
+ * @see #setUnary(String)
+ * @see org.eclipse.e4.cSS.CSSPackage#getterm_Unary()
+ * @model
+ * @generated
+ */
+ String getUnary();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.e4.cSS.term#getUnary <em>Unary</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Unary</em>' attribute.
+ * @see #getUnary()
+ * @generated
+ */
+ void setUnary(String value);
+
+ /**
+ * Returns the value of the '<em><b>Number</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Number</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Number</em>' attribute.
+ * @see #setNumber(String)
+ * @see org.eclipse.e4.cSS.CSSPackage#getterm_Number()
+ * @model
+ * @generated
+ */
+ String getNumber();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.e4.cSS.term#getNumber <em>Number</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Number</em>' attribute.
+ * @see #getNumber()
+ * @generated
+ */
+ void setNumber(String value);
+
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.e4.cSS.CSSPackage#getterm_Name()
+ * @model
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.e4.cSS.term#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Id</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Id</em>' attribute.
+ * @see #setId(String)
+ * @see org.eclipse.e4.cSS.CSSPackage#getterm_Id()
+ * @model
+ * @generated
+ */
+ String getId();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.e4.cSS.term#getId <em>Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Id</em>' attribute.
+ * @see #getId()
+ * @generated
+ */
+ void setId(String value);
+
+ /**
+ * Returns the value of the '<em><b>Uri</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Uri</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Uri</em>' containment reference.
+ * @see #setUri(URI)
+ * @see org.eclipse.e4.cSS.CSSPackage#getterm_Uri()
+ * @model containment="true"
+ * @generated
+ */
+ URI getUri();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.e4.cSS.term#getUri <em>Uri</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Uri</em>' containment reference.
+ * @see #getUri()
+ * @generated
+ */
+ void setUri(URI value);
+
+ /**
+ * Returns the value of the '<em><b>Color</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Color</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Color</em>' attribute.
+ * @see #setColor(String)
+ * @see org.eclipse.e4.cSS.CSSPackage#getterm_Color()
+ * @model
+ * @generated
+ */
+ String getColor();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.e4.cSS.term#getColor <em>Color</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Color</em>' attribute.
+ * @see #getColor()
+ * @generated
+ */
+ void setColor(String value);
+
+ /**
+ * Returns the value of the '<em><b>Function</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Function</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Function</em>' containment reference.
+ * @see #setFunction(function)
+ * @see org.eclipse.e4.cSS.CSSPackage#getterm_Function()
+ * @model containment="true"
+ * @generated
+ */
+ function getFunction();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.e4.cSS.term#getFunction <em>Function</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Function</em>' containment reference.
+ * @see #getFunction()
+ * @generated
+ */
+ void setFunction(function value);
+
+} // term
diff --git a/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/util/CSSAdapterFactory.java b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/util/CSSAdapterFactory.java
new file mode 100644
index 00000000..d46be9eb
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/util/CSSAdapterFactory.java
@@ -0,0 +1,376 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.e4.cSS.util;
+
+import org.eclipse.e4.cSS.*;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.e4.cSS.CSSPackage
+ * @generated
+ */
+public class CSSAdapterFactory extends AdapterFactoryImpl
+{
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static CSSPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CSSAdapterFactory()
+ {
+ if (modelPackage == null)
+ {
+ modelPackage = CSSPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object)
+ {
+ if (object == modelPackage)
+ {
+ return true;
+ }
+ if (object instanceof EObject)
+ {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CSSSwitch<Adapter> modelSwitch =
+ new CSSSwitch<Adapter>()
+ {
+ @Override
+ public Adapter casestylesheet(stylesheet object)
+ {
+ return createstylesheetAdapter();
+ }
+ @Override
+ public Adapter caseRules(Rules object)
+ {
+ return createRulesAdapter();
+ }
+ @Override
+ public Adapter casecss_import(css_import object)
+ {
+ return createcss_importAdapter();
+ }
+ @Override
+ public Adapter caseselector(selector object)
+ {
+ return createselectorAdapter();
+ }
+ @Override
+ public Adapter casesimple_selector(simple_selector object)
+ {
+ return createsimple_selectorAdapter();
+ }
+ @Override
+ public Adapter casepseudo(pseudo object)
+ {
+ return createpseudoAdapter();
+ }
+ @Override
+ public Adapter caseelement_name(element_name object)
+ {
+ return createelement_nameAdapter();
+ }
+ @Override
+ public Adapter casedeclaration(declaration object)
+ {
+ return createdeclarationAdapter();
+ }
+ @Override
+ public Adapter caseexpr(expr object)
+ {
+ return createexprAdapter();
+ }
+ @Override
+ public Adapter caseterm(term object)
+ {
+ return createtermAdapter();
+ }
+ @Override
+ public Adapter casefunction(function object)
+ {
+ return createfunctionAdapter();
+ }
+ @Override
+ public Adapter caseURI(URI object)
+ {
+ return createURIAdapter();
+ }
+ @Override
+ public Adapter casecss_hash_class(css_hash_class object)
+ {
+ return createcss_hash_classAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object)
+ {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target)
+ {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.e4.cSS.stylesheet <em>stylesheet</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.e4.cSS.stylesheet
+ * @generated
+ */
+ public Adapter createstylesheetAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.e4.cSS.Rules <em>Rules</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.e4.cSS.Rules
+ * @generated
+ */
+ public Adapter createRulesAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.e4.cSS.css_import <em>css import</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.e4.cSS.css_import
+ * @generated
+ */
+ public Adapter createcss_importAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.e4.cSS.selector <em>selector</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.e4.cSS.selector
+ * @generated
+ */
+ public Adapter createselectorAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.e4.cSS.simple_selector <em>simple selector</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.e4.cSS.simple_selector
+ * @generated
+ */
+ public Adapter createsimple_selectorAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.e4.cSS.pseudo <em>pseudo</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.e4.cSS.pseudo
+ * @generated
+ */
+ public Adapter createpseudoAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.e4.cSS.element_name <em>element name</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.e4.cSS.element_name
+ * @generated
+ */
+ public Adapter createelement_nameAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.e4.cSS.declaration <em>declaration</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.e4.cSS.declaration
+ * @generated
+ */
+ public Adapter createdeclarationAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.e4.cSS.expr <em>expr</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.e4.cSS.expr
+ * @generated
+ */
+ public Adapter createexprAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.e4.cSS.term <em>term</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.e4.cSS.term
+ * @generated
+ */
+ public Adapter createtermAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.e4.cSS.function <em>function</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.e4.cSS.function
+ * @generated
+ */
+ public Adapter createfunctionAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.e4.cSS.URI <em>URI</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.e4.cSS.URI
+ * @generated
+ */
+ public Adapter createURIAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.e4.cSS.css_hash_class <em>css hash class</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.e4.cSS.css_hash_class
+ * @generated
+ */
+ public Adapter createcss_hash_classAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter()
+ {
+ return null;
+ }
+
+} //CSSAdapterFactory
diff --git a/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/util/CSSSwitch.java b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/util/CSSSwitch.java
new file mode 100644
index 00000000..e6fee868
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/cSS/util/CSSSwitch.java
@@ -0,0 +1,400 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.e4.cSS.util;
+
+import org.eclipse.e4.cSS.*;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.e4.cSS.CSSPackage
+ * @generated
+ */
+public class CSSSwitch<T> extends Switch<T>
+{
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static CSSPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CSSSwitch()
+ {
+ if (modelPackage == null)
+ {
+ modelPackage = CSSPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @parameter ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage)
+ {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject)
+ {
+ switch (classifierID)
+ {
+ case CSSPackage.STYLESHEET:
+ {
+ stylesheet stylesheet = (stylesheet)theEObject;
+ T result = casestylesheet(stylesheet);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CSSPackage.RULES:
+ {
+ Rules rules = (Rules)theEObject;
+ T result = caseRules(rules);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CSSPackage.CSS_IMPORT:
+ {
+ css_import css_import = (css_import)theEObject;
+ T result = casecss_import(css_import);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CSSPackage.SELECTOR:
+ {
+ selector selector = (selector)theEObject;
+ T result = caseselector(selector);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CSSPackage.SIMPLE_SELECTOR:
+ {
+ simple_selector simple_selector = (simple_selector)theEObject;
+ T result = casesimple_selector(simple_selector);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CSSPackage.PSEUDO:
+ {
+ pseudo pseudo = (pseudo)theEObject;
+ T result = casepseudo(pseudo);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CSSPackage.ELEMENT_NAME:
+ {
+ element_name element_name = (element_name)theEObject;
+ T result = caseelement_name(element_name);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CSSPackage.DECLARATION:
+ {
+ declaration declaration = (declaration)theEObject;
+ T result = casedeclaration(declaration);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CSSPackage.EXPR:
+ {
+ expr expr = (expr)theEObject;
+ T result = caseexpr(expr);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CSSPackage.TERM:
+ {
+ term term = (term)theEObject;
+ T result = caseterm(term);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CSSPackage.FUNCTION:
+ {
+ function function = (function)theEObject;
+ T result = casefunction(function);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CSSPackage.URI:
+ {
+ URI uri = (URI)theEObject;
+ T result = caseURI(uri);
+ if (result == null) result = casecss_import(uri);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CSSPackage.CSS_HASH_CLASS:
+ {
+ css_hash_class css_hash_class = (css_hash_class)theEObject;
+ T result = casecss_hash_class(css_hash_class);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>stylesheet</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>stylesheet</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casestylesheet(stylesheet object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Rules</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Rules</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseRules(Rules object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>css import</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>css import</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casecss_import(css_import object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>selector</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>selector</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseselector(selector object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>simple selector</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>simple selector</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casesimple_selector(simple_selector object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>pseudo</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>pseudo</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casepseudo(pseudo object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>element name</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>element name</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseelement_name(element_name object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>declaration</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>declaration</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casedeclaration(declaration object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>expr</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>expr</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseexpr(expr object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>term</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>term</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseterm(term object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>function</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>function</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casefunction(function object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>URI</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>URI</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseURI(URI object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>css hash class</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>css hash class</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casecss_hash_class(css_hash_class object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object)
+ {
+ return null;
+ }
+
+} //CSSSwitch
diff --git a/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parseTreeConstruction/CSSParsetreeConstructor.java b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parseTreeConstruction/CSSParsetreeConstructor.java
new file mode 100644
index 00000000..f7e7308c
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parseTreeConstruction/CSSParsetreeConstructor.java
@@ -0,0 +1,3070 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.e4.parseTreeConstruction;
+
+import org.eclipse.emf.ecore.*;
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.parsetree.reconstr.IEObjectConsumer;
+import org.eclipse.xtext.parsetree.reconstr.impl.AbstractParseTreeConstructor;
+
+import org.eclipse.e4.services.CSSGrammarAccess;
+
+import com.google.inject.Inject;
+
+@SuppressWarnings("all")
+public class CSSParsetreeConstructor extends AbstractParseTreeConstructor {
+
+ @Inject
+ private CSSGrammarAccess grammarAccess;
+
+ @Override
+ protected AbstractToken getRootToken(IEObjectConsumer inst) {
+ return new ThisRootNode(inst);
+ }
+
+protected class ThisRootNode extends RootToken {
+ public ThisRootNode(IEObjectConsumer inst) {
+ super(inst);
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Stylesheet_Group(this, this, 0, inst);
+ case 1: return new Rules_Group(this, this, 1, inst);
+ case 2: return new Css_import_Group(this, this, 2, inst);
+ case 3: return new Selector_Group(this, this, 3, inst);
+ case 4: return new Simple_selector_Alternatives(this, this, 4, inst);
+ case 5: return new Pseudo_Alternatives(this, this, 5, inst);
+ case 6: return new Element_name_Alternatives(this, this, 6, inst);
+ case 7: return new Declaration_Group(this, this, 7, inst);
+ case 8: return new Expr_Group(this, this, 8, inst);
+ case 9: return new Term_Alternatives(this, this, 9, inst);
+ case 10: return new Function_Group(this, this, 10, inst);
+ case 11: return new URI_Group(this, this, 11, inst);
+ case 12: return new Css_hash_class_Group(this, this, 12, inst);
+ default: return null;
+ }
+ }
+}
+
+
+/************ begin Rule stylesheet ****************
+ *
+ * stylesheet:
+ * location=STRING? importName+=css_import* ruleset+=Rules*;
+ *
+ **/
+
+// location=STRING? importName+=css_import* ruleset+=Rules*
+protected class Stylesheet_Group extends GroupToken {
+
+ public Stylesheet_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getStylesheetAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Stylesheet_RulesetAssignment_2(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Stylesheet_ImportNameAssignment_1(lastRuleCallOrigin, this, 1, inst);
+ case 2: return new Stylesheet_LocationAssignment_0(lastRuleCallOrigin, this, 2, inst);
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index - 3, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getStylesheetRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// location=STRING?
+protected class Stylesheet_LocationAssignment_0 extends AssignmentToken {
+
+ public Stylesheet_LocationAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getStylesheetAccess().getLocationAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("location",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("location");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getStylesheetAccess().getLocationSTRINGTerminalRuleCall_0_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getStylesheetAccess().getLocationSTRINGTerminalRuleCall_0_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// importName+=css_import*
+protected class Stylesheet_ImportNameAssignment_1 extends AssignmentToken {
+
+ public Stylesheet_ImportNameAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getStylesheetAccess().getImportNameAssignment_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Css_import_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("importName",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("importName");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getCss_importRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getStylesheetAccess().getImportNameCss_importParserRuleCall_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Stylesheet_ImportNameAssignment_1(lastRuleCallOrigin, next, actIndex, consumed);
+ case 1: return new Stylesheet_LocationAssignment_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index - 2, consumed);
+ }
+ }
+}
+
+// ruleset+=Rules*
+protected class Stylesheet_RulesetAssignment_2 extends AssignmentToken {
+
+ public Stylesheet_RulesetAssignment_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getStylesheetAccess().getRulesetAssignment_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Rules_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("ruleset",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("ruleset");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getRulesRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getStylesheetAccess().getRulesetRulesParserRuleCall_2_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Stylesheet_RulesetAssignment_2(lastRuleCallOrigin, next, actIndex, consumed);
+ case 1: return new Stylesheet_ImportNameAssignment_1(lastRuleCallOrigin, next, actIndex, consumed);
+ case 2: return new Stylesheet_LocationAssignment_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index - 3, consumed);
+ }
+ }
+}
+
+
+/************ end Rule stylesheet ****************/
+
+
+/************ begin Rule Rules ****************
+ *
+ * Rules:
+ * selectors+=selector ("," selectors+=selector)* "{" declarations+=declaration? (";" declarations+=declaration?)* "}";
+ *
+ **/
+
+// selectors+=selector ("," selectors+=selector)* "{" declarations+=declaration? (";" declarations+=declaration?)* "}"
+protected class Rules_Group extends GroupToken {
+
+ public Rules_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getRulesAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Rules_RightCurlyBracketKeyword_5(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getRulesRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// selectors+=selector
+protected class Rules_SelectorsAssignment_0 extends AssignmentToken {
+
+ public Rules_SelectorsAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getRulesAccess().getSelectorsAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Selector_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("selectors",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("selectors");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getSelectorRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getRulesAccess().getSelectorsSelectorParserRuleCall_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+// ("," selectors+=selector)*
+protected class Rules_Group_1 extends GroupToken {
+
+ public Rules_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getRulesAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Rules_SelectorsAssignment_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// ","
+protected class Rules_CommaKeyword_1_0 extends KeywordToken {
+
+ public Rules_CommaKeyword_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getRulesAccess().getCommaKeyword_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Rules_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Rules_SelectorsAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// selectors+=selector
+protected class Rules_SelectorsAssignment_1_1 extends AssignmentToken {
+
+ public Rules_SelectorsAssignment_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getRulesAccess().getSelectorsAssignment_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Selector_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("selectors",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("selectors");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getSelectorRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getRulesAccess().getSelectorsSelectorParserRuleCall_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Rules_CommaKeyword_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+// "{"
+protected class Rules_LeftCurlyBracketKeyword_2 extends KeywordToken {
+
+ public Rules_LeftCurlyBracketKeyword_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getRulesAccess().getLeftCurlyBracketKeyword_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Rules_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Rules_SelectorsAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// declarations+=declaration?
+protected class Rules_DeclarationsAssignment_3 extends AssignmentToken {
+
+ public Rules_DeclarationsAssignment_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getRulesAccess().getDeclarationsAssignment_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Declaration_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("declarations",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("declarations");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getDeclarationRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getRulesAccess().getDeclarationsDeclarationParserRuleCall_3_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Rules_LeftCurlyBracketKeyword_2(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// (";" declarations+=declaration?)*
+protected class Rules_Group_4 extends GroupToken {
+
+ public Rules_Group_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getRulesAccess().getGroup_4();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Rules_DeclarationsAssignment_4_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// ";"
+protected class Rules_SemicolonKeyword_4_0 extends KeywordToken {
+
+ public Rules_SemicolonKeyword_4_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getRulesAccess().getSemicolonKeyword_4_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Rules_Group_4(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Rules_DeclarationsAssignment_3(lastRuleCallOrigin, this, 1, inst);
+ case 2: return new Rules_LeftCurlyBracketKeyword_2(lastRuleCallOrigin, this, 2, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// declarations+=declaration?
+protected class Rules_DeclarationsAssignment_4_1 extends AssignmentToken {
+
+ public Rules_DeclarationsAssignment_4_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getRulesAccess().getDeclarationsAssignment_4_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Declaration_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("declarations",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("declarations");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getDeclarationRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getRulesAccess().getDeclarationsDeclarationParserRuleCall_4_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Rules_SemicolonKeyword_4_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+// "}"
+protected class Rules_RightCurlyBracketKeyword_5 extends KeywordToken {
+
+ public Rules_RightCurlyBracketKeyword_5(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getRulesAccess().getRightCurlyBracketKeyword_5();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Rules_Group_4(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Rules_DeclarationsAssignment_3(lastRuleCallOrigin, this, 1, inst);
+ case 2: return new Rules_LeftCurlyBracketKeyword_2(lastRuleCallOrigin, this, 2, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+/************ end Rule Rules ****************/
+
+
+/************ begin Rule css_import ****************
+ *
+ * css_import:
+ * "@import" (string_name=STRING | URI) ";";
+ *
+ **/
+
+// "@import" (string_name=STRING | URI) ";"
+protected class Css_import_Group extends GroupToken {
+
+ public Css_import_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getCss_importAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Css_import_SemicolonKeyword_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getURIAccess().getURIAction_2().getType().getClassifier() &&
+ getEObject().eClass() != grammarAccess.getCss_importRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// "@import"
+protected class Css_import_ImportKeyword_0 extends KeywordToken {
+
+ public Css_import_ImportKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getCss_importAccess().getImportKeyword_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// string_name=STRING | URI
+protected class Css_import_Alternatives_1 extends AlternativesToken {
+
+ public Css_import_Alternatives_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getCss_importAccess().getAlternatives_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Css_import_String_nameAssignment_1_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Css_import_URIParserRuleCall_1_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// string_name=STRING
+protected class Css_import_String_nameAssignment_1_0 extends AssignmentToken {
+
+ public Css_import_String_nameAssignment_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getCss_importAccess().getString_nameAssignment_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Css_import_ImportKeyword_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getCss_importRule().getType().getClassifier())
+ return null;
+ if((value = eObjectConsumer.getConsumable("string_name",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("string_name");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getCss_importAccess().getString_nameSTRINGTerminalRuleCall_1_0_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getCss_importAccess().getString_nameSTRINGTerminalRuleCall_1_0_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// URI
+protected class Css_import_URIParserRuleCall_1_1 extends RuleCallToken {
+
+ public Css_import_URIParserRuleCall_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getCss_importAccess().getURIParserRuleCall_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new URI_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getURIAccess().getURIAction_2().getType().getClassifier())
+ return null;
+ if(checkForRecursion(URI_Group.class, eObjectConsumer)) return null;
+ return eObjectConsumer;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Css_import_ImportKeyword_0(lastRuleCallOrigin, next, actIndex, inst);
+ default: return null;
+ }
+ }
+}
+
+
+// ";"
+protected class Css_import_SemicolonKeyword_2 extends KeywordToken {
+
+ public Css_import_SemicolonKeyword_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getCss_importAccess().getSemicolonKeyword_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Css_import_Alternatives_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+/************ end Rule css_import ****************/
+
+
+/************ begin Rule selector ****************
+ *
+ * selector hidden():
+ * simpleselectors=simple_selector (combinator=combinator selector=selector | WS+ (combinator=combinator?
+ * selector=selector)?)?;
+ *
+ **/
+
+// simpleselectors=simple_selector (combinator=combinator selector=selector | WS+ (combinator=combinator?
+// selector=selector)?)?
+protected class Selector_Group extends GroupToken {
+
+ public Selector_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getSelectorAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Selector_Alternatives_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Selector_SimpleselectorsAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getSelectorRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// simpleselectors=simple_selector
+protected class Selector_SimpleselectorsAssignment_0 extends AssignmentToken {
+
+ public Selector_SimpleselectorsAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getSelectorAccess().getSimpleselectorsAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Simple_selector_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("simpleselectors",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("simpleselectors");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getSimple_selectorRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getSelectorAccess().getSimpleselectorsSimple_selectorParserRuleCall_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+// (combinator=combinator selector=selector | WS+ (combinator=combinator? selector=selector)?)?
+protected class Selector_Alternatives_1 extends AlternativesToken {
+
+ public Selector_Alternatives_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getSelectorAccess().getAlternatives_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Selector_Group_1_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Selector_Group_1_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// combinator=combinator selector=selector
+protected class Selector_Group_1_0 extends GroupToken {
+
+ public Selector_Group_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getSelectorAccess().getGroup_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Selector_SelectorAssignment_1_0_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// combinator=combinator
+protected class Selector_CombinatorAssignment_1_0_0 extends AssignmentToken {
+
+ public Selector_CombinatorAssignment_1_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getSelectorAccess().getCombinatorAssignment_1_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Selector_SimpleselectorsAssignment_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("combinator",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("combinator");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getSelectorAccess().getCombinatorCombinatorParserRuleCall_1_0_0_0(), value, null)) {
+ type = AssignmentType.DATATYPE_RULE_CALL;
+ element = grammarAccess.getSelectorAccess().getCombinatorCombinatorParserRuleCall_1_0_0_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// selector=selector
+protected class Selector_SelectorAssignment_1_0_1 extends AssignmentToken {
+
+ public Selector_SelectorAssignment_1_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getSelectorAccess().getSelectorAssignment_1_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Selector_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("selector",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("selector");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getSelectorRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getSelectorAccess().getSelectorSelectorParserRuleCall_1_0_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Selector_CombinatorAssignment_1_0_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+// WS+ (combinator=combinator? selector=selector)?
+protected class Selector_Group_1_1 extends GroupToken {
+
+ public Selector_Group_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getSelectorAccess().getGroup_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Selector_Group_1_1_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Selector_WSTerminalRuleCall_1_1_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// WS+
+protected class Selector_WSTerminalRuleCall_1_1_0 extends UnassignedTextToken {
+
+ public Selector_WSTerminalRuleCall_1_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public RuleCall getGrammarElement() {
+ return grammarAccess.getSelectorAccess().getWSTerminalRuleCall_1_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Selector_SimpleselectorsAssignment_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// (combinator=combinator? selector=selector)?
+protected class Selector_Group_1_1_1 extends GroupToken {
+
+ public Selector_Group_1_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getSelectorAccess().getGroup_1_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Selector_SelectorAssignment_1_1_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// combinator=combinator?
+protected class Selector_CombinatorAssignment_1_1_1_0 extends AssignmentToken {
+
+ public Selector_CombinatorAssignment_1_1_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getSelectorAccess().getCombinatorAssignment_1_1_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Selector_WSTerminalRuleCall_1_1_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("combinator",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("combinator");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getSelectorAccess().getCombinatorCombinatorParserRuleCall_1_1_1_0_0(), value, null)) {
+ type = AssignmentType.DATATYPE_RULE_CALL;
+ element = grammarAccess.getSelectorAccess().getCombinatorCombinatorParserRuleCall_1_1_1_0_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// selector=selector
+protected class Selector_SelectorAssignment_1_1_1_1 extends AssignmentToken {
+
+ public Selector_SelectorAssignment_1_1_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getSelectorAccess().getSelectorAssignment_1_1_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Selector_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("selector",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("selector");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getSelectorRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getSelectorAccess().getSelectorSelectorParserRuleCall_1_1_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Selector_CombinatorAssignment_1_1_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ case 1: return new Selector_WSTerminalRuleCall_1_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+
+
+/************ end Rule selector ****************/
+
+
+/************ begin Rule simple_selector ****************
+ *
+ * simple_selector:
+ * element=element_name id+=css_hash_class* pseudo+=pseudo* | id+=css_hash_class+;
+ *
+ **/
+
+// element=element_name id+=css_hash_class* pseudo+=pseudo* | id+=css_hash_class+
+protected class Simple_selector_Alternatives extends AlternativesToken {
+
+ public Simple_selector_Alternatives(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getSimple_selectorAccess().getAlternatives();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Simple_selector_Group_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Simple_selector_IdAssignment_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getSimple_selectorRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// element=element_name id+=css_hash_class* pseudo+=pseudo*
+protected class Simple_selector_Group_0 extends GroupToken {
+
+ public Simple_selector_Group_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getSimple_selectorAccess().getGroup_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Simple_selector_PseudoAssignment_0_2(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Simple_selector_IdAssignment_0_1(lastRuleCallOrigin, this, 1, inst);
+ case 2: return new Simple_selector_ElementAssignment_0_0(lastRuleCallOrigin, this, 2, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// element=element_name
+protected class Simple_selector_ElementAssignment_0_0 extends AssignmentToken {
+
+ public Simple_selector_ElementAssignment_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getSimple_selectorAccess().getElementAssignment_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Element_name_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("element",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("element");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getElement_nameRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getSimple_selectorAccess().getElementElement_nameParserRuleCall_0_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+// id+=css_hash_class*
+protected class Simple_selector_IdAssignment_0_1 extends AssignmentToken {
+
+ public Simple_selector_IdAssignment_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getSimple_selectorAccess().getIdAssignment_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Css_hash_class_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("id",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("id");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getCss_hash_classRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getSimple_selectorAccess().getIdCss_hash_classParserRuleCall_0_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Simple_selector_IdAssignment_0_1(lastRuleCallOrigin, next, actIndex, consumed);
+ case 1: return new Simple_selector_ElementAssignment_0_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// pseudo+=pseudo*
+protected class Simple_selector_PseudoAssignment_0_2 extends AssignmentToken {
+
+ public Simple_selector_PseudoAssignment_0_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getSimple_selectorAccess().getPseudoAssignment_0_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Pseudo_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("pseudo",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("pseudo");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getPseudoRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getSimple_selectorAccess().getPseudoPseudoParserRuleCall_0_2_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Simple_selector_PseudoAssignment_0_2(lastRuleCallOrigin, next, actIndex, consumed);
+ case 1: return new Simple_selector_IdAssignment_0_1(lastRuleCallOrigin, next, actIndex, consumed);
+ case 2: return new Simple_selector_ElementAssignment_0_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+// id+=css_hash_class+
+protected class Simple_selector_IdAssignment_1 extends AssignmentToken {
+
+ public Simple_selector_IdAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getSimple_selectorAccess().getIdAssignment_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Css_hash_class_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("id",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("id");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getCss_hash_classRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getSimple_selectorAccess().getIdCss_hash_classParserRuleCall_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Simple_selector_IdAssignment_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index - 1, consumed);
+ }
+ }
+}
+
+
+/************ end Rule simple_selector ****************/
+
+
+/************ begin Rule pseudo ****************
+ *
+ * pseudo:
+ * ":" name=ident | function=function name=ident?;
+ *
+ **/
+
+// ":" name=ident | function=function name=ident?
+protected class Pseudo_Alternatives extends AlternativesToken {
+
+ public Pseudo_Alternatives(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getPseudoAccess().getAlternatives();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Pseudo_Group_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Pseudo_Group_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getPseudoRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// ":" name=ident
+protected class Pseudo_Group_0 extends GroupToken {
+
+ public Pseudo_Group_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPseudoAccess().getGroup_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Pseudo_NameAssignment_0_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// ":"
+protected class Pseudo_ColonKeyword_0_0 extends KeywordToken {
+
+ public Pseudo_ColonKeyword_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getPseudoAccess().getColonKeyword_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// name=ident
+protected class Pseudo_NameAssignment_0_1 extends AssignmentToken {
+
+ public Pseudo_NameAssignment_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getPseudoAccess().getNameAssignment_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Pseudo_ColonKeyword_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("name",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("name");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getPseudoAccess().getNameIdentTerminalRuleCall_0_1_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getPseudoAccess().getNameIdentTerminalRuleCall_0_1_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+
+// function=function name=ident?
+protected class Pseudo_Group_1 extends GroupToken {
+
+ public Pseudo_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getPseudoAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Pseudo_NameAssignment_1_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Pseudo_FunctionAssignment_1_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// function=function
+protected class Pseudo_FunctionAssignment_1_0 extends AssignmentToken {
+
+ public Pseudo_FunctionAssignment_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getPseudoAccess().getFunctionAssignment_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Function_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("function",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("function");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getFunctionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getPseudoAccess().getFunctionFunctionParserRuleCall_1_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+// name=ident?
+protected class Pseudo_NameAssignment_1_1 extends AssignmentToken {
+
+ public Pseudo_NameAssignment_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getPseudoAccess().getNameAssignment_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Pseudo_FunctionAssignment_1_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("name",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("name");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getPseudoAccess().getNameIdentTerminalRuleCall_1_1_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getPseudoAccess().getNameIdentTerminalRuleCall_1_1_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+
+
+/************ end Rule pseudo ****************/
+
+
+/************ begin Rule element_name ****************
+ *
+ * element_name:
+ * name=ident | name="*";
+ *
+ **/
+
+// name=ident | name="*"
+protected class Element_name_Alternatives extends AlternativesToken {
+
+ public Element_name_Alternatives(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getElement_nameAccess().getAlternatives();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Element_name_NameAssignment_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Element_name_NameAssignment_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getElement_nameRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// name=ident
+protected class Element_name_NameAssignment_0 extends AssignmentToken {
+
+ public Element_name_NameAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getElement_nameAccess().getNameAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("name",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("name");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getElement_nameAccess().getNameIdentTerminalRuleCall_0_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getElement_nameAccess().getNameIdentTerminalRuleCall_0_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// name="*"
+protected class Element_name_NameAssignment_1 extends AssignmentToken {
+
+ public Element_name_NameAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getElement_nameAccess().getNameAssignment_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("name",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("name");
+ if(keywordSerializer.isValid(obj.getEObject(), grammarAccess.getElement_nameAccess().getNameAsteriskKeyword_1_0(), value, null)) {
+ type = AssignmentType.KEYWORD;
+ element = grammarAccess.getElement_nameAccess().getNameAsteriskKeyword_1_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+
+/************ end Rule element_name ****************/
+
+
+/************ begin Rule declaration ****************
+ *
+ * declaration:
+ * property=ident ":" expr=expr priority="!important"?;
+ *
+ **/
+
+// property=ident ":" expr=expr priority="!important"?
+protected class Declaration_Group extends GroupToken {
+
+ public Declaration_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getDeclarationAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Declaration_PriorityAssignment_3(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Declaration_ExprAssignment_2(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getDeclarationRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// property=ident
+protected class Declaration_PropertyAssignment_0 extends AssignmentToken {
+
+ public Declaration_PropertyAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getDeclarationAccess().getPropertyAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("property",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("property");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getDeclarationAccess().getPropertyIdentTerminalRuleCall_0_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getDeclarationAccess().getPropertyIdentTerminalRuleCall_0_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// ":"
+protected class Declaration_ColonKeyword_1 extends KeywordToken {
+
+ public Declaration_ColonKeyword_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getDeclarationAccess().getColonKeyword_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Declaration_PropertyAssignment_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// expr=expr
+protected class Declaration_ExprAssignment_2 extends AssignmentToken {
+
+ public Declaration_ExprAssignment_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getDeclarationAccess().getExprAssignment_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expr_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("expr",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("expr");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExprRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getDeclarationAccess().getExprExprParserRuleCall_2_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Declaration_ColonKeyword_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// priority="!important"?
+protected class Declaration_PriorityAssignment_3 extends AssignmentToken {
+
+ public Declaration_PriorityAssignment_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getDeclarationAccess().getPriorityAssignment_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Declaration_ExprAssignment_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("priority",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("priority");
+ if(keywordSerializer.isValid(obj.getEObject(), grammarAccess.getDeclarationAccess().getPriorityImportantKeyword_3_0(), value, null)) {
+ type = AssignmentType.KEYWORD;
+ element = grammarAccess.getDeclarationAccess().getPriorityImportantKeyword_3_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+
+/************ end Rule declaration ****************/
+
+
+/************ begin Rule expr ****************
+ *
+ * expr:
+ * term+=term (operators+=("/" | ",")? term+=term)*;
+ *
+ **/
+
+// term+=term (operators+=("/" | ",")? term+=term)*
+protected class Expr_Group extends GroupToken {
+
+ public Expr_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getExprAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expr_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Expr_TermAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getExprRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// term+=term
+protected class Expr_TermAssignment_0 extends AssignmentToken {
+
+ public Expr_TermAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getExprAccess().getTermAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Term_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("term",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("term");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getTermRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getExprAccess().getTermTermParserRuleCall_0_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+// (operators+=("/" | ",")? term+=term)*
+protected class Expr_Group_1 extends GroupToken {
+
+ public Expr_Group_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getExprAccess().getGroup_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expr_TermAssignment_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// operators+=("/" | ",")?
+protected class Expr_OperatorsAssignment_1_0 extends AssignmentToken {
+
+ public Expr_OperatorsAssignment_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getExprAccess().getOperatorsAssignment_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expr_Group_1(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Expr_TermAssignment_0(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("operators",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("operators");
+ if(keywordSerializer.isValid(obj.getEObject(), grammarAccess.getExprAccess().getOperatorsSolidusKeyword_1_0_0_0(), value, null)) {
+ type = AssignmentType.KEYWORD;
+ element = grammarAccess.getExprAccess().getOperatorsSolidusKeyword_1_0_0_0();
+ return obj;
+ }
+ if(keywordSerializer.isValid(obj.getEObject(), grammarAccess.getExprAccess().getOperatorsCommaKeyword_1_0_0_1(), value, null)) {
+ type = AssignmentType.KEYWORD;
+ element = grammarAccess.getExprAccess().getOperatorsCommaKeyword_1_0_0_1();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// term+=term
+protected class Expr_TermAssignment_1_1 extends AssignmentToken {
+
+ public Expr_TermAssignment_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getExprAccess().getTermAssignment_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Term_Alternatives(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("term",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("term");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getTermRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getExprAccess().getTermTermParserRuleCall_1_1_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Expr_OperatorsAssignment_1_0(lastRuleCallOrigin, next, actIndex, consumed);
+ case 1: return new Expr_Group_1(lastRuleCallOrigin, next, actIndex, consumed);
+ case 2: return new Expr_TermAssignment_0(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+
+
+/************ end Rule expr ****************/
+
+
+/************ begin Rule term ****************
+ *
+ * term:
+ * unary=unary_operator? number=unary_numbers | name=STRING | id=ident | uri=URI | color=hexdigits | function=function;
+ *
+ **/
+
+// unary=unary_operator? number=unary_numbers | name=STRING | id=ident | uri=URI | color=hexdigits | function=function
+protected class Term_Alternatives extends AlternativesToken {
+
+ public Term_Alternatives(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getTermAccess().getAlternatives();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Term_Group_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new Term_NameAssignment_1(lastRuleCallOrigin, this, 1, inst);
+ case 2: return new Term_IdAssignment_2(lastRuleCallOrigin, this, 2, inst);
+ case 3: return new Term_UriAssignment_3(lastRuleCallOrigin, this, 3, inst);
+ case 4: return new Term_ColorAssignment_4(lastRuleCallOrigin, this, 4, inst);
+ case 5: return new Term_FunctionAssignment_5(lastRuleCallOrigin, this, 5, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getTermRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// unary=unary_operator? number=unary_numbers
+protected class Term_Group_0 extends GroupToken {
+
+ public Term_Group_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getTermAccess().getGroup_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Term_NumberAssignment_0_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// unary=unary_operator?
+protected class Term_UnaryAssignment_0_0 extends AssignmentToken {
+
+ public Term_UnaryAssignment_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getTermAccess().getUnaryAssignment_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("unary",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("unary");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getTermAccess().getUnaryUnary_operatorParserRuleCall_0_0_0(), value, null)) {
+ type = AssignmentType.DATATYPE_RULE_CALL;
+ element = grammarAccess.getTermAccess().getUnaryUnary_operatorParserRuleCall_0_0_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// number=unary_numbers
+protected class Term_NumberAssignment_0_1 extends AssignmentToken {
+
+ public Term_NumberAssignment_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getTermAccess().getNumberAssignment_0_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Term_UnaryAssignment_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index - 1, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("number",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("number");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getTermAccess().getNumberUnary_numbersParserRuleCall_0_1_0(), value, null)) {
+ type = AssignmentType.DATATYPE_RULE_CALL;
+ element = grammarAccess.getTermAccess().getNumberUnary_numbersParserRuleCall_0_1_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+
+// name=STRING
+protected class Term_NameAssignment_1 extends AssignmentToken {
+
+ public Term_NameAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getTermAccess().getNameAssignment_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("name",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("name");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getTermAccess().getNameSTRINGTerminalRuleCall_1_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getTermAccess().getNameSTRINGTerminalRuleCall_1_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// id=ident
+protected class Term_IdAssignment_2 extends AssignmentToken {
+
+ public Term_IdAssignment_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getTermAccess().getIdAssignment_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("id",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("id");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getTermAccess().getIdIdentTerminalRuleCall_2_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getTermAccess().getIdIdentTerminalRuleCall_2_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// uri=URI
+protected class Term_UriAssignment_3 extends AssignmentToken {
+
+ public Term_UriAssignment_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getTermAccess().getUriAssignment_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new URI_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("uri",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("uri");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getURIRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getTermAccess().getUriURIParserRuleCall_3_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+// color=hexdigits
+protected class Term_ColorAssignment_4 extends AssignmentToken {
+
+ public Term_ColorAssignment_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getTermAccess().getColorAssignment_4();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("color",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("color");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getTermAccess().getColorHexdigitsTerminalRuleCall_4_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getTermAccess().getColorHexdigitsTerminalRuleCall_4_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// function=function
+protected class Term_FunctionAssignment_5 extends AssignmentToken {
+
+ public Term_FunctionAssignment_5(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getTermAccess().getFunctionAssignment_5();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Function_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("function",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("function");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getFunctionRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getTermAccess().getFunctionFunctionParserRuleCall_5_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, consumed);
+ }
+ }
+}
+
+
+/************ end Rule term ****************/
+
+
+/************ begin Rule function ****************
+ *
+ * function:
+ * name=ident "(" expr=expr ")";
+ *
+ **/
+
+// name=ident "(" expr=expr ")"
+protected class Function_Group extends GroupToken {
+
+ public Function_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getFunctionAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Function_RightParenthesisKeyword_3(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getFunctionRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// name=ident
+protected class Function_NameAssignment_0 extends AssignmentToken {
+
+ public Function_NameAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getFunctionAccess().getNameAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("name",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("name");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getFunctionAccess().getNameIdentTerminalRuleCall_0_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getFunctionAccess().getNameIdentTerminalRuleCall_0_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// "("
+protected class Function_LeftParenthesisKeyword_1 extends KeywordToken {
+
+ public Function_LeftParenthesisKeyword_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getFunctionAccess().getLeftParenthesisKeyword_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Function_NameAssignment_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// expr=expr
+protected class Function_ExprAssignment_2 extends AssignmentToken {
+
+ public Function_ExprAssignment_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getFunctionAccess().getExprAssignment_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Expr_Group(this, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("expr",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("expr");
+ if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+ IEObjectConsumer param = createEObjectConsumer((EObject)value);
+ if(param.isInstanceOf(grammarAccess.getExprRule().getType().getClassifier())) {
+ type = AssignmentType.PARSER_RULE_CALL;
+ element = grammarAccess.getFunctionAccess().getExprExprParserRuleCall_2_0();
+ consumed = obj;
+ return param;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) {
+ if(value == inst.getEObject() && !inst.isConsumed()) return null;
+ switch(index) {
+ case 0: return new Function_LeftParenthesisKeyword_1(lastRuleCallOrigin, next, actIndex, consumed);
+ default: return null;
+ }
+ }
+}
+
+// ")"
+protected class Function_RightParenthesisKeyword_3 extends KeywordToken {
+
+ public Function_RightParenthesisKeyword_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getFunctionAccess().getRightParenthesisKeyword_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Function_ExprAssignment_2(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+/************ end Rule function ****************/
+
+
+/************ begin Rule URI ****************
+ *
+ * URI:
+ * "url" "(" {URI} (name+=STRING | ("\\" | "/") id+=ident)* ("." id+=ident)? ")";
+ *
+ **/
+
+// "url" "(" {URI} (name+=STRING | ("\\" | "/") id+=ident)* ("." id+=ident)? ")"
+protected class URI_Group extends GroupToken {
+
+ public URI_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getURIAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new URI_RightParenthesisKeyword_5(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getURIAccess().getURIAction_2().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// "url"
+protected class URI_UrlKeyword_0 extends KeywordToken {
+
+ public URI_UrlKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getURIAccess().getUrlKeyword_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+}
+
+// "("
+protected class URI_LeftParenthesisKeyword_1 extends KeywordToken {
+
+ public URI_LeftParenthesisKeyword_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getURIAccess().getLeftParenthesisKeyword_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new URI_UrlKeyword_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// {URI}
+protected class URI_URIAction_2 extends ActionToken {
+
+ public URI_URIAction_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Action getGrammarElement() {
+ return grammarAccess.getURIAccess().getURIAction_2();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new URI_LeftParenthesisKeyword_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(!eObjectConsumer.isConsumed()) return null;
+ return eObjectConsumer;
+ }
+}
+
+// (name+=STRING | ("\\" | "/") id+=ident)*
+protected class URI_Alternatives_3 extends AlternativesToken {
+
+ public URI_Alternatives_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getURIAccess().getAlternatives_3();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new URI_NameAssignment_3_0(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new URI_Group_3_1(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// name+=STRING
+protected class URI_NameAssignment_3_0 extends AssignmentToken {
+
+ public URI_NameAssignment_3_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getURIAccess().getNameAssignment_3_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new URI_Alternatives_3(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new URI_URIAction_2(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("name",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("name");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getURIAccess().getNameSTRINGTerminalRuleCall_3_0_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getURIAccess().getNameSTRINGTerminalRuleCall_3_0_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// ("\\" | "/") id+=ident
+protected class URI_Group_3_1 extends GroupToken {
+
+ public URI_Group_3_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getURIAccess().getGroup_3_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new URI_IdAssignment_3_1_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// "\\" | "/"
+protected class URI_Alternatives_3_1_0 extends AlternativesToken {
+
+ public URI_Alternatives_3_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Alternatives getGrammarElement() {
+ return grammarAccess.getURIAccess().getAlternatives_3_1_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new URI_ReverseSolidusKeyword_3_1_0_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// "\\"
+protected class URI_ReverseSolidusKeyword_3_1_0_0 extends KeywordToken {
+
+ public URI_ReverseSolidusKeyword_3_1_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getURIAccess().getReverseSolidusKeyword_3_1_0_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new URI_Alternatives_3(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new URI_URIAction_2(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+// id+=ident
+protected class URI_IdAssignment_3_1_1 extends AssignmentToken {
+
+ public URI_IdAssignment_3_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getURIAccess().getIdAssignment_3_1_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new URI_Alternatives_3_1_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("id",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("id");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getURIAccess().getIdIdentTerminalRuleCall_3_1_1_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getURIAccess().getIdIdentTerminalRuleCall_3_1_1_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+
+
+// ("." id+=ident)?
+protected class URI_Group_4 extends GroupToken {
+
+ public URI_Group_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getURIAccess().getGroup_4();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new URI_IdAssignment_4_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// "."
+protected class URI_FullStopKeyword_4_0 extends KeywordToken {
+
+ public URI_FullStopKeyword_4_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getURIAccess().getFullStopKeyword_4_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new URI_Alternatives_3(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new URI_URIAction_2(lastRuleCallOrigin, this, 1, inst);
+ default: return null;
+ }
+ }
+
+}
+
+// id+=ident
+protected class URI_IdAssignment_4_1 extends AssignmentToken {
+
+ public URI_IdAssignment_4_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getURIAccess().getIdAssignment_4_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new URI_FullStopKeyword_4_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("id",false)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("id");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getURIAccess().getIdIdentTerminalRuleCall_4_1_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getURIAccess().getIdIdentTerminalRuleCall_4_1_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+
+// ")"
+protected class URI_RightParenthesisKeyword_5 extends KeywordToken {
+
+ public URI_RightParenthesisKeyword_5(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Keyword getGrammarElement() {
+ return grammarAccess.getURIAccess().getRightParenthesisKeyword_5();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new URI_Group_4(lastRuleCallOrigin, this, 0, inst);
+ case 1: return new URI_Alternatives_3(lastRuleCallOrigin, this, 1, inst);
+ case 2: return new URI_URIAction_2(lastRuleCallOrigin, this, 2, inst);
+ default: return null;
+ }
+ }
+
+}
+
+
+/************ end Rule URI ****************/
+
+
+
+
+
+
+
+
+
+
+/************ begin Rule css_hash_class ****************
+ *
+ * css_hash_class:
+ * type=("#" | ".") name=ident;
+ *
+ **/
+
+// type=("#" | ".") name=ident
+protected class Css_hash_class_Group extends GroupToken {
+
+ public Css_hash_class_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Group getGrammarElement() {
+ return grammarAccess.getCss_hash_classAccess().getGroup();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Css_hash_class_NameAssignment_1(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if(getEObject().eClass() != grammarAccess.getCss_hash_classRule().getType().getClassifier())
+ return null;
+ return eObjectConsumer;
+ }
+
+}
+
+// type=("#" | ".")
+protected class Css_hash_class_TypeAssignment_0 extends AssignmentToken {
+
+ public Css_hash_class_TypeAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getCss_hash_classAccess().getTypeAssignment_0();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("type",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("type");
+ if(keywordSerializer.isValid(obj.getEObject(), grammarAccess.getCss_hash_classAccess().getTypeNumberSignKeyword_0_0_0(), value, null)) {
+ type = AssignmentType.KEYWORD;
+ element = grammarAccess.getCss_hash_classAccess().getTypeNumberSignKeyword_0_0_0();
+ return obj;
+ }
+ if(keywordSerializer.isValid(obj.getEObject(), grammarAccess.getCss_hash_classAccess().getTypeFullStopKeyword_0_0_1(), value, null)) {
+ type = AssignmentType.KEYWORD;
+ element = grammarAccess.getCss_hash_classAccess().getTypeFullStopKeyword_0_0_1();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+// name=ident
+protected class Css_hash_class_NameAssignment_1 extends AssignmentToken {
+
+ public Css_hash_class_NameAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+ super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+ }
+
+ @Override
+ public Assignment getGrammarElement() {
+ return grammarAccess.getCss_hash_classAccess().getNameAssignment_1();
+ }
+
+ @Override
+ public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+ switch(index) {
+ case 0: return new Css_hash_class_TypeAssignment_0(lastRuleCallOrigin, this, 0, inst);
+ default: return null;
+ }
+ }
+
+ @Override
+ public IEObjectConsumer tryConsume() {
+ if((value = eObjectConsumer.getConsumable("name",true)) == null) return null;
+ IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("name");
+ if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getCss_hash_classAccess().getNameIdentTerminalRuleCall_1_0(), value, null)) {
+ type = AssignmentType.TERMINAL_RULE_CALL;
+ element = grammarAccess.getCss_hash_classAccess().getNameIdentTerminalRuleCall_1_0();
+ return obj;
+ }
+ return null;
+ }
+
+}
+
+
+/************ end Rule css_hash_class ****************/
+
+
+
+}
diff --git a/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/CSSAntlrTokenFileProvider.java b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/CSSAntlrTokenFileProvider.java
new file mode 100644
index 00000000..1ed4bbb2
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/CSSAntlrTokenFileProvider.java
@@ -0,0 +1,15 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.e4.parser.antlr;
+
+import java.io.InputStream;
+import org.eclipse.xtext.parser.antlr.IAntlrTokenFileProvider;
+
+public class CSSAntlrTokenFileProvider implements IAntlrTokenFileProvider {
+
+ public InputStream getAntlrTokenFile() {
+ ClassLoader classLoader = getClass().getClassLoader();
+ return classLoader.getResourceAsStream("org/eclipse/e4/parser/antlr/internal/InternalCSS.tokens");
+ }
+}
diff --git a/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/CSSParser.java b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/CSSParser.java
new file mode 100644
index 00000000..003f7fd6
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/CSSParser.java
@@ -0,0 +1,39 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.e4.parser.antlr;
+
+import com.google.inject.Inject;
+
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import org.eclipse.e4.services.CSSGrammarAccess;
+
+public class CSSParser extends org.eclipse.xtext.parser.antlr.AbstractAntlrParser {
+
+ @Inject
+ private CSSGrammarAccess grammarAccess;
+
+ @Override
+ protected void setInitialHiddenTokens(XtextTokenStream tokenStream) {
+ tokenStream.setInitialHiddenTokens("RULE_WS", "RULE_ML_COMMENT", "RULE_SL_COMMENT");
+ }
+
+ @Override
+ protected org.eclipse.e4.parser.antlr.internal.InternalCSSParser createParser(XtextTokenStream stream) {
+ return new org.eclipse.e4.parser.antlr.internal.InternalCSSParser(stream, getGrammarAccess());
+ }
+
+ @Override
+ protected String getDefaultRuleName() {
+ return "stylesheet";
+ }
+
+ public CSSGrammarAccess getGrammarAccess() {
+ return this.grammarAccess;
+ }
+
+ public void setGrammarAccess(CSSGrammarAccess grammarAccess) {
+ this.grammarAccess = grammarAccess;
+ }
+
+}
diff --git a/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g
new file mode 100644
index 00000000..73f59224
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g
@@ -0,0 +1,1737 @@
+/*
+* generated by Xtext
+*/
+grammar InternalCSS;
+
+options {
+ superClass=AbstractInternalAntlrParser;
+
+}
+
+@lexer::header {
+package org.eclipse.e4.parser.antlr.internal;
+
+// Hack: Use our own Lexer superclass by means of import.
+// Currently there is no other way to specify the superclass for the lexer.
+import org.eclipse.xtext.parser.antlr.Lexer;
+}
+
+@parser::header {
+package org.eclipse.e4.parser.antlr.internal;
+
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.parser.*;
+import org.eclipse.xtext.parser.impl.*;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
+import org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken;
+import org.eclipse.e4.services.CSSGrammarAccess;
+
+}
+
+@parser::members {
+
+ private CSSGrammarAccess grammarAccess;
+
+ public InternalCSSParser(TokenStream input, CSSGrammarAccess grammarAccess) {
+ this(input);
+ this.grammarAccess = grammarAccess;
+ registerRules(grammarAccess.getGrammar());
+ }
+
+ @Override
+ protected String getFirstRuleName() {
+ return "stylesheet";
+ }
+
+ @Override
+ protected CSSGrammarAccess getGrammarAccess() {
+ return grammarAccess;
+ }
+}
+
+@rulecatch {
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+}
+
+
+
+
+// Entry rule entryRulestylesheet
+entryRulestylesheet returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getStylesheetRule()); }
+ iv_rulestylesheet=rulestylesheet
+ { $current=$iv_rulestylesheet.current; }
+ EOF
+;
+
+// Rule stylesheet
+rulestylesheet returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ lv_location_0_0=RULE_STRING
+ {
+ newLeafNode(lv_location_0_0, grammarAccess.getStylesheetAccess().getLocationSTRINGTerminalRuleCall_0_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getStylesheetRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "location",
+ lv_location_0_0,
+ "STRING");
+ }
+
+)
+)?(
+(
+ {
+ newCompositeNode(grammarAccess.getStylesheetAccess().getImportNameCss_importParserRuleCall_1_0());
+ }
+ lv_importName_1_0=rulecss_import {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getStylesheetRule());
+ }
+ add(
+ $current,
+ "importName",
+ lv_importName_1_0,
+ "css_import");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)*(
+(
+ {
+ newCompositeNode(grammarAccess.getStylesheetAccess().getRulesetRulesParserRuleCall_2_0());
+ }
+ lv_ruleset_2_0=ruleRules {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getStylesheetRule());
+ }
+ add(
+ $current,
+ "ruleset",
+ lv_ruleset_2_0,
+ "Rules");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)*)
+;
+
+
+
+
+
+// Entry rule entryRuleRules
+entryRuleRules returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getRulesRule()); }
+ iv_ruleRules=ruleRules
+ { $current=$iv_ruleRules.current; }
+ EOF
+;
+
+// Rule Rules
+ruleRules returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getRulesAccess().getSelectorsSelectorParserRuleCall_0_0());
+ }
+ lv_selectors_0_0=ruleselector {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getRulesRule());
+ }
+ add(
+ $current,
+ "selectors",
+ lv_selectors_0_0,
+ "selector");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)( otherlv_1=','
+ {
+ newLeafNode(otherlv_1, grammarAccess.getRulesAccess().getCommaKeyword_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getRulesAccess().getSelectorsSelectorParserRuleCall_1_1_0());
+ }
+ lv_selectors_2_0=ruleselector {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getRulesRule());
+ }
+ add(
+ $current,
+ "selectors",
+ lv_selectors_2_0,
+ "selector");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))* otherlv_3='{'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getRulesAccess().getLeftCurlyBracketKeyword_2());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getRulesAccess().getDeclarationsDeclarationParserRuleCall_3_0());
+ }
+ lv_declarations_4_0=ruledeclaration {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getRulesRule());
+ }
+ add(
+ $current,
+ "declarations",
+ lv_declarations_4_0,
+ "declaration");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)?( otherlv_5=';'
+ {
+ newLeafNode(otherlv_5, grammarAccess.getRulesAccess().getSemicolonKeyword_4_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getRulesAccess().getDeclarationsDeclarationParserRuleCall_4_1_0());
+ }
+ lv_declarations_6_0=ruledeclaration {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getRulesRule());
+ }
+ add(
+ $current,
+ "declarations",
+ lv_declarations_6_0,
+ "declaration");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)?)* otherlv_7='}'
+ {
+ newLeafNode(otherlv_7, grammarAccess.getRulesAccess().getRightCurlyBracketKeyword_5());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRulecss_import
+entryRulecss_import returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getCss_importRule()); }
+ iv_rulecss_import=rulecss_import
+ { $current=$iv_rulecss_import.current; }
+ EOF
+;
+
+// Rule css_import
+rulecss_import returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+( otherlv_0='@import'
+ {
+ newLeafNode(otherlv_0, grammarAccess.getCss_importAccess().getImportKeyword_0());
+ }
+((
+(
+ lv_string_name_1_0=RULE_STRING
+ {
+ newLeafNode(lv_string_name_1_0, grammarAccess.getCss_importAccess().getString_nameSTRINGTerminalRuleCall_1_0_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getCss_importRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "string_name",
+ lv_string_name_1_0,
+ "STRING");
+ }
+
+)
+)
+ |
+ {
+ newCompositeNode(grammarAccess.getCss_importAccess().getURIParserRuleCall_1_1());
+ }
+ this_URI_2=ruleURI
+ {
+ $current = $this_URI_2.current;
+ afterParserOrEnumRuleCall();
+ }
+) otherlv_3=';'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getCss_importAccess().getSemicolonKeyword_2());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleselector
+entryRuleselector returns [EObject current=null]
+ @init {
+ HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
+ }
+ :
+ { newCompositeNode(grammarAccess.getSelectorRule()); }
+ iv_ruleselector=ruleselector
+ { $current=$iv_ruleselector.current; }
+ EOF
+;
+finally {
+ myHiddenTokenState.restore();
+}
+
+// Rule selector
+ruleselector returns [EObject current=null]
+ @init { enterRule();
+ HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getSelectorAccess().getSimpleselectorsSimple_selectorParserRuleCall_0_0());
+ }
+ lv_simpleselectors_0_0=rulesimple_selector {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getSelectorRule());
+ }
+ set(
+ $current,
+ "simpleselectors",
+ lv_simpleselectors_0_0,
+ "simple_selector");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(((
+(
+ {
+ newCompositeNode(grammarAccess.getSelectorAccess().getCombinatorCombinatorParserRuleCall_1_0_0_0());
+ }
+ lv_combinator_1_0=rulecombinator {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getSelectorRule());
+ }
+ set(
+ $current,
+ "combinator",
+ lv_combinator_1_0,
+ "combinator");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getSelectorAccess().getSelectorSelectorParserRuleCall_1_0_1_0());
+ }
+ lv_selector_2_0=ruleselector {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getSelectorRule());
+ }
+ set(
+ $current,
+ "selector",
+ lv_selector_2_0,
+ "selector");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+ |((this_WS_3=RULE_WS
+ {
+ newLeafNode(this_WS_3, grammarAccess.getSelectorAccess().getWSTerminalRuleCall_1_1_0());
+ }
+)+((
+(
+ {
+ newCompositeNode(grammarAccess.getSelectorAccess().getCombinatorCombinatorParserRuleCall_1_1_1_0_0());
+ }
+ lv_combinator_4_0=rulecombinator {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getSelectorRule());
+ }
+ set(
+ $current,
+ "combinator",
+ lv_combinator_4_0,
+ "combinator");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)?(
+(
+ {
+ newCompositeNode(grammarAccess.getSelectorAccess().getSelectorSelectorParserRuleCall_1_1_1_1_0());
+ }
+ lv_selector_5_0=ruleselector {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getSelectorRule());
+ }
+ set(
+ $current,
+ "selector",
+ lv_selector_5_0,
+ "selector");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))?))?)
+;
+finally {
+ myHiddenTokenState.restore();
+}
+
+
+
+
+
+// Entry rule entryRulesimple_selector
+entryRulesimple_selector returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getSimple_selectorRule()); }
+ iv_rulesimple_selector=rulesimple_selector
+ { $current=$iv_rulesimple_selector.current; }
+ EOF
+;
+
+// Rule simple_selector
+rulesimple_selector returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(((
+(
+ {
+ newCompositeNode(grammarAccess.getSimple_selectorAccess().getElementElement_nameParserRuleCall_0_0_0());
+ }
+ lv_element_0_0=ruleelement_name {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getSimple_selectorRule());
+ }
+ set(
+ $current,
+ "element",
+ lv_element_0_0,
+ "element_name");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getSimple_selectorAccess().getIdCss_hash_classParserRuleCall_0_1_0());
+ }
+ lv_id_1_0=rulecss_hash_class {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getSimple_selectorRule());
+ }
+ add(
+ $current,
+ "id",
+ lv_id_1_0,
+ "css_hash_class");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)*(
+(
+ {
+ newCompositeNode(grammarAccess.getSimple_selectorAccess().getPseudoPseudoParserRuleCall_0_2_0());
+ }
+ lv_pseudo_2_0=rulepseudo {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getSimple_selectorRule());
+ }
+ add(
+ $current,
+ "pseudo",
+ lv_pseudo_2_0,
+ "pseudo");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)*)
+ |(
+(
+ {
+ newCompositeNode(grammarAccess.getSimple_selectorAccess().getIdCss_hash_classParserRuleCall_1_0());
+ }
+ lv_id_3_0=rulecss_hash_class {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getSimple_selectorRule());
+ }
+ add(
+ $current,
+ "id",
+ lv_id_3_0,
+ "css_hash_class");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)+)
+;
+
+
+
+
+
+// Entry rule entryRulepseudo
+entryRulepseudo returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getPseudoRule()); }
+ iv_rulepseudo=rulepseudo
+ { $current=$iv_rulepseudo.current; }
+ EOF
+;
+
+// Rule pseudo
+rulepseudo returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(( otherlv_0=':'
+ {
+ newLeafNode(otherlv_0, grammarAccess.getPseudoAccess().getColonKeyword_0_0());
+ }
+(
+(
+ lv_name_1_0=RULE_IDENT
+ {
+ newLeafNode(lv_name_1_0, grammarAccess.getPseudoAccess().getNameIdentTerminalRuleCall_0_1_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getPseudoRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "name",
+ lv_name_1_0,
+ "ident");
+ }
+
+)
+))
+ |((
+(
+ {
+ newCompositeNode(grammarAccess.getPseudoAccess().getFunctionFunctionParserRuleCall_1_0_0());
+ }
+ lv_function_2_0=rulefunction {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPseudoRule());
+ }
+ set(
+ $current,
+ "function",
+ lv_function_2_0,
+ "function");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(
+(
+ lv_name_3_0=RULE_IDENT
+ {
+ newLeafNode(lv_name_3_0, grammarAccess.getPseudoAccess().getNameIdentTerminalRuleCall_1_1_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getPseudoRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "name",
+ lv_name_3_0,
+ "ident");
+ }
+
+)
+)?))
+;
+
+
+
+
+
+// Entry rule entryRuleelement_name
+entryRuleelement_name returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getElement_nameRule()); }
+ iv_ruleelement_name=ruleelement_name
+ { $current=$iv_ruleelement_name.current; }
+ EOF
+;
+
+// Rule element_name
+ruleelement_name returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ lv_name_0_0=RULE_IDENT
+ {
+ newLeafNode(lv_name_0_0, grammarAccess.getElement_nameAccess().getNameIdentTerminalRuleCall_0_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getElement_nameRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "name",
+ lv_name_0_0,
+ "ident");
+ }
+
+)
+)
+ |(
+(
+ lv_name_1_0= '*'
+ {
+ newLeafNode(lv_name_1_0, grammarAccess.getElement_nameAccess().getNameAsteriskKeyword_1_0());
+ }
+
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getElement_nameRule());
+ }
+ setWithLastConsumed($current, "name", lv_name_1_0, "*");
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuledeclaration
+entryRuledeclaration returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getDeclarationRule()); }
+ iv_ruledeclaration=ruledeclaration
+ { $current=$iv_ruledeclaration.current; }
+ EOF
+;
+
+// Rule declaration
+ruledeclaration returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ lv_property_0_0=RULE_IDENT
+ {
+ newLeafNode(lv_property_0_0, grammarAccess.getDeclarationAccess().getPropertyIdentTerminalRuleCall_0_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getDeclarationRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "property",
+ lv_property_0_0,
+ "ident");
+ }
+
+)
+) otherlv_1=':'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getDeclarationAccess().getColonKeyword_1());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getDeclarationAccess().getExprExprParserRuleCall_2_0());
+ }
+ lv_expr_2_0=ruleexpr {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getDeclarationRule());
+ }
+ set(
+ $current,
+ "expr",
+ lv_expr_2_0,
+ "expr");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(
+(
+ lv_priority_3_0= '!important'
+ {
+ newLeafNode(lv_priority_3_0, grammarAccess.getDeclarationAccess().getPriorityImportantKeyword_3_0());
+ }
+
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getDeclarationRule());
+ }
+ setWithLastConsumed($current, "priority", lv_priority_3_0, "!important");
+ }
+
+)
+)?)
+;
+
+
+
+
+
+// Entry rule entryRuleexpr
+entryRuleexpr returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getExprRule()); }
+ iv_ruleexpr=ruleexpr
+ { $current=$iv_ruleexpr.current; }
+ EOF
+;
+
+// Rule expr
+ruleexpr returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getExprAccess().getTermTermParserRuleCall_0_0());
+ }
+ lv_term_0_0=ruleterm {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getExprRule());
+ }
+ add(
+ $current,
+ "term",
+ lv_term_0_0,
+ "term");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)((
+(
+(
+ lv_operators_1_1= '/'
+ {
+ newLeafNode(lv_operators_1_1, grammarAccess.getExprAccess().getOperatorsSolidusKeyword_1_0_0_0());
+ }
+
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getExprRule());
+ }
+ addWithLastConsumed($current, "operators", lv_operators_1_1, null);
+ }
+
+ | lv_operators_1_2= ','
+ {
+ newLeafNode(lv_operators_1_2, grammarAccess.getExprAccess().getOperatorsCommaKeyword_1_0_0_1());
+ }
+
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getExprRule());
+ }
+ addWithLastConsumed($current, "operators", lv_operators_1_2, null);
+ }
+
+)
+
+)
+)?(
+(
+ {
+ newCompositeNode(grammarAccess.getExprAccess().getTermTermParserRuleCall_1_1_0());
+ }
+ lv_term_2_0=ruleterm {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getExprRule());
+ }
+ add(
+ $current,
+ "term",
+ lv_term_2_0,
+ "term");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*)
+;
+
+
+
+
+
+// Entry rule entryRuleterm
+entryRuleterm returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getTermRule()); }
+ iv_ruleterm=ruleterm
+ { $current=$iv_ruleterm.current; }
+ EOF
+;
+
+// Rule term
+ruleterm returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(((
+(
+ {
+ newCompositeNode(grammarAccess.getTermAccess().getUnaryUnary_operatorParserRuleCall_0_0_0());
+ }
+ lv_unary_0_0=ruleunary_operator {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getTermRule());
+ }
+ set(
+ $current,
+ "unary",
+ lv_unary_0_0,
+ "unary_operator");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)?(
+(
+ {
+ newCompositeNode(grammarAccess.getTermAccess().getNumberUnary_numbersParserRuleCall_0_1_0());
+ }
+ lv_number_1_0=ruleunary_numbers {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getTermRule());
+ }
+ set(
+ $current,
+ "number",
+ lv_number_1_0,
+ "unary_numbers");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+ |(
+(
+ lv_name_2_0=RULE_STRING
+ {
+ newLeafNode(lv_name_2_0, grammarAccess.getTermAccess().getNameSTRINGTerminalRuleCall_1_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getTermRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "name",
+ lv_name_2_0,
+ "STRING");
+ }
+
+)
+)
+ |(
+(
+ lv_id_3_0=RULE_IDENT
+ {
+ newLeafNode(lv_id_3_0, grammarAccess.getTermAccess().getIdIdentTerminalRuleCall_2_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getTermRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "id",
+ lv_id_3_0,
+ "ident");
+ }
+
+)
+)
+ |(
+(
+ {
+ newCompositeNode(grammarAccess.getTermAccess().getUriURIParserRuleCall_3_0());
+ }
+ lv_uri_4_0=ruleURI {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getTermRule());
+ }
+ set(
+ $current,
+ "uri",
+ lv_uri_4_0,
+ "URI");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)
+ |(
+(
+ lv_color_5_0=RULE_HEXDIGITS
+ {
+ newLeafNode(lv_color_5_0, grammarAccess.getTermAccess().getColorHexdigitsTerminalRuleCall_4_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getTermRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "color",
+ lv_color_5_0,
+ "hexdigits");
+ }
+
+)
+)
+ |(
+(
+ {
+ newCompositeNode(grammarAccess.getTermAccess().getFunctionFunctionParserRuleCall_5_0());
+ }
+ lv_function_6_0=rulefunction {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getTermRule());
+ }
+ set(
+ $current,
+ "function",
+ lv_function_6_0,
+ "function");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRulefunction
+entryRulefunction returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getFunctionRule()); }
+ iv_rulefunction=rulefunction
+ { $current=$iv_rulefunction.current; }
+ EOF
+;
+
+// Rule function
+rulefunction returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ lv_name_0_0=RULE_IDENT
+ {
+ newLeafNode(lv_name_0_0, grammarAccess.getFunctionAccess().getNameIdentTerminalRuleCall_0_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getFunctionRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "name",
+ lv_name_0_0,
+ "ident");
+ }
+
+)
+) otherlv_1='('
+ {
+ newLeafNode(otherlv_1, grammarAccess.getFunctionAccess().getLeftParenthesisKeyword_1());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getFunctionAccess().getExprExprParserRuleCall_2_0());
+ }
+ lv_expr_2_0=ruleexpr {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getFunctionRule());
+ }
+ set(
+ $current,
+ "expr",
+ lv_expr_2_0,
+ "expr");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+) otherlv_3=')'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getFunctionAccess().getRightParenthesisKeyword_3());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleURI
+entryRuleURI returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getURIRule()); }
+ iv_ruleURI=ruleURI
+ { $current=$iv_ruleURI.current; }
+ EOF
+;
+
+// Rule URI
+ruleURI returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+( otherlv_0='url'
+ {
+ newLeafNode(otherlv_0, grammarAccess.getURIAccess().getUrlKeyword_0());
+ }
+ otherlv_1='('
+ {
+ newLeafNode(otherlv_1, grammarAccess.getURIAccess().getLeftParenthesisKeyword_1());
+ }
+(
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getURIAccess().getURIAction_2(),
+ $current);
+ }
+)((
+(
+ lv_name_3_0=RULE_STRING
+ {
+ newLeafNode(lv_name_3_0, grammarAccess.getURIAccess().getNameSTRINGTerminalRuleCall_3_0_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getURIRule());
+ }
+ addWithLastConsumed(
+ $current,
+ "name",
+ lv_name_3_0,
+ "STRING");
+ }
+
+)
+)
+ |(( otherlv_4='\\'
+ {
+ newLeafNode(otherlv_4, grammarAccess.getURIAccess().getReverseSolidusKeyword_3_1_0_0());
+ }
+
+ | otherlv_5='/'
+ {
+ newLeafNode(otherlv_5, grammarAccess.getURIAccess().getSolidusKeyword_3_1_0_1());
+ }
+)(
+(
+ lv_id_6_0=RULE_IDENT
+ {
+ newLeafNode(lv_id_6_0, grammarAccess.getURIAccess().getIdIdentTerminalRuleCall_3_1_1_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getURIRule());
+ }
+ addWithLastConsumed(
+ $current,
+ "id",
+ lv_id_6_0,
+ "ident");
+ }
+
+)
+)))*( otherlv_7='.'
+ {
+ newLeafNode(otherlv_7, grammarAccess.getURIAccess().getFullStopKeyword_4_0());
+ }
+(
+(
+ lv_id_8_0=RULE_IDENT
+ {
+ newLeafNode(lv_id_8_0, grammarAccess.getURIAccess().getIdIdentTerminalRuleCall_4_1_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getURIRule());
+ }
+ addWithLastConsumed(
+ $current,
+ "id",
+ lv_id_8_0,
+ "ident");
+ }
+
+)
+))? otherlv_9=')'
+ {
+ newLeafNode(otherlv_9, grammarAccess.getURIAccess().getRightParenthesisKeyword_5());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleunary_numbers
+entryRuleunary_numbers returns [String current=null]
+ :
+ { newCompositeNode(grammarAccess.getUnary_numbersRule()); }
+ iv_ruleunary_numbers=ruleunary_numbers
+ { $current=$iv_ruleunary_numbers.current.getText(); }
+ EOF
+;
+
+// Rule unary_numbers
+ruleunary_numbers returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+( this_INT_0=RULE_INT {
+ $current.merge(this_INT_0);
+ }
+
+ {
+ newLeafNode(this_INT_0, grammarAccess.getUnary_numbersAccess().getINTTerminalRuleCall_0());
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getUnary_numbersAccess().getPERCENTAGEParserRuleCall_1());
+ }
+ this_PERCENTAGE_1=rulePERCENTAGE {
+ $current.merge(this_PERCENTAGE_1);
+ }
+
+ {
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getUnary_numbersAccess().getLENGTHParserRuleCall_2());
+ }
+ this_LENGTH_2=ruleLENGTH {
+ $current.merge(this_LENGTH_2);
+ }
+
+ {
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getUnary_numbersAccess().getEMSParserRuleCall_3());
+ }
+ this_EMS_3=ruleEMS {
+ $current.merge(this_EMS_3);
+ }
+
+ {
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getUnary_numbersAccess().getEXSParserRuleCall_4());
+ }
+ this_EXS_4=ruleEXS {
+ $current.merge(this_EXS_4);
+ }
+
+ {
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getUnary_numbersAccess().getANGLEParserRuleCall_5());
+ }
+ this_ANGLE_5=ruleANGLE {
+ $current.merge(this_ANGLE_5);
+ }
+
+ {
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getUnary_numbersAccess().getTIMEParserRuleCall_6());
+ }
+ this_TIME_6=ruleTIME {
+ $current.merge(this_TIME_6);
+ }
+
+ {
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getUnary_numbersAccess().getFREQParserRuleCall_7());
+ }
+ this_FREQ_7=ruleFREQ {
+ $current.merge(this_FREQ_7);
+ }
+
+ {
+ afterParserOrEnumRuleCall();
+ }
+)
+ ;
+
+
+
+
+
+// Entry rule entryRulePERCENTAGE
+entryRulePERCENTAGE returns [String current=null]
+ :
+ { newCompositeNode(grammarAccess.getPERCENTAGERule()); }
+ iv_rulePERCENTAGE=rulePERCENTAGE
+ { $current=$iv_rulePERCENTAGE.current.getText(); }
+ EOF
+;
+
+// Rule PERCENTAGE
+rulePERCENTAGE returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+( this_INT_0=RULE_INT {
+ $current.merge(this_INT_0);
+ }
+
+ {
+ newLeafNode(this_INT_0, grammarAccess.getPERCENTAGEAccess().getINTTerminalRuleCall_0());
+ }
+
+ kw='%'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getPERCENTAGEAccess().getPercentSignKeyword_1());
+ }
+)
+ ;
+
+
+
+
+
+// Entry rule entryRuleEMS
+entryRuleEMS returns [String current=null]
+ :
+ { newCompositeNode(grammarAccess.getEMSRule()); }
+ iv_ruleEMS=ruleEMS
+ { $current=$iv_ruleEMS.current.getText(); }
+ EOF
+;
+
+// Rule EMS
+ruleEMS returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+( this_INT_0=RULE_INT {
+ $current.merge(this_INT_0);
+ }
+
+ {
+ newLeafNode(this_INT_0, grammarAccess.getEMSAccess().getINTTerminalRuleCall_0());
+ }
+
+ kw='em'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getEMSAccess().getEmKeyword_1());
+ }
+)
+ ;
+
+
+
+
+
+// Entry rule entryRuleEXS
+entryRuleEXS returns [String current=null]
+ :
+ { newCompositeNode(grammarAccess.getEXSRule()); }
+ iv_ruleEXS=ruleEXS
+ { $current=$iv_ruleEXS.current.getText(); }
+ EOF
+;
+
+// Rule EXS
+ruleEXS returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+( this_INT_0=RULE_INT {
+ $current.merge(this_INT_0);
+ }
+
+ {
+ newLeafNode(this_INT_0, grammarAccess.getEXSAccess().getINTTerminalRuleCall_0());
+ }
+
+ kw='ex'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getEXSAccess().getExKeyword_1());
+ }
+)
+ ;
+
+
+
+
+
+// Entry rule entryRuleLENGTH
+entryRuleLENGTH returns [String current=null]
+ @init {
+ HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
+ }
+ :
+ { newCompositeNode(grammarAccess.getLENGTHRule()); }
+ iv_ruleLENGTH=ruleLENGTH
+ { $current=$iv_ruleLENGTH.current.getText(); }
+ EOF
+;
+finally {
+ myHiddenTokenState.restore();
+}
+
+// Rule LENGTH
+ruleLENGTH returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+ @init { enterRule();
+ HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
+ }
+ @after { leaveRule(); }:
+( this_INT_0=RULE_INT {
+ $current.merge(this_INT_0);
+ }
+
+ {
+ newLeafNode(this_INT_0, grammarAccess.getLENGTHAccess().getINTTerminalRuleCall_0());
+ }
+(
+ kw='px'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getLENGTHAccess().getPxKeyword_1_0());
+ }
+
+ |
+ kw='cm'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getLENGTHAccess().getCmKeyword_1_1());
+ }
+
+ |
+ kw='mm'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getLENGTHAccess().getMmKeyword_1_2());
+ }
+
+ |
+ kw='in'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getLENGTHAccess().getInKeyword_1_3());
+ }
+
+ |
+ kw='pt'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getLENGTHAccess().getPtKeyword_1_4());
+ }
+
+ |
+ kw='pc'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getLENGTHAccess().getPcKeyword_1_5());
+ }
+))
+ ;
+finally {
+ myHiddenTokenState.restore();
+}
+
+
+
+
+
+// Entry rule entryRuleANGLE
+entryRuleANGLE returns [String current=null]
+ :
+ { newCompositeNode(grammarAccess.getANGLERule()); }
+ iv_ruleANGLE=ruleANGLE
+ { $current=$iv_ruleANGLE.current.getText(); }
+ EOF
+;
+
+// Rule ANGLE
+ruleANGLE returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+( this_INT_0=RULE_INT {
+ $current.merge(this_INT_0);
+ }
+
+ {
+ newLeafNode(this_INT_0, grammarAccess.getANGLEAccess().getINTTerminalRuleCall_0());
+ }
+(
+ kw='deg'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getANGLEAccess().getDegKeyword_1_0());
+ }
+
+ |
+ kw='rad'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getANGLEAccess().getRadKeyword_1_1());
+ }
+
+ |
+ kw='grad'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getANGLEAccess().getGradKeyword_1_2());
+ }
+))
+ ;
+
+
+
+
+
+// Entry rule entryRuleTIME
+entryRuleTIME returns [String current=null]
+ :
+ { newCompositeNode(grammarAccess.getTIMERule()); }
+ iv_ruleTIME=ruleTIME
+ { $current=$iv_ruleTIME.current.getText(); }
+ EOF
+;
+
+// Rule TIME
+ruleTIME returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+( this_INT_0=RULE_INT {
+ $current.merge(this_INT_0);
+ }
+
+ {
+ newLeafNode(this_INT_0, grammarAccess.getTIMEAccess().getINTTerminalRuleCall_0());
+ }
+(
+ kw='ms'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getTIMEAccess().getMsKeyword_1_0());
+ }
+
+ |
+ kw='s'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getTIMEAccess().getSKeyword_1_1());
+ }
+))
+ ;
+
+
+
+
+
+// Entry rule entryRuleFREQ
+entryRuleFREQ returns [String current=null]
+ :
+ { newCompositeNode(grammarAccess.getFREQRule()); }
+ iv_ruleFREQ=ruleFREQ
+ { $current=$iv_ruleFREQ.current.getText(); }
+ EOF
+;
+
+// Rule FREQ
+ruleFREQ returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+( this_INT_0=RULE_INT {
+ $current.merge(this_INT_0);
+ }
+
+ {
+ newLeafNode(this_INT_0, grammarAccess.getFREQAccess().getINTTerminalRuleCall_0());
+ }
+(
+ kw='hz'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getFREQAccess().getHzKeyword_1_0());
+ }
+
+ |
+ kw='khz'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getFREQAccess().getKhzKeyword_1_1());
+ }
+))
+ ;
+
+
+
+
+
+// Entry rule entryRulecss_hash_class
+entryRulecss_hash_class returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getCss_hash_classRule()); }
+ iv_rulecss_hash_class=rulecss_hash_class
+ { $current=$iv_rulecss_hash_class.current; }
+ EOF
+;
+
+// Rule css_hash_class
+rulecss_hash_class returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+(
+ lv_type_0_1= '#'
+ {
+ newLeafNode(lv_type_0_1, grammarAccess.getCss_hash_classAccess().getTypeNumberSignKeyword_0_0_0());
+ }
+
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getCss_hash_classRule());
+ }
+ setWithLastConsumed($current, "type", lv_type_0_1, null);
+ }
+
+ | lv_type_0_2= '.'
+ {
+ newLeafNode(lv_type_0_2, grammarAccess.getCss_hash_classAccess().getTypeFullStopKeyword_0_0_1());
+ }
+
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getCss_hash_classRule());
+ }
+ setWithLastConsumed($current, "type", lv_type_0_2, null);
+ }
+
+)
+
+)
+)(
+(
+ lv_name_1_0=RULE_IDENT
+ {
+ newLeafNode(lv_name_1_0, grammarAccess.getCss_hash_classAccess().getNameIdentTerminalRuleCall_1_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getCss_hash_classRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "name",
+ lv_name_1_0,
+ "ident");
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRulecombinator
+entryRulecombinator returns [String current=null]
+ @init {
+ HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens("RULE_WS");
+ }
+ :
+ { newCompositeNode(grammarAccess.getCombinatorRule()); }
+ iv_rulecombinator=rulecombinator
+ { $current=$iv_rulecombinator.current.getText(); }
+ EOF
+;
+finally {
+ myHiddenTokenState.restore();
+}
+
+// Rule combinator
+rulecombinator returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+ @init { enterRule();
+ HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens("RULE_WS");
+ }
+ @after { leaveRule(); }:
+(
+ kw='+'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getCombinatorAccess().getPlusSignKeyword_0());
+ }
+
+ |
+ kw='>'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getCombinatorAccess().getGreaterThanSignKeyword_1());
+ }
+)
+ ;
+finally {
+ myHiddenTokenState.restore();
+}
+
+
+
+
+
+// Entry rule entryRuleunary_operator
+entryRuleunary_operator returns [String current=null]
+ :
+ { newCompositeNode(grammarAccess.getUnary_operatorRule()); }
+ iv_ruleunary_operator=ruleunary_operator
+ { $current=$iv_ruleunary_operator.current.getText(); }
+ EOF
+;
+
+// Rule unary_operator
+ruleunary_operator returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ kw='-'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getUnary_operatorAccess().getHyphenMinusKeyword_0());
+ }
+
+ |
+ kw='+'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getUnary_operatorAccess().getPlusSignKeyword_1());
+ }
+)
+ ;
+
+
+
+
+
+RULE_HEXDIGITS : '#' ('0'..'9'|'a'..'f'|'A'..'F')+;
+
+RULE_IDENT : ('_'|'-'|'a'..'z'|'A'..'Z') ('_'|'-'|'a'..'z'|'A'..'Z'|'0'..'9')*;
+
+RULE_ID : '^'? ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*;
+
+RULE_INT : ('0'..'9')+;
+
+RULE_STRING : ('"' ('\\' ('b'|'t'|'n'|'f'|'r'|'u'|'"'|'\''|'\\')|~(('\\'|'"')))* '"'|'\'' ('\\' ('b'|'t'|'n'|'f'|'r'|'u'|'"'|'\''|'\\')|~(('\\'|'\'')))* '\'');
+
+RULE_ML_COMMENT : '/*' ( options {greedy=false;} : . )*'*/';
+
+RULE_SL_COMMENT : '//' ~(('\n'|'\r'))* ('\r'? '\n')?;
+
+RULE_WS : (' '|'\t'|'\r'|'\n')+;
+
+RULE_ANY_OTHER : .;
+
+
diff --git a/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.tokens b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.tokens
new file mode 100644
index 00000000..d3e1bc36
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.tokens
@@ -0,0 +1,77 @@
+RULE_ID=9
+T__29=29
+T__28=28
+T__27=27
+T__26=26
+T__25=25
+T__24=24
+T__23=23
+T__22=22
+RULE_ANY_OTHER=12
+T__21=21
+T__20=20
+T__19=19
+T__16=16
+T__15=15
+T__18=18
+T__17=17
+T__14=14
+T__13=13
+RULE_INT=8
+T__42=42
+T__43=43
+T__40=40
+T__41=41
+T__46=46
+T__44=44
+T__45=45
+RULE_SL_COMMENT=11
+RULE_ML_COMMENT=10
+T__30=30
+T__31=31
+T__32=32
+RULE_STRING=4
+T__33=33
+T__34=34
+T__35=35
+T__36=36
+T__37=37
+T__38=38
+RULE_IDENT=6
+T__39=39
+RULE_HEXDIGITS=7
+RULE_WS=5
+'#'=43
+'deg'=36
+'ms'=39
+'/'=21
+'hz'=41
+'rad'=37
+'>'=45
+'\\'=25
+'pc'=35
+';'=15
+'@import'=17
+'cm'=31
+'+'=44
+')'=23
+'.'=26
+'%'=27
+'url'=24
+'}'=16
+'ex'=29
+'grad'=38
+'{'=14
+'pt'=34
+'mm'=32
+'s'=40
+'em'=28
+'khz'=42
+'('=22
+':'=18
+'-'=46
+'*'=19
+','=13
+'!important'=20
+'in'=33
+'px'=30
diff --git a/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSSLexer.java b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSSLexer.java
new file mode 100644
index 00000000..f1103189
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSSLexer.java
@@ -0,0 +1,2018 @@
+package org.eclipse.e4.parser.antlr.internal;
+
+// Hack: Use our own Lexer superclass by means of import.
+// Currently there is no other way to specify the superclass for the lexer.
+import org.eclipse.xtext.parser.antlr.Lexer;
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+
+@SuppressWarnings("all")
+public class InternalCSSLexer extends Lexer {
+ public static final int RULE_ID=9;
+ public static final int T__29=29;
+ public static final int T__28=28;
+ public static final int T__27=27;
+ public static final int T__26=26;
+ public static final int T__25=25;
+ public static final int T__24=24;
+ public static final int T__23=23;
+ public static final int T__22=22;
+ public static final int T__21=21;
+ public static final int RULE_ANY_OTHER=12;
+ public static final int T__20=20;
+ public static final int EOF=-1;
+ public static final int T__19=19;
+ public static final int T__16=16;
+ public static final int T__15=15;
+ public static final int T__18=18;
+ public static final int T__17=17;
+ public static final int T__14=14;
+ public static final int T__13=13;
+ public static final int RULE_INT=8;
+ public static final int T__42=42;
+ public static final int T__43=43;
+ public static final int T__40=40;
+ public static final int T__41=41;
+ public static final int T__46=46;
+ public static final int T__44=44;
+ public static final int T__45=45;
+ public static final int RULE_SL_COMMENT=11;
+ public static final int RULE_ML_COMMENT=10;
+ public static final int T__30=30;
+ public static final int T__31=31;
+ public static final int T__32=32;
+ public static final int RULE_STRING=4;
+ public static final int T__33=33;
+ public static final int T__34=34;
+ public static final int T__35=35;
+ public static final int T__36=36;
+ public static final int T__37=37;
+ public static final int T__38=38;
+ public static final int RULE_IDENT=6;
+ public static final int T__39=39;
+ public static final int RULE_HEXDIGITS=7;
+ public static final int RULE_WS=5;
+
+ // delegates
+ // delegators
+
+ public InternalCSSLexer() {;}
+ public InternalCSSLexer(CharStream input) {
+ this(input, new RecognizerSharedState());
+ }
+ public InternalCSSLexer(CharStream input, RecognizerSharedState state) {
+ super(input,state);
+
+ }
+ public String getGrammarFileName() { return "../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g"; }
+
+ // $ANTLR start "T__13"
+ public final void mT__13() throws RecognitionException {
+ try {
+ int _type = T__13;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:11:7: ( ',' )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:11:9: ','
+ {
+ match(',');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__13"
+
+ // $ANTLR start "T__14"
+ public final void mT__14() throws RecognitionException {
+ try {
+ int _type = T__14;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:12:7: ( '{' )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:12:9: '{'
+ {
+ match('{');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__14"
+
+ // $ANTLR start "T__15"
+ public final void mT__15() throws RecognitionException {
+ try {
+ int _type = T__15;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:13:7: ( ';' )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:13:9: ';'
+ {
+ match(';');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__15"
+
+ // $ANTLR start "T__16"
+ public final void mT__16() throws RecognitionException {
+ try {
+ int _type = T__16;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:14:7: ( '}' )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:14:9: '}'
+ {
+ match('}');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__16"
+
+ // $ANTLR start "T__17"
+ public final void mT__17() throws RecognitionException {
+ try {
+ int _type = T__17;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:15:7: ( '@import' )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:15:9: '@import'
+ {
+ match("@import");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__17"
+
+ // $ANTLR start "T__18"
+ public final void mT__18() throws RecognitionException {
+ try {
+ int _type = T__18;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:16:7: ( ':' )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:16:9: ':'
+ {
+ match(':');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__18"
+
+ // $ANTLR start "T__19"
+ public final void mT__19() throws RecognitionException {
+ try {
+ int _type = T__19;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:17:7: ( '*' )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:17:9: '*'
+ {
+ match('*');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__19"
+
+ // $ANTLR start "T__20"
+ public final void mT__20() throws RecognitionException {
+ try {
+ int _type = T__20;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:18:7: ( '!important' )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:18:9: '!important'
+ {
+ match("!important");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__20"
+
+ // $ANTLR start "T__21"
+ public final void mT__21() throws RecognitionException {
+ try {
+ int _type = T__21;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:19:7: ( '/' )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:19:9: '/'
+ {
+ match('/');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__21"
+
+ // $ANTLR start "T__22"
+ public final void mT__22() throws RecognitionException {
+ try {
+ int _type = T__22;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:20:7: ( '(' )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:20:9: '('
+ {
+ match('(');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__22"
+
+ // $ANTLR start "T__23"
+ public final void mT__23() throws RecognitionException {
+ try {
+ int _type = T__23;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:21:7: ( ')' )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:21:9: ')'
+ {
+ match(')');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__23"
+
+ // $ANTLR start "T__24"
+ public final void mT__24() throws RecognitionException {
+ try {
+ int _type = T__24;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:22:7: ( 'url' )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:22:9: 'url'
+ {
+ match("url");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__24"
+
+ // $ANTLR start "T__25"
+ public final void mT__25() throws RecognitionException {
+ try {
+ int _type = T__25;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:23:7: ( '\\\\' )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:23:9: '\\\\'
+ {
+ match('\\');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__25"
+
+ // $ANTLR start "T__26"
+ public final void mT__26() throws RecognitionException {
+ try {
+ int _type = T__26;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:24:7: ( '.' )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:24:9: '.'
+ {
+ match('.');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__26"
+
+ // $ANTLR start "T__27"
+ public final void mT__27() throws RecognitionException {
+ try {
+ int _type = T__27;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:25:7: ( '%' )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:25:9: '%'
+ {
+ match('%');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__27"
+
+ // $ANTLR start "T__28"
+ public final void mT__28() throws RecognitionException {
+ try {
+ int _type = T__28;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:26:7: ( 'em' )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:26:9: 'em'
+ {
+ match("em");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__28"
+
+ // $ANTLR start "T__29"
+ public final void mT__29() throws RecognitionException {
+ try {
+ int _type = T__29;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:27:7: ( 'ex' )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:27:9: 'ex'
+ {
+ match("ex");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__29"
+
+ // $ANTLR start "T__30"
+ public final void mT__30() throws RecognitionException {
+ try {
+ int _type = T__30;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:28:7: ( 'px' )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:28:9: 'px'
+ {
+ match("px");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__30"
+
+ // $ANTLR start "T__31"
+ public final void mT__31() throws RecognitionException {
+ try {
+ int _type = T__31;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:29:7: ( 'cm' )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:29:9: 'cm'
+ {
+ match("cm");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__31"
+
+ // $ANTLR start "T__32"
+ public final void mT__32() throws RecognitionException {
+ try {
+ int _type = T__32;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:30:7: ( 'mm' )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:30:9: 'mm'
+ {
+ match("mm");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__32"
+
+ // $ANTLR start "T__33"
+ public final void mT__33() throws RecognitionException {
+ try {
+ int _type = T__33;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:31:7: ( 'in' )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:31:9: 'in'
+ {
+ match("in");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__33"
+
+ // $ANTLR start "T__34"
+ public final void mT__34() throws RecognitionException {
+ try {
+ int _type = T__34;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:32:7: ( 'pt' )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:32:9: 'pt'
+ {
+ match("pt");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__34"
+
+ // $ANTLR start "T__35"
+ public final void mT__35() throws RecognitionException {
+ try {
+ int _type = T__35;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:33:7: ( 'pc' )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:33:9: 'pc'
+ {
+ match("pc");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__35"
+
+ // $ANTLR start "T__36"
+ public final void mT__36() throws RecognitionException {
+ try {
+ int _type = T__36;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:34:7: ( 'deg' )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:34:9: 'deg'
+ {
+ match("deg");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__36"
+
+ // $ANTLR start "T__37"
+ public final void mT__37() throws RecognitionException {
+ try {
+ int _type = T__37;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:35:7: ( 'rad' )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:35:9: 'rad'
+ {
+ match("rad");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__37"
+
+ // $ANTLR start "T__38"
+ public final void mT__38() throws RecognitionException {
+ try {
+ int _type = T__38;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:36:7: ( 'grad' )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:36:9: 'grad'
+ {
+ match("grad");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__38"
+
+ // $ANTLR start "T__39"
+ public final void mT__39() throws RecognitionException {
+ try {
+ int _type = T__39;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:37:7: ( 'ms' )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:37:9: 'ms'
+ {
+ match("ms");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__39"
+
+ // $ANTLR start "T__40"
+ public final void mT__40() throws RecognitionException {
+ try {
+ int _type = T__40;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:38:7: ( 's' )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:38:9: 's'
+ {
+ match('s');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__40"
+
+ // $ANTLR start "T__41"
+ public final void mT__41() throws RecognitionException {
+ try {
+ int _type = T__41;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:39:7: ( 'hz' )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:39:9: 'hz'
+ {
+ match("hz");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__41"
+
+ // $ANTLR start "T__42"
+ public final void mT__42() throws RecognitionException {
+ try {
+ int _type = T__42;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:40:7: ( 'khz' )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:40:9: 'khz'
+ {
+ match("khz");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__42"
+
+ // $ANTLR start "T__43"
+ public final void mT__43() throws RecognitionException {
+ try {
+ int _type = T__43;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:41:7: ( '#' )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:41:9: '#'
+ {
+ match('#');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__43"
+
+ // $ANTLR start "T__44"
+ public final void mT__44() throws RecognitionException {
+ try {
+ int _type = T__44;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:42:7: ( '+' )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:42:9: '+'
+ {
+ match('+');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__44"
+
+ // $ANTLR start "T__45"
+ public final void mT__45() throws RecognitionException {
+ try {
+ int _type = T__45;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:43:7: ( '>' )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:43:9: '>'
+ {
+ match('>');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__45"
+
+ // $ANTLR start "T__46"
+ public final void mT__46() throws RecognitionException {
+ try {
+ int _type = T__46;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:44:7: ( '-' )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:44:9: '-'
+ {
+ match('-');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__46"
+
+ // $ANTLR start "RULE_HEXDIGITS"
+ public final void mRULE_HEXDIGITS() throws RecognitionException {
+ try {
+ int _type = RULE_HEXDIGITS;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1719:16: ( '#' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )+ )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1719:18: '#' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )+
+ {
+ match('#');
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1719:22: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )+
+ int cnt1=0;
+ loop1:
+ do {
+ int alt1=2;
+ int LA1_0 = input.LA(1);
+
+ if ( ((LA1_0>='0' && LA1_0<='9')||(LA1_0>='A' && LA1_0<='F')||(LA1_0>='a' && LA1_0<='f')) ) {
+ alt1=1;
+ }
+
+
+ switch (alt1) {
+ case 1 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:
+ {
+ if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='F')||(input.LA(1)>='a' && input.LA(1)<='f') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ if ( cnt1 >= 1 ) break loop1;
+ EarlyExitException eee =
+ new EarlyExitException(1, input);
+ throw eee;
+ }
+ cnt1++;
+ } while (true);
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_HEXDIGITS"
+
+ // $ANTLR start "RULE_IDENT"
+ public final void mRULE_IDENT() throws RecognitionException {
+ try {
+ int _type = RULE_IDENT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1721:12: ( ( '_' | '-' | 'a' .. 'z' | 'A' .. 'Z' ) ( '_' | '-' | 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' )* )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1721:14: ( '_' | '-' | 'a' .. 'z' | 'A' .. 'Z' ) ( '_' | '-' | 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' )*
+ {
+ if ( input.LA(1)=='-'||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1721:42: ( '_' | '-' | 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' )*
+ loop2:
+ do {
+ int alt2=2;
+ int LA2_0 = input.LA(1);
+
+ if ( (LA2_0=='-'||(LA2_0>='0' && LA2_0<='9')||(LA2_0>='A' && LA2_0<='Z')||LA2_0=='_'||(LA2_0>='a' && LA2_0<='z')) ) {
+ alt2=1;
+ }
+
+
+ switch (alt2) {
+ case 1 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:
+ {
+ if ( input.LA(1)=='-'||(input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ break loop2;
+ }
+ } while (true);
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_IDENT"
+
+ // $ANTLR start "RULE_ID"
+ public final void mRULE_ID() throws RecognitionException {
+ try {
+ int _type = RULE_ID;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1723:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1723:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1723:11: ( '^' )?
+ int alt3=2;
+ int LA3_0 = input.LA(1);
+
+ if ( (LA3_0=='^') ) {
+ alt3=1;
+ }
+ switch (alt3) {
+ case 1 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1723:11: '^'
+ {
+ match('^');
+
+ }
+ break;
+
+ }
+
+ if ( (input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1723:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+ loop4:
+ do {
+ int alt4=2;
+ int LA4_0 = input.LA(1);
+
+ if ( ((LA4_0>='0' && LA4_0<='9')||(LA4_0>='A' && LA4_0<='Z')||LA4_0=='_'||(LA4_0>='a' && LA4_0<='z')) ) {
+ alt4=1;
+ }
+
+
+ switch (alt4) {
+ case 1 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:
+ {
+ if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ break loop4;
+ }
+ } while (true);
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_ID"
+
+ // $ANTLR start "RULE_INT"
+ public final void mRULE_INT() throws RecognitionException {
+ try {
+ int _type = RULE_INT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1725:10: ( ( '0' .. '9' )+ )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1725:12: ( '0' .. '9' )+
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1725:12: ( '0' .. '9' )+
+ int cnt5=0;
+ loop5:
+ do {
+ int alt5=2;
+ int LA5_0 = input.LA(1);
+
+ if ( ((LA5_0>='0' && LA5_0<='9')) ) {
+ alt5=1;
+ }
+
+
+ switch (alt5) {
+ case 1 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1725:13: '0' .. '9'
+ {
+ matchRange('0','9');
+
+ }
+ break;
+
+ default :
+ if ( cnt5 >= 1 ) break loop5;
+ EarlyExitException eee =
+ new EarlyExitException(5, input);
+ throw eee;
+ }
+ cnt5++;
+ } while (true);
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_INT"
+
+ // $ANTLR start "RULE_STRING"
+ public final void mRULE_STRING() throws RecognitionException {
+ try {
+ int _type = RULE_STRING;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1727:13: ( ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1727:15: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1727:15: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+ int alt8=2;
+ int LA8_0 = input.LA(1);
+
+ if ( (LA8_0=='\"') ) {
+ alt8=1;
+ }
+ else if ( (LA8_0=='\'') ) {
+ alt8=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 8, 0, input);
+
+ throw nvae;
+ }
+ switch (alt8) {
+ case 1 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1727:16: '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
+ {
+ match('\"');
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1727:20: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )*
+ loop6:
+ do {
+ int alt6=3;
+ int LA6_0 = input.LA(1);
+
+ if ( (LA6_0=='\\') ) {
+ alt6=1;
+ }
+ else if ( ((LA6_0>='\u0000' && LA6_0<='!')||(LA6_0>='#' && LA6_0<='[')||(LA6_0>=']' && LA6_0<='\uFFFF')) ) {
+ alt6=2;
+ }
+
+
+ switch (alt6) {
+ case 1 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1727:21: '\\\\' ( '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') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1727:66: ~ ( ( '\\\\' | '\"' ) )
+ {
+ if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ break loop6;
+ }
+ } while (true);
+
+ match('\"');
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1727:86: '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
+ {
+ match('\'');
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1727:91: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )*
+ loop7:
+ do {
+ int alt7=3;
+ int LA7_0 = input.LA(1);
+
+ if ( (LA7_0=='\\') ) {
+ alt7=1;
+ }
+ else if ( ((LA7_0>='\u0000' && LA7_0<='&')||(LA7_0>='(' && LA7_0<='[')||(LA7_0>=']' && LA7_0<='\uFFFF')) ) {
+ alt7=2;
+ }
+
+
+ switch (alt7) {
+ case 1 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1727:92: '\\\\' ( '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') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1727:137: ~ ( ( '\\\\' | '\\'' ) )
+ {
+ if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ break loop7;
+ }
+ } while (true);
+
+ match('\'');
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_STRING"
+
+ // $ANTLR start "RULE_ML_COMMENT"
+ public final void mRULE_ML_COMMENT() throws RecognitionException {
+ try {
+ int _type = RULE_ML_COMMENT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1729:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1729:19: '/*' ( options {greedy=false; } : . )* '*/'
+ {
+ match("/*");
+
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1729:24: ( options {greedy=false; } : . )*
+ loop9:
+ do {
+ int alt9=2;
+ int LA9_0 = input.LA(1);
+
+ if ( (LA9_0=='*') ) {
+ int LA9_1 = input.LA(2);
+
+ if ( (LA9_1=='/') ) {
+ alt9=2;
+ }
+ else if ( ((LA9_1>='\u0000' && LA9_1<='.')||(LA9_1>='0' && LA9_1<='\uFFFF')) ) {
+ alt9=1;
+ }
+
+
+ }
+ else if ( ((LA9_0>='\u0000' && LA9_0<=')')||(LA9_0>='+' && LA9_0<='\uFFFF')) ) {
+ alt9=1;
+ }
+
+
+ switch (alt9) {
+ case 1 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1729:52: .
+ {
+ matchAny();
+
+ }
+ break;
+
+ default :
+ break loop9;
+ }
+ } while (true);
+
+ match("*/");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_ML_COMMENT"
+
+ // $ANTLR start "RULE_SL_COMMENT"
+ public final void mRULE_SL_COMMENT() throws RecognitionException {
+ try {
+ int _type = RULE_SL_COMMENT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1731:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1731:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+ {
+ match("//");
+
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1731:24: (~ ( ( '\\n' | '\\r' ) ) )*
+ loop10:
+ do {
+ int alt10=2;
+ int LA10_0 = input.LA(1);
+
+ if ( ((LA10_0>='\u0000' && LA10_0<='\t')||(LA10_0>='\u000B' && LA10_0<='\f')||(LA10_0>='\u000E' && LA10_0<='\uFFFF')) ) {
+ alt10=1;
+ }
+
+
+ switch (alt10) {
+ case 1 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1731: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();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ break loop10;
+ }
+ } while (true);
+
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1731:40: ( ( '\\r' )? '\\n' )?
+ int alt12=2;
+ int LA12_0 = input.LA(1);
+
+ if ( (LA12_0=='\n'||LA12_0=='\r') ) {
+ alt12=1;
+ }
+ switch (alt12) {
+ case 1 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1731:41: ( '\\r' )? '\\n'
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1731:41: ( '\\r' )?
+ int alt11=2;
+ int LA11_0 = input.LA(1);
+
+ if ( (LA11_0=='\r') ) {
+ alt11=1;
+ }
+ switch (alt11) {
+ case 1 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1731:41: '\\r'
+ {
+ match('\r');
+
+ }
+ break;
+
+ }
+
+ match('\n');
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_SL_COMMENT"
+
+ // $ANTLR start "RULE_WS"
+ public final void mRULE_WS() throws RecognitionException {
+ try {
+ int _type = RULE_WS;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1733:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1733:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1733:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+ int cnt13=0;
+ loop13:
+ do {
+ int alt13=2;
+ int LA13_0 = input.LA(1);
+
+ if ( ((LA13_0>='\t' && LA13_0<='\n')||LA13_0=='\r'||LA13_0==' ') ) {
+ alt13=1;
+ }
+
+
+ switch (alt13) {
+ case 1 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:
+ {
+ if ( (input.LA(1)>='\t' && input.LA(1)<='\n')||input.LA(1)=='\r'||input.LA(1)==' ' ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ if ( cnt13 >= 1 ) break loop13;
+ EarlyExitException eee =
+ new EarlyExitException(13, input);
+ throw eee;
+ }
+ cnt13++;
+ } while (true);
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_WS"
+
+ // $ANTLR start "RULE_ANY_OTHER"
+ public final void mRULE_ANY_OTHER() throws RecognitionException {
+ try {
+ int _type = RULE_ANY_OTHER;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1735:16: ( . )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1735:18: .
+ {
+ matchAny();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_ANY_OTHER"
+
+ public void mTokens() throws RecognitionException {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1:8: ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | RULE_HEXDIGITS | RULE_IDENT | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
+ int alt14=43;
+ alt14 = dfa14.predict(input);
+ switch (alt14) {
+ case 1 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1:10: T__13
+ {
+ mT__13();
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1:16: T__14
+ {
+ mT__14();
+
+ }
+ break;
+ case 3 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1:22: T__15
+ {
+ mT__15();
+
+ }
+ break;
+ case 4 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1:28: T__16
+ {
+ mT__16();
+
+ }
+ break;
+ case 5 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1:34: T__17
+ {
+ mT__17();
+
+ }
+ break;
+ case 6 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1:40: T__18
+ {
+ mT__18();
+
+ }
+ break;
+ case 7 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1:46: T__19
+ {
+ mT__19();
+
+ }
+ break;
+ case 8 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1:52: T__20
+ {
+ mT__20();
+
+ }
+ break;
+ case 9 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1:58: T__21
+ {
+ mT__21();
+
+ }
+ break;
+ case 10 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1:64: T__22
+ {
+ mT__22();
+
+ }
+ break;
+ case 11 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1:70: T__23
+ {
+ mT__23();
+
+ }
+ break;
+ case 12 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1:76: T__24
+ {
+ mT__24();
+
+ }
+ break;
+ case 13 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1:82: T__25
+ {
+ mT__25();
+
+ }
+ break;
+ case 14 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1:88: T__26
+ {
+ mT__26();
+
+ }
+ break;
+ case 15 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1:94: T__27
+ {
+ mT__27();
+
+ }
+ break;
+ case 16 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1:100: T__28
+ {
+ mT__28();
+
+ }
+ break;
+ case 17 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1:106: T__29
+ {
+ mT__29();
+
+ }
+ break;
+ case 18 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1:112: T__30
+ {
+ mT__30();
+
+ }
+ break;
+ case 19 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1:118: T__31
+ {
+ mT__31();
+
+ }
+ break;
+ case 20 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1:124: T__32
+ {
+ mT__32();
+
+ }
+ break;
+ case 21 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1:130: T__33
+ {
+ mT__33();
+
+ }
+ break;
+ case 22 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1:136: T__34
+ {
+ mT__34();
+
+ }
+ break;
+ case 23 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1:142: T__35
+ {
+ mT__35();
+
+ }
+ break;
+ case 24 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1:148: T__36
+ {
+ mT__36();
+
+ }
+ break;
+ case 25 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1:154: T__37
+ {
+ mT__37();
+
+ }
+ break;
+ case 26 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1:160: T__38
+ {
+ mT__38();
+
+ }
+ break;
+ case 27 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1:166: T__39
+ {
+ mT__39();
+
+ }
+ break;
+ case 28 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1:172: T__40
+ {
+ mT__40();
+
+ }
+ break;
+ case 29 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1:178: T__41
+ {
+ mT__41();
+
+ }
+ break;
+ case 30 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1:184: T__42
+ {
+ mT__42();
+
+ }
+ break;
+ case 31 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1:190: T__43
+ {
+ mT__43();
+
+ }
+ break;
+ case 32 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1:196: T__44
+ {
+ mT__44();
+
+ }
+ break;
+ case 33 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1:202: T__45
+ {
+ mT__45();
+
+ }
+ break;
+ case 34 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1:208: T__46
+ {
+ mT__46();
+
+ }
+ break;
+ case 35 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1:214: RULE_HEXDIGITS
+ {
+ mRULE_HEXDIGITS();
+
+ }
+ break;
+ case 36 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1:229: RULE_IDENT
+ {
+ mRULE_IDENT();
+
+ }
+ break;
+ case 37 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1:240: RULE_ID
+ {
+ mRULE_ID();
+
+ }
+ break;
+ case 38 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1:248: RULE_INT
+ {
+ mRULE_INT();
+
+ }
+ break;
+ case 39 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1:257: RULE_STRING
+ {
+ mRULE_STRING();
+
+ }
+ break;
+ case 40 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1:269: RULE_ML_COMMENT
+ {
+ mRULE_ML_COMMENT();
+
+ }
+ break;
+ case 41 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1:285: RULE_SL_COMMENT
+ {
+ mRULE_SL_COMMENT();
+
+ }
+ break;
+ case 42 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1:301: RULE_WS
+ {
+ mRULE_WS();
+
+ }
+ break;
+ case 43 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1:309: RULE_ANY_OTHER
+ {
+ mRULE_ANY_OTHER();
+
+ }
+ break;
+
+ }
+
+ }
+
+
+ protected DFA14 dfa14 = new DFA14(this);
+ static final String DFA14_eotS =
+ "\5\uffff\1\45\2\uffff\1\45\1\60\2\uffff\1\65\3\uffff\10\65\1\105"+
+ "\2\65\1\111\2\uffff\1\114\1\65\1\45\1\uffff\2\45\17\uffff\2\65\4"+
+ "\uffff\1\122\1\123\1\124\1\125\1\126\1\127\1\130\1\131\1\132\3\65"+
+ "\1\uffff\1\136\1\65\11\uffff\1\140\11\uffff\1\141\1\142\1\65\1\uffff"+
+ "\1\144\3\uffff\1\145\2\uffff";
+ static final String DFA14_eofS =
+ "\146\uffff";
+ static final String DFA14_minS =
+ "\1\0\4\uffff\1\151\2\uffff\1\151\1\52\2\uffff\1\60\3\uffff\10\60"+
+ "\1\55\3\60\2\uffff\1\55\1\60\1\101\1\uffff\2\0\17\uffff\2\60\4\uffff"+
+ "\11\55\3\60\1\uffff\1\55\1\60\11\uffff\1\55\11\uffff\2\55\1\60\1"+
+ "\uffff\1\55\3\uffff\1\55\2\uffff";
+ static final String DFA14_maxS =
+ "\1\uffff\4\uffff\1\151\2\uffff\1\151\1\57\2\uffff\1\172\3\uffff"+
+ "\13\172\1\146\2\uffff\3\172\1\uffff\2\uffff\17\uffff\2\172\4\uffff"+
+ "\14\172\1\uffff\2\172\11\uffff\1\172\11\uffff\3\172\1\uffff\1\172"+
+ "\3\uffff\1\172\2\uffff";
+ static final String DFA14_acceptS =
+ "\1\uffff\1\1\1\2\1\3\1\4\1\uffff\1\6\1\7\2\uffff\1\12\1\13\1\uffff"+
+ "\1\15\1\16\1\17\14\uffff\1\40\1\41\3\uffff\1\46\2\uffff\1\52\1\53"+
+ "\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\50\1\51\1\11\1\12\1\13\2\uffff"+
+ "\1\44\1\15\1\16\1\17\14\uffff\1\34\2\uffff\1\43\1\37\1\40\1\41\1"+
+ "\42\1\45\1\46\1\47\1\52\1\uffff\1\20\1\21\1\22\1\26\1\27\1\23\1"+
+ "\24\1\33\1\25\3\uffff\1\35\1\uffff\1\14\1\30\1\31\1\uffff\1\36\1"+
+ "\32";
+ static final String DFA14_specialS =
+ "\1\1\41\uffff\1\0\1\2\102\uffff}>";
+ static final String[] DFA14_transitionS = {
+ "\11\45\2\44\2\45\1\44\22\45\1\44\1\10\1\42\1\33\1\45\1\17\1"+
+ "\45\1\43\1\12\1\13\1\7\1\34\1\1\1\36\1\16\1\11\12\41\1\6\1\3"+
+ "\2\45\1\35\1\45\1\5\32\37\1\45\1\15\1\45\1\40\1\37\1\45\2\37"+
+ "\1\22\1\25\1\20\1\37\1\27\1\31\1\24\1\37\1\32\1\37\1\23\2\37"+
+ "\1\21\1\37\1\26\1\30\1\37\1\14\5\37\1\2\1\45\1\4\uff82\45",
+ "",
+ "",
+ "",
+ "",
+ "\1\52",
+ "",
+ "",
+ "\1\55",
+ "\1\56\4\uffff\1\57",
+ "",
+ "",
+ "\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\21\64\1\63\10\64",
+ "",
+ "",
+ "",
+ "\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\14\64\1\71\12\64"+
+ "\1\72\2\64",
+ "\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\2\64\1\75\20\64"+
+ "\1\74\3\64\1\73\2\64",
+ "\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\14\64\1\76\15\64",
+ "\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\14\64\1\77\5\64"+
+ "\1\100\7\64",
+ "\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\15\64\1\101\14\64",
+ "\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\4\64\1\102\25\64",
+ "\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\1\103\31\64",
+ "\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\21\64\1\104\10\64",
+ "\1\65\2\uffff\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\32"+
+ "\64",
+ "\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\31\64\1\106",
+ "\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\7\64\1\107\22\64",
+ "\12\110\7\uffff\6\110\32\uffff\6\110",
+ "",
+ "",
+ "\1\65\2\uffff\12\65\7\uffff\32\65\4\uffff\1\65\1\uffff\32"+
+ "\65",
+ "\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\32\64",
+ "\32\115\4\uffff\1\115\1\uffff\32\115",
+ "",
+ "\0\117",
+ "\0\117",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\13\64\1\121\16\64",
+ "\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\32\64",
+ "",
+ "",
+ "",
+ "",
+ "\1\65\2\uffff\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\32"+
+ "\64",
+ "\1\65\2\uffff\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\32"+
+ "\64",
+ "\1\65\2\uffff\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\32"+
+ "\64",
+ "\1\65\2\uffff\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\32"+
+ "\64",
+ "\1\65\2\uffff\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\32"+
+ "\64",
+ "\1\65\2\uffff\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\32"+
+ "\64",
+ "\1\65\2\uffff\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\32"+
+ "\64",
+ "\1\65\2\uffff\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\32"+
+ "\64",
+ "\1\65\2\uffff\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\32"+
+ "\64",
+ "\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\6\64\1\133\23\64",
+ "\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\3\64\1\134\26\64",
+ "\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\1\135\31\64",
+ "",
+ "\1\65\2\uffff\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\32"+
+ "\64",
+ "\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\31\64\1\137",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "\1\65\2\uffff\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\32"+
+ "\64",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "\1\65\2\uffff\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\32"+
+ "\64",
+ "\1\65\2\uffff\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\32"+
+ "\64",
+ "\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\3\64\1\143\26\64",
+ "",
+ "\1\65\2\uffff\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\32"+
+ "\64",
+ "",
+ "",
+ "",
+ "\1\65\2\uffff\12\64\7\uffff\32\64\4\uffff\1\64\1\uffff\32"+
+ "\64",
+ "",
+ ""
+ };
+
+ static final short[] DFA14_eot = DFA.unpackEncodedString(DFA14_eotS);
+ static final short[] DFA14_eof = DFA.unpackEncodedString(DFA14_eofS);
+ static final char[] DFA14_min = DFA.unpackEncodedStringToUnsignedChars(DFA14_minS);
+ static final char[] DFA14_max = DFA.unpackEncodedStringToUnsignedChars(DFA14_maxS);
+ static final short[] DFA14_accept = DFA.unpackEncodedString(DFA14_acceptS);
+ static final short[] DFA14_special = DFA.unpackEncodedString(DFA14_specialS);
+ static final short[][] DFA14_transition;
+
+ static {
+ int numStates = DFA14_transitionS.length;
+ DFA14_transition = new short[numStates][];
+ for (int i=0; i<numStates; i++) {
+ DFA14_transition[i] = DFA.unpackEncodedString(DFA14_transitionS[i]);
+ }
+ }
+
+ class DFA14 extends DFA {
+
+ public DFA14(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 14;
+ this.eot = DFA14_eot;
+ this.eof = DFA14_eof;
+ this.min = DFA14_min;
+ this.max = DFA14_max;
+ this.accept = DFA14_accept;
+ this.special = DFA14_special;
+ this.transition = DFA14_transition;
+ }
+ public String getDescription() {
+ return "1:1: Tokens : ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | RULE_HEXDIGITS | RULE_IDENT | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
+ }
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ IntStream input = _input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA14_34 = input.LA(1);
+
+ s = -1;
+ if ( ((LA14_34>='\u0000' && LA14_34<='\uFFFF')) ) {s = 79;}
+
+ else s = 37;
+
+ if ( s>=0 ) return s;
+ break;
+ case 1 :
+ int LA14_0 = input.LA(1);
+
+ s = -1;
+ if ( (LA14_0==',') ) {s = 1;}
+
+ else if ( (LA14_0=='{') ) {s = 2;}
+
+ else if ( (LA14_0==';') ) {s = 3;}
+
+ else if ( (LA14_0=='}') ) {s = 4;}
+
+ else if ( (LA14_0=='@') ) {s = 5;}
+
+ else if ( (LA14_0==':') ) {s = 6;}
+
+ else if ( (LA14_0=='*') ) {s = 7;}
+
+ else if ( (LA14_0=='!') ) {s = 8;}
+
+ else if ( (LA14_0=='/') ) {s = 9;}
+
+ else if ( (LA14_0=='(') ) {s = 10;}
+
+ else if ( (LA14_0==')') ) {s = 11;}
+
+ else if ( (LA14_0=='u') ) {s = 12;}
+
+ else if ( (LA14_0=='\\') ) {s = 13;}
+
+ else if ( (LA14_0=='.') ) {s = 14;}
+
+ else if ( (LA14_0=='%') ) {s = 15;}
+
+ else if ( (LA14_0=='e') ) {s = 16;}
+
+ else if ( (LA14_0=='p') ) {s = 17;}
+
+ else if ( (LA14_0=='c') ) {s = 18;}
+
+ else if ( (LA14_0=='m') ) {s = 19;}
+
+ else if ( (LA14_0=='i') ) {s = 20;}
+
+ else if ( (LA14_0=='d') ) {s = 21;}
+
+ else if ( (LA14_0=='r') ) {s = 22;}
+
+ else if ( (LA14_0=='g') ) {s = 23;}
+
+ else if ( (LA14_0=='s') ) {s = 24;}
+
+ else if ( (LA14_0=='h') ) {s = 25;}
+
+ else if ( (LA14_0=='k') ) {s = 26;}
+
+ else if ( (LA14_0=='#') ) {s = 27;}
+
+ else if ( (LA14_0=='+') ) {s = 28;}
+
+ else if ( (LA14_0=='>') ) {s = 29;}
+
+ else if ( (LA14_0=='-') ) {s = 30;}
+
+ else if ( ((LA14_0>='A' && LA14_0<='Z')||LA14_0=='_'||(LA14_0>='a' && LA14_0<='b')||LA14_0=='f'||LA14_0=='j'||LA14_0=='l'||(LA14_0>='n' && LA14_0<='o')||LA14_0=='q'||LA14_0=='t'||(LA14_0>='v' && LA14_0<='z')) ) {s = 31;}
+
+ else if ( (LA14_0=='^') ) {s = 32;}
+
+ else if ( ((LA14_0>='0' && LA14_0<='9')) ) {s = 33;}
+
+ else if ( (LA14_0=='\"') ) {s = 34;}
+
+ else if ( (LA14_0=='\'') ) {s = 35;}
+
+ else if ( ((LA14_0>='\t' && LA14_0<='\n')||LA14_0=='\r'||LA14_0==' ') ) {s = 36;}
+
+ else if ( ((LA14_0>='\u0000' && LA14_0<='\b')||(LA14_0>='\u000B' && LA14_0<='\f')||(LA14_0>='\u000E' && LA14_0<='\u001F')||LA14_0=='$'||LA14_0=='&'||(LA14_0>='<' && LA14_0<='=')||LA14_0=='?'||LA14_0=='['||LA14_0==']'||LA14_0=='`'||LA14_0=='|'||(LA14_0>='~' && LA14_0<='\uFFFF')) ) {s = 37;}
+
+ if ( s>=0 ) return s;
+ break;
+ case 2 :
+ int LA14_35 = input.LA(1);
+
+ s = -1;
+ if ( ((LA14_35>='\u0000' && LA14_35<='\uFFFF')) ) {s = 79;}
+
+ else s = 37;
+
+ if ( s>=0 ) return s;
+ break;
+ }
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 14, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+
+
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSSParser.java b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSSParser.java
new file mode 100644
index 00000000..82183de0
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSSParser.java
@@ -0,0 +1,4665 @@
+package org.eclipse.e4.parser.antlr.internal;
+
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.parser.*;
+import org.eclipse.xtext.parser.impl.*;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
+import org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken;
+import org.eclipse.e4.services.CSSGrammarAccess;
+
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+
+@SuppressWarnings("all")
+public class InternalCSSParser extends AbstractInternalAntlrParser {
+ public static final String[] tokenNames = new String[] {
+ "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_STRING", "RULE_WS", "RULE_IDENT", "RULE_HEXDIGITS", "RULE_INT", "RULE_ID", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_ANY_OTHER", "','", "'{'", "';'", "'}'", "'@import'", "':'", "'*'", "'!important'", "'/'", "'('", "')'", "'url'", "'\\\\'", "'.'", "'%'", "'em'", "'ex'", "'px'", "'cm'", "'mm'", "'in'", "'pt'", "'pc'", "'deg'", "'rad'", "'grad'", "'ms'", "'s'", "'hz'", "'khz'", "'#'", "'+'", "'>'", "'-'"
+ };
+ public static final int RULE_ID=9;
+ public static final int T__29=29;
+ public static final int T__28=28;
+ public static final int T__27=27;
+ public static final int T__26=26;
+ public static final int T__25=25;
+ public static final int T__24=24;
+ public static final int T__23=23;
+ public static final int T__22=22;
+ public static final int RULE_ANY_OTHER=12;
+ public static final int T__21=21;
+ public static final int T__20=20;
+ public static final int EOF=-1;
+ public static final int T__19=19;
+ public static final int T__16=16;
+ public static final int T__15=15;
+ public static final int T__18=18;
+ public static final int T__17=17;
+ public static final int T__14=14;
+ public static final int T__13=13;
+ public static final int RULE_INT=8;
+ public static final int T__42=42;
+ public static final int T__43=43;
+ public static final int T__40=40;
+ public static final int T__41=41;
+ public static final int T__46=46;
+ public static final int T__44=44;
+ public static final int T__45=45;
+ public static final int RULE_SL_COMMENT=11;
+ public static final int RULE_ML_COMMENT=10;
+ public static final int T__30=30;
+ public static final int T__31=31;
+ public static final int T__32=32;
+ public static final int RULE_STRING=4;
+ public static final int T__33=33;
+ public static final int T__34=34;
+ public static final int T__35=35;
+ public static final int T__36=36;
+ public static final int T__37=37;
+ public static final int T__38=38;
+ public static final int RULE_IDENT=6;
+ public static final int T__39=39;
+ public static final int RULE_HEXDIGITS=7;
+ public static final int RULE_WS=5;
+
+ // delegates
+ // delegators
+
+
+ public InternalCSSParser(TokenStream input) {
+ this(input, new RecognizerSharedState());
+ }
+ public InternalCSSParser(TokenStream input, RecognizerSharedState state) {
+ super(input, state);
+
+ }
+
+
+ public String[] getTokenNames() { return InternalCSSParser.tokenNames; }
+ public String getGrammarFileName() { return "../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g"; }
+
+
+
+ private CSSGrammarAccess grammarAccess;
+
+ public InternalCSSParser(TokenStream input, CSSGrammarAccess grammarAccess) {
+ this(input);
+ this.grammarAccess = grammarAccess;
+ registerRules(grammarAccess.getGrammar());
+ }
+
+ @Override
+ protected String getFirstRuleName() {
+ return "stylesheet";
+ }
+
+ @Override
+ protected CSSGrammarAccess getGrammarAccess() {
+ return grammarAccess;
+ }
+
+
+
+ // $ANTLR start "entryRulestylesheet"
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:67:1: entryRulestylesheet returns [EObject current=null] : iv_rulestylesheet= rulestylesheet EOF ;
+ public final EObject entryRulestylesheet() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_rulestylesheet = null;
+
+
+ try {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:68:2: (iv_rulestylesheet= rulestylesheet EOF )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:69:2: iv_rulestylesheet= rulestylesheet EOF
+ {
+ newCompositeNode(grammarAccess.getStylesheetRule());
+ pushFollow(FOLLOW_rulestylesheet_in_entryRulestylesheet75);
+ iv_rulestylesheet=rulestylesheet();
+
+ state._fsp--;
+
+ current =iv_rulestylesheet;
+ match(input,EOF,FOLLOW_EOF_in_entryRulestylesheet85);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRulestylesheet"
+
+
+ // $ANTLR start "rulestylesheet"
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:76:1: rulestylesheet returns [EObject current=null] : ( ( (lv_location_0_0= RULE_STRING ) )? ( (lv_importName_1_0= rulecss_import ) )* ( (lv_ruleset_2_0= ruleRules ) )* ) ;
+ public final EObject rulestylesheet() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_location_0_0=null;
+ EObject lv_importName_1_0 = null;
+
+ EObject lv_ruleset_2_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:79:28: ( ( ( (lv_location_0_0= RULE_STRING ) )? ( (lv_importName_1_0= rulecss_import ) )* ( (lv_ruleset_2_0= ruleRules ) )* ) )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:80:1: ( ( (lv_location_0_0= RULE_STRING ) )? ( (lv_importName_1_0= rulecss_import ) )* ( (lv_ruleset_2_0= ruleRules ) )* )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:80:1: ( ( (lv_location_0_0= RULE_STRING ) )? ( (lv_importName_1_0= rulecss_import ) )* ( (lv_ruleset_2_0= ruleRules ) )* )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:80:2: ( (lv_location_0_0= RULE_STRING ) )? ( (lv_importName_1_0= rulecss_import ) )* ( (lv_ruleset_2_0= ruleRules ) )*
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:80:2: ( (lv_location_0_0= RULE_STRING ) )?
+ int alt1=2;
+ int LA1_0 = input.LA(1);
+
+ if ( (LA1_0==RULE_STRING) ) {
+ alt1=1;
+ }
+ switch (alt1) {
+ case 1 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:81:1: (lv_location_0_0= RULE_STRING )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:81:1: (lv_location_0_0= RULE_STRING )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:82:3: lv_location_0_0= RULE_STRING
+ {
+ lv_location_0_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rulestylesheet127);
+
+ newLeafNode(lv_location_0_0, grammarAccess.getStylesheetAccess().getLocationSTRINGTerminalRuleCall_0_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getStylesheetRule());
+ }
+ setWithLastConsumed(
+ current,
+ "location",
+ lv_location_0_0,
+ "STRING");
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:98:3: ( (lv_importName_1_0= rulecss_import ) )*
+ loop2:
+ do {
+ int alt2=2;
+ int LA2_0 = input.LA(1);
+
+ if ( (LA2_0==17) ) {
+ alt2=1;
+ }
+
+
+ switch (alt2) {
+ case 1 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:99:1: (lv_importName_1_0= rulecss_import )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:99:1: (lv_importName_1_0= rulecss_import )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:100:3: lv_importName_1_0= rulecss_import
+ {
+
+ newCompositeNode(grammarAccess.getStylesheetAccess().getImportNameCss_importParserRuleCall_1_0());
+
+ pushFollow(FOLLOW_rulecss_import_in_rulestylesheet154);
+ lv_importName_1_0=rulecss_import();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getStylesheetRule());
+ }
+ add(
+ current,
+ "importName",
+ lv_importName_1_0,
+ "css_import");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop2;
+ }
+ } while (true);
+
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:116:3: ( (lv_ruleset_2_0= ruleRules ) )*
+ loop3:
+ do {
+ int alt3=2;
+ int LA3_0 = input.LA(1);
+
+ if ( (LA3_0==RULE_IDENT||LA3_0==19||LA3_0==26||LA3_0==43) ) {
+ alt3=1;
+ }
+
+
+ switch (alt3) {
+ case 1 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:117:1: (lv_ruleset_2_0= ruleRules )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:117:1: (lv_ruleset_2_0= ruleRules )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:118:3: lv_ruleset_2_0= ruleRules
+ {
+
+ newCompositeNode(grammarAccess.getStylesheetAccess().getRulesetRulesParserRuleCall_2_0());
+
+ pushFollow(FOLLOW_ruleRules_in_rulestylesheet176);
+ lv_ruleset_2_0=ruleRules();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getStylesheetRule());
+ }
+ add(
+ current,
+ "ruleset",
+ lv_ruleset_2_0,
+ "Rules");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop3;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "rulestylesheet"
+
+
+ // $ANTLR start "entryRuleRules"
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:142:1: entryRuleRules returns [EObject current=null] : iv_ruleRules= ruleRules EOF ;
+ public final EObject entryRuleRules() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleRules = null;
+
+
+ try {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:143:2: (iv_ruleRules= ruleRules EOF )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:144:2: iv_ruleRules= ruleRules EOF
+ {
+ newCompositeNode(grammarAccess.getRulesRule());
+ pushFollow(FOLLOW_ruleRules_in_entryRuleRules213);
+ iv_ruleRules=ruleRules();
+
+ state._fsp--;
+
+ current =iv_ruleRules;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleRules223);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleRules"
+
+
+ // $ANTLR start "ruleRules"
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:151:1: ruleRules returns [EObject current=null] : ( ( (lv_selectors_0_0= ruleselector ) ) (otherlv_1= ',' ( (lv_selectors_2_0= ruleselector ) ) )* otherlv_3= '{' ( (lv_declarations_4_0= ruledeclaration ) )? (otherlv_5= ';' ( (lv_declarations_6_0= ruledeclaration ) )? )* otherlv_7= '}' ) ;
+ public final EObject ruleRules() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_3=null;
+ Token otherlv_5=null;
+ Token otherlv_7=null;
+ EObject lv_selectors_0_0 = null;
+
+ EObject lv_selectors_2_0 = null;
+
+ EObject lv_declarations_4_0 = null;
+
+ EObject lv_declarations_6_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:154:28: ( ( ( (lv_selectors_0_0= ruleselector ) ) (otherlv_1= ',' ( (lv_selectors_2_0= ruleselector ) ) )* otherlv_3= '{' ( (lv_declarations_4_0= ruledeclaration ) )? (otherlv_5= ';' ( (lv_declarations_6_0= ruledeclaration ) )? )* otherlv_7= '}' ) )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:155:1: ( ( (lv_selectors_0_0= ruleselector ) ) (otherlv_1= ',' ( (lv_selectors_2_0= ruleselector ) ) )* otherlv_3= '{' ( (lv_declarations_4_0= ruledeclaration ) )? (otherlv_5= ';' ( (lv_declarations_6_0= ruledeclaration ) )? )* otherlv_7= '}' )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:155:1: ( ( (lv_selectors_0_0= ruleselector ) ) (otherlv_1= ',' ( (lv_selectors_2_0= ruleselector ) ) )* otherlv_3= '{' ( (lv_declarations_4_0= ruledeclaration ) )? (otherlv_5= ';' ( (lv_declarations_6_0= ruledeclaration ) )? )* otherlv_7= '}' )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:155:2: ( (lv_selectors_0_0= ruleselector ) ) (otherlv_1= ',' ( (lv_selectors_2_0= ruleselector ) ) )* otherlv_3= '{' ( (lv_declarations_4_0= ruledeclaration ) )? (otherlv_5= ';' ( (lv_declarations_6_0= ruledeclaration ) )? )* otherlv_7= '}'
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:155:2: ( (lv_selectors_0_0= ruleselector ) )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:156:1: (lv_selectors_0_0= ruleselector )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:156:1: (lv_selectors_0_0= ruleselector )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:157:3: lv_selectors_0_0= ruleselector
+ {
+
+ newCompositeNode(grammarAccess.getRulesAccess().getSelectorsSelectorParserRuleCall_0_0());
+
+ pushFollow(FOLLOW_ruleselector_in_ruleRules269);
+ lv_selectors_0_0=ruleselector();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getRulesRule());
+ }
+ add(
+ current,
+ "selectors",
+ lv_selectors_0_0,
+ "selector");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:173:2: (otherlv_1= ',' ( (lv_selectors_2_0= ruleselector ) ) )*
+ loop4:
+ do {
+ int alt4=2;
+ int LA4_0 = input.LA(1);
+
+ if ( (LA4_0==13) ) {
+ alt4=1;
+ }
+
+
+ switch (alt4) {
+ case 1 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:173:4: otherlv_1= ',' ( (lv_selectors_2_0= ruleselector ) )
+ {
+ otherlv_1=(Token)match(input,13,FOLLOW_13_in_ruleRules282);
+
+ newLeafNode(otherlv_1, grammarAccess.getRulesAccess().getCommaKeyword_1_0());
+
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:177:1: ( (lv_selectors_2_0= ruleselector ) )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:178:1: (lv_selectors_2_0= ruleselector )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:178:1: (lv_selectors_2_0= ruleselector )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:179:3: lv_selectors_2_0= ruleselector
+ {
+
+ newCompositeNode(grammarAccess.getRulesAccess().getSelectorsSelectorParserRuleCall_1_1_0());
+
+ pushFollow(FOLLOW_ruleselector_in_ruleRules303);
+ lv_selectors_2_0=ruleselector();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getRulesRule());
+ }
+ add(
+ current,
+ "selectors",
+ lv_selectors_2_0,
+ "selector");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop4;
+ }
+ } while (true);
+
+ otherlv_3=(Token)match(input,14,FOLLOW_14_in_ruleRules317);
+
+ newLeafNode(otherlv_3, grammarAccess.getRulesAccess().getLeftCurlyBracketKeyword_2());
+
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:199:1: ( (lv_declarations_4_0= ruledeclaration ) )?
+ int alt5=2;
+ int LA5_0 = input.LA(1);
+
+ if ( (LA5_0==RULE_IDENT) ) {
+ alt5=1;
+ }
+ switch (alt5) {
+ case 1 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:200:1: (lv_declarations_4_0= ruledeclaration )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:200:1: (lv_declarations_4_0= ruledeclaration )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:201:3: lv_declarations_4_0= ruledeclaration
+ {
+
+ newCompositeNode(grammarAccess.getRulesAccess().getDeclarationsDeclarationParserRuleCall_3_0());
+
+ pushFollow(FOLLOW_ruledeclaration_in_ruleRules338);
+ lv_declarations_4_0=ruledeclaration();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getRulesRule());
+ }
+ add(
+ current,
+ "declarations",
+ lv_declarations_4_0,
+ "declaration");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:217:3: (otherlv_5= ';' ( (lv_declarations_6_0= ruledeclaration ) )? )*
+ loop7:
+ do {
+ int alt7=2;
+ int LA7_0 = input.LA(1);
+
+ if ( (LA7_0==15) ) {
+ alt7=1;
+ }
+
+
+ switch (alt7) {
+ case 1 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:217:5: otherlv_5= ';' ( (lv_declarations_6_0= ruledeclaration ) )?
+ {
+ otherlv_5=(Token)match(input,15,FOLLOW_15_in_ruleRules352);
+
+ newLeafNode(otherlv_5, grammarAccess.getRulesAccess().getSemicolonKeyword_4_0());
+
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:221:1: ( (lv_declarations_6_0= ruledeclaration ) )?
+ int alt6=2;
+ int LA6_0 = input.LA(1);
+
+ if ( (LA6_0==RULE_IDENT) ) {
+ alt6=1;
+ }
+ switch (alt6) {
+ case 1 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:222:1: (lv_declarations_6_0= ruledeclaration )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:222:1: (lv_declarations_6_0= ruledeclaration )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:223:3: lv_declarations_6_0= ruledeclaration
+ {
+
+ newCompositeNode(grammarAccess.getRulesAccess().getDeclarationsDeclarationParserRuleCall_4_1_0());
+
+ pushFollow(FOLLOW_ruledeclaration_in_ruleRules373);
+ lv_declarations_6_0=ruledeclaration();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getRulesRule());
+ }
+ add(
+ current,
+ "declarations",
+ lv_declarations_6_0,
+ "declaration");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop7;
+ }
+ } while (true);
+
+ otherlv_7=(Token)match(input,16,FOLLOW_16_in_ruleRules388);
+
+ newLeafNode(otherlv_7, grammarAccess.getRulesAccess().getRightCurlyBracketKeyword_5());
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleRules"
+
+
+ // $ANTLR start "entryRulecss_import"
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:251:1: entryRulecss_import returns [EObject current=null] : iv_rulecss_import= rulecss_import EOF ;
+ public final EObject entryRulecss_import() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_rulecss_import = null;
+
+
+ try {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:252:2: (iv_rulecss_import= rulecss_import EOF )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:253:2: iv_rulecss_import= rulecss_import EOF
+ {
+ newCompositeNode(grammarAccess.getCss_importRule());
+ pushFollow(FOLLOW_rulecss_import_in_entryRulecss_import424);
+ iv_rulecss_import=rulecss_import();
+
+ state._fsp--;
+
+ current =iv_rulecss_import;
+ match(input,EOF,FOLLOW_EOF_in_entryRulecss_import434);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRulecss_import"
+
+
+ // $ANTLR start "rulecss_import"
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:260:1: rulecss_import returns [EObject current=null] : (otherlv_0= '@import' ( ( (lv_string_name_1_0= RULE_STRING ) ) | this_URI_2= ruleURI ) otherlv_3= ';' ) ;
+ public final EObject rulecss_import() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ Token lv_string_name_1_0=null;
+ Token otherlv_3=null;
+ EObject this_URI_2 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:263:28: ( (otherlv_0= '@import' ( ( (lv_string_name_1_0= RULE_STRING ) ) | this_URI_2= ruleURI ) otherlv_3= ';' ) )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:264:1: (otherlv_0= '@import' ( ( (lv_string_name_1_0= RULE_STRING ) ) | this_URI_2= ruleURI ) otherlv_3= ';' )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:264:1: (otherlv_0= '@import' ( ( (lv_string_name_1_0= RULE_STRING ) ) | this_URI_2= ruleURI ) otherlv_3= ';' )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:264:3: otherlv_0= '@import' ( ( (lv_string_name_1_0= RULE_STRING ) ) | this_URI_2= ruleURI ) otherlv_3= ';'
+ {
+ otherlv_0=(Token)match(input,17,FOLLOW_17_in_rulecss_import471);
+
+ newLeafNode(otherlv_0, grammarAccess.getCss_importAccess().getImportKeyword_0());
+
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:268:1: ( ( (lv_string_name_1_0= RULE_STRING ) ) | this_URI_2= ruleURI )
+ int alt8=2;
+ int LA8_0 = input.LA(1);
+
+ if ( (LA8_0==RULE_STRING) ) {
+ alt8=1;
+ }
+ else if ( (LA8_0==24) ) {
+ alt8=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 8, 0, input);
+
+ throw nvae;
+ }
+ switch (alt8) {
+ case 1 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:268:2: ( (lv_string_name_1_0= RULE_STRING ) )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:268:2: ( (lv_string_name_1_0= RULE_STRING ) )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:269:1: (lv_string_name_1_0= RULE_STRING )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:269:1: (lv_string_name_1_0= RULE_STRING )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:270:3: lv_string_name_1_0= RULE_STRING
+ {
+ lv_string_name_1_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rulecss_import489);
+
+ newLeafNode(lv_string_name_1_0, grammarAccess.getCss_importAccess().getString_nameSTRINGTerminalRuleCall_1_0_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getCss_importRule());
+ }
+ setWithLastConsumed(
+ current,
+ "string_name",
+ lv_string_name_1_0,
+ "STRING");
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:288:5: this_URI_2= ruleURI
+ {
+
+ newCompositeNode(grammarAccess.getCss_importAccess().getURIParserRuleCall_1_1());
+
+ pushFollow(FOLLOW_ruleURI_in_rulecss_import522);
+ this_URI_2=ruleURI();
+
+ state._fsp--;
+
+
+ current = this_URI_2;
+ afterParserOrEnumRuleCall();
+
+
+ }
+ break;
+
+ }
+
+ otherlv_3=(Token)match(input,15,FOLLOW_15_in_rulecss_import534);
+
+ newLeafNode(otherlv_3, grammarAccess.getCss_importAccess().getSemicolonKeyword_2());
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "rulecss_import"
+
+
+ // $ANTLR start "entryRuleselector"
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:308:1: entryRuleselector returns [EObject current=null] : iv_ruleselector= ruleselector EOF ;
+ public final EObject entryRuleselector() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleselector = null;
+
+
+
+ HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
+
+ try {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:312:2: (iv_ruleselector= ruleselector EOF )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:313:2: iv_ruleselector= ruleselector EOF
+ {
+ newCompositeNode(grammarAccess.getSelectorRule());
+ pushFollow(FOLLOW_ruleselector_in_entryRuleselector576);
+ iv_ruleselector=ruleselector();
+
+ state._fsp--;
+
+ current =iv_ruleselector;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleselector586);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+
+ myHiddenTokenState.restore();
+
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleselector"
+
+
+ // $ANTLR start "ruleselector"
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:323:1: ruleselector returns [EObject current=null] : ( ( (lv_simpleselectors_0_0= rulesimple_selector ) ) ( ( ( (lv_combinator_1_0= rulecombinator ) ) ( (lv_selector_2_0= ruleselector ) ) ) | ( (this_WS_3= RULE_WS )+ ( ( (lv_combinator_4_0= rulecombinator ) )? ( (lv_selector_5_0= ruleselector ) ) )? ) )? ) ;
+ public final EObject ruleselector() throws RecognitionException {
+ EObject current = null;
+
+ Token this_WS_3=null;
+ EObject lv_simpleselectors_0_0 = null;
+
+ AntlrDatatypeRuleToken lv_combinator_1_0 = null;
+
+ EObject lv_selector_2_0 = null;
+
+ AntlrDatatypeRuleToken lv_combinator_4_0 = null;
+
+ EObject lv_selector_5_0 = null;
+
+
+ enterRule();
+ HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
+
+ try {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:327:28: ( ( ( (lv_simpleselectors_0_0= rulesimple_selector ) ) ( ( ( (lv_combinator_1_0= rulecombinator ) ) ( (lv_selector_2_0= ruleselector ) ) ) | ( (this_WS_3= RULE_WS )+ ( ( (lv_combinator_4_0= rulecombinator ) )? ( (lv_selector_5_0= ruleselector ) ) )? ) )? ) )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:328:1: ( ( (lv_simpleselectors_0_0= rulesimple_selector ) ) ( ( ( (lv_combinator_1_0= rulecombinator ) ) ( (lv_selector_2_0= ruleselector ) ) ) | ( (this_WS_3= RULE_WS )+ ( ( (lv_combinator_4_0= rulecombinator ) )? ( (lv_selector_5_0= ruleselector ) ) )? ) )? )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:328:1: ( ( (lv_simpleselectors_0_0= rulesimple_selector ) ) ( ( ( (lv_combinator_1_0= rulecombinator ) ) ( (lv_selector_2_0= ruleselector ) ) ) | ( (this_WS_3= RULE_WS )+ ( ( (lv_combinator_4_0= rulecombinator ) )? ( (lv_selector_5_0= ruleselector ) ) )? ) )? )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:328:2: ( (lv_simpleselectors_0_0= rulesimple_selector ) ) ( ( ( (lv_combinator_1_0= rulecombinator ) ) ( (lv_selector_2_0= ruleselector ) ) ) | ( (this_WS_3= RULE_WS )+ ( ( (lv_combinator_4_0= rulecombinator ) )? ( (lv_selector_5_0= ruleselector ) ) )? ) )?
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:328:2: ( (lv_simpleselectors_0_0= rulesimple_selector ) )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:329:1: (lv_simpleselectors_0_0= rulesimple_selector )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:329:1: (lv_simpleselectors_0_0= rulesimple_selector )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:330:3: lv_simpleselectors_0_0= rulesimple_selector
+ {
+
+ newCompositeNode(grammarAccess.getSelectorAccess().getSimpleselectorsSimple_selectorParserRuleCall_0_0());
+
+ pushFollow(FOLLOW_rulesimple_selector_in_ruleselector636);
+ lv_simpleselectors_0_0=rulesimple_selector();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getSelectorRule());
+ }
+ set(
+ current,
+ "simpleselectors",
+ lv_simpleselectors_0_0,
+ "simple_selector");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:346:2: ( ( ( (lv_combinator_1_0= rulecombinator ) ) ( (lv_selector_2_0= ruleselector ) ) ) | ( (this_WS_3= RULE_WS )+ ( ( (lv_combinator_4_0= rulecombinator ) )? ( (lv_selector_5_0= ruleselector ) ) )? ) )?
+ int alt12=3;
+ int LA12_0 = input.LA(1);
+
+ if ( ((LA12_0>=44 && LA12_0<=45)) ) {
+ alt12=1;
+ }
+ else if ( (LA12_0==RULE_WS) ) {
+ alt12=2;
+ }
+ switch (alt12) {
+ case 1 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:346:3: ( ( (lv_combinator_1_0= rulecombinator ) ) ( (lv_selector_2_0= ruleselector ) ) )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:346:3: ( ( (lv_combinator_1_0= rulecombinator ) ) ( (lv_selector_2_0= ruleselector ) ) )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:346:4: ( (lv_combinator_1_0= rulecombinator ) ) ( (lv_selector_2_0= ruleselector ) )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:346:4: ( (lv_combinator_1_0= rulecombinator ) )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:347:1: (lv_combinator_1_0= rulecombinator )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:347:1: (lv_combinator_1_0= rulecombinator )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:348:3: lv_combinator_1_0= rulecombinator
+ {
+
+ newCompositeNode(grammarAccess.getSelectorAccess().getCombinatorCombinatorParserRuleCall_1_0_0_0());
+
+ pushFollow(FOLLOW_rulecombinator_in_ruleselector659);
+ lv_combinator_1_0=rulecombinator();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getSelectorRule());
+ }
+ set(
+ current,
+ "combinator",
+ lv_combinator_1_0,
+ "combinator");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:364:2: ( (lv_selector_2_0= ruleselector ) )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:365:1: (lv_selector_2_0= ruleselector )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:365:1: (lv_selector_2_0= ruleselector )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:366:3: lv_selector_2_0= ruleselector
+ {
+
+ newCompositeNode(grammarAccess.getSelectorAccess().getSelectorSelectorParserRuleCall_1_0_1_0());
+
+ pushFollow(FOLLOW_ruleselector_in_ruleselector680);
+ lv_selector_2_0=ruleselector();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getSelectorRule());
+ }
+ set(
+ current,
+ "selector",
+ lv_selector_2_0,
+ "selector");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:383:6: ( (this_WS_3= RULE_WS )+ ( ( (lv_combinator_4_0= rulecombinator ) )? ( (lv_selector_5_0= ruleselector ) ) )? )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:383:6: ( (this_WS_3= RULE_WS )+ ( ( (lv_combinator_4_0= rulecombinator ) )? ( (lv_selector_5_0= ruleselector ) ) )? )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:383:7: (this_WS_3= RULE_WS )+ ( ( (lv_combinator_4_0= rulecombinator ) )? ( (lv_selector_5_0= ruleselector ) ) )?
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:383:7: (this_WS_3= RULE_WS )+
+ int cnt9=0;
+ loop9:
+ do {
+ int alt9=2;
+ int LA9_0 = input.LA(1);
+
+ if ( (LA9_0==RULE_WS) ) {
+ alt9=1;
+ }
+
+
+ switch (alt9) {
+ case 1 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:383:8: this_WS_3= RULE_WS
+ {
+ this_WS_3=(Token)match(input,RULE_WS,FOLLOW_RULE_WS_in_ruleselector700);
+
+ newLeafNode(this_WS_3, grammarAccess.getSelectorAccess().getWSTerminalRuleCall_1_1_0());
+
+
+ }
+ break;
+
+ default :
+ if ( cnt9 >= 1 ) break loop9;
+ EarlyExitException eee =
+ new EarlyExitException(9, input);
+ throw eee;
+ }
+ cnt9++;
+ } while (true);
+
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:387:3: ( ( (lv_combinator_4_0= rulecombinator ) )? ( (lv_selector_5_0= ruleselector ) ) )?
+ int alt11=2;
+ int LA11_0 = input.LA(1);
+
+ if ( (LA11_0==RULE_IDENT||LA11_0==19||LA11_0==26||(LA11_0>=43 && LA11_0<=45)) ) {
+ alt11=1;
+ }
+ switch (alt11) {
+ case 1 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:387:4: ( (lv_combinator_4_0= rulecombinator ) )? ( (lv_selector_5_0= ruleselector ) )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:387:4: ( (lv_combinator_4_0= rulecombinator ) )?
+ int alt10=2;
+ int LA10_0 = input.LA(1);
+
+ if ( ((LA10_0>=44 && LA10_0<=45)) ) {
+ alt10=1;
+ }
+ switch (alt10) {
+ case 1 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:388:1: (lv_combinator_4_0= rulecombinator )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:388:1: (lv_combinator_4_0= rulecombinator )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:389:3: lv_combinator_4_0= rulecombinator
+ {
+
+ newCompositeNode(grammarAccess.getSelectorAccess().getCombinatorCombinatorParserRuleCall_1_1_1_0_0());
+
+ pushFollow(FOLLOW_rulecombinator_in_ruleselector723);
+ lv_combinator_4_0=rulecombinator();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getSelectorRule());
+ }
+ set(
+ current,
+ "combinator",
+ lv_combinator_4_0,
+ "combinator");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:405:3: ( (lv_selector_5_0= ruleselector ) )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:406:1: (lv_selector_5_0= ruleselector )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:406:1: (lv_selector_5_0= ruleselector )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:407:3: lv_selector_5_0= ruleselector
+ {
+
+ newCompositeNode(grammarAccess.getSelectorAccess().getSelectorSelectorParserRuleCall_1_1_1_1_0());
+
+ pushFollow(FOLLOW_ruleselector_in_ruleselector745);
+ lv_selector_5_0=ruleselector();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getSelectorRule());
+ }
+ set(
+ current,
+ "selector",
+ lv_selector_5_0,
+ "selector");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+
+ myHiddenTokenState.restore();
+
+ }
+ return current;
+ }
+ // $ANTLR end "ruleselector"
+
+
+ // $ANTLR start "entryRulesimple_selector"
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:434:1: entryRulesimple_selector returns [EObject current=null] : iv_rulesimple_selector= rulesimple_selector EOF ;
+ public final EObject entryRulesimple_selector() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_rulesimple_selector = null;
+
+
+ try {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:435:2: (iv_rulesimple_selector= rulesimple_selector EOF )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:436:2: iv_rulesimple_selector= rulesimple_selector EOF
+ {
+ newCompositeNode(grammarAccess.getSimple_selectorRule());
+ pushFollow(FOLLOW_rulesimple_selector_in_entryRulesimple_selector790);
+ iv_rulesimple_selector=rulesimple_selector();
+
+ state._fsp--;
+
+ current =iv_rulesimple_selector;
+ match(input,EOF,FOLLOW_EOF_in_entryRulesimple_selector800);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRulesimple_selector"
+
+
+ // $ANTLR start "rulesimple_selector"
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:443:1: rulesimple_selector returns [EObject current=null] : ( ( ( (lv_element_0_0= ruleelement_name ) ) ( (lv_id_1_0= rulecss_hash_class ) )* ( (lv_pseudo_2_0= rulepseudo ) )* ) | ( (lv_id_3_0= rulecss_hash_class ) )+ ) ;
+ public final EObject rulesimple_selector() throws RecognitionException {
+ EObject current = null;
+
+ EObject lv_element_0_0 = null;
+
+ EObject lv_id_1_0 = null;
+
+ EObject lv_pseudo_2_0 = null;
+
+ EObject lv_id_3_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:446:28: ( ( ( ( (lv_element_0_0= ruleelement_name ) ) ( (lv_id_1_0= rulecss_hash_class ) )* ( (lv_pseudo_2_0= rulepseudo ) )* ) | ( (lv_id_3_0= rulecss_hash_class ) )+ ) )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:447:1: ( ( ( (lv_element_0_0= ruleelement_name ) ) ( (lv_id_1_0= rulecss_hash_class ) )* ( (lv_pseudo_2_0= rulepseudo ) )* ) | ( (lv_id_3_0= rulecss_hash_class ) )+ )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:447:1: ( ( ( (lv_element_0_0= ruleelement_name ) ) ( (lv_id_1_0= rulecss_hash_class ) )* ( (lv_pseudo_2_0= rulepseudo ) )* ) | ( (lv_id_3_0= rulecss_hash_class ) )+ )
+ int alt16=2;
+ int LA16_0 = input.LA(1);
+
+ if ( (LA16_0==RULE_IDENT||LA16_0==19) ) {
+ alt16=1;
+ }
+ else if ( (LA16_0==26||LA16_0==43) ) {
+ alt16=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 16, 0, input);
+
+ throw nvae;
+ }
+ switch (alt16) {
+ case 1 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:447:2: ( ( (lv_element_0_0= ruleelement_name ) ) ( (lv_id_1_0= rulecss_hash_class ) )* ( (lv_pseudo_2_0= rulepseudo ) )* )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:447:2: ( ( (lv_element_0_0= ruleelement_name ) ) ( (lv_id_1_0= rulecss_hash_class ) )* ( (lv_pseudo_2_0= rulepseudo ) )* )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:447:3: ( (lv_element_0_0= ruleelement_name ) ) ( (lv_id_1_0= rulecss_hash_class ) )* ( (lv_pseudo_2_0= rulepseudo ) )*
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:447:3: ( (lv_element_0_0= ruleelement_name ) )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:448:1: (lv_element_0_0= ruleelement_name )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:448:1: (lv_element_0_0= ruleelement_name )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:449:3: lv_element_0_0= ruleelement_name
+ {
+
+ newCompositeNode(grammarAccess.getSimple_selectorAccess().getElementElement_nameParserRuleCall_0_0_0());
+
+ pushFollow(FOLLOW_ruleelement_name_in_rulesimple_selector847);
+ lv_element_0_0=ruleelement_name();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getSimple_selectorRule());
+ }
+ set(
+ current,
+ "element",
+ lv_element_0_0,
+ "element_name");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:465:2: ( (lv_id_1_0= rulecss_hash_class ) )*
+ loop13:
+ do {
+ int alt13=2;
+ int LA13_0 = input.LA(1);
+
+ if ( (LA13_0==26||LA13_0==43) ) {
+ alt13=1;
+ }
+
+
+ switch (alt13) {
+ case 1 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:466:1: (lv_id_1_0= rulecss_hash_class )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:466:1: (lv_id_1_0= rulecss_hash_class )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:467:3: lv_id_1_0= rulecss_hash_class
+ {
+
+ newCompositeNode(grammarAccess.getSimple_selectorAccess().getIdCss_hash_classParserRuleCall_0_1_0());
+
+ pushFollow(FOLLOW_rulecss_hash_class_in_rulesimple_selector868);
+ lv_id_1_0=rulecss_hash_class();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getSimple_selectorRule());
+ }
+ add(
+ current,
+ "id",
+ lv_id_1_0,
+ "css_hash_class");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop13;
+ }
+ } while (true);
+
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:483:3: ( (lv_pseudo_2_0= rulepseudo ) )*
+ loop14:
+ do {
+ int alt14=2;
+ int LA14_0 = input.LA(1);
+
+ if ( (LA14_0==RULE_IDENT||LA14_0==18) ) {
+ alt14=1;
+ }
+
+
+ switch (alt14) {
+ case 1 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:484:1: (lv_pseudo_2_0= rulepseudo )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:484:1: (lv_pseudo_2_0= rulepseudo )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:485:3: lv_pseudo_2_0= rulepseudo
+ {
+
+ newCompositeNode(grammarAccess.getSimple_selectorAccess().getPseudoPseudoParserRuleCall_0_2_0());
+
+ pushFollow(FOLLOW_rulepseudo_in_rulesimple_selector890);
+ lv_pseudo_2_0=rulepseudo();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getSimple_selectorRule());
+ }
+ add(
+ current,
+ "pseudo",
+ lv_pseudo_2_0,
+ "pseudo");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop14;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:502:6: ( (lv_id_3_0= rulecss_hash_class ) )+
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:502:6: ( (lv_id_3_0= rulecss_hash_class ) )+
+ int cnt15=0;
+ loop15:
+ do {
+ int alt15=2;
+ int LA15_0 = input.LA(1);
+
+ if ( (LA15_0==26||LA15_0==43) ) {
+ alt15=1;
+ }
+
+
+ switch (alt15) {
+ case 1 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:503:1: (lv_id_3_0= rulecss_hash_class )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:503:1: (lv_id_3_0= rulecss_hash_class )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:504:3: lv_id_3_0= rulecss_hash_class
+ {
+
+ newCompositeNode(grammarAccess.getSimple_selectorAccess().getIdCss_hash_classParserRuleCall_1_0());
+
+ pushFollow(FOLLOW_rulecss_hash_class_in_rulesimple_selector919);
+ lv_id_3_0=rulecss_hash_class();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getSimple_selectorRule());
+ }
+ add(
+ current,
+ "id",
+ lv_id_3_0,
+ "css_hash_class");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ if ( cnt15 >= 1 ) break loop15;
+ EarlyExitException eee =
+ new EarlyExitException(15, input);
+ throw eee;
+ }
+ cnt15++;
+ } while (true);
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "rulesimple_selector"
+
+
+ // $ANTLR start "entryRulepseudo"
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:528:1: entryRulepseudo returns [EObject current=null] : iv_rulepseudo= rulepseudo EOF ;
+ public final EObject entryRulepseudo() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_rulepseudo = null;
+
+
+ try {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:529:2: (iv_rulepseudo= rulepseudo EOF )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:530:2: iv_rulepseudo= rulepseudo EOF
+ {
+ newCompositeNode(grammarAccess.getPseudoRule());
+ pushFollow(FOLLOW_rulepseudo_in_entryRulepseudo956);
+ iv_rulepseudo=rulepseudo();
+
+ state._fsp--;
+
+ current =iv_rulepseudo;
+ match(input,EOF,FOLLOW_EOF_in_entryRulepseudo966);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRulepseudo"
+
+
+ // $ANTLR start "rulepseudo"
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:537:1: rulepseudo returns [EObject current=null] : ( (otherlv_0= ':' ( (lv_name_1_0= RULE_IDENT ) ) ) | ( ( (lv_function_2_0= rulefunction ) ) ( (lv_name_3_0= RULE_IDENT ) )? ) ) ;
+ public final EObject rulepseudo() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ Token lv_name_1_0=null;
+ Token lv_name_3_0=null;
+ EObject lv_function_2_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:540:28: ( ( (otherlv_0= ':' ( (lv_name_1_0= RULE_IDENT ) ) ) | ( ( (lv_function_2_0= rulefunction ) ) ( (lv_name_3_0= RULE_IDENT ) )? ) ) )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:541:1: ( (otherlv_0= ':' ( (lv_name_1_0= RULE_IDENT ) ) ) | ( ( (lv_function_2_0= rulefunction ) ) ( (lv_name_3_0= RULE_IDENT ) )? ) )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:541:1: ( (otherlv_0= ':' ( (lv_name_1_0= RULE_IDENT ) ) ) | ( ( (lv_function_2_0= rulefunction ) ) ( (lv_name_3_0= RULE_IDENT ) )? ) )
+ int alt18=2;
+ int LA18_0 = input.LA(1);
+
+ if ( (LA18_0==18) ) {
+ alt18=1;
+ }
+ else if ( (LA18_0==RULE_IDENT) ) {
+ alt18=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 18, 0, input);
+
+ throw nvae;
+ }
+ switch (alt18) {
+ case 1 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:541:2: (otherlv_0= ':' ( (lv_name_1_0= RULE_IDENT ) ) )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:541:2: (otherlv_0= ':' ( (lv_name_1_0= RULE_IDENT ) ) )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:541:4: otherlv_0= ':' ( (lv_name_1_0= RULE_IDENT ) )
+ {
+ otherlv_0=(Token)match(input,18,FOLLOW_18_in_rulepseudo1004);
+
+ newLeafNode(otherlv_0, grammarAccess.getPseudoAccess().getColonKeyword_0_0());
+
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:545:1: ( (lv_name_1_0= RULE_IDENT ) )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:546:1: (lv_name_1_0= RULE_IDENT )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:546:1: (lv_name_1_0= RULE_IDENT )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:547:3: lv_name_1_0= RULE_IDENT
+ {
+ lv_name_1_0=(Token)match(input,RULE_IDENT,FOLLOW_RULE_IDENT_in_rulepseudo1021);
+
+ newLeafNode(lv_name_1_0, grammarAccess.getPseudoAccess().getNameIdentTerminalRuleCall_0_1_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getPseudoRule());
+ }
+ setWithLastConsumed(
+ current,
+ "name",
+ lv_name_1_0,
+ "ident");
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:564:6: ( ( (lv_function_2_0= rulefunction ) ) ( (lv_name_3_0= RULE_IDENT ) )? )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:564:6: ( ( (lv_function_2_0= rulefunction ) ) ( (lv_name_3_0= RULE_IDENT ) )? )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:564:7: ( (lv_function_2_0= rulefunction ) ) ( (lv_name_3_0= RULE_IDENT ) )?
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:564:7: ( (lv_function_2_0= rulefunction ) )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:565:1: (lv_function_2_0= rulefunction )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:565:1: (lv_function_2_0= rulefunction )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:566:3: lv_function_2_0= rulefunction
+ {
+
+ newCompositeNode(grammarAccess.getPseudoAccess().getFunctionFunctionParserRuleCall_1_0_0());
+
+ pushFollow(FOLLOW_rulefunction_in_rulepseudo1055);
+ lv_function_2_0=rulefunction();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getPseudoRule());
+ }
+ set(
+ current,
+ "function",
+ lv_function_2_0,
+ "function");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:582:2: ( (lv_name_3_0= RULE_IDENT ) )?
+ int alt17=2;
+ int LA17_0 = input.LA(1);
+
+ if ( (LA17_0==RULE_IDENT) ) {
+ int LA17_1 = input.LA(2);
+
+ if ( (LA17_1==EOF||(LA17_1>=RULE_WS && LA17_1<=RULE_IDENT)||(LA17_1>=13 && LA17_1<=14)||LA17_1==18||(LA17_1>=44 && LA17_1<=45)) ) {
+ alt17=1;
+ }
+ }
+ switch (alt17) {
+ case 1 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:583:1: (lv_name_3_0= RULE_IDENT )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:583:1: (lv_name_3_0= RULE_IDENT )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:584:3: lv_name_3_0= RULE_IDENT
+ {
+ lv_name_3_0=(Token)match(input,RULE_IDENT,FOLLOW_RULE_IDENT_in_rulepseudo1072);
+
+ newLeafNode(lv_name_3_0, grammarAccess.getPseudoAccess().getNameIdentTerminalRuleCall_1_1_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getPseudoRule());
+ }
+ setWithLastConsumed(
+ current,
+ "name",
+ lv_name_3_0,
+ "ident");
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "rulepseudo"
+
+
+ // $ANTLR start "entryRuleelement_name"
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:608:1: entryRuleelement_name returns [EObject current=null] : iv_ruleelement_name= ruleelement_name EOF ;
+ public final EObject entryRuleelement_name() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleelement_name = null;
+
+
+ try {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:609:2: (iv_ruleelement_name= ruleelement_name EOF )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:610:2: iv_ruleelement_name= ruleelement_name EOF
+ {
+ newCompositeNode(grammarAccess.getElement_nameRule());
+ pushFollow(FOLLOW_ruleelement_name_in_entryRuleelement_name1115);
+ iv_ruleelement_name=ruleelement_name();
+
+ state._fsp--;
+
+ current =iv_ruleelement_name;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleelement_name1125);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleelement_name"
+
+
+ // $ANTLR start "ruleelement_name"
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:617:1: ruleelement_name returns [EObject current=null] : ( ( (lv_name_0_0= RULE_IDENT ) ) | ( (lv_name_1_0= '*' ) ) ) ;
+ public final EObject ruleelement_name() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_name_0_0=null;
+ Token lv_name_1_0=null;
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:620:28: ( ( ( (lv_name_0_0= RULE_IDENT ) ) | ( (lv_name_1_0= '*' ) ) ) )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:621:1: ( ( (lv_name_0_0= RULE_IDENT ) ) | ( (lv_name_1_0= '*' ) ) )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:621:1: ( ( (lv_name_0_0= RULE_IDENT ) ) | ( (lv_name_1_0= '*' ) ) )
+ int alt19=2;
+ int LA19_0 = input.LA(1);
+
+ if ( (LA19_0==RULE_IDENT) ) {
+ alt19=1;
+ }
+ else if ( (LA19_0==19) ) {
+ alt19=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 19, 0, input);
+
+ throw nvae;
+ }
+ switch (alt19) {
+ case 1 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:621:2: ( (lv_name_0_0= RULE_IDENT ) )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:621:2: ( (lv_name_0_0= RULE_IDENT ) )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:622:1: (lv_name_0_0= RULE_IDENT )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:622:1: (lv_name_0_0= RULE_IDENT )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:623:3: lv_name_0_0= RULE_IDENT
+ {
+ lv_name_0_0=(Token)match(input,RULE_IDENT,FOLLOW_RULE_IDENT_in_ruleelement_name1167);
+
+ newLeafNode(lv_name_0_0, grammarAccess.getElement_nameAccess().getNameIdentTerminalRuleCall_0_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getElement_nameRule());
+ }
+ setWithLastConsumed(
+ current,
+ "name",
+ lv_name_0_0,
+ "ident");
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:640:6: ( (lv_name_1_0= '*' ) )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:640:6: ( (lv_name_1_0= '*' ) )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:641:1: (lv_name_1_0= '*' )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:641:1: (lv_name_1_0= '*' )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:642:3: lv_name_1_0= '*'
+ {
+ lv_name_1_0=(Token)match(input,19,FOLLOW_19_in_ruleelement_name1196);
+
+ newLeafNode(lv_name_1_0, grammarAccess.getElement_nameAccess().getNameAsteriskKeyword_1_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getElement_nameRule());
+ }
+ setWithLastConsumed(current, "name", lv_name_1_0, "*");
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleelement_name"
+
+
+ // $ANTLR start "entryRuledeclaration"
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:663:1: entryRuledeclaration returns [EObject current=null] : iv_ruledeclaration= ruledeclaration EOF ;
+ public final EObject entryRuledeclaration() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruledeclaration = null;
+
+
+ try {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:664:2: (iv_ruledeclaration= ruledeclaration EOF )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:665:2: iv_ruledeclaration= ruledeclaration EOF
+ {
+ newCompositeNode(grammarAccess.getDeclarationRule());
+ pushFollow(FOLLOW_ruledeclaration_in_entryRuledeclaration1245);
+ iv_ruledeclaration=ruledeclaration();
+
+ state._fsp--;
+
+ current =iv_ruledeclaration;
+ match(input,EOF,FOLLOW_EOF_in_entryRuledeclaration1255);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuledeclaration"
+
+
+ // $ANTLR start "ruledeclaration"
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:672:1: ruledeclaration returns [EObject current=null] : ( ( (lv_property_0_0= RULE_IDENT ) ) otherlv_1= ':' ( (lv_expr_2_0= ruleexpr ) ) ( (lv_priority_3_0= '!important' ) )? ) ;
+ public final EObject ruledeclaration() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_property_0_0=null;
+ Token otherlv_1=null;
+ Token lv_priority_3_0=null;
+ EObject lv_expr_2_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:675:28: ( ( ( (lv_property_0_0= RULE_IDENT ) ) otherlv_1= ':' ( (lv_expr_2_0= ruleexpr ) ) ( (lv_priority_3_0= '!important' ) )? ) )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:676:1: ( ( (lv_property_0_0= RULE_IDENT ) ) otherlv_1= ':' ( (lv_expr_2_0= ruleexpr ) ) ( (lv_priority_3_0= '!important' ) )? )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:676:1: ( ( (lv_property_0_0= RULE_IDENT ) ) otherlv_1= ':' ( (lv_expr_2_0= ruleexpr ) ) ( (lv_priority_3_0= '!important' ) )? )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:676:2: ( (lv_property_0_0= RULE_IDENT ) ) otherlv_1= ':' ( (lv_expr_2_0= ruleexpr ) ) ( (lv_priority_3_0= '!important' ) )?
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:676:2: ( (lv_property_0_0= RULE_IDENT ) )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:677:1: (lv_property_0_0= RULE_IDENT )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:677:1: (lv_property_0_0= RULE_IDENT )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:678:3: lv_property_0_0= RULE_IDENT
+ {
+ lv_property_0_0=(Token)match(input,RULE_IDENT,FOLLOW_RULE_IDENT_in_ruledeclaration1297);
+
+ newLeafNode(lv_property_0_0, grammarAccess.getDeclarationAccess().getPropertyIdentTerminalRuleCall_0_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getDeclarationRule());
+ }
+ setWithLastConsumed(
+ current,
+ "property",
+ lv_property_0_0,
+ "ident");
+
+
+ }
+
+
+ }
+
+ otherlv_1=(Token)match(input,18,FOLLOW_18_in_ruledeclaration1314);
+
+ newLeafNode(otherlv_1, grammarAccess.getDeclarationAccess().getColonKeyword_1());
+
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:698:1: ( (lv_expr_2_0= ruleexpr ) )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:699:1: (lv_expr_2_0= ruleexpr )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:699:1: (lv_expr_2_0= ruleexpr )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:700:3: lv_expr_2_0= ruleexpr
+ {
+
+ newCompositeNode(grammarAccess.getDeclarationAccess().getExprExprParserRuleCall_2_0());
+
+ pushFollow(FOLLOW_ruleexpr_in_ruledeclaration1335);
+ lv_expr_2_0=ruleexpr();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getDeclarationRule());
+ }
+ set(
+ current,
+ "expr",
+ lv_expr_2_0,
+ "expr");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:716:2: ( (lv_priority_3_0= '!important' ) )?
+ int alt20=2;
+ int LA20_0 = input.LA(1);
+
+ if ( (LA20_0==20) ) {
+ alt20=1;
+ }
+ switch (alt20) {
+ case 1 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:717:1: (lv_priority_3_0= '!important' )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:717:1: (lv_priority_3_0= '!important' )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:718:3: lv_priority_3_0= '!important'
+ {
+ lv_priority_3_0=(Token)match(input,20,FOLLOW_20_in_ruledeclaration1353);
+
+ newLeafNode(lv_priority_3_0, grammarAccess.getDeclarationAccess().getPriorityImportantKeyword_3_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getDeclarationRule());
+ }
+ setWithLastConsumed(current, "priority", lv_priority_3_0, "!important");
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruledeclaration"
+
+
+ // $ANTLR start "entryRuleexpr"
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:739:1: entryRuleexpr returns [EObject current=null] : iv_ruleexpr= ruleexpr EOF ;
+ public final EObject entryRuleexpr() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleexpr = null;
+
+
+ try {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:740:2: (iv_ruleexpr= ruleexpr EOF )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:741:2: iv_ruleexpr= ruleexpr EOF
+ {
+ newCompositeNode(grammarAccess.getExprRule());
+ pushFollow(FOLLOW_ruleexpr_in_entryRuleexpr1403);
+ iv_ruleexpr=ruleexpr();
+
+ state._fsp--;
+
+ current =iv_ruleexpr;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleexpr1413);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleexpr"
+
+
+ // $ANTLR start "ruleexpr"
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:748:1: ruleexpr returns [EObject current=null] : ( ( (lv_term_0_0= ruleterm ) ) ( ( ( (lv_operators_1_1= '/' | lv_operators_1_2= ',' ) ) )? ( (lv_term_2_0= ruleterm ) ) )* ) ;
+ public final EObject ruleexpr() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_operators_1_1=null;
+ Token lv_operators_1_2=null;
+ EObject lv_term_0_0 = null;
+
+ EObject lv_term_2_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:751:28: ( ( ( (lv_term_0_0= ruleterm ) ) ( ( ( (lv_operators_1_1= '/' | lv_operators_1_2= ',' ) ) )? ( (lv_term_2_0= ruleterm ) ) )* ) )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:752:1: ( ( (lv_term_0_0= ruleterm ) ) ( ( ( (lv_operators_1_1= '/' | lv_operators_1_2= ',' ) ) )? ( (lv_term_2_0= ruleterm ) ) )* )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:752:1: ( ( (lv_term_0_0= ruleterm ) ) ( ( ( (lv_operators_1_1= '/' | lv_operators_1_2= ',' ) ) )? ( (lv_term_2_0= ruleterm ) ) )* )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:752:2: ( (lv_term_0_0= ruleterm ) ) ( ( ( (lv_operators_1_1= '/' | lv_operators_1_2= ',' ) ) )? ( (lv_term_2_0= ruleterm ) ) )*
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:752:2: ( (lv_term_0_0= ruleterm ) )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:753:1: (lv_term_0_0= ruleterm )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:753:1: (lv_term_0_0= ruleterm )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:754:3: lv_term_0_0= ruleterm
+ {
+
+ newCompositeNode(grammarAccess.getExprAccess().getTermTermParserRuleCall_0_0());
+
+ pushFollow(FOLLOW_ruleterm_in_ruleexpr1459);
+ lv_term_0_0=ruleterm();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getExprRule());
+ }
+ add(
+ current,
+ "term",
+ lv_term_0_0,
+ "term");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:770:2: ( ( ( (lv_operators_1_1= '/' | lv_operators_1_2= ',' ) ) )? ( (lv_term_2_0= ruleterm ) ) )*
+ loop23:
+ do {
+ int alt23=2;
+ int LA23_0 = input.LA(1);
+
+ if ( (LA23_0==RULE_STRING||(LA23_0>=RULE_IDENT && LA23_0<=RULE_INT)||LA23_0==13||LA23_0==21||LA23_0==24||LA23_0==44||LA23_0==46) ) {
+ alt23=1;
+ }
+
+
+ switch (alt23) {
+ case 1 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:770:3: ( ( (lv_operators_1_1= '/' | lv_operators_1_2= ',' ) ) )? ( (lv_term_2_0= ruleterm ) )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:770:3: ( ( (lv_operators_1_1= '/' | lv_operators_1_2= ',' ) ) )?
+ int alt22=2;
+ int LA22_0 = input.LA(1);
+
+ if ( (LA22_0==13||LA22_0==21) ) {
+ alt22=1;
+ }
+ switch (alt22) {
+ case 1 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:771:1: ( (lv_operators_1_1= '/' | lv_operators_1_2= ',' ) )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:771:1: ( (lv_operators_1_1= '/' | lv_operators_1_2= ',' ) )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:772:1: (lv_operators_1_1= '/' | lv_operators_1_2= ',' )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:772:1: (lv_operators_1_1= '/' | lv_operators_1_2= ',' )
+ int alt21=2;
+ int LA21_0 = input.LA(1);
+
+ if ( (LA21_0==21) ) {
+ alt21=1;
+ }
+ else if ( (LA21_0==13) ) {
+ alt21=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 21, 0, input);
+
+ throw nvae;
+ }
+ switch (alt21) {
+ case 1 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:773:3: lv_operators_1_1= '/'
+ {
+ lv_operators_1_1=(Token)match(input,21,FOLLOW_21_in_ruleexpr1480);
+
+ newLeafNode(lv_operators_1_1, grammarAccess.getExprAccess().getOperatorsSolidusKeyword_1_0_0_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getExprRule());
+ }
+ addWithLastConsumed(current, "operators", lv_operators_1_1, null);
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:785:8: lv_operators_1_2= ','
+ {
+ lv_operators_1_2=(Token)match(input,13,FOLLOW_13_in_ruleexpr1509);
+
+ newLeafNode(lv_operators_1_2, grammarAccess.getExprAccess().getOperatorsCommaKeyword_1_0_0_1());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getExprRule());
+ }
+ addWithLastConsumed(current, "operators", lv_operators_1_2, null);
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:800:3: ( (lv_term_2_0= ruleterm ) )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:801:1: (lv_term_2_0= ruleterm )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:801:1: (lv_term_2_0= ruleterm )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:802:3: lv_term_2_0= ruleterm
+ {
+
+ newCompositeNode(grammarAccess.getExprAccess().getTermTermParserRuleCall_1_1_0());
+
+ pushFollow(FOLLOW_ruleterm_in_ruleexpr1547);
+ lv_term_2_0=ruleterm();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getExprRule());
+ }
+ add(
+ current,
+ "term",
+ lv_term_2_0,
+ "term");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop23;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleexpr"
+
+
+ // $ANTLR start "entryRuleterm"
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:826:1: entryRuleterm returns [EObject current=null] : iv_ruleterm= ruleterm EOF ;
+ public final EObject entryRuleterm() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleterm = null;
+
+
+ try {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:827:2: (iv_ruleterm= ruleterm EOF )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:828:2: iv_ruleterm= ruleterm EOF
+ {
+ newCompositeNode(grammarAccess.getTermRule());
+ pushFollow(FOLLOW_ruleterm_in_entryRuleterm1585);
+ iv_ruleterm=ruleterm();
+
+ state._fsp--;
+
+ current =iv_ruleterm;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleterm1595);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleterm"
+
+
+ // $ANTLR start "ruleterm"
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:835:1: ruleterm returns [EObject current=null] : ( ( ( (lv_unary_0_0= ruleunary_operator ) )? ( (lv_number_1_0= ruleunary_numbers ) ) ) | ( (lv_name_2_0= RULE_STRING ) ) | ( (lv_id_3_0= RULE_IDENT ) ) | ( (lv_uri_4_0= ruleURI ) ) | ( (lv_color_5_0= RULE_HEXDIGITS ) ) | ( (lv_function_6_0= rulefunction ) ) ) ;
+ public final EObject ruleterm() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_name_2_0=null;
+ Token lv_id_3_0=null;
+ Token lv_color_5_0=null;
+ AntlrDatatypeRuleToken lv_unary_0_0 = null;
+
+ AntlrDatatypeRuleToken lv_number_1_0 = null;
+
+ EObject lv_uri_4_0 = null;
+
+ EObject lv_function_6_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:838:28: ( ( ( ( (lv_unary_0_0= ruleunary_operator ) )? ( (lv_number_1_0= ruleunary_numbers ) ) ) | ( (lv_name_2_0= RULE_STRING ) ) | ( (lv_id_3_0= RULE_IDENT ) ) | ( (lv_uri_4_0= ruleURI ) ) | ( (lv_color_5_0= RULE_HEXDIGITS ) ) | ( (lv_function_6_0= rulefunction ) ) ) )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:839:1: ( ( ( (lv_unary_0_0= ruleunary_operator ) )? ( (lv_number_1_0= ruleunary_numbers ) ) ) | ( (lv_name_2_0= RULE_STRING ) ) | ( (lv_id_3_0= RULE_IDENT ) ) | ( (lv_uri_4_0= ruleURI ) ) | ( (lv_color_5_0= RULE_HEXDIGITS ) ) | ( (lv_function_6_0= rulefunction ) ) )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:839:1: ( ( ( (lv_unary_0_0= ruleunary_operator ) )? ( (lv_number_1_0= ruleunary_numbers ) ) ) | ( (lv_name_2_0= RULE_STRING ) ) | ( (lv_id_3_0= RULE_IDENT ) ) | ( (lv_uri_4_0= ruleURI ) ) | ( (lv_color_5_0= RULE_HEXDIGITS ) ) | ( (lv_function_6_0= rulefunction ) ) )
+ int alt25=6;
+ switch ( input.LA(1) ) {
+ case RULE_INT:
+ case 44:
+ case 46:
+ {
+ alt25=1;
+ }
+ break;
+ case RULE_STRING:
+ {
+ alt25=2;
+ }
+ break;
+ case RULE_IDENT:
+ {
+ int LA25_3 = input.LA(2);
+
+ if ( (LA25_3==22) ) {
+ alt25=6;
+ }
+ else if ( (LA25_3==EOF||LA25_3==RULE_STRING||(LA25_3>=RULE_IDENT && LA25_3<=RULE_INT)||LA25_3==13||(LA25_3>=15 && LA25_3<=16)||(LA25_3>=20 && LA25_3<=21)||(LA25_3>=23 && LA25_3<=24)||LA25_3==44||LA25_3==46) ) {
+ alt25=3;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 25, 3, input);
+
+ throw nvae;
+ }
+ }
+ break;
+ case 24:
+ {
+ alt25=4;
+ }
+ break;
+ case RULE_HEXDIGITS:
+ {
+ alt25=5;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 25, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt25) {
+ case 1 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:839:2: ( ( (lv_unary_0_0= ruleunary_operator ) )? ( (lv_number_1_0= ruleunary_numbers ) ) )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:839:2: ( ( (lv_unary_0_0= ruleunary_operator ) )? ( (lv_number_1_0= ruleunary_numbers ) ) )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:839:3: ( (lv_unary_0_0= ruleunary_operator ) )? ( (lv_number_1_0= ruleunary_numbers ) )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:839:3: ( (lv_unary_0_0= ruleunary_operator ) )?
+ int alt24=2;
+ int LA24_0 = input.LA(1);
+
+ if ( (LA24_0==44||LA24_0==46) ) {
+ alt24=1;
+ }
+ switch (alt24) {
+ case 1 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:840:1: (lv_unary_0_0= ruleunary_operator )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:840:1: (lv_unary_0_0= ruleunary_operator )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:841:3: lv_unary_0_0= ruleunary_operator
+ {
+
+ newCompositeNode(grammarAccess.getTermAccess().getUnaryUnary_operatorParserRuleCall_0_0_0());
+
+ pushFollow(FOLLOW_ruleunary_operator_in_ruleterm1642);
+ lv_unary_0_0=ruleunary_operator();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getTermRule());
+ }
+ set(
+ current,
+ "unary",
+ lv_unary_0_0,
+ "unary_operator");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:857:3: ( (lv_number_1_0= ruleunary_numbers ) )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:858:1: (lv_number_1_0= ruleunary_numbers )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:858:1: (lv_number_1_0= ruleunary_numbers )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:859:3: lv_number_1_0= ruleunary_numbers
+ {
+
+ newCompositeNode(grammarAccess.getTermAccess().getNumberUnary_numbersParserRuleCall_0_1_0());
+
+ pushFollow(FOLLOW_ruleunary_numbers_in_ruleterm1664);
+ lv_number_1_0=ruleunary_numbers();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getTermRule());
+ }
+ set(
+ current,
+ "number",
+ lv_number_1_0,
+ "unary_numbers");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:876:6: ( (lv_name_2_0= RULE_STRING ) )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:876:6: ( (lv_name_2_0= RULE_STRING ) )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:877:1: (lv_name_2_0= RULE_STRING )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:877:1: (lv_name_2_0= RULE_STRING )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:878:3: lv_name_2_0= RULE_STRING
+ {
+ lv_name_2_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleterm1688);
+
+ newLeafNode(lv_name_2_0, grammarAccess.getTermAccess().getNameSTRINGTerminalRuleCall_1_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getTermRule());
+ }
+ setWithLastConsumed(
+ current,
+ "name",
+ lv_name_2_0,
+ "STRING");
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:895:6: ( (lv_id_3_0= RULE_IDENT ) )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:895:6: ( (lv_id_3_0= RULE_IDENT ) )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:896:1: (lv_id_3_0= RULE_IDENT )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:896:1: (lv_id_3_0= RULE_IDENT )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:897:3: lv_id_3_0= RULE_IDENT
+ {
+ lv_id_3_0=(Token)match(input,RULE_IDENT,FOLLOW_RULE_IDENT_in_ruleterm1716);
+
+ newLeafNode(lv_id_3_0, grammarAccess.getTermAccess().getIdIdentTerminalRuleCall_2_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getTermRule());
+ }
+ setWithLastConsumed(
+ current,
+ "id",
+ lv_id_3_0,
+ "ident");
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:914:6: ( (lv_uri_4_0= ruleURI ) )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:914:6: ( (lv_uri_4_0= ruleURI ) )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:915:1: (lv_uri_4_0= ruleURI )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:915:1: (lv_uri_4_0= ruleURI )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:916:3: lv_uri_4_0= ruleURI
+ {
+
+ newCompositeNode(grammarAccess.getTermAccess().getUriURIParserRuleCall_3_0());
+
+ pushFollow(FOLLOW_ruleURI_in_ruleterm1748);
+ lv_uri_4_0=ruleURI();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getTermRule());
+ }
+ set(
+ current,
+ "uri",
+ lv_uri_4_0,
+ "URI");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 5 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:933:6: ( (lv_color_5_0= RULE_HEXDIGITS ) )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:933:6: ( (lv_color_5_0= RULE_HEXDIGITS ) )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:934:1: (lv_color_5_0= RULE_HEXDIGITS )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:934:1: (lv_color_5_0= RULE_HEXDIGITS )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:935:3: lv_color_5_0= RULE_HEXDIGITS
+ {
+ lv_color_5_0=(Token)match(input,RULE_HEXDIGITS,FOLLOW_RULE_HEXDIGITS_in_ruleterm1771);
+
+ newLeafNode(lv_color_5_0, grammarAccess.getTermAccess().getColorHexdigitsTerminalRuleCall_4_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getTermRule());
+ }
+ setWithLastConsumed(
+ current,
+ "color",
+ lv_color_5_0,
+ "hexdigits");
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 6 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:952:6: ( (lv_function_6_0= rulefunction ) )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:952:6: ( (lv_function_6_0= rulefunction ) )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:953:1: (lv_function_6_0= rulefunction )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:953:1: (lv_function_6_0= rulefunction )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:954:3: lv_function_6_0= rulefunction
+ {
+
+ newCompositeNode(grammarAccess.getTermAccess().getFunctionFunctionParserRuleCall_5_0());
+
+ pushFollow(FOLLOW_rulefunction_in_ruleterm1803);
+ lv_function_6_0=rulefunction();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getTermRule());
+ }
+ set(
+ current,
+ "function",
+ lv_function_6_0,
+ "function");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleterm"
+
+
+ // $ANTLR start "entryRulefunction"
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:978:1: entryRulefunction returns [EObject current=null] : iv_rulefunction= rulefunction EOF ;
+ public final EObject entryRulefunction() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_rulefunction = null;
+
+
+ try {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:979:2: (iv_rulefunction= rulefunction EOF )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:980:2: iv_rulefunction= rulefunction EOF
+ {
+ newCompositeNode(grammarAccess.getFunctionRule());
+ pushFollow(FOLLOW_rulefunction_in_entryRulefunction1839);
+ iv_rulefunction=rulefunction();
+
+ state._fsp--;
+
+ current =iv_rulefunction;
+ match(input,EOF,FOLLOW_EOF_in_entryRulefunction1849);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRulefunction"
+
+
+ // $ANTLR start "rulefunction"
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:987:1: rulefunction returns [EObject current=null] : ( ( (lv_name_0_0= RULE_IDENT ) ) otherlv_1= '(' ( (lv_expr_2_0= ruleexpr ) ) otherlv_3= ')' ) ;
+ public final EObject rulefunction() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_name_0_0=null;
+ Token otherlv_1=null;
+ Token otherlv_3=null;
+ EObject lv_expr_2_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:990:28: ( ( ( (lv_name_0_0= RULE_IDENT ) ) otherlv_1= '(' ( (lv_expr_2_0= ruleexpr ) ) otherlv_3= ')' ) )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:991:1: ( ( (lv_name_0_0= RULE_IDENT ) ) otherlv_1= '(' ( (lv_expr_2_0= ruleexpr ) ) otherlv_3= ')' )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:991:1: ( ( (lv_name_0_0= RULE_IDENT ) ) otherlv_1= '(' ( (lv_expr_2_0= ruleexpr ) ) otherlv_3= ')' )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:991:2: ( (lv_name_0_0= RULE_IDENT ) ) otherlv_1= '(' ( (lv_expr_2_0= ruleexpr ) ) otherlv_3= ')'
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:991:2: ( (lv_name_0_0= RULE_IDENT ) )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:992:1: (lv_name_0_0= RULE_IDENT )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:992:1: (lv_name_0_0= RULE_IDENT )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:993:3: lv_name_0_0= RULE_IDENT
+ {
+ lv_name_0_0=(Token)match(input,RULE_IDENT,FOLLOW_RULE_IDENT_in_rulefunction1891);
+
+ newLeafNode(lv_name_0_0, grammarAccess.getFunctionAccess().getNameIdentTerminalRuleCall_0_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getFunctionRule());
+ }
+ setWithLastConsumed(
+ current,
+ "name",
+ lv_name_0_0,
+ "ident");
+
+
+ }
+
+
+ }
+
+ otherlv_1=(Token)match(input,22,FOLLOW_22_in_rulefunction1908);
+
+ newLeafNode(otherlv_1, grammarAccess.getFunctionAccess().getLeftParenthesisKeyword_1());
+
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1013:1: ( (lv_expr_2_0= ruleexpr ) )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1014:1: (lv_expr_2_0= ruleexpr )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1014:1: (lv_expr_2_0= ruleexpr )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1015:3: lv_expr_2_0= ruleexpr
+ {
+
+ newCompositeNode(grammarAccess.getFunctionAccess().getExprExprParserRuleCall_2_0());
+
+ pushFollow(FOLLOW_ruleexpr_in_rulefunction1929);
+ lv_expr_2_0=ruleexpr();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getFunctionRule());
+ }
+ set(
+ current,
+ "expr",
+ lv_expr_2_0,
+ "expr");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+
+ otherlv_3=(Token)match(input,23,FOLLOW_23_in_rulefunction1941);
+
+ newLeafNode(otherlv_3, grammarAccess.getFunctionAccess().getRightParenthesisKeyword_3());
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "rulefunction"
+
+
+ // $ANTLR start "entryRuleURI"
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1043:1: entryRuleURI returns [EObject current=null] : iv_ruleURI= ruleURI EOF ;
+ public final EObject entryRuleURI() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleURI = null;
+
+
+ try {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1044:2: (iv_ruleURI= ruleURI EOF )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1045:2: iv_ruleURI= ruleURI EOF
+ {
+ newCompositeNode(grammarAccess.getURIRule());
+ pushFollow(FOLLOW_ruleURI_in_entryRuleURI1977);
+ iv_ruleURI=ruleURI();
+
+ state._fsp--;
+
+ current =iv_ruleURI;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleURI1987);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleURI"
+
+
+ // $ANTLR start "ruleURI"
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1052:1: ruleURI returns [EObject current=null] : (otherlv_0= 'url' otherlv_1= '(' () ( ( (lv_name_3_0= RULE_STRING ) ) | ( (otherlv_4= '\\\\' | otherlv_5= '/' ) ( (lv_id_6_0= RULE_IDENT ) ) ) )* (otherlv_7= '.' ( (lv_id_8_0= RULE_IDENT ) ) )? otherlv_9= ')' ) ;
+ public final EObject ruleURI() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ Token otherlv_1=null;
+ Token lv_name_3_0=null;
+ Token otherlv_4=null;
+ Token otherlv_5=null;
+ Token lv_id_6_0=null;
+ Token otherlv_7=null;
+ Token lv_id_8_0=null;
+ Token otherlv_9=null;
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1055:28: ( (otherlv_0= 'url' otherlv_1= '(' () ( ( (lv_name_3_0= RULE_STRING ) ) | ( (otherlv_4= '\\\\' | otherlv_5= '/' ) ( (lv_id_6_0= RULE_IDENT ) ) ) )* (otherlv_7= '.' ( (lv_id_8_0= RULE_IDENT ) ) )? otherlv_9= ')' ) )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1056:1: (otherlv_0= 'url' otherlv_1= '(' () ( ( (lv_name_3_0= RULE_STRING ) ) | ( (otherlv_4= '\\\\' | otherlv_5= '/' ) ( (lv_id_6_0= RULE_IDENT ) ) ) )* (otherlv_7= '.' ( (lv_id_8_0= RULE_IDENT ) ) )? otherlv_9= ')' )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1056:1: (otherlv_0= 'url' otherlv_1= '(' () ( ( (lv_name_3_0= RULE_STRING ) ) | ( (otherlv_4= '\\\\' | otherlv_5= '/' ) ( (lv_id_6_0= RULE_IDENT ) ) ) )* (otherlv_7= '.' ( (lv_id_8_0= RULE_IDENT ) ) )? otherlv_9= ')' )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1056:3: otherlv_0= 'url' otherlv_1= '(' () ( ( (lv_name_3_0= RULE_STRING ) ) | ( (otherlv_4= '\\\\' | otherlv_5= '/' ) ( (lv_id_6_0= RULE_IDENT ) ) ) )* (otherlv_7= '.' ( (lv_id_8_0= RULE_IDENT ) ) )? otherlv_9= ')'
+ {
+ otherlv_0=(Token)match(input,24,FOLLOW_24_in_ruleURI2024);
+
+ newLeafNode(otherlv_0, grammarAccess.getURIAccess().getUrlKeyword_0());
+
+ otherlv_1=(Token)match(input,22,FOLLOW_22_in_ruleURI2036);
+
+ newLeafNode(otherlv_1, grammarAccess.getURIAccess().getLeftParenthesisKeyword_1());
+
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1064:1: ()
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1065:5:
+ {
+
+ current = forceCreateModelElement(
+ grammarAccess.getURIAccess().getURIAction_2(),
+ current);
+
+
+ }
+
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1070:2: ( ( (lv_name_3_0= RULE_STRING ) ) | ( (otherlv_4= '\\\\' | otherlv_5= '/' ) ( (lv_id_6_0= RULE_IDENT ) ) ) )*
+ loop27:
+ do {
+ int alt27=3;
+ int LA27_0 = input.LA(1);
+
+ if ( (LA27_0==RULE_STRING) ) {
+ alt27=1;
+ }
+ else if ( (LA27_0==21||LA27_0==25) ) {
+ alt27=2;
+ }
+
+
+ switch (alt27) {
+ case 1 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1070:3: ( (lv_name_3_0= RULE_STRING ) )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1070:3: ( (lv_name_3_0= RULE_STRING ) )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1071:1: (lv_name_3_0= RULE_STRING )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1071:1: (lv_name_3_0= RULE_STRING )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1072:3: lv_name_3_0= RULE_STRING
+ {
+ lv_name_3_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleURI2063);
+
+ newLeafNode(lv_name_3_0, grammarAccess.getURIAccess().getNameSTRINGTerminalRuleCall_3_0_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getURIRule());
+ }
+ addWithLastConsumed(
+ current,
+ "name",
+ lv_name_3_0,
+ "STRING");
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1089:6: ( (otherlv_4= '\\\\' | otherlv_5= '/' ) ( (lv_id_6_0= RULE_IDENT ) ) )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1089:6: ( (otherlv_4= '\\\\' | otherlv_5= '/' ) ( (lv_id_6_0= RULE_IDENT ) ) )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1089:7: (otherlv_4= '\\\\' | otherlv_5= '/' ) ( (lv_id_6_0= RULE_IDENT ) )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1089:7: (otherlv_4= '\\\\' | otherlv_5= '/' )
+ int alt26=2;
+ int LA26_0 = input.LA(1);
+
+ if ( (LA26_0==25) ) {
+ alt26=1;
+ }
+ else if ( (LA26_0==21) ) {
+ alt26=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 26, 0, input);
+
+ throw nvae;
+ }
+ switch (alt26) {
+ case 1 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1089:9: otherlv_4= '\\\\'
+ {
+ otherlv_4=(Token)match(input,25,FOLLOW_25_in_ruleURI2088);
+
+ newLeafNode(otherlv_4, grammarAccess.getURIAccess().getReverseSolidusKeyword_3_1_0_0());
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1094:7: otherlv_5= '/'
+ {
+ otherlv_5=(Token)match(input,21,FOLLOW_21_in_ruleURI2106);
+
+ newLeafNode(otherlv_5, grammarAccess.getURIAccess().getSolidusKeyword_3_1_0_1());
+
+
+ }
+ break;
+
+ }
+
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1098:2: ( (lv_id_6_0= RULE_IDENT ) )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1099:1: (lv_id_6_0= RULE_IDENT )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1099:1: (lv_id_6_0= RULE_IDENT )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1100:3: lv_id_6_0= RULE_IDENT
+ {
+ lv_id_6_0=(Token)match(input,RULE_IDENT,FOLLOW_RULE_IDENT_in_ruleURI2124);
+
+ newLeafNode(lv_id_6_0, grammarAccess.getURIAccess().getIdIdentTerminalRuleCall_3_1_1_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getURIRule());
+ }
+ addWithLastConsumed(
+ current,
+ "id",
+ lv_id_6_0,
+ "ident");
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop27;
+ }
+ } while (true);
+
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1116:5: (otherlv_7= '.' ( (lv_id_8_0= RULE_IDENT ) ) )?
+ int alt28=2;
+ int LA28_0 = input.LA(1);
+
+ if ( (LA28_0==26) ) {
+ alt28=1;
+ }
+ switch (alt28) {
+ case 1 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1116:7: otherlv_7= '.' ( (lv_id_8_0= RULE_IDENT ) )
+ {
+ otherlv_7=(Token)match(input,26,FOLLOW_26_in_ruleURI2145);
+
+ newLeafNode(otherlv_7, grammarAccess.getURIAccess().getFullStopKeyword_4_0());
+
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1120:1: ( (lv_id_8_0= RULE_IDENT ) )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1121:1: (lv_id_8_0= RULE_IDENT )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1121:1: (lv_id_8_0= RULE_IDENT )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1122:3: lv_id_8_0= RULE_IDENT
+ {
+ lv_id_8_0=(Token)match(input,RULE_IDENT,FOLLOW_RULE_IDENT_in_ruleURI2162);
+
+ newLeafNode(lv_id_8_0, grammarAccess.getURIAccess().getIdIdentTerminalRuleCall_4_1_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getURIRule());
+ }
+ addWithLastConsumed(
+ current,
+ "id",
+ lv_id_8_0,
+ "ident");
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ otherlv_9=(Token)match(input,23,FOLLOW_23_in_ruleURI2181);
+
+ newLeafNode(otherlv_9, grammarAccess.getURIAccess().getRightParenthesisKeyword_5());
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleURI"
+
+
+ // $ANTLR start "entryRuleunary_numbers"
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1150:1: entryRuleunary_numbers returns [String current=null] : iv_ruleunary_numbers= ruleunary_numbers EOF ;
+ public final String entryRuleunary_numbers() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleunary_numbers = null;
+
+
+ try {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1151:2: (iv_ruleunary_numbers= ruleunary_numbers EOF )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1152:2: iv_ruleunary_numbers= ruleunary_numbers EOF
+ {
+ newCompositeNode(grammarAccess.getUnary_numbersRule());
+ pushFollow(FOLLOW_ruleunary_numbers_in_entryRuleunary_numbers2218);
+ iv_ruleunary_numbers=ruleunary_numbers();
+
+ state._fsp--;
+
+ current =iv_ruleunary_numbers.getText();
+ match(input,EOF,FOLLOW_EOF_in_entryRuleunary_numbers2229);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleunary_numbers"
+
+
+ // $ANTLR start "ruleunary_numbers"
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1159:1: ruleunary_numbers returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_INT_0= RULE_INT | this_PERCENTAGE_1= rulePERCENTAGE | this_LENGTH_2= ruleLENGTH | this_EMS_3= ruleEMS | this_EXS_4= ruleEXS | this_ANGLE_5= ruleANGLE | this_TIME_6= ruleTIME | this_FREQ_7= ruleFREQ ) ;
+ public final AntlrDatatypeRuleToken ruleunary_numbers() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token this_INT_0=null;
+ AntlrDatatypeRuleToken this_PERCENTAGE_1 = null;
+
+ AntlrDatatypeRuleToken this_LENGTH_2 = null;
+
+ AntlrDatatypeRuleToken this_EMS_3 = null;
+
+ AntlrDatatypeRuleToken this_EXS_4 = null;
+
+ AntlrDatatypeRuleToken this_ANGLE_5 = null;
+
+ AntlrDatatypeRuleToken this_TIME_6 = null;
+
+ AntlrDatatypeRuleToken this_FREQ_7 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1162:28: ( (this_INT_0= RULE_INT | this_PERCENTAGE_1= rulePERCENTAGE | this_LENGTH_2= ruleLENGTH | this_EMS_3= ruleEMS | this_EXS_4= ruleEXS | this_ANGLE_5= ruleANGLE | this_TIME_6= ruleTIME | this_FREQ_7= ruleFREQ ) )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1163:1: (this_INT_0= RULE_INT | this_PERCENTAGE_1= rulePERCENTAGE | this_LENGTH_2= ruleLENGTH | this_EMS_3= ruleEMS | this_EXS_4= ruleEXS | this_ANGLE_5= ruleANGLE | this_TIME_6= ruleTIME | this_FREQ_7= ruleFREQ )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1163:1: (this_INT_0= RULE_INT | this_PERCENTAGE_1= rulePERCENTAGE | this_LENGTH_2= ruleLENGTH | this_EMS_3= ruleEMS | this_EXS_4= ruleEXS | this_ANGLE_5= ruleANGLE | this_TIME_6= ruleTIME | this_FREQ_7= ruleFREQ )
+ int alt29=8;
+ alt29 = dfa29.predict(input);
+ switch (alt29) {
+ case 1 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1163:6: this_INT_0= RULE_INT
+ {
+ this_INT_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleunary_numbers2269);
+
+ current.merge(this_INT_0);
+
+
+ newLeafNode(this_INT_0, grammarAccess.getUnary_numbersAccess().getINTTerminalRuleCall_0());
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1172:5: this_PERCENTAGE_1= rulePERCENTAGE
+ {
+
+ newCompositeNode(grammarAccess.getUnary_numbersAccess().getPERCENTAGEParserRuleCall_1());
+
+ pushFollow(FOLLOW_rulePERCENTAGE_in_ruleunary_numbers2302);
+ this_PERCENTAGE_1=rulePERCENTAGE();
+
+ state._fsp--;
+
+
+ current.merge(this_PERCENTAGE_1);
+
+
+ afterParserOrEnumRuleCall();
+
+
+ }
+ break;
+ case 3 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1184:5: this_LENGTH_2= ruleLENGTH
+ {
+
+ newCompositeNode(grammarAccess.getUnary_numbersAccess().getLENGTHParserRuleCall_2());
+
+ pushFollow(FOLLOW_ruleLENGTH_in_ruleunary_numbers2335);
+ this_LENGTH_2=ruleLENGTH();
+
+ state._fsp--;
+
+
+ current.merge(this_LENGTH_2);
+
+
+ afterParserOrEnumRuleCall();
+
+
+ }
+ break;
+ case 4 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1196:5: this_EMS_3= ruleEMS
+ {
+
+ newCompositeNode(grammarAccess.getUnary_numbersAccess().getEMSParserRuleCall_3());
+
+ pushFollow(FOLLOW_ruleEMS_in_ruleunary_numbers2368);
+ this_EMS_3=ruleEMS();
+
+ state._fsp--;
+
+
+ current.merge(this_EMS_3);
+
+
+ afterParserOrEnumRuleCall();
+
+
+ }
+ break;
+ case 5 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1208:5: this_EXS_4= ruleEXS
+ {
+
+ newCompositeNode(grammarAccess.getUnary_numbersAccess().getEXSParserRuleCall_4());
+
+ pushFollow(FOLLOW_ruleEXS_in_ruleunary_numbers2401);
+ this_EXS_4=ruleEXS();
+
+ state._fsp--;
+
+
+ current.merge(this_EXS_4);
+
+
+ afterParserOrEnumRuleCall();
+
+
+ }
+ break;
+ case 6 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1220:5: this_ANGLE_5= ruleANGLE
+ {
+
+ newCompositeNode(grammarAccess.getUnary_numbersAccess().getANGLEParserRuleCall_5());
+
+ pushFollow(FOLLOW_ruleANGLE_in_ruleunary_numbers2434);
+ this_ANGLE_5=ruleANGLE();
+
+ state._fsp--;
+
+
+ current.merge(this_ANGLE_5);
+
+
+ afterParserOrEnumRuleCall();
+
+
+ }
+ break;
+ case 7 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1232:5: this_TIME_6= ruleTIME
+ {
+
+ newCompositeNode(grammarAccess.getUnary_numbersAccess().getTIMEParserRuleCall_6());
+
+ pushFollow(FOLLOW_ruleTIME_in_ruleunary_numbers2467);
+ this_TIME_6=ruleTIME();
+
+ state._fsp--;
+
+
+ current.merge(this_TIME_6);
+
+
+ afterParserOrEnumRuleCall();
+
+
+ }
+ break;
+ case 8 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1244:5: this_FREQ_7= ruleFREQ
+ {
+
+ newCompositeNode(grammarAccess.getUnary_numbersAccess().getFREQParserRuleCall_7());
+
+ pushFollow(FOLLOW_ruleFREQ_in_ruleunary_numbers2500);
+ this_FREQ_7=ruleFREQ();
+
+ state._fsp--;
+
+
+ current.merge(this_FREQ_7);
+
+
+ afterParserOrEnumRuleCall();
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleunary_numbers"
+
+
+ // $ANTLR start "entryRulePERCENTAGE"
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1262:1: entryRulePERCENTAGE returns [String current=null] : iv_rulePERCENTAGE= rulePERCENTAGE EOF ;
+ public final String entryRulePERCENTAGE() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_rulePERCENTAGE = null;
+
+
+ try {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1263:2: (iv_rulePERCENTAGE= rulePERCENTAGE EOF )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1264:2: iv_rulePERCENTAGE= rulePERCENTAGE EOF
+ {
+ newCompositeNode(grammarAccess.getPERCENTAGERule());
+ pushFollow(FOLLOW_rulePERCENTAGE_in_entryRulePERCENTAGE2546);
+ iv_rulePERCENTAGE=rulePERCENTAGE();
+
+ state._fsp--;
+
+ current =iv_rulePERCENTAGE.getText();
+ match(input,EOF,FOLLOW_EOF_in_entryRulePERCENTAGE2557);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRulePERCENTAGE"
+
+
+ // $ANTLR start "rulePERCENTAGE"
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1271:1: rulePERCENTAGE returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_INT_0= RULE_INT kw= '%' ) ;
+ public final AntlrDatatypeRuleToken rulePERCENTAGE() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token this_INT_0=null;
+ Token kw=null;
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1274:28: ( (this_INT_0= RULE_INT kw= '%' ) )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1275:1: (this_INT_0= RULE_INT kw= '%' )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1275:1: (this_INT_0= RULE_INT kw= '%' )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1275:6: this_INT_0= RULE_INT kw= '%'
+ {
+ this_INT_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_rulePERCENTAGE2597);
+
+ current.merge(this_INT_0);
+
+
+ newLeafNode(this_INT_0, grammarAccess.getPERCENTAGEAccess().getINTTerminalRuleCall_0());
+
+ kw=(Token)match(input,27,FOLLOW_27_in_rulePERCENTAGE2615);
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getPERCENTAGEAccess().getPercentSignKeyword_1());
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "rulePERCENTAGE"
+
+
+ // $ANTLR start "entryRuleEMS"
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1296:1: entryRuleEMS returns [String current=null] : iv_ruleEMS= ruleEMS EOF ;
+ public final String entryRuleEMS() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleEMS = null;
+
+
+ try {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1297:2: (iv_ruleEMS= ruleEMS EOF )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1298:2: iv_ruleEMS= ruleEMS EOF
+ {
+ newCompositeNode(grammarAccess.getEMSRule());
+ pushFollow(FOLLOW_ruleEMS_in_entryRuleEMS2656);
+ iv_ruleEMS=ruleEMS();
+
+ state._fsp--;
+
+ current =iv_ruleEMS.getText();
+ match(input,EOF,FOLLOW_EOF_in_entryRuleEMS2667);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleEMS"
+
+
+ // $ANTLR start "ruleEMS"
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1305:1: ruleEMS returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_INT_0= RULE_INT kw= 'em' ) ;
+ public final AntlrDatatypeRuleToken ruleEMS() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token this_INT_0=null;
+ Token kw=null;
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1308:28: ( (this_INT_0= RULE_INT kw= 'em' ) )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1309:1: (this_INT_0= RULE_INT kw= 'em' )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1309:1: (this_INT_0= RULE_INT kw= 'em' )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1309:6: this_INT_0= RULE_INT kw= 'em'
+ {
+ this_INT_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleEMS2707);
+
+ current.merge(this_INT_0);
+
+
+ newLeafNode(this_INT_0, grammarAccess.getEMSAccess().getINTTerminalRuleCall_0());
+
+ kw=(Token)match(input,28,FOLLOW_28_in_ruleEMS2725);
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getEMSAccess().getEmKeyword_1());
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleEMS"
+
+
+ // $ANTLR start "entryRuleEXS"
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1330:1: entryRuleEXS returns [String current=null] : iv_ruleEXS= ruleEXS EOF ;
+ public final String entryRuleEXS() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleEXS = null;
+
+
+ try {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1331:2: (iv_ruleEXS= ruleEXS EOF )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1332:2: iv_ruleEXS= ruleEXS EOF
+ {
+ newCompositeNode(grammarAccess.getEXSRule());
+ pushFollow(FOLLOW_ruleEXS_in_entryRuleEXS2766);
+ iv_ruleEXS=ruleEXS();
+
+ state._fsp--;
+
+ current =iv_ruleEXS.getText();
+ match(input,EOF,FOLLOW_EOF_in_entryRuleEXS2777);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleEXS"
+
+
+ // $ANTLR start "ruleEXS"
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1339:1: ruleEXS returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_INT_0= RULE_INT kw= 'ex' ) ;
+ public final AntlrDatatypeRuleToken ruleEXS() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token this_INT_0=null;
+ Token kw=null;
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1342:28: ( (this_INT_0= RULE_INT kw= 'ex' ) )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1343:1: (this_INT_0= RULE_INT kw= 'ex' )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1343:1: (this_INT_0= RULE_INT kw= 'ex' )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1343:6: this_INT_0= RULE_INT kw= 'ex'
+ {
+ this_INT_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleEXS2817);
+
+ current.merge(this_INT_0);
+
+
+ newLeafNode(this_INT_0, grammarAccess.getEXSAccess().getINTTerminalRuleCall_0());
+
+ kw=(Token)match(input,29,FOLLOW_29_in_ruleEXS2835);
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getEXSAccess().getExKeyword_1());
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleEXS"
+
+
+ // $ANTLR start "entryRuleLENGTH"
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1364:1: entryRuleLENGTH returns [String current=null] : iv_ruleLENGTH= ruleLENGTH EOF ;
+ public final String entryRuleLENGTH() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleLENGTH = null;
+
+
+
+ HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
+
+ try {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1368:2: (iv_ruleLENGTH= ruleLENGTH EOF )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1369:2: iv_ruleLENGTH= ruleLENGTH EOF
+ {
+ newCompositeNode(grammarAccess.getLENGTHRule());
+ pushFollow(FOLLOW_ruleLENGTH_in_entryRuleLENGTH2882);
+ iv_ruleLENGTH=ruleLENGTH();
+
+ state._fsp--;
+
+ current =iv_ruleLENGTH.getText();
+ match(input,EOF,FOLLOW_EOF_in_entryRuleLENGTH2893);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+
+ myHiddenTokenState.restore();
+
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleLENGTH"
+
+
+ // $ANTLR start "ruleLENGTH"
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1379:1: ruleLENGTH returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_INT_0= RULE_INT (kw= 'px' | kw= 'cm' | kw= 'mm' | kw= 'in' | kw= 'pt' | kw= 'pc' ) ) ;
+ public final AntlrDatatypeRuleToken ruleLENGTH() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token this_INT_0=null;
+ Token kw=null;
+
+ enterRule();
+ HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
+
+ try {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1383:28: ( (this_INT_0= RULE_INT (kw= 'px' | kw= 'cm' | kw= 'mm' | kw= 'in' | kw= 'pt' | kw= 'pc' ) ) )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1384:1: (this_INT_0= RULE_INT (kw= 'px' | kw= 'cm' | kw= 'mm' | kw= 'in' | kw= 'pt' | kw= 'pc' ) )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1384:1: (this_INT_0= RULE_INT (kw= 'px' | kw= 'cm' | kw= 'mm' | kw= 'in' | kw= 'pt' | kw= 'pc' ) )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1384:6: this_INT_0= RULE_INT (kw= 'px' | kw= 'cm' | kw= 'mm' | kw= 'in' | kw= 'pt' | kw= 'pc' )
+ {
+ this_INT_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleLENGTH2937);
+
+ current.merge(this_INT_0);
+
+
+ newLeafNode(this_INT_0, grammarAccess.getLENGTHAccess().getINTTerminalRuleCall_0());
+
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1391:1: (kw= 'px' | kw= 'cm' | kw= 'mm' | kw= 'in' | kw= 'pt' | kw= 'pc' )
+ int alt30=6;
+ switch ( input.LA(1) ) {
+ case 30:
+ {
+ alt30=1;
+ }
+ break;
+ case 31:
+ {
+ alt30=2;
+ }
+ break;
+ case 32:
+ {
+ alt30=3;
+ }
+ break;
+ case 33:
+ {
+ alt30=4;
+ }
+ break;
+ case 34:
+ {
+ alt30=5;
+ }
+ break;
+ case 35:
+ {
+ alt30=6;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 30, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt30) {
+ case 1 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1392:2: kw= 'px'
+ {
+ kw=(Token)match(input,30,FOLLOW_30_in_ruleLENGTH2956);
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getLENGTHAccess().getPxKeyword_1_0());
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1399:2: kw= 'cm'
+ {
+ kw=(Token)match(input,31,FOLLOW_31_in_ruleLENGTH2975);
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getLENGTHAccess().getCmKeyword_1_1());
+
+
+ }
+ break;
+ case 3 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1406:2: kw= 'mm'
+ {
+ kw=(Token)match(input,32,FOLLOW_32_in_ruleLENGTH2994);
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getLENGTHAccess().getMmKeyword_1_2());
+
+
+ }
+ break;
+ case 4 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1413:2: kw= 'in'
+ {
+ kw=(Token)match(input,33,FOLLOW_33_in_ruleLENGTH3013);
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getLENGTHAccess().getInKeyword_1_3());
+
+
+ }
+ break;
+ case 5 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1420:2: kw= 'pt'
+ {
+ kw=(Token)match(input,34,FOLLOW_34_in_ruleLENGTH3032);
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getLENGTHAccess().getPtKeyword_1_4());
+
+
+ }
+ break;
+ case 6 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1427:2: kw= 'pc'
+ {
+ kw=(Token)match(input,35,FOLLOW_35_in_ruleLENGTH3051);
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getLENGTHAccess().getPcKeyword_1_5());
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+
+ myHiddenTokenState.restore();
+
+ }
+ return current;
+ }
+ // $ANTLR end "ruleLENGTH"
+
+
+ // $ANTLR start "entryRuleANGLE"
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1443:1: entryRuleANGLE returns [String current=null] : iv_ruleANGLE= ruleANGLE EOF ;
+ public final String entryRuleANGLE() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleANGLE = null;
+
+
+ try {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1444:2: (iv_ruleANGLE= ruleANGLE EOF )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1445:2: iv_ruleANGLE= ruleANGLE EOF
+ {
+ newCompositeNode(grammarAccess.getANGLERule());
+ pushFollow(FOLLOW_ruleANGLE_in_entryRuleANGLE3097);
+ iv_ruleANGLE=ruleANGLE();
+
+ state._fsp--;
+
+ current =iv_ruleANGLE.getText();
+ match(input,EOF,FOLLOW_EOF_in_entryRuleANGLE3108);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleANGLE"
+
+
+ // $ANTLR start "ruleANGLE"
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1452:1: ruleANGLE returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_INT_0= RULE_INT (kw= 'deg' | kw= 'rad' | kw= 'grad' ) ) ;
+ public final AntlrDatatypeRuleToken ruleANGLE() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token this_INT_0=null;
+ Token kw=null;
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1455:28: ( (this_INT_0= RULE_INT (kw= 'deg' | kw= 'rad' | kw= 'grad' ) ) )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1456:1: (this_INT_0= RULE_INT (kw= 'deg' | kw= 'rad' | kw= 'grad' ) )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1456:1: (this_INT_0= RULE_INT (kw= 'deg' | kw= 'rad' | kw= 'grad' ) )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1456:6: this_INT_0= RULE_INT (kw= 'deg' | kw= 'rad' | kw= 'grad' )
+ {
+ this_INT_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleANGLE3148);
+
+ current.merge(this_INT_0);
+
+
+ newLeafNode(this_INT_0, grammarAccess.getANGLEAccess().getINTTerminalRuleCall_0());
+
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1463:1: (kw= 'deg' | kw= 'rad' | kw= 'grad' )
+ int alt31=3;
+ switch ( input.LA(1) ) {
+ case 36:
+ {
+ alt31=1;
+ }
+ break;
+ case 37:
+ {
+ alt31=2;
+ }
+ break;
+ case 38:
+ {
+ alt31=3;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 31, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt31) {
+ case 1 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1464:2: kw= 'deg'
+ {
+ kw=(Token)match(input,36,FOLLOW_36_in_ruleANGLE3167);
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getANGLEAccess().getDegKeyword_1_0());
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1471:2: kw= 'rad'
+ {
+ kw=(Token)match(input,37,FOLLOW_37_in_ruleANGLE3186);
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getANGLEAccess().getRadKeyword_1_1());
+
+
+ }
+ break;
+ case 3 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1478:2: kw= 'grad'
+ {
+ kw=(Token)match(input,38,FOLLOW_38_in_ruleANGLE3205);
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getANGLEAccess().getGradKeyword_1_2());
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleANGLE"
+
+
+ // $ANTLR start "entryRuleTIME"
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1491:1: entryRuleTIME returns [String current=null] : iv_ruleTIME= ruleTIME EOF ;
+ public final String entryRuleTIME() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleTIME = null;
+
+
+ try {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1492:2: (iv_ruleTIME= ruleTIME EOF )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1493:2: iv_ruleTIME= ruleTIME EOF
+ {
+ newCompositeNode(grammarAccess.getTIMERule());
+ pushFollow(FOLLOW_ruleTIME_in_entryRuleTIME3247);
+ iv_ruleTIME=ruleTIME();
+
+ state._fsp--;
+
+ current =iv_ruleTIME.getText();
+ match(input,EOF,FOLLOW_EOF_in_entryRuleTIME3258);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleTIME"
+
+
+ // $ANTLR start "ruleTIME"
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1500:1: ruleTIME returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_INT_0= RULE_INT (kw= 'ms' | kw= 's' ) ) ;
+ public final AntlrDatatypeRuleToken ruleTIME() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token this_INT_0=null;
+ Token kw=null;
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1503:28: ( (this_INT_0= RULE_INT (kw= 'ms' | kw= 's' ) ) )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1504:1: (this_INT_0= RULE_INT (kw= 'ms' | kw= 's' ) )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1504:1: (this_INT_0= RULE_INT (kw= 'ms' | kw= 's' ) )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1504:6: this_INT_0= RULE_INT (kw= 'ms' | kw= 's' )
+ {
+ this_INT_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleTIME3298);
+
+ current.merge(this_INT_0);
+
+
+ newLeafNode(this_INT_0, grammarAccess.getTIMEAccess().getINTTerminalRuleCall_0());
+
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1511:1: (kw= 'ms' | kw= 's' )
+ int alt32=2;
+ int LA32_0 = input.LA(1);
+
+ if ( (LA32_0==39) ) {
+ alt32=1;
+ }
+ else if ( (LA32_0==40) ) {
+ alt32=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 32, 0, input);
+
+ throw nvae;
+ }
+ switch (alt32) {
+ case 1 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1512:2: kw= 'ms'
+ {
+ kw=(Token)match(input,39,FOLLOW_39_in_ruleTIME3317);
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getTIMEAccess().getMsKeyword_1_0());
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1519:2: kw= 's'
+ {
+ kw=(Token)match(input,40,FOLLOW_40_in_ruleTIME3336);
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getTIMEAccess().getSKeyword_1_1());
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleTIME"
+
+
+ // $ANTLR start "entryRuleFREQ"
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1532:1: entryRuleFREQ returns [String current=null] : iv_ruleFREQ= ruleFREQ EOF ;
+ public final String entryRuleFREQ() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleFREQ = null;
+
+
+ try {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1533:2: (iv_ruleFREQ= ruleFREQ EOF )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1534:2: iv_ruleFREQ= ruleFREQ EOF
+ {
+ newCompositeNode(grammarAccess.getFREQRule());
+ pushFollow(FOLLOW_ruleFREQ_in_entryRuleFREQ3378);
+ iv_ruleFREQ=ruleFREQ();
+
+ state._fsp--;
+
+ current =iv_ruleFREQ.getText();
+ match(input,EOF,FOLLOW_EOF_in_entryRuleFREQ3389);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleFREQ"
+
+
+ // $ANTLR start "ruleFREQ"
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1541:1: ruleFREQ returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_INT_0= RULE_INT (kw= 'hz' | kw= 'khz' ) ) ;
+ public final AntlrDatatypeRuleToken ruleFREQ() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token this_INT_0=null;
+ Token kw=null;
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1544:28: ( (this_INT_0= RULE_INT (kw= 'hz' | kw= 'khz' ) ) )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1545:1: (this_INT_0= RULE_INT (kw= 'hz' | kw= 'khz' ) )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1545:1: (this_INT_0= RULE_INT (kw= 'hz' | kw= 'khz' ) )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1545:6: this_INT_0= RULE_INT (kw= 'hz' | kw= 'khz' )
+ {
+ this_INT_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleFREQ3429);
+
+ current.merge(this_INT_0);
+
+
+ newLeafNode(this_INT_0, grammarAccess.getFREQAccess().getINTTerminalRuleCall_0());
+
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1552:1: (kw= 'hz' | kw= 'khz' )
+ int alt33=2;
+ int LA33_0 = input.LA(1);
+
+ if ( (LA33_0==41) ) {
+ alt33=1;
+ }
+ else if ( (LA33_0==42) ) {
+ alt33=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 33, 0, input);
+
+ throw nvae;
+ }
+ switch (alt33) {
+ case 1 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1553:2: kw= 'hz'
+ {
+ kw=(Token)match(input,41,FOLLOW_41_in_ruleFREQ3448);
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getFREQAccess().getHzKeyword_1_0());
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1560:2: kw= 'khz'
+ {
+ kw=(Token)match(input,42,FOLLOW_42_in_ruleFREQ3467);
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getFREQAccess().getKhzKeyword_1_1());
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleFREQ"
+
+
+ // $ANTLR start "entryRulecss_hash_class"
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1573:1: entryRulecss_hash_class returns [EObject current=null] : iv_rulecss_hash_class= rulecss_hash_class EOF ;
+ public final EObject entryRulecss_hash_class() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_rulecss_hash_class = null;
+
+
+ try {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1574:2: (iv_rulecss_hash_class= rulecss_hash_class EOF )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1575:2: iv_rulecss_hash_class= rulecss_hash_class EOF
+ {
+ newCompositeNode(grammarAccess.getCss_hash_classRule());
+ pushFollow(FOLLOW_rulecss_hash_class_in_entryRulecss_hash_class3508);
+ iv_rulecss_hash_class=rulecss_hash_class();
+
+ state._fsp--;
+
+ current =iv_rulecss_hash_class;
+ match(input,EOF,FOLLOW_EOF_in_entryRulecss_hash_class3518);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRulecss_hash_class"
+
+
+ // $ANTLR start "rulecss_hash_class"
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1582:1: rulecss_hash_class returns [EObject current=null] : ( ( ( (lv_type_0_1= '#' | lv_type_0_2= '.' ) ) ) ( (lv_name_1_0= RULE_IDENT ) ) ) ;
+ public final EObject rulecss_hash_class() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_type_0_1=null;
+ Token lv_type_0_2=null;
+ Token lv_name_1_0=null;
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1585:28: ( ( ( ( (lv_type_0_1= '#' | lv_type_0_2= '.' ) ) ) ( (lv_name_1_0= RULE_IDENT ) ) ) )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1586:1: ( ( ( (lv_type_0_1= '#' | lv_type_0_2= '.' ) ) ) ( (lv_name_1_0= RULE_IDENT ) ) )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1586:1: ( ( ( (lv_type_0_1= '#' | lv_type_0_2= '.' ) ) ) ( (lv_name_1_0= RULE_IDENT ) ) )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1586:2: ( ( (lv_type_0_1= '#' | lv_type_0_2= '.' ) ) ) ( (lv_name_1_0= RULE_IDENT ) )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1586:2: ( ( (lv_type_0_1= '#' | lv_type_0_2= '.' ) ) )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1587:1: ( (lv_type_0_1= '#' | lv_type_0_2= '.' ) )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1587:1: ( (lv_type_0_1= '#' | lv_type_0_2= '.' ) )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1588:1: (lv_type_0_1= '#' | lv_type_0_2= '.' )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1588:1: (lv_type_0_1= '#' | lv_type_0_2= '.' )
+ int alt34=2;
+ int LA34_0 = input.LA(1);
+
+ if ( (LA34_0==43) ) {
+ alt34=1;
+ }
+ else if ( (LA34_0==26) ) {
+ alt34=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 34, 0, input);
+
+ throw nvae;
+ }
+ switch (alt34) {
+ case 1 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1589:3: lv_type_0_1= '#'
+ {
+ lv_type_0_1=(Token)match(input,43,FOLLOW_43_in_rulecss_hash_class3563);
+
+ newLeafNode(lv_type_0_1, grammarAccess.getCss_hash_classAccess().getTypeNumberSignKeyword_0_0_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getCss_hash_classRule());
+ }
+ setWithLastConsumed(current, "type", lv_type_0_1, null);
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1601:8: lv_type_0_2= '.'
+ {
+ lv_type_0_2=(Token)match(input,26,FOLLOW_26_in_rulecss_hash_class3592);
+
+ newLeafNode(lv_type_0_2, grammarAccess.getCss_hash_classAccess().getTypeFullStopKeyword_0_0_1());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getCss_hash_classRule());
+ }
+ setWithLastConsumed(current, "type", lv_type_0_2, null);
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1616:2: ( (lv_name_1_0= RULE_IDENT ) )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1617:1: (lv_name_1_0= RULE_IDENT )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1617:1: (lv_name_1_0= RULE_IDENT )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1618:3: lv_name_1_0= RULE_IDENT
+ {
+ lv_name_1_0=(Token)match(input,RULE_IDENT,FOLLOW_RULE_IDENT_in_rulecss_hash_class3625);
+
+ newLeafNode(lv_name_1_0, grammarAccess.getCss_hash_classAccess().getNameIdentTerminalRuleCall_1_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getCss_hash_classRule());
+ }
+ setWithLastConsumed(
+ current,
+ "name",
+ lv_name_1_0,
+ "ident");
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "rulecss_hash_class"
+
+
+ // $ANTLR start "entryRulecombinator"
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1642:1: entryRulecombinator returns [String current=null] : iv_rulecombinator= rulecombinator EOF ;
+ public final String entryRulecombinator() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_rulecombinator = null;
+
+
+
+ HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens("RULE_WS");
+
+ try {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1646:2: (iv_rulecombinator= rulecombinator EOF )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1647:2: iv_rulecombinator= rulecombinator EOF
+ {
+ newCompositeNode(grammarAccess.getCombinatorRule());
+ pushFollow(FOLLOW_rulecombinator_in_entryRulecombinator3673);
+ iv_rulecombinator=rulecombinator();
+
+ state._fsp--;
+
+ current =iv_rulecombinator.getText();
+ match(input,EOF,FOLLOW_EOF_in_entryRulecombinator3684);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+
+ myHiddenTokenState.restore();
+
+ }
+ return current;
+ }
+ // $ANTLR end "entryRulecombinator"
+
+
+ // $ANTLR start "rulecombinator"
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1657:1: rulecombinator returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '+' | kw= '>' ) ;
+ public final AntlrDatatypeRuleToken rulecombinator() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+ enterRule();
+ HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens("RULE_WS");
+
+ try {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1661:28: ( (kw= '+' | kw= '>' ) )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1662:1: (kw= '+' | kw= '>' )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1662:1: (kw= '+' | kw= '>' )
+ int alt35=2;
+ int LA35_0 = input.LA(1);
+
+ if ( (LA35_0==44) ) {
+ alt35=1;
+ }
+ else if ( (LA35_0==45) ) {
+ alt35=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 35, 0, input);
+
+ throw nvae;
+ }
+ switch (alt35) {
+ case 1 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1663:2: kw= '+'
+ {
+ kw=(Token)match(input,44,FOLLOW_44_in_rulecombinator3726);
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getCombinatorAccess().getPlusSignKeyword_0());
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1670:2: kw= '>'
+ {
+ kw=(Token)match(input,45,FOLLOW_45_in_rulecombinator3745);
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getCombinatorAccess().getGreaterThanSignKeyword_1());
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+
+ myHiddenTokenState.restore();
+
+ }
+ return current;
+ }
+ // $ANTLR end "rulecombinator"
+
+
+ // $ANTLR start "entryRuleunary_operator"
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1686:1: entryRuleunary_operator returns [String current=null] : iv_ruleunary_operator= ruleunary_operator EOF ;
+ public final String entryRuleunary_operator() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleunary_operator = null;
+
+
+ try {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1687:2: (iv_ruleunary_operator= ruleunary_operator EOF )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1688:2: iv_ruleunary_operator= ruleunary_operator EOF
+ {
+ newCompositeNode(grammarAccess.getUnary_operatorRule());
+ pushFollow(FOLLOW_ruleunary_operator_in_entryRuleunary_operator3790);
+ iv_ruleunary_operator=ruleunary_operator();
+
+ state._fsp--;
+
+ current =iv_ruleunary_operator.getText();
+ match(input,EOF,FOLLOW_EOF_in_entryRuleunary_operator3801);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleunary_operator"
+
+
+ // $ANTLR start "ruleunary_operator"
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1695:1: ruleunary_operator returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '-' | kw= '+' ) ;
+ public final AntlrDatatypeRuleToken ruleunary_operator() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1698:28: ( (kw= '-' | kw= '+' ) )
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1699:1: (kw= '-' | kw= '+' )
+ {
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1699:1: (kw= '-' | kw= '+' )
+ int alt36=2;
+ int LA36_0 = input.LA(1);
+
+ if ( (LA36_0==46) ) {
+ alt36=1;
+ }
+ else if ( (LA36_0==44) ) {
+ alt36=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 36, 0, input);
+
+ throw nvae;
+ }
+ switch (alt36) {
+ case 1 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1700:2: kw= '-'
+ {
+ kw=(Token)match(input,46,FOLLOW_46_in_ruleunary_operator3839);
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getUnary_operatorAccess().getHyphenMinusKeyword_0());
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/parser/antlr/internal/InternalCSS.g:1707:2: kw= '+'
+ {
+ kw=(Token)match(input,44,FOLLOW_44_in_ruleunary_operator3858);
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getUnary_operatorAccess().getPlusSignKeyword_1());
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleunary_operator"
+
+ // Delegated rules
+
+
+ protected DFA29 dfa29 = new DFA29(this);
+ static final String DFA29_eotS =
+ "\12\uffff";
+ static final String DFA29_eofS =
+ "\1\uffff\1\7\10\uffff";
+ static final String DFA29_minS =
+ "\1\10\1\4\10\uffff";
+ static final String DFA29_maxS =
+ "\1\10\1\56\10\uffff";
+ static final String DFA29_acceptS =
+ "\2\uffff\1\5\1\10\1\7\1\3\1\4\1\1\1\6\1\2";
+ static final String DFA29_specialS =
+ "\12\uffff}>";
+ static final String[] DFA29_transitionS = {
+ "\1\1",
+ "\1\7\1\uffff\3\7\4\uffff\1\7\1\uffff\2\7\3\uffff\2\7\1\uffff"+
+ "\2\7\2\uffff\1\11\1\6\1\2\6\5\3\10\2\4\2\3\1\uffff\1\7\1\uffff"+
+ "\1\7",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ };
+
+ static final short[] DFA29_eot = DFA.unpackEncodedString(DFA29_eotS);
+ static final short[] DFA29_eof = DFA.unpackEncodedString(DFA29_eofS);
+ static final char[] DFA29_min = DFA.unpackEncodedStringToUnsignedChars(DFA29_minS);
+ static final char[] DFA29_max = DFA.unpackEncodedStringToUnsignedChars(DFA29_maxS);
+ static final short[] DFA29_accept = DFA.unpackEncodedString(DFA29_acceptS);
+ static final short[] DFA29_special = DFA.unpackEncodedString(DFA29_specialS);
+ static final short[][] DFA29_transition;
+
+ static {
+ int numStates = DFA29_transitionS.length;
+ DFA29_transition = new short[numStates][];
+ for (int i=0; i<numStates; i++) {
+ DFA29_transition[i] = DFA.unpackEncodedString(DFA29_transitionS[i]);
+ }
+ }
+
+ class DFA29 extends DFA {
+
+ public DFA29(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 29;
+ this.eot = DFA29_eot;
+ this.eof = DFA29_eof;
+ this.min = DFA29_min;
+ this.max = DFA29_max;
+ this.accept = DFA29_accept;
+ this.special = DFA29_special;
+ this.transition = DFA29_transition;
+ }
+ public String getDescription() {
+ return "1163:1: (this_INT_0= RULE_INT | this_PERCENTAGE_1= rulePERCENTAGE | this_LENGTH_2= ruleLENGTH | this_EMS_3= ruleEMS | this_EXS_4= ruleEXS | this_ANGLE_5= ruleANGLE | this_TIME_6= ruleTIME | this_FREQ_7= ruleFREQ )";
+ }
+ }
+
+
+ public static final BitSet FOLLOW_rulestylesheet_in_entryRulestylesheet75 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRulestylesheet85 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_STRING_in_rulestylesheet127 = new BitSet(new long[]{0x00000800040A0042L});
+ public static final BitSet FOLLOW_rulecss_import_in_rulestylesheet154 = new BitSet(new long[]{0x00000800040A0042L});
+ public static final BitSet FOLLOW_ruleRules_in_rulestylesheet176 = new BitSet(new long[]{0x0000080004080042L});
+ public static final BitSet FOLLOW_ruleRules_in_entryRuleRules213 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleRules223 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleselector_in_ruleRules269 = new BitSet(new long[]{0x0000000000006000L});
+ public static final BitSet FOLLOW_13_in_ruleRules282 = new BitSet(new long[]{0x0000080004080040L});
+ public static final BitSet FOLLOW_ruleselector_in_ruleRules303 = new BitSet(new long[]{0x0000000000006000L});
+ public static final BitSet FOLLOW_14_in_ruleRules317 = new BitSet(new long[]{0x0000000000018040L});
+ public static final BitSet FOLLOW_ruledeclaration_in_ruleRules338 = new BitSet(new long[]{0x0000000000018000L});
+ public static final BitSet FOLLOW_15_in_ruleRules352 = new BitSet(new long[]{0x0000000000018040L});
+ public static final BitSet FOLLOW_ruledeclaration_in_ruleRules373 = new BitSet(new long[]{0x0000000000018000L});
+ public static final BitSet FOLLOW_16_in_ruleRules388 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rulecss_import_in_entryRulecss_import424 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRulecss_import434 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_17_in_rulecss_import471 = new BitSet(new long[]{0x0000000001000010L});
+ public static final BitSet FOLLOW_RULE_STRING_in_rulecss_import489 = new BitSet(new long[]{0x0000000000008000L});
+ public static final BitSet FOLLOW_ruleURI_in_rulecss_import522 = new BitSet(new long[]{0x0000000000008000L});
+ public static final BitSet FOLLOW_15_in_rulecss_import534 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleselector_in_entryRuleselector576 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleselector586 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rulesimple_selector_in_ruleselector636 = new BitSet(new long[]{0x0000300000000022L});
+ public static final BitSet FOLLOW_rulecombinator_in_ruleselector659 = new BitSet(new long[]{0x0000080004080040L});
+ public static final BitSet FOLLOW_ruleselector_in_ruleselector680 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_WS_in_ruleselector700 = new BitSet(new long[]{0x0000380004080062L});
+ public static final BitSet FOLLOW_rulecombinator_in_ruleselector723 = new BitSet(new long[]{0x0000080004080040L});
+ public static final BitSet FOLLOW_ruleselector_in_ruleselector745 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rulesimple_selector_in_entryRulesimple_selector790 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRulesimple_selector800 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleelement_name_in_rulesimple_selector847 = new BitSet(new long[]{0x00000800040C0042L});
+ public static final BitSet FOLLOW_rulecss_hash_class_in_rulesimple_selector868 = new BitSet(new long[]{0x00000800040C0042L});
+ public static final BitSet FOLLOW_rulepseudo_in_rulesimple_selector890 = new BitSet(new long[]{0x0000000000040042L});
+ public static final BitSet FOLLOW_rulecss_hash_class_in_rulesimple_selector919 = new BitSet(new long[]{0x0000080004080042L});
+ public static final BitSet FOLLOW_rulepseudo_in_entryRulepseudo956 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRulepseudo966 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_18_in_rulepseudo1004 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_RULE_IDENT_in_rulepseudo1021 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rulefunction_in_rulepseudo1055 = new BitSet(new long[]{0x0000000000000042L});
+ public static final BitSet FOLLOW_RULE_IDENT_in_rulepseudo1072 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleelement_name_in_entryRuleelement_name1115 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleelement_name1125 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_IDENT_in_ruleelement_name1167 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_19_in_ruleelement_name1196 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruledeclaration_in_entryRuledeclaration1245 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuledeclaration1255 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_IDENT_in_ruledeclaration1297 = new BitSet(new long[]{0x0000000000040000L});
+ public static final BitSet FOLLOW_18_in_ruledeclaration1314 = new BitSet(new long[]{0x00005000010401D0L});
+ public static final BitSet FOLLOW_ruleexpr_in_ruledeclaration1335 = new BitSet(new long[]{0x0000000000100002L});
+ public static final BitSet FOLLOW_20_in_ruledeclaration1353 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleexpr_in_entryRuleexpr1403 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleexpr1413 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleterm_in_ruleexpr1459 = new BitSet(new long[]{0x00005000012421D2L});
+ public static final BitSet FOLLOW_21_in_ruleexpr1480 = new BitSet(new long[]{0x00005000010401D0L});
+ public static final BitSet FOLLOW_13_in_ruleexpr1509 = new BitSet(new long[]{0x00005000010401D0L});
+ public static final BitSet FOLLOW_ruleterm_in_ruleexpr1547 = new BitSet(new long[]{0x00005000012421D2L});
+ public static final BitSet FOLLOW_ruleterm_in_entryRuleterm1585 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleterm1595 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleunary_operator_in_ruleterm1642 = new BitSet(new long[]{0x0000500000000100L});
+ public static final BitSet FOLLOW_ruleunary_numbers_in_ruleterm1664 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_STRING_in_ruleterm1688 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_IDENT_in_ruleterm1716 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleURI_in_ruleterm1748 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_HEXDIGITS_in_ruleterm1771 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rulefunction_in_ruleterm1803 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rulefunction_in_entryRulefunction1839 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRulefunction1849 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_IDENT_in_rulefunction1891 = new BitSet(new long[]{0x0000000000400000L});
+ public static final BitSet FOLLOW_22_in_rulefunction1908 = new BitSet(new long[]{0x00005000010401D0L});
+ public static final BitSet FOLLOW_ruleexpr_in_rulefunction1929 = new BitSet(new long[]{0x0000000000800000L});
+ public static final BitSet FOLLOW_23_in_rulefunction1941 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleURI_in_entryRuleURI1977 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleURI1987 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_24_in_ruleURI2024 = new BitSet(new long[]{0x0000000000400000L});
+ public static final BitSet FOLLOW_22_in_ruleURI2036 = new BitSet(new long[]{0x0000000006A00010L});
+ public static final BitSet FOLLOW_RULE_STRING_in_ruleURI2063 = new BitSet(new long[]{0x0000000006A00010L});
+ public static final BitSet FOLLOW_25_in_ruleURI2088 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_21_in_ruleURI2106 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_RULE_IDENT_in_ruleURI2124 = new BitSet(new long[]{0x0000000006A00010L});
+ public static final BitSet FOLLOW_26_in_ruleURI2145 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_RULE_IDENT_in_ruleURI2162 = new BitSet(new long[]{0x0000000000800000L});
+ public static final BitSet FOLLOW_23_in_ruleURI2181 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleunary_numbers_in_entryRuleunary_numbers2218 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleunary_numbers2229 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_INT_in_ruleunary_numbers2269 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rulePERCENTAGE_in_ruleunary_numbers2302 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleLENGTH_in_ruleunary_numbers2335 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleEMS_in_ruleunary_numbers2368 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleEXS_in_ruleunary_numbers2401 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleANGLE_in_ruleunary_numbers2434 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleTIME_in_ruleunary_numbers2467 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleFREQ_in_ruleunary_numbers2500 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rulePERCENTAGE_in_entryRulePERCENTAGE2546 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRulePERCENTAGE2557 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_INT_in_rulePERCENTAGE2597 = new BitSet(new long[]{0x0000000008000000L});
+ public static final BitSet FOLLOW_27_in_rulePERCENTAGE2615 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleEMS_in_entryRuleEMS2656 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleEMS2667 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_INT_in_ruleEMS2707 = new BitSet(new long[]{0x0000000010000000L});
+ public static final BitSet FOLLOW_28_in_ruleEMS2725 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleEXS_in_entryRuleEXS2766 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleEXS2777 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_INT_in_ruleEXS2817 = new BitSet(new long[]{0x0000000020000000L});
+ public static final BitSet FOLLOW_29_in_ruleEXS2835 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleLENGTH_in_entryRuleLENGTH2882 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleLENGTH2893 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_INT_in_ruleLENGTH2937 = new BitSet(new long[]{0x0000000FC0000000L});
+ public static final BitSet FOLLOW_30_in_ruleLENGTH2956 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_31_in_ruleLENGTH2975 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_32_in_ruleLENGTH2994 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_33_in_ruleLENGTH3013 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_34_in_ruleLENGTH3032 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_35_in_ruleLENGTH3051 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleANGLE_in_entryRuleANGLE3097 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleANGLE3108 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_INT_in_ruleANGLE3148 = new BitSet(new long[]{0x0000007000000000L});
+ public static final BitSet FOLLOW_36_in_ruleANGLE3167 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_37_in_ruleANGLE3186 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_38_in_ruleANGLE3205 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleTIME_in_entryRuleTIME3247 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleTIME3258 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_INT_in_ruleTIME3298 = new BitSet(new long[]{0x0000018000000000L});
+ public static final BitSet FOLLOW_39_in_ruleTIME3317 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_40_in_ruleTIME3336 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleFREQ_in_entryRuleFREQ3378 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleFREQ3389 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_INT_in_ruleFREQ3429 = new BitSet(new long[]{0x0000060000000000L});
+ public static final BitSet FOLLOW_41_in_ruleFREQ3448 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_42_in_ruleFREQ3467 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rulecss_hash_class_in_entryRulecss_hash_class3508 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRulecss_hash_class3518 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_43_in_rulecss_hash_class3563 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_26_in_rulecss_hash_class3592 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_RULE_IDENT_in_rulecss_hash_class3625 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rulecombinator_in_entryRulecombinator3673 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRulecombinator3684 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_44_in_rulecombinator3726 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_45_in_rulecombinator3745 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleunary_operator_in_entryRuleunary_operator3790 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleunary_operator3801 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_46_in_ruleunary_operator3839 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_44_in_ruleunary_operator3858 = new BitSet(new long[]{0x0000000000000002L});
+
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/services/CSSGrammarAccess.java b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/services/CSSGrammarAccess.java
new file mode 100644
index 00000000..809d6eb6
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/services/CSSGrammarAccess.java
@@ -0,0 +1,1279 @@
+/*
+* generated by Xtext
+*/
+
+package org.eclipse.e4.services;
+
+import com.google.inject.Singleton;
+import com.google.inject.Inject;
+
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.service.GrammarProvider;
+import org.eclipse.xtext.service.AbstractElementFinder.*;
+
+import org.eclipse.xtext.common.services.TerminalsGrammarAccess;
+
+@Singleton
+public class CSSGrammarAccess extends AbstractGrammarElementFinder {
+
+
+ public class StylesheetElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "stylesheet");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment cLocationAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final RuleCall cLocationSTRINGTerminalRuleCall_0_0 = (RuleCall)cLocationAssignment_0.eContents().get(0);
+ private final Assignment cImportNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final RuleCall cImportNameCss_importParserRuleCall_1_0 = (RuleCall)cImportNameAssignment_1.eContents().get(0);
+ private final Assignment cRulesetAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cRulesetRulesParserRuleCall_2_0 = (RuleCall)cRulesetAssignment_2.eContents().get(0);
+
+ //stylesheet:
+ // location=STRING? importName+=css_import* ruleset+=Rules*;
+ public ParserRule getRule() { return rule; }
+
+ //location=STRING? importName+=css_import* ruleset+=Rules*
+ public Group getGroup() { return cGroup; }
+
+ //location=STRING?
+ public Assignment getLocationAssignment_0() { return cLocationAssignment_0; }
+
+ //STRING
+ public RuleCall getLocationSTRINGTerminalRuleCall_0_0() { return cLocationSTRINGTerminalRuleCall_0_0; }
+
+ //importName+=css_import*
+ public Assignment getImportNameAssignment_1() { return cImportNameAssignment_1; }
+
+ //css_import
+ public RuleCall getImportNameCss_importParserRuleCall_1_0() { return cImportNameCss_importParserRuleCall_1_0; }
+
+ //ruleset+=Rules*
+ public Assignment getRulesetAssignment_2() { return cRulesetAssignment_2; }
+
+ //Rules
+ public RuleCall getRulesetRulesParserRuleCall_2_0() { return cRulesetRulesParserRuleCall_2_0; }
+ }
+
+ public class RulesElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Rules");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment cSelectorsAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final RuleCall cSelectorsSelectorParserRuleCall_0_0 = (RuleCall)cSelectorsAssignment_0.eContents().get(0);
+ private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
+ private final Keyword cCommaKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
+ private final Assignment cSelectorsAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
+ private final RuleCall cSelectorsSelectorParserRuleCall_1_1_0 = (RuleCall)cSelectorsAssignment_1_1.eContents().get(0);
+ private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
+ private final Assignment cDeclarationsAssignment_3 = (Assignment)cGroup.eContents().get(3);
+ private final RuleCall cDeclarationsDeclarationParserRuleCall_3_0 = (RuleCall)cDeclarationsAssignment_3.eContents().get(0);
+ private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
+ private final Keyword cSemicolonKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
+ private final Assignment cDeclarationsAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1);
+ private final RuleCall cDeclarationsDeclarationParserRuleCall_4_1_0 = (RuleCall)cDeclarationsAssignment_4_1.eContents().get(0);
+ private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
+
+ //Rules:
+ // selectors+=selector ("," selectors+=selector)* "{" declarations+=declaration? (";" declarations+=declaration?)* "}";
+ public ParserRule getRule() { return rule; }
+
+ //selectors+=selector ("," selectors+=selector)* "{" declarations+=declaration? (";" declarations+=declaration?)* "}"
+ public Group getGroup() { return cGroup; }
+
+ //selectors+=selector
+ public Assignment getSelectorsAssignment_0() { return cSelectorsAssignment_0; }
+
+ //selector
+ public RuleCall getSelectorsSelectorParserRuleCall_0_0() { return cSelectorsSelectorParserRuleCall_0_0; }
+
+ //("," selectors+=selector)*
+ public Group getGroup_1() { return cGroup_1; }
+
+ //","
+ public Keyword getCommaKeyword_1_0() { return cCommaKeyword_1_0; }
+
+ //selectors+=selector
+ public Assignment getSelectorsAssignment_1_1() { return cSelectorsAssignment_1_1; }
+
+ //selector
+ public RuleCall getSelectorsSelectorParserRuleCall_1_1_0() { return cSelectorsSelectorParserRuleCall_1_1_0; }
+
+ //"{"
+ public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }
+
+ //declarations+=declaration?
+ public Assignment getDeclarationsAssignment_3() { return cDeclarationsAssignment_3; }
+
+ //declaration
+ public RuleCall getDeclarationsDeclarationParserRuleCall_3_0() { return cDeclarationsDeclarationParserRuleCall_3_0; }
+
+ //(";" declarations+=declaration?)*
+ public Group getGroup_4() { return cGroup_4; }
+
+ //";"
+ public Keyword getSemicolonKeyword_4_0() { return cSemicolonKeyword_4_0; }
+
+ //declarations+=declaration?
+ public Assignment getDeclarationsAssignment_4_1() { return cDeclarationsAssignment_4_1; }
+
+ //declaration
+ public RuleCall getDeclarationsDeclarationParserRuleCall_4_1_0() { return cDeclarationsDeclarationParserRuleCall_4_1_0; }
+
+ //"}"
+ public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; }
+ }
+
+ public class Css_importElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "css_import");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Keyword cImportKeyword_0 = (Keyword)cGroup.eContents().get(0);
+ private final Alternatives cAlternatives_1 = (Alternatives)cGroup.eContents().get(1);
+ private final Assignment cString_nameAssignment_1_0 = (Assignment)cAlternatives_1.eContents().get(0);
+ private final RuleCall cString_nameSTRINGTerminalRuleCall_1_0_0 = (RuleCall)cString_nameAssignment_1_0.eContents().get(0);
+ private final RuleCall cURIParserRuleCall_1_1 = (RuleCall)cAlternatives_1.eContents().get(1);
+ private final Keyword cSemicolonKeyword_2 = (Keyword)cGroup.eContents().get(2);
+
+ //css_import:
+ // "@import" (string_name=STRING | URI) ";";
+ public ParserRule getRule() { return rule; }
+
+ //"@import" (string_name=STRING | URI) ";"
+ public Group getGroup() { return cGroup; }
+
+ //"@import"
+ public Keyword getImportKeyword_0() { return cImportKeyword_0; }
+
+ //string_name=STRING | URI
+ public Alternatives getAlternatives_1() { return cAlternatives_1; }
+
+ //string_name=STRING
+ public Assignment getString_nameAssignment_1_0() { return cString_nameAssignment_1_0; }
+
+ //STRING
+ public RuleCall getString_nameSTRINGTerminalRuleCall_1_0_0() { return cString_nameSTRINGTerminalRuleCall_1_0_0; }
+
+ //URI
+ public RuleCall getURIParserRuleCall_1_1() { return cURIParserRuleCall_1_1; }
+
+ //";"
+ public Keyword getSemicolonKeyword_2() { return cSemicolonKeyword_2; }
+ }
+
+ public class SelectorElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "selector");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment cSimpleselectorsAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final RuleCall cSimpleselectorsSimple_selectorParserRuleCall_0_0 = (RuleCall)cSimpleselectorsAssignment_0.eContents().get(0);
+ private final Alternatives cAlternatives_1 = (Alternatives)cGroup.eContents().get(1);
+ private final Group cGroup_1_0 = (Group)cAlternatives_1.eContents().get(0);
+ private final Assignment cCombinatorAssignment_1_0_0 = (Assignment)cGroup_1_0.eContents().get(0);
+ private final RuleCall cCombinatorCombinatorParserRuleCall_1_0_0_0 = (RuleCall)cCombinatorAssignment_1_0_0.eContents().get(0);
+ private final Assignment cSelectorAssignment_1_0_1 = (Assignment)cGroup_1_0.eContents().get(1);
+ private final RuleCall cSelectorSelectorParserRuleCall_1_0_1_0 = (RuleCall)cSelectorAssignment_1_0_1.eContents().get(0);
+ private final Group cGroup_1_1 = (Group)cAlternatives_1.eContents().get(1);
+ private final RuleCall cWSTerminalRuleCall_1_1_0 = (RuleCall)cGroup_1_1.eContents().get(0);
+ private final Group cGroup_1_1_1 = (Group)cGroup_1_1.eContents().get(1);
+ private final Assignment cCombinatorAssignment_1_1_1_0 = (Assignment)cGroup_1_1_1.eContents().get(0);
+ private final RuleCall cCombinatorCombinatorParserRuleCall_1_1_1_0_0 = (RuleCall)cCombinatorAssignment_1_1_1_0.eContents().get(0);
+ private final Assignment cSelectorAssignment_1_1_1_1 = (Assignment)cGroup_1_1_1.eContents().get(1);
+ private final RuleCall cSelectorSelectorParserRuleCall_1_1_1_1_0 = (RuleCall)cSelectorAssignment_1_1_1_1.eContents().get(0);
+
+ //selector hidden():
+ // simpleselectors=simple_selector (combinator=combinator selector=selector | WS+ (combinator=combinator?
+ // selector=selector)?)?;
+ public ParserRule getRule() { return rule; }
+
+ //simpleselectors=simple_selector (combinator=combinator selector=selector | WS+ (combinator=combinator?
+ //selector=selector)?)?
+ public Group getGroup() { return cGroup; }
+
+ //simpleselectors=simple_selector
+ public Assignment getSimpleselectorsAssignment_0() { return cSimpleselectorsAssignment_0; }
+
+ //simple_selector
+ public RuleCall getSimpleselectorsSimple_selectorParserRuleCall_0_0() { return cSimpleselectorsSimple_selectorParserRuleCall_0_0; }
+
+ //(combinator=combinator selector=selector | WS+ (combinator=combinator? selector=selector)?)?
+ public Alternatives getAlternatives_1() { return cAlternatives_1; }
+
+ //combinator=combinator selector=selector
+ public Group getGroup_1_0() { return cGroup_1_0; }
+
+ //combinator=combinator
+ public Assignment getCombinatorAssignment_1_0_0() { return cCombinatorAssignment_1_0_0; }
+
+ //combinator
+ public RuleCall getCombinatorCombinatorParserRuleCall_1_0_0_0() { return cCombinatorCombinatorParserRuleCall_1_0_0_0; }
+
+ //selector=selector
+ public Assignment getSelectorAssignment_1_0_1() { return cSelectorAssignment_1_0_1; }
+
+ //selector
+ public RuleCall getSelectorSelectorParserRuleCall_1_0_1_0() { return cSelectorSelectorParserRuleCall_1_0_1_0; }
+
+ //WS+ (combinator=combinator? selector=selector)?
+ public Group getGroup_1_1() { return cGroup_1_1; }
+
+ //WS+
+ public RuleCall getWSTerminalRuleCall_1_1_0() { return cWSTerminalRuleCall_1_1_0; }
+
+ //(combinator=combinator? selector=selector)?
+ public Group getGroup_1_1_1() { return cGroup_1_1_1; }
+
+ //combinator=combinator?
+ public Assignment getCombinatorAssignment_1_1_1_0() { return cCombinatorAssignment_1_1_1_0; }
+
+ //combinator
+ public RuleCall getCombinatorCombinatorParserRuleCall_1_1_1_0_0() { return cCombinatorCombinatorParserRuleCall_1_1_1_0_0; }
+
+ //selector=selector
+ public Assignment getSelectorAssignment_1_1_1_1() { return cSelectorAssignment_1_1_1_1; }
+
+ //selector
+ public RuleCall getSelectorSelectorParserRuleCall_1_1_1_1_0() { return cSelectorSelectorParserRuleCall_1_1_1_1_0; }
+ }
+
+ public class Simple_selectorElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "simple_selector");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final Group cGroup_0 = (Group)cAlternatives.eContents().get(0);
+ private final Assignment cElementAssignment_0_0 = (Assignment)cGroup_0.eContents().get(0);
+ private final RuleCall cElementElement_nameParserRuleCall_0_0_0 = (RuleCall)cElementAssignment_0_0.eContents().get(0);
+ private final Assignment cIdAssignment_0_1 = (Assignment)cGroup_0.eContents().get(1);
+ private final RuleCall cIdCss_hash_classParserRuleCall_0_1_0 = (RuleCall)cIdAssignment_0_1.eContents().get(0);
+ private final Assignment cPseudoAssignment_0_2 = (Assignment)cGroup_0.eContents().get(2);
+ private final RuleCall cPseudoPseudoParserRuleCall_0_2_0 = (RuleCall)cPseudoAssignment_0_2.eContents().get(0);
+ private final Assignment cIdAssignment_1 = (Assignment)cAlternatives.eContents().get(1);
+ private final RuleCall cIdCss_hash_classParserRuleCall_1_0 = (RuleCall)cIdAssignment_1.eContents().get(0);
+
+ //simple_selector:
+ // element=element_name id+=css_hash_class* pseudo+=pseudo* | id+=css_hash_class+;
+ public ParserRule getRule() { return rule; }
+
+ //element=element_name id+=css_hash_class* pseudo+=pseudo* | id+=css_hash_class+
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //element=element_name id+=css_hash_class* pseudo+=pseudo*
+ public Group getGroup_0() { return cGroup_0; }
+
+ //element=element_name
+ public Assignment getElementAssignment_0_0() { return cElementAssignment_0_0; }
+
+ //element_name
+ public RuleCall getElementElement_nameParserRuleCall_0_0_0() { return cElementElement_nameParserRuleCall_0_0_0; }
+
+ //id+=css_hash_class*
+ public Assignment getIdAssignment_0_1() { return cIdAssignment_0_1; }
+
+ //css_hash_class
+ public RuleCall getIdCss_hash_classParserRuleCall_0_1_0() { return cIdCss_hash_classParserRuleCall_0_1_0; }
+
+ //pseudo+=pseudo*
+ public Assignment getPseudoAssignment_0_2() { return cPseudoAssignment_0_2; }
+
+ //pseudo
+ public RuleCall getPseudoPseudoParserRuleCall_0_2_0() { return cPseudoPseudoParserRuleCall_0_2_0; }
+
+ //id+=css_hash_class+
+ public Assignment getIdAssignment_1() { return cIdAssignment_1; }
+
+ //css_hash_class
+ public RuleCall getIdCss_hash_classParserRuleCall_1_0() { return cIdCss_hash_classParserRuleCall_1_0; }
+ }
+
+ public class PseudoElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "pseudo");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final Group cGroup_0 = (Group)cAlternatives.eContents().get(0);
+ private final Keyword cColonKeyword_0_0 = (Keyword)cGroup_0.eContents().get(0);
+ private final Assignment cNameAssignment_0_1 = (Assignment)cGroup_0.eContents().get(1);
+ private final RuleCall cNameIdentTerminalRuleCall_0_1_0 = (RuleCall)cNameAssignment_0_1.eContents().get(0);
+ private final Group cGroup_1 = (Group)cAlternatives.eContents().get(1);
+ private final Assignment cFunctionAssignment_1_0 = (Assignment)cGroup_1.eContents().get(0);
+ private final RuleCall cFunctionFunctionParserRuleCall_1_0_0 = (RuleCall)cFunctionAssignment_1_0.eContents().get(0);
+ private final Assignment cNameAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
+ private final RuleCall cNameIdentTerminalRuleCall_1_1_0 = (RuleCall)cNameAssignment_1_1.eContents().get(0);
+
+ //pseudo:
+ // ":" name=ident | function=function name=ident?;
+ public ParserRule getRule() { return rule; }
+
+ //":" name=ident | function=function name=ident?
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //":" name=ident
+ public Group getGroup_0() { return cGroup_0; }
+
+ //":"
+ public Keyword getColonKeyword_0_0() { return cColonKeyword_0_0; }
+
+ //name=ident
+ public Assignment getNameAssignment_0_1() { return cNameAssignment_0_1; }
+
+ //ident
+ public RuleCall getNameIdentTerminalRuleCall_0_1_0() { return cNameIdentTerminalRuleCall_0_1_0; }
+
+ //function=function name=ident?
+ public Group getGroup_1() { return cGroup_1; }
+
+ //function=function
+ public Assignment getFunctionAssignment_1_0() { return cFunctionAssignment_1_0; }
+
+ //function
+ public RuleCall getFunctionFunctionParserRuleCall_1_0_0() { return cFunctionFunctionParserRuleCall_1_0_0; }
+
+ //name=ident?
+ public Assignment getNameAssignment_1_1() { return cNameAssignment_1_1; }
+
+ //ident
+ public RuleCall getNameIdentTerminalRuleCall_1_1_0() { return cNameIdentTerminalRuleCall_1_1_0; }
+ }
+
+ public class Element_nameElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "element_name");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final Assignment cNameAssignment_0 = (Assignment)cAlternatives.eContents().get(0);
+ private final RuleCall cNameIdentTerminalRuleCall_0_0 = (RuleCall)cNameAssignment_0.eContents().get(0);
+ private final Assignment cNameAssignment_1 = (Assignment)cAlternatives.eContents().get(1);
+ private final Keyword cNameAsteriskKeyword_1_0 = (Keyword)cNameAssignment_1.eContents().get(0);
+
+ //element_name:
+ // name=ident | name="*";
+ public ParserRule getRule() { return rule; }
+
+ //name=ident | name="*"
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //name=ident
+ public Assignment getNameAssignment_0() { return cNameAssignment_0; }
+
+ //ident
+ public RuleCall getNameIdentTerminalRuleCall_0_0() { return cNameIdentTerminalRuleCall_0_0; }
+
+ //name="*"
+ public Assignment getNameAssignment_1() { return cNameAssignment_1; }
+
+ //"*"
+ public Keyword getNameAsteriskKeyword_1_0() { return cNameAsteriskKeyword_1_0; }
+ }
+
+ public class DeclarationElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "declaration");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment cPropertyAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final RuleCall cPropertyIdentTerminalRuleCall_0_0 = (RuleCall)cPropertyAssignment_0.eContents().get(0);
+ private final Keyword cColonKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Assignment cExprAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cExprExprParserRuleCall_2_0 = (RuleCall)cExprAssignment_2.eContents().get(0);
+ private final Assignment cPriorityAssignment_3 = (Assignment)cGroup.eContents().get(3);
+ private final Keyword cPriorityImportantKeyword_3_0 = (Keyword)cPriorityAssignment_3.eContents().get(0);
+
+ //declaration:
+ // property=ident ":" expr=expr priority="!important"?;
+ public ParserRule getRule() { return rule; }
+
+ //property=ident ":" expr=expr priority="!important"?
+ public Group getGroup() { return cGroup; }
+
+ //property=ident
+ public Assignment getPropertyAssignment_0() { return cPropertyAssignment_0; }
+
+ //ident
+ public RuleCall getPropertyIdentTerminalRuleCall_0_0() { return cPropertyIdentTerminalRuleCall_0_0; }
+
+ //":"
+ public Keyword getColonKeyword_1() { return cColonKeyword_1; }
+
+ //expr=expr
+ public Assignment getExprAssignment_2() { return cExprAssignment_2; }
+
+ //expr
+ public RuleCall getExprExprParserRuleCall_2_0() { return cExprExprParserRuleCall_2_0; }
+
+ //priority="!important"?
+ public Assignment getPriorityAssignment_3() { return cPriorityAssignment_3; }
+
+ //"!important"
+ public Keyword getPriorityImportantKeyword_3_0() { return cPriorityImportantKeyword_3_0; }
+ }
+
+ public class ExprElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "expr");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment cTermAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final RuleCall cTermTermParserRuleCall_0_0 = (RuleCall)cTermAssignment_0.eContents().get(0);
+ private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
+ private final Assignment cOperatorsAssignment_1_0 = (Assignment)cGroup_1.eContents().get(0);
+ private final Alternatives cOperatorsAlternatives_1_0_0 = (Alternatives)cOperatorsAssignment_1_0.eContents().get(0);
+ private final Keyword cOperatorsSolidusKeyword_1_0_0_0 = (Keyword)cOperatorsAlternatives_1_0_0.eContents().get(0);
+ private final Keyword cOperatorsCommaKeyword_1_0_0_1 = (Keyword)cOperatorsAlternatives_1_0_0.eContents().get(1);
+ private final Assignment cTermAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
+ private final RuleCall cTermTermParserRuleCall_1_1_0 = (RuleCall)cTermAssignment_1_1.eContents().get(0);
+
+ //expr:
+ // term+=term (operators+=("/" | ",")? term+=term)*;
+ public ParserRule getRule() { return rule; }
+
+ //term+=term (operators+=("/" | ",")? term+=term)*
+ public Group getGroup() { return cGroup; }
+
+ //term+=term
+ public Assignment getTermAssignment_0() { return cTermAssignment_0; }
+
+ //term
+ public RuleCall getTermTermParserRuleCall_0_0() { return cTermTermParserRuleCall_0_0; }
+
+ //(operators+=("/" | ",")? term+=term)*
+ public Group getGroup_1() { return cGroup_1; }
+
+ //operators+=("/" | ",")?
+ public Assignment getOperatorsAssignment_1_0() { return cOperatorsAssignment_1_0; }
+
+ //"/" | ","
+ public Alternatives getOperatorsAlternatives_1_0_0() { return cOperatorsAlternatives_1_0_0; }
+
+ //"/"
+ public Keyword getOperatorsSolidusKeyword_1_0_0_0() { return cOperatorsSolidusKeyword_1_0_0_0; }
+
+ //","
+ public Keyword getOperatorsCommaKeyword_1_0_0_1() { return cOperatorsCommaKeyword_1_0_0_1; }
+
+ //term+=term
+ public Assignment getTermAssignment_1_1() { return cTermAssignment_1_1; }
+
+ //term
+ public RuleCall getTermTermParserRuleCall_1_1_0() { return cTermTermParserRuleCall_1_1_0; }
+ }
+
+ public class TermElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "term");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final Group cGroup_0 = (Group)cAlternatives.eContents().get(0);
+ private final Assignment cUnaryAssignment_0_0 = (Assignment)cGroup_0.eContents().get(0);
+ private final RuleCall cUnaryUnary_operatorParserRuleCall_0_0_0 = (RuleCall)cUnaryAssignment_0_0.eContents().get(0);
+ private final Assignment cNumberAssignment_0_1 = (Assignment)cGroup_0.eContents().get(1);
+ private final RuleCall cNumberUnary_numbersParserRuleCall_0_1_0 = (RuleCall)cNumberAssignment_0_1.eContents().get(0);
+ private final Assignment cNameAssignment_1 = (Assignment)cAlternatives.eContents().get(1);
+ private final RuleCall cNameSTRINGTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
+ private final Assignment cIdAssignment_2 = (Assignment)cAlternatives.eContents().get(2);
+ private final RuleCall cIdIdentTerminalRuleCall_2_0 = (RuleCall)cIdAssignment_2.eContents().get(0);
+ private final Assignment cUriAssignment_3 = (Assignment)cAlternatives.eContents().get(3);
+ private final RuleCall cUriURIParserRuleCall_3_0 = (RuleCall)cUriAssignment_3.eContents().get(0);
+ private final Assignment cColorAssignment_4 = (Assignment)cAlternatives.eContents().get(4);
+ private final RuleCall cColorHexdigitsTerminalRuleCall_4_0 = (RuleCall)cColorAssignment_4.eContents().get(0);
+ private final Assignment cFunctionAssignment_5 = (Assignment)cAlternatives.eContents().get(5);
+ private final RuleCall cFunctionFunctionParserRuleCall_5_0 = (RuleCall)cFunctionAssignment_5.eContents().get(0);
+
+ //term:
+ // unary=unary_operator? number=unary_numbers | name=STRING | id=ident | uri=URI | color=hexdigits | function=function;
+ public ParserRule getRule() { return rule; }
+
+ //unary=unary_operator? number=unary_numbers | name=STRING | id=ident | uri=URI | color=hexdigits | function=function
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //unary=unary_operator? number=unary_numbers
+ public Group getGroup_0() { return cGroup_0; }
+
+ //unary=unary_operator?
+ public Assignment getUnaryAssignment_0_0() { return cUnaryAssignment_0_0; }
+
+ //unary_operator
+ public RuleCall getUnaryUnary_operatorParserRuleCall_0_0_0() { return cUnaryUnary_operatorParserRuleCall_0_0_0; }
+
+ //number=unary_numbers
+ public Assignment getNumberAssignment_0_1() { return cNumberAssignment_0_1; }
+
+ //unary_numbers
+ public RuleCall getNumberUnary_numbersParserRuleCall_0_1_0() { return cNumberUnary_numbersParserRuleCall_0_1_0; }
+
+ //name=STRING
+ public Assignment getNameAssignment_1() { return cNameAssignment_1; }
+
+ //STRING
+ public RuleCall getNameSTRINGTerminalRuleCall_1_0() { return cNameSTRINGTerminalRuleCall_1_0; }
+
+ //id=ident
+ public Assignment getIdAssignment_2() { return cIdAssignment_2; }
+
+ //ident
+ public RuleCall getIdIdentTerminalRuleCall_2_0() { return cIdIdentTerminalRuleCall_2_0; }
+
+ //uri=URI
+ public Assignment getUriAssignment_3() { return cUriAssignment_3; }
+
+ //URI
+ public RuleCall getUriURIParserRuleCall_3_0() { return cUriURIParserRuleCall_3_0; }
+
+ //color=hexdigits
+ public Assignment getColorAssignment_4() { return cColorAssignment_4; }
+
+ //hexdigits
+ public RuleCall getColorHexdigitsTerminalRuleCall_4_0() { return cColorHexdigitsTerminalRuleCall_4_0; }
+
+ //function=function
+ public Assignment getFunctionAssignment_5() { return cFunctionAssignment_5; }
+
+ //function
+ public RuleCall getFunctionFunctionParserRuleCall_5_0() { return cFunctionFunctionParserRuleCall_5_0; }
+ }
+
+ public class FunctionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "function");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment cNameAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final RuleCall cNameIdentTerminalRuleCall_0_0 = (RuleCall)cNameAssignment_0.eContents().get(0);
+ private final Keyword cLeftParenthesisKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Assignment cExprAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cExprExprParserRuleCall_2_0 = (RuleCall)cExprAssignment_2.eContents().get(0);
+ private final Keyword cRightParenthesisKeyword_3 = (Keyword)cGroup.eContents().get(3);
+
+ //function:
+ // name=ident "(" expr=expr ")";
+ public ParserRule getRule() { return rule; }
+
+ //name=ident "(" expr=expr ")"
+ public Group getGroup() { return cGroup; }
+
+ //name=ident
+ public Assignment getNameAssignment_0() { return cNameAssignment_0; }
+
+ //ident
+ public RuleCall getNameIdentTerminalRuleCall_0_0() { return cNameIdentTerminalRuleCall_0_0; }
+
+ //"("
+ public Keyword getLeftParenthesisKeyword_1() { return cLeftParenthesisKeyword_1; }
+
+ //expr=expr
+ public Assignment getExprAssignment_2() { return cExprAssignment_2; }
+
+ //expr
+ public RuleCall getExprExprParserRuleCall_2_0() { return cExprExprParserRuleCall_2_0; }
+
+ //")"
+ public Keyword getRightParenthesisKeyword_3() { return cRightParenthesisKeyword_3; }
+ }
+
+ public class URIElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "URI");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Keyword cUrlKeyword_0 = (Keyword)cGroup.eContents().get(0);
+ private final Keyword cLeftParenthesisKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Action cURIAction_2 = (Action)cGroup.eContents().get(2);
+ private final Alternatives cAlternatives_3 = (Alternatives)cGroup.eContents().get(3);
+ private final Assignment cNameAssignment_3_0 = (Assignment)cAlternatives_3.eContents().get(0);
+ private final RuleCall cNameSTRINGTerminalRuleCall_3_0_0 = (RuleCall)cNameAssignment_3_0.eContents().get(0);
+ private final Group cGroup_3_1 = (Group)cAlternatives_3.eContents().get(1);
+ private final Alternatives cAlternatives_3_1_0 = (Alternatives)cGroup_3_1.eContents().get(0);
+ private final Keyword cReverseSolidusKeyword_3_1_0_0 = (Keyword)cAlternatives_3_1_0.eContents().get(0);
+ private final Keyword cSolidusKeyword_3_1_0_1 = (Keyword)cAlternatives_3_1_0.eContents().get(1);
+ private final Assignment cIdAssignment_3_1_1 = (Assignment)cGroup_3_1.eContents().get(1);
+ private final RuleCall cIdIdentTerminalRuleCall_3_1_1_0 = (RuleCall)cIdAssignment_3_1_1.eContents().get(0);
+ private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
+ private final Keyword cFullStopKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
+ private final Assignment cIdAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1);
+ private final RuleCall cIdIdentTerminalRuleCall_4_1_0 = (RuleCall)cIdAssignment_4_1.eContents().get(0);
+ private final Keyword cRightParenthesisKeyword_5 = (Keyword)cGroup.eContents().get(5);
+
+ //URI:
+ // "url" "(" {URI} (name+=STRING | ("\\" | "/") id+=ident)* ("." id+=ident)? ")";
+ public ParserRule getRule() { return rule; }
+
+ //"url" "(" {URI} (name+=STRING | ("\\" | "/") id+=ident)* ("." id+=ident)? ")"
+ public Group getGroup() { return cGroup; }
+
+ //"url"
+ public Keyword getUrlKeyword_0() { return cUrlKeyword_0; }
+
+ //"("
+ public Keyword getLeftParenthesisKeyword_1() { return cLeftParenthesisKeyword_1; }
+
+ //{URI}
+ public Action getURIAction_2() { return cURIAction_2; }
+
+ //(name+=STRING | ("\\" | "/") id+=ident)*
+ public Alternatives getAlternatives_3() { return cAlternatives_3; }
+
+ //name+=STRING
+ public Assignment getNameAssignment_3_0() { return cNameAssignment_3_0; }
+
+ //STRING
+ public RuleCall getNameSTRINGTerminalRuleCall_3_0_0() { return cNameSTRINGTerminalRuleCall_3_0_0; }
+
+ //("\\" | "/") id+=ident
+ public Group getGroup_3_1() { return cGroup_3_1; }
+
+ //"\\" | "/"
+ public Alternatives getAlternatives_3_1_0() { return cAlternatives_3_1_0; }
+
+ //"\\"
+ public Keyword getReverseSolidusKeyword_3_1_0_0() { return cReverseSolidusKeyword_3_1_0_0; }
+
+ //"/"
+ public Keyword getSolidusKeyword_3_1_0_1() { return cSolidusKeyword_3_1_0_1; }
+
+ //id+=ident
+ public Assignment getIdAssignment_3_1_1() { return cIdAssignment_3_1_1; }
+
+ //ident
+ public RuleCall getIdIdentTerminalRuleCall_3_1_1_0() { return cIdIdentTerminalRuleCall_3_1_1_0; }
+
+ //("." id+=ident)?
+ public Group getGroup_4() { return cGroup_4; }
+
+ //"."
+ public Keyword getFullStopKeyword_4_0() { return cFullStopKeyword_4_0; }
+
+ //id+=ident
+ public Assignment getIdAssignment_4_1() { return cIdAssignment_4_1; }
+
+ //ident
+ public RuleCall getIdIdentTerminalRuleCall_4_1_0() { return cIdIdentTerminalRuleCall_4_1_0; }
+
+ //")"
+ public Keyword getRightParenthesisKeyword_5() { return cRightParenthesisKeyword_5; }
+ }
+
+ public class Unary_numbersElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "unary_numbers");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final RuleCall cINTTerminalRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+ private final RuleCall cPERCENTAGEParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+ private final RuleCall cLENGTHParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
+ private final RuleCall cEMSParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
+ private final RuleCall cEXSParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4);
+ private final RuleCall cANGLEParserRuleCall_5 = (RuleCall)cAlternatives.eContents().get(5);
+ private final RuleCall cTIMEParserRuleCall_6 = (RuleCall)cAlternatives.eContents().get(6);
+ private final RuleCall cFREQParserRuleCall_7 = (RuleCall)cAlternatives.eContents().get(7);
+
+ //unary_numbers:
+ // INT | PERCENTAGE | LENGTH | EMS | EXS | ANGLE | TIME | FREQ;
+ public ParserRule getRule() { return rule; }
+
+ //INT | PERCENTAGE | LENGTH | EMS | EXS | ANGLE | TIME | FREQ
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //INT
+ public RuleCall getINTTerminalRuleCall_0() { return cINTTerminalRuleCall_0; }
+
+ //PERCENTAGE
+ public RuleCall getPERCENTAGEParserRuleCall_1() { return cPERCENTAGEParserRuleCall_1; }
+
+ //LENGTH
+ public RuleCall getLENGTHParserRuleCall_2() { return cLENGTHParserRuleCall_2; }
+
+ //EMS
+ public RuleCall getEMSParserRuleCall_3() { return cEMSParserRuleCall_3; }
+
+ //EXS
+ public RuleCall getEXSParserRuleCall_4() { return cEXSParserRuleCall_4; }
+
+ //ANGLE
+ public RuleCall getANGLEParserRuleCall_5() { return cANGLEParserRuleCall_5; }
+
+ //TIME
+ public RuleCall getTIMEParserRuleCall_6() { return cTIMEParserRuleCall_6; }
+
+ //FREQ
+ public RuleCall getFREQParserRuleCall_7() { return cFREQParserRuleCall_7; }
+ }
+
+ public class PERCENTAGEElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "PERCENTAGE");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final RuleCall cINTTerminalRuleCall_0 = (RuleCall)cGroup.eContents().get(0);
+ private final Keyword cPercentSignKeyword_1 = (Keyword)cGroup.eContents().get(1);
+
+ //PERCENTAGE:
+ // INT "%";
+ public ParserRule getRule() { return rule; }
+
+ //INT "%"
+ public Group getGroup() { return cGroup; }
+
+ //INT
+ public RuleCall getINTTerminalRuleCall_0() { return cINTTerminalRuleCall_0; }
+
+ //"%"
+ public Keyword getPercentSignKeyword_1() { return cPercentSignKeyword_1; }
+ }
+
+ public class EMSElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "EMS");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final RuleCall cINTTerminalRuleCall_0 = (RuleCall)cGroup.eContents().get(0);
+ private final Keyword cEmKeyword_1 = (Keyword)cGroup.eContents().get(1);
+
+ //EMS:
+ // INT "em";
+ public ParserRule getRule() { return rule; }
+
+ //INT "em"
+ public Group getGroup() { return cGroup; }
+
+ //INT
+ public RuleCall getINTTerminalRuleCall_0() { return cINTTerminalRuleCall_0; }
+
+ //"em"
+ public Keyword getEmKeyword_1() { return cEmKeyword_1; }
+ }
+
+ public class EXSElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "EXS");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final RuleCall cINTTerminalRuleCall_0 = (RuleCall)cGroup.eContents().get(0);
+ private final Keyword cExKeyword_1 = (Keyword)cGroup.eContents().get(1);
+
+ //EXS:
+ // INT "ex";
+ public ParserRule getRule() { return rule; }
+
+ //INT "ex"
+ public Group getGroup() { return cGroup; }
+
+ //INT
+ public RuleCall getINTTerminalRuleCall_0() { return cINTTerminalRuleCall_0; }
+
+ //"ex"
+ public Keyword getExKeyword_1() { return cExKeyword_1; }
+ }
+
+ public class LENGTHElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "LENGTH");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final RuleCall cINTTerminalRuleCall_0 = (RuleCall)cGroup.eContents().get(0);
+ private final Alternatives cAlternatives_1 = (Alternatives)cGroup.eContents().get(1);
+ private final Keyword cPxKeyword_1_0 = (Keyword)cAlternatives_1.eContents().get(0);
+ private final Keyword cCmKeyword_1_1 = (Keyword)cAlternatives_1.eContents().get(1);
+ private final Keyword cMmKeyword_1_2 = (Keyword)cAlternatives_1.eContents().get(2);
+ private final Keyword cInKeyword_1_3 = (Keyword)cAlternatives_1.eContents().get(3);
+ private final Keyword cPtKeyword_1_4 = (Keyword)cAlternatives_1.eContents().get(4);
+ private final Keyword cPcKeyword_1_5 = (Keyword)cAlternatives_1.eContents().get(5);
+
+ //LENGTH hidden():
+ // INT ("px" | "cm" | "mm" | "in" | "pt" | "pc");
+ public ParserRule getRule() { return rule; }
+
+ //INT ("px" | "cm" | "mm" | "in" | "pt" | "pc")
+ public Group getGroup() { return cGroup; }
+
+ //INT
+ public RuleCall getINTTerminalRuleCall_0() { return cINTTerminalRuleCall_0; }
+
+ //"px" | "cm" | "mm" | "in" | "pt" | "pc"
+ public Alternatives getAlternatives_1() { return cAlternatives_1; }
+
+ //"px"
+ public Keyword getPxKeyword_1_0() { return cPxKeyword_1_0; }
+
+ //"cm"
+ public Keyword getCmKeyword_1_1() { return cCmKeyword_1_1; }
+
+ //"mm"
+ public Keyword getMmKeyword_1_2() { return cMmKeyword_1_2; }
+
+ //"in"
+ public Keyword getInKeyword_1_3() { return cInKeyword_1_3; }
+
+ //"pt"
+ public Keyword getPtKeyword_1_4() { return cPtKeyword_1_4; }
+
+ //"pc"
+ public Keyword getPcKeyword_1_5() { return cPcKeyword_1_5; }
+ }
+
+ public class ANGLEElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ANGLE");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final RuleCall cINTTerminalRuleCall_0 = (RuleCall)cGroup.eContents().get(0);
+ private final Alternatives cAlternatives_1 = (Alternatives)cGroup.eContents().get(1);
+ private final Keyword cDegKeyword_1_0 = (Keyword)cAlternatives_1.eContents().get(0);
+ private final Keyword cRadKeyword_1_1 = (Keyword)cAlternatives_1.eContents().get(1);
+ private final Keyword cGradKeyword_1_2 = (Keyword)cAlternatives_1.eContents().get(2);
+
+ //ANGLE:
+ // INT ("deg" | "rad" | "grad");
+ public ParserRule getRule() { return rule; }
+
+ //INT ("deg" | "rad" | "grad")
+ public Group getGroup() { return cGroup; }
+
+ //INT
+ public RuleCall getINTTerminalRuleCall_0() { return cINTTerminalRuleCall_0; }
+
+ //"deg" | "rad" | "grad"
+ public Alternatives getAlternatives_1() { return cAlternatives_1; }
+
+ //"deg"
+ public Keyword getDegKeyword_1_0() { return cDegKeyword_1_0; }
+
+ //"rad"
+ public Keyword getRadKeyword_1_1() { return cRadKeyword_1_1; }
+
+ //"grad"
+ public Keyword getGradKeyword_1_2() { return cGradKeyword_1_2; }
+ }
+
+ public class TIMEElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TIME");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final RuleCall cINTTerminalRuleCall_0 = (RuleCall)cGroup.eContents().get(0);
+ private final Alternatives cAlternatives_1 = (Alternatives)cGroup.eContents().get(1);
+ private final Keyword cMsKeyword_1_0 = (Keyword)cAlternatives_1.eContents().get(0);
+ private final Keyword cSKeyword_1_1 = (Keyword)cAlternatives_1.eContents().get(1);
+
+ //TIME:
+ // INT ("ms" | "s");
+ public ParserRule getRule() { return rule; }
+
+ //INT ("ms" | "s")
+ public Group getGroup() { return cGroup; }
+
+ //INT
+ public RuleCall getINTTerminalRuleCall_0() { return cINTTerminalRuleCall_0; }
+
+ //"ms" | "s"
+ public Alternatives getAlternatives_1() { return cAlternatives_1; }
+
+ //"ms"
+ public Keyword getMsKeyword_1_0() { return cMsKeyword_1_0; }
+
+ //"s"
+ public Keyword getSKeyword_1_1() { return cSKeyword_1_1; }
+ }
+
+ public class FREQElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "FREQ");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final RuleCall cINTTerminalRuleCall_0 = (RuleCall)cGroup.eContents().get(0);
+ private final Alternatives cAlternatives_1 = (Alternatives)cGroup.eContents().get(1);
+ private final Keyword cHzKeyword_1_0 = (Keyword)cAlternatives_1.eContents().get(0);
+ private final Keyword cKhzKeyword_1_1 = (Keyword)cAlternatives_1.eContents().get(1);
+
+ //FREQ:
+ // INT ("hz" | "khz");
+ public ParserRule getRule() { return rule; }
+
+ //INT ("hz" | "khz")
+ public Group getGroup() { return cGroup; }
+
+ //INT
+ public RuleCall getINTTerminalRuleCall_0() { return cINTTerminalRuleCall_0; }
+
+ //"hz" | "khz"
+ public Alternatives getAlternatives_1() { return cAlternatives_1; }
+
+ //"hz"
+ public Keyword getHzKeyword_1_0() { return cHzKeyword_1_0; }
+
+ //"khz"
+ public Keyword getKhzKeyword_1_1() { return cKhzKeyword_1_1; }
+ }
+
+ public class Css_hash_classElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "css_hash_class");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment cTypeAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final Alternatives cTypeAlternatives_0_0 = (Alternatives)cTypeAssignment_0.eContents().get(0);
+ private final Keyword cTypeNumberSignKeyword_0_0_0 = (Keyword)cTypeAlternatives_0_0.eContents().get(0);
+ private final Keyword cTypeFullStopKeyword_0_0_1 = (Keyword)cTypeAlternatives_0_0.eContents().get(1);
+ private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final RuleCall cNameIdentTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
+
+ //css_hash_class:
+ // type=("#" | ".") name=ident;
+ public ParserRule getRule() { return rule; }
+
+ //type=("#" | ".") name=ident
+ public Group getGroup() { return cGroup; }
+
+ //type=("#" | ".")
+ public Assignment getTypeAssignment_0() { return cTypeAssignment_0; }
+
+ //"#" | "."
+ public Alternatives getTypeAlternatives_0_0() { return cTypeAlternatives_0_0; }
+
+ //"#"
+ public Keyword getTypeNumberSignKeyword_0_0_0() { return cTypeNumberSignKeyword_0_0_0; }
+
+ //"."
+ public Keyword getTypeFullStopKeyword_0_0_1() { return cTypeFullStopKeyword_0_0_1; }
+
+ //name=ident
+ public Assignment getNameAssignment_1() { return cNameAssignment_1; }
+
+ //ident
+ public RuleCall getNameIdentTerminalRuleCall_1_0() { return cNameIdentTerminalRuleCall_1_0; }
+ }
+
+ public class CombinatorElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "combinator");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final Keyword cPlusSignKeyword_0 = (Keyword)cAlternatives.eContents().get(0);
+ private final Keyword cGreaterThanSignKeyword_1 = (Keyword)cAlternatives.eContents().get(1);
+
+ //combinator hidden(WS):
+ // "+" | ">";
+ public ParserRule getRule() { return rule; }
+
+ //"+" | ">"
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //"+"
+ public Keyword getPlusSignKeyword_0() { return cPlusSignKeyword_0; }
+
+ //">"
+ public Keyword getGreaterThanSignKeyword_1() { return cGreaterThanSignKeyword_1; }
+ }
+
+ public class Unary_operatorElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "unary_operator");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final Keyword cHyphenMinusKeyword_0 = (Keyword)cAlternatives.eContents().get(0);
+ private final Keyword cPlusSignKeyword_1 = (Keyword)cAlternatives.eContents().get(1);
+
+ //unary_operator:
+ // "-" | "+";
+ public ParserRule getRule() { return rule; }
+
+ //"-" | "+"
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //"-"
+ public Keyword getHyphenMinusKeyword_0() { return cHyphenMinusKeyword_0; }
+
+ //"+"
+ public Keyword getPlusSignKeyword_1() { return cPlusSignKeyword_1; }
+ }
+
+
+ private StylesheetElements pStylesheet;
+ private RulesElements pRules;
+ private Css_importElements pCss_import;
+ private SelectorElements pSelector;
+ private Simple_selectorElements pSimple_selector;
+ private PseudoElements pPseudo;
+ private Element_nameElements pElement_name;
+ private DeclarationElements pDeclaration;
+ private ExprElements pExpr;
+ private TermElements pTerm;
+ private FunctionElements pFunction;
+ private URIElements pURI;
+ private Unary_numbersElements pUnary_numbers;
+ private PERCENTAGEElements pPERCENTAGE;
+ private EMSElements pEMS;
+ private EXSElements pEXS;
+ private LENGTHElements pLENGTH;
+ private ANGLEElements pANGLE;
+ private TIMEElements pTIME;
+ private FREQElements pFREQ;
+ private Css_hash_classElements pCss_hash_class;
+ private TerminalRule tHexdigits;
+ private TerminalRule tIdent;
+ private CombinatorElements pCombinator;
+ private Unary_operatorElements pUnary_operator;
+
+ private final GrammarProvider grammarProvider;
+
+ private TerminalsGrammarAccess gaTerminals;
+
+ @Inject
+ public CSSGrammarAccess(GrammarProvider grammarProvider,
+ TerminalsGrammarAccess gaTerminals) {
+ this.grammarProvider = grammarProvider;
+ this.gaTerminals = gaTerminals;
+ }
+
+ public Grammar getGrammar() {
+ return grammarProvider.getGrammar(this);
+ }
+
+
+ public TerminalsGrammarAccess getTerminalsGrammarAccess() {
+ return gaTerminals;
+ }
+
+
+ //stylesheet:
+ // location=STRING? importName+=css_import* ruleset+=Rules*;
+ public StylesheetElements getStylesheetAccess() {
+ return (pStylesheet != null) ? pStylesheet : (pStylesheet = new StylesheetElements());
+ }
+
+ public ParserRule getStylesheetRule() {
+ return getStylesheetAccess().getRule();
+ }
+
+ //Rules:
+ // selectors+=selector ("," selectors+=selector)* "{" declarations+=declaration? (";" declarations+=declaration?)* "}";
+ public RulesElements getRulesAccess() {
+ return (pRules != null) ? pRules : (pRules = new RulesElements());
+ }
+
+ public ParserRule getRulesRule() {
+ return getRulesAccess().getRule();
+ }
+
+ //css_import:
+ // "@import" (string_name=STRING | URI) ";";
+ public Css_importElements getCss_importAccess() {
+ return (pCss_import != null) ? pCss_import : (pCss_import = new Css_importElements());
+ }
+
+ public ParserRule getCss_importRule() {
+ return getCss_importAccess().getRule();
+ }
+
+ //selector hidden():
+ // simpleselectors=simple_selector (combinator=combinator selector=selector | WS+ (combinator=combinator?
+ // selector=selector)?)?;
+ public SelectorElements getSelectorAccess() {
+ return (pSelector != null) ? pSelector : (pSelector = new SelectorElements());
+ }
+
+ public ParserRule getSelectorRule() {
+ return getSelectorAccess().getRule();
+ }
+
+ //simple_selector:
+ // element=element_name id+=css_hash_class* pseudo+=pseudo* | id+=css_hash_class+;
+ public Simple_selectorElements getSimple_selectorAccess() {
+ return (pSimple_selector != null) ? pSimple_selector : (pSimple_selector = new Simple_selectorElements());
+ }
+
+ public ParserRule getSimple_selectorRule() {
+ return getSimple_selectorAccess().getRule();
+ }
+
+ //pseudo:
+ // ":" name=ident | function=function name=ident?;
+ public PseudoElements getPseudoAccess() {
+ return (pPseudo != null) ? pPseudo : (pPseudo = new PseudoElements());
+ }
+
+ public ParserRule getPseudoRule() {
+ return getPseudoAccess().getRule();
+ }
+
+ //element_name:
+ // name=ident | name="*";
+ public Element_nameElements getElement_nameAccess() {
+ return (pElement_name != null) ? pElement_name : (pElement_name = new Element_nameElements());
+ }
+
+ public ParserRule getElement_nameRule() {
+ return getElement_nameAccess().getRule();
+ }
+
+ //declaration:
+ // property=ident ":" expr=expr priority="!important"?;
+ public DeclarationElements getDeclarationAccess() {
+ return (pDeclaration != null) ? pDeclaration : (pDeclaration = new DeclarationElements());
+ }
+
+ public ParserRule getDeclarationRule() {
+ return getDeclarationAccess().getRule();
+ }
+
+ //expr:
+ // term+=term (operators+=("/" | ",")? term+=term)*;
+ public ExprElements getExprAccess() {
+ return (pExpr != null) ? pExpr : (pExpr = new ExprElements());
+ }
+
+ public ParserRule getExprRule() {
+ return getExprAccess().getRule();
+ }
+
+ //term:
+ // unary=unary_operator? number=unary_numbers | name=STRING | id=ident | uri=URI | color=hexdigits | function=function;
+ public TermElements getTermAccess() {
+ return (pTerm != null) ? pTerm : (pTerm = new TermElements());
+ }
+
+ public ParserRule getTermRule() {
+ return getTermAccess().getRule();
+ }
+
+ //function:
+ // name=ident "(" expr=expr ")";
+ public FunctionElements getFunctionAccess() {
+ return (pFunction != null) ? pFunction : (pFunction = new FunctionElements());
+ }
+
+ public ParserRule getFunctionRule() {
+ return getFunctionAccess().getRule();
+ }
+
+ //URI:
+ // "url" "(" {URI} (name+=STRING | ("\\" | "/") id+=ident)* ("." id+=ident)? ")";
+ public URIElements getURIAccess() {
+ return (pURI != null) ? pURI : (pURI = new URIElements());
+ }
+
+ public ParserRule getURIRule() {
+ return getURIAccess().getRule();
+ }
+
+ //unary_numbers:
+ // INT | PERCENTAGE | LENGTH | EMS | EXS | ANGLE | TIME | FREQ;
+ public Unary_numbersElements getUnary_numbersAccess() {
+ return (pUnary_numbers != null) ? pUnary_numbers : (pUnary_numbers = new Unary_numbersElements());
+ }
+
+ public ParserRule getUnary_numbersRule() {
+ return getUnary_numbersAccess().getRule();
+ }
+
+ //PERCENTAGE:
+ // INT "%";
+ public PERCENTAGEElements getPERCENTAGEAccess() {
+ return (pPERCENTAGE != null) ? pPERCENTAGE : (pPERCENTAGE = new PERCENTAGEElements());
+ }
+
+ public ParserRule getPERCENTAGERule() {
+ return getPERCENTAGEAccess().getRule();
+ }
+
+ //EMS:
+ // INT "em";
+ public EMSElements getEMSAccess() {
+ return (pEMS != null) ? pEMS : (pEMS = new EMSElements());
+ }
+
+ public ParserRule getEMSRule() {
+ return getEMSAccess().getRule();
+ }
+
+ //EXS:
+ // INT "ex";
+ public EXSElements getEXSAccess() {
+ return (pEXS != null) ? pEXS : (pEXS = new EXSElements());
+ }
+
+ public ParserRule getEXSRule() {
+ return getEXSAccess().getRule();
+ }
+
+ //LENGTH hidden():
+ // INT ("px" | "cm" | "mm" | "in" | "pt" | "pc");
+ public LENGTHElements getLENGTHAccess() {
+ return (pLENGTH != null) ? pLENGTH : (pLENGTH = new LENGTHElements());
+ }
+
+ public ParserRule getLENGTHRule() {
+ return getLENGTHAccess().getRule();
+ }
+
+ //ANGLE:
+ // INT ("deg" | "rad" | "grad");
+ public ANGLEElements getANGLEAccess() {
+ return (pANGLE != null) ? pANGLE : (pANGLE = new ANGLEElements());
+ }
+
+ public ParserRule getANGLERule() {
+ return getANGLEAccess().getRule();
+ }
+
+ //TIME:
+ // INT ("ms" | "s");
+ public TIMEElements getTIMEAccess() {
+ return (pTIME != null) ? pTIME : (pTIME = new TIMEElements());
+ }
+
+ public ParserRule getTIMERule() {
+ return getTIMEAccess().getRule();
+ }
+
+ //FREQ:
+ // INT ("hz" | "khz");
+ public FREQElements getFREQAccess() {
+ return (pFREQ != null) ? pFREQ : (pFREQ = new FREQElements());
+ }
+
+ public ParserRule getFREQRule() {
+ return getFREQAccess().getRule();
+ }
+
+ //css_hash_class:
+ // type=("#" | ".") name=ident;
+ public Css_hash_classElements getCss_hash_classAccess() {
+ return (pCss_hash_class != null) ? pCss_hash_class : (pCss_hash_class = new Css_hash_classElements());
+ }
+
+ public ParserRule getCss_hash_classRule() {
+ return getCss_hash_classAccess().getRule();
+ }
+
+ //terminal hexdigits:
+ // "#" ("0".."9" | "a".."f" | "A".."F")+;
+ public TerminalRule getHexdigitsRule() {
+ return (tHexdigits != null) ? tHexdigits : (tHexdigits = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "hexdigits"));
+ }
+
+ //terminal ident:
+ // ("_" | "-" | "a".."z" | "A".."Z") ("_" | "-" | "a".."z" | "A".."Z" | "0".."9")*;
+ public TerminalRule getIdentRule() {
+ return (tIdent != null) ? tIdent : (tIdent = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "ident"));
+ }
+
+ //combinator hidden(WS):
+ // "+" | ">";
+ public CombinatorElements getCombinatorAccess() {
+ return (pCombinator != null) ? pCombinator : (pCombinator = new CombinatorElements());
+ }
+
+ public ParserRule getCombinatorRule() {
+ return getCombinatorAccess().getRule();
+ }
+
+ //unary_operator:
+ // "-" | "+";
+ public Unary_operatorElements getUnary_operatorAccess() {
+ return (pUnary_operator != null) ? pUnary_operator : (pUnary_operator = new Unary_operatorElements());
+ }
+
+ public ParserRule getUnary_operatorRule() {
+ return getUnary_operatorAccess().getRule();
+ }
+
+ //terminal ID:
+ // "^"? ("a".."z" | "A".."Z" | "_") ("a".."z" | "A".."Z" | "_" | "0".."9")*;
+ public TerminalRule getIDRule() {
+ return gaTerminals.getIDRule();
+ }
+
+ //terminal INT returns ecore::EInt:
+ // "0".."9"+;
+ public TerminalRule getINTRule() {
+ return gaTerminals.getINTRule();
+ }
+
+ //terminal STRING:
+ // "\"" ("\\" ("b" | "t" | "n" | "f" | "r" | "u" | "\"" | "\'" | "\\") | !("\\" | "\""))* "\"" | "\'" ("\\" ("b" | "t" |
+ // "n" | "f" | "r" | "u" | "\"" | "\'" | "\\") | !("\\" | "\'"))* "\'";
+ public TerminalRule getSTRINGRule() {
+ return gaTerminals.getSTRINGRule();
+ }
+
+ //terminal ML_COMMENT:
+ // "/ *"->"* /";
+ public TerminalRule getML_COMMENTRule() {
+ return gaTerminals.getML_COMMENTRule();
+ }
+
+ //terminal SL_COMMENT:
+ // "//" !("\n" | "\r")* ("\r"? "\n")?;
+ public TerminalRule getSL_COMMENTRule() {
+ return gaTerminals.getSL_COMMENTRule();
+ }
+
+ //terminal WS:
+ // (" " | "\t" | "\r" | "\n")+;
+ public TerminalRule getWSRule() {
+ return gaTerminals.getWSRule();
+ }
+
+ //terminal ANY_OTHER:
+ // .;
+ public TerminalRule getANY_OTHERRule() {
+ return gaTerminals.getANY_OTHERRule();
+ }
+}
diff --git a/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/validation/AbstractCSSJavaValidator.java b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/validation/AbstractCSSJavaValidator.java
new file mode 100644
index 00000000..b7575d91
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.css.editor/src-gen/org/eclipse/e4/validation/AbstractCSSJavaValidator.java
@@ -0,0 +1,20 @@
+package org.eclipse.e4.validation;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.xtext.validation.AbstractDeclarativeValidator;
+import org.eclipse.xtext.validation.ComposedChecks;
+
+@ComposedChecks(validators= {org.eclipse.xtext.validation.ImportUriValidator.class})
+public class AbstractCSSJavaValidator extends AbstractDeclarativeValidator {
+
+ @Override
+ protected List<EPackage> getEPackages() {
+ List<EPackage> result = new ArrayList<EPackage>();
+ result.add(org.eclipse.e4.cSS.CSSPackage.eINSTANCE);
+ return result;
+ }
+
+}
diff --git a/bundles/org.eclipse.e4.tools.css.editor/src/org/eclipse/e4/CSS.xtext b/bundles/org.eclipse.e4.tools.css.editor/src/org/eclipse/e4/CSS.xtext
new file mode 100644
index 00000000..bd69faf8
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.css.editor/src/org/eclipse/e4/CSS.xtext
@@ -0,0 +1,90 @@
+grammar org.eclipse.e4.CSS with org.eclipse.xtext.common.Terminals
+
+generate cSS "http://www.eclipse.org/e4/CSS"
+
+stylesheet:
+ location=STRING?
+ (importName+=css_import)*
+ (ruleset+=Rules)*
+ ;
+
+Rules:
+ selectors+=selector (',' selectors+=selector )*
+ '{' declarations+=declaration? ( ';' declarations+=declaration? )* '}'
+ ;
+
+
+css_import:
+ '@import' (string_name=STRING | URI) ';'
+;
+
+selector hidden():
+ simpleselectors=simple_selector ( combinator=combinator selector=selector | WS+ ( combinator=combinator? selector=selector )? )?
+ ;
+
+
+ simple_selector:
+ (element=element_name id+=css_hash_class* pseudo+=pseudo*) | (id+=css_hash_class+)
+ ;
+
+
+pseudo:
+ ':' name=ident | function=function name=ident?
+ ;
+
+element_name: (name=ident | name='*')
+ ;
+
+ declaration
+ : property=ident ':' expr=expr priority="!important"?
+ ;
+
+ expr
+ : term+=term ( operators+= ('/' | ',')? term+=term )*
+ ;
+
+
+ term: unary=unary_operator?
+ number= unary_numbers | name=STRING | id=ident | uri=URI | color=hexdigits | function=function
+ ;
+
+ function
+ : name=ident '(' expr=expr ')'
+ ;
+
+URI:
+'url''(' {URI}(name+=STRING | (('\\' |'/')(id+=ident)) )*('.'id+=ident)? ')';
+
+unary_numbers:
+ INT | PERCENTAGE | LENGTH | EMS | EXS | ANGLE | TIME | FREQ
+;
+PERCENTAGE: INT '%';
+EMS: INT 'em';
+EXS: INT 'ex';
+LENGTH hidden(): INT ('px' | 'cm' | 'mm' | 'in' | 'pt' | 'pc' ) ;
+
+ANGLE: INT ('deg' | 'rad' | 'grad' );
+TIME: INT ('ms'| 's' );
+FREQ: INT ('hz' | 'khz');
+
+
+
+ css_hash_class :
+ type=('#' | '.') name=ident
+;
+
+terminal hexdigits: '#' ('0' .. '9' | 'a'..'f' | 'A'..'F')+
+;
+
+terminal ident:
+ ('_' | '-' | 'a'..'z' | 'A'..'Z' ) ('_' | '-' | 'a'..'z' | 'A'..'Z' | '0'..'9' )*
+;
+
+combinator hidden(WS): '+'
+ | '>'
+ ;
+unary_operator
+ : '-' | '+'
+ ;
+
+
diff --git a/bundles/org.eclipse.e4.tools.css.editor/src/org/eclipse/e4/CSSRuntimeModule.java b/bundles/org.eclipse.e4.tools.css.editor/src/org/eclipse/e4/CSSRuntimeModule.java
new file mode 100644
index 00000000..44ac8977
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.css.editor/src/org/eclipse/e4/CSSRuntimeModule.java
@@ -0,0 +1,11 @@
+/*
+ * generated by Xtext
+ */
+package org.eclipse.e4;
+
+/**
+ * Use this class to register components to be used at runtime / without the Equinox extension registry.
+ */
+public class CSSRuntimeModule extends org.eclipse.e4.AbstractCSSRuntimeModule {
+
+}
diff --git a/bundles/org.eclipse.e4.tools.css.editor/src/org/eclipse/e4/CSSStandaloneSetup.java b/bundles/org.eclipse.e4.tools.css.editor/src/org/eclipse/e4/CSSStandaloneSetup.java
new file mode 100644
index 00000000..958ca39a
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.css.editor/src/org/eclipse/e4/CSSStandaloneSetup.java
@@ -0,0 +1,14 @@
+
+package org.eclipse.e4;
+
+/**
+ * Initialization support for running Xtext languages
+ * without equinox extension registry
+ */
+public class CSSStandaloneSetup extends CSSStandaloneSetupGenerated{
+
+ public static void doSetup() {
+ new CSSStandaloneSetup().createInjectorAndDoEMFRegistration();
+ }
+}
+
diff --git a/bundles/org.eclipse.e4.tools.css.editor/src/org/eclipse/e4/GenerateCSS.mwe2 b/bundles/org.eclipse.e4.tools.css.editor/src/org/eclipse/e4/GenerateCSS.mwe2
new file mode 100644
index 00000000..ab36778f
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.css.editor/src/org/eclipse/e4/GenerateCSS.mwe2
@@ -0,0 +1,132 @@
+module org.eclipse.e4.GenerateCSS
+
+import org.eclipse.emf.mwe.utils.*
+import org.eclipse.xtext.generator.*
+import org.eclipse.xtext.ui.generator.*
+
+var grammarURI = "classpath:/org/eclipse/e4/CSS.xtext"
+var file.extensions = "css"
+var projectName = "org.eclipse.e4.tools.css.editor"
+var runtimeProject = "../${projectName}"
+
+Workflow {
+ bean = StandaloneSetup {
+ scanClassPath = true
+ platformUri = "${runtimeProject}/.."
+ }
+
+ component = DirectoryCleaner {
+ directory = "${runtimeProject}/src-gen"
+ }
+
+ component = DirectoryCleaner {
+ directory = "${runtimeProject}.ui/src-gen"
+ }
+
+ component = Generator {
+ pathRtProject = runtimeProject
+ pathUiProject = "${runtimeProject}.ui"
+ pathTestProject = "${runtimeProject}.tests"
+ projectNameRt = projectName
+ projectNameUi = "${projectName}.ui"
+ language = {
+ uri = grammarURI
+ fileExtensions = file.extensions
+
+ // Java API to access grammar elements (required by several other fragments)
+ fragment = grammarAccess.GrammarAccessFragment {}
+
+ // generates Java API for the generated EPackages
+ fragment = ecore.EcoreGeneratorFragment {
+ // referencedGenModels = "
+ // platform:/resource/org.eclipse.xtext.xbase/model/Xbase.genmodel,
+ // platform:/resource/org.eclipse.xtext.common.types/model/JavaVMTypes.genmodel
+ // "
+ }
+
+ // the serialization component
+ fragment = parseTreeConstructor.ParseTreeConstructorFragment {}
+
+ // a custom ResourceFactory for use with EMF
+ fragment = resourceFactory.ResourceFactoryFragment {
+ fileExtensions = file.extensions
+ }
+
+ // The antlr parser generator fragment.
+ fragment = parser.antlr.XtextAntlrGeneratorFragment {
+ // options = {
+ // backtrack = true
+ // }
+ }
+
+ // java-based API for validation
+ fragment = validation.JavaValidatorFragment {
+ composedCheck = "org.eclipse.xtext.validation.ImportUriValidator"
+// composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator"
+ }
+
+ // scoping and exporting API
+ // fragment = scoping.ImportURIScopingFragment {}
+ // fragment = exporting.SimpleNamesFragment {}
+
+ // scoping and exporting API
+ fragment = scoping.ImportNamespacesScopingFragment {}
+ fragment = exporting.QualifiedNamesFragment {}
+ fragment = builder.BuilderIntegrationFragment {}
+
+ // generator API
+ fragment = generator.GeneratorFragment {
+ generateMwe = true
+ generateJavaMain = true
+ }
+
+ // formatter API
+ fragment = formatting.FormatterFragment {}
+
+ // labeling API
+ fragment = labeling.LabelProviderFragment {}
+
+ // outline API
+ fragment = outline.OutlineTreeProviderFragment {}
+ fragment = outline.QuickOutlineFragment {}
+
+ // quickfix API
+ fragment = quickfix.QuickfixProviderFragment {}
+
+ // content assist API
+ fragment = contentAssist.JavaBasedContentAssistFragment {}
+
+ // generates a more lightweight Antlr parser and lexer tailored for content assist
+ fragment = parser.antlr.XtextAntlrUiGeneratorFragment {}
+
+ // generates junit test support classes into Generator#pathTestProject
+ fragment = junit.Junit4Fragment {}
+
+ // project wizard (optional)
+ // fragment = projectWizard.SimpleProjectWizardFragment {
+ // generatorProjectName = "${projectName}"
+ // modelFileExtension = file.extensions
+ // }
+
+ // provides the necessary bindings for java types integration
+ fragment = types.TypesGeneratorFragment {}
+
+ // generates the required bindings only if the grammar inherits from Xbase
+ fragment = xbase.XbaseGeneratorFragment {}
+
+ // provides a preference page for template proposals
+ fragment = templates.CodetemplatesGeneratorFragment {}
+
+ // rename refactoring
+ // fragment = refactoring.RefactorElementNameFragment {}
+
+ // provides a compare view
+ // fragment = compare.CompareFragment {
+ // fileExtensions = file.extensions
+ // }
+
+ // Serializer 2.0
+ // fragment = serializer.SerializerFragment {}
+ }
+ }
+}
diff --git a/bundles/org.eclipse.e4.tools.css.editor/src/org/eclipse/e4/formatting/CSSFormatter.java b/bundles/org.eclipse.e4.tools.css.editor/src/org/eclipse/e4/formatting/CSSFormatter.java
new file mode 100644
index 00000000..9e0de54e
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.css.editor/src/org/eclipse/e4/formatting/CSSFormatter.java
@@ -0,0 +1,27 @@
+/*
+ * generated by Xtext
+ */
+package org.eclipse.e4.formatting;
+
+import org.eclipse.xtext.formatting.impl.AbstractDeclarativeFormatter;
+import org.eclipse.xtext.formatting.impl.FormattingConfig;
+
+/**
+ * This class contains custom formatting description.
+ *
+ * see : http://www.eclipse.org/Xtext/documentation/latest/xtext.html#formatting
+ * on how and when to use it
+ *
+ * Also see {@link org.eclipse.xtext.xtext.XtextFormattingTokenSerializer} as an example
+ */
+public class CSSFormatter extends AbstractDeclarativeFormatter {
+
+ @Override
+ protected void configureFormatting(FormattingConfig c) {
+// It's usually a good idea to activate the following three statements.
+// They will add and preserve newlines around comments
+// c.setLinewrap(0, 1, 2).before(getGrammarAccess().getSL_COMMENTRule());
+// c.setLinewrap(0, 1, 2).before(getGrammarAccess().getML_COMMENTRule());
+// c.setLinewrap(0, 1, 1).after(getGrammarAccess().getML_COMMENTRule());
+ }
+}
diff --git a/bundles/org.eclipse.e4.tools.css.editor/src/org/eclipse/e4/generator/CSSGenerator.xtend b/bundles/org.eclipse.e4.tools.css.editor/src/org/eclipse/e4/generator/CSSGenerator.xtend
new file mode 100644
index 00000000..b5c02631
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.css.editor/src/org/eclipse/e4/generator/CSSGenerator.xtend
@@ -0,0 +1,15 @@
+/*
+ * generated by Xtext
+ */
+package org.eclipse.e4.generator
+
+import org.eclipse.emf.ecore.resource.Resource
+import org.eclipse.xtext.generator.IGenerator
+import org.eclipse.xtext.generator.IFileSystemAccess
+
+class CSSGenerator implements IGenerator {
+
+ override void doGenerate(Resource resource, IFileSystemAccess fsa) {
+ //TODO implment me
+ }
+}
diff --git a/bundles/org.eclipse.e4.tools.css.editor/src/org/eclipse/e4/generator/CSSGeneratorMWE.mwe2 b/bundles/org.eclipse.e4.tools.css.editor/src/org/eclipse/e4/generator/CSSGeneratorMWE.mwe2
new file mode 100644
index 00000000..95cc25ae
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.css.editor/src/org/eclipse/e4/generator/CSSGeneratorMWE.mwe2
@@ -0,0 +1,32 @@
+
+module org.eclipse.e4.generator.CSSGeneratorMWE
+
+import org.eclipse.emf.mwe.utils.*
+
+var targetDir
+var modelPath
+
+Workflow {
+
+ component = org.eclipse.xtext.mwe.Reader {
+ // lookup all resources on the classpath
+ // useJavaClassPath = true
+
+ // or define search scope explicitly
+ path = modelPath
+
+ // this class will be generated by the xtext generator
+ register = org.eclipse.e4.CSSStandaloneSetup {}
+ loadResource = {
+ slot = "model"
+ }
+ }
+
+ component = org.eclipse.xtext.generator.GeneratorComponent {
+ register = org.eclipse.e4.CSSStandaloneSetup {}
+ slot = 'model'
+ outlet = {
+ path = targetDir
+ }
+ }
+}
diff --git a/bundles/org.eclipse.e4.tools.css.editor/src/org/eclipse/e4/generator/Main.java b/bundles/org.eclipse.e4.tools.css.editor/src/org/eclipse/e4/generator/Main.java
new file mode 100644
index 00000000..072ec123
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.css.editor/src/org/eclipse/e4/generator/Main.java
@@ -0,0 +1,67 @@
+
+/*
+ * generated by Xtext
+ */
+package org.eclipse.e4.generator;
+
+import java.util.List;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.xtext.generator.IGenerator;
+import org.eclipse.xtext.generator.JavaIoFileSystemAccess;
+import org.eclipse.xtext.util.CancelIndicator;
+import org.eclipse.xtext.validation.CheckMode;
+import org.eclipse.xtext.validation.IResourceValidator;
+import org.eclipse.xtext.validation.Issue;
+
+import com.google.inject.Inject;
+import com.google.inject.Injector;
+import com.google.inject.Provider;
+
+public class Main {
+
+ public static void main(String[] args) {
+ if (args.length==0) {
+ System.err.println("Aborting: no path to EMF resource provided!");
+ return;
+ }
+ Injector injector = new org.eclipse.e4.CSSStandaloneSetupGenerated().createInjectorAndDoEMFRegistration();
+ Main main = injector.getInstance(Main.class);
+ main.runGenerator(args[0]);
+ }
+
+ @Inject
+ private Provider<ResourceSet> resourceSetProvider;
+
+ @Inject
+ private IResourceValidator validator;
+
+ @Inject
+ private IGenerator generator;
+
+ @Inject
+ private JavaIoFileSystemAccess fileAccess;
+
+ protected void runGenerator(String string) {
+ // load the resource
+ ResourceSet set = resourceSetProvider.get();
+ Resource resource = set.getResource(URI.createURI(string), true);
+
+ // validate the resource
+ List<Issue> list = validator.validate(resource, CheckMode.ALL, CancelIndicator.NullImpl);
+ if (!list.isEmpty()) {
+ for (Issue issue : list) {
+ System.err.println(issue);
+ }
+ return;
+ }
+
+ // configure and start the generator
+ fileAccess.setOutputPath("src-gen/");
+ generator.doGenerate(resource, fileAccess);
+
+ System.out.println("Code generation finished.");
+ }
+}
diff --git a/bundles/org.eclipse.e4.tools.css.editor/src/org/eclipse/e4/scoping/CSSScopeProvider.java b/bundles/org.eclipse.e4.tools.css.editor/src/org/eclipse/e4/scoping/CSSScopeProvider.java
new file mode 100644
index 00000000..04715995
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.css.editor/src/org/eclipse/e4/scoping/CSSScopeProvider.java
@@ -0,0 +1,17 @@
+/*
+ * generated by Xtext
+ */
+package org.eclipse.e4.scoping;
+
+import org.eclipse.xtext.scoping.impl.AbstractDeclarativeScopeProvider;
+
+/**
+ * This class contains custom scoping description.
+ *
+ * see : http://www.eclipse.org/Xtext/documentation/latest/xtext.html#scoping
+ * on how and when to use it
+ *
+ */
+public class CSSScopeProvider extends AbstractDeclarativeScopeProvider {
+
+}
diff --git a/bundles/org.eclipse.e4.tools.css.editor/src/org/eclipse/e4/validation/CSSJavaValidator.java b/bundles/org.eclipse.e4.tools.css.editor/src/org/eclipse/e4/validation/CSSJavaValidator.java
new file mode 100644
index 00000000..df71b947
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.css.editor/src/org/eclipse/e4/validation/CSSJavaValidator.java
@@ -0,0 +1,13 @@
+package org.eclipse.e4.validation;
+
+
+public class CSSJavaValidator extends AbstractCSSJavaValidator {
+
+// @Check
+// public void checkGreetingStartsWithCapital(Greeting greeting) {
+// if (!Character.isUpperCase(greeting.getName().charAt(0))) {
+// warning("Name should start with a capital", MyDslPackage.Literals.GREETING__NAME);
+// }
+// }
+
+}
diff --git a/bundles/org.eclipse.e4.tools.css.editor/xtend-gen/org/eclipse/e4/generator/CSSGenerator.java b/bundles/org.eclipse.e4.tools.css.editor/xtend-gen/org/eclipse/e4/generator/CSSGenerator.java
new file mode 100644
index 00000000..2e289942
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.css.editor/xtend-gen/org/eclipse/e4/generator/CSSGenerator.java
@@ -0,0 +1,12 @@
+package org.eclipse.e4.generator;
+
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.xtext.generator.IFileSystemAccess;
+import org.eclipse.xtext.generator.IGenerator;
+
+@SuppressWarnings("all")
+public class CSSGenerator implements IGenerator {
+
+ public void doGenerate(final Resource resource, final IFileSystemAccess fsa) {
+ }
+} \ No newline at end of file

Back to the top