Merge "Bug 515277 - [Requirements] Support boilerplates (templates) to write requirements text easily" into neon
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ide/.classpath b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ide/.classpath
new file mode 100644
index 0000000..9081d4f
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ide/.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/JavaSE-1.8"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ide/.gitignore b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ide/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ide/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ide/.project b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ide/.project
new file mode 100644
index 0000000..9a9db58
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ide/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ide</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <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>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription>
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ide/.settings/org.eclipse.core.resources.prefs b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ide/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..68a0304
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ide/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=windows-1252
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ide/.settings/org.eclipse.jdt.core.prefs b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ide/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..0c68a61
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ide/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ide/META-INF/MANIFEST.MF b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ide/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..21d4e08
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ide/META-INF/MANIFEST.MF
@@ -0,0 +1,15 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ide
+Bundle-Vendor: Eclipse Modelling Project
+Bundle-Version: 0.7.0.qualifier
+Bundle-SymbolicName: org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ide; singleton:=true
+Bundle-ActivationPolicy: lazy
+Require-Bundle: org.eclipse.papyrus.requirements.sysml14.boilerplatetext,
+ org.eclipse.xtext.ide,
+ org.eclipse.xtext.xbase.ide,
+ org.antlr.runtime
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Export-Package: org.eclipse.papyrus.requirements.sysml14.ide.contentassist.antlr,
+ org.eclipse.papyrus.requirements.sysml14.ide.contentassist.antlr.internal
+
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ide/about.html b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ide/about.html
new file mode 100644
index 0000000..d35d5ae
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ide/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 5, 2007</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, "Program" will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party ("Redistributor") and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ide/build.properties b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ide/build.properties
new file mode 100644
index 0000000..e1f6f18
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ide/build.properties
@@ -0,0 +1,8 @@
+source.. = src/,\
+ src-gen/,\
+ xtend-gen/
+bin.includes = .,\
+ META-INF/,\
+ about.html
+src.includes = about.html,\
+ src/
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ide/src-gen/META-INF/services/org.eclipse.xtext.ISetup b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ide/src-gen/META-INF/services/org.eclipse.xtext.ISetup
new file mode 100644
index 0000000..84eff18
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ide/src-gen/META-INF/services/org.eclipse.xtext.ISetup
@@ -0,0 +1 @@
+org.eclipse.papyrus.requirements.sysml14.ide.BoilerplateTextIdeSetup
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ide/src-gen/org/eclipse/papyrus/requirements/sysml14/ide/AbstractBoilerplateTextIdeModule.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ide/src-gen/org/eclipse/papyrus/requirements/sysml14/ide/AbstractBoilerplateTextIdeModule.java
new file mode 100644
index 0000000..952b598
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ide/src-gen/org/eclipse/papyrus/requirements/sysml14/ide/AbstractBoilerplateTextIdeModule.java
@@ -0,0 +1,61 @@
+/*****************************************************************************
+ * Copyright (c) 2017 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *
+ * Mauricio Alferez (mauricio.alferez@cea.fr) CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+/*
+ * generated by Xtext 2.11.0
+ */
+package org.eclipse.papyrus.requirements.sysml14.ide;
+
+import com.google.inject.Binder;
+import com.google.inject.name.Names;
+import org.eclipse.papyrus.requirements.sysml14.ide.contentassist.antlr.BoilerplateTextParser;
+import org.eclipse.papyrus.requirements.sysml14.ide.contentassist.antlr.internal.InternalBoilerplateTextLexer;
+import org.eclipse.xtext.ide.DefaultIdeModule;
+import org.eclipse.xtext.ide.LexerIdeBindings;
+import org.eclipse.xtext.ide.editor.contentassist.FQNPrefixMatcher;
+import org.eclipse.xtext.ide.editor.contentassist.IPrefixMatcher;
+import org.eclipse.xtext.ide.editor.contentassist.IProposalConflictHelper;
+import org.eclipse.xtext.ide.editor.contentassist.antlr.AntlrProposalConflictHelper;
+import org.eclipse.xtext.ide.editor.contentassist.antlr.IContentAssistParser;
+import org.eclipse.xtext.ide.editor.contentassist.antlr.internal.Lexer;
+
+/**
+ * Manual modifications go to {@link BoilerplateTextIdeModule}.
+ */
+@SuppressWarnings("all")
+public abstract class AbstractBoilerplateTextIdeModule extends DefaultIdeModule {
+
+ // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
+ public void configureContentAssistLexer(Binder binder) {
+ binder.bind(Lexer.class)
+ .annotatedWith(Names.named(LexerIdeBindings.CONTENT_ASSIST))
+ .to(InternalBoilerplateTextLexer.class);
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
+ public Class<? extends IContentAssistParser> bindIContentAssistParser() {
+ return BoilerplateTextParser.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
+ public Class<? extends IProposalConflictHelper> bindIProposalConflictHelper() {
+ return AntlrProposalConflictHelper.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.exporting.QualifiedNamesFragment2
+ public Class<? extends IPrefixMatcher> bindIPrefixMatcher() {
+ return FQNPrefixMatcher.class;
+ }
+
+}
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ide/src-gen/org/eclipse/papyrus/requirements/sysml14/ide/contentassist/antlr/BoilerplateTextParser.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ide/src-gen/org/eclipse/papyrus/requirements/sysml14/ide/contentassist/antlr/BoilerplateTextParser.java
new file mode 100644
index 0000000..a139a0c
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ide/src-gen/org/eclipse/papyrus/requirements/sysml14/ide/contentassist/antlr/BoilerplateTextParser.java
@@ -0,0 +1,100 @@
+/*****************************************************************************
+ * Copyright (c) 2017 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *
+ * Mauricio Alferez (mauricio.alferez@cea.fr) CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+/*
+ * generated by Xtext 2.11.0
+ */
+package org.eclipse.papyrus.requirements.sysml14.ide.contentassist.antlr;
+
+import com.google.inject.Inject;
+import java.util.HashMap;
+import java.util.Map;
+import org.eclipse.papyrus.requirements.sysml14.ide.contentassist.antlr.internal.InternalBoilerplateTextParser;
+import org.eclipse.papyrus.requirements.sysml14.services.BoilerplateTextGrammarAccess;
+import org.eclipse.xtext.AbstractElement;
+import org.eclipse.xtext.ide.editor.contentassist.antlr.AbstractContentAssistParser;
+
+public class BoilerplateTextParser extends AbstractContentAssistParser {
+
+ @Inject
+ private BoilerplateTextGrammarAccess grammarAccess;
+
+ private Map<AbstractElement, String> nameMappings;
+
+ @Override
+ protected InternalBoilerplateTextParser createParser() {
+ InternalBoilerplateTextParser result = new InternalBoilerplateTextParser(null);
+ result.setGrammarAccess(grammarAccess);
+ return result;
+ }
+
+ @Override
+ protected String getRuleName(AbstractElement element) {
+ if (nameMappings == null) {
+ nameMappings = new HashMap<AbstractElement, String>() {
+ private static final long serialVersionUID = 1L;
+ {
+ put(grammarAccess.getPrefixAccess().getAlternatives(), "rule__Prefix__Alternatives");
+ put(grammarAccess.getPredicateAccess().getAlternatives(), "rule__Predicate__Alternatives");
+ put(grammarAccess.getShallNotAllowAccess().getAlternatives_3(), "rule__ShallNotAllow__Alternatives_3");
+ put(grammarAccess.getShallAllowAccess().getAlternatives_2(), "rule__ShallAllow__Alternatives_2");
+ put(grammarAccess.getRequirementAccess().getGroup(), "rule__Requirement__Group__0");
+ put(grammarAccess.getRequirementAccess().getGroup_0(), "rule__Requirement__Group_0__0");
+ put(grammarAccess.getIfAccess().getGroup(), "rule__If__Group__0");
+ put(grammarAccess.getIfAccess().getGroup_2(), "rule__If__Group_2__0");
+ put(grammarAccess.getWhileAccess().getGroup(), "rule__While__Group__0");
+ put(grammarAccess.getShallNotAllowAccess().getGroup(), "rule__ShallNotAllow__Group__0");
+ put(grammarAccess.getShallNotAllowAccess().getGroup_3_1(), "rule__ShallNotAllow__Group_3_1__0");
+ put(grammarAccess.getShallAllowAccess().getGroup(), "rule__ShallAllow__Group__0");
+ put(grammarAccess.getShallAllowAccess().getGroup_2_1(), "rule__ShallAllow__Group_2_1__0");
+ put(grammarAccess.getShallNotAccess().getGroup(), "rule__ShallNot__Group__0");
+ put(grammarAccess.getShallNotAccess().getGroup_2(), "rule__ShallNot__Group_2__0");
+ put(grammarAccess.getShallAccess().getGroup(), "rule__Shall__Group__0");
+ put(grammarAccess.getShallAccess().getGroup_1(), "rule__Shall__Group_1__0");
+ put(grammarAccess.getShallAccess().getGroup_1_0(), "rule__Shall__Group_1_0__0");
+ put(grammarAccess.getModelAccess().getModelAssignment(), "rule__Model__ModelAssignment");
+ put(grammarAccess.getRequirementAccess().getPrefixAssignment_0_0(), "rule__Requirement__PrefixAssignment_0_0");
+ put(grammarAccess.getRequirementAccess().getSystemAssignment_1(), "rule__Requirement__SystemAssignment_1");
+ put(grammarAccess.getRequirementAccess().getPredicateAssignment_2(), "rule__Requirement__PredicateAssignment_2");
+ put(grammarAccess.getSubjectAccess().getSystemAssignment(), "rule__Subject__SystemAssignment");
+ put(grammarAccess.getIfAccess().getEventAssignment_1(), "rule__If__EventAssignment_1");
+ put(grammarAccess.getIfAccess().getEventAssignment_2_1(), "rule__If__EventAssignment_2_1");
+ put(grammarAccess.getWhileAccess().getStateAssignment_1(), "rule__While__StateAssignment_1");
+ put(grammarAccess.getShallNotAllowAccess().getActionAssignment_3_0(), "rule__ShallNotAllow__ActionAssignment_3_0");
+ put(grammarAccess.getShallNotAllowAccess().getEntityAssignment_3_1_0(), "rule__ShallNotAllow__EntityAssignment_3_1_0");
+ put(grammarAccess.getShallNotAllowAccess().getActionPerformedByEntityAssignment_3_1_2(), "rule__ShallNotAllow__ActionPerformedByEntityAssignment_3_1_2");
+ put(grammarAccess.getShallAllowAccess().getActionAssignment_2_0(), "rule__ShallAllow__ActionAssignment_2_0");
+ put(grammarAccess.getShallAllowAccess().getEntityAssignment_2_1_0(), "rule__ShallAllow__EntityAssignment_2_1_0");
+ put(grammarAccess.getShallAllowAccess().getActionPerformedByEntityAssignment_2_1_2(), "rule__ShallAllow__ActionPerformedByEntityAssignment_2_1_2");
+ put(grammarAccess.getShallNotAccess().getActionAssignment_3(), "rule__ShallNot__ActionAssignment_3");
+ put(grammarAccess.getShallAccess().getActionAssignment_2(), "rule__Shall__ActionAssignment_2");
+ }
+ };
+ }
+ return nameMappings.get(element);
+ }
+
+ @Override
+ protected String[] getInitialHiddenTokens() {
+ return new String[] { "RULE_WS", "RULE_ML_COMMENT", "RULE_SL_COMMENT" };
+ }
+
+ public BoilerplateTextGrammarAccess getGrammarAccess() {
+ return this.grammarAccess;
+ }
+
+ public void setGrammarAccess(BoilerplateTextGrammarAccess grammarAccess) {
+ this.grammarAccess = grammarAccess;
+ }
+}
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ide/src-gen/org/eclipse/papyrus/requirements/sysml14/ide/contentassist/antlr/PartialBoilerplateTextContentAssistParser.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ide/src-gen/org/eclipse/papyrus/requirements/sysml14/ide/contentassist/antlr/PartialBoilerplateTextContentAssistParser.java
new file mode 100644
index 0000000..eff2fb5
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ide/src-gen/org/eclipse/papyrus/requirements/sysml14/ide/contentassist/antlr/PartialBoilerplateTextContentAssistParser.java
@@ -0,0 +1,48 @@
+/*****************************************************************************
+ * Copyright (c) 2017 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *
+ * Mauricio Alferez (mauricio.alferez@cea.fr) CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+/*
+ * generated by Xtext 2.11.0
+ */
+package org.eclipse.papyrus.requirements.sysml14.ide.contentassist.antlr;
+
+import java.util.Collection;
+import java.util.Collections;
+import org.eclipse.xtext.AbstractRule;
+import org.eclipse.xtext.ide.editor.contentassist.antlr.FollowElement;
+import org.eclipse.xtext.ide.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
+import org.eclipse.xtext.ide.editor.partialEditing.IPartialEditingContentAssistParser;
+import org.eclipse.xtext.util.PolymorphicDispatcher;
+
+public class PartialBoilerplateTextContentAssistParser extends BoilerplateTextParser implements IPartialEditingContentAssistParser {
+
+ private AbstractRule rule;
+
+ @Override
+ public void initializeFor(AbstractRule rule) {
+ this.rule = rule;
+ }
+
+ @Override
+ protected Collection<FollowElement> getFollowElements(AbstractInternalContentAssistParser parser) {
+ if (rule == null || rule.eIsProxy())
+ return Collections.emptyList();
+ String methodName = "entryRule" + rule.getName();
+ PolymorphicDispatcher<Collection<FollowElement>> dispatcher =
+ new PolymorphicDispatcher<Collection<FollowElement>>(methodName, 0, 0, Collections.singletonList(parser));
+ dispatcher.invoke();
+ return parser.getFollowElements();
+ }
+
+}
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ide/src-gen/org/eclipse/papyrus/requirements/sysml14/ide/contentassist/antlr/internal/InternalBoilerplateText.g b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ide/src-gen/org/eclipse/papyrus/requirements/sysml14/ide/contentassist/antlr/internal/InternalBoilerplateText.g
new file mode 100644
index 0000000..0f8b0a9
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ide/src-gen/org/eclipse/papyrus/requirements/sysml14/ide/contentassist/antlr/internal/InternalBoilerplateText.g
@@ -0,0 +1,1743 @@
+/*****************************************************************************
+ * Copyright (c) 2017 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *
+ * Mauricio Alferez (mauricio.alferez@cea.fr) CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+/*
+ * generated by Xtext 2.11.0
+ */
+grammar InternalBoilerplateText;
+
+options {
+ superClass=AbstractInternalContentAssistParser;
+ backtrack=true;
+}
+
+@lexer::header {
+package org.eclipse.papyrus.requirements.sysml14.ide.contentassist.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.ide.editor.contentassist.antlr.internal.Lexer;
+}
+
+@parser::header {
+package org.eclipse.papyrus.requirements.sysml14.ide.contentassist.antlr.internal;
+
+import java.io.InputStream;
+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.XtextTokenStream;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
+import org.eclipse.xtext.ide.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
+import org.eclipse.xtext.ide.editor.contentassist.antlr.internal.DFA;
+import org.eclipse.papyrus.requirements.sysml14.services.BoilerplateTextGrammarAccess;
+
+}
+@parser::members {
+ private BoilerplateTextGrammarAccess grammarAccess;
+
+ public void setGrammarAccess(BoilerplateTextGrammarAccess grammarAccess) {
+ this.grammarAccess = grammarAccess;
+ }
+
+ @Override
+ protected Grammar getGrammar() {
+ return grammarAccess.getGrammar();
+ }
+
+ @Override
+ protected String getValueForTokenName(String tokenName) {
+ return tokenName;
+ }
+}
+
+// Entry rule entryRuleModel
+entryRuleModel
+:
+{ before(grammarAccess.getModelRule()); }
+ ruleModel
+{ after(grammarAccess.getModelRule()); }
+ EOF
+;
+
+// Rule Model
+ruleModel
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getModelAccess().getModelAssignment()); }
+ (rule__Model__ModelAssignment)
+ { after(grammarAccess.getModelAccess().getModelAssignment()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleRequirement
+entryRuleRequirement
+:
+{ before(grammarAccess.getRequirementRule()); }
+ ruleRequirement
+{ after(grammarAccess.getRequirementRule()); }
+ EOF
+;
+
+// Rule Requirement
+ruleRequirement
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getRequirementAccess().getGroup()); }
+ (rule__Requirement__Group__0)
+ { after(grammarAccess.getRequirementAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleSubject
+entryRuleSubject
+:
+{ before(grammarAccess.getSubjectRule()); }
+ ruleSubject
+{ after(grammarAccess.getSubjectRule()); }
+ EOF
+;
+
+// Rule Subject
+ruleSubject
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getSubjectAccess().getSystemAssignment()); }
+ (rule__Subject__SystemAssignment)
+ { after(grammarAccess.getSubjectAccess().getSystemAssignment()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRulePrefix
+entryRulePrefix
+:
+{ before(grammarAccess.getPrefixRule()); }
+ rulePrefix
+{ after(grammarAccess.getPrefixRule()); }
+ EOF
+;
+
+// Rule Prefix
+rulePrefix
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getPrefixAccess().getAlternatives()); }
+ (rule__Prefix__Alternatives)
+ { after(grammarAccess.getPrefixAccess().getAlternatives()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleIf
+entryRuleIf
+:
+{ before(grammarAccess.getIfRule()); }
+ ruleIf
+{ after(grammarAccess.getIfRule()); }
+ EOF
+;
+
+// Rule If
+ruleIf
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getIfAccess().getGroup()); }
+ (rule__If__Group__0)
+ { after(grammarAccess.getIfAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleWhile
+entryRuleWhile
+:
+{ before(grammarAccess.getWhileRule()); }
+ ruleWhile
+{ after(grammarAccess.getWhileRule()); }
+ EOF
+;
+
+// Rule While
+ruleWhile
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getWhileAccess().getGroup()); }
+ (rule__While__Group__0)
+ { after(grammarAccess.getWhileAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRulePredicate
+entryRulePredicate
+:
+{ before(grammarAccess.getPredicateRule()); }
+ rulePredicate
+{ after(grammarAccess.getPredicateRule()); }
+ EOF
+;
+
+// Rule Predicate
+rulePredicate
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getPredicateAccess().getAlternatives()); }
+ (rule__Predicate__Alternatives)
+ { after(grammarAccess.getPredicateAccess().getAlternatives()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleShallNotAllow
+entryRuleShallNotAllow
+:
+{ before(grammarAccess.getShallNotAllowRule()); }
+ ruleShallNotAllow
+{ after(grammarAccess.getShallNotAllowRule()); }
+ EOF
+;
+
+// Rule ShallNotAllow
+ruleShallNotAllow
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getShallNotAllowAccess().getGroup()); }
+ (rule__ShallNotAllow__Group__0)
+ { after(grammarAccess.getShallNotAllowAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleShallAllow
+entryRuleShallAllow
+:
+{ before(grammarAccess.getShallAllowRule()); }
+ ruleShallAllow
+{ after(grammarAccess.getShallAllowRule()); }
+ EOF
+;
+
+// Rule ShallAllow
+ruleShallAllow
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getShallAllowAccess().getGroup()); }
+ (rule__ShallAllow__Group__0)
+ { after(grammarAccess.getShallAllowAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleShallNot
+entryRuleShallNot
+:
+{ before(grammarAccess.getShallNotRule()); }
+ ruleShallNot
+{ after(grammarAccess.getShallNotRule()); }
+ EOF
+;
+
+// Rule ShallNot
+ruleShallNot
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getShallNotAccess().getGroup()); }
+ (rule__ShallNot__Group__0)
+ { after(grammarAccess.getShallNotAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleShall
+entryRuleShall
+:
+{ before(grammarAccess.getShallRule()); }
+ ruleShall
+{ after(grammarAccess.getShallRule()); }
+ EOF
+;
+
+// Rule Shall
+ruleShall
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+ (
+ { before(grammarAccess.getShallAccess().getGroup()); }
+ (rule__Shall__Group__0)
+ { after(grammarAccess.getShallAccess().getGroup()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Prefix__Alternatives
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getPrefixAccess().getIfParserRuleCall_0()); }
+ ruleIf
+ { after(grammarAccess.getPrefixAccess().getIfParserRuleCall_0()); }
+ )
+ |
+ (
+ { before(grammarAccess.getPrefixAccess().getWhileParserRuleCall_1()); }
+ ruleWhile
+ { after(grammarAccess.getPrefixAccess().getWhileParserRuleCall_1()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Predicate__Alternatives
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getPredicateAccess().getShallParserRuleCall_0()); }
+ ruleShall
+ { after(grammarAccess.getPredicateAccess().getShallParserRuleCall_0()); }
+ )
+ |
+ (
+ { before(grammarAccess.getPredicateAccess().getShallNotParserRuleCall_1()); }
+ ruleShallNot
+ { after(grammarAccess.getPredicateAccess().getShallNotParserRuleCall_1()); }
+ )
+ |
+ (
+ { before(grammarAccess.getPredicateAccess().getShallAllowParserRuleCall_2()); }
+ ruleShallAllow
+ { after(grammarAccess.getPredicateAccess().getShallAllowParserRuleCall_2()); }
+ )
+ |
+ (
+ { before(grammarAccess.getPredicateAccess().getShallNotAllowParserRuleCall_3()); }
+ ruleShallNotAllow
+ { after(grammarAccess.getPredicateAccess().getShallNotAllowParserRuleCall_3()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ShallNotAllow__Alternatives_3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getShallNotAllowAccess().getActionAssignment_3_0()); }
+ (rule__ShallNotAllow__ActionAssignment_3_0)
+ { after(grammarAccess.getShallNotAllowAccess().getActionAssignment_3_0()); }
+ )
+ |
+ (
+ { before(grammarAccess.getShallNotAllowAccess().getGroup_3_1()); }
+ (rule__ShallNotAllow__Group_3_1__0)
+ { after(grammarAccess.getShallNotAllowAccess().getGroup_3_1()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ShallAllow__Alternatives_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getShallAllowAccess().getActionAssignment_2_0()); }
+ (rule__ShallAllow__ActionAssignment_2_0)
+ { after(grammarAccess.getShallAllowAccess().getActionAssignment_2_0()); }
+ )
+ |
+ (
+ { before(grammarAccess.getShallAllowAccess().getGroup_2_1()); }
+ (rule__ShallAllow__Group_2_1__0)
+ { after(grammarAccess.getShallAllowAccess().getGroup_2_1()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Requirement__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Requirement__Group__0__Impl
+ rule__Requirement__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Requirement__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getRequirementAccess().getGroup_0()); }
+ (rule__Requirement__Group_0__0)?
+ { after(grammarAccess.getRequirementAccess().getGroup_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Requirement__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Requirement__Group__1__Impl
+ rule__Requirement__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Requirement__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getRequirementAccess().getSystemAssignment_1()); }
+ (rule__Requirement__SystemAssignment_1)
+ { after(grammarAccess.getRequirementAccess().getSystemAssignment_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Requirement__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Requirement__Group__2__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Requirement__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getRequirementAccess().getPredicateAssignment_2()); }
+ (rule__Requirement__PredicateAssignment_2)
+ { after(grammarAccess.getRequirementAccess().getPredicateAssignment_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Requirement__Group_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Requirement__Group_0__0__Impl
+ rule__Requirement__Group_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Requirement__Group_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getRequirementAccess().getPrefixAssignment_0_0()); }
+ (rule__Requirement__PrefixAssignment_0_0)
+ { after(grammarAccess.getRequirementAccess().getPrefixAssignment_0_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Requirement__Group_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Requirement__Group_0__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Requirement__Group_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getRequirementAccess().getCommaKeyword_0_1()); }
+ ','
+ { after(grammarAccess.getRequirementAccess().getCommaKeyword_0_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__If__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__If__Group__0__Impl
+ rule__If__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__If__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getIfAccess().getIfKeyword_0()); }
+ 'if'
+ { after(grammarAccess.getIfAccess().getIfKeyword_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__If__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__If__Group__1__Impl
+ rule__If__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__If__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getIfAccess().getEventAssignment_1()); }
+ (rule__If__EventAssignment_1)
+ { after(grammarAccess.getIfAccess().getEventAssignment_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__If__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__If__Group__2__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__If__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getIfAccess().getGroup_2()); }
+ (rule__If__Group_2__0)*
+ { after(grammarAccess.getIfAccess().getGroup_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__If__Group_2__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__If__Group_2__0__Impl
+ rule__If__Group_2__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__If__Group_2__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getIfAccess().getAndKeyword_2_0()); }
+ 'and'
+ { after(grammarAccess.getIfAccess().getAndKeyword_2_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__If__Group_2__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__If__Group_2__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__If__Group_2__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getIfAccess().getEventAssignment_2_1()); }
+ (rule__If__EventAssignment_2_1)
+ { after(grammarAccess.getIfAccess().getEventAssignment_2_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__While__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__While__Group__0__Impl
+ rule__While__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__While__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getWhileAccess().getWhileKeyword_0()); }
+ 'while'
+ { after(grammarAccess.getWhileAccess().getWhileKeyword_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__While__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__While__Group__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__While__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getWhileAccess().getStateAssignment_1()); }
+ (rule__While__StateAssignment_1)
+ { after(grammarAccess.getWhileAccess().getStateAssignment_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ShallNotAllow__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ShallNotAllow__Group__0__Impl
+ rule__ShallNotAllow__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ShallNotAllow__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getShallNotAllowAccess().getShallKeyword_0()); }
+ 'shall'
+ { after(grammarAccess.getShallNotAllowAccess().getShallKeyword_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ShallNotAllow__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ShallNotAllow__Group__1__Impl
+ rule__ShallNotAllow__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ShallNotAllow__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getShallNotAllowAccess().getNotKeyword_1()); }
+ ('not')
+ { after(grammarAccess.getShallNotAllowAccess().getNotKeyword_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ShallNotAllow__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ShallNotAllow__Group__2__Impl
+ rule__ShallNotAllow__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ShallNotAllow__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getShallNotAllowAccess().getAllowKeyword_2()); }
+ ('allow')
+ { after(grammarAccess.getShallNotAllowAccess().getAllowKeyword_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ShallNotAllow__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ShallNotAllow__Group__3__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ShallNotAllow__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getShallNotAllowAccess().getAlternatives_3()); }
+ (rule__ShallNotAllow__Alternatives_3)
+ { after(grammarAccess.getShallNotAllowAccess().getAlternatives_3()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ShallNotAllow__Group_3_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ShallNotAllow__Group_3_1__0__Impl
+ rule__ShallNotAllow__Group_3_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ShallNotAllow__Group_3_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getShallNotAllowAccess().getEntityAssignment_3_1_0()); }
+ (rule__ShallNotAllow__EntityAssignment_3_1_0)
+ { after(grammarAccess.getShallNotAllowAccess().getEntityAssignment_3_1_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ShallNotAllow__Group_3_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ShallNotAllow__Group_3_1__1__Impl
+ rule__ShallNotAllow__Group_3_1__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ShallNotAllow__Group_3_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getShallNotAllowAccess().getToKeyword_3_1_1()); }
+ 'to'
+ { after(grammarAccess.getShallNotAllowAccess().getToKeyword_3_1_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ShallNotAllow__Group_3_1__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ShallNotAllow__Group_3_1__2__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ShallNotAllow__Group_3_1__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getShallNotAllowAccess().getActionPerformedByEntityAssignment_3_1_2()); }
+ (rule__ShallNotAllow__ActionPerformedByEntityAssignment_3_1_2)
+ { after(grammarAccess.getShallNotAllowAccess().getActionPerformedByEntityAssignment_3_1_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ShallAllow__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ShallAllow__Group__0__Impl
+ rule__ShallAllow__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ShallAllow__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getShallAllowAccess().getShallKeyword_0()); }
+ 'shall'
+ { after(grammarAccess.getShallAllowAccess().getShallKeyword_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ShallAllow__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ShallAllow__Group__1__Impl
+ rule__ShallAllow__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ShallAllow__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getShallAllowAccess().getAllowKeyword_1()); }
+ ('allow')
+ { after(grammarAccess.getShallAllowAccess().getAllowKeyword_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ShallAllow__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ShallAllow__Group__2__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ShallAllow__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getShallAllowAccess().getAlternatives_2()); }
+ (rule__ShallAllow__Alternatives_2)
+ { after(grammarAccess.getShallAllowAccess().getAlternatives_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ShallAllow__Group_2_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ShallAllow__Group_2_1__0__Impl
+ rule__ShallAllow__Group_2_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ShallAllow__Group_2_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getShallAllowAccess().getEntityAssignment_2_1_0()); }
+ (rule__ShallAllow__EntityAssignment_2_1_0)
+ { after(grammarAccess.getShallAllowAccess().getEntityAssignment_2_1_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ShallAllow__Group_2_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ShallAllow__Group_2_1__1__Impl
+ rule__ShallAllow__Group_2_1__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ShallAllow__Group_2_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getShallAllowAccess().getToKeyword_2_1_1()); }
+ 'to'
+ { after(grammarAccess.getShallAllowAccess().getToKeyword_2_1_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ShallAllow__Group_2_1__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ShallAllow__Group_2_1__2__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ShallAllow__Group_2_1__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getShallAllowAccess().getActionPerformedByEntityAssignment_2_1_2()); }
+ (rule__ShallAllow__ActionPerformedByEntityAssignment_2_1_2)
+ { after(grammarAccess.getShallAllowAccess().getActionPerformedByEntityAssignment_2_1_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ShallNot__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ShallNot__Group__0__Impl
+ rule__ShallNot__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ShallNot__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getShallNotAccess().getShallKeyword_0()); }
+ 'shall'
+ { after(grammarAccess.getShallNotAccess().getShallKeyword_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ShallNot__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ShallNot__Group__1__Impl
+ rule__ShallNot__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ShallNot__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getShallNotAccess().getNotKeyword_1()); }
+ ('not')
+ { after(grammarAccess.getShallNotAccess().getNotKeyword_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ShallNot__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ShallNot__Group__2__Impl
+ rule__ShallNot__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ShallNot__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getShallNotAccess().getGroup_2()); }
+ (rule__ShallNot__Group_2__0)?
+ { after(grammarAccess.getShallNotAccess().getGroup_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ShallNot__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ShallNot__Group__3__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ShallNot__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getShallNotAccess().getActionAssignment_3()); }
+ (rule__ShallNot__ActionAssignment_3)
+ { after(grammarAccess.getShallNotAccess().getActionAssignment_3()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ShallNot__Group_2__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ShallNot__Group_2__0__Impl
+ rule__ShallNot__Group_2__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ShallNot__Group_2__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getShallNotAccess().getBeKeyword_2_0()); }
+ 'be'
+ { after(grammarAccess.getShallNotAccess().getBeKeyword_2_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ShallNot__Group_2__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ShallNot__Group_2__1__Impl
+ rule__ShallNot__Group_2__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ShallNot__Group_2__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getShallNotAccess().getAbleKeyword_2_1()); }
+ ('able')
+ { after(grammarAccess.getShallNotAccess().getAbleKeyword_2_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ShallNot__Group_2__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ShallNot__Group_2__2__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ShallNot__Group_2__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getShallNotAccess().getToKeyword_2_2()); }
+ ('to')
+ { after(grammarAccess.getShallNotAccess().getToKeyword_2_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Shall__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Shall__Group__0__Impl
+ rule__Shall__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Shall__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getShallAccess().getShallKeyword_0()); }
+ 'shall'
+ { after(grammarAccess.getShallAccess().getShallKeyword_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Shall__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Shall__Group__1__Impl
+ rule__Shall__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Shall__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getShallAccess().getGroup_1()); }
+ (rule__Shall__Group_1__0)?
+ { after(grammarAccess.getShallAccess().getGroup_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Shall__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Shall__Group__2__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Shall__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getShallAccess().getActionAssignment_2()); }
+ (rule__Shall__ActionAssignment_2)
+ { after(grammarAccess.getShallAccess().getActionAssignment_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Shall__Group_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Shall__Group_1__0__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Shall__Group_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getShallAccess().getGroup_1_0()); }
+ (rule__Shall__Group_1_0__0)
+ { after(grammarAccess.getShallAccess().getGroup_1_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Shall__Group_1_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Shall__Group_1_0__0__Impl
+ rule__Shall__Group_1_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Shall__Group_1_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getShallAccess().getBeKeyword_1_0_0()); }
+ 'be'
+ { after(grammarAccess.getShallAccess().getBeKeyword_1_0_0()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Shall__Group_1_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Shall__Group_1_0__1__Impl
+ rule__Shall__Group_1_0__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Shall__Group_1_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getShallAccess().getAbleKeyword_1_0_1()); }
+ ('able')
+ { after(grammarAccess.getShallAccess().getAbleKeyword_1_0_1()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Shall__Group_1_0__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Shall__Group_1_0__2__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Shall__Group_1_0__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+ { before(grammarAccess.getShallAccess().getToKeyword_1_0_2()); }
+ ('to')
+ { after(grammarAccess.getShallAccess().getToKeyword_1_0_2()); }
+)
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Model__ModelAssignment
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getModelAccess().getModelRequirementParserRuleCall_0()); }
+ ruleRequirement
+ { after(grammarAccess.getModelAccess().getModelRequirementParserRuleCall_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Requirement__PrefixAssignment_0_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getRequirementAccess().getPrefixPrefixParserRuleCall_0_0_0()); }
+ rulePrefix
+ { after(grammarAccess.getRequirementAccess().getPrefixPrefixParserRuleCall_0_0_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Requirement__SystemAssignment_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getRequirementAccess().getSystemSubjectParserRuleCall_1_0()); }
+ ruleSubject
+ { after(grammarAccess.getRequirementAccess().getSystemSubjectParserRuleCall_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Requirement__PredicateAssignment_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getRequirementAccess().getPredicatePredicateParserRuleCall_2_0()); }
+ rulePredicate
+ { after(grammarAccess.getRequirementAccess().getPredicatePredicateParserRuleCall_2_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Subject__SystemAssignment
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getSubjectAccess().getSystemSTRINGTerminalRuleCall_0()); }
+ RULE_STRING
+ { after(grammarAccess.getSubjectAccess().getSystemSTRINGTerminalRuleCall_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__If__EventAssignment_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getIfAccess().getEventSTRINGTerminalRuleCall_1_0()); }
+ RULE_STRING
+ { after(grammarAccess.getIfAccess().getEventSTRINGTerminalRuleCall_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__If__EventAssignment_2_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getIfAccess().getEventSTRINGTerminalRuleCall_2_1_0()); }
+ RULE_STRING
+ { after(grammarAccess.getIfAccess().getEventSTRINGTerminalRuleCall_2_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__While__StateAssignment_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getWhileAccess().getStateSTRINGTerminalRuleCall_1_0()); }
+ RULE_STRING
+ { after(grammarAccess.getWhileAccess().getStateSTRINGTerminalRuleCall_1_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ShallNotAllow__ActionAssignment_3_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getShallNotAllowAccess().getActionSTRINGTerminalRuleCall_3_0_0()); }
+ RULE_STRING
+ { after(grammarAccess.getShallNotAllowAccess().getActionSTRINGTerminalRuleCall_3_0_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ShallNotAllow__EntityAssignment_3_1_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getShallNotAllowAccess().getEntitySTRINGTerminalRuleCall_3_1_0_0()); }
+ RULE_STRING
+ { after(grammarAccess.getShallNotAllowAccess().getEntitySTRINGTerminalRuleCall_3_1_0_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ShallNotAllow__ActionPerformedByEntityAssignment_3_1_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getShallNotAllowAccess().getActionPerformedByEntitySTRINGTerminalRuleCall_3_1_2_0()); }
+ RULE_STRING
+ { after(grammarAccess.getShallNotAllowAccess().getActionPerformedByEntitySTRINGTerminalRuleCall_3_1_2_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ShallAllow__ActionAssignment_2_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getShallAllowAccess().getActionSTRINGTerminalRuleCall_2_0_0()); }
+ RULE_STRING
+ { after(grammarAccess.getShallAllowAccess().getActionSTRINGTerminalRuleCall_2_0_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ShallAllow__EntityAssignment_2_1_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getShallAllowAccess().getEntitySTRINGTerminalRuleCall_2_1_0_0()); }
+ RULE_STRING
+ { after(grammarAccess.getShallAllowAccess().getEntitySTRINGTerminalRuleCall_2_1_0_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ShallAllow__ActionPerformedByEntityAssignment_2_1_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getShallAllowAccess().getActionPerformedByEntitySTRINGTerminalRuleCall_2_1_2_0()); }
+ RULE_STRING
+ { after(grammarAccess.getShallAllowAccess().getActionPerformedByEntitySTRINGTerminalRuleCall_2_1_2_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ShallNot__ActionAssignment_3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getShallNotAccess().getActionSTRINGTerminalRuleCall_3_0()); }
+ RULE_STRING
+ { after(grammarAccess.getShallNotAccess().getActionSTRINGTerminalRuleCall_3_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Shall__ActionAssignment_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ (
+ { before(grammarAccess.getShallAccess().getActionSTRINGTerminalRuleCall_2_0()); }
+ RULE_STRING
+ { after(grammarAccess.getShallAccess().getActionSTRINGTerminalRuleCall_2_0()); }
+ )
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+RULE_ID : '^'? ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*;
+
+RULE_INT : ('0'..'9')+;
+
+RULE_STRING : ('"' ('\\' .|~(('\\'|'"')))* '"'|'\'' ('\\' .|~(('\\'|'\'')))* '\'');
+
+RULE_ML_COMMENT : '/*' ( options {greedy=false;} : . )*'*/';
+
+RULE_SL_COMMENT : '//' ~(('\n'|'\r'))* ('\r'? '\n')?;
+
+RULE_WS : (' '|'\t'|'\r'|'\n')+;
+
+RULE_ANY_OTHER : .;
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ide/src-gen/org/eclipse/papyrus/requirements/sysml14/ide/contentassist/antlr/internal/InternalBoilerplateText.tokens b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ide/src-gen/org/eclipse/papyrus/requirements/sysml14/ide/contentassist/antlr/internal/InternalBoilerplateText.tokens
new file mode 100644
index 0000000..629db52
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ide/src-gen/org/eclipse/papyrus/requirements/sysml14/ide/contentassist/antlr/internal/InternalBoilerplateText.tokens
@@ -0,0 +1,27 @@
+','=11
+'able'=20
+'allow'=17
+'and'=13
+'be'=19
+'if'=12
+'not'=16
+'shall'=15
+'to'=18
+'while'=14
+RULE_ANY_OTHER=10
+RULE_ID=5
+RULE_INT=6
+RULE_ML_COMMENT=7
+RULE_SL_COMMENT=8
+RULE_STRING=4
+RULE_WS=9
+T__11=11
+T__12=12
+T__13=13
+T__14=14
+T__15=15
+T__16=16
+T__17=17
+T__18=18
+T__19=19
+T__20=20
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ide/src-gen/org/eclipse/papyrus/requirements/sysml14/ide/contentassist/antlr/internal/InternalBoilerplateTextLexer.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ide/src-gen/org/eclipse/papyrus/requirements/sysml14/ide/contentassist/antlr/internal/InternalBoilerplateTextLexer.java
new file mode 100644
index 0000000..46ec43d
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ide/src-gen/org/eclipse/papyrus/requirements/sysml14/ide/contentassist/antlr/internal/InternalBoilerplateTextLexer.java
@@ -0,0 +1,1058 @@
+package org.eclipse.papyrus.requirements.sysml14.ide.contentassist.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.ide.editor.contentassist.antlr.internal.Lexer;
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+
+@SuppressWarnings("all")
+public class InternalBoilerplateTextLexer extends Lexer {
+ public static final int RULE_STRING=4;
+ public static final int RULE_SL_COMMENT=8;
+ public static final int T__19=19;
+ public static final int T__15=15;
+ public static final int T__16=16;
+ public static final int T__17=17;
+ public static final int T__18=18;
+ public static final int T__11=11;
+ public static final int T__12=12;
+ public static final int T__13=13;
+ public static final int T__14=14;
+ public static final int EOF=-1;
+ public static final int RULE_ID=5;
+ public static final int RULE_WS=9;
+ public static final int RULE_ANY_OTHER=10;
+ public static final int RULE_INT=6;
+ public static final int RULE_ML_COMMENT=7;
+ public static final int T__20=20;
+
+ // delegates
+ // delegators
+
+ public InternalBoilerplateTextLexer() {;}
+ public InternalBoilerplateTextLexer(CharStream input) {
+ this(input, new RecognizerSharedState());
+ }
+ public InternalBoilerplateTextLexer(CharStream input, RecognizerSharedState state) {
+ super(input,state);
+
+ }
+ public String getGrammarFileName() { return "InternalBoilerplateText.g"; }
+
+ // $ANTLR start "T__11"
+ public final void mT__11() throws RecognitionException {
+ try {
+ int _type = T__11;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalBoilerplateText.g:11:7: ( ',' )
+ // InternalBoilerplateText.g:11:9: ','
+ {
+ match(',');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__11"
+
+ // $ANTLR start "T__12"
+ public final void mT__12() throws RecognitionException {
+ try {
+ int _type = T__12;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalBoilerplateText.g:12:7: ( 'if' )
+ // InternalBoilerplateText.g:12:9: 'if'
+ {
+ match("if");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__12"
+
+ // $ANTLR start "T__13"
+ public final void mT__13() throws RecognitionException {
+ try {
+ int _type = T__13;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalBoilerplateText.g:13:7: ( 'and' )
+ // InternalBoilerplateText.g:13:9: 'and'
+ {
+ match("and");
+
+
+ }
+
+ 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;
+ // InternalBoilerplateText.g:14:7: ( 'while' )
+ // InternalBoilerplateText.g:14:9: 'while'
+ {
+ match("while");
+
+
+ }
+
+ 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;
+ // InternalBoilerplateText.g:15:7: ( 'shall' )
+ // InternalBoilerplateText.g:15:9: 'shall'
+ {
+ match("shall");
+
+
+ }
+
+ 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;
+ // InternalBoilerplateText.g:16:7: ( 'not' )
+ // InternalBoilerplateText.g:16:9: 'not'
+ {
+ match("not");
+
+
+ }
+
+ 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;
+ // InternalBoilerplateText.g:17:7: ( 'allow' )
+ // InternalBoilerplateText.g:17:9: 'allow'
+ {
+ match("allow");
+
+
+ }
+
+ 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;
+ // InternalBoilerplateText.g:18:7: ( 'to' )
+ // InternalBoilerplateText.g:18:9: 'to'
+ {
+ match("to");
+
+
+ }
+
+ 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;
+ // InternalBoilerplateText.g:19:7: ( 'be' )
+ // InternalBoilerplateText.g:19:9: 'be'
+ {
+ match("be");
+
+
+ }
+
+ 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;
+ // InternalBoilerplateText.g:20:7: ( 'able' )
+ // InternalBoilerplateText.g:20:9: 'able'
+ {
+ match("able");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__20"
+
+ // $ANTLR start "RULE_ID"
+ public final void mRULE_ID() throws RecognitionException {
+ try {
+ int _type = RULE_ID;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalBoilerplateText.g:1731:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
+ // InternalBoilerplateText.g:1731:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+ {
+ // InternalBoilerplateText.g:1731:11: ( '^' )?
+ int alt1=2;
+ int LA1_0 = input.LA(1);
+
+ if ( (LA1_0=='^') ) {
+ alt1=1;
+ }
+ switch (alt1) {
+ case 1 :
+ // InternalBoilerplateText.g:1731: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;}
+
+ // InternalBoilerplateText.g:1731:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+ loop2:
+ do {
+ int alt2=2;
+ int LA2_0 = input.LA(1);
+
+ if ( ((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 :
+ // InternalBoilerplateText.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 loop2;
+ }
+ } 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;
+ // InternalBoilerplateText.g:1733:10: ( ( '0' .. '9' )+ )
+ // InternalBoilerplateText.g:1733:12: ( '0' .. '9' )+
+ {
+ // InternalBoilerplateText.g:1733:12: ( '0' .. '9' )+
+ int cnt3=0;
+ loop3:
+ do {
+ int alt3=2;
+ int LA3_0 = input.LA(1);
+
+ if ( ((LA3_0>='0' && LA3_0<='9')) ) {
+ alt3=1;
+ }
+
+
+ switch (alt3) {
+ case 1 :
+ // InternalBoilerplateText.g:1733:13: '0' .. '9'
+ {
+ matchRange('0','9');
+
+ }
+ break;
+
+ default :
+ if ( cnt3 >= 1 ) break loop3;
+ EarlyExitException eee =
+ new EarlyExitException(3, input);
+ throw eee;
+ }
+ cnt3++;
+ } 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;
+ // InternalBoilerplateText.g:1735:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
+ // InternalBoilerplateText.g:1735:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+ {
+ // InternalBoilerplateText.g:1735:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+ int alt6=2;
+ int LA6_0 = input.LA(1);
+
+ if ( (LA6_0=='\"') ) {
+ alt6=1;
+ }
+ else if ( (LA6_0=='\'') ) {
+ alt6=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 6, 0, input);
+
+ throw nvae;
+ }
+ switch (alt6) {
+ case 1 :
+ // InternalBoilerplateText.g:1735:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
+ {
+ match('\"');
+ // InternalBoilerplateText.g:1735:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
+ loop4:
+ do {
+ int alt4=3;
+ int LA4_0 = input.LA(1);
+
+ if ( (LA4_0=='\\') ) {
+ alt4=1;
+ }
+ else if ( ((LA4_0>='\u0000' && LA4_0<='!')||(LA4_0>='#' && LA4_0<='[')||(LA4_0>=']' && LA4_0<='\uFFFF')) ) {
+ alt4=2;
+ }
+
+
+ switch (alt4) {
+ case 1 :
+ // InternalBoilerplateText.g:1735:21: '\\\\' .
+ {
+ match('\\');
+ matchAny();
+
+ }
+ break;
+ case 2 :
+ // InternalBoilerplateText.g:1735:28: ~ ( ( '\\\\' | '\"' ) )
+ {
+ 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 loop4;
+ }
+ } while (true);
+
+ match('\"');
+
+ }
+ break;
+ case 2 :
+ // InternalBoilerplateText.g:1735:48: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
+ {
+ match('\'');
+ // InternalBoilerplateText.g:1735:53: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
+ loop5:
+ do {
+ int alt5=3;
+ int LA5_0 = input.LA(1);
+
+ if ( (LA5_0=='\\') ) {
+ alt5=1;
+ }
+ else if ( ((LA5_0>='\u0000' && LA5_0<='&')||(LA5_0>='(' && LA5_0<='[')||(LA5_0>=']' && LA5_0<='\uFFFF')) ) {
+ alt5=2;
+ }
+
+
+ switch (alt5) {
+ case 1 :
+ // InternalBoilerplateText.g:1735:54: '\\\\' .
+ {
+ match('\\');
+ matchAny();
+
+ }
+ break;
+ case 2 :
+ // InternalBoilerplateText.g:1735:61: ~ ( ( '\\\\' | '\\'' ) )
+ {
+ 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 loop5;
+ }
+ } 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;
+ // InternalBoilerplateText.g:1737:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+ // InternalBoilerplateText.g:1737:19: '/*' ( options {greedy=false; } : . )* '*/'
+ {
+ match("/*");
+
+ // InternalBoilerplateText.g:1737:24: ( options {greedy=false; } : . )*
+ loop7:
+ do {
+ int alt7=2;
+ int LA7_0 = input.LA(1);
+
+ if ( (LA7_0=='*') ) {
+ int LA7_1 = input.LA(2);
+
+ if ( (LA7_1=='/') ) {
+ alt7=2;
+ }
+ else if ( ((LA7_1>='\u0000' && LA7_1<='.')||(LA7_1>='0' && LA7_1<='\uFFFF')) ) {
+ alt7=1;
+ }
+
+
+ }
+ else if ( ((LA7_0>='\u0000' && LA7_0<=')')||(LA7_0>='+' && LA7_0<='\uFFFF')) ) {
+ alt7=1;
+ }
+
+
+ switch (alt7) {
+ case 1 :
+ // InternalBoilerplateText.g:1737:52: .
+ {
+ matchAny();
+
+ }
+ break;
+
+ default :
+ break loop7;
+ }
+ } 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;
+ // InternalBoilerplateText.g:1739:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+ // InternalBoilerplateText.g:1739:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+ {
+ match("//");
+
+ // InternalBoilerplateText.g:1739:24: (~ ( ( '\\n' | '\\r' ) ) )*
+ loop8:
+ do {
+ int alt8=2;
+ int LA8_0 = input.LA(1);
+
+ if ( ((LA8_0>='\u0000' && LA8_0<='\t')||(LA8_0>='\u000B' && LA8_0<='\f')||(LA8_0>='\u000E' && LA8_0<='\uFFFF')) ) {
+ alt8=1;
+ }
+
+
+ switch (alt8) {
+ case 1 :
+ // InternalBoilerplateText.g:1739: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 loop8;
+ }
+ } while (true);
+
+ // InternalBoilerplateText.g:1739:40: ( ( '\\r' )? '\\n' )?
+ int alt10=2;
+ int LA10_0 = input.LA(1);
+
+ if ( (LA10_0=='\n'||LA10_0=='\r') ) {
+ alt10=1;
+ }
+ switch (alt10) {
+ case 1 :
+ // InternalBoilerplateText.g:1739:41: ( '\\r' )? '\\n'
+ {
+ // InternalBoilerplateText.g:1739:41: ( '\\r' )?
+ int alt9=2;
+ int LA9_0 = input.LA(1);
+
+ if ( (LA9_0=='\r') ) {
+ alt9=1;
+ }
+ switch (alt9) {
+ case 1 :
+ // InternalBoilerplateText.g:1739: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;
+ // InternalBoilerplateText.g:1741:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+ // InternalBoilerplateText.g:1741:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+ {
+ // InternalBoilerplateText.g:1741:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+ int cnt11=0;
+ loop11:
+ do {
+ int alt11=2;
+ int LA11_0 = input.LA(1);
+
+ if ( ((LA11_0>='\t' && LA11_0<='\n')||LA11_0=='\r'||LA11_0==' ') ) {
+ alt11=1;
+ }
+
+
+ switch (alt11) {
+ case 1 :
+ // InternalBoilerplateText.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 ( cnt11 >= 1 ) break loop11;
+ EarlyExitException eee =
+ new EarlyExitException(11, input);
+ throw eee;
+ }
+ cnt11++;
+ } 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;
+ // InternalBoilerplateText.g:1743:16: ( . )
+ // InternalBoilerplateText.g:1743:18: .
+ {
+ matchAny();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_ANY_OTHER"
+
+ public void mTokens() throws RecognitionException {
+ // InternalBoilerplateText.g:1:8: ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
+ int alt12=17;
+ alt12 = dfa12.predict(input);
+ switch (alt12) {
+ case 1 :
+ // InternalBoilerplateText.g:1:10: T__11
+ {
+ mT__11();
+
+ }
+ break;
+ case 2 :
+ // InternalBoilerplateText.g:1:16: T__12
+ {
+ mT__12();
+
+ }
+ break;
+ case 3 :
+ // InternalBoilerplateText.g:1:22: T__13
+ {
+ mT__13();
+
+ }
+ break;
+ case 4 :
+ // InternalBoilerplateText.g:1:28: T__14
+ {
+ mT__14();
+
+ }
+ break;
+ case 5 :
+ // InternalBoilerplateText.g:1:34: T__15
+ {
+ mT__15();
+
+ }
+ break;
+ case 6 :
+ // InternalBoilerplateText.g:1:40: T__16
+ {
+ mT__16();
+
+ }
+ break;
+ case 7 :
+ // InternalBoilerplateText.g:1:46: T__17
+ {
+ mT__17();
+
+ }
+ break;
+ case 8 :
+ // InternalBoilerplateText.g:1:52: T__18
+ {
+ mT__18();
+
+ }
+ break;
+ case 9 :
+ // InternalBoilerplateText.g:1:58: T__19
+ {
+ mT__19();
+
+ }
+ break;
+ case 10 :
+ // InternalBoilerplateText.g:1:64: T__20
+ {
+ mT__20();
+
+ }
+ break;
+ case 11 :
+ // InternalBoilerplateText.g:1:70: RULE_ID
+ {
+ mRULE_ID();
+
+ }
+ break;
+ case 12 :
+ // InternalBoilerplateText.g:1:78: RULE_INT
+ {
+ mRULE_INT();
+
+ }
+ break;
+ case 13 :
+ // InternalBoilerplateText.g:1:87: RULE_STRING
+ {
+ mRULE_STRING();
+
+ }
+ break;
+ case 14 :
+ // InternalBoilerplateText.g:1:99: RULE_ML_COMMENT
+ {
+ mRULE_ML_COMMENT();
+
+ }
+ break;
+ case 15 :
+ // InternalBoilerplateText.g:1:115: RULE_SL_COMMENT
+ {
+ mRULE_SL_COMMENT();
+
+ }
+ break;
+ case 16 :
+ // InternalBoilerplateText.g:1:131: RULE_WS
+ {
+ mRULE_WS();
+
+ }
+ break;
+ case 17 :
+ // InternalBoilerplateText.g:1:139: RULE_ANY_OTHER
+ {
+ mRULE_ANY_OTHER();
+
+ }
+ break;
+
+ }
+
+ }
+
+
+ protected DFA12 dfa12 = new DFA12(this);
+ static final String DFA12_eotS =
+ "\2\uffff\7\23\1\20\2\uffff\3\20\3\uffff\1\41\1\uffff\6\23\1\50\1\51\6\uffff\1\52\4\23\1\57\3\uffff\1\23\1\61\2\23\1\uffff\1\64\1\uffff\1\65\1\66\3\uffff";
+ static final String DFA12_eofS =
+ "\67\uffff";
+ static final String DFA12_minS =
+ "\1\0\1\uffff\1\146\1\142\2\150\2\157\1\145\1\101\2\uffff\2\0\1\52\3\uffff\1\60\1\uffff\1\144\2\154\1\151\1\141\1\164\2\60\6\uffff\1\60\1\157\1\145\2\154\1\60\3\uffff\1\167\1\60\1\145\1\154\1\uffff\1\60\1\uffff\2\60\3\uffff";
+ static final String DFA12_maxS =
+ "\1\uffff\1\uffff\1\146\1\156\2\150\2\157\1\145\1\172\2\uffff\2\uffff\1\57\3\uffff\1\172\1\uffff\1\144\2\154\1\151\1\141\1\164\2\172\6\uffff\1\172\1\157\1\145\2\154\1\172\3\uffff\1\167\1\172\1\145\1\154\1\uffff\1\172\1\uffff\2\172\3\uffff";
+ static final String DFA12_acceptS =
+ "\1\uffff\1\1\10\uffff\1\13\1\14\3\uffff\1\20\1\21\1\1\1\uffff\1\13\10\uffff\1\14\1\15\1\16\1\17\1\20\1\2\6\uffff\1\10\1\11\1\3\4\uffff\1\6\1\uffff\1\12\2\uffff\1\7\1\4\1\5";
+ static final String DFA12_specialS =
+ "\1\0\13\uffff\1\1\1\2\51\uffff}>";
+ static final String[] DFA12_transitionS = {
+ "\11\20\2\17\2\20\1\17\22\20\1\17\1\20\1\14\4\20\1\15\4\20\1\1\2\20\1\16\12\13\7\20\32\12\3\20\1\11\1\12\1\20\1\3\1\10\6\12\1\2\4\12\1\6\4\12\1\5\1\7\2\12\1\4\3\12\uff85\20",
+ "",
+ "\1\22",
+ "\1\26\11\uffff\1\25\1\uffff\1\24",
+ "\1\27",
+ "\1\30",
+ "\1\31",
+ "\1\32",
+ "\1\33",
+ "\32\23\4\uffff\1\23\1\uffff\32\23",
+ "",
+ "",
+ "\0\35",
+ "\0\35",
+ "\1\36\4\uffff\1\37",
+ "",
+ "",
+ "",
+ "\12\23\7\uffff\32\23\4\uffff\1\23\1\uffff\32\23",
+ "",
+ "\1\42",
+ "\1\43",
+ "\1\44",
+ "\1\45",
+ "\1\46",
+ "\1\47",
+ "\12\23\7\uffff\32\23\4\uffff\1\23\1\uffff\32\23",
+ "\12\23\7\uffff\32\23\4\uffff\1\23\1\uffff\32\23",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "\12\23\7\uffff\32\23\4\uffff\1\23\1\uffff\32\23",
+ "\1\53",
+ "\1\54",
+ "\1\55",
+ "\1\56",
+ "\12\23\7\uffff\32\23\4\uffff\1\23\1\uffff\32\23",
+ "",
+ "",
+ "",
+ "\1\60",
+ "\12\23\7\uffff\32\23\4\uffff\1\23\1\uffff\32\23",
+ "\1\62",
+ "\1\63",
+ "",
+ "\12\23\7\uffff\32\23\4\uffff\1\23\1\uffff\32\23",
+ "",
+ "\12\23\7\uffff\32\23\4\uffff\1\23\1\uffff\32\23",
+ "\12\23\7\uffff\32\23\4\uffff\1\23\1\uffff\32\23",
+ "",
+ "",
+ ""
+ };
+
+ static final short[] DFA12_eot = DFA.unpackEncodedString(DFA12_eotS);
+ static final short[] DFA12_eof = DFA.unpackEncodedString(DFA12_eofS);
+ static final char[] DFA12_min = DFA.unpackEncodedStringToUnsignedChars(DFA12_minS);
+ static final char[] DFA12_max = DFA.unpackEncodedStringToUnsignedChars(DFA12_maxS);
+ static final short[] DFA12_accept = DFA.unpackEncodedString(DFA12_acceptS);
+ static final short[] DFA12_special = DFA.unpackEncodedString(DFA12_specialS);
+ static final short[][] DFA12_transition;
+
+ static {
+ int numStates = DFA12_transitionS.length;
+ DFA12_transition = new short[numStates][];
+ for (int i=0; i<numStates; i++) {
+ DFA12_transition[i] = DFA.unpackEncodedString(DFA12_transitionS[i]);
+ }
+ }
+
+ class DFA12 extends DFA {
+
+ public DFA12(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 12;
+ this.eot = DFA12_eot;
+ this.eof = DFA12_eof;
+ this.min = DFA12_min;
+ this.max = DFA12_max;
+ this.accept = DFA12_accept;
+ this.special = DFA12_special;
+ this.transition = DFA12_transition;
+ }
+ public String getDescription() {
+ return "1:1: Tokens : ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | 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 LA12_0 = input.LA(1);
+
+ s = -1;
+ if ( (LA12_0==',') ) {s = 1;}
+
+ else if ( (LA12_0=='i') ) {s = 2;}
+
+ else if ( (LA12_0=='a') ) {s = 3;}
+
+ else if ( (LA12_0=='w') ) {s = 4;}
+
+ else if ( (LA12_0=='s') ) {s = 5;}
+
+ else if ( (LA12_0=='n') ) {s = 6;}
+
+ else if ( (LA12_0=='t') ) {s = 7;}
+
+ else if ( (LA12_0=='b') ) {s = 8;}
+
+ else if ( (LA12_0=='^') ) {s = 9;}
+
+ else if ( ((LA12_0>='A' && LA12_0<='Z')||LA12_0=='_'||(LA12_0>='c' && LA12_0<='h')||(LA12_0>='j' && LA12_0<='m')||(LA12_0>='o' && LA12_0<='r')||(LA12_0>='u' && LA12_0<='v')||(LA12_0>='x' && LA12_0<='z')) ) {s = 10;}
+
+ else if ( ((LA12_0>='0' && LA12_0<='9')) ) {s = 11;}
+
+ else if ( (LA12_0=='\"') ) {s = 12;}
+
+ else if ( (LA12_0=='\'') ) {s = 13;}
+
+ else if ( (LA12_0=='/') ) {s = 14;}
+
+ else if ( ((LA12_0>='\t' && LA12_0<='\n')||LA12_0=='\r'||LA12_0==' ') ) {s = 15;}
+
+ else if ( ((LA12_0>='\u0000' && LA12_0<='\b')||(LA12_0>='\u000B' && LA12_0<='\f')||(LA12_0>='\u000E' && LA12_0<='\u001F')||LA12_0=='!'||(LA12_0>='#' && LA12_0<='&')||(LA12_0>='(' && LA12_0<='+')||(LA12_0>='-' && LA12_0<='.')||(LA12_0>=':' && LA12_0<='@')||(LA12_0>='[' && LA12_0<=']')||LA12_0=='`'||(LA12_0>='{' && LA12_0<='\uFFFF')) ) {s = 16;}
+
+ if ( s>=0 ) return s;
+ break;
+ case 1 :
+ int LA12_12 = input.LA(1);
+
+ s = -1;
+ if ( ((LA12_12>='\u0000' && LA12_12<='\uFFFF')) ) {s = 29;}
+
+ else s = 16;
+
+ if ( s>=0 ) return s;
+ break;
+ case 2 :
+ int LA12_13 = input.LA(1);
+
+ s = -1;
+ if ( ((LA12_13>='\u0000' && LA12_13<='\uFFFF')) ) {s = 29;}
+
+ else s = 16;
+
+ if ( s>=0 ) return s;
+ break;
+ }
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 12, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+
+
+}
\ No newline at end of file
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ide/src-gen/org/eclipse/papyrus/requirements/sysml14/ide/contentassist/antlr/internal/InternalBoilerplateTextParser.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ide/src-gen/org/eclipse/papyrus/requirements/sysml14/ide/contentassist/antlr/internal/InternalBoilerplateTextParser.java
new file mode 100644
index 0000000..19571b2
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ide/src-gen/org/eclipse/papyrus/requirements/sysml14/ide/contentassist/antlr/internal/InternalBoilerplateTextParser.java
@@ -0,0 +1,5499 @@
+package org.eclipse.papyrus.requirements.sysml14.ide.contentassist.antlr.internal;
+
+import java.io.InputStream;
+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.XtextTokenStream;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
+import org.eclipse.xtext.ide.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
+import org.eclipse.xtext.ide.editor.contentassist.antlr.internal.DFA;
+import org.eclipse.papyrus.requirements.sysml14.services.BoilerplateTextGrammarAccess;
+
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+/*****************************************************************************
+ * Copyright (c) 2017 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *
+ * Mauricio Alferez (mauricio.alferez@cea.fr) CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+@SuppressWarnings("all")
+public class InternalBoilerplateTextParser extends AbstractInternalContentAssistParser {
+ public static final String[] tokenNames = new String[] {
+ "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_STRING", "RULE_ID", "RULE_INT", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "','", "'if'", "'and'", "'while'", "'shall'", "'not'", "'allow'", "'to'", "'be'", "'able'"
+ };
+ public static final int RULE_STRING=4;
+ public static final int RULE_SL_COMMENT=8;
+ public static final int T__19=19;
+ public static final int T__15=15;
+ public static final int T__16=16;
+ public static final int T__17=17;
+ public static final int T__18=18;
+ public static final int T__11=11;
+ public static final int T__12=12;
+ public static final int T__13=13;
+ public static final int T__14=14;
+ public static final int EOF=-1;
+ public static final int RULE_ID=5;
+ public static final int RULE_WS=9;
+ public static final int RULE_ANY_OTHER=10;
+ public static final int RULE_INT=6;
+ public static final int RULE_ML_COMMENT=7;
+ public static final int T__20=20;
+
+ // delegates
+ // delegators
+
+
+ public InternalBoilerplateTextParser(TokenStream input) {
+ this(input, new RecognizerSharedState());
+ }
+ public InternalBoilerplateTextParser(TokenStream input, RecognizerSharedState state) {
+ super(input, state);
+
+ }
+
+
+ public String[] getTokenNames() { return InternalBoilerplateTextParser.tokenNames; }
+ public String getGrammarFileName() { return "InternalBoilerplateText.g"; }
+
+
+ private BoilerplateTextGrammarAccess grammarAccess;
+
+ public void setGrammarAccess(BoilerplateTextGrammarAccess grammarAccess) {
+ this.grammarAccess = grammarAccess;
+ }
+
+ @Override
+ protected Grammar getGrammar() {
+ return grammarAccess.getGrammar();
+ }
+
+ @Override
+ protected String getValueForTokenName(String tokenName) {
+ return tokenName;
+ }
+
+
+
+ // $ANTLR start "entryRuleModel"
+ // InternalBoilerplateText.g:68:1: entryRuleModel : ruleModel EOF ;
+ public final void entryRuleModel() throws RecognitionException {
+ try {
+ // InternalBoilerplateText.g:69:1: ( ruleModel EOF )
+ // InternalBoilerplateText.g:70:1: ruleModel EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getModelRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleModel();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getModelRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleModel"
+
+
+ // $ANTLR start "ruleModel"
+ // InternalBoilerplateText.g:77:1: ruleModel : ( ( rule__Model__ModelAssignment ) ) ;
+ public final void ruleModel() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:81:2: ( ( ( rule__Model__ModelAssignment ) ) )
+ // InternalBoilerplateText.g:82:2: ( ( rule__Model__ModelAssignment ) )
+ {
+ // InternalBoilerplateText.g:82:2: ( ( rule__Model__ModelAssignment ) )
+ // InternalBoilerplateText.g:83:3: ( rule__Model__ModelAssignment )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getModelAccess().getModelAssignment());
+ }
+ // InternalBoilerplateText.g:84:3: ( rule__Model__ModelAssignment )
+ // InternalBoilerplateText.g:84:4: rule__Model__ModelAssignment
+ {
+ pushFollow(FOLLOW_2);
+ rule__Model__ModelAssignment();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getModelAccess().getModelAssignment());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleModel"
+
+
+ // $ANTLR start "entryRuleRequirement"
+ // InternalBoilerplateText.g:93:1: entryRuleRequirement : ruleRequirement EOF ;
+ public final void entryRuleRequirement() throws RecognitionException {
+ try {
+ // InternalBoilerplateText.g:94:1: ( ruleRequirement EOF )
+ // InternalBoilerplateText.g:95:1: ruleRequirement EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getRequirementRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleRequirement();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getRequirementRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleRequirement"
+
+
+ // $ANTLR start "ruleRequirement"
+ // InternalBoilerplateText.g:102:1: ruleRequirement : ( ( rule__Requirement__Group__0 ) ) ;
+ public final void ruleRequirement() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:106:2: ( ( ( rule__Requirement__Group__0 ) ) )
+ // InternalBoilerplateText.g:107:2: ( ( rule__Requirement__Group__0 ) )
+ {
+ // InternalBoilerplateText.g:107:2: ( ( rule__Requirement__Group__0 ) )
+ // InternalBoilerplateText.g:108:3: ( rule__Requirement__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getRequirementAccess().getGroup());
+ }
+ // InternalBoilerplateText.g:109:3: ( rule__Requirement__Group__0 )
+ // InternalBoilerplateText.g:109:4: rule__Requirement__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Requirement__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getRequirementAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleRequirement"
+
+
+ // $ANTLR start "entryRuleSubject"
+ // InternalBoilerplateText.g:118:1: entryRuleSubject : ruleSubject EOF ;
+ public final void entryRuleSubject() throws RecognitionException {
+ try {
+ // InternalBoilerplateText.g:119:1: ( ruleSubject EOF )
+ // InternalBoilerplateText.g:120:1: ruleSubject EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSubjectRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleSubject();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSubjectRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleSubject"
+
+
+ // $ANTLR start "ruleSubject"
+ // InternalBoilerplateText.g:127:1: ruleSubject : ( ( rule__Subject__SystemAssignment ) ) ;
+ public final void ruleSubject() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:131:2: ( ( ( rule__Subject__SystemAssignment ) ) )
+ // InternalBoilerplateText.g:132:2: ( ( rule__Subject__SystemAssignment ) )
+ {
+ // InternalBoilerplateText.g:132:2: ( ( rule__Subject__SystemAssignment ) )
+ // InternalBoilerplateText.g:133:3: ( rule__Subject__SystemAssignment )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSubjectAccess().getSystemAssignment());
+ }
+ // InternalBoilerplateText.g:134:3: ( rule__Subject__SystemAssignment )
+ // InternalBoilerplateText.g:134:4: rule__Subject__SystemAssignment
+ {
+ pushFollow(FOLLOW_2);
+ rule__Subject__SystemAssignment();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSubjectAccess().getSystemAssignment());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleSubject"
+
+
+ // $ANTLR start "entryRulePrefix"
+ // InternalBoilerplateText.g:143:1: entryRulePrefix : rulePrefix EOF ;
+ public final void entryRulePrefix() throws RecognitionException {
+ try {
+ // InternalBoilerplateText.g:144:1: ( rulePrefix EOF )
+ // InternalBoilerplateText.g:145:1: rulePrefix EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPrefixRule());
+ }
+ pushFollow(FOLLOW_1);
+ rulePrefix();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPrefixRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRulePrefix"
+
+
+ // $ANTLR start "rulePrefix"
+ // InternalBoilerplateText.g:152:1: rulePrefix : ( ( rule__Prefix__Alternatives ) ) ;
+ public final void rulePrefix() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:156:2: ( ( ( rule__Prefix__Alternatives ) ) )
+ // InternalBoilerplateText.g:157:2: ( ( rule__Prefix__Alternatives ) )
+ {
+ // InternalBoilerplateText.g:157:2: ( ( rule__Prefix__Alternatives ) )
+ // InternalBoilerplateText.g:158:3: ( rule__Prefix__Alternatives )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPrefixAccess().getAlternatives());
+ }
+ // InternalBoilerplateText.g:159:3: ( rule__Prefix__Alternatives )
+ // InternalBoilerplateText.g:159:4: rule__Prefix__Alternatives
+ {
+ pushFollow(FOLLOW_2);
+ rule__Prefix__Alternatives();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPrefixAccess().getAlternatives());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rulePrefix"
+
+
+ // $ANTLR start "entryRuleIf"
+ // InternalBoilerplateText.g:168:1: entryRuleIf : ruleIf EOF ;
+ public final void entryRuleIf() throws RecognitionException {
+ try {
+ // InternalBoilerplateText.g:169:1: ( ruleIf EOF )
+ // InternalBoilerplateText.g:170:1: ruleIf EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getIfRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleIf();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getIfRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleIf"
+
+
+ // $ANTLR start "ruleIf"
+ // InternalBoilerplateText.g:177:1: ruleIf : ( ( rule__If__Group__0 ) ) ;
+ public final void ruleIf() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:181:2: ( ( ( rule__If__Group__0 ) ) )
+ // InternalBoilerplateText.g:182:2: ( ( rule__If__Group__0 ) )
+ {
+ // InternalBoilerplateText.g:182:2: ( ( rule__If__Group__0 ) )
+ // InternalBoilerplateText.g:183:3: ( rule__If__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getIfAccess().getGroup());
+ }
+ // InternalBoilerplateText.g:184:3: ( rule__If__Group__0 )
+ // InternalBoilerplateText.g:184:4: rule__If__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__If__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getIfAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleIf"
+
+
+ // $ANTLR start "entryRuleWhile"
+ // InternalBoilerplateText.g:193:1: entryRuleWhile : ruleWhile EOF ;
+ public final void entryRuleWhile() throws RecognitionException {
+ try {
+ // InternalBoilerplateText.g:194:1: ( ruleWhile EOF )
+ // InternalBoilerplateText.g:195:1: ruleWhile EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getWhileRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleWhile();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getWhileRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleWhile"
+
+
+ // $ANTLR start "ruleWhile"
+ // InternalBoilerplateText.g:202:1: ruleWhile : ( ( rule__While__Group__0 ) ) ;
+ public final void ruleWhile() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:206:2: ( ( ( rule__While__Group__0 ) ) )
+ // InternalBoilerplateText.g:207:2: ( ( rule__While__Group__0 ) )
+ {
+ // InternalBoilerplateText.g:207:2: ( ( rule__While__Group__0 ) )
+ // InternalBoilerplateText.g:208:3: ( rule__While__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getWhileAccess().getGroup());
+ }
+ // InternalBoilerplateText.g:209:3: ( rule__While__Group__0 )
+ // InternalBoilerplateText.g:209:4: rule__While__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__While__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getWhileAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleWhile"
+
+
+ // $ANTLR start "entryRulePredicate"
+ // InternalBoilerplateText.g:218:1: entryRulePredicate : rulePredicate EOF ;
+ public final void entryRulePredicate() throws RecognitionException {
+ try {
+ // InternalBoilerplateText.g:219:1: ( rulePredicate EOF )
+ // InternalBoilerplateText.g:220:1: rulePredicate EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPredicateRule());
+ }
+ pushFollow(FOLLOW_1);
+ rulePredicate();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPredicateRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRulePredicate"
+
+
+ // $ANTLR start "rulePredicate"
+ // InternalBoilerplateText.g:227:1: rulePredicate : ( ( rule__Predicate__Alternatives ) ) ;
+ public final void rulePredicate() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:231:2: ( ( ( rule__Predicate__Alternatives ) ) )
+ // InternalBoilerplateText.g:232:2: ( ( rule__Predicate__Alternatives ) )
+ {
+ // InternalBoilerplateText.g:232:2: ( ( rule__Predicate__Alternatives ) )
+ // InternalBoilerplateText.g:233:3: ( rule__Predicate__Alternatives )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPredicateAccess().getAlternatives());
+ }
+ // InternalBoilerplateText.g:234:3: ( rule__Predicate__Alternatives )
+ // InternalBoilerplateText.g:234:4: rule__Predicate__Alternatives
+ {
+ pushFollow(FOLLOW_2);
+ rule__Predicate__Alternatives();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPredicateAccess().getAlternatives());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rulePredicate"
+
+
+ // $ANTLR start "entryRuleShallNotAllow"
+ // InternalBoilerplateText.g:243:1: entryRuleShallNotAllow : ruleShallNotAllow EOF ;
+ public final void entryRuleShallNotAllow() throws RecognitionException {
+ try {
+ // InternalBoilerplateText.g:244:1: ( ruleShallNotAllow EOF )
+ // InternalBoilerplateText.g:245:1: ruleShallNotAllow EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getShallNotAllowRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleShallNotAllow();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getShallNotAllowRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleShallNotAllow"
+
+
+ // $ANTLR start "ruleShallNotAllow"
+ // InternalBoilerplateText.g:252:1: ruleShallNotAllow : ( ( rule__ShallNotAllow__Group__0 ) ) ;
+ public final void ruleShallNotAllow() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:256:2: ( ( ( rule__ShallNotAllow__Group__0 ) ) )
+ // InternalBoilerplateText.g:257:2: ( ( rule__ShallNotAllow__Group__0 ) )
+ {
+ // InternalBoilerplateText.g:257:2: ( ( rule__ShallNotAllow__Group__0 ) )
+ // InternalBoilerplateText.g:258:3: ( rule__ShallNotAllow__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getShallNotAllowAccess().getGroup());
+ }
+ // InternalBoilerplateText.g:259:3: ( rule__ShallNotAllow__Group__0 )
+ // InternalBoilerplateText.g:259:4: rule__ShallNotAllow__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__ShallNotAllow__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getShallNotAllowAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleShallNotAllow"
+
+
+ // $ANTLR start "entryRuleShallAllow"
+ // InternalBoilerplateText.g:268:1: entryRuleShallAllow : ruleShallAllow EOF ;
+ public final void entryRuleShallAllow() throws RecognitionException {
+ try {
+ // InternalBoilerplateText.g:269:1: ( ruleShallAllow EOF )
+ // InternalBoilerplateText.g:270:1: ruleShallAllow EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getShallAllowRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleShallAllow();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getShallAllowRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleShallAllow"
+
+
+ // $ANTLR start "ruleShallAllow"
+ // InternalBoilerplateText.g:277:1: ruleShallAllow : ( ( rule__ShallAllow__Group__0 ) ) ;
+ public final void ruleShallAllow() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:281:2: ( ( ( rule__ShallAllow__Group__0 ) ) )
+ // InternalBoilerplateText.g:282:2: ( ( rule__ShallAllow__Group__0 ) )
+ {
+ // InternalBoilerplateText.g:282:2: ( ( rule__ShallAllow__Group__0 ) )
+ // InternalBoilerplateText.g:283:3: ( rule__ShallAllow__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getShallAllowAccess().getGroup());
+ }
+ // InternalBoilerplateText.g:284:3: ( rule__ShallAllow__Group__0 )
+ // InternalBoilerplateText.g:284:4: rule__ShallAllow__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__ShallAllow__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getShallAllowAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleShallAllow"
+
+
+ // $ANTLR start "entryRuleShallNot"
+ // InternalBoilerplateText.g:293:1: entryRuleShallNot : ruleShallNot EOF ;
+ public final void entryRuleShallNot() throws RecognitionException {
+ try {
+ // InternalBoilerplateText.g:294:1: ( ruleShallNot EOF )
+ // InternalBoilerplateText.g:295:1: ruleShallNot EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getShallNotRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleShallNot();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getShallNotRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleShallNot"
+
+
+ // $ANTLR start "ruleShallNot"
+ // InternalBoilerplateText.g:302:1: ruleShallNot : ( ( rule__ShallNot__Group__0 ) ) ;
+ public final void ruleShallNot() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:306:2: ( ( ( rule__ShallNot__Group__0 ) ) )
+ // InternalBoilerplateText.g:307:2: ( ( rule__ShallNot__Group__0 ) )
+ {
+ // InternalBoilerplateText.g:307:2: ( ( rule__ShallNot__Group__0 ) )
+ // InternalBoilerplateText.g:308:3: ( rule__ShallNot__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getShallNotAccess().getGroup());
+ }
+ // InternalBoilerplateText.g:309:3: ( rule__ShallNot__Group__0 )
+ // InternalBoilerplateText.g:309:4: rule__ShallNot__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__ShallNot__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getShallNotAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleShallNot"
+
+
+ // $ANTLR start "entryRuleShall"
+ // InternalBoilerplateText.g:318:1: entryRuleShall : ruleShall EOF ;
+ public final void entryRuleShall() throws RecognitionException {
+ try {
+ // InternalBoilerplateText.g:319:1: ( ruleShall EOF )
+ // InternalBoilerplateText.g:320:1: ruleShall EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getShallRule());
+ }
+ pushFollow(FOLLOW_1);
+ ruleShall();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getShallRule());
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleShall"
+
+
+ // $ANTLR start "ruleShall"
+ // InternalBoilerplateText.g:327:1: ruleShall : ( ( rule__Shall__Group__0 ) ) ;
+ public final void ruleShall() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:331:2: ( ( ( rule__Shall__Group__0 ) ) )
+ // InternalBoilerplateText.g:332:2: ( ( rule__Shall__Group__0 ) )
+ {
+ // InternalBoilerplateText.g:332:2: ( ( rule__Shall__Group__0 ) )
+ // InternalBoilerplateText.g:333:3: ( rule__Shall__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getShallAccess().getGroup());
+ }
+ // InternalBoilerplateText.g:334:3: ( rule__Shall__Group__0 )
+ // InternalBoilerplateText.g:334:4: rule__Shall__Group__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Shall__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getShallAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleShall"
+
+
+ // $ANTLR start "rule__Prefix__Alternatives"
+ // InternalBoilerplateText.g:342:1: rule__Prefix__Alternatives : ( ( ruleIf ) | ( ruleWhile ) );
+ public final void rule__Prefix__Alternatives() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:346:1: ( ( ruleIf ) | ( ruleWhile ) )
+ int alt1=2;
+ int LA1_0 = input.LA(1);
+
+ if ( (LA1_0==12) ) {
+ alt1=1;
+ }
+ else if ( (LA1_0==14) ) {
+ alt1=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 1, 0, input);
+
+ throw nvae;
+ }
+ switch (alt1) {
+ case 1 :
+ // InternalBoilerplateText.g:347:2: ( ruleIf )
+ {
+ // InternalBoilerplateText.g:347:2: ( ruleIf )
+ // InternalBoilerplateText.g:348:3: ruleIf
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPrefixAccess().getIfParserRuleCall_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleIf();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPrefixAccess().getIfParserRuleCall_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalBoilerplateText.g:353:2: ( ruleWhile )
+ {
+ // InternalBoilerplateText.g:353:2: ( ruleWhile )
+ // InternalBoilerplateText.g:354:3: ruleWhile
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPrefixAccess().getWhileParserRuleCall_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleWhile();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPrefixAccess().getWhileParserRuleCall_1());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Prefix__Alternatives"
+
+
+ // $ANTLR start "rule__Predicate__Alternatives"
+ // InternalBoilerplateText.g:363:1: rule__Predicate__Alternatives : ( ( ruleShall ) | ( ruleShallNot ) | ( ruleShallAllow ) | ( ruleShallNotAllow ) );
+ public final void rule__Predicate__Alternatives() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:367:1: ( ( ruleShall ) | ( ruleShallNot ) | ( ruleShallAllow ) | ( ruleShallNotAllow ) )
+ int alt2=4;
+ int LA2_0 = input.LA(1);
+
+ if ( (LA2_0==15) ) {
+ switch ( input.LA(2) ) {
+ case 16:
+ {
+ int LA2_2 = input.LA(3);
+
+ if ( (LA2_2==RULE_STRING||LA2_2==19) ) {
+ alt2=2;
+ }
+ else if ( (LA2_2==17) ) {
+ alt2=4;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 2, 2, input);
+
+ throw nvae;
+ }
+ }
+ break;
+ case 17:
+ {
+ alt2=3;
+ }
+ break;
+ case RULE_STRING:
+ case 19:
+ {
+ alt2=1;
+ }
+ break;
+ default:
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 2, 1, input);
+
+ throw nvae;
+ }
+
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 2, 0, input);
+
+ throw nvae;
+ }
+ switch (alt2) {
+ case 1 :
+ // InternalBoilerplateText.g:368:2: ( ruleShall )
+ {
+ // InternalBoilerplateText.g:368:2: ( ruleShall )
+ // InternalBoilerplateText.g:369:3: ruleShall
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPredicateAccess().getShallParserRuleCall_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleShall();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPredicateAccess().getShallParserRuleCall_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalBoilerplateText.g:374:2: ( ruleShallNot )
+ {
+ // InternalBoilerplateText.g:374:2: ( ruleShallNot )
+ // InternalBoilerplateText.g:375:3: ruleShallNot
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPredicateAccess().getShallNotParserRuleCall_1());
+ }
+ pushFollow(FOLLOW_2);
+ ruleShallNot();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPredicateAccess().getShallNotParserRuleCall_1());
+ }
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // InternalBoilerplateText.g:380:2: ( ruleShallAllow )
+ {
+ // InternalBoilerplateText.g:380:2: ( ruleShallAllow )
+ // InternalBoilerplateText.g:381:3: ruleShallAllow
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPredicateAccess().getShallAllowParserRuleCall_2());
+ }
+ pushFollow(FOLLOW_2);
+ ruleShallAllow();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPredicateAccess().getShallAllowParserRuleCall_2());
+ }
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // InternalBoilerplateText.g:386:2: ( ruleShallNotAllow )
+ {
+ // InternalBoilerplateText.g:386:2: ( ruleShallNotAllow )
+ // InternalBoilerplateText.g:387:3: ruleShallNotAllow
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPredicateAccess().getShallNotAllowParserRuleCall_3());
+ }
+ pushFollow(FOLLOW_2);
+ ruleShallNotAllow();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPredicateAccess().getShallNotAllowParserRuleCall_3());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Predicate__Alternatives"
+
+
+ // $ANTLR start "rule__ShallNotAllow__Alternatives_3"
+ // InternalBoilerplateText.g:396:1: rule__ShallNotAllow__Alternatives_3 : ( ( ( rule__ShallNotAllow__ActionAssignment_3_0 ) ) | ( ( rule__ShallNotAllow__Group_3_1__0 ) ) );
+ public final void rule__ShallNotAllow__Alternatives_3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:400:1: ( ( ( rule__ShallNotAllow__ActionAssignment_3_0 ) ) | ( ( rule__ShallNotAllow__Group_3_1__0 ) ) )
+ int alt3=2;
+ int LA3_0 = input.LA(1);
+
+ if ( (LA3_0==RULE_STRING) ) {
+ int LA3_1 = input.LA(2);
+
+ if ( (LA3_1==18) ) {
+ alt3=2;
+ }
+ else if ( (LA3_1==EOF) ) {
+ alt3=1;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 3, 1, input);
+
+ throw nvae;
+ }
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 3, 0, input);
+
+ throw nvae;
+ }
+ switch (alt3) {
+ case 1 :
+ // InternalBoilerplateText.g:401:2: ( ( rule__ShallNotAllow__ActionAssignment_3_0 ) )
+ {
+ // InternalBoilerplateText.g:401:2: ( ( rule__ShallNotAllow__ActionAssignment_3_0 ) )
+ // InternalBoilerplateText.g:402:3: ( rule__ShallNotAllow__ActionAssignment_3_0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getShallNotAllowAccess().getActionAssignment_3_0());
+ }
+ // InternalBoilerplateText.g:403:3: ( rule__ShallNotAllow__ActionAssignment_3_0 )
+ // InternalBoilerplateText.g:403:4: rule__ShallNotAllow__ActionAssignment_3_0
+ {
+ pushFollow(FOLLOW_2);
+ rule__ShallNotAllow__ActionAssignment_3_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getShallNotAllowAccess().getActionAssignment_3_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalBoilerplateText.g:407:2: ( ( rule__ShallNotAllow__Group_3_1__0 ) )
+ {
+ // InternalBoilerplateText.g:407:2: ( ( rule__ShallNotAllow__Group_3_1__0 ) )
+ // InternalBoilerplateText.g:408:3: ( rule__ShallNotAllow__Group_3_1__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getShallNotAllowAccess().getGroup_3_1());
+ }
+ // InternalBoilerplateText.g:409:3: ( rule__ShallNotAllow__Group_3_1__0 )
+ // InternalBoilerplateText.g:409:4: rule__ShallNotAllow__Group_3_1__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__ShallNotAllow__Group_3_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getShallNotAllowAccess().getGroup_3_1());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ShallNotAllow__Alternatives_3"
+
+
+ // $ANTLR start "rule__ShallAllow__Alternatives_2"
+ // InternalBoilerplateText.g:417:1: rule__ShallAllow__Alternatives_2 : ( ( ( rule__ShallAllow__ActionAssignment_2_0 ) ) | ( ( rule__ShallAllow__Group_2_1__0 ) ) );
+ public final void rule__ShallAllow__Alternatives_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:421:1: ( ( ( rule__ShallAllow__ActionAssignment_2_0 ) ) | ( ( rule__ShallAllow__Group_2_1__0 ) ) )
+ int alt4=2;
+ int LA4_0 = input.LA(1);
+
+ if ( (LA4_0==RULE_STRING) ) {
+ int LA4_1 = input.LA(2);
+
+ if ( (LA4_1==EOF) ) {
+ alt4=1;
+ }
+ else if ( (LA4_1==18) ) {
+ alt4=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 4, 1, input);
+
+ throw nvae;
+ }
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 4, 0, input);
+
+ throw nvae;
+ }
+ switch (alt4) {
+ case 1 :
+ // InternalBoilerplateText.g:422:2: ( ( rule__ShallAllow__ActionAssignment_2_0 ) )
+ {
+ // InternalBoilerplateText.g:422:2: ( ( rule__ShallAllow__ActionAssignment_2_0 ) )
+ // InternalBoilerplateText.g:423:3: ( rule__ShallAllow__ActionAssignment_2_0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getShallAllowAccess().getActionAssignment_2_0());
+ }
+ // InternalBoilerplateText.g:424:3: ( rule__ShallAllow__ActionAssignment_2_0 )
+ // InternalBoilerplateText.g:424:4: rule__ShallAllow__ActionAssignment_2_0
+ {
+ pushFollow(FOLLOW_2);
+ rule__ShallAllow__ActionAssignment_2_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getShallAllowAccess().getActionAssignment_2_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalBoilerplateText.g:428:2: ( ( rule__ShallAllow__Group_2_1__0 ) )
+ {
+ // InternalBoilerplateText.g:428:2: ( ( rule__ShallAllow__Group_2_1__0 ) )
+ // InternalBoilerplateText.g:429:3: ( rule__ShallAllow__Group_2_1__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getShallAllowAccess().getGroup_2_1());
+ }
+ // InternalBoilerplateText.g:430:3: ( rule__ShallAllow__Group_2_1__0 )
+ // InternalBoilerplateText.g:430:4: rule__ShallAllow__Group_2_1__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__ShallAllow__Group_2_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getShallAllowAccess().getGroup_2_1());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ShallAllow__Alternatives_2"
+
+
+ // $ANTLR start "rule__Requirement__Group__0"
+ // InternalBoilerplateText.g:438:1: rule__Requirement__Group__0 : rule__Requirement__Group__0__Impl rule__Requirement__Group__1 ;
+ public final void rule__Requirement__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:442:1: ( rule__Requirement__Group__0__Impl rule__Requirement__Group__1 )
+ // InternalBoilerplateText.g:443:2: rule__Requirement__Group__0__Impl rule__Requirement__Group__1
+ {
+ pushFollow(FOLLOW_3);
+ rule__Requirement__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Requirement__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Requirement__Group__0"
+
+
+ // $ANTLR start "rule__Requirement__Group__0__Impl"
+ // InternalBoilerplateText.g:450:1: rule__Requirement__Group__0__Impl : ( ( rule__Requirement__Group_0__0 )? ) ;
+ public final void rule__Requirement__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:454:1: ( ( ( rule__Requirement__Group_0__0 )? ) )
+ // InternalBoilerplateText.g:455:1: ( ( rule__Requirement__Group_0__0 )? )
+ {
+ // InternalBoilerplateText.g:455:1: ( ( rule__Requirement__Group_0__0 )? )
+ // InternalBoilerplateText.g:456:2: ( rule__Requirement__Group_0__0 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getRequirementAccess().getGroup_0());
+ }
+ // InternalBoilerplateText.g:457:2: ( rule__Requirement__Group_0__0 )?
+ int alt5=2;
+ int LA5_0 = input.LA(1);
+
+ if ( (LA5_0==12||LA5_0==14) ) {
+ alt5=1;
+ }
+ switch (alt5) {
+ case 1 :
+ // InternalBoilerplateText.g:457:3: rule__Requirement__Group_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Requirement__Group_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getRequirementAccess().getGroup_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Requirement__Group__0__Impl"
+
+
+ // $ANTLR start "rule__Requirement__Group__1"
+ // InternalBoilerplateText.g:465:1: rule__Requirement__Group__1 : rule__Requirement__Group__1__Impl rule__Requirement__Group__2 ;
+ public final void rule__Requirement__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:469:1: ( rule__Requirement__Group__1__Impl rule__Requirement__Group__2 )
+ // InternalBoilerplateText.g:470:2: rule__Requirement__Group__1__Impl rule__Requirement__Group__2
+ {
+ pushFollow(FOLLOW_4);
+ rule__Requirement__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Requirement__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Requirement__Group__1"
+
+
+ // $ANTLR start "rule__Requirement__Group__1__Impl"
+ // InternalBoilerplateText.g:477:1: rule__Requirement__Group__1__Impl : ( ( rule__Requirement__SystemAssignment_1 ) ) ;
+ public final void rule__Requirement__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:481:1: ( ( ( rule__Requirement__SystemAssignment_1 ) ) )
+ // InternalBoilerplateText.g:482:1: ( ( rule__Requirement__SystemAssignment_1 ) )
+ {
+ // InternalBoilerplateText.g:482:1: ( ( rule__Requirement__SystemAssignment_1 ) )
+ // InternalBoilerplateText.g:483:2: ( rule__Requirement__SystemAssignment_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getRequirementAccess().getSystemAssignment_1());
+ }
+ // InternalBoilerplateText.g:484:2: ( rule__Requirement__SystemAssignment_1 )
+ // InternalBoilerplateText.g:484:3: rule__Requirement__SystemAssignment_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__Requirement__SystemAssignment_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getRequirementAccess().getSystemAssignment_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Requirement__Group__1__Impl"
+
+
+ // $ANTLR start "rule__Requirement__Group__2"
+ // InternalBoilerplateText.g:492:1: rule__Requirement__Group__2 : rule__Requirement__Group__2__Impl ;
+ public final void rule__Requirement__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:496:1: ( rule__Requirement__Group__2__Impl )
+ // InternalBoilerplateText.g:497:2: rule__Requirement__Group__2__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__Requirement__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Requirement__Group__2"
+
+
+ // $ANTLR start "rule__Requirement__Group__2__Impl"
+ // InternalBoilerplateText.g:503:1: rule__Requirement__Group__2__Impl : ( ( rule__Requirement__PredicateAssignment_2 ) ) ;
+ public final void rule__Requirement__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:507:1: ( ( ( rule__Requirement__PredicateAssignment_2 ) ) )
+ // InternalBoilerplateText.g:508:1: ( ( rule__Requirement__PredicateAssignment_2 ) )
+ {
+ // InternalBoilerplateText.g:508:1: ( ( rule__Requirement__PredicateAssignment_2 ) )
+ // InternalBoilerplateText.g:509:2: ( rule__Requirement__PredicateAssignment_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getRequirementAccess().getPredicateAssignment_2());
+ }
+ // InternalBoilerplateText.g:510:2: ( rule__Requirement__PredicateAssignment_2 )
+ // InternalBoilerplateText.g:510:3: rule__Requirement__PredicateAssignment_2
+ {
+ pushFollow(FOLLOW_2);
+ rule__Requirement__PredicateAssignment_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getRequirementAccess().getPredicateAssignment_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Requirement__Group__2__Impl"
+
+
+ // $ANTLR start "rule__Requirement__Group_0__0"
+ // InternalBoilerplateText.g:519:1: rule__Requirement__Group_0__0 : rule__Requirement__Group_0__0__Impl rule__Requirement__Group_0__1 ;
+ public final void rule__Requirement__Group_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:523:1: ( rule__Requirement__Group_0__0__Impl rule__Requirement__Group_0__1 )
+ // InternalBoilerplateText.g:524:2: rule__Requirement__Group_0__0__Impl rule__Requirement__Group_0__1
+ {
+ pushFollow(FOLLOW_5);
+ rule__Requirement__Group_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Requirement__Group_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Requirement__Group_0__0"
+
+
+ // $ANTLR start "rule__Requirement__Group_0__0__Impl"
+ // InternalBoilerplateText.g:531:1: rule__Requirement__Group_0__0__Impl : ( ( rule__Requirement__PrefixAssignment_0_0 ) ) ;
+ public final void rule__Requirement__Group_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:535:1: ( ( ( rule__Requirement__PrefixAssignment_0_0 ) ) )
+ // InternalBoilerplateText.g:536:1: ( ( rule__Requirement__PrefixAssignment_0_0 ) )
+ {
+ // InternalBoilerplateText.g:536:1: ( ( rule__Requirement__PrefixAssignment_0_0 ) )
+ // InternalBoilerplateText.g:537:2: ( rule__Requirement__PrefixAssignment_0_0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getRequirementAccess().getPrefixAssignment_0_0());
+ }
+ // InternalBoilerplateText.g:538:2: ( rule__Requirement__PrefixAssignment_0_0 )
+ // InternalBoilerplateText.g:538:3: rule__Requirement__PrefixAssignment_0_0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Requirement__PrefixAssignment_0_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getRequirementAccess().getPrefixAssignment_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Requirement__Group_0__0__Impl"
+
+
+ // $ANTLR start "rule__Requirement__Group_0__1"
+ // InternalBoilerplateText.g:546:1: rule__Requirement__Group_0__1 : rule__Requirement__Group_0__1__Impl ;
+ public final void rule__Requirement__Group_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:550:1: ( rule__Requirement__Group_0__1__Impl )
+ // InternalBoilerplateText.g:551:2: rule__Requirement__Group_0__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__Requirement__Group_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Requirement__Group_0__1"
+
+
+ // $ANTLR start "rule__Requirement__Group_0__1__Impl"
+ // InternalBoilerplateText.g:557:1: rule__Requirement__Group_0__1__Impl : ( ',' ) ;
+ public final void rule__Requirement__Group_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:561:1: ( ( ',' ) )
+ // InternalBoilerplateText.g:562:1: ( ',' )
+ {
+ // InternalBoilerplateText.g:562:1: ( ',' )
+ // InternalBoilerplateText.g:563:2: ','
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getRequirementAccess().getCommaKeyword_0_1());
+ }
+ match(input,11,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getRequirementAccess().getCommaKeyword_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Requirement__Group_0__1__Impl"
+
+
+ // $ANTLR start "rule__If__Group__0"
+ // InternalBoilerplateText.g:573:1: rule__If__Group__0 : rule__If__Group__0__Impl rule__If__Group__1 ;
+ public final void rule__If__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:577:1: ( rule__If__Group__0__Impl rule__If__Group__1 )
+ // InternalBoilerplateText.g:578:2: rule__If__Group__0__Impl rule__If__Group__1
+ {
+ pushFollow(FOLLOW_3);
+ rule__If__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__If__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__If__Group__0"
+
+
+ // $ANTLR start "rule__If__Group__0__Impl"
+ // InternalBoilerplateText.g:585:1: rule__If__Group__0__Impl : ( 'if' ) ;
+ public final void rule__If__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:589:1: ( ( 'if' ) )
+ // InternalBoilerplateText.g:590:1: ( 'if' )
+ {
+ // InternalBoilerplateText.g:590:1: ( 'if' )
+ // InternalBoilerplateText.g:591:2: 'if'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getIfAccess().getIfKeyword_0());
+ }
+ match(input,12,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getIfAccess().getIfKeyword_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__If__Group__0__Impl"
+
+
+ // $ANTLR start "rule__If__Group__1"
+ // InternalBoilerplateText.g:600:1: rule__If__Group__1 : rule__If__Group__1__Impl rule__If__Group__2 ;
+ public final void rule__If__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:604:1: ( rule__If__Group__1__Impl rule__If__Group__2 )
+ // InternalBoilerplateText.g:605:2: rule__If__Group__1__Impl rule__If__Group__2
+ {
+ pushFollow(FOLLOW_6);
+ rule__If__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__If__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__If__Group__1"
+
+
+ // $ANTLR start "rule__If__Group__1__Impl"
+ // InternalBoilerplateText.g:612:1: rule__If__Group__1__Impl : ( ( rule__If__EventAssignment_1 ) ) ;
+ public final void rule__If__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:616:1: ( ( ( rule__If__EventAssignment_1 ) ) )
+ // InternalBoilerplateText.g:617:1: ( ( rule__If__EventAssignment_1 ) )
+ {
+ // InternalBoilerplateText.g:617:1: ( ( rule__If__EventAssignment_1 ) )
+ // InternalBoilerplateText.g:618:2: ( rule__If__EventAssignment_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getIfAccess().getEventAssignment_1());
+ }
+ // InternalBoilerplateText.g:619:2: ( rule__If__EventAssignment_1 )
+ // InternalBoilerplateText.g:619:3: rule__If__EventAssignment_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__If__EventAssignment_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getIfAccess().getEventAssignment_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__If__Group__1__Impl"
+
+
+ // $ANTLR start "rule__If__Group__2"
+ // InternalBoilerplateText.g:627:1: rule__If__Group__2 : rule__If__Group__2__Impl ;
+ public final void rule__If__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:631:1: ( rule__If__Group__2__Impl )
+ // InternalBoilerplateText.g:632:2: rule__If__Group__2__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__If__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__If__Group__2"
+
+
+ // $ANTLR start "rule__If__Group__2__Impl"
+ // InternalBoilerplateText.g:638:1: rule__If__Group__2__Impl : ( ( rule__If__Group_2__0 )* ) ;
+ public final void rule__If__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:642:1: ( ( ( rule__If__Group_2__0 )* ) )
+ // InternalBoilerplateText.g:643:1: ( ( rule__If__Group_2__0 )* )
+ {
+ // InternalBoilerplateText.g:643:1: ( ( rule__If__Group_2__0 )* )
+ // InternalBoilerplateText.g:644:2: ( rule__If__Group_2__0 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getIfAccess().getGroup_2());
+ }
+ // InternalBoilerplateText.g:645:2: ( rule__If__Group_2__0 )*
+ loop6:
+ do {
+ int alt6=2;
+ int LA6_0 = input.LA(1);
+
+ if ( (LA6_0==13) ) {
+ alt6=1;
+ }
+
+
+ switch (alt6) {
+ case 1 :
+ // InternalBoilerplateText.g:645:3: rule__If__Group_2__0
+ {
+ pushFollow(FOLLOW_7);
+ rule__If__Group_2__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop6;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getIfAccess().getGroup_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__If__Group__2__Impl"
+
+
+ // $ANTLR start "rule__If__Group_2__0"
+ // InternalBoilerplateText.g:654:1: rule__If__Group_2__0 : rule__If__Group_2__0__Impl rule__If__Group_2__1 ;
+ public final void rule__If__Group_2__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:658:1: ( rule__If__Group_2__0__Impl rule__If__Group_2__1 )
+ // InternalBoilerplateText.g:659:2: rule__If__Group_2__0__Impl rule__If__Group_2__1
+ {
+ pushFollow(FOLLOW_3);
+ rule__If__Group_2__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__If__Group_2__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__If__Group_2__0"
+
+
+ // $ANTLR start "rule__If__Group_2__0__Impl"
+ // InternalBoilerplateText.g:666:1: rule__If__Group_2__0__Impl : ( 'and' ) ;
+ public final void rule__If__Group_2__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:670:1: ( ( 'and' ) )
+ // InternalBoilerplateText.g:671:1: ( 'and' )
+ {
+ // InternalBoilerplateText.g:671:1: ( 'and' )
+ // InternalBoilerplateText.g:672:2: 'and'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getIfAccess().getAndKeyword_2_0());
+ }
+ match(input,13,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getIfAccess().getAndKeyword_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__If__Group_2__0__Impl"
+
+
+ // $ANTLR start "rule__If__Group_2__1"
+ // InternalBoilerplateText.g:681:1: rule__If__Group_2__1 : rule__If__Group_2__1__Impl ;
+ public final void rule__If__Group_2__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:685:1: ( rule__If__Group_2__1__Impl )
+ // InternalBoilerplateText.g:686:2: rule__If__Group_2__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__If__Group_2__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__If__Group_2__1"
+
+
+ // $ANTLR start "rule__If__Group_2__1__Impl"
+ // InternalBoilerplateText.g:692:1: rule__If__Group_2__1__Impl : ( ( rule__If__EventAssignment_2_1 ) ) ;
+ public final void rule__If__Group_2__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:696:1: ( ( ( rule__If__EventAssignment_2_1 ) ) )
+ // InternalBoilerplateText.g:697:1: ( ( rule__If__EventAssignment_2_1 ) )
+ {
+ // InternalBoilerplateText.g:697:1: ( ( rule__If__EventAssignment_2_1 ) )
+ // InternalBoilerplateText.g:698:2: ( rule__If__EventAssignment_2_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getIfAccess().getEventAssignment_2_1());
+ }
+ // InternalBoilerplateText.g:699:2: ( rule__If__EventAssignment_2_1 )
+ // InternalBoilerplateText.g:699:3: rule__If__EventAssignment_2_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__If__EventAssignment_2_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getIfAccess().getEventAssignment_2_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__If__Group_2__1__Impl"
+
+
+ // $ANTLR start "rule__While__Group__0"
+ // InternalBoilerplateText.g:708:1: rule__While__Group__0 : rule__While__Group__0__Impl rule__While__Group__1 ;
+ public final void rule__While__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:712:1: ( rule__While__Group__0__Impl rule__While__Group__1 )
+ // InternalBoilerplateText.g:713:2: rule__While__Group__0__Impl rule__While__Group__1
+ {
+ pushFollow(FOLLOW_3);
+ rule__While__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__While__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__While__Group__0"
+
+
+ // $ANTLR start "rule__While__Group__0__Impl"
+ // InternalBoilerplateText.g:720:1: rule__While__Group__0__Impl : ( 'while' ) ;
+ public final void rule__While__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:724:1: ( ( 'while' ) )
+ // InternalBoilerplateText.g:725:1: ( 'while' )
+ {
+ // InternalBoilerplateText.g:725:1: ( 'while' )
+ // InternalBoilerplateText.g:726:2: 'while'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getWhileAccess().getWhileKeyword_0());
+ }
+ match(input,14,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getWhileAccess().getWhileKeyword_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__While__Group__0__Impl"
+
+
+ // $ANTLR start "rule__While__Group__1"
+ // InternalBoilerplateText.g:735:1: rule__While__Group__1 : rule__While__Group__1__Impl ;
+ public final void rule__While__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:739:1: ( rule__While__Group__1__Impl )
+ // InternalBoilerplateText.g:740:2: rule__While__Group__1__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__While__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__While__Group__1"
+
+
+ // $ANTLR start "rule__While__Group__1__Impl"
+ // InternalBoilerplateText.g:746:1: rule__While__Group__1__Impl : ( ( rule__While__StateAssignment_1 ) ) ;
+ public final void rule__While__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:750:1: ( ( ( rule__While__StateAssignment_1 ) ) )
+ // InternalBoilerplateText.g:751:1: ( ( rule__While__StateAssignment_1 ) )
+ {
+ // InternalBoilerplateText.g:751:1: ( ( rule__While__StateAssignment_1 ) )
+ // InternalBoilerplateText.g:752:2: ( rule__While__StateAssignment_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getWhileAccess().getStateAssignment_1());
+ }
+ // InternalBoilerplateText.g:753:2: ( rule__While__StateAssignment_1 )
+ // InternalBoilerplateText.g:753:3: rule__While__StateAssignment_1
+ {
+ pushFollow(FOLLOW_2);
+ rule__While__StateAssignment_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getWhileAccess().getStateAssignment_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__While__Group__1__Impl"
+
+
+ // $ANTLR start "rule__ShallNotAllow__Group__0"
+ // InternalBoilerplateText.g:762:1: rule__ShallNotAllow__Group__0 : rule__ShallNotAllow__Group__0__Impl rule__ShallNotAllow__Group__1 ;
+ public final void rule__ShallNotAllow__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:766:1: ( rule__ShallNotAllow__Group__0__Impl rule__ShallNotAllow__Group__1 )
+ // InternalBoilerplateText.g:767:2: rule__ShallNotAllow__Group__0__Impl rule__ShallNotAllow__Group__1
+ {
+ pushFollow(FOLLOW_8);
+ rule__ShallNotAllow__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ShallNotAllow__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ShallNotAllow__Group__0"
+
+
+ // $ANTLR start "rule__ShallNotAllow__Group__0__Impl"
+ // InternalBoilerplateText.g:774:1: rule__ShallNotAllow__Group__0__Impl : ( 'shall' ) ;
+ public final void rule__ShallNotAllow__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:778:1: ( ( 'shall' ) )
+ // InternalBoilerplateText.g:779:1: ( 'shall' )
+ {
+ // InternalBoilerplateText.g:779:1: ( 'shall' )
+ // InternalBoilerplateText.g:780:2: 'shall'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getShallNotAllowAccess().getShallKeyword_0());
+ }
+ match(input,15,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getShallNotAllowAccess().getShallKeyword_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ShallNotAllow__Group__0__Impl"
+
+
+ // $ANTLR start "rule__ShallNotAllow__Group__1"
+ // InternalBoilerplateText.g:789:1: rule__ShallNotAllow__Group__1 : rule__ShallNotAllow__Group__1__Impl rule__ShallNotAllow__Group__2 ;
+ public final void rule__ShallNotAllow__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:793:1: ( rule__ShallNotAllow__Group__1__Impl rule__ShallNotAllow__Group__2 )
+ // InternalBoilerplateText.g:794:2: rule__ShallNotAllow__Group__1__Impl rule__ShallNotAllow__Group__2
+ {
+ pushFollow(FOLLOW_9);
+ rule__ShallNotAllow__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ShallNotAllow__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ShallNotAllow__Group__1"
+
+
+ // $ANTLR start "rule__ShallNotAllow__Group__1__Impl"
+ // InternalBoilerplateText.g:801:1: rule__ShallNotAllow__Group__1__Impl : ( ( 'not' ) ) ;
+ public final void rule__ShallNotAllow__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:805:1: ( ( ( 'not' ) ) )
+ // InternalBoilerplateText.g:806:1: ( ( 'not' ) )
+ {
+ // InternalBoilerplateText.g:806:1: ( ( 'not' ) )
+ // InternalBoilerplateText.g:807:2: ( 'not' )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getShallNotAllowAccess().getNotKeyword_1());
+ }
+ // InternalBoilerplateText.g:808:2: ( 'not' )
+ // InternalBoilerplateText.g:808:3: 'not'
+ {
+ match(input,16,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getShallNotAllowAccess().getNotKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ShallNotAllow__Group__1__Impl"
+
+
+ // $ANTLR start "rule__ShallNotAllow__Group__2"
+ // InternalBoilerplateText.g:816:1: rule__ShallNotAllow__Group__2 : rule__ShallNotAllow__Group__2__Impl rule__ShallNotAllow__Group__3 ;
+ public final void rule__ShallNotAllow__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:820:1: ( rule__ShallNotAllow__Group__2__Impl rule__ShallNotAllow__Group__3 )
+ // InternalBoilerplateText.g:821:2: rule__ShallNotAllow__Group__2__Impl rule__ShallNotAllow__Group__3
+ {
+ pushFollow(FOLLOW_3);
+ rule__ShallNotAllow__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ShallNotAllow__Group__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ShallNotAllow__Group__2"
+
+
+ // $ANTLR start "rule__ShallNotAllow__Group__2__Impl"
+ // InternalBoilerplateText.g:828:1: rule__ShallNotAllow__Group__2__Impl : ( ( 'allow' ) ) ;
+ public final void rule__ShallNotAllow__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:832:1: ( ( ( 'allow' ) ) )
+ // InternalBoilerplateText.g:833:1: ( ( 'allow' ) )
+ {
+ // InternalBoilerplateText.g:833:1: ( ( 'allow' ) )
+ // InternalBoilerplateText.g:834:2: ( 'allow' )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getShallNotAllowAccess().getAllowKeyword_2());
+ }
+ // InternalBoilerplateText.g:835:2: ( 'allow' )
+ // InternalBoilerplateText.g:835:3: 'allow'
+ {
+ match(input,17,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getShallNotAllowAccess().getAllowKeyword_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ShallNotAllow__Group__2__Impl"
+
+
+ // $ANTLR start "rule__ShallNotAllow__Group__3"
+ // InternalBoilerplateText.g:843:1: rule__ShallNotAllow__Group__3 : rule__ShallNotAllow__Group__3__Impl ;
+ public final void rule__ShallNotAllow__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:847:1: ( rule__ShallNotAllow__Group__3__Impl )
+ // InternalBoilerplateText.g:848:2: rule__ShallNotAllow__Group__3__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__ShallNotAllow__Group__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ShallNotAllow__Group__3"
+
+
+ // $ANTLR start "rule__ShallNotAllow__Group__3__Impl"
+ // InternalBoilerplateText.g:854:1: rule__ShallNotAllow__Group__3__Impl : ( ( rule__ShallNotAllow__Alternatives_3 ) ) ;
+ public final void rule__ShallNotAllow__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:858:1: ( ( ( rule__ShallNotAllow__Alternatives_3 ) ) )
+ // InternalBoilerplateText.g:859:1: ( ( rule__ShallNotAllow__Alternatives_3 ) )
+ {
+ // InternalBoilerplateText.g:859:1: ( ( rule__ShallNotAllow__Alternatives_3 ) )
+ // InternalBoilerplateText.g:860:2: ( rule__ShallNotAllow__Alternatives_3 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getShallNotAllowAccess().getAlternatives_3());
+ }
+ // InternalBoilerplateText.g:861:2: ( rule__ShallNotAllow__Alternatives_3 )
+ // InternalBoilerplateText.g:861:3: rule__ShallNotAllow__Alternatives_3
+ {
+ pushFollow(FOLLOW_2);
+ rule__ShallNotAllow__Alternatives_3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getShallNotAllowAccess().getAlternatives_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ShallNotAllow__Group__3__Impl"
+
+
+ // $ANTLR start "rule__ShallNotAllow__Group_3_1__0"
+ // InternalBoilerplateText.g:870:1: rule__ShallNotAllow__Group_3_1__0 : rule__ShallNotAllow__Group_3_1__0__Impl rule__ShallNotAllow__Group_3_1__1 ;
+ public final void rule__ShallNotAllow__Group_3_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:874:1: ( rule__ShallNotAllow__Group_3_1__0__Impl rule__ShallNotAllow__Group_3_1__1 )
+ // InternalBoilerplateText.g:875:2: rule__ShallNotAllow__Group_3_1__0__Impl rule__ShallNotAllow__Group_3_1__1
+ {
+ pushFollow(FOLLOW_10);
+ rule__ShallNotAllow__Group_3_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ShallNotAllow__Group_3_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ShallNotAllow__Group_3_1__0"
+
+
+ // $ANTLR start "rule__ShallNotAllow__Group_3_1__0__Impl"
+ // InternalBoilerplateText.g:882:1: rule__ShallNotAllow__Group_3_1__0__Impl : ( ( rule__ShallNotAllow__EntityAssignment_3_1_0 ) ) ;
+ public final void rule__ShallNotAllow__Group_3_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:886:1: ( ( ( rule__ShallNotAllow__EntityAssignment_3_1_0 ) ) )
+ // InternalBoilerplateText.g:887:1: ( ( rule__ShallNotAllow__EntityAssignment_3_1_0 ) )
+ {
+ // InternalBoilerplateText.g:887:1: ( ( rule__ShallNotAllow__EntityAssignment_3_1_0 ) )
+ // InternalBoilerplateText.g:888:2: ( rule__ShallNotAllow__EntityAssignment_3_1_0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getShallNotAllowAccess().getEntityAssignment_3_1_0());
+ }
+ // InternalBoilerplateText.g:889:2: ( rule__ShallNotAllow__EntityAssignment_3_1_0 )
+ // InternalBoilerplateText.g:889:3: rule__ShallNotAllow__EntityAssignment_3_1_0
+ {
+ pushFollow(FOLLOW_2);
+ rule__ShallNotAllow__EntityAssignment_3_1_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getShallNotAllowAccess().getEntityAssignment_3_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ShallNotAllow__Group_3_1__0__Impl"
+
+
+ // $ANTLR start "rule__ShallNotAllow__Group_3_1__1"
+ // InternalBoilerplateText.g:897:1: rule__ShallNotAllow__Group_3_1__1 : rule__ShallNotAllow__Group_3_1__1__Impl rule__ShallNotAllow__Group_3_1__2 ;
+ public final void rule__ShallNotAllow__Group_3_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:901:1: ( rule__ShallNotAllow__Group_3_1__1__Impl rule__ShallNotAllow__Group_3_1__2 )
+ // InternalBoilerplateText.g:902:2: rule__ShallNotAllow__Group_3_1__1__Impl rule__ShallNotAllow__Group_3_1__2
+ {
+ pushFollow(FOLLOW_3);
+ rule__ShallNotAllow__Group_3_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ShallNotAllow__Group_3_1__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ShallNotAllow__Group_3_1__1"
+
+
+ // $ANTLR start "rule__ShallNotAllow__Group_3_1__1__Impl"
+ // InternalBoilerplateText.g:909:1: rule__ShallNotAllow__Group_3_1__1__Impl : ( 'to' ) ;
+ public final void rule__ShallNotAllow__Group_3_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:913:1: ( ( 'to' ) )
+ // InternalBoilerplateText.g:914:1: ( 'to' )
+ {
+ // InternalBoilerplateText.g:914:1: ( 'to' )
+ // InternalBoilerplateText.g:915:2: 'to'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getShallNotAllowAccess().getToKeyword_3_1_1());
+ }
+ match(input,18,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getShallNotAllowAccess().getToKeyword_3_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ShallNotAllow__Group_3_1__1__Impl"
+
+
+ // $ANTLR start "rule__ShallNotAllow__Group_3_1__2"
+ // InternalBoilerplateText.g:924:1: rule__ShallNotAllow__Group_3_1__2 : rule__ShallNotAllow__Group_3_1__2__Impl ;
+ public final void rule__ShallNotAllow__Group_3_1__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:928:1: ( rule__ShallNotAllow__Group_3_1__2__Impl )
+ // InternalBoilerplateText.g:929:2: rule__ShallNotAllow__Group_3_1__2__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__ShallNotAllow__Group_3_1__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ShallNotAllow__Group_3_1__2"
+
+
+ // $ANTLR start "rule__ShallNotAllow__Group_3_1__2__Impl"
+ // InternalBoilerplateText.g:935:1: rule__ShallNotAllow__Group_3_1__2__Impl : ( ( rule__ShallNotAllow__ActionPerformedByEntityAssignment_3_1_2 ) ) ;
+ public final void rule__ShallNotAllow__Group_3_1__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:939:1: ( ( ( rule__ShallNotAllow__ActionPerformedByEntityAssignment_3_1_2 ) ) )
+ // InternalBoilerplateText.g:940:1: ( ( rule__ShallNotAllow__ActionPerformedByEntityAssignment_3_1_2 ) )
+ {
+ // InternalBoilerplateText.g:940:1: ( ( rule__ShallNotAllow__ActionPerformedByEntityAssignment_3_1_2 ) )
+ // InternalBoilerplateText.g:941:2: ( rule__ShallNotAllow__ActionPerformedByEntityAssignment_3_1_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getShallNotAllowAccess().getActionPerformedByEntityAssignment_3_1_2());
+ }
+ // InternalBoilerplateText.g:942:2: ( rule__ShallNotAllow__ActionPerformedByEntityAssignment_3_1_2 )
+ // InternalBoilerplateText.g:942:3: rule__ShallNotAllow__ActionPerformedByEntityAssignment_3_1_2
+ {
+ pushFollow(FOLLOW_2);
+ rule__ShallNotAllow__ActionPerformedByEntityAssignment_3_1_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getShallNotAllowAccess().getActionPerformedByEntityAssignment_3_1_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ShallNotAllow__Group_3_1__2__Impl"
+
+
+ // $ANTLR start "rule__ShallAllow__Group__0"
+ // InternalBoilerplateText.g:951:1: rule__ShallAllow__Group__0 : rule__ShallAllow__Group__0__Impl rule__ShallAllow__Group__1 ;
+ public final void rule__ShallAllow__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:955:1: ( rule__ShallAllow__Group__0__Impl rule__ShallAllow__Group__1 )
+ // InternalBoilerplateText.g:956:2: rule__ShallAllow__Group__0__Impl rule__ShallAllow__Group__1
+ {
+ pushFollow(FOLLOW_9);
+ rule__ShallAllow__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ShallAllow__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ShallAllow__Group__0"
+
+
+ // $ANTLR start "rule__ShallAllow__Group__0__Impl"
+ // InternalBoilerplateText.g:963:1: rule__ShallAllow__Group__0__Impl : ( 'shall' ) ;
+ public final void rule__ShallAllow__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:967:1: ( ( 'shall' ) )
+ // InternalBoilerplateText.g:968:1: ( 'shall' )
+ {
+ // InternalBoilerplateText.g:968:1: ( 'shall' )
+ // InternalBoilerplateText.g:969:2: 'shall'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getShallAllowAccess().getShallKeyword_0());
+ }
+ match(input,15,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getShallAllowAccess().getShallKeyword_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ShallAllow__Group__0__Impl"
+
+
+ // $ANTLR start "rule__ShallAllow__Group__1"
+ // InternalBoilerplateText.g:978:1: rule__ShallAllow__Group__1 : rule__ShallAllow__Group__1__Impl rule__ShallAllow__Group__2 ;
+ public final void rule__ShallAllow__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:982:1: ( rule__ShallAllow__Group__1__Impl rule__ShallAllow__Group__2 )
+ // InternalBoilerplateText.g:983:2: rule__ShallAllow__Group__1__Impl rule__ShallAllow__Group__2
+ {
+ pushFollow(FOLLOW_3);
+ rule__ShallAllow__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ShallAllow__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ShallAllow__Group__1"
+
+
+ // $ANTLR start "rule__ShallAllow__Group__1__Impl"
+ // InternalBoilerplateText.g:990:1: rule__ShallAllow__Group__1__Impl : ( ( 'allow' ) ) ;
+ public final void rule__ShallAllow__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:994:1: ( ( ( 'allow' ) ) )
+ // InternalBoilerplateText.g:995:1: ( ( 'allow' ) )
+ {
+ // InternalBoilerplateText.g:995:1: ( ( 'allow' ) )
+ // InternalBoilerplateText.g:996:2: ( 'allow' )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getShallAllowAccess().getAllowKeyword_1());
+ }
+ // InternalBoilerplateText.g:997:2: ( 'allow' )
+ // InternalBoilerplateText.g:997:3: 'allow'
+ {
+ match(input,17,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getShallAllowAccess().getAllowKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ShallAllow__Group__1__Impl"
+
+
+ // $ANTLR start "rule__ShallAllow__Group__2"
+ // InternalBoilerplateText.g:1005:1: rule__ShallAllow__Group__2 : rule__ShallAllow__Group__2__Impl ;
+ public final void rule__ShallAllow__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:1009:1: ( rule__ShallAllow__Group__2__Impl )
+ // InternalBoilerplateText.g:1010:2: rule__ShallAllow__Group__2__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__ShallAllow__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ShallAllow__Group__2"
+
+
+ // $ANTLR start "rule__ShallAllow__Group__2__Impl"
+ // InternalBoilerplateText.g:1016:1: rule__ShallAllow__Group__2__Impl : ( ( rule__ShallAllow__Alternatives_2 ) ) ;
+ public final void rule__ShallAllow__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:1020:1: ( ( ( rule__ShallAllow__Alternatives_2 ) ) )
+ // InternalBoilerplateText.g:1021:1: ( ( rule__ShallAllow__Alternatives_2 ) )
+ {
+ // InternalBoilerplateText.g:1021:1: ( ( rule__ShallAllow__Alternatives_2 ) )
+ // InternalBoilerplateText.g:1022:2: ( rule__ShallAllow__Alternatives_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getShallAllowAccess().getAlternatives_2());
+ }
+ // InternalBoilerplateText.g:1023:2: ( rule__ShallAllow__Alternatives_2 )
+ // InternalBoilerplateText.g:1023:3: rule__ShallAllow__Alternatives_2
+ {
+ pushFollow(FOLLOW_2);
+ rule__ShallAllow__Alternatives_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getShallAllowAccess().getAlternatives_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ShallAllow__Group__2__Impl"
+
+
+ // $ANTLR start "rule__ShallAllow__Group_2_1__0"
+ // InternalBoilerplateText.g:1032:1: rule__ShallAllow__Group_2_1__0 : rule__ShallAllow__Group_2_1__0__Impl rule__ShallAllow__Group_2_1__1 ;
+ public final void rule__ShallAllow__Group_2_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:1036:1: ( rule__ShallAllow__Group_2_1__0__Impl rule__ShallAllow__Group_2_1__1 )
+ // InternalBoilerplateText.g:1037:2: rule__ShallAllow__Group_2_1__0__Impl rule__ShallAllow__Group_2_1__1
+ {
+ pushFollow(FOLLOW_10);
+ rule__ShallAllow__Group_2_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ShallAllow__Group_2_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ShallAllow__Group_2_1__0"
+
+
+ // $ANTLR start "rule__ShallAllow__Group_2_1__0__Impl"
+ // InternalBoilerplateText.g:1044:1: rule__ShallAllow__Group_2_1__0__Impl : ( ( rule__ShallAllow__EntityAssignment_2_1_0 ) ) ;
+ public final void rule__ShallAllow__Group_2_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:1048:1: ( ( ( rule__ShallAllow__EntityAssignment_2_1_0 ) ) )
+ // InternalBoilerplateText.g:1049:1: ( ( rule__ShallAllow__EntityAssignment_2_1_0 ) )
+ {
+ // InternalBoilerplateText.g:1049:1: ( ( rule__ShallAllow__EntityAssignment_2_1_0 ) )
+ // InternalBoilerplateText.g:1050:2: ( rule__ShallAllow__EntityAssignment_2_1_0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getShallAllowAccess().getEntityAssignment_2_1_0());
+ }
+ // InternalBoilerplateText.g:1051:2: ( rule__ShallAllow__EntityAssignment_2_1_0 )
+ // InternalBoilerplateText.g:1051:3: rule__ShallAllow__EntityAssignment_2_1_0
+ {
+ pushFollow(FOLLOW_2);
+ rule__ShallAllow__EntityAssignment_2_1_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getShallAllowAccess().getEntityAssignment_2_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ShallAllow__Group_2_1__0__Impl"
+
+
+ // $ANTLR start "rule__ShallAllow__Group_2_1__1"
+ // InternalBoilerplateText.g:1059:1: rule__ShallAllow__Group_2_1__1 : rule__ShallAllow__Group_2_1__1__Impl rule__ShallAllow__Group_2_1__2 ;
+ public final void rule__ShallAllow__Group_2_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:1063:1: ( rule__ShallAllow__Group_2_1__1__Impl rule__ShallAllow__Group_2_1__2 )
+ // InternalBoilerplateText.g:1064:2: rule__ShallAllow__Group_2_1__1__Impl rule__ShallAllow__Group_2_1__2
+ {
+ pushFollow(FOLLOW_3);
+ rule__ShallAllow__Group_2_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ShallAllow__Group_2_1__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ShallAllow__Group_2_1__1"
+
+
+ // $ANTLR start "rule__ShallAllow__Group_2_1__1__Impl"
+ // InternalBoilerplateText.g:1071:1: rule__ShallAllow__Group_2_1__1__Impl : ( 'to' ) ;
+ public final void rule__ShallAllow__Group_2_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:1075:1: ( ( 'to' ) )
+ // InternalBoilerplateText.g:1076:1: ( 'to' )
+ {
+ // InternalBoilerplateText.g:1076:1: ( 'to' )
+ // InternalBoilerplateText.g:1077:2: 'to'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getShallAllowAccess().getToKeyword_2_1_1());
+ }
+ match(input,18,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getShallAllowAccess().getToKeyword_2_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ShallAllow__Group_2_1__1__Impl"
+
+
+ // $ANTLR start "rule__ShallAllow__Group_2_1__2"
+ // InternalBoilerplateText.g:1086:1: rule__ShallAllow__Group_2_1__2 : rule__ShallAllow__Group_2_1__2__Impl ;
+ public final void rule__ShallAllow__Group_2_1__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:1090:1: ( rule__ShallAllow__Group_2_1__2__Impl )
+ // InternalBoilerplateText.g:1091:2: rule__ShallAllow__Group_2_1__2__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__ShallAllow__Group_2_1__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ShallAllow__Group_2_1__2"
+
+
+ // $ANTLR start "rule__ShallAllow__Group_2_1__2__Impl"
+ // InternalBoilerplateText.g:1097:1: rule__ShallAllow__Group_2_1__2__Impl : ( ( rule__ShallAllow__ActionPerformedByEntityAssignment_2_1_2 ) ) ;
+ public final void rule__ShallAllow__Group_2_1__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:1101:1: ( ( ( rule__ShallAllow__ActionPerformedByEntityAssignment_2_1_2 ) ) )
+ // InternalBoilerplateText.g:1102:1: ( ( rule__ShallAllow__ActionPerformedByEntityAssignment_2_1_2 ) )
+ {
+ // InternalBoilerplateText.g:1102:1: ( ( rule__ShallAllow__ActionPerformedByEntityAssignment_2_1_2 ) )
+ // InternalBoilerplateText.g:1103:2: ( rule__ShallAllow__ActionPerformedByEntityAssignment_2_1_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getShallAllowAccess().getActionPerformedByEntityAssignment_2_1_2());
+ }
+ // InternalBoilerplateText.g:1104:2: ( rule__ShallAllow__ActionPerformedByEntityAssignment_2_1_2 )
+ // InternalBoilerplateText.g:1104:3: rule__ShallAllow__ActionPerformedByEntityAssignment_2_1_2
+ {
+ pushFollow(FOLLOW_2);
+ rule__ShallAllow__ActionPerformedByEntityAssignment_2_1_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getShallAllowAccess().getActionPerformedByEntityAssignment_2_1_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ShallAllow__Group_2_1__2__Impl"
+
+
+ // $ANTLR start "rule__ShallNot__Group__0"
+ // InternalBoilerplateText.g:1113:1: rule__ShallNot__Group__0 : rule__ShallNot__Group__0__Impl rule__ShallNot__Group__1 ;
+ public final void rule__ShallNot__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:1117:1: ( rule__ShallNot__Group__0__Impl rule__ShallNot__Group__1 )
+ // InternalBoilerplateText.g:1118:2: rule__ShallNot__Group__0__Impl rule__ShallNot__Group__1
+ {
+ pushFollow(FOLLOW_8);
+ rule__ShallNot__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ShallNot__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ShallNot__Group__0"
+
+
+ // $ANTLR start "rule__ShallNot__Group__0__Impl"
+ // InternalBoilerplateText.g:1125:1: rule__ShallNot__Group__0__Impl : ( 'shall' ) ;
+ public final void rule__ShallNot__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:1129:1: ( ( 'shall' ) )
+ // InternalBoilerplateText.g:1130:1: ( 'shall' )
+ {
+ // InternalBoilerplateText.g:1130:1: ( 'shall' )
+ // InternalBoilerplateText.g:1131:2: 'shall'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getShallNotAccess().getShallKeyword_0());
+ }
+ match(input,15,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getShallNotAccess().getShallKeyword_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ShallNot__Group__0__Impl"
+
+
+ // $ANTLR start "rule__ShallNot__Group__1"
+ // InternalBoilerplateText.g:1140:1: rule__ShallNot__Group__1 : rule__ShallNot__Group__1__Impl rule__ShallNot__Group__2 ;
+ public final void rule__ShallNot__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:1144:1: ( rule__ShallNot__Group__1__Impl rule__ShallNot__Group__2 )
+ // InternalBoilerplateText.g:1145:2: rule__ShallNot__Group__1__Impl rule__ShallNot__Group__2
+ {
+ pushFollow(FOLLOW_11);
+ rule__ShallNot__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ShallNot__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ShallNot__Group__1"
+
+
+ // $ANTLR start "rule__ShallNot__Group__1__Impl"
+ // InternalBoilerplateText.g:1152:1: rule__ShallNot__Group__1__Impl : ( ( 'not' ) ) ;
+ public final void rule__ShallNot__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:1156:1: ( ( ( 'not' ) ) )
+ // InternalBoilerplateText.g:1157:1: ( ( 'not' ) )
+ {
+ // InternalBoilerplateText.g:1157:1: ( ( 'not' ) )
+ // InternalBoilerplateText.g:1158:2: ( 'not' )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getShallNotAccess().getNotKeyword_1());
+ }
+ // InternalBoilerplateText.g:1159:2: ( 'not' )
+ // InternalBoilerplateText.g:1159:3: 'not'
+ {
+ match(input,16,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getShallNotAccess().getNotKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ShallNot__Group__1__Impl"
+
+
+ // $ANTLR start "rule__ShallNot__Group__2"
+ // InternalBoilerplateText.g:1167:1: rule__ShallNot__Group__2 : rule__ShallNot__Group__2__Impl rule__ShallNot__Group__3 ;
+ public final void rule__ShallNot__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:1171:1: ( rule__ShallNot__Group__2__Impl rule__ShallNot__Group__3 )
+ // InternalBoilerplateText.g:1172:2: rule__ShallNot__Group__2__Impl rule__ShallNot__Group__3
+ {
+ pushFollow(FOLLOW_11);
+ rule__ShallNot__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ShallNot__Group__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ShallNot__Group__2"
+
+
+ // $ANTLR start "rule__ShallNot__Group__2__Impl"
+ // InternalBoilerplateText.g:1179:1: rule__ShallNot__Group__2__Impl : ( ( rule__ShallNot__Group_2__0 )? ) ;
+ public final void rule__ShallNot__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:1183:1: ( ( ( rule__ShallNot__Group_2__0 )? ) )
+ // InternalBoilerplateText.g:1184:1: ( ( rule__ShallNot__Group_2__0 )? )
+ {
+ // InternalBoilerplateText.g:1184:1: ( ( rule__ShallNot__Group_2__0 )? )
+ // InternalBoilerplateText.g:1185:2: ( rule__ShallNot__Group_2__0 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getShallNotAccess().getGroup_2());
+ }
+ // InternalBoilerplateText.g:1186:2: ( rule__ShallNot__Group_2__0 )?
+ int alt7=2;
+ int LA7_0 = input.LA(1);
+
+ if ( (LA7_0==19) ) {
+ alt7=1;
+ }
+ switch (alt7) {
+ case 1 :
+ // InternalBoilerplateText.g:1186:3: rule__ShallNot__Group_2__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__ShallNot__Group_2__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getShallNotAccess().getGroup_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ShallNot__Group__2__Impl"
+
+
+ // $ANTLR start "rule__ShallNot__Group__3"
+ // InternalBoilerplateText.g:1194:1: rule__ShallNot__Group__3 : rule__ShallNot__Group__3__Impl ;
+ public final void rule__ShallNot__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:1198:1: ( rule__ShallNot__Group__3__Impl )
+ // InternalBoilerplateText.g:1199:2: rule__ShallNot__Group__3__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__ShallNot__Group__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ShallNot__Group__3"
+
+
+ // $ANTLR start "rule__ShallNot__Group__3__Impl"
+ // InternalBoilerplateText.g:1205:1: rule__ShallNot__Group__3__Impl : ( ( rule__ShallNot__ActionAssignment_3 ) ) ;
+ public final void rule__ShallNot__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:1209:1: ( ( ( rule__ShallNot__ActionAssignment_3 ) ) )
+ // InternalBoilerplateText.g:1210:1: ( ( rule__ShallNot__ActionAssignment_3 ) )
+ {
+ // InternalBoilerplateText.g:1210:1: ( ( rule__ShallNot__ActionAssignment_3 ) )
+ // InternalBoilerplateText.g:1211:2: ( rule__ShallNot__ActionAssignment_3 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getShallNotAccess().getActionAssignment_3());
+ }
+ // InternalBoilerplateText.g:1212:2: ( rule__ShallNot__ActionAssignment_3 )
+ // InternalBoilerplateText.g:1212:3: rule__ShallNot__ActionAssignment_3
+ {
+ pushFollow(FOLLOW_2);
+ rule__ShallNot__ActionAssignment_3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getShallNotAccess().getActionAssignment_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ShallNot__Group__3__Impl"
+
+
+ // $ANTLR start "rule__ShallNot__Group_2__0"
+ // InternalBoilerplateText.g:1221:1: rule__ShallNot__Group_2__0 : rule__ShallNot__Group_2__0__Impl rule__ShallNot__Group_2__1 ;
+ public final void rule__ShallNot__Group_2__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:1225:1: ( rule__ShallNot__Group_2__0__Impl rule__ShallNot__Group_2__1 )
+ // InternalBoilerplateText.g:1226:2: rule__ShallNot__Group_2__0__Impl rule__ShallNot__Group_2__1
+ {
+ pushFollow(FOLLOW_12);
+ rule__ShallNot__Group_2__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ShallNot__Group_2__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ShallNot__Group_2__0"
+
+
+ // $ANTLR start "rule__ShallNot__Group_2__0__Impl"
+ // InternalBoilerplateText.g:1233:1: rule__ShallNot__Group_2__0__Impl : ( 'be' ) ;
+ public final void rule__ShallNot__Group_2__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:1237:1: ( ( 'be' ) )
+ // InternalBoilerplateText.g:1238:1: ( 'be' )
+ {
+ // InternalBoilerplateText.g:1238:1: ( 'be' )
+ // InternalBoilerplateText.g:1239:2: 'be'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getShallNotAccess().getBeKeyword_2_0());
+ }
+ match(input,19,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getShallNotAccess().getBeKeyword_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ShallNot__Group_2__0__Impl"
+
+
+ // $ANTLR start "rule__ShallNot__Group_2__1"
+ // InternalBoilerplateText.g:1248:1: rule__ShallNot__Group_2__1 : rule__ShallNot__Group_2__1__Impl rule__ShallNot__Group_2__2 ;
+ public final void rule__ShallNot__Group_2__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:1252:1: ( rule__ShallNot__Group_2__1__Impl rule__ShallNot__Group_2__2 )
+ // InternalBoilerplateText.g:1253:2: rule__ShallNot__Group_2__1__Impl rule__ShallNot__Group_2__2
+ {
+ pushFollow(FOLLOW_10);
+ rule__ShallNot__Group_2__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__ShallNot__Group_2__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ShallNot__Group_2__1"
+
+
+ // $ANTLR start "rule__ShallNot__Group_2__1__Impl"
+ // InternalBoilerplateText.g:1260:1: rule__ShallNot__Group_2__1__Impl : ( ( 'able' ) ) ;
+ public final void rule__ShallNot__Group_2__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:1264:1: ( ( ( 'able' ) ) )
+ // InternalBoilerplateText.g:1265:1: ( ( 'able' ) )
+ {
+ // InternalBoilerplateText.g:1265:1: ( ( 'able' ) )
+ // InternalBoilerplateText.g:1266:2: ( 'able' )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getShallNotAccess().getAbleKeyword_2_1());
+ }
+ // InternalBoilerplateText.g:1267:2: ( 'able' )
+ // InternalBoilerplateText.g:1267:3: 'able'
+ {
+ match(input,20,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getShallNotAccess().getAbleKeyword_2_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ShallNot__Group_2__1__Impl"
+
+
+ // $ANTLR start "rule__ShallNot__Group_2__2"
+ // InternalBoilerplateText.g:1275:1: rule__ShallNot__Group_2__2 : rule__ShallNot__Group_2__2__Impl ;
+ public final void rule__ShallNot__Group_2__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:1279:1: ( rule__ShallNot__Group_2__2__Impl )
+ // InternalBoilerplateText.g:1280:2: rule__ShallNot__Group_2__2__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__ShallNot__Group_2__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ShallNot__Group_2__2"
+
+
+ // $ANTLR start "rule__ShallNot__Group_2__2__Impl"
+ // InternalBoilerplateText.g:1286:1: rule__ShallNot__Group_2__2__Impl : ( ( 'to' ) ) ;
+ public final void rule__ShallNot__Group_2__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:1290:1: ( ( ( 'to' ) ) )
+ // InternalBoilerplateText.g:1291:1: ( ( 'to' ) )
+ {
+ // InternalBoilerplateText.g:1291:1: ( ( 'to' ) )
+ // InternalBoilerplateText.g:1292:2: ( 'to' )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getShallNotAccess().getToKeyword_2_2());
+ }
+ // InternalBoilerplateText.g:1293:2: ( 'to' )
+ // InternalBoilerplateText.g:1293:3: 'to'
+ {
+ match(input,18,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getShallNotAccess().getToKeyword_2_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ShallNot__Group_2__2__Impl"
+
+
+ // $ANTLR start "rule__Shall__Group__0"
+ // InternalBoilerplateText.g:1302:1: rule__Shall__Group__0 : rule__Shall__Group__0__Impl rule__Shall__Group__1 ;
+ public final void rule__Shall__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:1306:1: ( rule__Shall__Group__0__Impl rule__Shall__Group__1 )
+ // InternalBoilerplateText.g:1307:2: rule__Shall__Group__0__Impl rule__Shall__Group__1
+ {
+ pushFollow(FOLLOW_11);
+ rule__Shall__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Shall__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Shall__Group__0"
+
+
+ // $ANTLR start "rule__Shall__Group__0__Impl"
+ // InternalBoilerplateText.g:1314:1: rule__Shall__Group__0__Impl : ( 'shall' ) ;
+ public final void rule__Shall__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:1318:1: ( ( 'shall' ) )
+ // InternalBoilerplateText.g:1319:1: ( 'shall' )
+ {
+ // InternalBoilerplateText.g:1319:1: ( 'shall' )
+ // InternalBoilerplateText.g:1320:2: 'shall'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getShallAccess().getShallKeyword_0());
+ }
+ match(input,15,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getShallAccess().getShallKeyword_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Shall__Group__0__Impl"
+
+
+ // $ANTLR start "rule__Shall__Group__1"
+ // InternalBoilerplateText.g:1329:1: rule__Shall__Group__1 : rule__Shall__Group__1__Impl rule__Shall__Group__2 ;
+ public final void rule__Shall__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:1333:1: ( rule__Shall__Group__1__Impl rule__Shall__Group__2 )
+ // InternalBoilerplateText.g:1334:2: rule__Shall__Group__1__Impl rule__Shall__Group__2
+ {
+ pushFollow(FOLLOW_11);
+ rule__Shall__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Shall__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Shall__Group__1"
+
+
+ // $ANTLR start "rule__Shall__Group__1__Impl"
+ // InternalBoilerplateText.g:1341:1: rule__Shall__Group__1__Impl : ( ( rule__Shall__Group_1__0 )? ) ;
+ public final void rule__Shall__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:1345:1: ( ( ( rule__Shall__Group_1__0 )? ) )
+ // InternalBoilerplateText.g:1346:1: ( ( rule__Shall__Group_1__0 )? )
+ {
+ // InternalBoilerplateText.g:1346:1: ( ( rule__Shall__Group_1__0 )? )
+ // InternalBoilerplateText.g:1347:2: ( rule__Shall__Group_1__0 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getShallAccess().getGroup_1());
+ }
+ // InternalBoilerplateText.g:1348:2: ( rule__Shall__Group_1__0 )?
+ int alt8=2;
+ int LA8_0 = input.LA(1);
+
+ if ( (LA8_0==19) ) {
+ alt8=1;
+ }
+ switch (alt8) {
+ case 1 :
+ // InternalBoilerplateText.g:1348:3: rule__Shall__Group_1__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Shall__Group_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getShallAccess().getGroup_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Shall__Group__1__Impl"
+
+
+ // $ANTLR start "rule__Shall__Group__2"
+ // InternalBoilerplateText.g:1356:1: rule__Shall__Group__2 : rule__Shall__Group__2__Impl ;
+ public final void rule__Shall__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:1360:1: ( rule__Shall__Group__2__Impl )
+ // InternalBoilerplateText.g:1361:2: rule__Shall__Group__2__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__Shall__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Shall__Group__2"
+
+
+ // $ANTLR start "rule__Shall__Group__2__Impl"
+ // InternalBoilerplateText.g:1367:1: rule__Shall__Group__2__Impl : ( ( rule__Shall__ActionAssignment_2 ) ) ;
+ public final void rule__Shall__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:1371:1: ( ( ( rule__Shall__ActionAssignment_2 ) ) )
+ // InternalBoilerplateText.g:1372:1: ( ( rule__Shall__ActionAssignment_2 ) )
+ {
+ // InternalBoilerplateText.g:1372:1: ( ( rule__Shall__ActionAssignment_2 ) )
+ // InternalBoilerplateText.g:1373:2: ( rule__Shall__ActionAssignment_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getShallAccess().getActionAssignment_2());
+ }
+ // InternalBoilerplateText.g:1374:2: ( rule__Shall__ActionAssignment_2 )
+ // InternalBoilerplateText.g:1374:3: rule__Shall__ActionAssignment_2
+ {
+ pushFollow(FOLLOW_2);
+ rule__Shall__ActionAssignment_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getShallAccess().getActionAssignment_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Shall__Group__2__Impl"
+
+
+ // $ANTLR start "rule__Shall__Group_1__0"
+ // InternalBoilerplateText.g:1383:1: rule__Shall__Group_1__0 : rule__Shall__Group_1__0__Impl ;
+ public final void rule__Shall__Group_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:1387:1: ( rule__Shall__Group_1__0__Impl )
+ // InternalBoilerplateText.g:1388:2: rule__Shall__Group_1__0__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__Shall__Group_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Shall__Group_1__0"
+
+
+ // $ANTLR start "rule__Shall__Group_1__0__Impl"
+ // InternalBoilerplateText.g:1394:1: rule__Shall__Group_1__0__Impl : ( ( rule__Shall__Group_1_0__0 ) ) ;
+ public final void rule__Shall__Group_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:1398:1: ( ( ( rule__Shall__Group_1_0__0 ) ) )
+ // InternalBoilerplateText.g:1399:1: ( ( rule__Shall__Group_1_0__0 ) )
+ {
+ // InternalBoilerplateText.g:1399:1: ( ( rule__Shall__Group_1_0__0 ) )
+ // InternalBoilerplateText.g:1400:2: ( rule__Shall__Group_1_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getShallAccess().getGroup_1_0());
+ }
+ // InternalBoilerplateText.g:1401:2: ( rule__Shall__Group_1_0__0 )
+ // InternalBoilerplateText.g:1401:3: rule__Shall__Group_1_0__0
+ {
+ pushFollow(FOLLOW_2);
+ rule__Shall__Group_1_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getShallAccess().getGroup_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Shall__Group_1__0__Impl"
+
+
+ // $ANTLR start "rule__Shall__Group_1_0__0"
+ // InternalBoilerplateText.g:1410:1: rule__Shall__Group_1_0__0 : rule__Shall__Group_1_0__0__Impl rule__Shall__Group_1_0__1 ;
+ public final void rule__Shall__Group_1_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:1414:1: ( rule__Shall__Group_1_0__0__Impl rule__Shall__Group_1_0__1 )
+ // InternalBoilerplateText.g:1415:2: rule__Shall__Group_1_0__0__Impl rule__Shall__Group_1_0__1
+ {
+ pushFollow(FOLLOW_12);
+ rule__Shall__Group_1_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Shall__Group_1_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Shall__Group_1_0__0"
+
+
+ // $ANTLR start "rule__Shall__Group_1_0__0__Impl"
+ // InternalBoilerplateText.g:1422:1: rule__Shall__Group_1_0__0__Impl : ( 'be' ) ;
+ public final void rule__Shall__Group_1_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:1426:1: ( ( 'be' ) )
+ // InternalBoilerplateText.g:1427:1: ( 'be' )
+ {
+ // InternalBoilerplateText.g:1427:1: ( 'be' )
+ // InternalBoilerplateText.g:1428:2: 'be'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getShallAccess().getBeKeyword_1_0_0());
+ }
+ match(input,19,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getShallAccess().getBeKeyword_1_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Shall__Group_1_0__0__Impl"
+
+
+ // $ANTLR start "rule__Shall__Group_1_0__1"
+ // InternalBoilerplateText.g:1437:1: rule__Shall__Group_1_0__1 : rule__Shall__Group_1_0__1__Impl rule__Shall__Group_1_0__2 ;
+ public final void rule__Shall__Group_1_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:1441:1: ( rule__Shall__Group_1_0__1__Impl rule__Shall__Group_1_0__2 )
+ // InternalBoilerplateText.g:1442:2: rule__Shall__Group_1_0__1__Impl rule__Shall__Group_1_0__2
+ {
+ pushFollow(FOLLOW_10);
+ rule__Shall__Group_1_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_2);
+ rule__Shall__Group_1_0__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Shall__Group_1_0__1"
+
+
+ // $ANTLR start "rule__Shall__Group_1_0__1__Impl"
+ // InternalBoilerplateText.g:1449:1: rule__Shall__Group_1_0__1__Impl : ( ( 'able' ) ) ;
+ public final void rule__Shall__Group_1_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:1453:1: ( ( ( 'able' ) ) )
+ // InternalBoilerplateText.g:1454:1: ( ( 'able' ) )
+ {
+ // InternalBoilerplateText.g:1454:1: ( ( 'able' ) )
+ // InternalBoilerplateText.g:1455:2: ( 'able' )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getShallAccess().getAbleKeyword_1_0_1());
+ }
+ // InternalBoilerplateText.g:1456:2: ( 'able' )
+ // InternalBoilerplateText.g:1456:3: 'able'
+ {
+ match(input,20,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getShallAccess().getAbleKeyword_1_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Shall__Group_1_0__1__Impl"
+
+
+ // $ANTLR start "rule__Shall__Group_1_0__2"
+ // InternalBoilerplateText.g:1464:1: rule__Shall__Group_1_0__2 : rule__Shall__Group_1_0__2__Impl ;
+ public final void rule__Shall__Group_1_0__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:1468:1: ( rule__Shall__Group_1_0__2__Impl )
+ // InternalBoilerplateText.g:1469:2: rule__Shall__Group_1_0__2__Impl
+ {
+ pushFollow(FOLLOW_2);
+ rule__Shall__Group_1_0__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Shall__Group_1_0__2"
+
+
+ // $ANTLR start "rule__Shall__Group_1_0__2__Impl"
+ // InternalBoilerplateText.g:1475:1: rule__Shall__Group_1_0__2__Impl : ( ( 'to' ) ) ;
+ public final void rule__Shall__Group_1_0__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:1479:1: ( ( ( 'to' ) ) )
+ // InternalBoilerplateText.g:1480:1: ( ( 'to' ) )
+ {
+ // InternalBoilerplateText.g:1480:1: ( ( 'to' ) )
+ // InternalBoilerplateText.g:1481:2: ( 'to' )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getShallAccess().getToKeyword_1_0_2());
+ }
+ // InternalBoilerplateText.g:1482:2: ( 'to' )
+ // InternalBoilerplateText.g:1482:3: 'to'
+ {
+ match(input,18,FOLLOW_2); if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getShallAccess().getToKeyword_1_0_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Shall__Group_1_0__2__Impl"
+
+
+ // $ANTLR start "rule__Model__ModelAssignment"
+ // InternalBoilerplateText.g:1491:1: rule__Model__ModelAssignment : ( ruleRequirement ) ;
+ public final void rule__Model__ModelAssignment() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:1495:1: ( ( ruleRequirement ) )
+ // InternalBoilerplateText.g:1496:2: ( ruleRequirement )
+ {
+ // InternalBoilerplateText.g:1496:2: ( ruleRequirement )
+ // InternalBoilerplateText.g:1497:3: ruleRequirement
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getModelAccess().getModelRequirementParserRuleCall_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleRequirement();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getModelAccess().getModelRequirementParserRuleCall_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Model__ModelAssignment"
+
+
+ // $ANTLR start "rule__Requirement__PrefixAssignment_0_0"
+ // InternalBoilerplateText.g:1506:1: rule__Requirement__PrefixAssignment_0_0 : ( rulePrefix ) ;
+ public final void rule__Requirement__PrefixAssignment_0_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:1510:1: ( ( rulePrefix ) )
+ // InternalBoilerplateText.g:1511:2: ( rulePrefix )
+ {
+ // InternalBoilerplateText.g:1511:2: ( rulePrefix )
+ // InternalBoilerplateText.g:1512:3: rulePrefix
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getRequirementAccess().getPrefixPrefixParserRuleCall_0_0_0());
+ }
+ pushFollow(FOLLOW_2);
+ rulePrefix();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getRequirementAccess().getPrefixPrefixParserRuleCall_0_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Requirement__PrefixAssignment_0_0"
+
+
+ // $ANTLR start "rule__Requirement__SystemAssignment_1"
+ // InternalBoilerplateText.g:1521:1: rule__Requirement__SystemAssignment_1 : ( ruleSubject ) ;
+ public final void rule__Requirement__SystemAssignment_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:1525:1: ( ( ruleSubject ) )
+ // InternalBoilerplateText.g:1526:2: ( ruleSubject )
+ {
+ // InternalBoilerplateText.g:1526:2: ( ruleSubject )
+ // InternalBoilerplateText.g:1527:3: ruleSubject
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getRequirementAccess().getSystemSubjectParserRuleCall_1_0());
+ }
+ pushFollow(FOLLOW_2);
+ ruleSubject();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getRequirementAccess().getSystemSubjectParserRuleCall_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Requirement__SystemAssignment_1"
+
+
+ // $ANTLR start "rule__Requirement__PredicateAssignment_2"
+ // InternalBoilerplateText.g:1536:1: rule__Requirement__PredicateAssignment_2 : ( rulePredicate ) ;
+ public final void rule__Requirement__PredicateAssignment_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:1540:1: ( ( rulePredicate ) )
+ // InternalBoilerplateText.g:1541:2: ( rulePredicate )
+ {
+ // InternalBoilerplateText.g:1541:2: ( rulePredicate )
+ // InternalBoilerplateText.g:1542:3: rulePredicate
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getRequirementAccess().getPredicatePredicateParserRuleCall_2_0());
+ }
+ pushFollow(FOLLOW_2);
+ rulePredicate();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getRequirementAccess().getPredicatePredicateParserRuleCall_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Requirement__PredicateAssignment_2"
+
+
+ // $ANTLR start "rule__Subject__SystemAssignment"
+ // InternalBoilerplateText.g:1551:1: rule__Subject__SystemAssignment : ( RULE_STRING ) ;
+ public final void rule__Subject__SystemAssignment() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:1555:1: ( ( RULE_STRING ) )
+ // InternalBoilerplateText.g:1556:2: ( RULE_STRING )
+ {
+ // InternalBoilerplateText.g:1556:2: ( RULE_STRING )
+ // InternalBoilerplateText.g:1557:3: RULE_STRING
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getSubjectAccess().getSystemSTRINGTerminalRuleCall_0());
+ }
+ match(input,RULE_STRING,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getSubjectAccess().getSystemSTRINGTerminalRuleCall_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Subject__SystemAssignment"
+
+
+ // $ANTLR start "rule__If__EventAssignment_1"
+ // InternalBoilerplateText.g:1566:1: rule__If__EventAssignment_1 : ( RULE_STRING ) ;
+ public final void rule__If__EventAssignment_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:1570:1: ( ( RULE_STRING ) )
+ // InternalBoilerplateText.g:1571:2: ( RULE_STRING )
+ {
+ // InternalBoilerplateText.g:1571:2: ( RULE_STRING )
+ // InternalBoilerplateText.g:1572:3: RULE_STRING
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getIfAccess().getEventSTRINGTerminalRuleCall_1_0());
+ }
+ match(input,RULE_STRING,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getIfAccess().getEventSTRINGTerminalRuleCall_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__If__EventAssignment_1"
+
+
+ // $ANTLR start "rule__If__EventAssignment_2_1"
+ // InternalBoilerplateText.g:1581:1: rule__If__EventAssignment_2_1 : ( RULE_STRING ) ;
+ public final void rule__If__EventAssignment_2_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:1585:1: ( ( RULE_STRING ) )
+ // InternalBoilerplateText.g:1586:2: ( RULE_STRING )
+ {
+ // InternalBoilerplateText.g:1586:2: ( RULE_STRING )
+ // InternalBoilerplateText.g:1587:3: RULE_STRING
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getIfAccess().getEventSTRINGTerminalRuleCall_2_1_0());
+ }
+ match(input,RULE_STRING,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getIfAccess().getEventSTRINGTerminalRuleCall_2_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__If__EventAssignment_2_1"
+
+
+ // $ANTLR start "rule__While__StateAssignment_1"
+ // InternalBoilerplateText.g:1596:1: rule__While__StateAssignment_1 : ( RULE_STRING ) ;
+ public final void rule__While__StateAssignment_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:1600:1: ( ( RULE_STRING ) )
+ // InternalBoilerplateText.g:1601:2: ( RULE_STRING )
+ {
+ // InternalBoilerplateText.g:1601:2: ( RULE_STRING )
+ // InternalBoilerplateText.g:1602:3: RULE_STRING
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getWhileAccess().getStateSTRINGTerminalRuleCall_1_0());
+ }
+ match(input,RULE_STRING,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getWhileAccess().getStateSTRINGTerminalRuleCall_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__While__StateAssignment_1"
+
+
+ // $ANTLR start "rule__ShallNotAllow__ActionAssignment_3_0"
+ // InternalBoilerplateText.g:1611:1: rule__ShallNotAllow__ActionAssignment_3_0 : ( RULE_STRING ) ;
+ public final void rule__ShallNotAllow__ActionAssignment_3_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:1615:1: ( ( RULE_STRING ) )
+ // InternalBoilerplateText.g:1616:2: ( RULE_STRING )
+ {
+ // InternalBoilerplateText.g:1616:2: ( RULE_STRING )
+ // InternalBoilerplateText.g:1617:3: RULE_STRING
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getShallNotAllowAccess().getActionSTRINGTerminalRuleCall_3_0_0());
+ }
+ match(input,RULE_STRING,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getShallNotAllowAccess().getActionSTRINGTerminalRuleCall_3_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ShallNotAllow__ActionAssignment_3_0"
+
+
+ // $ANTLR start "rule__ShallNotAllow__EntityAssignment_3_1_0"
+ // InternalBoilerplateText.g:1626:1: rule__ShallNotAllow__EntityAssignment_3_1_0 : ( RULE_STRING ) ;
+ public final void rule__ShallNotAllow__EntityAssignment_3_1_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:1630:1: ( ( RULE_STRING ) )
+ // InternalBoilerplateText.g:1631:2: ( RULE_STRING )
+ {
+ // InternalBoilerplateText.g:1631:2: ( RULE_STRING )
+ // InternalBoilerplateText.g:1632:3: RULE_STRING
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getShallNotAllowAccess().getEntitySTRINGTerminalRuleCall_3_1_0_0());
+ }
+ match(input,RULE_STRING,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getShallNotAllowAccess().getEntitySTRINGTerminalRuleCall_3_1_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ShallNotAllow__EntityAssignment_3_1_0"
+
+
+ // $ANTLR start "rule__ShallNotAllow__ActionPerformedByEntityAssignment_3_1_2"
+ // InternalBoilerplateText.g:1641:1: rule__ShallNotAllow__ActionPerformedByEntityAssignment_3_1_2 : ( RULE_STRING ) ;
+ public final void rule__ShallNotAllow__ActionPerformedByEntityAssignment_3_1_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:1645:1: ( ( RULE_STRING ) )
+ // InternalBoilerplateText.g:1646:2: ( RULE_STRING )
+ {
+ // InternalBoilerplateText.g:1646:2: ( RULE_STRING )
+ // InternalBoilerplateText.g:1647:3: RULE_STRING
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getShallNotAllowAccess().getActionPerformedByEntitySTRINGTerminalRuleCall_3_1_2_0());
+ }
+ match(input,RULE_STRING,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getShallNotAllowAccess().getActionPerformedByEntitySTRINGTerminalRuleCall_3_1_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ShallNotAllow__ActionPerformedByEntityAssignment_3_1_2"
+
+
+ // $ANTLR start "rule__ShallAllow__ActionAssignment_2_0"
+ // InternalBoilerplateText.g:1656:1: rule__ShallAllow__ActionAssignment_2_0 : ( RULE_STRING ) ;
+ public final void rule__ShallAllow__ActionAssignment_2_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:1660:1: ( ( RULE_STRING ) )
+ // InternalBoilerplateText.g:1661:2: ( RULE_STRING )
+ {
+ // InternalBoilerplateText.g:1661:2: ( RULE_STRING )
+ // InternalBoilerplateText.g:1662:3: RULE_STRING
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getShallAllowAccess().getActionSTRINGTerminalRuleCall_2_0_0());
+ }
+ match(input,RULE_STRING,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getShallAllowAccess().getActionSTRINGTerminalRuleCall_2_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ShallAllow__ActionAssignment_2_0"
+
+
+ // $ANTLR start "rule__ShallAllow__EntityAssignment_2_1_0"
+ // InternalBoilerplateText.g:1671:1: rule__ShallAllow__EntityAssignment_2_1_0 : ( RULE_STRING ) ;
+ public final void rule__ShallAllow__EntityAssignment_2_1_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:1675:1: ( ( RULE_STRING ) )
+ // InternalBoilerplateText.g:1676:2: ( RULE_STRING )
+ {
+ // InternalBoilerplateText.g:1676:2: ( RULE_STRING )
+ // InternalBoilerplateText.g:1677:3: RULE_STRING
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getShallAllowAccess().getEntitySTRINGTerminalRuleCall_2_1_0_0());
+ }
+ match(input,RULE_STRING,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getShallAllowAccess().getEntitySTRINGTerminalRuleCall_2_1_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ShallAllow__EntityAssignment_2_1_0"
+
+
+ // $ANTLR start "rule__ShallAllow__ActionPerformedByEntityAssignment_2_1_2"
+ // InternalBoilerplateText.g:1686:1: rule__ShallAllow__ActionPerformedByEntityAssignment_2_1_2 : ( RULE_STRING ) ;
+ public final void rule__ShallAllow__ActionPerformedByEntityAssignment_2_1_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:1690:1: ( ( RULE_STRING ) )
+ // InternalBoilerplateText.g:1691:2: ( RULE_STRING )
+ {
+ // InternalBoilerplateText.g:1691:2: ( RULE_STRING )
+ // InternalBoilerplateText.g:1692:3: RULE_STRING
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getShallAllowAccess().getActionPerformedByEntitySTRINGTerminalRuleCall_2_1_2_0());
+ }
+ match(input,RULE_STRING,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getShallAllowAccess().getActionPerformedByEntitySTRINGTerminalRuleCall_2_1_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ShallAllow__ActionPerformedByEntityAssignment_2_1_2"
+
+
+ // $ANTLR start "rule__ShallNot__ActionAssignment_3"
+ // InternalBoilerplateText.g:1701:1: rule__ShallNot__ActionAssignment_3 : ( RULE_STRING ) ;
+ public final void rule__ShallNot__ActionAssignment_3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:1705:1: ( ( RULE_STRING ) )
+ // InternalBoilerplateText.g:1706:2: ( RULE_STRING )
+ {
+ // InternalBoilerplateText.g:1706:2: ( RULE_STRING )
+ // InternalBoilerplateText.g:1707:3: RULE_STRING
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getShallNotAccess().getActionSTRINGTerminalRuleCall_3_0());
+ }
+ match(input,RULE_STRING,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getShallNotAccess().getActionSTRINGTerminalRuleCall_3_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ShallNot__ActionAssignment_3"
+
+
+ // $ANTLR start "rule__Shall__ActionAssignment_2"
+ // InternalBoilerplateText.g:1716:1: rule__Shall__ActionAssignment_2 : ( RULE_STRING ) ;
+ public final void rule__Shall__ActionAssignment_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // InternalBoilerplateText.g:1720:1: ( ( RULE_STRING ) )
+ // InternalBoilerplateText.g:1721:2: ( RULE_STRING )
+ {
+ // InternalBoilerplateText.g:1721:2: ( RULE_STRING )
+ // InternalBoilerplateText.g:1722:3: RULE_STRING
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getShallAccess().getActionSTRINGTerminalRuleCall_2_0());
+ }
+ match(input,RULE_STRING,FOLLOW_2); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getShallAccess().getActionSTRINGTerminalRuleCall_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Shall__ActionAssignment_2"
+
+ // Delegated rules
+
+
+
+
+ public static final BitSet FOLLOW_1 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_2 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_3 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0000000000008000L});
+ public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x0000000000000800L});
+ public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x0000000000002000L});
+ public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000000000002002L});
+ public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000000000010000L});
+ public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000000000020000L});
+ public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0000000000040000L});
+ public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000000000080010L});
+ public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000000000100000L});
+
+}
\ No newline at end of file
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ide/src/org/eclipse/papyrus/requirements/sysml14/ide/BoilerplateTextIdeModule.xtend b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ide/src/org/eclipse/papyrus/requirements/sysml14/ide/BoilerplateTextIdeModule.xtend
new file mode 100644
index 0000000..ff5d80c
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ide/src/org/eclipse/papyrus/requirements/sysml14/ide/BoilerplateTextIdeModule.xtend
@@ -0,0 +1,11 @@
+/*
+ * generated by Xtext 2.11.0
+ */
+package org.eclipse.papyrus.requirements.sysml14.ide
+
+
+/**
+ * Use this class to register ide components.
+ */
+class BoilerplateTextIdeModule extends AbstractBoilerplateTextIdeModule {
+}
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ide/src/org/eclipse/papyrus/requirements/sysml14/ide/BoilerplateTextIdeSetup.xtend b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ide/src/org/eclipse/papyrus/requirements/sysml14/ide/BoilerplateTextIdeSetup.xtend
new file mode 100644
index 0000000..7ad84ce
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ide/src/org/eclipse/papyrus/requirements/sysml14/ide/BoilerplateTextIdeSetup.xtend
@@ -0,0 +1,20 @@
+/*
+ * generated by Xtext 2.11.0
+ */
+package org.eclipse.papyrus.requirements.sysml14.ide
+
+import com.google.inject.Guice
+import org.eclipse.papyrus.requirements.sysml14.BoilerplateTextRuntimeModule
+import org.eclipse.papyrus.requirements.sysml14.BoilerplateTextStandaloneSetup
+import org.eclipse.xtext.util.Modules2
+
+/**
+ * Initialization support for running Xtext languages as language servers.
+ */
+class BoilerplateTextIdeSetup extends BoilerplateTextStandaloneSetup {
+
+ override createInjector() {
+ Guice.createInjector(Modules2.mixin(new BoilerplateTextRuntimeModule, new BoilerplateTextIdeModule))
+ }
+
+}
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ide/xtend-gen/org/eclipse/papyrus/requirements/sysml14/ide/.gitignore b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ide/xtend-gen/org/eclipse/papyrus/requirements/sysml14/ide/.gitignore
new file mode 100644
index 0000000..0994b8d
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ide/xtend-gen/org/eclipse/papyrus/requirements/sysml14/ide/.gitignore
@@ -0,0 +1,4 @@
+/.BoilerplateTextIdeModule.java._trace
+/.BoilerplateTextIdeSetup.java._trace
+/BoilerplateTextIdeModule.java
+/BoilerplateTextIdeSetup.java
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/.classpath b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/.classpath
new file mode 100644
index 0000000..9081d4f
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/.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/JavaSE-1.8"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/.gitignore b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/.project b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/.project
new file mode 100644
index 0000000..2ac0243
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <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>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription>
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/.settings/org.eclipse.core.resources.prefs b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..68a0304
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=windows-1252
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/.settings/org.eclipse.jdt.core.prefs b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..0c68a61
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/META-INF/MANIFEST.MF b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..44940d6
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/META-INF/MANIFEST.MF
@@ -0,0 +1,39 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui
+Bundle-Vendor: Eclipse Modelling Project
+Bundle-Version: 0.7.0.qualifier
+Bundle-SymbolicName: org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui; singleton:=true
+Bundle-ActivationPolicy: lazy
+Require-Bundle: org.eclipse.papyrus.requirements.sysml14.boilerplatetext,
+ org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ide,
+ org.eclipse.xtext.ui,
+ org.eclipse.xtext.ui.shared,
+ org.eclipse.xtext.ui.codetemplates.ui,
+ org.eclipse.compare,
+ org.eclipse.xtext.builder,
+ org.eclipse.xtend.lib;resolution:=optional,
+ org.eclipse.papyrus.uml.properties,
+ org.eclipse.ui,
+ org.eclipse.ui.editors,
+ org.eclipse.xtext.xbase.lib,
+ org.eclipse.xtext
+Import-Package: org.apache.log4j,
+ org.eclipse.gmf.runtime.common.core.command,
+ org.eclipse.papyrus.extensionpoints.editors.configuration,
+ org.eclipse.papyrus.extensionpoints.editors.ui,
+ org.eclipse.papyrus.infra.properties.ui.modelelement,
+ org.eclipse.papyrus.sysml14.requirements,
+ org.eclipse.papyrus.uml.xtext.integration,
+ org.eclipse.papyrus.uml.xtext.integration.core,
+ org.eclipse.uml2.uml
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Export-Package: org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui.internal,
+ org.eclipse.papyrus.requirements.sysml14.ui,
+ org.eclipse.papyrus.requirements.sysml14.ui.contentassist,
+ org.eclipse.papyrus.requirements.sysml14.ui.contribution,
+ org.eclipse.papyrus.requirements.sysml14.ui.editor,
+ org.eclipse.papyrus.requirements.sysml14.ui.labeling,
+ org.eclipse.papyrus.requirements.sysml14.ui.outline,
+ org.eclipse.papyrus.requirements.sysml14.ui.quickfix
+Bundle-Activator: org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui.internal.BoilerplatetextActivator
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/about.html b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/about.html
new file mode 100644
index 0000000..d35d5ae
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 5, 2007</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, "Program" will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party ("Redistributor") and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/build.properties b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/build.properties
new file mode 100644
index 0000000..251422d
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/build.properties
@@ -0,0 +1,9 @@
+source.. = src/,\
+ src-gen/,\
+ xtend-gen/
+bin.includes = .,\
+ META-INF/,\
+ plugin.xml,\
+ about.html
+src.includes = about.html,\
+ src/
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/plugin.xml b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/plugin.xml
new file mode 100644
index 0000000..0c657ab
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/plugin.xml
@@ -0,0 +1,431 @@
+<?xml version="1.0" encoding="windows-1252"?>
+<?eclipse version="3.0"?>
+<plugin>
+ <extension
+ point="org.eclipse.ui.editors">
+ <editor
+ class="org.eclipse.papyrus.requirements.sysml14.ui.BoilerplateTextExecutableExtensionFactory:org.eclipse.xtext.ui.editor.XtextEditor"
+ contributorClass="org.eclipse.ui.editors.text.TextEditorActionContributor"
+ default="true"
+ extensions="boil"
+ id="org.eclipse.papyrus.requirements.sysml14.BoilerplateText"
+ name="BoilerplateText Editor">
+ </editor>
+ </extension>
+ <extension
+ point="org.eclipse.ui.handlers">
+ <handler
+ class="org.eclipse.papyrus.requirements.sysml14.ui.BoilerplateTextExecutableExtensionFactory:org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclarationHandler"
+ commandId="org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclaration">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.papyrus.requirements.sysml14.BoilerplateText.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ <handler
+ class="org.eclipse.papyrus.requirements.sysml14.ui.BoilerplateTextExecutableExtensionFactory:org.eclipse.xtext.ui.editor.handler.ValidateActionHandler"
+ commandId="org.eclipse.papyrus.requirements.sysml14.BoilerplateText.validate">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.papyrus.requirements.sysml14.BoilerplateText.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ <!-- copy qualified name -->
+ <handler
+ class="org.eclipse.papyrus.requirements.sysml14.ui.BoilerplateTextExecutableExtensionFactory:org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedNameHandler"
+ commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName">
+ <activeWhen>
+ <reference definitionId="org.eclipse.papyrus.requirements.sysml14.BoilerplateText.Editor.opened" />
+ </activeWhen>
+ </handler>
+ <handler
+ class="org.eclipse.papyrus.requirements.sysml14.ui.BoilerplateTextExecutableExtensionFactory:org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedNameHandler"
+ commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName">
+ <activeWhen>
+ <and>
+ <reference definitionId="org.eclipse.papyrus.requirements.sysml14.BoilerplateText.XtextEditor.opened" />
+ <iterate>
+ <adapt type="org.eclipse.xtext.ui.editor.outline.IOutlineNode" />
+ </iterate>
+ </and>
+ </activeWhen>
+ </handler>
+ </extension>
+ <extension point="org.eclipse.core.expressions.definitions">
+ <definition id="org.eclipse.papyrus.requirements.sysml14.BoilerplateText.Editor.opened">
+ <and>
+ <reference definitionId="isActiveEditorAnInstanceOfXtextEditor"/>
+ <with variable="activeEditor">
+ <test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName"
+ value="org.eclipse.papyrus.requirements.sysml14.BoilerplateText"
+ forcePluginActivation="true"/>
+ </with>
+ </and>
+ </definition>
+ <definition id="org.eclipse.papyrus.requirements.sysml14.BoilerplateText.XtextEditor.opened">
+ <and>
+ <reference definitionId="isXtextEditorActive"/>
+ <with variable="activeEditor">
+ <test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName"
+ value="org.eclipse.papyrus.requirements.sysml14.BoilerplateText"
+ forcePluginActivation="true"/>
+ </with>
+ </and>
+ </definition>
+ </extension>
+ <extension
+ point="org.eclipse.ui.preferencePages">
+ <page
+ class="org.eclipse.papyrus.requirements.sysml14.ui.BoilerplateTextExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
+ id="org.eclipse.papyrus.requirements.sysml14.BoilerplateText"
+ name="BoilerplateText">
+ <keywordReference id="org.eclipse.papyrus.requirements.sysml14.ui.keyword_BoilerplateText"/>
+ </page>
+ <page
+ category="org.eclipse.papyrus.requirements.sysml14.BoilerplateText"
+ class="org.eclipse.papyrus.requirements.sysml14.ui.BoilerplateTextExecutableExtensionFactory:org.eclipse.xtext.ui.editor.syntaxcoloring.SyntaxColoringPreferencePage"
+ id="org.eclipse.papyrus.requirements.sysml14.BoilerplateText.coloring"
+ name="Syntax Coloring">
+ <keywordReference id="org.eclipse.papyrus.requirements.sysml14.ui.keyword_BoilerplateText"/>
+ </page>
+ <page
+ category="org.eclipse.papyrus.requirements.sysml14.BoilerplateText"
+ class="org.eclipse.papyrus.requirements.sysml14.ui.BoilerplateTextExecutableExtensionFactory:org.eclipse.xtext.ui.editor.templates.XtextTemplatePreferencePage"
+ id="org.eclipse.papyrus.requirements.sysml14.BoilerplateText.templates"
+ name="Templates">
+ <keywordReference id="org.eclipse.papyrus.requirements.sysml14.ui.keyword_BoilerplateText"/>
+ </page>
+ </extension>
+ <extension
+ point="org.eclipse.ui.propertyPages">
+ <page
+ class="org.eclipse.papyrus.requirements.sysml14.ui.BoilerplateTextExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
+ id="org.eclipse.papyrus.requirements.sysml14.BoilerplateText"
+ name="BoilerplateText">
+ <keywordReference id="org.eclipse.papyrus.requirements.sysml14.ui.keyword_BoilerplateText"/>
+ <enabledWhen>
+ <adapt type="org.eclipse.core.resources.IProject"/>
+ </enabledWhen>
+ <filter name="projectNature" value="org.eclipse.xtext.ui.shared.xtextNature"/>
+ </page>
+ </extension>
+ <extension
+ point="org.eclipse.ui.keywords">
+ <keyword
+ id="org.eclipse.papyrus.requirements.sysml14.ui.keyword_BoilerplateText"
+ label="BoilerplateText"/>
+ </extension>
+ <extension
+ point="org.eclipse.ui.commands">
+ <command
+ description="Trigger expensive validation"
+ id="org.eclipse.papyrus.requirements.sysml14.BoilerplateText.validate"
+ name="Validate">
+ </command>
+ <!-- copy qualified name -->
+ <command
+ id="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName"
+ categoryId="org.eclipse.ui.category.edit"
+ description="Copy the qualified name for the selected element"
+ name="Copy Qualified Name">
+ </command>
+ <command
+ id="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName"
+ categoryId="org.eclipse.ui.category.edit"
+ description="Copy the qualified name for the selected element"
+ name="Copy Qualified Name">
+ </command>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution
+ locationURI="popup:#TextEditorContext?after=group.edit">
+ <command
+ commandId="org.eclipse.papyrus.requirements.sysml14.BoilerplateText.validate"
+ style="push"
+ tooltip="Trigger expensive validation">
+ <visibleWhen checkEnabled="false">
+ <reference
+ definitionId="org.eclipse.papyrus.requirements.sysml14.BoilerplateText.Editor.opened">
+ </reference>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ <!-- copy qualified name -->
+ <menuContribution locationURI="popup:#TextEditorContext?after=copy">
+ <command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName"
+ style="push" tooltip="Copy Qualified Name">
+ <visibleWhen checkEnabled="false">
+ <reference definitionId="org.eclipse.papyrus.requirements.sysml14.BoilerplateText.Editor.opened" />
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ <menuContribution locationURI="menu:edit?after=copy">
+ <command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName"
+ style="push" tooltip="Copy Qualified Name">
+ <visibleWhen checkEnabled="false">
+ <reference definitionId="org.eclipse.papyrus.requirements.sysml14.BoilerplateText.Editor.opened" />
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ <menuContribution locationURI="popup:org.eclipse.xtext.ui.outline?after=additions">
+ <command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName"
+ style="push" tooltip="Copy Qualified Name">
+ <visibleWhen checkEnabled="false">
+ <and>
+ <reference definitionId="org.eclipse.papyrus.requirements.sysml14.BoilerplateText.XtextEditor.opened" />
+ <iterate>
+ <adapt type="org.eclipse.xtext.ui.editor.outline.IOutlineNode" />
+ </iterate>
+ </and>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution locationURI="popup:#TextEditorContext?endof=group.find">
+ <command commandId="org.eclipse.xtext.ui.editor.FindReferences">
+ <visibleWhen checkEnabled="false">
+ <reference definitionId="org.eclipse.papyrus.requirements.sysml14.BoilerplateText.Editor.opened">
+ </reference>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <extension point="org.eclipse.ui.handlers">
+ <handler
+ class="org.eclipse.papyrus.requirements.sysml14.ui.BoilerplateTextExecutableExtensionFactory:org.eclipse.xtext.ui.editor.findrefs.FindReferencesHandler"
+ commandId="org.eclipse.xtext.ui.editor.FindReferences">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.papyrus.requirements.sysml14.BoilerplateText.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ </extension>
+ <!-- adding resource factories -->
+ <extension
+ point="org.eclipse.emf.ecore.extension_parser">
+ <parser
+ class="org.eclipse.papyrus.requirements.sysml14.ui.BoilerplateTextExecutableExtensionFactory:org.eclipse.xtext.resource.IResourceFactory"
+ type="boil">
+ </parser>
+ </extension>
+ <extension point="org.eclipse.xtext.extension_resourceServiceProvider">
+ <resourceServiceProvider
+ class="org.eclipse.papyrus.requirements.sysml14.ui.BoilerplateTextExecutableExtensionFactory:org.eclipse.xtext.ui.resource.IResourceUIServiceProvider"
+ uriExtension="boil">
+ </resourceServiceProvider>
+ </extension>
+ <!-- marker definitions for org.eclipse.papyrus.requirements.sysml14.BoilerplateText -->
+ <extension
+ id="boilerplatetext.check.fast"
+ name="BoilerplateText Problem"
+ point="org.eclipse.core.resources.markers">
+ <super type="org.eclipse.xtext.ui.check.fast"/>
+ <persistent value="true"/>
+ </extension>
+ <extension
+ id="boilerplatetext.check.normal"
+ name="BoilerplateText Problem"
+ point="org.eclipse.core.resources.markers">
+ <super type="org.eclipse.xtext.ui.check.normal"/>
+ <persistent value="true"/>
+ </extension>
+ <extension
+ id="boilerplatetext.check.expensive"
+ name="BoilerplateText Problem"
+ point="org.eclipse.core.resources.markers">
+ <super type="org.eclipse.xtext.ui.check.expensive"/>
+ <persistent value="true"/>
+ </extension>
+ <extension point="org.eclipse.xtext.builder.participant">
+ <participant
+ class="org.eclipse.papyrus.requirements.sysml14.ui.BoilerplateTextExecutableExtensionFactory:org.eclipse.xtext.builder.IXtextBuilderParticipant"
+ fileExtensions="boil"/>
+ </extension>
+ <extension point="org.eclipse.ui.preferencePages">
+ <page
+ category="org.eclipse.papyrus.requirements.sysml14.BoilerplateText"
+ class="org.eclipse.papyrus.requirements.sysml14.ui.BoilerplateTextExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage"
+ id="org.eclipse.papyrus.requirements.sysml14.BoilerplateText.compiler.preferencePage"
+ name="Compiler">
+ <keywordReference id="org.eclipse.papyrus.requirements.sysml14.ui.keyword_BoilerplateText"/>
+ </page>
+ </extension>
+ <extension point="org.eclipse.ui.propertyPages">
+ <page
+ category="org.eclipse.papyrus.requirements.sysml14.BoilerplateText"
+ class="org.eclipse.papyrus.requirements.sysml14.ui.BoilerplateTextExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage"
+ id="org.eclipse.papyrus.requirements.sysml14.BoilerplateText.compiler.propertyPage"
+ name="Compiler">
+ <keywordReference id="org.eclipse.papyrus.requirements.sysml14.ui.keyword_BoilerplateText"/>
+ <enabledWhen>
+ <adapt type="org.eclipse.core.resources.IProject"/>
+ </enabledWhen>
+ <filter name="projectNature" value="org.eclipse.xtext.ui.shared.xtextNature"/>
+ </page>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution locationURI="popup:#TextEditorContext?after=xtext.ui.openDeclaration">
+ <command
+ commandId="org.eclipse.xtext.ui.OpenGeneratedFileCommand"
+ id="org.eclipse.papyrus.requirements.sysml14.BoilerplateText.OpenGeneratedCode"
+ style="push">
+ <visibleWhen checkEnabled="false">
+ <reference definitionId="org.eclipse.papyrus.requirements.sysml14.BoilerplateText.Editor.opened" />
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <extension point="org.eclipse.ui.handlers">
+ <handler
+ class="org.eclipse.papyrus.requirements.sysml14.ui.BoilerplateTextExecutableExtensionFactory:org.eclipse.xtext.ui.generator.trace.OpenGeneratedFileHandler"
+ commandId="org.eclipse.xtext.ui.OpenGeneratedFileCommand">
+ <activeWhen>
+ <reference definitionId="org.eclipse.papyrus.requirements.sysml14.BoilerplateText.Editor.opened" />
+ </activeWhen>
+ </handler>
+ </extension>
+ <!-- Quick Outline -->
+ <extension
+ point="org.eclipse.ui.handlers">
+ <handler
+ class="org.eclipse.papyrus.requirements.sysml14.ui.BoilerplateTextExecutableExtensionFactory:org.eclipse.xtext.ui.editor.outline.quickoutline.ShowQuickOutlineActionHandler"
+ commandId="org.eclipse.xtext.ui.editor.outline.QuickOutline">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.papyrus.requirements.sysml14.BoilerplateText.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ </extension>
+ <extension
+ point="org.eclipse.ui.commands">
+ <command
+ description="Open the quick outline."
+ id="org.eclipse.xtext.ui.editor.outline.QuickOutline"
+ name="Quick Outline">
+ </command>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution
+ locationURI="popup:#TextEditorContext?after=group.open">
+ <command commandId="org.eclipse.xtext.ui.editor.outline.QuickOutline"
+ style="push"
+ tooltip="Open Quick Outline">
+ <visibleWhen checkEnabled="false">
+ <reference definitionId="org.eclipse.papyrus.requirements.sysml14.BoilerplateText.Editor.opened"/>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <!-- quickfix marker resolution generator for org.eclipse.papyrus.requirements.sysml14.BoilerplateText -->
+ <extension
+ point="org.eclipse.ui.ide.markerResolution">
+ <markerResolutionGenerator
+ class="org.eclipse.papyrus.requirements.sysml14.ui.BoilerplateTextExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+ markerType="org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui.boilerplatetext.check.fast">
+ <attribute
+ name="FIXABLE_KEY"
+ value="true">
+ </attribute>
+ </markerResolutionGenerator>
+ <markerResolutionGenerator
+ class="org.eclipse.papyrus.requirements.sysml14.ui.BoilerplateTextExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+ markerType="org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui.boilerplatetext.check.normal">
+ <attribute
+ name="FIXABLE_KEY"
+ value="true">
+ </attribute>
+ </markerResolutionGenerator>
+ <markerResolutionGenerator
+ class="org.eclipse.papyrus.requirements.sysml14.ui.BoilerplateTextExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+ markerType="org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui.boilerplatetext.check.expensive">
+ <attribute
+ name="FIXABLE_KEY"
+ value="true">
+ </attribute>
+ </markerResolutionGenerator>
+ </extension>
+ <!-- Rename Refactoring -->
+ <extension point="org.eclipse.ui.handlers">
+ <handler
+ class="org.eclipse.papyrus.requirements.sysml14.ui.BoilerplateTextExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.DefaultRenameElementHandler"
+ commandId="org.eclipse.xtext.ui.refactoring.RenameElement">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.papyrus.requirements.sysml14.BoilerplateText.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution
+ locationURI="popup:#TextEditorContext?after=group.edit">
+ <command commandId="org.eclipse.xtext.ui.refactoring.RenameElement"
+ style="push">
+ <visibleWhen checkEnabled="false">
+ <reference
+ definitionId="org.eclipse.papyrus.requirements.sysml14.BoilerplateText.Editor.opened">
+ </reference>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <extension point="org.eclipse.ui.preferencePages">
+ <page
+ category="org.eclipse.papyrus.requirements.sysml14.BoilerplateText"
+ class="org.eclipse.papyrus.requirements.sysml14.ui.BoilerplateTextExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.RefactoringPreferencePage"
+ id="org.eclipse.papyrus.requirements.sysml14.BoilerplateText.refactoring"
+ name="Refactoring">
+ <keywordReference id="org.eclipse.papyrus.requirements.sysml14.ui.keyword_BoilerplateText"/>
+ </page>
+ </extension>
+ <extension point="org.eclipse.compare.contentViewers">
+ <viewer id="org.eclipse.papyrus.requirements.sysml14.BoilerplateText.compare.contentViewers"
+ class="org.eclipse.papyrus.requirements.sysml14.ui.BoilerplateTextExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"
+ extensions="boil">
+ </viewer>
+ </extension>
+ <extension point="org.eclipse.compare.contentMergeViewers">
+ <viewer id="org.eclipse.papyrus.requirements.sysml14.BoilerplateText.compare.contentMergeViewers"
+ class="org.eclipse.papyrus.requirements.sysml14.ui.BoilerplateTextExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"
+ extensions="boil" label="BoilerplateText Compare">
+ </viewer>
+ </extension>
+ <extension point="org.eclipse.ui.editors.documentProviders">
+ <provider id="org.eclipse.papyrus.requirements.sysml14.BoilerplateText.editors.documentProviders"
+ class="org.eclipse.papyrus.requirements.sysml14.ui.BoilerplateTextExecutableExtensionFactory:org.eclipse.xtext.ui.editor.model.XtextDocumentProvider"
+ extensions="boil">
+ </provider>
+ </extension>
+ <extension point="org.eclipse.team.core.fileTypes">
+ <fileTypes
+ extension="boil"
+ type="text">
+ </fileTypes>
+ </extension>
+ <extension
+ point="org.eclipse.papyrus.uml.properties.languageEditor">
+ <editor
+ editor="org.eclipse.papyrus.requirements.sysml14.ui.editor.RequirementsTextBoilerplatesLanguageEditor"
+ language="Req Text">
+ </editor>
+ </extension>
+ <extension
+ point="org.eclipse.papyrus.extensionpoints.editors.DirectEditor">
+ <DirectEditor
+ additionalConstraint="org.eclipse.papyrus.requirements.sysml14.ui.contribution.RequirementConstraint"
+ language="Requirements Text Boilerplates Editor"
+ objectToEdit="org.eclipse.uml2.uml.Class">
+ <popupeditor
+ editorConfiguration="org.eclipse.papyrus.requirements.sysml14.ui.contribution.RequirementsTextBoilerplatesXtextDirectEditorConfiguration">
+ </popupeditor>
+ <Priority
+ name="Highest">
+ </Priority>
+ </DirectEditor>
+ </extension>
+</plugin>
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/plugin.xml_gen b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/plugin.xml_gen
new file mode 100644
index 0000000..902c522
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/plugin.xml_gen
@@ -0,0 +1,410 @@
+<?xml version="1.0" encoding="windows-1252"?>
+<?eclipse version="3.0"?>
+<plugin>
+ <extension
+ point="org.eclipse.ui.editors">
+ <editor
+ class="org.eclipse.papyrus.requirements.sysml14.ui.BoilerplateTextExecutableExtensionFactory:org.eclipse.xtext.ui.editor.XtextEditor"
+ contributorClass="org.eclipse.ui.editors.text.TextEditorActionContributor"
+ default="true"
+ extensions="boil"
+ id="org.eclipse.papyrus.requirements.sysml14.BoilerplateText"
+ name="BoilerplateText Editor">
+ </editor>
+ </extension>
+ <extension
+ point="org.eclipse.ui.handlers">
+ <handler
+ class="org.eclipse.papyrus.requirements.sysml14.ui.BoilerplateTextExecutableExtensionFactory:org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclarationHandler"
+ commandId="org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclaration">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.papyrus.requirements.sysml14.BoilerplateText.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ <handler
+ class="org.eclipse.papyrus.requirements.sysml14.ui.BoilerplateTextExecutableExtensionFactory:org.eclipse.xtext.ui.editor.handler.ValidateActionHandler"
+ commandId="org.eclipse.papyrus.requirements.sysml14.BoilerplateText.validate">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.papyrus.requirements.sysml14.BoilerplateText.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ <!-- copy qualified name -->
+ <handler
+ class="org.eclipse.papyrus.requirements.sysml14.ui.BoilerplateTextExecutableExtensionFactory:org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedNameHandler"
+ commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName">
+ <activeWhen>
+ <reference definitionId="org.eclipse.papyrus.requirements.sysml14.BoilerplateText.Editor.opened" />
+ </activeWhen>
+ </handler>
+ <handler
+ class="org.eclipse.papyrus.requirements.sysml14.ui.BoilerplateTextExecutableExtensionFactory:org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedNameHandler"
+ commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName">
+ <activeWhen>
+ <and>
+ <reference definitionId="org.eclipse.papyrus.requirements.sysml14.BoilerplateText.XtextEditor.opened" />
+ <iterate>
+ <adapt type="org.eclipse.xtext.ui.editor.outline.IOutlineNode" />
+ </iterate>
+ </and>
+ </activeWhen>
+ </handler>
+ </extension>
+ <extension point="org.eclipse.core.expressions.definitions">
+ <definition id="org.eclipse.papyrus.requirements.sysml14.BoilerplateText.Editor.opened">
+ <and>
+ <reference definitionId="isActiveEditorAnInstanceOfXtextEditor"/>
+ <with variable="activeEditor">
+ <test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName"
+ value="org.eclipse.papyrus.requirements.sysml14.BoilerplateText"
+ forcePluginActivation="true"/>
+ </with>
+ </and>
+ </definition>
+ <definition id="org.eclipse.papyrus.requirements.sysml14.BoilerplateText.XtextEditor.opened">
+ <and>
+ <reference definitionId="isXtextEditorActive"/>
+ <with variable="activeEditor">
+ <test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName"
+ value="org.eclipse.papyrus.requirements.sysml14.BoilerplateText"
+ forcePluginActivation="true"/>
+ </with>
+ </and>
+ </definition>
+ </extension>
+ <extension
+ point="org.eclipse.ui.preferencePages">
+ <page
+ class="org.eclipse.papyrus.requirements.sysml14.ui.BoilerplateTextExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
+ id="org.eclipse.papyrus.requirements.sysml14.BoilerplateText"
+ name="BoilerplateText">
+ <keywordReference id="org.eclipse.papyrus.requirements.sysml14.ui.keyword_BoilerplateText"/>
+ </page>
+ <page
+ category="org.eclipse.papyrus.requirements.sysml14.BoilerplateText"
+ class="org.eclipse.papyrus.requirements.sysml14.ui.BoilerplateTextExecutableExtensionFactory:org.eclipse.xtext.ui.editor.syntaxcoloring.SyntaxColoringPreferencePage"
+ id="org.eclipse.papyrus.requirements.sysml14.BoilerplateText.coloring"
+ name="Syntax Coloring">
+ <keywordReference id="org.eclipse.papyrus.requirements.sysml14.ui.keyword_BoilerplateText"/>
+ </page>
+ <page
+ category="org.eclipse.papyrus.requirements.sysml14.BoilerplateText"
+ class="org.eclipse.papyrus.requirements.sysml14.ui.BoilerplateTextExecutableExtensionFactory:org.eclipse.xtext.ui.editor.templates.XtextTemplatePreferencePage"
+ id="org.eclipse.papyrus.requirements.sysml14.BoilerplateText.templates"
+ name="Templates">
+ <keywordReference id="org.eclipse.papyrus.requirements.sysml14.ui.keyword_BoilerplateText"/>
+ </page>
+ </extension>
+ <extension
+ point="org.eclipse.ui.propertyPages">
+ <page
+ class="org.eclipse.papyrus.requirements.sysml14.ui.BoilerplateTextExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
+ id="org.eclipse.papyrus.requirements.sysml14.BoilerplateText"
+ name="BoilerplateText">
+ <keywordReference id="org.eclipse.papyrus.requirements.sysml14.ui.keyword_BoilerplateText"/>
+ <enabledWhen>
+ <adapt type="org.eclipse.core.resources.IProject"/>
+ </enabledWhen>
+ <filter name="projectNature" value="org.eclipse.xtext.ui.shared.xtextNature"/>
+ </page>
+ </extension>
+ <extension
+ point="org.eclipse.ui.keywords">
+ <keyword
+ id="org.eclipse.papyrus.requirements.sysml14.ui.keyword_BoilerplateText"
+ label="BoilerplateText"/>
+ </extension>
+ <extension
+ point="org.eclipse.ui.commands">
+ <command
+ description="Trigger expensive validation"
+ id="org.eclipse.papyrus.requirements.sysml14.BoilerplateText.validate"
+ name="Validate">
+ </command>
+ <!-- copy qualified name -->
+ <command
+ id="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName"
+ categoryId="org.eclipse.ui.category.edit"
+ description="Copy the qualified name for the selected element"
+ name="Copy Qualified Name">
+ </command>
+ <command
+ id="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName"
+ categoryId="org.eclipse.ui.category.edit"
+ description="Copy the qualified name for the selected element"
+ name="Copy Qualified Name">
+ </command>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution
+ locationURI="popup:#TextEditorContext?after=group.edit">
+ <command
+ commandId="org.eclipse.papyrus.requirements.sysml14.BoilerplateText.validate"
+ style="push"
+ tooltip="Trigger expensive validation">
+ <visibleWhen checkEnabled="false">
+ <reference
+ definitionId="org.eclipse.papyrus.requirements.sysml14.BoilerplateText.Editor.opened">
+ </reference>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ <!-- copy qualified name -->
+ <menuContribution locationURI="popup:#TextEditorContext?after=copy">
+ <command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName"
+ style="push" tooltip="Copy Qualified Name">
+ <visibleWhen checkEnabled="false">
+ <reference definitionId="org.eclipse.papyrus.requirements.sysml14.BoilerplateText.Editor.opened" />
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ <menuContribution locationURI="menu:edit?after=copy">
+ <command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName"
+ style="push" tooltip="Copy Qualified Name">
+ <visibleWhen checkEnabled="false">
+ <reference definitionId="org.eclipse.papyrus.requirements.sysml14.BoilerplateText.Editor.opened" />
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ <menuContribution locationURI="popup:org.eclipse.xtext.ui.outline?after=additions">
+ <command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName"
+ style="push" tooltip="Copy Qualified Name">
+ <visibleWhen checkEnabled="false">
+ <and>
+ <reference definitionId="org.eclipse.papyrus.requirements.sysml14.BoilerplateText.XtextEditor.opened" />
+ <iterate>
+ <adapt type="org.eclipse.xtext.ui.editor.outline.IOutlineNode" />
+ </iterate>
+ </and>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution locationURI="popup:#TextEditorContext?endof=group.find">
+ <command commandId="org.eclipse.xtext.ui.editor.FindReferences">
+ <visibleWhen checkEnabled="false">
+ <reference definitionId="org.eclipse.papyrus.requirements.sysml14.BoilerplateText.Editor.opened">
+ </reference>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <extension point="org.eclipse.ui.handlers">
+ <handler
+ class="org.eclipse.papyrus.requirements.sysml14.ui.BoilerplateTextExecutableExtensionFactory:org.eclipse.xtext.ui.editor.findrefs.FindReferencesHandler"
+ commandId="org.eclipse.xtext.ui.editor.FindReferences">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.papyrus.requirements.sysml14.BoilerplateText.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ </extension>
+ <!-- adding resource factories -->
+ <extension
+ point="org.eclipse.emf.ecore.extension_parser">
+ <parser
+ class="org.eclipse.papyrus.requirements.sysml14.ui.BoilerplateTextExecutableExtensionFactory:org.eclipse.xtext.resource.IResourceFactory"
+ type="boil">
+ </parser>
+ </extension>
+ <extension point="org.eclipse.xtext.extension_resourceServiceProvider">
+ <resourceServiceProvider
+ class="org.eclipse.papyrus.requirements.sysml14.ui.BoilerplateTextExecutableExtensionFactory:org.eclipse.xtext.ui.resource.IResourceUIServiceProvider"
+ uriExtension="boil">
+ </resourceServiceProvider>
+ </extension>
+ <!-- marker definitions for org.eclipse.papyrus.requirements.sysml14.BoilerplateText -->
+ <extension
+ id="boilerplatetext.check.fast"
+ name="BoilerplateText Problem"
+ point="org.eclipse.core.resources.markers">
+ <super type="org.eclipse.xtext.ui.check.fast"/>
+ <persistent value="true"/>
+ </extension>
+ <extension
+ id="boilerplatetext.check.normal"
+ name="BoilerplateText Problem"
+ point="org.eclipse.core.resources.markers">
+ <super type="org.eclipse.xtext.ui.check.normal"/>
+ <persistent value="true"/>
+ </extension>
+ <extension
+ id="boilerplatetext.check.expensive"
+ name="BoilerplateText Problem"
+ point="org.eclipse.core.resources.markers">
+ <super type="org.eclipse.xtext.ui.check.expensive"/>
+ <persistent value="true"/>
+ </extension>
+ <extension point="org.eclipse.xtext.builder.participant">
+ <participant
+ class="org.eclipse.papyrus.requirements.sysml14.ui.BoilerplateTextExecutableExtensionFactory:org.eclipse.xtext.builder.IXtextBuilderParticipant"
+ fileExtensions="boil"/>
+ </extension>
+ <extension point="org.eclipse.ui.preferencePages">
+ <page
+ category="org.eclipse.papyrus.requirements.sysml14.BoilerplateText"
+ class="org.eclipse.papyrus.requirements.sysml14.ui.BoilerplateTextExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage"
+ id="org.eclipse.papyrus.requirements.sysml14.BoilerplateText.compiler.preferencePage"
+ name="Compiler">
+ <keywordReference id="org.eclipse.papyrus.requirements.sysml14.ui.keyword_BoilerplateText"/>
+ </page>
+ </extension>
+ <extension point="org.eclipse.ui.propertyPages">
+ <page
+ category="org.eclipse.papyrus.requirements.sysml14.BoilerplateText"
+ class="org.eclipse.papyrus.requirements.sysml14.ui.BoilerplateTextExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage"
+ id="org.eclipse.papyrus.requirements.sysml14.BoilerplateText.compiler.propertyPage"
+ name="Compiler">
+ <keywordReference id="org.eclipse.papyrus.requirements.sysml14.ui.keyword_BoilerplateText"/>
+ <enabledWhen>
+ <adapt type="org.eclipse.core.resources.IProject"/>
+ </enabledWhen>
+ <filter name="projectNature" value="org.eclipse.xtext.ui.shared.xtextNature"/>
+ </page>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution locationURI="popup:#TextEditorContext?after=xtext.ui.openDeclaration">
+ <command
+ commandId="org.eclipse.xtext.ui.OpenGeneratedFileCommand"
+ id="org.eclipse.papyrus.requirements.sysml14.BoilerplateText.OpenGeneratedCode"
+ style="push">
+ <visibleWhen checkEnabled="false">
+ <reference definitionId="org.eclipse.papyrus.requirements.sysml14.BoilerplateText.Editor.opened" />
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <extension point="org.eclipse.ui.handlers">
+ <handler
+ class="org.eclipse.papyrus.requirements.sysml14.ui.BoilerplateTextExecutableExtensionFactory:org.eclipse.xtext.ui.generator.trace.OpenGeneratedFileHandler"
+ commandId="org.eclipse.xtext.ui.OpenGeneratedFileCommand">
+ <activeWhen>
+ <reference definitionId="org.eclipse.papyrus.requirements.sysml14.BoilerplateText.Editor.opened" />
+ </activeWhen>
+ </handler>
+ </extension>
+ <!-- Quick Outline -->
+ <extension
+ point="org.eclipse.ui.handlers">
+ <handler
+ class="org.eclipse.papyrus.requirements.sysml14.ui.BoilerplateTextExecutableExtensionFactory:org.eclipse.xtext.ui.editor.outline.quickoutline.ShowQuickOutlineActionHandler"
+ commandId="org.eclipse.xtext.ui.editor.outline.QuickOutline">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.papyrus.requirements.sysml14.BoilerplateText.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ </extension>
+ <extension
+ point="org.eclipse.ui.commands">
+ <command
+ description="Open the quick outline."
+ id="org.eclipse.xtext.ui.editor.outline.QuickOutline"
+ name="Quick Outline">
+ </command>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution
+ locationURI="popup:#TextEditorContext?after=group.open">
+ <command commandId="org.eclipse.xtext.ui.editor.outline.QuickOutline"
+ style="push"
+ tooltip="Open Quick Outline">
+ <visibleWhen checkEnabled="false">
+ <reference definitionId="org.eclipse.papyrus.requirements.sysml14.BoilerplateText.Editor.opened"/>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <!-- quickfix marker resolution generator for org.eclipse.papyrus.requirements.sysml14.BoilerplateText -->
+ <extension
+ point="org.eclipse.ui.ide.markerResolution">
+ <markerResolutionGenerator
+ class="org.eclipse.papyrus.requirements.sysml14.ui.BoilerplateTextExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+ markerType="org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui.boilerplatetext.check.fast">
+ <attribute
+ name="FIXABLE_KEY"
+ value="true">
+ </attribute>
+ </markerResolutionGenerator>
+ <markerResolutionGenerator
+ class="org.eclipse.papyrus.requirements.sysml14.ui.BoilerplateTextExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+ markerType="org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui.boilerplatetext.check.normal">
+ <attribute
+ name="FIXABLE_KEY"
+ value="true">
+ </attribute>
+ </markerResolutionGenerator>
+ <markerResolutionGenerator
+ class="org.eclipse.papyrus.requirements.sysml14.ui.BoilerplateTextExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+ markerType="org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui.boilerplatetext.check.expensive">
+ <attribute
+ name="FIXABLE_KEY"
+ value="true">
+ </attribute>
+ </markerResolutionGenerator>
+ </extension>
+ <!-- Rename Refactoring -->
+ <extension point="org.eclipse.ui.handlers">
+ <handler
+ class="org.eclipse.papyrus.requirements.sysml14.ui.BoilerplateTextExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.DefaultRenameElementHandler"
+ commandId="org.eclipse.xtext.ui.refactoring.RenameElement">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.papyrus.requirements.sysml14.BoilerplateText.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution
+ locationURI="popup:#TextEditorContext?after=group.edit">
+ <command commandId="org.eclipse.xtext.ui.refactoring.RenameElement"
+ style="push">
+ <visibleWhen checkEnabled="false">
+ <reference
+ definitionId="org.eclipse.papyrus.requirements.sysml14.BoilerplateText.Editor.opened">
+ </reference>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <extension point="org.eclipse.ui.preferencePages">
+ <page
+ category="org.eclipse.papyrus.requirements.sysml14.BoilerplateText"
+ class="org.eclipse.papyrus.requirements.sysml14.ui.BoilerplateTextExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.RefactoringPreferencePage"
+ id="org.eclipse.papyrus.requirements.sysml14.BoilerplateText.refactoring"
+ name="Refactoring">
+ <keywordReference id="org.eclipse.papyrus.requirements.sysml14.ui.keyword_BoilerplateText"/>
+ </page>
+ </extension>
+ <extension point="org.eclipse.compare.contentViewers">
+ <viewer id="org.eclipse.papyrus.requirements.sysml14.BoilerplateText.compare.contentViewers"
+ class="org.eclipse.papyrus.requirements.sysml14.ui.BoilerplateTextExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"
+ extensions="boil">
+ </viewer>
+ </extension>
+ <extension point="org.eclipse.compare.contentMergeViewers">
+ <viewer id="org.eclipse.papyrus.requirements.sysml14.BoilerplateText.compare.contentMergeViewers"
+ class="org.eclipse.papyrus.requirements.sysml14.ui.BoilerplateTextExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"
+ extensions="boil" label="BoilerplateText Compare">
+ </viewer>
+ </extension>
+ <extension point="org.eclipse.ui.editors.documentProviders">
+ <provider id="org.eclipse.papyrus.requirements.sysml14.BoilerplateText.editors.documentProviders"
+ class="org.eclipse.papyrus.requirements.sysml14.ui.BoilerplateTextExecutableExtensionFactory:org.eclipse.xtext.ui.editor.model.XtextDocumentProvider"
+ extensions="boil">
+ </provider>
+ </extension>
+ <extension point="org.eclipse.team.core.fileTypes">
+ <fileTypes
+ extension="boil"
+ type="text">
+ </fileTypes>
+ </extension>
+</plugin>
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplatetext/ui/internal/BoilerplatetextActivator.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplatetext/ui/internal/BoilerplatetextActivator.java
new file mode 100644
index 0000000..cfc4ac7
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplatetext/ui/internal/BoilerplatetextActivator.java
@@ -0,0 +1,107 @@
+/*****************************************************************************
+ * Copyright (c) 2017 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *
+ * Mauricio Alferez (mauricio.alferez@cea.fr) CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+/*
+ * generated by Xtext 2.11.0
+ */
+package org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui.internal;
+
+import com.google.common.collect.Maps;
+import com.google.inject.Guice;
+import com.google.inject.Injector;
+import com.google.inject.Module;
+import java.util.Collections;
+import java.util.Map;
+import org.apache.log4j.Logger;
+import org.eclipse.papyrus.requirements.sysml14.BoilerplateTextRuntimeModule;
+import org.eclipse.papyrus.requirements.sysml14.ui.BoilerplateTextUiModule;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.eclipse.xtext.ui.shared.SharedStateModule;
+import org.eclipse.xtext.util.Modules2;
+import org.osgi.framework.BundleContext;
+
+/**
+ * This class was generated. Customizations should only happen in a newly
+ * introduced subclass.
+ */
+public class BoilerplatetextActivator extends AbstractUIPlugin {
+
+ public static final String ORG_ECLIPSE_PAPYRUS_REQUIREMENTS_SYSML14_BOILERPLATETEXT = "org.eclipse.papyrus.requirements.sysml14.BoilerplateText";
+
+ private static final Logger logger = Logger.getLogger(BoilerplatetextActivator.class);
+
+ private static BoilerplatetextActivator INSTANCE;
+
+ private Map<String, Injector> injectors = Collections.synchronizedMap(Maps.<String, Injector> newHashMapWithExpectedSize(1));
+
+ @Override
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ INSTANCE = this;
+ }
+
+ @Override
+ public void stop(BundleContext context) throws Exception {
+ injectors.clear();
+ INSTANCE = null;
+ super.stop(context);
+ }
+
+ public static BoilerplatetextActivator getInstance() {
+ return INSTANCE;
+ }
+
+ public Injector getInjector(String language) {
+ synchronized (injectors) {
+ Injector injector = injectors.get(language);
+ if (injector == null) {
+ injectors.put(language, injector = createInjector(language));
+ }
+ return injector;
+ }
+ }
+
+ protected Injector createInjector(String language) {
+ try {
+ Module runtimeModule = getRuntimeModule(language);
+ Module sharedStateModule = getSharedStateModule();
+ Module uiModule = getUiModule(language);
+ Module mergedModule = Modules2.mixin(runtimeModule, sharedStateModule, uiModule);
+ return Guice.createInjector(mergedModule);
+ } catch (Exception e) {
+ logger.error("Failed to create injector for " + language);
+ logger.error(e.getMessage(), e);
+ throw new RuntimeException("Failed to create injector for " + language, e);
+ }
+ }
+
+ protected Module getRuntimeModule(String grammar) {
+ if (ORG_ECLIPSE_PAPYRUS_REQUIREMENTS_SYSML14_BOILERPLATETEXT.equals(grammar)) {
+ return new BoilerplateTextRuntimeModule();
+ }
+ throw new IllegalArgumentException(grammar);
+ }
+
+ protected Module getUiModule(String grammar) {
+ if (ORG_ECLIPSE_PAPYRUS_REQUIREMENTS_SYSML14_BOILERPLATETEXT.equals(grammar)) {
+ return new BoilerplateTextUiModule(this);
+ }
+ throw new IllegalArgumentException(grammar);
+ }
+
+ protected Module getSharedStateModule() {
+ return new SharedStateModule();
+ }
+
+}
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/src-gen/org/eclipse/papyrus/requirements/sysml14/ui/AbstractBoilerplateTextUiModule.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/src-gen/org/eclipse/papyrus/requirements/sysml14/ui/AbstractBoilerplateTextUiModule.java
new file mode 100644
index 0000000..08893fc
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/src-gen/org/eclipse/papyrus/requirements/sysml14/ui/AbstractBoilerplateTextUiModule.java
@@ -0,0 +1,294 @@
+/*****************************************************************************
+ * Copyright (c) 2017 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *
+ * Mauricio Alferez (mauricio.alferez@cea.fr) CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+/*
+ * generated by Xtext 2.11.0
+ */
+package org.eclipse.papyrus.requirements.sysml14.ui;
+
+import com.google.inject.Binder;
+import com.google.inject.Provider;
+import com.google.inject.name.Names;
+import org.eclipse.compare.IViewerCreator;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.papyrus.requirements.sysml14.ide.contentassist.antlr.BoilerplateTextParser;
+import org.eclipse.papyrus.requirements.sysml14.ide.contentassist.antlr.PartialBoilerplateTextContentAssistParser;
+import org.eclipse.papyrus.requirements.sysml14.ide.contentassist.antlr.internal.InternalBoilerplateTextLexer;
+import org.eclipse.papyrus.requirements.sysml14.ui.contentassist.BoilerplateTextProposalProvider;
+import org.eclipse.papyrus.requirements.sysml14.ui.labeling.BoilerplateTextDescriptionLabelProvider;
+import org.eclipse.papyrus.requirements.sysml14.ui.labeling.BoilerplateTextLabelProvider;
+import org.eclipse.papyrus.requirements.sysml14.ui.outline.BoilerplateTextOutlineTreeProvider;
+import org.eclipse.papyrus.requirements.sysml14.ui.quickfix.BoilerplateTextQuickfixProvider;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.eclipse.xtext.builder.BuilderParticipant;
+import org.eclipse.xtext.builder.EclipseOutputConfigurationProvider;
+import org.eclipse.xtext.builder.IXtextBuilderParticipant;
+import org.eclipse.xtext.builder.builderState.IBuilderState;
+import org.eclipse.xtext.builder.clustering.CurrentDescriptions;
+import org.eclipse.xtext.builder.impl.PersistentDataAwareDirtyResource;
+import org.eclipse.xtext.builder.nature.NatureAddingEditorCallback;
+import org.eclipse.xtext.builder.preferences.BuilderPreferenceAccess;
+import org.eclipse.xtext.generator.IContextualOutputConfigurationProvider;
+import org.eclipse.xtext.ide.LexerIdeBindings;
+import org.eclipse.xtext.ide.editor.contentassist.antlr.IContentAssistParser;
+import org.eclipse.xtext.ide.editor.contentassist.antlr.internal.Lexer;
+import org.eclipse.xtext.ide.editor.partialEditing.IPartialEditingContentAssistParser;
+import org.eclipse.xtext.parser.antlr.AntlrTokenDefProvider;
+import org.eclipse.xtext.parser.antlr.ITokenDefProvider;
+import org.eclipse.xtext.parser.antlr.LexerProvider;
+import org.eclipse.xtext.resource.IResourceDescriptions;
+import org.eclipse.xtext.resource.containers.IAllContainersState;
+import org.eclipse.xtext.resource.impl.ResourceDescriptionsProvider;
+import org.eclipse.xtext.service.SingletonBinding;
+import org.eclipse.xtext.ui.DefaultUiModule;
+import org.eclipse.xtext.ui.codetemplates.ui.AccessibleCodetemplatesActivator;
+import org.eclipse.xtext.ui.codetemplates.ui.partialEditing.IPartialEditingContentAssistContextFactory;
+import org.eclipse.xtext.ui.codetemplates.ui.partialEditing.PartialEditingContentAssistContextFactory;
+import org.eclipse.xtext.ui.codetemplates.ui.preferences.AdvancedTemplatesPreferencePage;
+import org.eclipse.xtext.ui.codetemplates.ui.preferences.TemplatesLanguageConfiguration;
+import org.eclipse.xtext.ui.codetemplates.ui.registry.LanguageRegistrar;
+import org.eclipse.xtext.ui.codetemplates.ui.registry.LanguageRegistry;
+import org.eclipse.xtext.ui.compare.DefaultViewerCreator;
+import org.eclipse.xtext.ui.editor.DocumentBasedDirtyResource;
+import org.eclipse.xtext.ui.editor.IXtextEditorCallback;
+import org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext;
+import org.eclipse.xtext.ui.editor.contentassist.FQNPrefixMatcher;
+import org.eclipse.xtext.ui.editor.contentassist.IContentProposalProvider;
+import org.eclipse.xtext.ui.editor.contentassist.IProposalConflictHelper;
+import org.eclipse.xtext.ui.editor.contentassist.PrefixMatcher;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.AntlrProposalConflictHelper;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.DelegatingContentAssistContextFactory;
+import org.eclipse.xtext.ui.editor.outline.IOutlineTreeProvider;
+import org.eclipse.xtext.ui.editor.outline.impl.IOutlineTreeStructureProvider;
+import org.eclipse.xtext.ui.editor.preferences.IPreferenceStoreInitializer;
+import org.eclipse.xtext.ui.editor.quickfix.IssueResolutionProvider;
+import org.eclipse.xtext.ui.editor.templates.XtextTemplatePreferencePage;
+import org.eclipse.xtext.ui.refactoring.IDependentElementsCalculator;
+import org.eclipse.xtext.ui.refactoring.IReferenceUpdater;
+import org.eclipse.xtext.ui.refactoring.IRenameRefactoringProvider;
+import org.eclipse.xtext.ui.refactoring.IRenameStrategy;
+import org.eclipse.xtext.ui.refactoring.impl.DefaultDependentElementsCalculator;
+import org.eclipse.xtext.ui.refactoring.impl.DefaultReferenceUpdater;
+import org.eclipse.xtext.ui.refactoring.impl.DefaultRenameRefactoringProvider;
+import org.eclipse.xtext.ui.refactoring.impl.DefaultRenameStrategy;
+import org.eclipse.xtext.ui.refactoring.ui.DefaultRenameSupport;
+import org.eclipse.xtext.ui.refactoring.ui.IRenameSupport;
+import org.eclipse.xtext.ui.refactoring.ui.RefactoringPreferences;
+import org.eclipse.xtext.ui.resource.ResourceServiceDescriptionLabelProvider;
+import org.eclipse.xtext.ui.shared.Access;
+
+/**
+ * Manual modifications go to {@link BoilerplateTextUiModule}.
+ */
+@SuppressWarnings("all")
+public abstract class AbstractBoilerplateTextUiModule extends DefaultUiModule {
+
+ public AbstractBoilerplateTextUiModule(AbstractUIPlugin plugin) {
+ super(plugin);
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.ImplicitFragment
+ public Provider<? extends IAllContainersState> provideIAllContainersState() {
+ return Access.getJavaProjectsState();
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
+ public Class<? extends IProposalConflictHelper> bindIProposalConflictHelper() {
+ return AntlrProposalConflictHelper.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
+ public void configureContentAssistLexer(Binder binder) {
+ binder.bind(Lexer.class)
+ .annotatedWith(Names.named(LexerIdeBindings.CONTENT_ASSIST))
+ .to(InternalBoilerplateTextLexer.class);
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
+ public void configureHighlightingLexer(Binder binder) {
+ binder.bind(org.eclipse.xtext.parser.antlr.Lexer.class)
+ .annotatedWith(Names.named(LexerIdeBindings.HIGHLIGHTING))
+ .to(org.eclipse.papyrus.requirements.sysml14.parser.antlr.internal.InternalBoilerplateTextLexer.class);
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
+ public void configureHighlightingTokenDefProvider(Binder binder) {
+ binder.bind(ITokenDefProvider.class)
+ .annotatedWith(Names.named(LexerIdeBindings.HIGHLIGHTING))
+ .to(AntlrTokenDefProvider.class);
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
+ public Class<? extends ContentAssistContext.Factory> bindContentAssistContext$Factory() {
+ return DelegatingContentAssistContextFactory.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
+ public Class<? extends IContentAssistParser> bindIContentAssistParser() {
+ return BoilerplateTextParser.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
+ public void configureContentAssistLexerProvider(Binder binder) {
+ binder.bind(InternalBoilerplateTextLexer.class).toProvider(LexerProvider.create(InternalBoilerplateTextLexer.class));
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.exporting.QualifiedNamesFragment2
+ public Class<? extends PrefixMatcher> bindPrefixMatcher() {
+ return FQNPrefixMatcher.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.exporting.QualifiedNamesFragment2
+ public Class<? extends IDependentElementsCalculator> bindIDependentElementsCalculator() {
+ return DefaultDependentElementsCalculator.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2
+ public void configureIResourceDescriptionsBuilderScope(Binder binder) {
+ binder.bind(IResourceDescriptions.class).annotatedWith(Names.named(ResourceDescriptionsProvider.NAMED_BUILDER_SCOPE)).to(CurrentDescriptions.ResourceSetAware.class);
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2
+ public Class<? extends IXtextEditorCallback> bindIXtextEditorCallback() {
+ return NatureAddingEditorCallback.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2
+ public Class<? extends IContextualOutputConfigurationProvider> bindIContextualOutputConfigurationProvider() {
+ return EclipseOutputConfigurationProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2
+ public void configureIResourceDescriptionsPersisted(Binder binder) {
+ binder.bind(IResourceDescriptions.class).annotatedWith(Names.named(ResourceDescriptionsProvider.PERSISTED_DESCRIPTIONS)).to(IBuilderState.class);
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2
+ public Class<? extends DocumentBasedDirtyResource> bindDocumentBasedDirtyResource() {
+ return PersistentDataAwareDirtyResource.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.generator.GeneratorFragment2
+ public Class<? extends IXtextBuilderParticipant> bindIXtextBuilderParticipant() {
+ return BuilderParticipant.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.generator.GeneratorFragment2
+ public IWorkspaceRoot bindIWorkspaceRootToInstance() {
+ return ResourcesPlugin.getWorkspace().getRoot();
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.generator.GeneratorFragment2
+ public void configureBuilderPreferenceStoreInitializer(Binder binder) {
+ binder.bind(IPreferenceStoreInitializer.class)
+ .annotatedWith(Names.named("builderPreferenceInitializer"))
+ .to(BuilderPreferenceAccess.Initializer.class);
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.ui.labeling.LabelProviderFragment2
+ public Class<? extends ILabelProvider> bindILabelProvider() {
+ return BoilerplateTextLabelProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.ui.labeling.LabelProviderFragment2
+ public void configureResourceUIServiceLabelProvider(Binder binder) {
+ binder.bind(ILabelProvider.class).annotatedWith(ResourceServiceDescriptionLabelProvider.class).to(BoilerplateTextDescriptionLabelProvider.class);
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.ui.outline.OutlineTreeProviderFragment2
+ public Class<? extends IOutlineTreeProvider> bindIOutlineTreeProvider() {
+ return BoilerplateTextOutlineTreeProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.ui.outline.OutlineTreeProviderFragment2
+ public Class<? extends IOutlineTreeStructureProvider> bindIOutlineTreeStructureProvider() {
+ return BoilerplateTextOutlineTreeProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.ui.quickfix.QuickfixProviderFragment2
+ public Class<? extends IssueResolutionProvider> bindIssueResolutionProvider() {
+ return BoilerplateTextQuickfixProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.ui.contentAssist.ContentAssistFragment2
+ public Class<? extends IContentProposalProvider> bindIContentProposalProvider() {
+ return BoilerplateTextProposalProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.ui.refactoring.RefactorElementNameFragment2
+ public Class<? extends IRenameStrategy> bindIRenameStrategy() {
+ return DefaultRenameStrategy.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.ui.refactoring.RefactorElementNameFragment2
+ public Class<? extends IReferenceUpdater> bindIReferenceUpdater() {
+ return DefaultReferenceUpdater.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.ui.refactoring.RefactorElementNameFragment2
+ public void configureIPreferenceStoreInitializer(Binder binder) {
+ binder.bind(IPreferenceStoreInitializer.class)
+ .annotatedWith(Names.named("RefactoringPreferences"))
+ .to(RefactoringPreferences.Initializer.class);
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.ui.refactoring.RefactorElementNameFragment2
+ public Class<? extends IRenameRefactoringProvider> bindIRenameRefactoringProvider() {
+ return DefaultRenameRefactoringProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.ui.refactoring.RefactorElementNameFragment2
+ public Class<? extends IRenameSupport.Factory> bindIRenameSupport$Factory() {
+ return DefaultRenameSupport.Factory.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.ui.templates.CodetemplatesGeneratorFragment2
+ public Provider<? extends TemplatesLanguageConfiguration> provideTemplatesLanguageConfiguration() {
+ return AccessibleCodetemplatesActivator.getTemplatesLanguageConfigurationProvider();
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.ui.templates.CodetemplatesGeneratorFragment2
+ public Provider<? extends LanguageRegistry> provideLanguageRegistry() {
+ return AccessibleCodetemplatesActivator.getLanguageRegistry();
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.ui.templates.CodetemplatesGeneratorFragment2
+ @SingletonBinding(eager=true)
+ public Class<? extends LanguageRegistrar> bindLanguageRegistrar() {
+ return LanguageRegistrar.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.ui.templates.CodetemplatesGeneratorFragment2
+ public Class<? extends XtextTemplatePreferencePage> bindXtextTemplatePreferencePage() {
+ return AdvancedTemplatesPreferencePage.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.ui.templates.CodetemplatesGeneratorFragment2
+ public Class<? extends IPartialEditingContentAssistParser> bindIPartialEditingContentAssistParser() {
+ return PartialBoilerplateTextContentAssistParser.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.ui.templates.CodetemplatesGeneratorFragment2
+ public Class<? extends IPartialEditingContentAssistContextFactory> bindIPartialEditingContentAssistContextFactory() {
+ return PartialEditingContentAssistContextFactory.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.ui.compare.CompareFragment2
+ public Class<? extends IViewerCreator> bindIViewerCreator() {
+ return DefaultViewerCreator.class;
+ }
+
+}
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/src-gen/org/eclipse/papyrus/requirements/sysml14/ui/BoilerplateTextExecutableExtensionFactory.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/src-gen/org/eclipse/papyrus/requirements/sysml14/ui/BoilerplateTextExecutableExtensionFactory.java
new file mode 100644
index 0000000..1d247a7
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/src-gen/org/eclipse/papyrus/requirements/sysml14/ui/BoilerplateTextExecutableExtensionFactory.java
@@ -0,0 +1,41 @@
+/*****************************************************************************
+ * Copyright (c) 2017 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *
+ * Mauricio Alferez (mauricio.alferez@cea.fr) CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+/*
+ * generated by Xtext 2.11.0
+ */
+package org.eclipse.papyrus.requirements.sysml14.ui;
+
+import com.google.inject.Injector;
+import org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui.internal.BoilerplatetextActivator;
+import org.eclipse.xtext.ui.guice.AbstractGuiceAwareExecutableExtensionFactory;
+import org.osgi.framework.Bundle;
+
+/**
+ * This class was generated. Customizations should only happen in a newly
+ * introduced subclass.
+ */
+public class BoilerplateTextExecutableExtensionFactory extends AbstractGuiceAwareExecutableExtensionFactory {
+
+ @Override
+ protected Bundle getBundle() {
+ return BoilerplatetextActivator.getInstance().getBundle();
+ }
+
+ @Override
+ protected Injector getInjector() {
+ return BoilerplatetextActivator.getInstance().getInjector(BoilerplatetextActivator.ORG_ECLIPSE_PAPYRUS_REQUIREMENTS_SYSML14_BOILERPLATETEXT);
+ }
+
+}
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/src-gen/org/eclipse/papyrus/requirements/sysml14/ui/contentassist/AbstractBoilerplateTextProposalProvider.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/src-gen/org/eclipse/papyrus/requirements/sysml14/ui/contentassist/AbstractBoilerplateTextProposalProvider.java
new file mode 100644
index 0000000..143a982
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/src-gen/org/eclipse/papyrus/requirements/sysml14/ui/contentassist/AbstractBoilerplateTextProposalProvider.java
@@ -0,0 +1,113 @@
+/*****************************************************************************
+ * Copyright (c) 2017 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *
+ * Mauricio Alferez (mauricio.alferez@cea.fr) CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+/*
+ * generated by Xtext 2.11.0
+ */
+package org.eclipse.papyrus.requirements.sysml14.ui.contentassist;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xtext.Assignment;
+import org.eclipse.xtext.RuleCall;
+import org.eclipse.xtext.common.ui.contentassist.TerminalsProposalProvider;
+import org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext;
+import org.eclipse.xtext.ui.editor.contentassist.ICompletionProposalAcceptor;
+
+/**
+ * Represents a generated, default implementation of superclass {@link TerminalsProposalProvider}.
+ * Methods are dynamically dispatched on the first parameter, i.e., you can override them
+ * with a more concrete subtype.
+ */
+public abstract class AbstractBoilerplateTextProposalProvider extends TerminalsProposalProvider {
+
+ public void completeModel_Model(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeRequirement_Prefix(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeRequirement_System(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeRequirement_Predicate(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeSubject_System(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeIf_Event(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeWhile_State(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeShallNotAllow_Action(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeShallNotAllow_Entity(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeShallNotAllow_ActionPerformedByEntity(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeShallAllow_Action(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeShallAllow_Entity(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeShallAllow_ActionPerformedByEntity(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeShallNot_Action(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeShall_Action(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+
+ public void complete_Model(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_Requirement(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_Subject(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_Prefix(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_If(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_While(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_Predicate(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_ShallNotAllow(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_ShallAllow(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_ShallNot(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_Shall(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+}
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/src/org/eclipse/papyrus/requirements/sysml14/ui/BoilerplateTextUiModule.xtend b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/src/org/eclipse/papyrus/requirements/sysml14/ui/BoilerplateTextUiModule.xtend
new file mode 100644
index 0000000..589938b
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/src/org/eclipse/papyrus/requirements/sysml14/ui/BoilerplateTextUiModule.xtend
@@ -0,0 +1,13 @@
+/*
+ * generated by Xtext 2.10.0
+ */
+package org.eclipse.papyrus.requirements.sysml14.ui
+
+import org.eclipse.xtend.lib.annotations.FinalFieldsConstructor
+
+/**
+ * Use this class to register components to be used within the Eclipse IDE.
+ */
+@FinalFieldsConstructor
+class BoilerplateTextUiModule extends AbstractBoilerplateTextUiModule {
+}
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/src/org/eclipse/papyrus/requirements/sysml14/ui/contentassist/BoilerplateTextProposalProvider.xtend b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/src/org/eclipse/papyrus/requirements/sysml14/ui/contentassist/BoilerplateTextProposalProvider.xtend
new file mode 100644
index 0000000..9e3b8f7
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/src/org/eclipse/papyrus/requirements/sysml14/ui/contentassist/BoilerplateTextProposalProvider.xtend
@@ -0,0 +1,12 @@
+/*
+ * generated by Xtext 2.10.0
+ */
+package org.eclipse.papyrus.requirements.sysml14.ui.contentassist
+
+
+/**
+ * See https://www.eclipse.org/Xtext/documentation/304_ide_concepts.html#content-assist
+ * on how to customize the content assistant.
+ */
+class BoilerplateTextProposalProvider extends AbstractBoilerplateTextProposalProvider {
+}
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/src/org/eclipse/papyrus/requirements/sysml14/ui/contribution/RequirementConstraint.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/src/org/eclipse/papyrus/requirements/sysml14/ui/contribution/RequirementConstraint.java
new file mode 100644
index 0000000..6e37f63
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/src/org/eclipse/papyrus/requirements/sysml14/ui/contribution/RequirementConstraint.java
@@ -0,0 +1,49 @@
+/*****************************************************************************
+ * Copyright (c) 2017 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *
+ * Mauricio Alferez (mauricio.alferez@cea.fr) CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.requirements.sysml14.ui.contribution;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.extensionpoints.editors.configuration.IDirectEditorConstraint;
+import org.eclipse.papyrus.infra.emf.utils.EMFHelper;
+import org.eclipse.papyrus.sysml14.requirements.Requirement;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+public class RequirementConstraint implements IDirectEditorConstraint {
+ private static final String REQ_TEXT_BOILERPLATES_LANGUAGE_NAME = "Text boilerplates";
+ public RequirementConstraint() {
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.papyrus.extensionpoints.editors.configuration.IDirectEditorConstraint#getLabel()
+ */
+ @Override
+ public String getLabel() {
+ return REQ_TEXT_BOILERPLATES_LANGUAGE_NAME;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.papyrus.extensionpoints.editors.configuration.IDirectEditorConstraint#appliesTo(java.lang.Object)
+ */
+ @Override
+ public boolean appliesTo(Object selection) {
+ EObject resolveEobject = EMFHelper.getEObject(selection);
+ if (resolveEobject instanceof Class) {
+ Class klass = (Class) resolveEobject;
+ return (null != UMLUtil.getStereotypeApplication(klass, Requirement.class));
+ }
+ return false;
+ }
+}
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/src/org/eclipse/papyrus/requirements/sysml14/ui/contribution/RequirementsTextBoilerplatesXtextDirectEditorConfiguration.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/src/org/eclipse/papyrus/requirements/sysml14/ui/contribution/RequirementsTextBoilerplatesXtextDirectEditorConfiguration.java
new file mode 100644
index 0000000..36831b1
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/src/org/eclipse/papyrus/requirements/sysml14/ui/contribution/RequirementsTextBoilerplatesXtextDirectEditorConfiguration.java
@@ -0,0 +1,159 @@
+/*****************************************************************************
+ * Copyright (c) 2017 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *
+ * Mauricio Alferez (mauricio.alferez@cea.fr) CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.requirements.sysml14.ui.contribution;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand;
+import org.eclipse.jface.dialogs.IInputValidator;
+import org.eclipse.papyrus.extensionpoints.editors.configuration.IPopupEditorConfiguration;
+import org.eclipse.papyrus.extensionpoints.editors.ui.IPopupEditorHelper;
+import org.eclipse.papyrus.infra.core.services.ServiceException;
+import org.eclipse.papyrus.infra.emf.Activator;
+import org.eclipse.papyrus.infra.emf.utils.ServiceUtilsForEObject;
+import org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui.internal.BoilerplatetextActivator;
+import org.eclipse.papyrus.requirements.sysml14.visitor.RequirementsPrinter;
+import org.eclipse.papyrus.sysml14.requirements.Requirement;
+import org.eclipse.papyrus.uml.xtext.integration.DefaultXtextDirectEditorConfiguration;
+import org.eclipse.swt.SWT;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.util.UMLUtil;
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.Model;
+
+import com.google.inject.Injector;
+
+public class RequirementsTextBoilerplatesXtextDirectEditorConfiguration extends DefaultXtextDirectEditorConfiguration implements IPopupEditorConfiguration {
+
+ public static final String REQ_TEXT_BOILERPLATES_LANGUAGE_NAME = "Text boilerplates";
+
+ public RequirementsTextBoilerplatesXtextDirectEditorConfiguration() {
+ // TODO Auto-generated constructor stub
+ }
+
+ @Override
+ public Injector getInjector() {
+ return BoilerplatetextActivator.getInstance().getInjector(BoilerplatetextActivator.ORG_ECLIPSE_PAPYRUS_REQUIREMENTS_SYSML14_BOILERPLATETEXT);
+ }
+
+ @Override
+ public int getStyle() {
+ return SWT.MULTI;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.papyrus.infra.gmfdiag.xtext.glue.PopupEditorConfiguration#getTextToEdit(java.lang.Object)
+ */
+ @SuppressWarnings("nls")
+ @Override
+ public String getTextToEdit(Object editedObject) {
+ if (editedObject instanceof Class) {
+ Class c = (Class)editedObject ;
+ if (null != UMLUtil.getStereotypeApplication(c, Requirement.class)){
+ Requirement req = UMLUtil.getStereotypeApplication(c, Requirement.class);
+ return req.getText();
+ }else
+ return "Not a Requirement";
+ }
+ return "Not a class";
+ }
+ @Override
+ public IInputValidator getInputValidator() {
+ return super.getInputValidator();
+ }
+
+ @Override
+ protected String getTextToEditInternal(EObject semanticObject) {
+ return super.getTextToEditInternal(semanticObject);
+ }
+
+ /**
+ * @author CEA LIST
+ *
+ * A command for updating the context UML model
+ */
+ protected class UpdateSysMLReqTextActionCommand extends AbstractTransactionalCommand {
+
+ private final Requirement requirement;
+
+ private EObject xtextObject;
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand#doExecuteWithResult(org.eclipse.core.runtime.IProgressMonitor
+ * , org.eclipse.core.runtime.IAdaptable)
+ */
+ @Override
+ protected CommandResult doExecuteWithResult(IProgressMonitor arg0, IAdaptable arg1) throws ExecutionException {
+ boolean result = updateTextValue(requirement, xtextObject);
+ return result ? CommandResult.newOKCommandResult(requirement) : CommandResult.newErrorCommandResult("Value error");
+ }
+
+ private boolean updateTextValue(Requirement requirement2, EObject xtextObject2) {
+ if (xtextObject2 instanceof Model){
+ Model xtextModel = (Model) xtextObject2;
+
+ String xtextReqString = new RequirementsPrinter().print(xtextModel);
+ requirement2.setText (xtextReqString);
+ return true;
+ }
+ return false;
+ }
+
+ public UpdateSysMLReqTextActionCommand(TransactionalEditingDomain domain, Requirement requirement, final EObject xtextObject) {
+ super(domain, "Transition Update", getWorkspaceFiles(requirement)); //$NON-NLS-1$
+ this.requirement = requirement;
+ this.xtextObject = xtextObject;
+ }
+ }
+
+ @Override
+ protected ICommand getParseCommand(EObject modelObject, EObject xtextObject) {
+
+ if (!(modelObject instanceof Class)) {
+ return null;
+ }
+ if (null == UMLUtil.getStereotypeApplication((Class)modelObject, Requirement.class)){
+ return null;
+ }
+ Requirement req = UMLUtil.getStereotypeApplication((Class)modelObject, Requirement.class);
+
+ // transitionRuleObject may be null, if we have no input left
+
+ // Creates and executes the update command
+ try {
+ TransactionalEditingDomain dom = ServiceUtilsForEObject.getInstance().getTransactionalEditingDomain(req);
+ UpdateSysMLReqTextActionCommand updateCommand = new UpdateSysMLReqTextActionCommand(dom, req, xtextObject);
+ return updateCommand;
+ } catch (ServiceException ex) {
+ Activator.log.error(ex);
+ return null;
+ }
+ }
+
+ @Override
+ public IPopupEditorHelper createPopupEditorHelper(Object editPart) {
+ return null;
+ }
+
+}
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/src/org/eclipse/papyrus/requirements/sysml14/ui/editor/RequirementsTextBoilerplatesLanguageEditor.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/src/org/eclipse/papyrus/requirements/sysml14/ui/editor/RequirementsTextBoilerplatesLanguageEditor.java
new file mode 100644
index 0000000..f7b18b3
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/src/org/eclipse/papyrus/requirements/sysml14/ui/editor/RequirementsTextBoilerplatesLanguageEditor.java
@@ -0,0 +1,40 @@
+/*****************************************************************************
+ * Copyright (c) 2017 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *
+ * Mauricio Alferez (mauricio.alferez@cea.fr) CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.requirements.sysml14.ui.editor;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.papyrus.extensionpoints.editors.Activator;
+import org.eclipse.papyrus.extensionpoints.editors.utils.IDirectEditorsIds;
+import org.eclipse.papyrus.requirements.sysml14.ui.contribution.RequirementsTextBoilerplatesXtextDirectEditorConfiguration;
+import org.eclipse.papyrus.uml.xtext.integration.DefaultXtextDirectEditorConfiguration;
+
+public class RequirementsTextBoilerplatesLanguageEditor extends XtextLanguageEditor {
+ @Override
+ protected DefaultXtextDirectEditorConfiguration getConfigurationFromSelection() {
+ EObject semanticElement = getEObject();
+ if (semanticElement != null) {
+ IPreferenceStore store = Activator.getDefault().getPreferenceStore();
+ String semanticClassName = semanticElement.eClass().getInstanceClassName();
+ String key = IDirectEditorsIds.EDITOR_FOR_ELEMENT + semanticClassName;
+ if (key.endsWith("org.eclipse.uml2.uml.Class")) {
+ RequirementsTextBoilerplatesXtextDirectEditorConfiguration cfg = new RequirementsTextBoilerplatesXtextDirectEditorConfiguration();
+ cfg.preEditAction(semanticElement);
+ return cfg;
+ }
+ }
+ return super.getConfigurationFromSelection();
+ }
+}
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/src/org/eclipse/papyrus/requirements/sysml14/ui/editor/UndoRedoStack.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/src/org/eclipse/papyrus/requirements/sysml14/ui/editor/UndoRedoStack.java
new file mode 100644
index 0000000..4faf0b5
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/src/org/eclipse/papyrus/requirements/sysml14/ui/editor/UndoRedoStack.java
@@ -0,0 +1,62 @@
+/*****************************************************************************
+ * Copyright (c) 2017 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *
+ * CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.requirements.sysml14.ui.editor;
+
+import java.util.Stack;
+
+public class UndoRedoStack<T> {
+
+ private Stack<T> undo;
+ private Stack<T> redo;
+
+ public UndoRedoStack() {
+ undo = new Stack<T>();
+ redo = new Stack<T>();
+ }
+
+ public void pushUndo(T delta) {
+ undo.add(delta);
+ }
+
+ public void pushRedo(T delta) {
+ redo.add(delta);
+ }
+
+ public T popUndo() {
+ T res = undo.pop();
+ return res;
+ }
+
+ public T popRedo() {
+ T res = redo.pop();
+ return res;
+ }
+
+ public void clearUndo() {
+ undo.clear();
+ }
+
+ public void clearRedo() {
+ redo.clear();
+ }
+
+ public boolean hasUndo() {
+ return !undo.isEmpty();
+ }
+
+ public boolean hasRedo() {
+ return !redo.isEmpty();
+ }
+}
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/src/org/eclipse/papyrus/requirements/sysml14/ui/editor/XtextLanguageEditor.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/src/org/eclipse/papyrus/requirements/sysml14/ui/editor/XtextLanguageEditor.java
new file mode 100644
index 0000000..370a200
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/src/org/eclipse/papyrus/requirements/sysml14/ui/editor/XtextLanguageEditor.java
@@ -0,0 +1,297 @@
+/*****************************************************************************
+ * Copyright (c) 2017 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *
+ * CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.requirements.sysml14.ui.editor;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.emf.transaction.util.TransactionUtil;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.papyrus.extensionpoints.editors.Activator;
+import org.eclipse.papyrus.extensionpoints.editors.configuration.IDirectEditorConfiguration;
+import org.eclipse.papyrus.extensionpoints.editors.utils.DirectEditorsUtil;
+import org.eclipse.papyrus.extensionpoints.editors.utils.IDirectEditorsIds;
+import org.eclipse.papyrus.infra.emf.gmf.command.GMFtoEMFCommandWrapper;
+import org.eclipse.papyrus.infra.properties.ui.modelelement.ModelElement;
+import org.eclipse.papyrus.infra.ui.emf.dialog.NestedEditingDialogContext;
+import org.eclipse.papyrus.uml.properties.modelelement.UMLModelElement;
+import org.eclipse.papyrus.uml.properties.widgets.BodyEditor;
+import org.eclipse.papyrus.uml.xtext.integration.DefaultXtextDirectEditorConfiguration;
+import org.eclipse.papyrus.uml.xtext.integration.StyledTextXtextAdapter;
+import org.eclipse.papyrus.uml.xtext.integration.core.ContextElementAdapter;
+import org.eclipse.papyrus.uml.xtext.integration.core.ContextElementAdapter.IContextElementProvider;
+import org.eclipse.papyrus.uml.xtext.integration.core.ContextElementAdapter.IContextElementProviderWithInit;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.ExtendedModifyEvent;
+import org.eclipse.swt.custom.ExtendedModifyListener;
+import org.eclipse.swt.custom.StyledText;
+import org.eclipse.swt.events.FocusEvent;
+import org.eclipse.swt.events.FocusListener;
+import org.eclipse.swt.events.KeyAdapter;
+import org.eclipse.swt.events.KeyEvent;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Listener;
+
+public class XtextLanguageEditor implements BodyEditor, IContextElementProvider {
+
+ protected StyledText textControl;
+
+ UndoRedoStack<ExtendedModifyEvent> undoRedoStack;
+
+ protected boolean isUndo;
+
+ protected boolean isRedo;
+
+ private DefaultXtextDirectEditorConfiguration configuration;
+
+ private StyledTextXtextAdapter xtextAdapter;
+
+ protected EObject currentEObj;
+
+ final private ContextElementAdapter contextElementAdapter = new ContextElementAdapter(this);
+
+ public void createWidget(Composite parent, int style) {
+ undoRedoStack = new UndoRedoStack<ExtendedModifyEvent>();
+ createTextControl(parent);
+ }
+
+ protected void createTextControl(final Composite parent) {
+
+ textControl = new StyledText(parent, SWT.MULTI | SWT.BORDER | SWT.V_SCROLL | SWT.WRAP);
+
+ textControl.addFocusListener(new FocusListener() {
+
+ public void focusLost(FocusEvent e) {
+ IParser parser = getParser();
+ if (xtextAdapter == null) { // May happen under specific circumstances (See Bug 433647)
+ return;
+ }
+
+ if (xtextAdapter.getCompletionProposalAdapter().delayedIsPopupOpen()) {
+ // ignore focus lost
+ return;
+ }
+ if ((parser != null) && !parser.getEditString(null, 0).equals(textControl.getText())) {
+ ICommand command = parser.getParseCommand(new EObjectAdapter(getEObject()), textControl.getText(), 0);
+
+ TransactionalEditingDomain domain = TransactionUtil.getEditingDomain(getEObject());
+ if (domain == null) {
+ // can be null for opaque expression that have been created but have not been added to parent
+ // try to get resource set from nested dialog context
+ ResourceSet rs = NestedEditingDialogContext.getInstance().getResourceSet();
+ domain = TransactionUtil.getEditingDomain(rs);
+ }
+ if (domain != null) {
+ domain.getCommandStack().execute(new GMFtoEMFCommandWrapper(command));
+ }
+ }
+ }
+
+ public void focusGained(FocusEvent e) {
+ // Nothing
+ }
+ });
+
+ textControl.setAlwaysShowScrollBars(false);
+ textControl.setLayout(new GridLayout());
+
+ // GridDataFactory.fillDefaults().grab(true, true).hint(parent.getSize()).applyTo(textControl);
+ textControl.addExtendedModifyListener(new ExtendedModifyListener() {
+
+ public void modifyText(ExtendedModifyEvent event) {
+ if (isUndo) {
+ undoRedoStack.pushRedo(event);
+ } else { // is Redo or a normal user action
+ undoRedoStack.pushUndo(event);
+ if (!isRedo) {
+ undoRedoStack.clearRedo();
+ // TODO Switch to treat consecutive characters as one event?
+ }
+ }
+ }
+ });
+
+ textControl.addKeyListener(new KeyAdapter() {
+
+ @Override
+ public void keyPressed(KeyEvent e) {
+ boolean isCtrl = (e.stateMask & SWT.CTRL) > 0;
+ boolean isAlt = (e.stateMask & SWT.ALT) > 0;
+ if (isCtrl && !isAlt) {
+ boolean isShift = (e.stateMask & SWT.SHIFT) > 0;
+ if (e.keyCode == 'z') {
+ if (isShift) {
+ redo();
+ } else {
+ undo();
+ }
+ }
+ }
+ }
+ });
+ }
+
+ protected void undo() {
+ if (undoRedoStack.hasUndo()) {
+ isUndo = true;
+ revertEvent(undoRedoStack.popUndo());
+ isUndo = false;
+ }
+ }
+
+ protected void redo() {
+ if (undoRedoStack.hasRedo()) {
+ isRedo = true;
+ revertEvent(undoRedoStack.popRedo());
+ isRedo = false;
+ }
+ }
+
+ /**
+ * Reverts the given modify event, in the way as the Eclipse text editor
+ * does it.
+ *
+ * @param event
+ */
+ protected void revertEvent(ExtendedModifyEvent event) {
+ textControl.replaceTextRange(event.start, event.length, event.replacedText);
+ // (causes the modifyText() listener method to be called)
+
+ textControl.setSelectionRange(event.start, event.replacedText.length());
+ }
+
+ protected IParser getParser() {
+ final EObject semanticElement = getEObject();
+ if (configuration != null && semanticElement != null) {
+ return configuration.createParser(semanticElement);
+ }
+ return null;
+ }
+
+ protected void updateXtextAdapters(Control styledText) {
+ final Object oldObjectToEdit = configuration != null ? configuration.getObjectToEdit() : null;
+
+ final DefaultXtextDirectEditorConfiguration newConfiguration = getConfigurationFromSelection();
+ // Check if configuration has changed and update adapters
+ if (newConfiguration != null && newConfiguration != configuration) {
+ if (xtextAdapter != null) {
+ xtextAdapter.getFakeResourceContext().getFakeResource().eAdapters().remove(contextElementAdapter);
+ }
+ configuration = newConfiguration;
+ xtextAdapter = new StyledTextXtextAdapter(configuration.getInjector());
+
+ EObject semanticElement = getEObject();
+ if (semanticElement != null) {
+ newConfiguration.preEditAction(semanticElement);
+ }
+
+ xtextAdapter.getFakeResourceContext().getFakeResource().eAdapters().add(contextElementAdapter);
+ xtextAdapter.adapt((StyledText) styledText);
+ }
+
+ if (configuration != null && configuration.getObjectToEdit() != oldObjectToEdit) {
+ IContextElementProvider provider = configuration.getContextProvider();
+ if (provider instanceof IContextElementProviderWithInit) {
+ // update resource, if required by text editor
+ if (xtextAdapter != null) {
+ ((IContextElementProviderWithInit) provider).initResource(xtextAdapter.getFakeResourceContext().getFakeResource());
+ }
+ }
+ Object semanticObject = configuration.getObjectToEdit();
+ if (semanticObject instanceof EObject) {
+ currentEObj = (EObject) semanticObject;
+ }
+ }
+ }
+
+ protected DefaultXtextDirectEditorConfiguration getConfigurationFromSelection() {
+ EObject semanticElement = getEObject();
+ if (semanticElement != null) {
+ IPreferenceStore store = Activator.getDefault().getPreferenceStore();
+ String semanticClassName = semanticElement.eClass().getInstanceClassName();
+ String key = IDirectEditorsIds.EDITOR_FOR_ELEMENT + semanticClassName;
+ String languagePreferred = store.getString(key);
+
+ if (languagePreferred != null && !languagePreferred.equals("")) { //$NON-NLS-1$
+ IDirectEditorConfiguration configuration = DirectEditorsUtil.findEditorConfiguration(languagePreferred, semanticClassName);
+ if (configuration instanceof DefaultXtextDirectEditorConfiguration) {
+
+ DefaultXtextDirectEditorConfiguration xtextConfiguration = (DefaultXtextDirectEditorConfiguration) configuration;
+ xtextConfiguration.preEditAction(semanticElement);
+ return xtextConfiguration;
+ }
+ }
+ }
+ return null;
+ }
+
+ public EObject getContextObject() {
+ return getEObject();
+ }
+
+ public void setInput(String value) {
+ if (value != null) {
+ textControl.setText(value);
+ // clear undo redo/stack, since we do not want to give the user the possibility
+ // to undo the initial input.
+ undoRedoStack.clearUndo();
+ undoRedoStack.clearRedo();
+ }
+ }
+
+ public void dispose() {
+ // dispose resources to avoid memory leaks
+ if (textControl != null) {
+ textControl.dispose();
+ }
+ if (xtextAdapter != null) {
+ xtextAdapter.getFakeResourceContext().getFakeResource().eAdapters().remove(contextElementAdapter);
+ xtextAdapter.dispose();
+ xtextAdapter = null;
+ }
+ }
+
+ public void addChangeListener(Listener listener) {
+ }
+
+ public void removeChangeListener(Listener listener) {
+ }
+
+ public String getValue() {
+ return null;
+ }
+
+ public void setReadOnly(boolean readOnly) {
+ }
+
+ public void setContext(ModelElement context) {
+ if (context instanceof UMLModelElement) {
+ currentEObj = ((UMLModelElement) context).getSource();
+ updateXtextAdapters(textControl);
+ }
+ }
+
+ /**
+ * @return Returns the eObject.
+ */
+ protected EObject getEObject() {
+ return currentEObj;
+ }
+}
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/src/org/eclipse/papyrus/requirements/sysml14/ui/labeling/BoilerplateTextDescriptionLabelProvider.xtend b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/src/org/eclipse/papyrus/requirements/sysml14/ui/labeling/BoilerplateTextDescriptionLabelProvider.xtend
new file mode 100644
index 0000000..4a5cc5c
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/src/org/eclipse/papyrus/requirements/sysml14/ui/labeling/BoilerplateTextDescriptionLabelProvider.xtend
@@ -0,0 +1,24 @@
+/*
+ * generated by Xtext 2.10.0
+ */
+package org.eclipse.papyrus.requirements.sysml14.ui.labeling
+
+import org.eclipse.xtext.ui.label.DefaultDescriptionLabelProvider
+
+/**
+ * Provides labels for IEObjectDescriptions and IResourceDescriptions.
+ *
+ * See https://www.eclipse.org/Xtext/documentation/304_ide_concepts.html#label-provider
+ */
+class BoilerplateTextDescriptionLabelProvider extends DefaultDescriptionLabelProvider {
+
+ // Labels and icons can be computed like this:
+
+// override text(IEObjectDescription ele) {
+// ele.name.toString
+// }
+//
+// override image(IEObjectDescription ele) {
+// ele.EClass.name + '.gif'
+// }
+}
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/src/org/eclipse/papyrus/requirements/sysml14/ui/labeling/BoilerplateTextLabelProvider.xtend b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/src/org/eclipse/papyrus/requirements/sysml14/ui/labeling/BoilerplateTextLabelProvider.xtend
new file mode 100644
index 0000000..97b2101
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/src/org/eclipse/papyrus/requirements/sysml14/ui/labeling/BoilerplateTextLabelProvider.xtend
@@ -0,0 +1,31 @@
+/*
+ * generated by Xtext 2.10.0
+ */
+package org.eclipse.papyrus.requirements.sysml14.ui.labeling
+
+import com.google.inject.Inject
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider
+import org.eclipse.xtext.ui.label.DefaultEObjectLabelProvider
+
+/**
+ * Provides labels for EObjects.
+ *
+ * See https://www.eclipse.org/Xtext/documentation/304_ide_concepts.html#label-provider
+ */
+class BoilerplateTextLabelProvider extends DefaultEObjectLabelProvider {
+
+ @Inject
+ new(AdapterFactoryLabelProvider delegate) {
+ super(delegate);
+ }
+
+ // Labels and icons can be computed like this:
+
+// def text(Greeting ele) {
+// 'A greeting to ' + ele.name
+// }
+//
+// def image(Greeting ele) {
+// 'Greeting.gif'
+// }
+}
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/src/org/eclipse/papyrus/requirements/sysml14/ui/outline/BoilerplateTextOutlineTreeProvider.xtend b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/src/org/eclipse/papyrus/requirements/sysml14/ui/outline/BoilerplateTextOutlineTreeProvider.xtend
new file mode 100644
index 0000000..a34d822
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/src/org/eclipse/papyrus/requirements/sysml14/ui/outline/BoilerplateTextOutlineTreeProvider.xtend
@@ -0,0 +1,15 @@
+/*
+ * generated by Xtext 2.10.0
+ */
+package org.eclipse.papyrus.requirements.sysml14.ui.outline
+
+import org.eclipse.xtext.ui.editor.outline.impl.DefaultOutlineTreeProvider
+
+/**
+ * Customization of the default outline structure.
+ *
+ * See https://www.eclipse.org/Xtext/documentation/304_ide_concepts.html#outline
+ */
+class BoilerplateTextOutlineTreeProvider extends DefaultOutlineTreeProvider {
+
+}
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/src/org/eclipse/papyrus/requirements/sysml14/ui/quickfix/BoilerplateTextQuickfixProvider.xtend b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/src/org/eclipse/papyrus/requirements/sysml14/ui/quickfix/BoilerplateTextQuickfixProvider.xtend
new file mode 100644
index 0000000..f5b548c
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/src/org/eclipse/papyrus/requirements/sysml14/ui/quickfix/BoilerplateTextQuickfixProvider.xtend
@@ -0,0 +1,24 @@
+/*
+ * generated by Xtext 2.10.0
+ */
+package org.eclipse.papyrus.requirements.sysml14.ui.quickfix
+
+import org.eclipse.xtext.ui.editor.quickfix.DefaultQuickfixProvider
+
+/**
+ * Custom quickfixes.
+ *
+ * See https://www.eclipse.org/Xtext/documentation/310_eclipse_support.html#quick-fixes
+ */
+class BoilerplateTextQuickfixProvider extends DefaultQuickfixProvider {
+
+// @Fix(BoilerplateTextValidator.INVALID_NAME)
+// def capitalizeName(Issue issue, IssueResolutionAcceptor acceptor) {
+// acceptor.accept(issue, 'Capitalize name', 'Capitalize the name.', 'upcase.png') [
+// context |
+// val xtextDocument = context.xtextDocument
+// val firstLetter = xtextDocument.get(issue.offset, 1)
+// xtextDocument.replace(issue.offset, 1, firstLetter.toUpperCase)
+// ]
+// }
+}
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/xtend-gen/org/eclipse/papyrus/requirements/sysml14/ui/.gitignore b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/xtend-gen/org/eclipse/papyrus/requirements/sysml14/ui/.gitignore
new file mode 100644
index 0000000..c2a02ae
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/xtend-gen/org/eclipse/papyrus/requirements/sysml14/ui/.gitignore
@@ -0,0 +1,3 @@
+/.BoilerplateTextUiModule.java._trace
+/.BoilerplateTextUiModule.xtendbin
+/BoilerplateTextUiModule.java
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/xtend-gen/org/eclipse/papyrus/requirements/sysml14/ui/contentassist/.gitignore b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/xtend-gen/org/eclipse/papyrus/requirements/sysml14/ui/contentassist/.gitignore
new file mode 100644
index 0000000..09fcf18
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/xtend-gen/org/eclipse/papyrus/requirements/sysml14/ui/contentassist/.gitignore
@@ -0,0 +1,3 @@
+/.BoilerplateTextProposalProvider.java._trace
+/.BoilerplateTextProposalProvider.xtendbin
+/BoilerplateTextProposalProvider.java
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/xtend-gen/org/eclipse/papyrus/requirements/sysml14/ui/labeling/.gitignore b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/xtend-gen/org/eclipse/papyrus/requirements/sysml14/ui/labeling/.gitignore
new file mode 100644
index 0000000..10bff8b
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/xtend-gen/org/eclipse/papyrus/requirements/sysml14/ui/labeling/.gitignore
@@ -0,0 +1,6 @@
+/.BoilerplateTextDescriptionLabelProvider.java._trace
+/.BoilerplateTextDescriptionLabelProvider.xtendbin
+/.BoilerplateTextLabelProvider.java._trace
+/.BoilerplateTextLabelProvider.xtendbin
+/BoilerplateTextDescriptionLabelProvider.java
+/BoilerplateTextLabelProvider.java
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/xtend-gen/org/eclipse/papyrus/requirements/sysml14/ui/outline/.gitignore b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/xtend-gen/org/eclipse/papyrus/requirements/sysml14/ui/outline/.gitignore
new file mode 100644
index 0000000..2e7594f
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/xtend-gen/org/eclipse/papyrus/requirements/sysml14/ui/outline/.gitignore
@@ -0,0 +1,3 @@
+/.BoilerplateTextOutlineTreeProvider.java._trace
+/.BoilerplateTextOutlineTreeProvider.xtendbin
+/BoilerplateTextOutlineTreeProvider.java
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/xtend-gen/org/eclipse/papyrus/requirements/sysml14/ui/quickfix/.gitignore b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/xtend-gen/org/eclipse/papyrus/requirements/sysml14/ui/quickfix/.gitignore
new file mode 100644
index 0000000..90f1437
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext.ui/xtend-gen/org/eclipse/papyrus/requirements/sysml14/ui/quickfix/.gitignore
@@ -0,0 +1,3 @@
+/.BoilerplateTextQuickfixProvider.java._trace
+/.BoilerplateTextQuickfixProvider.xtendbin
+/BoilerplateTextQuickfixProvider.java
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/.antlr-generator-3.2.0-patch.jar b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/.antlr-generator-3.2.0-patch.jar
new file mode 100644
index 0000000..90516fd
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/.antlr-generator-3.2.0-patch.jar
Binary files differ
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/.classpath b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/.classpath
new file mode 100644
index 0000000..9081d4f
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/.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/JavaSE-1.8"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/.gitignore b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/.project b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/.project
new file mode 100644
index 0000000..aee71a7
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.requirements.sysml14.boilerplatetext</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <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>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription>
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/.settings/org.eclipse.core.resources.prefs b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..68a0304
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=windows-1252
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/.settings/org.eclipse.jdt.core.prefs b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..0c68a61
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/META-INF/MANIFEST.MF b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..bbefaed
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/META-INF/MANIFEST.MF
@@ -0,0 +1,35 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.papyrus.requirements.sysml14.boilerplatetext
+Bundle-Vendor: Eclipse Modelling Project
+Bundle-Version: 0.7.0.qualifier
+Bundle-SymbolicName: org.eclipse.papyrus.requirements.sysml14.boilerplatetext; singleton:=true
+Bundle-ActivationPolicy: lazy
+Require-Bundle: org.eclipse.xtext,
+ org.eclipse.xtext.xbase,
+ org.eclipse.equinox.common;bundle-version="3.5.0",
+ org.eclipse.emf.ecore,
+ org.eclipse.xtext.xbase.lib,
+ org.antlr.runtime,
+ org.eclipse.xtext.util,
+ org.eclipse.xtend.lib,
+ org.eclipse.emf.common,
+ org.eclipse.papyrus.extensionpoints.editors,
+ org.eclipse.uml2.uml,
+ org.eclipse.papyrus.sysml14;bundle-version="0.10.0"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Export-Package: org.eclipse.papyrus.requirements.sysml14,
+ org.eclipse.papyrus.requirements.sysml14.boilerplateText,
+ org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl,
+ org.eclipse.papyrus.requirements.sysml14.boilerplateText.util,
+ org.eclipse.papyrus.requirements.sysml14.generator,
+ org.eclipse.papyrus.requirements.sysml14.parser.antlr,
+ org.eclipse.papyrus.requirements.sysml14.parser.antlr.internal,
+ org.eclipse.papyrus.requirements.sysml14.scoping,
+ org.eclipse.papyrus.requirements.sysml14.serializer,
+ org.eclipse.papyrus.requirements.sysml14.services,
+ org.eclipse.papyrus.requirements.sysml14.validation,
+ org.eclipse.papyrus.requirements.sysml14.visitor
+Import-Package: org.apache.log4j,
+ org.eclipse.papyrus.infra.emf.utils,
+ org.eclipse.papyrus.uml.tools.utils
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/about.html b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/about.html
new file mode 100644
index 0000000..d35d5ae
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 5, 2007</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, "Program" will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party ("Redistributor") and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/build.properties b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/build.properties
new file mode 100644
index 0000000..2b24043
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/build.properties
@@ -0,0 +1,21 @@
+source.. = src/,\
+ src-gen/,\
+ xtend-gen/
+bin.includes = model/generated/,\
+ .,\
+ META-INF/,\
+ plugin.xml,\
+ about.html
+additional.bundles = org.eclipse.xtext.xbase,\
+ org.eclipse.xtext.common.types,\
+ org.eclipse.xtext.xtext.generator,\
+ org.eclipse.emf.codegen.ecore,\
+ org.eclipse.emf.mwe.utils,\
+ org.eclipse.emf.mwe2.launch,\
+ org.eclipse.emf.mwe2.lib,\
+ org.objectweb.asm,\
+ org.apache.commons.logging,\
+ org.apache.log4j,\
+ com.ibm.icu
+src.includes = about.html,\
+ model/
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/model/generated/BoilerplateText.ecore b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/model/generated/BoilerplateText.ecore
new file mode 100644
index 0000000..672aca1
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/model/generated/BoilerplateText.ecore
@@ -0,0 +1,43 @@
+<?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="boilerplateText" nsURI="http://www.eclipse.org/papyrus/requirements/sysml14/BoilerplateText"
+ nsPrefix="boilerplateText">
+ <eClassifiers xsi:type="ecore:EClass" name="Model">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="model" eType="#//Requirement"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Requirement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="prefix" eType="#//Prefix"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="system" eType="#//Subject"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="predicate" eType="#//Predicate"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Subject">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="system" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Prefix"/>
+ <eClassifiers xsi:type="ecore:EClass" name="If" eSuperTypes="#//Prefix">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="event" unique="false" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="While" eSuperTypes="#//Prefix">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="state" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Predicate">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="action" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ShallNotAllow" eSuperTypes="#//Predicate">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="entity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="actionPerformedByEntity"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ShallAllow" eSuperTypes="#//Predicate">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="entity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="actionPerformedByEntity"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ShallNot" eSuperTypes="#//Predicate"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Shall" eSuperTypes="#//Predicate"/>
+</ecore:EPackage>
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/model/generated/BoilerplateText.genmodel b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/model/generated/BoilerplateText.genmodel
new file mode 100644
index 0000000..2c95204
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/model/generated/BoilerplateText.genmodel
@@ -0,0 +1,42 @@
+<?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" copyrightText="****************************************************************************
Copyright (c) 2017 CEA LIST.
 *
 *
All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License v1.0
which accompanies this distribution, and is available at
http://www.eclipse.org/legal/epl-v10.html
 *
Contributors:

		Mauricio Alferez (mauricio.alferez@cea.fr) CEA LIST - Initial API and implementation
 *
 ****************************************************************************

generated by Xtext 2.11.0"
+ modelDirectory="/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen"
+ modelPluginID="org.eclipse.papyrus.requirements.sysml14.boilerplatetext" forceOverwrite="true"
+ modelName="BoilerplateText" updateClasspath="false" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
+ complianceLevel="6.0" copyrightFields="false" runtimeVersion="2.12">
+ <genPackages prefix="BoilerplateText" basePackage="org.eclipse.papyrus.requirements.sysml14"
+ disposableProviderFactory="true" fileExtensions="boil" ecorePackage="BoilerplateText.ecore#/">
+ <genClasses ecoreClass="BoilerplateText.ecore#//Model">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference BoilerplateText.ecore#//Model/model"/>
+ </genClasses>
+ <genClasses ecoreClass="BoilerplateText.ecore#//Requirement">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference BoilerplateText.ecore#//Requirement/prefix"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference BoilerplateText.ecore#//Requirement/system"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference BoilerplateText.ecore#//Requirement/predicate"/>
+ </genClasses>
+ <genClasses ecoreClass="BoilerplateText.ecore#//Subject">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute BoilerplateText.ecore#//Subject/system"/>
+ </genClasses>
+ <genClasses ecoreClass="BoilerplateText.ecore#//Prefix"/>
+ <genClasses ecoreClass="BoilerplateText.ecore#//If">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute BoilerplateText.ecore#//If/event"/>
+ </genClasses>
+ <genClasses ecoreClass="BoilerplateText.ecore#//While">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute BoilerplateText.ecore#//While/state"/>
+ </genClasses>
+ <genClasses ecoreClass="BoilerplateText.ecore#//Predicate">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute BoilerplateText.ecore#//Predicate/action"/>
+ </genClasses>
+ <genClasses ecoreClass="BoilerplateText.ecore#//ShallNotAllow">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute BoilerplateText.ecore#//ShallNotAllow/entity"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute BoilerplateText.ecore#//ShallNotAllow/actionPerformedByEntity"/>
+ </genClasses>
+ <genClasses ecoreClass="BoilerplateText.ecore#//ShallAllow">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute BoilerplateText.ecore#//ShallAllow/entity"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute BoilerplateText.ecore#//ShallAllow/actionPerformedByEntity"/>
+ </genClasses>
+ <genClasses ecoreClass="BoilerplateText.ecore#//ShallNot"/>
+ <genClasses ecoreClass="BoilerplateText.ecore#//Shall"/>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/plugin.xml b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/plugin.xml
new file mode 100644
index 0000000..29b80fa
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/plugin.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="windows-1252"?>
+<?eclipse version="3.0"?>
+<plugin>
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <package
+ uri = "http://www.eclipse.org/papyrus/requirements/sysml14/BoilerplateText"
+ class = "org.eclipse.papyrus.requirements.sysml14.boilerplateText.BoilerplateTextPackage"
+ genModel = "model/generated/BoilerplateText.genmodel" />
+ </extension>
+</plugin>
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/plugin.xml_gen b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/plugin.xml_gen
new file mode 100644
index 0000000..29b80fa
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/plugin.xml_gen
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="windows-1252"?>
+<?eclipse version="3.0"?>
+<plugin>
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <package
+ uri = "http://www.eclipse.org/papyrus/requirements/sysml14/BoilerplateText"
+ class = "org.eclipse.papyrus.requirements.sysml14.boilerplateText.BoilerplateTextPackage"
+ genModel = "model/generated/BoilerplateText.genmodel" />
+ </extension>
+</plugin>
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/AbstractBoilerplateTextRuntimeModule.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/AbstractBoilerplateTextRuntimeModule.java
new file mode 100644
index 0000000..4c8377a
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/AbstractBoilerplateTextRuntimeModule.java
@@ -0,0 +1,208 @@
+/*****************************************************************************
+ * Copyright (c) 2017 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *
+ * Mauricio Alferez (mauricio.alferez@cea.fr) CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+/*
+ * generated by Xtext 2.11.0
+ */
+package org.eclipse.papyrus.requirements.sysml14;
+
+import com.google.inject.Binder;
+import com.google.inject.Provider;
+import com.google.inject.name.Names;
+import java.util.Properties;
+import org.eclipse.papyrus.requirements.sysml14.generator.BoilerplateTextGenerator;
+import org.eclipse.papyrus.requirements.sysml14.parser.antlr.BoilerplateTextAntlrTokenFileProvider;
+import org.eclipse.papyrus.requirements.sysml14.parser.antlr.BoilerplateTextParser;
+import org.eclipse.papyrus.requirements.sysml14.parser.antlr.internal.InternalBoilerplateTextLexer;
+import org.eclipse.papyrus.requirements.sysml14.scoping.BoilerplateTextScopeProvider;
+import org.eclipse.papyrus.requirements.sysml14.serializer.BoilerplateTextSemanticSequencer;
+import org.eclipse.papyrus.requirements.sysml14.serializer.BoilerplateTextSyntacticSequencer;
+import org.eclipse.papyrus.requirements.sysml14.services.BoilerplateTextGrammarAccess;
+import org.eclipse.papyrus.requirements.sysml14.validation.BoilerplateTextValidator;
+import org.eclipse.xtext.Constants;
+import org.eclipse.xtext.IGrammarAccess;
+import org.eclipse.xtext.generator.IGenerator2;
+import org.eclipse.xtext.naming.DefaultDeclarativeQualifiedNameProvider;
+import org.eclipse.xtext.naming.IQualifiedNameProvider;
+import org.eclipse.xtext.parser.IParser;
+import org.eclipse.xtext.parser.ITokenToStringConverter;
+import org.eclipse.xtext.parser.antlr.AntlrTokenDefProvider;
+import org.eclipse.xtext.parser.antlr.AntlrTokenToStringConverter;
+import org.eclipse.xtext.parser.antlr.IAntlrTokenFileProvider;
+import org.eclipse.xtext.parser.antlr.ITokenDefProvider;
+import org.eclipse.xtext.parser.antlr.Lexer;
+import org.eclipse.xtext.parser.antlr.LexerBindings;
+import org.eclipse.xtext.parser.antlr.LexerProvider;
+import org.eclipse.xtext.resource.IContainer;
+import org.eclipse.xtext.resource.IResourceDescriptions;
+import org.eclipse.xtext.resource.containers.IAllContainersState;
+import org.eclipse.xtext.resource.containers.ResourceSetBasedAllContainersStateProvider;
+import org.eclipse.xtext.resource.containers.StateBasedContainerManager;
+import org.eclipse.xtext.resource.impl.ResourceDescriptionsProvider;
+import org.eclipse.xtext.resource.impl.ResourceSetBasedResourceDescriptions;
+import org.eclipse.xtext.scoping.IGlobalScopeProvider;
+import org.eclipse.xtext.scoping.IScopeProvider;
+import org.eclipse.xtext.scoping.IgnoreCaseLinking;
+import org.eclipse.xtext.scoping.impl.AbstractDeclarativeScopeProvider;
+import org.eclipse.xtext.scoping.impl.DefaultGlobalScopeProvider;
+import org.eclipse.xtext.scoping.impl.ImportedNamespaceAwareLocalScopeProvider;
+import org.eclipse.xtext.serializer.ISerializer;
+import org.eclipse.xtext.serializer.impl.Serializer;
+import org.eclipse.xtext.serializer.sequencer.ISemanticSequencer;
+import org.eclipse.xtext.serializer.sequencer.ISyntacticSequencer;
+import org.eclipse.xtext.service.DefaultRuntimeModule;
+import org.eclipse.xtext.service.SingletonBinding;
+
+/**
+ * Manual modifications go to {@link BoilerplateTextRuntimeModule}.
+ */
+@SuppressWarnings("all")
+public abstract class AbstractBoilerplateTextRuntimeModule extends DefaultRuntimeModule {
+
+ protected Properties properties = null;
+
+ @Override
+ public void configure(Binder binder) {
+ properties = tryBindProperties(binder, "org/eclipse/papyrus/requirements/sysml14/BoilerplateText.properties");
+ super.configure(binder);
+ }
+
+ public void configureLanguageName(Binder binder) {
+ binder.bind(String.class).annotatedWith(Names.named(Constants.LANGUAGE_NAME)).toInstance("org.eclipse.papyrus.requirements.sysml14.BoilerplateText");
+ }
+
+ 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("boil");
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.grammarAccess.GrammarAccessFragment2
+ public ClassLoader bindClassLoaderToInstance() {
+ return getClass().getClassLoader();
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.grammarAccess.GrammarAccessFragment2
+ public Class<? extends IGrammarAccess> bindIGrammarAccess() {
+ return BoilerplateTextGrammarAccess.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.serializer.SerializerFragment2
+ public Class<? extends ISemanticSequencer> bindISemanticSequencer() {
+ return BoilerplateTextSemanticSequencer.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.serializer.SerializerFragment2
+ public Class<? extends ISyntacticSequencer> bindISyntacticSequencer() {
+ return BoilerplateTextSyntacticSequencer.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.serializer.SerializerFragment2
+ public Class<? extends ISerializer> bindISerializer() {
+ return Serializer.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
+ public Class<? extends IParser> bindIParser() {
+ return BoilerplateTextParser.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
+ public Class<? extends ITokenToStringConverter> bindITokenToStringConverter() {
+ return AntlrTokenToStringConverter.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
+ public Class<? extends IAntlrTokenFileProvider> bindIAntlrTokenFileProvider() {
+ return BoilerplateTextAntlrTokenFileProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
+ public Class<? extends Lexer> bindLexer() {
+ return InternalBoilerplateTextLexer.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
+ public Class<? extends ITokenDefProvider> bindITokenDefProvider() {
+ return AntlrTokenDefProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
+ public Provider<? extends InternalBoilerplateTextLexer> provideInternalBoilerplateTextLexer() {
+ return LexerProvider.create(InternalBoilerplateTextLexer.class);
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
+ public void configureRuntimeLexer(Binder binder) {
+ binder.bind(Lexer.class)
+ .annotatedWith(Names.named(LexerBindings.RUNTIME))
+ .to(InternalBoilerplateTextLexer.class);
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.validation.ValidatorFragment2
+ @SingletonBinding(eager=true)
+ public Class<? extends BoilerplateTextValidator> bindBoilerplateTextValidator() {
+ return BoilerplateTextValidator.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.scoping.ImportNamespacesScopingFragment2
+ public Class<? extends IScopeProvider> bindIScopeProvider() {
+ return BoilerplateTextScopeProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.scoping.ImportNamespacesScopingFragment2
+ public void configureIScopeProviderDelegate(Binder binder) {
+ binder.bind(IScopeProvider.class).annotatedWith(Names.named(AbstractDeclarativeScopeProvider.NAMED_DELEGATE)).to(ImportedNamespaceAwareLocalScopeProvider.class);
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.scoping.ImportNamespacesScopingFragment2
+ public Class<? extends IGlobalScopeProvider> bindIGlobalScopeProvider() {
+ return DefaultGlobalScopeProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.scoping.ImportNamespacesScopingFragment2
+ public void configureIgnoreCaseLinking(Binder binder) {
+ binder.bindConstant().annotatedWith(IgnoreCaseLinking.class).to(false);
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.exporting.QualifiedNamesFragment2
+ public Class<? extends IQualifiedNameProvider> bindIQualifiedNameProvider() {
+ return DefaultDeclarativeQualifiedNameProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2
+ public Class<? extends IContainer.Manager> bindIContainer$Manager() {
+ return StateBasedContainerManager.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2
+ public Class<? extends IAllContainersState.Provider> bindIAllContainersState$Provider() {
+ return ResourceSetBasedAllContainersStateProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2
+ public void configureIResourceDescriptions(Binder binder) {
+ binder.bind(IResourceDescriptions.class).to(ResourceSetBasedResourceDescriptions.class);
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2
+ public void configureIResourceDescriptionsPersisted(Binder binder) {
+ binder.bind(IResourceDescriptions.class).annotatedWith(Names.named(ResourceDescriptionsProvider.PERSISTED_DESCRIPTIONS)).to(ResourceSetBasedResourceDescriptions.class);
+ }
+
+ // contributed by org.eclipse.xtext.xtext.generator.generator.GeneratorFragment2
+ public Class<? extends IGenerator2> bindIGenerator2() {
+ return BoilerplateTextGenerator.class;
+ }
+
+}
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/BoilerplateText.xtextbin b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/BoilerplateText.xtextbin
new file mode 100644
index 0000000..79cdc61
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/BoilerplateText.xtextbin
Binary files differ
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/BoilerplateTextStandaloneSetupGenerated.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/BoilerplateTextStandaloneSetupGenerated.java
new file mode 100644
index 0000000..7e43021
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/BoilerplateTextStandaloneSetupGenerated.java
@@ -0,0 +1,56 @@
+/*****************************************************************************
+ * Copyright (c) 2017 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *
+ * Mauricio Alferez (mauricio.alferez@cea.fr) CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+/*
+ * generated by Xtext 2.11.0
+ */
+package org.eclipse.papyrus.requirements.sysml14;
+
+import com.google.inject.Guice;
+import com.google.inject.Injector;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.BoilerplateTextPackage;
+import org.eclipse.xtext.ISetup;
+import org.eclipse.xtext.common.TerminalsStandaloneSetup;
+import org.eclipse.xtext.resource.IResourceFactory;
+import org.eclipse.xtext.resource.IResourceServiceProvider;
+
+@SuppressWarnings("all")
+public class BoilerplateTextStandaloneSetupGenerated implements ISetup {
+
+ @Override
+ public Injector createInjectorAndDoEMFRegistration() {
+ TerminalsStandaloneSetup.doSetup();
+
+ Injector injector = createInjector();
+ register(injector);
+ return injector;
+ }
+
+ public Injector createInjector() {
+ return Guice.createInjector(new BoilerplateTextRuntimeModule());
+ }
+
+ public void register(Injector injector) {
+ if (!EPackage.Registry.INSTANCE.containsKey("http://www.eclipse.org/papyrus/requirements/sysml14/BoilerplateText")) {
+ EPackage.Registry.INSTANCE.put("http://www.eclipse.org/papyrus/requirements/sysml14/BoilerplateText", BoilerplateTextPackage.eINSTANCE);
+ }
+ IResourceFactory resourceFactory = injector.getInstance(IResourceFactory.class);
+ IResourceServiceProvider serviceProvider = injector.getInstance(IResourceServiceProvider.class);
+
+ Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("boil", resourceFactory);
+ IResourceServiceProvider.Registry.INSTANCE.getExtensionToFactoryMap().put("boil", serviceProvider);
+ }
+}
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/BoilerplateTextFactory.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/BoilerplateTextFactory.java
new file mode 100644
index 0000000..6b4ef88
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/BoilerplateTextFactory.java
@@ -0,0 +1,149 @@
+/**
+ * ****************************************************************************
+ * Copyright (c) 2017 CEA LIST.
+ * *
+ * *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * *
+ * Contributors:
+ *
+ * Mauricio Alferez (mauricio.alferez@cea.fr) CEA LIST - Initial API and implementation
+ * *
+ * ****************************************************************************
+ *
+ * generated by Xtext 2.11.0
+ */
+package org.eclipse.papyrus.requirements.sysml14.boilerplateText;
+
+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.papyrus.requirements.sysml14.boilerplateText.BoilerplateTextPackage
+ * @generated
+ */
+public interface BoilerplateTextFactory extends EFactory
+{
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ BoilerplateTextFactory eINSTANCE = org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.BoilerplateTextFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Model</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Model</em>'.
+ * @generated
+ */
+ Model createModel();
+
+ /**
+ * Returns a new object of class '<em>Requirement</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Requirement</em>'.
+ * @generated
+ */
+ Requirement createRequirement();
+
+ /**
+ * Returns a new object of class '<em>Subject</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Subject</em>'.
+ * @generated
+ */
+ Subject createSubject();
+
+ /**
+ * Returns a new object of class '<em>Prefix</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Prefix</em>'.
+ * @generated
+ */
+ Prefix createPrefix();
+
+ /**
+ * Returns a new object of class '<em>If</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>If</em>'.
+ * @generated
+ */
+ If createIf();
+
+ /**
+ * Returns a new object of class '<em>While</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>While</em>'.
+ * @generated
+ */
+ While createWhile();
+
+ /**
+ * Returns a new object of class '<em>Predicate</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Predicate</em>'.
+ * @generated
+ */
+ Predicate createPredicate();
+
+ /**
+ * Returns a new object of class '<em>Shall Not Allow</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Shall Not Allow</em>'.
+ * @generated
+ */
+ ShallNotAllow createShallNotAllow();
+
+ /**
+ * Returns a new object of class '<em>Shall Allow</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Shall Allow</em>'.
+ * @generated
+ */
+ ShallAllow createShallAllow();
+
+ /**
+ * Returns a new object of class '<em>Shall Not</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Shall Not</em>'.
+ * @generated
+ */
+ ShallNot createShallNot();
+
+ /**
+ * Returns a new object of class '<em>Shall</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Shall</em>'.
+ * @generated
+ */
+ Shall createShall();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ BoilerplateTextPackage getBoilerplateTextPackage();
+
+} //BoilerplateTextFactory
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/BoilerplateTextPackage.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/BoilerplateTextPackage.java
new file mode 100644
index 0000000..c18f708
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/BoilerplateTextPackage.java
@@ -0,0 +1,902 @@
+/**
+ * ****************************************************************************
+ * Copyright (c) 2017 CEA LIST.
+ * *
+ * *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * *
+ * Contributors:
+ *
+ * Mauricio Alferez (mauricio.alferez@cea.fr) CEA LIST - Initial API and implementation
+ * *
+ * ****************************************************************************
+ *
+ * generated by Xtext 2.11.0
+ */
+package org.eclipse.papyrus.requirements.sysml14.boilerplateText;
+
+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.papyrus.requirements.sysml14.boilerplateText.BoilerplateTextFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface BoilerplateTextPackage extends EPackage
+{
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "boilerplateText";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/papyrus/requirements/sysml14/BoilerplateText";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "boilerplateText";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ BoilerplateTextPackage eINSTANCE = org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.BoilerplateTextPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.ModelImpl <em>Model</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.ModelImpl
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.BoilerplateTextPackageImpl#getModel()
+ * @generated
+ */
+ int MODEL = 0;
+
+ /**
+ * The feature id for the '<em><b>Model</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODEL__MODEL = 0;
+
+ /**
+ * The number of structural features of the '<em>Model</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODEL_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.RequirementImpl <em>Requirement</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.RequirementImpl
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.BoilerplateTextPackageImpl#getRequirement()
+ * @generated
+ */
+ int REQUIREMENT = 1;
+
+ /**
+ * The feature id for the '<em><b>Prefix</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REQUIREMENT__PREFIX = 0;
+
+ /**
+ * The feature id for the '<em><b>System</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REQUIREMENT__SYSTEM = 1;
+
+ /**
+ * The feature id for the '<em><b>Predicate</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REQUIREMENT__PREDICATE = 2;
+
+ /**
+ * The number of structural features of the '<em>Requirement</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REQUIREMENT_FEATURE_COUNT = 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.SubjectImpl <em>Subject</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.SubjectImpl
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.BoilerplateTextPackageImpl#getSubject()
+ * @generated
+ */
+ int SUBJECT = 2;
+
+ /**
+ * The feature id for the '<em><b>System</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SUBJECT__SYSTEM = 0;
+
+ /**
+ * The number of structural features of the '<em>Subject</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SUBJECT_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.PrefixImpl <em>Prefix</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.PrefixImpl
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.BoilerplateTextPackageImpl#getPrefix()
+ * @generated
+ */
+ int PREFIX = 3;
+
+ /**
+ * The number of structural features of the '<em>Prefix</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PREFIX_FEATURE_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.IfImpl <em>If</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.IfImpl
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.BoilerplateTextPackageImpl#getIf()
+ * @generated
+ */
+ int IF = 4;
+
+ /**
+ * The feature id for the '<em><b>Event</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IF__EVENT = PREFIX_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>If</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IF_FEATURE_COUNT = PREFIX_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.WhileImpl <em>While</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.WhileImpl
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.BoilerplateTextPackageImpl#getWhile()
+ * @generated
+ */
+ int WHILE = 5;
+
+ /**
+ * The feature id for the '<em><b>State</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int WHILE__STATE = PREFIX_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>While</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int WHILE_FEATURE_COUNT = PREFIX_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.PredicateImpl <em>Predicate</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.PredicateImpl
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.BoilerplateTextPackageImpl#getPredicate()
+ * @generated
+ */
+ int PREDICATE = 6;
+
+ /**
+ * The feature id for the '<em><b>Action</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PREDICATE__ACTION = 0;
+
+ /**
+ * The number of structural features of the '<em>Predicate</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PREDICATE_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.ShallNotAllowImpl <em>Shall Not Allow</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.ShallNotAllowImpl
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.BoilerplateTextPackageImpl#getShallNotAllow()
+ * @generated
+ */
+ int SHALL_NOT_ALLOW = 7;
+
+ /**
+ * The feature id for the '<em><b>Action</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SHALL_NOT_ALLOW__ACTION = PREDICATE__ACTION;
+
+ /**
+ * The feature id for the '<em><b>Entity</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SHALL_NOT_ALLOW__ENTITY = PREDICATE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Action Performed By Entity</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SHALL_NOT_ALLOW__ACTION_PERFORMED_BY_ENTITY = PREDICATE_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Shall Not Allow</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SHALL_NOT_ALLOW_FEATURE_COUNT = PREDICATE_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.ShallAllowImpl <em>Shall Allow</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.ShallAllowImpl
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.BoilerplateTextPackageImpl#getShallAllow()
+ * @generated
+ */
+ int SHALL_ALLOW = 8;
+
+ /**
+ * The feature id for the '<em><b>Action</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SHALL_ALLOW__ACTION = PREDICATE__ACTION;
+
+ /**
+ * The feature id for the '<em><b>Entity</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SHALL_ALLOW__ENTITY = PREDICATE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Action Performed By Entity</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SHALL_ALLOW__ACTION_PERFORMED_BY_ENTITY = PREDICATE_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Shall Allow</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SHALL_ALLOW_FEATURE_COUNT = PREDICATE_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.ShallNotImpl <em>Shall Not</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.ShallNotImpl
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.BoilerplateTextPackageImpl#getShallNot()
+ * @generated
+ */
+ int SHALL_NOT = 9;
+
+ /**
+ * The feature id for the '<em><b>Action</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SHALL_NOT__ACTION = PREDICATE__ACTION;
+
+ /**
+ * The number of structural features of the '<em>Shall Not</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SHALL_NOT_FEATURE_COUNT = PREDICATE_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.ShallImpl <em>Shall</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.ShallImpl
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.BoilerplateTextPackageImpl#getShall()
+ * @generated
+ */
+ int SHALL = 10;
+
+ /**
+ * The feature id for the '<em><b>Action</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SHALL__ACTION = PREDICATE__ACTION;
+
+ /**
+ * The number of structural features of the '<em>Shall</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SHALL_FEATURE_COUNT = PREDICATE_FEATURE_COUNT + 0;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.Model <em>Model</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Model</em>'.
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.Model
+ * @generated
+ */
+ EClass getModel();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.Model#getModel <em>Model</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Model</em>'.
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.Model#getModel()
+ * @see #getModel()
+ * @generated
+ */
+ EReference getModel_Model();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.Requirement <em>Requirement</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Requirement</em>'.
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.Requirement
+ * @generated
+ */
+ EClass getRequirement();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.Requirement#getPrefix <em>Prefix</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Prefix</em>'.
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.Requirement#getPrefix()
+ * @see #getRequirement()
+ * @generated
+ */
+ EReference getRequirement_Prefix();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.Requirement#getSystem <em>System</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>System</em>'.
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.Requirement#getSystem()
+ * @see #getRequirement()
+ * @generated
+ */
+ EReference getRequirement_System();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.Requirement#getPredicate <em>Predicate</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Predicate</em>'.
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.Requirement#getPredicate()
+ * @see #getRequirement()
+ * @generated
+ */
+ EReference getRequirement_Predicate();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.Subject <em>Subject</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Subject</em>'.
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.Subject
+ * @generated
+ */
+ EClass getSubject();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.Subject#getSystem <em>System</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>System</em>'.
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.Subject#getSystem()
+ * @see #getSubject()
+ * @generated
+ */
+ EAttribute getSubject_System();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.Prefix <em>Prefix</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Prefix</em>'.
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.Prefix
+ * @generated
+ */
+ EClass getPrefix();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.If <em>If</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>If</em>'.
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.If
+ * @generated
+ */
+ EClass getIf();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.If#getEvent <em>Event</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Event</em>'.
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.If#getEvent()
+ * @see #getIf()
+ * @generated
+ */
+ EAttribute getIf_Event();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.While <em>While</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>While</em>'.
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.While
+ * @generated
+ */
+ EClass getWhile();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.While#getState <em>State</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>State</em>'.
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.While#getState()
+ * @see #getWhile()
+ * @generated
+ */
+ EAttribute getWhile_State();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.Predicate <em>Predicate</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Predicate</em>'.
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.Predicate
+ * @generated
+ */
+ EClass getPredicate();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.Predicate#getAction <em>Action</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Action</em>'.
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.Predicate#getAction()
+ * @see #getPredicate()
+ * @generated
+ */
+ EAttribute getPredicate_Action();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.ShallNotAllow <em>Shall Not Allow</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Shall Not Allow</em>'.
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.ShallNotAllow
+ * @generated
+ */
+ EClass getShallNotAllow();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.ShallNotAllow#getEntity <em>Entity</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Entity</em>'.
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.ShallNotAllow#getEntity()
+ * @see #getShallNotAllow()
+ * @generated
+ */
+ EAttribute getShallNotAllow_Entity();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.ShallNotAllow#getActionPerformedByEntity <em>Action Performed By Entity</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Action Performed By Entity</em>'.
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.ShallNotAllow#getActionPerformedByEntity()
+ * @see #getShallNotAllow()
+ * @generated
+ */
+ EAttribute getShallNotAllow_ActionPerformedByEntity();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.ShallAllow <em>Shall Allow</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Shall Allow</em>'.
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.ShallAllow
+ * @generated
+ */
+ EClass getShallAllow();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.ShallAllow#getEntity <em>Entity</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Entity</em>'.
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.ShallAllow#getEntity()
+ * @see #getShallAllow()
+ * @generated
+ */
+ EAttribute getShallAllow_Entity();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.ShallAllow#getActionPerformedByEntity <em>Action Performed By Entity</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Action Performed By Entity</em>'.
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.ShallAllow#getActionPerformedByEntity()
+ * @see #getShallAllow()
+ * @generated
+ */
+ EAttribute getShallAllow_ActionPerformedByEntity();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.ShallNot <em>Shall Not</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Shall Not</em>'.
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.ShallNot
+ * @generated
+ */
+ EClass getShallNot();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.Shall <em>Shall</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Shall</em>'.
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.Shall
+ * @generated
+ */
+ EClass getShall();
+
+ /**
+ * 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
+ */
+ BoilerplateTextFactory getBoilerplateTextFactory();
+
+ /**
+ * <!-- 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.papyrus.requirements.sysml14.boilerplateText.impl.ModelImpl <em>Model</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.ModelImpl
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.BoilerplateTextPackageImpl#getModel()
+ * @generated
+ */
+ EClass MODEL = eINSTANCE.getModel();
+
+ /**
+ * The meta object literal for the '<em><b>Model</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference MODEL__MODEL = eINSTANCE.getModel_Model();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.RequirementImpl <em>Requirement</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.RequirementImpl
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.BoilerplateTextPackageImpl#getRequirement()
+ * @generated
+ */
+ EClass REQUIREMENT = eINSTANCE.getRequirement();
+
+ /**
+ * The meta object literal for the '<em><b>Prefix</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference REQUIREMENT__PREFIX = eINSTANCE.getRequirement_Prefix();
+
+ /**
+ * The meta object literal for the '<em><b>System</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference REQUIREMENT__SYSTEM = eINSTANCE.getRequirement_System();
+
+ /**
+ * The meta object literal for the '<em><b>Predicate</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference REQUIREMENT__PREDICATE = eINSTANCE.getRequirement_Predicate();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.SubjectImpl <em>Subject</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.SubjectImpl
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.BoilerplateTextPackageImpl#getSubject()
+ * @generated
+ */
+ EClass SUBJECT = eINSTANCE.getSubject();
+
+ /**
+ * The meta object literal for the '<em><b>System</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SUBJECT__SYSTEM = eINSTANCE.getSubject_System();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.PrefixImpl <em>Prefix</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.PrefixImpl
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.BoilerplateTextPackageImpl#getPrefix()
+ * @generated
+ */
+ EClass PREFIX = eINSTANCE.getPrefix();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.IfImpl <em>If</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.IfImpl
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.BoilerplateTextPackageImpl#getIf()
+ * @generated
+ */
+ EClass IF = eINSTANCE.getIf();
+
+ /**
+ * The meta object literal for the '<em><b>Event</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute IF__EVENT = eINSTANCE.getIf_Event();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.WhileImpl <em>While</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.WhileImpl
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.BoilerplateTextPackageImpl#getWhile()
+ * @generated
+ */
+ EClass WHILE = eINSTANCE.getWhile();
+
+ /**
+ * The meta object literal for the '<em><b>State</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute WHILE__STATE = eINSTANCE.getWhile_State();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.PredicateImpl <em>Predicate</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.PredicateImpl
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.BoilerplateTextPackageImpl#getPredicate()
+ * @generated
+ */
+ EClass PREDICATE = eINSTANCE.getPredicate();
+
+ /**
+ * The meta object literal for the '<em><b>Action</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute PREDICATE__ACTION = eINSTANCE.getPredicate_Action();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.ShallNotAllowImpl <em>Shall Not Allow</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.ShallNotAllowImpl
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.BoilerplateTextPackageImpl#getShallNotAllow()
+ * @generated
+ */
+ EClass SHALL_NOT_ALLOW = eINSTANCE.getShallNotAllow();
+
+ /**
+ * The meta object literal for the '<em><b>Entity</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SHALL_NOT_ALLOW__ENTITY = eINSTANCE.getShallNotAllow_Entity();
+
+ /**
+ * The meta object literal for the '<em><b>Action Performed By Entity</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SHALL_NOT_ALLOW__ACTION_PERFORMED_BY_ENTITY = eINSTANCE.getShallNotAllow_ActionPerformedByEntity();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.ShallAllowImpl <em>Shall Allow</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.ShallAllowImpl
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.BoilerplateTextPackageImpl#getShallAllow()
+ * @generated
+ */
+ EClass SHALL_ALLOW = eINSTANCE.getShallAllow();
+
+ /**
+ * The meta object literal for the '<em><b>Entity</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SHALL_ALLOW__ENTITY = eINSTANCE.getShallAllow_Entity();
+
+ /**
+ * The meta object literal for the '<em><b>Action Performed By Entity</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SHALL_ALLOW__ACTION_PERFORMED_BY_ENTITY = eINSTANCE.getShallAllow_ActionPerformedByEntity();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.ShallNotImpl <em>Shall Not</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.ShallNotImpl
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.BoilerplateTextPackageImpl#getShallNot()
+ * @generated
+ */
+ EClass SHALL_NOT = eINSTANCE.getShallNot();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.ShallImpl <em>Shall</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.ShallImpl
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.BoilerplateTextPackageImpl#getShall()
+ * @generated
+ */
+ EClass SHALL = eINSTANCE.getShall();
+
+ }
+
+} //BoilerplateTextPackage
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/If.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/If.java
new file mode 100644
index 0000000..7d44030
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/If.java
@@ -0,0 +1,57 @@
+/**
+ * ****************************************************************************
+ * Copyright (c) 2017 CEA LIST.
+ * *
+ * *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * *
+ * Contributors:
+ *
+ * Mauricio Alferez (mauricio.alferez@cea.fr) CEA LIST - Initial API and implementation
+ * *
+ * ****************************************************************************
+ *
+ * generated by Xtext 2.11.0
+ */
+package org.eclipse.papyrus.requirements.sysml14.boilerplateText;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>If</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.If#getEvent <em>Event</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.BoilerplateTextPackage#getIf()
+ * @model
+ * @generated
+ */
+public interface If extends Prefix
+{
+ /**
+ * Returns the value of the '<em><b>Event</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.String}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Event</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>Event</em>' attribute list.
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.BoilerplateTextPackage#getIf_Event()
+ * @model unique="false"
+ * @generated
+ */
+ EList<String> getEvent();
+
+} // If
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/Model.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/Model.java
new file mode 100644
index 0000000..80e172f
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/Model.java
@@ -0,0 +1,67 @@
+/**
+ * ****************************************************************************
+ * Copyright (c) 2017 CEA LIST.
+ * *
+ * *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * *
+ * Contributors:
+ *
+ * Mauricio Alferez (mauricio.alferez@cea.fr) CEA LIST - Initial API and implementation
+ * *
+ * ****************************************************************************
+ *
+ * generated by Xtext 2.11.0
+ */
+package org.eclipse.papyrus.requirements.sysml14.boilerplateText;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Model</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.Model#getModel <em>Model</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.BoilerplateTextPackage#getModel()
+ * @model
+ * @generated
+ */
+public interface Model extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Model</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Model</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>Model</em>' containment reference.
+ * @see #setModel(Requirement)
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.BoilerplateTextPackage#getModel_Model()
+ * @model containment="true"
+ * @generated
+ */
+ Requirement getModel();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.Model#getModel <em>Model</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Model</em>' containment reference.
+ * @see #getModel()
+ * @generated
+ */
+ void setModel(Requirement value);
+
+} // Model
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/Predicate.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/Predicate.java
new file mode 100644
index 0000000..25aa7a1
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/Predicate.java
@@ -0,0 +1,67 @@
+/**
+ * ****************************************************************************
+ * Copyright (c) 2017 CEA LIST.
+ * *
+ * *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * *
+ * Contributors:
+ *
+ * Mauricio Alferez (mauricio.alferez@cea.fr) CEA LIST - Initial API and implementation
+ * *
+ * ****************************************************************************
+ *
+ * generated by Xtext 2.11.0
+ */
+package org.eclipse.papyrus.requirements.sysml14.boilerplateText;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Predicate</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.Predicate#getAction <em>Action</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.BoilerplateTextPackage#getPredicate()
+ * @model
+ * @generated
+ */
+public interface Predicate extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Action</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Action</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Action</em>' attribute.
+ * @see #setAction(String)
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.BoilerplateTextPackage#getPredicate_Action()
+ * @model
+ * @generated
+ */
+ String getAction();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.Predicate#getAction <em>Action</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Action</em>' attribute.
+ * @see #getAction()
+ * @generated
+ */
+ void setAction(String value);
+
+} // Predicate
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/Prefix.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/Prefix.java
new file mode 100644
index 0000000..7aed452
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/Prefix.java
@@ -0,0 +1,35 @@
+/**
+ * ****************************************************************************
+ * Copyright (c) 2017 CEA LIST.
+ * *
+ * *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * *
+ * Contributors:
+ *
+ * Mauricio Alferez (mauricio.alferez@cea.fr) CEA LIST - Initial API and implementation
+ * *
+ * ****************************************************************************
+ *
+ * generated by Xtext 2.11.0
+ */
+package org.eclipse.papyrus.requirements.sysml14.boilerplateText;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Prefix</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.BoilerplateTextPackage#getPrefix()
+ * @model
+ * @generated
+ */
+public interface Prefix extends EObject
+{
+} // Prefix
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/Requirement.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/Requirement.java
new file mode 100644
index 0000000..c554d58
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/Requirement.java
@@ -0,0 +1,121 @@
+/**
+ * ****************************************************************************
+ * Copyright (c) 2017 CEA LIST.
+ * *
+ * *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * *
+ * Contributors:
+ *
+ * Mauricio Alferez (mauricio.alferez@cea.fr) CEA LIST - Initial API and implementation
+ * *
+ * ****************************************************************************
+ *
+ * generated by Xtext 2.11.0
+ */
+package org.eclipse.papyrus.requirements.sysml14.boilerplateText;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Requirement</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.Requirement#getPrefix <em>Prefix</em>}</li>
+ * <li>{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.Requirement#getSystem <em>System</em>}</li>
+ * <li>{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.Requirement#getPredicate <em>Predicate</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.BoilerplateTextPackage#getRequirement()
+ * @model
+ * @generated
+ */
+public interface Requirement extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Prefix</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Prefix</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>Prefix</em>' containment reference.
+ * @see #setPrefix(Prefix)
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.BoilerplateTextPackage#getRequirement_Prefix()
+ * @model containment="true"
+ * @generated
+ */
+ Prefix getPrefix();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.Requirement#getPrefix <em>Prefix</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Prefix</em>' containment reference.
+ * @see #getPrefix()
+ * @generated
+ */
+ void setPrefix(Prefix value);
+
+ /**
+ * Returns the value of the '<em><b>System</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>System</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>System</em>' containment reference.
+ * @see #setSystem(Subject)
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.BoilerplateTextPackage#getRequirement_System()
+ * @model containment="true"
+ * @generated
+ */
+ Subject getSystem();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.Requirement#getSystem <em>System</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>System</em>' containment reference.
+ * @see #getSystem()
+ * @generated
+ */
+ void setSystem(Subject value);
+
+ /**
+ * Returns the value of the '<em><b>Predicate</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Predicate</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>Predicate</em>' containment reference.
+ * @see #setPredicate(Predicate)
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.BoilerplateTextPackage#getRequirement_Predicate()
+ * @model containment="true"
+ * @generated
+ */
+ Predicate getPredicate();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.Requirement#getPredicate <em>Predicate</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Predicate</em>' containment reference.
+ * @see #getPredicate()
+ * @generated
+ */
+ void setPredicate(Predicate value);
+
+} // Requirement
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/Shall.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/Shall.java
new file mode 100644
index 0000000..5f5510e
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/Shall.java
@@ -0,0 +1,34 @@
+/**
+ * ****************************************************************************
+ * Copyright (c) 2017 CEA LIST.
+ * *
+ * *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * *
+ * Contributors:
+ *
+ * Mauricio Alferez (mauricio.alferez@cea.fr) CEA LIST - Initial API and implementation
+ * *
+ * ****************************************************************************
+ *
+ * generated by Xtext 2.11.0
+ */
+package org.eclipse.papyrus.requirements.sysml14.boilerplateText;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Shall</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.BoilerplateTextPackage#getShall()
+ * @model
+ * @generated
+ */
+public interface Shall extends Predicate
+{
+} // Shall
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/ShallAllow.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/ShallAllow.java
new file mode 100644
index 0000000..094480b
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/ShallAllow.java
@@ -0,0 +1,93 @@
+/**
+ * ****************************************************************************
+ * Copyright (c) 2017 CEA LIST.
+ * *
+ * *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * *
+ * Contributors:
+ *
+ * Mauricio Alferez (mauricio.alferez@cea.fr) CEA LIST - Initial API and implementation
+ * *
+ * ****************************************************************************
+ *
+ * generated by Xtext 2.11.0
+ */
+package org.eclipse.papyrus.requirements.sysml14.boilerplateText;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Shall Allow</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.ShallAllow#getEntity <em>Entity</em>}</li>
+ * <li>{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.ShallAllow#getActionPerformedByEntity <em>Action Performed By Entity</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.BoilerplateTextPackage#getShallAllow()
+ * @model
+ * @generated
+ */
+public interface ShallAllow extends Predicate
+{
+ /**
+ * Returns the value of the '<em><b>Entity</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Entity</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Entity</em>' attribute.
+ * @see #setEntity(String)
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.BoilerplateTextPackage#getShallAllow_Entity()
+ * @model
+ * @generated
+ */
+ String getEntity();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.ShallAllow#getEntity <em>Entity</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Entity</em>' attribute.
+ * @see #getEntity()
+ * @generated
+ */
+ void setEntity(String value);
+
+ /**
+ * Returns the value of the '<em><b>Action Performed By Entity</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Action Performed By Entity</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Action Performed By Entity</em>' attribute.
+ * @see #setActionPerformedByEntity(String)
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.BoilerplateTextPackage#getShallAllow_ActionPerformedByEntity()
+ * @model
+ * @generated
+ */
+ String getActionPerformedByEntity();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.ShallAllow#getActionPerformedByEntity <em>Action Performed By Entity</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Action Performed By Entity</em>' attribute.
+ * @see #getActionPerformedByEntity()
+ * @generated
+ */
+ void setActionPerformedByEntity(String value);
+
+} // ShallAllow
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/ShallNot.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/ShallNot.java
new file mode 100644
index 0000000..54a0c61
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/ShallNot.java
@@ -0,0 +1,34 @@
+/**
+ * ****************************************************************************
+ * Copyright (c) 2017 CEA LIST.
+ * *
+ * *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * *
+ * Contributors:
+ *
+ * Mauricio Alferez (mauricio.alferez@cea.fr) CEA LIST - Initial API and implementation
+ * *
+ * ****************************************************************************
+ *
+ * generated by Xtext 2.11.0
+ */
+package org.eclipse.papyrus.requirements.sysml14.boilerplateText;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Shall Not</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.BoilerplateTextPackage#getShallNot()
+ * @model
+ * @generated
+ */
+public interface ShallNot extends Predicate
+{
+} // ShallNot
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/ShallNotAllow.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/ShallNotAllow.java
new file mode 100644
index 0000000..3bb159a
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/ShallNotAllow.java
@@ -0,0 +1,93 @@
+/**
+ * ****************************************************************************
+ * Copyright (c) 2017 CEA LIST.
+ * *
+ * *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * *
+ * Contributors:
+ *
+ * Mauricio Alferez (mauricio.alferez@cea.fr) CEA LIST - Initial API and implementation
+ * *
+ * ****************************************************************************
+ *
+ * generated by Xtext 2.11.0
+ */
+package org.eclipse.papyrus.requirements.sysml14.boilerplateText;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Shall Not Allow</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.ShallNotAllow#getEntity <em>Entity</em>}</li>
+ * <li>{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.ShallNotAllow#getActionPerformedByEntity <em>Action Performed By Entity</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.BoilerplateTextPackage#getShallNotAllow()
+ * @model
+ * @generated
+ */
+public interface ShallNotAllow extends Predicate
+{
+ /**
+ * Returns the value of the '<em><b>Entity</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Entity</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Entity</em>' attribute.
+ * @see #setEntity(String)
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.BoilerplateTextPackage#getShallNotAllow_Entity()
+ * @model
+ * @generated
+ */
+ String getEntity();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.ShallNotAllow#getEntity <em>Entity</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Entity</em>' attribute.
+ * @see #getEntity()
+ * @generated
+ */
+ void setEntity(String value);
+
+ /**
+ * Returns the value of the '<em><b>Action Performed By Entity</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Action Performed By Entity</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Action Performed By Entity</em>' attribute.
+ * @see #setActionPerformedByEntity(String)
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.BoilerplateTextPackage#getShallNotAllow_ActionPerformedByEntity()
+ * @model
+ * @generated
+ */
+ String getActionPerformedByEntity();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.ShallNotAllow#getActionPerformedByEntity <em>Action Performed By Entity</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Action Performed By Entity</em>' attribute.
+ * @see #getActionPerformedByEntity()
+ * @generated
+ */
+ void setActionPerformedByEntity(String value);
+
+} // ShallNotAllow
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/Subject.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/Subject.java
new file mode 100644
index 0000000..0a2e84f
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/Subject.java
@@ -0,0 +1,67 @@
+/**
+ * ****************************************************************************
+ * Copyright (c) 2017 CEA LIST.
+ * *
+ * *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * *
+ * Contributors:
+ *
+ * Mauricio Alferez (mauricio.alferez@cea.fr) CEA LIST - Initial API and implementation
+ * *
+ * ****************************************************************************
+ *
+ * generated by Xtext 2.11.0
+ */
+package org.eclipse.papyrus.requirements.sysml14.boilerplateText;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Subject</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.Subject#getSystem <em>System</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.BoilerplateTextPackage#getSubject()
+ * @model
+ * @generated
+ */
+public interface Subject extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>System</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>System</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>System</em>' attribute.
+ * @see #setSystem(String)
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.BoilerplateTextPackage#getSubject_System()
+ * @model
+ * @generated
+ */
+ String getSystem();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.Subject#getSystem <em>System</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>System</em>' attribute.
+ * @see #getSystem()
+ * @generated
+ */
+ void setSystem(String value);
+
+} // Subject
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/While.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/While.java
new file mode 100644
index 0000000..129d2a9
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/While.java
@@ -0,0 +1,66 @@
+/**
+ * ****************************************************************************
+ * Copyright (c) 2017 CEA LIST.
+ * *
+ * *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * *
+ * Contributors:
+ *
+ * Mauricio Alferez (mauricio.alferez@cea.fr) CEA LIST - Initial API and implementation
+ * *
+ * ****************************************************************************
+ *
+ * generated by Xtext 2.11.0
+ */
+package org.eclipse.papyrus.requirements.sysml14.boilerplateText;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>While</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.While#getState <em>State</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.BoilerplateTextPackage#getWhile()
+ * @model
+ * @generated
+ */
+public interface While extends Prefix
+{
+ /**
+ * Returns the value of the '<em><b>State</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>State</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>State</em>' attribute.
+ * @see #setState(String)
+ * @see org.eclipse.papyrus.requirements.sysml14.boilerplateText.BoilerplateTextPackage#getWhile_State()
+ * @model
+ * @generated
+ */
+ String getState();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.While#getState <em>State</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>State</em>' attribute.
+ * @see #getState()
+ * @generated
+ */
+ void setState(String value);
+
+} // While
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/impl/BoilerplateTextFactoryImpl.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/impl/BoilerplateTextFactoryImpl.java
new file mode 100644
index 0000000..c055f9a
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/impl/BoilerplateTextFactoryImpl.java
@@ -0,0 +1,242 @@
+/**
+ * ****************************************************************************
+ * Copyright (c) 2017 CEA LIST.
+ * *
+ * *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * *
+ * Contributors:
+ *
+ * Mauricio Alferez (mauricio.alferez@cea.fr) CEA LIST - Initial API and implementation
+ * *
+ * ****************************************************************************
+ *
+ * generated by Xtext 2.11.0
+ */
+package org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl;
+
+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;
+
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class BoilerplateTextFactoryImpl extends EFactoryImpl implements BoilerplateTextFactory
+{
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static BoilerplateTextFactory init()
+ {
+ try
+ {
+ BoilerplateTextFactory theBoilerplateTextFactory = (BoilerplateTextFactory)EPackage.Registry.INSTANCE.getEFactory(BoilerplateTextPackage.eNS_URI);
+ if (theBoilerplateTextFactory != null)
+ {
+ return theBoilerplateTextFactory;
+ }
+ }
+ catch (Exception exception)
+ {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new BoilerplateTextFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BoilerplateTextFactoryImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass)
+ {
+ switch (eClass.getClassifierID())
+ {
+ case BoilerplateTextPackage.MODEL: return createModel();
+ case BoilerplateTextPackage.REQUIREMENT: return createRequirement();
+ case BoilerplateTextPackage.SUBJECT: return createSubject();
+ case BoilerplateTextPackage.PREFIX: return createPrefix();
+ case BoilerplateTextPackage.IF: return createIf();
+ case BoilerplateTextPackage.WHILE: return createWhile();
+ case BoilerplateTextPackage.PREDICATE: return createPredicate();
+ case BoilerplateTextPackage.SHALL_NOT_ALLOW: return createShallNotAllow();
+ case BoilerplateTextPackage.SHALL_ALLOW: return createShallAllow();
+ case BoilerplateTextPackage.SHALL_NOT: return createShallNot();
+ case BoilerplateTextPackage.SHALL: return createShall();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Model createModel()
+ {
+ ModelImpl model = new ModelImpl();
+ return model;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Requirement createRequirement()
+ {
+ RequirementImpl requirement = new RequirementImpl();
+ return requirement;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Subject createSubject()
+ {
+ SubjectImpl subject = new SubjectImpl();
+ return subject;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Prefix createPrefix()
+ {
+ PrefixImpl prefix = new PrefixImpl();
+ return prefix;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public If createIf()
+ {
+ IfImpl if_ = new IfImpl();
+ return if_;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public While createWhile()
+ {
+ WhileImpl while_ = new WhileImpl();
+ return while_;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Predicate createPredicate()
+ {
+ PredicateImpl predicate = new PredicateImpl();
+ return predicate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ShallNotAllow createShallNotAllow()
+ {
+ ShallNotAllowImpl shallNotAllow = new ShallNotAllowImpl();
+ return shallNotAllow;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ShallAllow createShallAllow()
+ {
+ ShallAllowImpl shallAllow = new ShallAllowImpl();
+ return shallAllow;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ShallNot createShallNot()
+ {
+ ShallNotImpl shallNot = new ShallNotImpl();
+ return shallNot;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Shall createShall()
+ {
+ ShallImpl shall = new ShallImpl();
+ return shall;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BoilerplateTextPackage getBoilerplateTextPackage()
+ {
+ return (BoilerplateTextPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static BoilerplateTextPackage getPackage()
+ {
+ return BoilerplateTextPackage.eINSTANCE;
+ }
+
+} //BoilerplateTextFactoryImpl
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/impl/BoilerplateTextPackageImpl.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/impl/BoilerplateTextPackageImpl.java
new file mode 100644
index 0000000..24f5db2
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/impl/BoilerplateTextPackageImpl.java
@@ -0,0 +1,560 @@
+/**
+ * ****************************************************************************
+ * Copyright (c) 2017 CEA LIST.
+ * *
+ * *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * *
+ * Contributors:
+ *
+ * Mauricio Alferez (mauricio.alferez@cea.fr) CEA LIST - Initial API and implementation
+ * *
+ * ****************************************************************************
+ *
+ * generated by Xtext 2.11.0
+ */
+package org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl;
+
+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;
+
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.BoilerplateTextFactory;
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.BoilerplateTextPackage;
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.If;
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.Model;
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.Predicate;
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.Prefix;
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.Requirement;
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.Shall;
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.ShallAllow;
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.ShallNot;
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.ShallNotAllow;
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.Subject;
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.While;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class BoilerplateTextPackageImpl extends EPackageImpl implements BoilerplateTextPackage
+{
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass modelEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass requirementEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass subjectEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass prefixEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass ifEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass whileEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass predicateEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass shallNotAllowEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass shallAllowEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass shallNotEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass shallEClass = 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.papyrus.requirements.sysml14.boilerplateText.BoilerplateTextPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private BoilerplateTextPackageImpl()
+ {
+ super(eNS_URI, BoilerplateTextFactory.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 BoilerplateTextPackage#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 BoilerplateTextPackage init()
+ {
+ if (isInited) return (BoilerplateTextPackage)EPackage.Registry.INSTANCE.getEPackage(BoilerplateTextPackage.eNS_URI);
+
+ // Obtain or create and register package
+ BoilerplateTextPackageImpl theBoilerplateTextPackage = (BoilerplateTextPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof BoilerplateTextPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new BoilerplateTextPackageImpl());
+
+ isInited = true;
+
+ // Create package meta-data objects
+ theBoilerplateTextPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theBoilerplateTextPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theBoilerplateTextPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(BoilerplateTextPackage.eNS_URI, theBoilerplateTextPackage);
+ return theBoilerplateTextPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getModel()
+ {
+ return modelEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getModel_Model()
+ {
+ return (EReference)modelEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getRequirement()
+ {
+ return requirementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getRequirement_Prefix()
+ {
+ return (EReference)requirementEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getRequirement_System()
+ {
+ return (EReference)requirementEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getRequirement_Predicate()
+ {
+ return (EReference)requirementEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSubject()
+ {
+ return subjectEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getSubject_System()
+ {
+ return (EAttribute)subjectEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getPrefix()
+ {
+ return prefixEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getIf()
+ {
+ return ifEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getIf_Event()
+ {
+ return (EAttribute)ifEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getWhile()
+ {
+ return whileEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getWhile_State()
+ {
+ return (EAttribute)whileEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getPredicate()
+ {
+ return predicateEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getPredicate_Action()
+ {
+ return (EAttribute)predicateEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getShallNotAllow()
+ {
+ return shallNotAllowEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getShallNotAllow_Entity()
+ {
+ return (EAttribute)shallNotAllowEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getShallNotAllow_ActionPerformedByEntity()
+ {
+ return (EAttribute)shallNotAllowEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getShallAllow()
+ {
+ return shallAllowEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getShallAllow_Entity()
+ {
+ return (EAttribute)shallAllowEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getShallAllow_ActionPerformedByEntity()
+ {
+ return (EAttribute)shallAllowEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getShallNot()
+ {
+ return shallNotEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getShall()
+ {
+ return shallEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BoilerplateTextFactory getBoilerplateTextFactory()
+ {
+ return (BoilerplateTextFactory)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
+ modelEClass = createEClass(MODEL);
+ createEReference(modelEClass, MODEL__MODEL);
+
+ requirementEClass = createEClass(REQUIREMENT);
+ createEReference(requirementEClass, REQUIREMENT__PREFIX);
+ createEReference(requirementEClass, REQUIREMENT__SYSTEM);
+ createEReference(requirementEClass, REQUIREMENT__PREDICATE);
+
+ subjectEClass = createEClass(SUBJECT);
+ createEAttribute(subjectEClass, SUBJECT__SYSTEM);
+
+ prefixEClass = createEClass(PREFIX);
+
+ ifEClass = createEClass(IF);
+ createEAttribute(ifEClass, IF__EVENT);
+
+ whileEClass = createEClass(WHILE);
+ createEAttribute(whileEClass, WHILE__STATE);
+
+ predicateEClass = createEClass(PREDICATE);
+ createEAttribute(predicateEClass, PREDICATE__ACTION);
+
+ shallNotAllowEClass = createEClass(SHALL_NOT_ALLOW);
+ createEAttribute(shallNotAllowEClass, SHALL_NOT_ALLOW__ENTITY);
+ createEAttribute(shallNotAllowEClass, SHALL_NOT_ALLOW__ACTION_PERFORMED_BY_ENTITY);
+
+ shallAllowEClass = createEClass(SHALL_ALLOW);
+ createEAttribute(shallAllowEClass, SHALL_ALLOW__ENTITY);
+ createEAttribute(shallAllowEClass, SHALL_ALLOW__ACTION_PERFORMED_BY_ENTITY);
+
+ shallNotEClass = createEClass(SHALL_NOT);
+
+ shallEClass = createEClass(SHALL);
+ }
+
+ /**
+ * <!-- 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
+ ifEClass.getESuperTypes().add(this.getPrefix());
+ whileEClass.getESuperTypes().add(this.getPrefix());
+ shallNotAllowEClass.getESuperTypes().add(this.getPredicate());
+ shallAllowEClass.getESuperTypes().add(this.getPredicate());
+ shallNotEClass.getESuperTypes().add(this.getPredicate());
+ shallEClass.getESuperTypes().add(this.getPredicate());
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(modelEClass, Model.class, "Model", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getModel_Model(), this.getRequirement(), null, "model", null, 0, 1, Model.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(requirementEClass, Requirement.class, "Requirement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getRequirement_Prefix(), this.getPrefix(), null, "prefix", null, 0, 1, Requirement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getRequirement_System(), this.getSubject(), null, "system", null, 0, 1, Requirement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getRequirement_Predicate(), this.getPredicate(), null, "predicate", null, 0, 1, Requirement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(subjectEClass, Subject.class, "Subject", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getSubject_System(), ecorePackage.getEString(), "system", null, 0, 1, Subject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(prefixEClass, Prefix.class, "Prefix", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(ifEClass, If.class, "If", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getIf_Event(), ecorePackage.getEString(), "event", null, 0, -1, If.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(whileEClass, While.class, "While", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getWhile_State(), ecorePackage.getEString(), "state", null, 0, 1, While.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(predicateEClass, Predicate.class, "Predicate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getPredicate_Action(), ecorePackage.getEString(), "action", null, 0, 1, Predicate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(shallNotAllowEClass, ShallNotAllow.class, "ShallNotAllow", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getShallNotAllow_Entity(), ecorePackage.getEString(), "entity", null, 0, 1, ShallNotAllow.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getShallNotAllow_ActionPerformedByEntity(), ecorePackage.getEString(), "actionPerformedByEntity", null, 0, 1, ShallNotAllow.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(shallAllowEClass, ShallAllow.class, "ShallAllow", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getShallAllow_Entity(), ecorePackage.getEString(), "entity", null, 0, 1, ShallAllow.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getShallAllow_ActionPerformedByEntity(), ecorePackage.getEString(), "actionPerformedByEntity", null, 0, 1, ShallAllow.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(shallNotEClass, ShallNot.class, "ShallNot", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(shallEClass, Shall.class, "Shall", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ // Create resource
+ createResource(eNS_URI);
+ }
+
+} //BoilerplateTextPackageImpl
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/impl/IfImpl.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/impl/IfImpl.java
new file mode 100644
index 0000000..1c38013
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/impl/IfImpl.java
@@ -0,0 +1,177 @@
+/**
+ * ****************************************************************************
+ * Copyright (c) 2017 CEA LIST.
+ * *
+ * *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * *
+ * Contributors:
+ *
+ * Mauricio Alferez (mauricio.alferez@cea.fr) CEA LIST - Initial API and implementation
+ * *
+ * ****************************************************************************
+ *
+ * generated by Xtext 2.11.0
+ */
+package org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.util.EDataTypeEList;
+
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.BoilerplateTextPackage;
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.If;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>If</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.IfImpl#getEvent <em>Event</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class IfImpl extends PrefixImpl implements If
+{
+ /**
+ * The cached value of the '{@link #getEvent() <em>Event</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getEvent()
+ * @generated
+ * @ordered
+ */
+ protected EList<String> event;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IfImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return BoilerplateTextPackage.Literals.IF;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<String> getEvent()
+ {
+ if (event == null)
+ {
+ event = new EDataTypeEList<String>(String.class, this, BoilerplateTextPackage.IF__EVENT);
+ }
+ return event;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case BoilerplateTextPackage.IF__EVENT:
+ return getEvent();
+ }
+ 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 BoilerplateTextPackage.IF__EVENT:
+ getEvent().clear();
+ getEvent().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 BoilerplateTextPackage.IF__EVENT:
+ getEvent().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case BoilerplateTextPackage.IF__EVENT:
+ return event != null && !event.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(" (event: ");
+ result.append(event);
+ result.append(')');
+ return result.toString();
+ }
+
+} //IfImpl
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/impl/ModelImpl.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/impl/ModelImpl.java
new file mode 100644
index 0000000..11b35d6
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/impl/ModelImpl.java
@@ -0,0 +1,210 @@
+/**
+ * ****************************************************************************
+ * Copyright (c) 2017 CEA LIST.
+ * *
+ * *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * *
+ * Contributors:
+ *
+ * Mauricio Alferez (mauricio.alferez@cea.fr) CEA LIST - Initial API and implementation
+ * *
+ * ****************************************************************************
+ *
+ * generated by Xtext 2.11.0
+ */
+package org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl;
+
+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;
+
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.BoilerplateTextPackage;
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.Model;
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.Requirement;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Model</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.ModelImpl#getModel <em>Model</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ModelImpl extends MinimalEObjectImpl.Container implements Model
+{
+ /**
+ * The cached value of the '{@link #getModel() <em>Model</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getModel()
+ * @generated
+ * @ordered
+ */
+ protected Requirement model;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ModelImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return BoilerplateTextPackage.Literals.MODEL;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Requirement getModel()
+ {
+ return model;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetModel(Requirement newModel, NotificationChain msgs)
+ {
+ Requirement oldModel = model;
+ model = newModel;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, BoilerplateTextPackage.MODEL__MODEL, oldModel, newModel);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setModel(Requirement newModel)
+ {
+ if (newModel != model)
+ {
+ NotificationChain msgs = null;
+ if (model != null)
+ msgs = ((InternalEObject)model).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - BoilerplateTextPackage.MODEL__MODEL, null, msgs);
+ if (newModel != null)
+ msgs = ((InternalEObject)newModel).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - BoilerplateTextPackage.MODEL__MODEL, null, msgs);
+ msgs = basicSetModel(newModel, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, BoilerplateTextPackage.MODEL__MODEL, newModel, newModel));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case BoilerplateTextPackage.MODEL__MODEL:
+ return basicSetModel(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 BoilerplateTextPackage.MODEL__MODEL:
+ return getModel();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case BoilerplateTextPackage.MODEL__MODEL:
+ setModel((Requirement)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case BoilerplateTextPackage.MODEL__MODEL:
+ setModel((Requirement)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case BoilerplateTextPackage.MODEL__MODEL:
+ return model != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //ModelImpl
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/impl/PredicateImpl.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/impl/PredicateImpl.java
new file mode 100644
index 0000000..eb5ba7a
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/impl/PredicateImpl.java
@@ -0,0 +1,193 @@
+/**
+ * ****************************************************************************
+ * Copyright (c) 2017 CEA LIST.
+ * *
+ * *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * *
+ * Contributors:
+ *
+ * Mauricio Alferez (mauricio.alferez@cea.fr) CEA LIST - Initial API and implementation
+ * *
+ * ****************************************************************************
+ *
+ * generated by Xtext 2.11.0
+ */
+package org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl;
+
+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;
+
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.BoilerplateTextPackage;
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.Predicate;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Predicate</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.PredicateImpl#getAction <em>Action</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class PredicateImpl extends MinimalEObjectImpl.Container implements Predicate
+{
+ /**
+ * The default value of the '{@link #getAction() <em>Action</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAction()
+ * @generated
+ * @ordered
+ */
+ protected static final String ACTION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getAction() <em>Action</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAction()
+ * @generated
+ * @ordered
+ */
+ protected String action = ACTION_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PredicateImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return BoilerplateTextPackage.Literals.PREDICATE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getAction()
+ {
+ return action;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setAction(String newAction)
+ {
+ String oldAction = action;
+ action = newAction;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, BoilerplateTextPackage.PREDICATE__ACTION, oldAction, action));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case BoilerplateTextPackage.PREDICATE__ACTION:
+ return getAction();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case BoilerplateTextPackage.PREDICATE__ACTION:
+ setAction((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case BoilerplateTextPackage.PREDICATE__ACTION:
+ setAction(ACTION_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case BoilerplateTextPackage.PREDICATE__ACTION:
+ return ACTION_EDEFAULT == null ? action != null : !ACTION_EDEFAULT.equals(action);
+ }
+ 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(" (action: ");
+ result.append(action);
+ result.append(')');
+ return result.toString();
+ }
+
+} //PredicateImpl
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/impl/PrefixImpl.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/impl/PrefixImpl.java
new file mode 100644
index 0000000..230c5a2
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/impl/PrefixImpl.java
@@ -0,0 +1,58 @@
+/**
+ * ****************************************************************************
+ * Copyright (c) 2017 CEA LIST.
+ * *
+ * *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * *
+ * Contributors:
+ *
+ * Mauricio Alferez (mauricio.alferez@cea.fr) CEA LIST - Initial API and implementation
+ * *
+ * ****************************************************************************
+ *
+ * generated by Xtext 2.11.0
+ */
+package org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.BoilerplateTextPackage;
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.Prefix;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Prefix</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class PrefixImpl extends MinimalEObjectImpl.Container implements Prefix
+{
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PrefixImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return BoilerplateTextPackage.Literals.PREFIX;
+ }
+
+} //PrefixImpl
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/impl/RequirementImpl.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/impl/RequirementImpl.java
new file mode 100644
index 0000000..6048b83
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/impl/RequirementImpl.java
@@ -0,0 +1,354 @@
+/**
+ * ****************************************************************************
+ * Copyright (c) 2017 CEA LIST.
+ * *
+ * *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * *
+ * Contributors:
+ *
+ * Mauricio Alferez (mauricio.alferez@cea.fr) CEA LIST - Initial API and implementation
+ * *
+ * ****************************************************************************
+ *
+ * generated by Xtext 2.11.0
+ */
+package org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl;
+
+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;
+
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.BoilerplateTextPackage;
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.Predicate;
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.Prefix;
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.Requirement;
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.Subject;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Requirement</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.RequirementImpl#getPrefix <em>Prefix</em>}</li>
+ * <li>{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.RequirementImpl#getSystem <em>System</em>}</li>
+ * <li>{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.RequirementImpl#getPredicate <em>Predicate</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class RequirementImpl extends MinimalEObjectImpl.Container implements Requirement
+{
+ /**
+ * The cached value of the '{@link #getPrefix() <em>Prefix</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPrefix()
+ * @generated
+ * @ordered
+ */
+ protected Prefix prefix;
+
+ /**
+ * The cached value of the '{@link #getSystem() <em>System</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSystem()
+ * @generated
+ * @ordered
+ */
+ protected Subject system;
+
+ /**
+ * The cached value of the '{@link #getPredicate() <em>Predicate</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPredicate()
+ * @generated
+ * @ordered
+ */
+ protected Predicate predicate;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected RequirementImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return BoilerplateTextPackage.Literals.REQUIREMENT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Prefix getPrefix()
+ {
+ return prefix;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetPrefix(Prefix newPrefix, NotificationChain msgs)
+ {
+ Prefix oldPrefix = prefix;
+ prefix = newPrefix;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, BoilerplateTextPackage.REQUIREMENT__PREFIX, oldPrefix, newPrefix);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPrefix(Prefix newPrefix)
+ {
+ if (newPrefix != prefix)
+ {
+ NotificationChain msgs = null;
+ if (prefix != null)
+ msgs = ((InternalEObject)prefix).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - BoilerplateTextPackage.REQUIREMENT__PREFIX, null, msgs);
+ if (newPrefix != null)
+ msgs = ((InternalEObject)newPrefix).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - BoilerplateTextPackage.REQUIREMENT__PREFIX, null, msgs);
+ msgs = basicSetPrefix(newPrefix, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, BoilerplateTextPackage.REQUIREMENT__PREFIX, newPrefix, newPrefix));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Subject getSystem()
+ {
+ return system;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetSystem(Subject newSystem, NotificationChain msgs)
+ {
+ Subject oldSystem = system;
+ system = newSystem;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, BoilerplateTextPackage.REQUIREMENT__SYSTEM, oldSystem, newSystem);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSystem(Subject newSystem)
+ {
+ if (newSystem != system)
+ {
+ NotificationChain msgs = null;
+ if (system != null)
+ msgs = ((InternalEObject)system).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - BoilerplateTextPackage.REQUIREMENT__SYSTEM, null, msgs);
+ if (newSystem != null)
+ msgs = ((InternalEObject)newSystem).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - BoilerplateTextPackage.REQUIREMENT__SYSTEM, null, msgs);
+ msgs = basicSetSystem(newSystem, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, BoilerplateTextPackage.REQUIREMENT__SYSTEM, newSystem, newSystem));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Predicate getPredicate()
+ {
+ return predicate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetPredicate(Predicate newPredicate, NotificationChain msgs)
+ {
+ Predicate oldPredicate = predicate;
+ predicate = newPredicate;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, BoilerplateTextPackage.REQUIREMENT__PREDICATE, oldPredicate, newPredicate);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPredicate(Predicate newPredicate)
+ {
+ if (newPredicate != predicate)
+ {
+ NotificationChain msgs = null;
+ if (predicate != null)
+ msgs = ((InternalEObject)predicate).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - BoilerplateTextPackage.REQUIREMENT__PREDICATE, null, msgs);
+ if (newPredicate != null)
+ msgs = ((InternalEObject)newPredicate).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - BoilerplateTextPackage.REQUIREMENT__PREDICATE, null, msgs);
+ msgs = basicSetPredicate(newPredicate, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, BoilerplateTextPackage.REQUIREMENT__PREDICATE, newPredicate, newPredicate));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case BoilerplateTextPackage.REQUIREMENT__PREFIX:
+ return basicSetPrefix(null, msgs);
+ case BoilerplateTextPackage.REQUIREMENT__SYSTEM:
+ return basicSetSystem(null, msgs);
+ case BoilerplateTextPackage.REQUIREMENT__PREDICATE:
+ return basicSetPredicate(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 BoilerplateTextPackage.REQUIREMENT__PREFIX:
+ return getPrefix();
+ case BoilerplateTextPackage.REQUIREMENT__SYSTEM:
+ return getSystem();
+ case BoilerplateTextPackage.REQUIREMENT__PREDICATE:
+ return getPredicate();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case BoilerplateTextPackage.REQUIREMENT__PREFIX:
+ setPrefix((Prefix)newValue);
+ return;
+ case BoilerplateTextPackage.REQUIREMENT__SYSTEM:
+ setSystem((Subject)newValue);
+ return;
+ case BoilerplateTextPackage.REQUIREMENT__PREDICATE:
+ setPredicate((Predicate)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case BoilerplateTextPackage.REQUIREMENT__PREFIX:
+ setPrefix((Prefix)null);
+ return;
+ case BoilerplateTextPackage.REQUIREMENT__SYSTEM:
+ setSystem((Subject)null);
+ return;
+ case BoilerplateTextPackage.REQUIREMENT__PREDICATE:
+ setPredicate((Predicate)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case BoilerplateTextPackage.REQUIREMENT__PREFIX:
+ return prefix != null;
+ case BoilerplateTextPackage.REQUIREMENT__SYSTEM:
+ return system != null;
+ case BoilerplateTextPackage.REQUIREMENT__PREDICATE:
+ return predicate != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //RequirementImpl
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/impl/ShallAllowImpl.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/impl/ShallAllowImpl.java
new file mode 100644
index 0000000..a68bf1f
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/impl/ShallAllowImpl.java
@@ -0,0 +1,248 @@
+/**
+ * ****************************************************************************
+ * Copyright (c) 2017 CEA LIST.
+ * *
+ * *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * *
+ * Contributors:
+ *
+ * Mauricio Alferez (mauricio.alferez@cea.fr) CEA LIST - Initial API and implementation
+ * *
+ * ****************************************************************************
+ *
+ * generated by Xtext 2.11.0
+ */
+package org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.BoilerplateTextPackage;
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.ShallAllow;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Shall Allow</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.ShallAllowImpl#getEntity <em>Entity</em>}</li>
+ * <li>{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.ShallAllowImpl#getActionPerformedByEntity <em>Action Performed By Entity</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ShallAllowImpl extends PredicateImpl implements ShallAllow
+{
+ /**
+ * The default value of the '{@link #getEntity() <em>Entity</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getEntity()
+ * @generated
+ * @ordered
+ */
+ protected static final String ENTITY_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getEntity() <em>Entity</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getEntity()
+ * @generated
+ * @ordered
+ */
+ protected String entity = ENTITY_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getActionPerformedByEntity() <em>Action Performed By Entity</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getActionPerformedByEntity()
+ * @generated
+ * @ordered
+ */
+ protected static final String ACTION_PERFORMED_BY_ENTITY_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getActionPerformedByEntity() <em>Action Performed By Entity</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getActionPerformedByEntity()
+ * @generated
+ * @ordered
+ */
+ protected String actionPerformedByEntity = ACTION_PERFORMED_BY_ENTITY_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ShallAllowImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return BoilerplateTextPackage.Literals.SHALL_ALLOW;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getEntity()
+ {
+ return entity;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setEntity(String newEntity)
+ {
+ String oldEntity = entity;
+ entity = newEntity;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, BoilerplateTextPackage.SHALL_ALLOW__ENTITY, oldEntity, entity));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getActionPerformedByEntity()
+ {
+ return actionPerformedByEntity;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setActionPerformedByEntity(String newActionPerformedByEntity)
+ {
+ String oldActionPerformedByEntity = actionPerformedByEntity;
+ actionPerformedByEntity = newActionPerformedByEntity;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, BoilerplateTextPackage.SHALL_ALLOW__ACTION_PERFORMED_BY_ENTITY, oldActionPerformedByEntity, actionPerformedByEntity));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case BoilerplateTextPackage.SHALL_ALLOW__ENTITY:
+ return getEntity();
+ case BoilerplateTextPackage.SHALL_ALLOW__ACTION_PERFORMED_BY_ENTITY:
+ return getActionPerformedByEntity();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case BoilerplateTextPackage.SHALL_ALLOW__ENTITY:
+ setEntity((String)newValue);
+ return;
+ case BoilerplateTextPackage.SHALL_ALLOW__ACTION_PERFORMED_BY_ENTITY:
+ setActionPerformedByEntity((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case BoilerplateTextPackage.SHALL_ALLOW__ENTITY:
+ setEntity(ENTITY_EDEFAULT);
+ return;
+ case BoilerplateTextPackage.SHALL_ALLOW__ACTION_PERFORMED_BY_ENTITY:
+ setActionPerformedByEntity(ACTION_PERFORMED_BY_ENTITY_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case BoilerplateTextPackage.SHALL_ALLOW__ENTITY:
+ return ENTITY_EDEFAULT == null ? entity != null : !ENTITY_EDEFAULT.equals(entity);
+ case BoilerplateTextPackage.SHALL_ALLOW__ACTION_PERFORMED_BY_ENTITY:
+ return ACTION_PERFORMED_BY_ENTITY_EDEFAULT == null ? actionPerformedByEntity != null : !ACTION_PERFORMED_BY_ENTITY_EDEFAULT.equals(actionPerformedByEntity);
+ }
+ 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(" (entity: ");
+ result.append(entity);
+ result.append(", actionPerformedByEntity: ");
+ result.append(actionPerformedByEntity);
+ result.append(')');
+ return result.toString();
+ }
+
+} //ShallAllowImpl
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/impl/ShallImpl.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/impl/ShallImpl.java
new file mode 100644
index 0000000..e1e7364
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/impl/ShallImpl.java
@@ -0,0 +1,56 @@
+/**
+ * ****************************************************************************
+ * Copyright (c) 2017 CEA LIST.
+ * *
+ * *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * *
+ * Contributors:
+ *
+ * Mauricio Alferez (mauricio.alferez@cea.fr) CEA LIST - Initial API and implementation
+ * *
+ * ****************************************************************************
+ *
+ * generated by Xtext 2.11.0
+ */
+package org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.BoilerplateTextPackage;
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.Shall;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Shall</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class ShallImpl extends PredicateImpl implements Shall
+{
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ShallImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return BoilerplateTextPackage.Literals.SHALL;
+ }
+
+} //ShallImpl
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/impl/ShallNotAllowImpl.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/impl/ShallNotAllowImpl.java
new file mode 100644
index 0000000..5af70de
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/impl/ShallNotAllowImpl.java
@@ -0,0 +1,248 @@
+/**
+ * ****************************************************************************
+ * Copyright (c) 2017 CEA LIST.
+ * *
+ * *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * *
+ * Contributors:
+ *
+ * Mauricio Alferez (mauricio.alferez@cea.fr) CEA LIST - Initial API and implementation
+ * *
+ * ****************************************************************************
+ *
+ * generated by Xtext 2.11.0
+ */
+package org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.BoilerplateTextPackage;
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.ShallNotAllow;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Shall Not Allow</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.ShallNotAllowImpl#getEntity <em>Entity</em>}</li>
+ * <li>{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.ShallNotAllowImpl#getActionPerformedByEntity <em>Action Performed By Entity</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ShallNotAllowImpl extends PredicateImpl implements ShallNotAllow
+{
+ /**
+ * The default value of the '{@link #getEntity() <em>Entity</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getEntity()
+ * @generated
+ * @ordered
+ */
+ protected static final String ENTITY_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getEntity() <em>Entity</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getEntity()
+ * @generated
+ * @ordered
+ */
+ protected String entity = ENTITY_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getActionPerformedByEntity() <em>Action Performed By Entity</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getActionPerformedByEntity()
+ * @generated
+ * @ordered
+ */
+ protected static final String ACTION_PERFORMED_BY_ENTITY_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getActionPerformedByEntity() <em>Action Performed By Entity</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getActionPerformedByEntity()
+ * @generated
+ * @ordered
+ */
+ protected String actionPerformedByEntity = ACTION_PERFORMED_BY_ENTITY_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ShallNotAllowImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return BoilerplateTextPackage.Literals.SHALL_NOT_ALLOW;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getEntity()
+ {
+ return entity;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setEntity(String newEntity)
+ {
+ String oldEntity = entity;
+ entity = newEntity;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, BoilerplateTextPackage.SHALL_NOT_ALLOW__ENTITY, oldEntity, entity));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getActionPerformedByEntity()
+ {
+ return actionPerformedByEntity;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setActionPerformedByEntity(String newActionPerformedByEntity)
+ {
+ String oldActionPerformedByEntity = actionPerformedByEntity;
+ actionPerformedByEntity = newActionPerformedByEntity;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, BoilerplateTextPackage.SHALL_NOT_ALLOW__ACTION_PERFORMED_BY_ENTITY, oldActionPerformedByEntity, actionPerformedByEntity));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case BoilerplateTextPackage.SHALL_NOT_ALLOW__ENTITY:
+ return getEntity();
+ case BoilerplateTextPackage.SHALL_NOT_ALLOW__ACTION_PERFORMED_BY_ENTITY:
+ return getActionPerformedByEntity();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case BoilerplateTextPackage.SHALL_NOT_ALLOW__ENTITY:
+ setEntity((String)newValue);
+ return;
+ case BoilerplateTextPackage.SHALL_NOT_ALLOW__ACTION_PERFORMED_BY_ENTITY:
+ setActionPerformedByEntity((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case BoilerplateTextPackage.SHALL_NOT_ALLOW__ENTITY:
+ setEntity(ENTITY_EDEFAULT);
+ return;
+ case BoilerplateTextPackage.SHALL_NOT_ALLOW__ACTION_PERFORMED_BY_ENTITY:
+ setActionPerformedByEntity(ACTION_PERFORMED_BY_ENTITY_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case BoilerplateTextPackage.SHALL_NOT_ALLOW__ENTITY:
+ return ENTITY_EDEFAULT == null ? entity != null : !ENTITY_EDEFAULT.equals(entity);
+ case BoilerplateTextPackage.SHALL_NOT_ALLOW__ACTION_PERFORMED_BY_ENTITY:
+ return ACTION_PERFORMED_BY_ENTITY_EDEFAULT == null ? actionPerformedByEntity != null : !ACTION_PERFORMED_BY_ENTITY_EDEFAULT.equals(actionPerformedByEntity);
+ }
+ 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(" (entity: ");
+ result.append(entity);
+ result.append(", actionPerformedByEntity: ");
+ result.append(actionPerformedByEntity);
+ result.append(')');
+ return result.toString();
+ }
+
+} //ShallNotAllowImpl
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/impl/ShallNotImpl.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/impl/ShallNotImpl.java
new file mode 100644
index 0000000..7e2661d
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/impl/ShallNotImpl.java
@@ -0,0 +1,56 @@
+/**
+ * ****************************************************************************
+ * Copyright (c) 2017 CEA LIST.
+ * *
+ * *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * *
+ * Contributors:
+ *
+ * Mauricio Alferez (mauricio.alferez@cea.fr) CEA LIST - Initial API and implementation
+ * *
+ * ****************************************************************************
+ *
+ * generated by Xtext 2.11.0
+ */
+package org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.BoilerplateTextPackage;
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.ShallNot;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Shall Not</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class ShallNotImpl extends PredicateImpl implements ShallNot
+{
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ShallNotImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return BoilerplateTextPackage.Literals.SHALL_NOT;
+ }
+
+} //ShallNotImpl
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/impl/SubjectImpl.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/impl/SubjectImpl.java
new file mode 100644
index 0000000..2a81372
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/impl/SubjectImpl.java
@@ -0,0 +1,193 @@
+/**
+ * ****************************************************************************
+ * Copyright (c) 2017 CEA LIST.
+ * *
+ * *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * *
+ * Contributors:
+ *
+ * Mauricio Alferez (mauricio.alferez@cea.fr) CEA LIST - Initial API and implementation
+ * *
+ * ****************************************************************************
+ *
+ * generated by Xtext 2.11.0
+ */
+package org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl;
+
+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;
+
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.BoilerplateTextPackage;
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.Subject;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Subject</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.SubjectImpl#getSystem <em>System</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class SubjectImpl extends MinimalEObjectImpl.Container implements Subject
+{
+ /**
+ * The default value of the '{@link #getSystem() <em>System</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSystem()
+ * @generated
+ * @ordered
+ */
+ protected static final String SYSTEM_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getSystem() <em>System</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSystem()
+ * @generated
+ * @ordered
+ */
+ protected String system = SYSTEM_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SubjectImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return BoilerplateTextPackage.Literals.SUBJECT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSystem()
+ {
+ return system;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSystem(String newSystem)
+ {
+ String oldSystem = system;
+ system = newSystem;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, BoilerplateTextPackage.SUBJECT__SYSTEM, oldSystem, system));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case BoilerplateTextPackage.SUBJECT__SYSTEM:
+ return getSystem();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case BoilerplateTextPackage.SUBJECT__SYSTEM:
+ setSystem((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case BoilerplateTextPackage.SUBJECT__SYSTEM:
+ setSystem(SYSTEM_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case BoilerplateTextPackage.SUBJECT__SYSTEM:
+ return SYSTEM_EDEFAULT == null ? system != null : !SYSTEM_EDEFAULT.equals(system);
+ }
+ 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(" (system: ");
+ result.append(system);
+ result.append(')');
+ return result.toString();
+ }
+
+} //SubjectImpl
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/impl/WhileImpl.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/impl/WhileImpl.java
new file mode 100644
index 0000000..1c5837e
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/impl/WhileImpl.java
@@ -0,0 +1,192 @@
+/**
+ * ****************************************************************************
+ * Copyright (c) 2017 CEA LIST.
+ * *
+ * *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * *
+ * Contributors:
+ *
+ * Mauricio Alferez (mauricio.alferez@cea.fr) CEA LIST - Initial API and implementation
+ * *
+ * ****************************************************************************
+ *
+ * generated by Xtext 2.11.0
+ */
+package org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.BoilerplateTextPackage;
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.While;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>While</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.impl.WhileImpl#getState <em>State</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class WhileImpl extends PrefixImpl implements While
+{
+ /**
+ * The default value of the '{@link #getState() <em>State</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getState()
+ * @generated
+ * @ordered
+ */
+ protected static final String STATE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getState() <em>State</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getState()
+ * @generated
+ * @ordered
+ */
+ protected String state = STATE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected WhileImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return BoilerplateTextPackage.Literals.WHILE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getState()
+ {
+ return state;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setState(String newState)
+ {
+ String oldState = state;
+ state = newState;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, BoilerplateTextPackage.WHILE__STATE, oldState, state));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case BoilerplateTextPackage.WHILE__STATE:
+ return getState();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case BoilerplateTextPackage.WHILE__STATE:
+ setState((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case BoilerplateTextPackage.WHILE__STATE:
+ setState(STATE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case BoilerplateTextPackage.WHILE__STATE:
+ return STATE_EDEFAULT == null ? state != null : !STATE_EDEFAULT.equals(state);
+ }
+ 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(" (state: ");
+ result.append(state);
+ result.append(')');
+ return result.toString();
+ }
+
+} //WhileImpl
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/util/BoilerplateTextAdapterFactory.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/util/BoilerplateTextAdapterFactory.java
new file mode 100644
index 0000000..fec94d9
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/util/BoilerplateTextAdapterFactory.java
@@ -0,0 +1,348 @@
+/**
+ * ****************************************************************************
+ * Copyright (c) 2017 CEA LIST.
+ * *
+ * *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * *
+ * Contributors:
+ *
+ * Mauricio Alferez (mauricio.alferez@cea.fr) CEA LIST - Initial API and implementation
+ * *
+ * ****************************************************************************
+ *
+ * generated by Xtext 2.11.0
+ */
+package org.eclipse.papyrus.requirements.sysml14.boilerplateText.util;
+
+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;
+
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.*;
+
+/**
+ * <!-- 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.papyrus.requirements.sysml14.boilerplateText.BoilerplateTextPackage
+ * @generated
+ */
+public class BoilerplateTextAdapterFactory extends AdapterFactoryImpl
+{
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static BoilerplateTextPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BoilerplateTextAdapterFactory()
+ {
+ if (modelPackage == null)
+ {
+ modelPackage = BoilerplateTextPackage.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 BoilerplateTextSwitch<Adapter> modelSwitch =
+ new BoilerplateTextSwitch<Adapter>()
+ {
+ @Override
+ public Adapter caseModel(Model object)
+ {
+ return createModelAdapter();
+ }
+ @Override
+ public Adapter caseRequirement(Requirement object)
+ {
+ return createRequirementAdapter();
+ }
+ @Override
+ public Adapter caseSubject(Subject object)
+ {
+ return createSubjectAdapter();
+ }
+ @Override
+ public Adapter casePrefix(Prefix object)
+ {
+ return createPrefixAdapter();
+ }
+ @Override
+ public Adapter caseIf(If object)
+ {
+ return createIfAdapter();
+ }
+ @Override
+ public Adapter caseWhile(While object)
+ {
+ return createWhileAdapter();
+ }
+ @Override
+ public Adapter casePredicate(Predicate object)
+ {
+ return createPredicateAdapter();
+ }
+ @Override
+ public Adapter caseShallNotAllow(ShallNotAllow object)
+ {
+ return createShallNotAllowAdapter();
+ }
+ @Override
+ public Adapter caseShallAllow(ShallAllow object)
+ {
+ return createShallAllowAdapter();
+ }
+ @Override
+ public Adapter caseShallNot(ShallNot object)
+ {
+ return createShallNotAdapter();
+ }
+ @Override
+ public Adapter caseShall(Shall object)
+ {
+ return createShallAdapter();
+ }
+ @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.papyrus.requirements.sysml14.boilerplateText.Model <em>Model</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.papyrus.requirements.sysml14.boilerplateText.Model
+ * @generated
+ */
+ public Adapter createModelAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.Requirement <em>Requirement</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.papyrus.requirements.sysml14.boilerplateText.Requirement
+ * @generated
+ */
+ public Adapter createRequirementAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.Subject <em>Subject</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.papyrus.requirements.sysml14.boilerplateText.Subject
+ * @generated
+ */
+ public Adapter createSubjectAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.Prefix <em>Prefix</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.papyrus.requirements.sysml14.boilerplateText.Prefix
+ * @generated
+ */
+ public Adapter createPrefixAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.If <em>If</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.papyrus.requirements.sysml14.boilerplateText.If
+ * @generated
+ */
+ public Adapter createIfAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.While <em>While</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.papyrus.requirements.sysml14.boilerplateText.While
+ * @generated
+ */
+ public Adapter createWhileAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.Predicate <em>Predicate</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.papyrus.requirements.sysml14.boilerplateText.Predicate
+ * @generated
+ */
+ public Adapter createPredicateAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.ShallNotAllow <em>Shall Not Allow</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.papyrus.requirements.sysml14.boilerplateText.ShallNotAllow
+ * @generated
+ */
+ public Adapter createShallNotAllowAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.ShallAllow <em>Shall Allow</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.papyrus.requirements.sysml14.boilerplateText.ShallAllow
+ * @generated
+ */
+ public Adapter createShallAllowAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.ShallNot <em>Shall Not</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.papyrus.requirements.sysml14.boilerplateText.ShallNot
+ * @generated
+ */
+ public Adapter createShallNotAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.requirements.sysml14.boilerplateText.Shall <em>Shall</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.papyrus.requirements.sysml14.boilerplateText.Shall
+ * @generated
+ */
+ public Adapter createShallAdapter()
+ {
+ 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;
+ }
+
+} //BoilerplateTextAdapterFactory
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/util/BoilerplateTextSwitch.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/util/BoilerplateTextSwitch.java
new file mode 100644
index 0000000..5788bf5
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/boilerplateText/util/BoilerplateTextSwitch.java
@@ -0,0 +1,371 @@
+/**
+ * ****************************************************************************
+ * Copyright (c) 2017 CEA LIST.
+ * *
+ * *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * *
+ * Contributors:
+ *
+ * Mauricio Alferez (mauricio.alferez@cea.fr) CEA LIST - Initial API and implementation
+ * *
+ * ****************************************************************************
+ *
+ * generated by Xtext 2.11.0
+ */
+package org.eclipse.papyrus.requirements.sysml14.boilerplateText.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.*;
+
+/**
+ * <!-- 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.papyrus.requirements.sysml14.boilerplateText.BoilerplateTextPackage
+ * @generated
+ */
+public class BoilerplateTextSwitch<T> extends Switch<T>
+{
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static BoilerplateTextPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BoilerplateTextSwitch()
+ {
+ if (modelPackage == null)
+ {
+ modelPackage = BoilerplateTextPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param 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 BoilerplateTextPackage.MODEL:
+ {
+ Model model = (Model)theEObject;
+ T result = caseModel(model);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case BoilerplateTextPackage.REQUIREMENT:
+ {
+ Requirement requirement = (Requirement)theEObject;
+ T result = caseRequirement(requirement);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case BoilerplateTextPackage.SUBJECT:
+ {
+ Subject subject = (Subject)theEObject;
+ T result = caseSubject(subject);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case BoilerplateTextPackage.PREFIX:
+ {
+ Prefix prefix = (Prefix)theEObject;
+ T result = casePrefix(prefix);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case BoilerplateTextPackage.IF:
+ {
+ If if_ = (If)theEObject;
+ T result = caseIf(if_);
+ if (result == null) result = casePrefix(if_);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case BoilerplateTextPackage.WHILE:
+ {
+ While while_ = (While)theEObject;
+ T result = caseWhile(while_);
+ if (result == null) result = casePrefix(while_);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case BoilerplateTextPackage.PREDICATE:
+ {
+ Predicate predicate = (Predicate)theEObject;
+ T result = casePredicate(predicate);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case BoilerplateTextPackage.SHALL_NOT_ALLOW:
+ {
+ ShallNotAllow shallNotAllow = (ShallNotAllow)theEObject;
+ T result = caseShallNotAllow(shallNotAllow);
+ if (result == null) result = casePredicate(shallNotAllow);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case BoilerplateTextPackage.SHALL_ALLOW:
+ {
+ ShallAllow shallAllow = (ShallAllow)theEObject;
+ T result = caseShallAllow(shallAllow);
+ if (result == null) result = casePredicate(shallAllow);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case BoilerplateTextPackage.SHALL_NOT:
+ {
+ ShallNot shallNot = (ShallNot)theEObject;
+ T result = caseShallNot(shallNot);
+ if (result == null) result = casePredicate(shallNot);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case BoilerplateTextPackage.SHALL:
+ {
+ Shall shall = (Shall)theEObject;
+ T result = caseShall(shall);
+ if (result == null) result = casePredicate(shall);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Model</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>Model</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseModel(Model object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Requirement</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>Requirement</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseRequirement(Requirement object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Subject</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>Subject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSubject(Subject object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Prefix</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>Prefix</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePrefix(Prefix object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>If</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>If</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseIf(If object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>While</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>While</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseWhile(While object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Predicate</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>Predicate</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePredicate(Predicate object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Shall Not Allow</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>Shall Not Allow</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseShallNotAllow(ShallNotAllow object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Shall Allow</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>Shall Allow</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseShallAllow(ShallAllow object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Shall Not</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>Shall Not</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseShallNot(ShallNot object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Shall</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>Shall</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseShall(Shall 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;
+ }
+
+} //BoilerplateTextSwitch
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/parser/antlr/BoilerplateTextAntlrTokenFileProvider.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/parser/antlr/BoilerplateTextAntlrTokenFileProvider.java
new file mode 100644
index 0000000..c79d689
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/parser/antlr/BoilerplateTextAntlrTokenFileProvider.java
@@ -0,0 +1,30 @@
+/*****************************************************************************
+ * Copyright (c) 2017 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *
+ * Mauricio Alferez (mauricio.alferez@cea.fr) CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+/*
+ * generated by Xtext 2.11.0
+ */
+package org.eclipse.papyrus.requirements.sysml14.parser.antlr;
+
+import java.io.InputStream;
+import org.eclipse.xtext.parser.antlr.IAntlrTokenFileProvider;
+
+public class BoilerplateTextAntlrTokenFileProvider implements IAntlrTokenFileProvider {
+
+ @Override
+ public InputStream getAntlrTokenFile() {
+ ClassLoader classLoader = getClass().getClassLoader();
+ return classLoader.getResourceAsStream("org/eclipse/papyrus/requirements/sysml14/parser/antlr/internal/InternalBoilerplateText.tokens");
+ }
+}
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/parser/antlr/BoilerplateTextParser.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/parser/antlr/BoilerplateTextParser.java
new file mode 100644
index 0000000..c17382a
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/parser/antlr/BoilerplateTextParser.java
@@ -0,0 +1,54 @@
+/*****************************************************************************
+ * Copyright (c) 2017 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *
+ * Mauricio Alferez (mauricio.alferez@cea.fr) CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+/*
+ * generated by Xtext 2.11.0
+ */
+package org.eclipse.papyrus.requirements.sysml14.parser.antlr;
+
+import com.google.inject.Inject;
+import org.eclipse.papyrus.requirements.sysml14.parser.antlr.internal.InternalBoilerplateTextParser;
+import org.eclipse.papyrus.requirements.sysml14.services.BoilerplateTextGrammarAccess;
+import org.eclipse.xtext.parser.antlr.AbstractAntlrParser;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+
+public class BoilerplateTextParser extends AbstractAntlrParser {
+
+ @Inject
+ private BoilerplateTextGrammarAccess grammarAccess;
+
+ @Override
+ protected void setInitialHiddenTokens(XtextTokenStream tokenStream) {
+ tokenStream.setInitialHiddenTokens("RULE_WS", "RULE_ML_COMMENT", "RULE_SL_COMMENT");
+ }
+
+
+ @Override
+ protected InternalBoilerplateTextParser createParser(XtextTokenStream stream) {
+ return new InternalBoilerplateTextParser(stream, getGrammarAccess());
+ }
+
+ @Override
+ protected String getDefaultRuleName() {
+ return "Model";
+ }
+
+ public BoilerplateTextGrammarAccess getGrammarAccess() {
+ return this.grammarAccess;
+ }
+
+ public void setGrammarAccess(BoilerplateTextGrammarAccess grammarAccess) {
+ this.grammarAccess = grammarAccess;
+ }
+}
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/parser/antlr/internal/InternalBoilerplateText.g b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/parser/antlr/internal/InternalBoilerplateText.g
new file mode 100644
index 0000000..6ab4e27
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/parser/antlr/internal/InternalBoilerplateText.g
@@ -0,0 +1,763 @@
+/*****************************************************************************
+ * Copyright (c) 2017 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *
+ * Mauricio Alferez (mauricio.alferez@cea.fr) CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+/*
+ * generated by Xtext 2.11.0
+ */
+grammar InternalBoilerplateText;
+
+options {
+ superClass=AbstractInternalAntlrParser;
+}
+
+@lexer::header {
+package org.eclipse.papyrus.requirements.sysml14.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.papyrus.requirements.sysml14.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.papyrus.requirements.sysml14.services.BoilerplateTextGrammarAccess;
+
+}
+
+@parser::members {
+
+ private BoilerplateTextGrammarAccess grammarAccess;
+
+ public InternalBoilerplateTextParser(TokenStream input, BoilerplateTextGrammarAccess grammarAccess) {
+ this(input);
+ this.grammarAccess = grammarAccess;
+ registerRules(grammarAccess.getGrammar());
+ }
+
+ @Override
+ protected String getFirstRuleName() {
+ return "Model";
+ }
+
+ @Override
+ protected BoilerplateTextGrammarAccess getGrammarAccess() {
+ return grammarAccess;
+ }
+
+}
+
+@rulecatch {
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+}
+
+// Entry rule entryRuleModel
+entryRuleModel returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getModelRule()); }
+ iv_ruleModel=ruleModel
+ { $current=$iv_ruleModel.current; }
+ EOF;
+
+// Rule Model
+ruleModel returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getModelAccess().getModelRequirementParserRuleCall_0());
+ }
+ lv_model_0_0=ruleRequirement
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getModelRule());
+ }
+ set(
+ $current,
+ "model",
+ lv_model_0_0,
+ "org.eclipse.papyrus.requirements.sysml14.BoilerplateText.Requirement");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+;
+
+// Entry rule entryRuleRequirement
+entryRuleRequirement returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getRequirementRule()); }
+ iv_ruleRequirement=ruleRequirement
+ { $current=$iv_ruleRequirement.current; }
+ EOF;
+
+// Rule Requirement
+ruleRequirement returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ (
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getRequirementAccess().getPrefixPrefixParserRuleCall_0_0_0());
+ }
+ lv_prefix_0_0=rulePrefix
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getRequirementRule());
+ }
+ set(
+ $current,
+ "prefix",
+ lv_prefix_0_0,
+ "org.eclipse.papyrus.requirements.sysml14.BoilerplateText.Prefix");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ otherlv_1=','
+ {
+ newLeafNode(otherlv_1, grammarAccess.getRequirementAccess().getCommaKeyword_0_1());
+ }
+ )?
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getRequirementAccess().getSystemSubjectParserRuleCall_1_0());
+ }
+ lv_system_2_0=ruleSubject
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getRequirementRule());
+ }
+ set(
+ $current,
+ "system",
+ lv_system_2_0,
+ "org.eclipse.papyrus.requirements.sysml14.BoilerplateText.Subject");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ (
+ (
+ {
+ newCompositeNode(grammarAccess.getRequirementAccess().getPredicatePredicateParserRuleCall_2_0());
+ }
+ lv_predicate_3_0=rulePredicate
+ {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getRequirementRule());
+ }
+ set(
+ $current,
+ "predicate",
+ lv_predicate_3_0,
+ "org.eclipse.papyrus.requirements.sysml14.BoilerplateText.Predicate");
+ afterParserOrEnumRuleCall();
+ }
+ )
+ )
+ )
+;
+
+// Entry rule entryRuleSubject
+entryRuleSubject returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getSubjectRule()); }
+ iv_ruleSubject=ruleSubject
+ { $current=$iv_ruleSubject.current; }
+ EOF;
+
+// Rule Subject
+ruleSubject returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ (
+ lv_system_0_0=RULE_STRING
+ {
+ newLeafNode(lv_system_0_0, grammarAccess.getSubjectAccess().getSystemSTRINGTerminalRuleCall_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getSubjectRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "system",
+ lv_system_0_0,
+ "org.eclipse.xtext.common.Terminals.STRING");
+ }
+ )
+ )
+;
+
+// Entry rule entryRulePrefix
+entryRulePrefix returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getPrefixRule()); }
+ iv_rulePrefix=rulePrefix
+ { $current=$iv_rulePrefix.current; }
+ EOF;
+
+// Rule Prefix
+rulePrefix returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ {
+ newCompositeNode(grammarAccess.getPrefixAccess().getIfParserRuleCall_0());
+ }
+ this_If_0=ruleIf
+ {
+ $current = $this_If_0.current;
+ afterParserOrEnumRuleCall();
+ }
+ |
+ {
+ newCompositeNode(grammarAccess.getPrefixAccess().getWhileParserRuleCall_1());
+ }
+ this_While_1=ruleWhile
+ {
+ $current = $this_While_1.current;
+ afterParserOrEnumRuleCall();
+ }
+ )
+;
+
+// Entry rule entryRuleIf
+entryRuleIf returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getIfRule()); }
+ iv_ruleIf=ruleIf
+ { $current=$iv_ruleIf.current; }
+ EOF;
+
+// Rule If
+ruleIf returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ otherlv_0='if'
+ {
+ newLeafNode(otherlv_0, grammarAccess.getIfAccess().getIfKeyword_0());
+ }
+ (
+ (
+ lv_event_1_0=RULE_STRING
+ {
+ newLeafNode(lv_event_1_0, grammarAccess.getIfAccess().getEventSTRINGTerminalRuleCall_1_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getIfRule());
+ }
+ addWithLastConsumed(
+ $current,
+ "event",
+ lv_event_1_0,
+ "org.eclipse.xtext.common.Terminals.STRING");
+ }
+ )
+ )
+ (
+ otherlv_2='and'
+ {
+ newLeafNode(otherlv_2, grammarAccess.getIfAccess().getAndKeyword_2_0());
+ }
+ (
+ (
+ lv_event_3_0=RULE_STRING
+ {
+ newLeafNode(lv_event_3_0, grammarAccess.getIfAccess().getEventSTRINGTerminalRuleCall_2_1_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getIfRule());
+ }
+ addWithLastConsumed(
+ $current,
+ "event",
+ lv_event_3_0,
+ "org.eclipse.xtext.common.Terminals.STRING");
+ }
+ )
+ )
+ )*
+ )
+;
+
+// Entry rule entryRuleWhile
+entryRuleWhile returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getWhileRule()); }
+ iv_ruleWhile=ruleWhile
+ { $current=$iv_ruleWhile.current; }
+ EOF;
+
+// Rule While
+ruleWhile returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ otherlv_0='while'
+ {
+ newLeafNode(otherlv_0, grammarAccess.getWhileAccess().getWhileKeyword_0());
+ }
+ (
+ (
+ lv_state_1_0=RULE_STRING
+ {
+ newLeafNode(lv_state_1_0, grammarAccess.getWhileAccess().getStateSTRINGTerminalRuleCall_1_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getWhileRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "state",
+ lv_state_1_0,
+ "org.eclipse.xtext.common.Terminals.STRING");
+ }
+ )
+ )
+ )
+;
+
+// Entry rule entryRulePredicate
+entryRulePredicate returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getPredicateRule()); }
+ iv_rulePredicate=rulePredicate
+ { $current=$iv_rulePredicate.current; }
+ EOF;
+
+// Rule Predicate
+rulePredicate returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ {
+ newCompositeNode(grammarAccess.getPredicateAccess().getShallParserRuleCall_0());
+ }
+ this_Shall_0=ruleShall
+ {
+ $current = $this_Shall_0.current;
+ afterParserOrEnumRuleCall();
+ }
+ |
+ {
+ newCompositeNode(grammarAccess.getPredicateAccess().getShallNotParserRuleCall_1());
+ }
+ this_ShallNot_1=ruleShallNot
+ {
+ $current = $this_ShallNot_1.current;
+ afterParserOrEnumRuleCall();
+ }
+ |
+ {
+ newCompositeNode(grammarAccess.getPredicateAccess().getShallAllowParserRuleCall_2());
+ }
+ this_ShallAllow_2=ruleShallAllow
+ {
+ $current = $this_ShallAllow_2.current;
+ afterParserOrEnumRuleCall();
+ }
+ |
+ {
+ newCompositeNode(grammarAccess.getPredicateAccess().getShallNotAllowParserRuleCall_3());
+ }
+ this_ShallNotAllow_3=ruleShallNotAllow
+ {
+ $current = $this_ShallNotAllow_3.current;
+ afterParserOrEnumRuleCall();
+ }
+ )
+;
+
+// Entry rule entryRuleShallNotAllow
+entryRuleShallNotAllow returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getShallNotAllowRule()); }
+ iv_ruleShallNotAllow=ruleShallNotAllow
+ { $current=$iv_ruleShallNotAllow.current; }
+ EOF;
+
+// Rule ShallNotAllow
+ruleShallNotAllow returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ otherlv_0='shall'
+ {
+ newLeafNode(otherlv_0, grammarAccess.getShallNotAllowAccess().getShallKeyword_0());
+ }
+ (
+ ('not')=>
+ otherlv_1='not'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getShallNotAllowAccess().getNotKeyword_1());
+ }
+ )
+ (
+ ('allow')=>
+ otherlv_2='allow'
+ {
+ newLeafNode(otherlv_2, grammarAccess.getShallNotAllowAccess().getAllowKeyword_2());
+ }
+ )
+ (
+ (
+ (
+ lv_action_3_0=RULE_STRING
+ {
+ newLeafNode(lv_action_3_0, grammarAccess.getShallNotAllowAccess().getActionSTRINGTerminalRuleCall_3_0_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getShallNotAllowRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "action",
+ lv_action_3_0,
+ "org.eclipse.xtext.common.Terminals.STRING");
+ }
+ )
+ )
+ |
+ (
+ (
+ (
+ lv_entity_4_0=RULE_STRING
+ {
+ newLeafNode(lv_entity_4_0, grammarAccess.getShallNotAllowAccess().getEntitySTRINGTerminalRuleCall_3_1_0_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getShallNotAllowRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "entity",
+ lv_entity_4_0,
+ "org.eclipse.xtext.common.Terminals.STRING");
+ }
+ )
+ )
+ otherlv_5='to'
+ {
+ newLeafNode(otherlv_5, grammarAccess.getShallNotAllowAccess().getToKeyword_3_1_1());
+ }
+ (
+ (
+ lv_actionPerformedByEntity_6_0=RULE_STRING
+ {
+ newLeafNode(lv_actionPerformedByEntity_6_0, grammarAccess.getShallNotAllowAccess().getActionPerformedByEntitySTRINGTerminalRuleCall_3_1_2_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getShallNotAllowRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "actionPerformedByEntity",
+ lv_actionPerformedByEntity_6_0,
+ "org.eclipse.xtext.common.Terminals.STRING");
+ }
+ )
+ )
+ )
+ )
+ )
+;
+
+// Entry rule entryRuleShallAllow
+entryRuleShallAllow returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getShallAllowRule()); }
+ iv_ruleShallAllow=ruleShallAllow
+ { $current=$iv_ruleShallAllow.current; }
+ EOF;
+
+// Rule ShallAllow
+ruleShallAllow returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ otherlv_0='shall'
+ {
+ newLeafNode(otherlv_0, grammarAccess.getShallAllowAccess().getShallKeyword_0());
+ }
+ (
+ ('allow')=>
+ otherlv_1='allow'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getShallAllowAccess().getAllowKeyword_1());
+ }
+ )
+ (
+ (
+ (
+ lv_action_2_0=RULE_STRING
+ {
+ newLeafNode(lv_action_2_0, grammarAccess.getShallAllowAccess().getActionSTRINGTerminalRuleCall_2_0_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getShallAllowRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "action",
+ lv_action_2_0,
+ "org.eclipse.xtext.common.Terminals.STRING");
+ }
+ )
+ )
+ |
+ (
+ (
+ (
+ lv_entity_3_0=RULE_STRING
+ {
+ newLeafNode(lv_entity_3_0, grammarAccess.getShallAllowAccess().getEntitySTRINGTerminalRuleCall_2_1_0_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getShallAllowRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "entity",
+ lv_entity_3_0,
+ "org.eclipse.xtext.common.Terminals.STRING");
+ }
+ )
+ )
+ otherlv_4='to'
+ {
+ newLeafNode(otherlv_4, grammarAccess.getShallAllowAccess().getToKeyword_2_1_1());
+ }
+ (
+ (
+ lv_actionPerformedByEntity_5_0=RULE_STRING
+ {
+ newLeafNode(lv_actionPerformedByEntity_5_0, grammarAccess.getShallAllowAccess().getActionPerformedByEntitySTRINGTerminalRuleCall_2_1_2_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getShallAllowRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "actionPerformedByEntity",
+ lv_actionPerformedByEntity_5_0,
+ "org.eclipse.xtext.common.Terminals.STRING");
+ }
+ )
+ )
+ )
+ )
+ )
+;
+
+// Entry rule entryRuleShallNot
+entryRuleShallNot returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getShallNotRule()); }
+ iv_ruleShallNot=ruleShallNot
+ { $current=$iv_ruleShallNot.current; }
+ EOF;
+
+// Rule ShallNot
+ruleShallNot returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ otherlv_0='shall'
+ {
+ newLeafNode(otherlv_0, grammarAccess.getShallNotAccess().getShallKeyword_0());
+ }
+ (
+ ('not')=>
+ otherlv_1='not'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getShallNotAccess().getNotKeyword_1());
+ }
+ )
+ (
+ otherlv_2='be'
+ {
+ newLeafNode(otherlv_2, grammarAccess.getShallNotAccess().getBeKeyword_2_0());
+ }
+ (
+ ('able')=>
+ otherlv_3='able'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getShallNotAccess().getAbleKeyword_2_1());
+ }
+ )
+ (
+ ('to')=>
+ otherlv_4='to'
+ {
+ newLeafNode(otherlv_4, grammarAccess.getShallNotAccess().getToKeyword_2_2());
+ }
+ )
+ )?
+ (
+ (
+ lv_action_5_0=RULE_STRING
+ {
+ newLeafNode(lv_action_5_0, grammarAccess.getShallNotAccess().getActionSTRINGTerminalRuleCall_3_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getShallNotRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "action",
+ lv_action_5_0,
+ "org.eclipse.xtext.common.Terminals.STRING");
+ }
+ )
+ )
+ )
+;
+
+// Entry rule entryRuleShall
+entryRuleShall returns [EObject current=null]:
+ { newCompositeNode(grammarAccess.getShallRule()); }
+ iv_ruleShall=ruleShall
+ { $current=$iv_ruleShall.current; }
+ EOF;
+
+// Rule Shall
+ruleShall returns [EObject current=null]
+@init {
+ enterRule();
+}
+@after {
+ leaveRule();
+}:
+ (
+ otherlv_0='shall'
+ {
+ newLeafNode(otherlv_0, grammarAccess.getShallAccess().getShallKeyword_0());
+ }
+ (
+ ('be')=>
+ (
+ otherlv_1='be'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getShallAccess().getBeKeyword_1_0_0());
+ }
+ (
+ ('able')=>
+ otherlv_2='able'
+ {
+ newLeafNode(otherlv_2, grammarAccess.getShallAccess().getAbleKeyword_1_0_1());
+ }
+ )
+ (
+ ('to')=>
+ otherlv_3='to'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getShallAccess().getToKeyword_1_0_2());
+ }
+ )
+ )
+ )?
+ (
+ (
+ lv_action_4_0=RULE_STRING
+ {
+ newLeafNode(lv_action_4_0, grammarAccess.getShallAccess().getActionSTRINGTerminalRuleCall_2_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getShallRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "action",
+ lv_action_4_0,
+ "org.eclipse.xtext.common.Terminals.STRING");
+ }
+ )
+ )
+ )
+;
+
+RULE_ID : '^'? ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*;
+
+RULE_INT : ('0'..'9')+;
+
+RULE_STRING : ('"' ('\\' .|~(('\\'|'"')))* '"'|'\'' ('\\' .|~(('\\'|'\'')))* '\'');
+
+RULE_ML_COMMENT : '/*' ( options {greedy=false;} : . )*'*/';
+
+RULE_SL_COMMENT : '//' ~(('\n'|'\r'))* ('\r'? '\n')?;
+
+RULE_WS : (' '|'\t'|'\r'|'\n')+;
+
+RULE_ANY_OTHER : .;
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/parser/antlr/internal/InternalBoilerplateText.tokens b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/parser/antlr/internal/InternalBoilerplateText.tokens
new file mode 100644
index 0000000..629db52
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/parser/antlr/internal/InternalBoilerplateText.tokens
@@ -0,0 +1,27 @@
+','=11
+'able'=20
+'allow'=17
+'and'=13
+'be'=19
+'if'=12
+'not'=16
+'shall'=15
+'to'=18
+'while'=14
+RULE_ANY_OTHER=10
+RULE_ID=5
+RULE_INT=6
+RULE_ML_COMMENT=7
+RULE_SL_COMMENT=8
+RULE_STRING=4
+RULE_WS=9
+T__11=11
+T__12=12
+T__13=13
+T__14=14
+T__15=15
+T__16=16
+T__17=17
+T__18=18
+T__19=19
+T__20=20
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/parser/antlr/internal/InternalBoilerplateTextLexer.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/parser/antlr/internal/InternalBoilerplateTextLexer.java
new file mode 100644
index 0000000..f17d3cc
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/parser/antlr/internal/InternalBoilerplateTextLexer.java
@@ -0,0 +1,1058 @@
+package org.eclipse.papyrus.requirements.sysml14.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 InternalBoilerplateTextLexer extends Lexer {
+ public static final int RULE_STRING=4;
+ public static final int RULE_SL_COMMENT=8;
+ public static final int T__19=19;
+ public static final int T__15=15;
+ public static final int T__16=16;
+ public static final int T__17=17;
+ public static final int T__18=18;
+ public static final int T__11=11;
+ public static final int T__12=12;
+ public static final int T__13=13;
+ public static final int T__14=14;
+ public static final int EOF=-1;
+ public static final int RULE_ID=5;
+ public static final int RULE_WS=9;
+ public static final int RULE_ANY_OTHER=10;
+ public static final int RULE_INT=6;
+ public static final int RULE_ML_COMMENT=7;
+ public static final int T__20=20;
+
+ // delegates
+ // delegators
+
+ public InternalBoilerplateTextLexer() {;}
+ public InternalBoilerplateTextLexer(CharStream input) {
+ this(input, new RecognizerSharedState());
+ }
+ public InternalBoilerplateTextLexer(CharStream input, RecognizerSharedState state) {
+ super(input,state);
+
+ }
+ public String getGrammarFileName() { return "InternalBoilerplateText.g"; }
+
+ // $ANTLR start "T__11"
+ public final void mT__11() throws RecognitionException {
+ try {
+ int _type = T__11;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalBoilerplateText.g:11:7: ( ',' )
+ // InternalBoilerplateText.g:11:9: ','
+ {
+ match(',');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__11"
+
+ // $ANTLR start "T__12"
+ public final void mT__12() throws RecognitionException {
+ try {
+ int _type = T__12;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalBoilerplateText.g:12:7: ( 'if' )
+ // InternalBoilerplateText.g:12:9: 'if'
+ {
+ match("if");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__12"
+
+ // $ANTLR start "T__13"
+ public final void mT__13() throws RecognitionException {
+ try {
+ int _type = T__13;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalBoilerplateText.g:13:7: ( 'and' )
+ // InternalBoilerplateText.g:13:9: 'and'
+ {
+ match("and");
+
+
+ }
+
+ 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;
+ // InternalBoilerplateText.g:14:7: ( 'while' )
+ // InternalBoilerplateText.g:14:9: 'while'
+ {
+ match("while");
+
+
+ }
+
+ 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;
+ // InternalBoilerplateText.g:15:7: ( 'shall' )
+ // InternalBoilerplateText.g:15:9: 'shall'
+ {
+ match("shall");
+
+
+ }
+
+ 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;
+ // InternalBoilerplateText.g:16:7: ( 'not' )
+ // InternalBoilerplateText.g:16:9: 'not'
+ {
+ match("not");
+
+
+ }
+
+ 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;
+ // InternalBoilerplateText.g:17:7: ( 'allow' )
+ // InternalBoilerplateText.g:17:9: 'allow'
+ {
+ match("allow");
+
+
+ }
+
+ 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;
+ // InternalBoilerplateText.g:18:7: ( 'to' )
+ // InternalBoilerplateText.g:18:9: 'to'
+ {
+ match("to");
+
+
+ }
+
+ 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;
+ // InternalBoilerplateText.g:19:7: ( 'be' )
+ // InternalBoilerplateText.g:19:9: 'be'
+ {
+ match("be");
+
+
+ }
+
+ 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;
+ // InternalBoilerplateText.g:20:7: ( 'able' )
+ // InternalBoilerplateText.g:20:9: 'able'
+ {
+ match("able");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__20"
+
+ // $ANTLR start "RULE_ID"
+ public final void mRULE_ID() throws RecognitionException {
+ try {
+ int _type = RULE_ID;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // InternalBoilerplateText.g:751:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
+ // InternalBoilerplateText.g:751:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+ {
+ // InternalBoilerplateText.g:751:11: ( '^' )?
+ int alt1=2;
+ int LA1_0 = input.LA(1);
+
+ if ( (LA1_0=='^') ) {
+ alt1=1;
+ }
+ switch (alt1) {
+ case 1 :
+ // InternalBoilerplateText.g:751: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;}
+
+ // InternalBoilerplateText.g:751:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+ loop2:
+ do {
+ int alt2=2;
+ int LA2_0 = input.LA(1);
+
+ if ( ((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 :
+ // InternalBoilerplateText.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 loop2;
+ }
+ } 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;
+ // InternalBoilerplateText.g:753:10: ( ( '0' .. '9' )+ )
+ // InternalBoilerplateText.g:753:12: ( '0' .. '9' )+
+ {
+ // InternalBoilerplateText.g:753:12: ( '0' .. '9' )+
+ int cnt3=0;
+ loop3:
+ do {
+ int alt3=2;
+ int LA3_0 = input.LA(1);
+
+ if ( ((LA3_0>='0' && LA3_0<='9')) ) {
+ alt3=1;
+ }
+
+
+ switch (alt3) {
+ case 1 :
+ // InternalBoilerplateText.g:753:13: '0' .. '9'
+ {
+ matchRange('0','9');
+
+ }
+ break;
+
+ default :
+ if ( cnt3 >= 1 ) break loop3;
+ EarlyExitException eee =
+ new EarlyExitException(3, input);
+ throw eee;
+ }
+ cnt3++;
+ } 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;
+ // InternalBoilerplateText.g:755:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
+ // InternalBoilerplateText.g:755:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+ {
+ // InternalBoilerplateText.g:755:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+ int alt6=2;
+ int LA6_0 = input.LA(1);
+
+ if ( (LA6_0=='\"') ) {
+ alt6=1;
+ }
+ else if ( (LA6_0=='\'') ) {
+ alt6=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 6, 0, input);
+
+ throw nvae;
+ }
+ switch (alt6) {
+ case 1 :
+ // InternalBoilerplateText.g:755:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
+ {
+ match('\"');
+ // InternalBoilerplateText.g:755:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
+ loop4:
+ do {
+ int alt4=3;
+ int LA4_0 = input.LA(1);
+
+ if ( (LA4_0=='\\') ) {
+ alt4=1;
+ }
+ else if ( ((LA4_0>='\u0000' && LA4_0<='!')||(LA4_0>='#' && LA4_0<='[')||(LA4_0>=']' && LA4_0<='\uFFFF')) ) {
+ alt4=2;
+ }
+
+
+ switch (alt4) {
+ case 1 :
+ // InternalBoilerplateText.g:755:21: '\\\\' .
+ {
+ match('\\');
+ matchAny();
+
+ }
+ break;
+ case 2 :
+ // InternalBoilerplateText.g:755:28: ~ ( ( '\\\\' | '\"' ) )
+ {
+ 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 loop4;
+ }
+ } while (true);
+
+ match('\"');
+
+ }
+ break;
+ case 2 :
+ // InternalBoilerplateText.g:755:48: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
+ {
+ match('\'');
+ // InternalBoilerplateText.g:755:53: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
+ loop5:
+ do {
+ int alt5=3;
+ int LA5_0 = input.LA(1);
+
+ if ( (LA5_0=='\\') ) {
+ alt5=1;
+ }
+ else if ( ((LA5_0>='\u0000' && LA5_0<='&')||(LA5_0>='(' && LA5_0<='[')||(LA5_0>=']' && LA5_0<='\uFFFF')) ) {
+ alt5=2;
+ }
+
+
+ switch (alt5) {
+ case 1 :
+ // InternalBoilerplateText.g:755:54: '\\\\' .
+ {
+ match('\\');
+ matchAny();
+
+ }
+ break;
+ case 2 :
+ // InternalBoilerplateText.g:755:61: ~ ( ( '\\\\' | '\\'' ) )
+ {
+ 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 loop5;
+ }
+ } 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;
+ // InternalBoilerplateText.g:757:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+ // InternalBoilerplateText.g:757:19: '/*' ( options {greedy=false; } : . )* '*/'
+ {
+ match("/*");
+
+ // InternalBoilerplateText.g:757:24: ( options {greedy=false; } : . )*
+ loop7:
+ do {
+ int alt7=2;
+ int LA7_0 = input.LA(1);
+
+ if ( (LA7_0=='*') ) {
+ int LA7_1 = input.LA(2);
+
+ if ( (LA7_1=='/') ) {
+ alt7=2;
+ }
+ else if ( ((LA7_1>='\u0000' && LA7_1<='.')||(LA7_1>='0' && LA7_1<='\uFFFF')) ) {
+ alt7=1;
+ }
+
+
+ }
+ else if ( ((LA7_0>='\u0000' && LA7_0<=')')||(LA7_0>='+' && LA7_0<='\uFFFF')) ) {
+ alt7=1;
+ }
+
+
+ switch (alt7) {
+ case 1 :
+ // InternalBoilerplateText.g:757:52: .
+ {
+ matchAny();
+
+ }
+ break;
+
+ default :
+ break loop7;
+ }
+ } 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;
+ // InternalBoilerplateText.g:759:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+ // InternalBoilerplateText.g:759:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+ {
+ match("//");
+
+ // InternalBoilerplateText.g:759:24: (~ ( ( '\\n' | '\\r' ) ) )*
+ loop8:
+ do {
+ int alt8=2;
+ int LA8_0 = input.LA(1);
+
+ if ( ((LA8_0>='\u0000' && LA8_0<='\t')||(LA8_0>='\u000B' && LA8_0<='\f')||(LA8_0>='\u000E' && LA8_0<='\uFFFF')) ) {
+ alt8=1;
+ }
+
+
+ switch (alt8) {
+ case 1 :
+ // InternalBoilerplateText.g:759: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 loop8;
+ }
+ } while (true);
+
+ // InternalBoilerplateText.g:759:40: ( ( '\\r' )? '\\n' )?
+ int alt10=2;
+ int LA10_0 = input.LA(1);
+
+ if ( (LA10_0=='\n'||LA10_0=='\r') ) {
+ alt10=1;
+ }
+ switch (alt10) {
+ case 1 :
+ // InternalBoilerplateText.g:759:41: ( '\\r' )? '\\n'
+ {
+ // InternalBoilerplateText.g:759:41: ( '\\r' )?
+ int alt9=2;
+ int LA9_0 = input.LA(1);
+
+ if ( (LA9_0=='\r') ) {
+ alt9=1;
+ }
+ switch (alt9) {
+ case 1 :
+ // InternalBoilerplateText.g:759: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;
+ // InternalBoilerplateText.g:761:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+ // InternalBoilerplateText.g:761:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+ {
+ // InternalBoilerplateText.g:761:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+ int cnt11=0;
+ loop11:
+ do {
+ int alt11=2;
+ int LA11_0 = input.LA(1);
+
+ if ( ((LA11_0>='\t' && LA11_0<='\n')||LA11_0=='\r'||LA11_0==' ') ) {
+ alt11=1;
+ }
+
+
+ switch (alt11) {
+ case 1 :
+ // InternalBoilerplateText.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 ( cnt11 >= 1 ) break loop11;
+ EarlyExitException eee =
+ new EarlyExitException(11, input);
+ throw eee;
+ }
+ cnt11++;
+ } 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;
+ // InternalBoilerplateText.g:763:16: ( . )
+ // InternalBoilerplateText.g:763:18: .
+ {
+ matchAny();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_ANY_OTHER"
+
+ public void mTokens() throws RecognitionException {
+ // InternalBoilerplateText.g:1:8: ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
+ int alt12=17;
+ alt12 = dfa12.predict(input);
+ switch (alt12) {
+ case 1 :
+ // InternalBoilerplateText.g:1:10: T__11
+ {
+ mT__11();
+
+ }
+ break;
+ case 2 :
+ // InternalBoilerplateText.g:1:16: T__12
+ {
+ mT__12();
+
+ }
+ break;
+ case 3 :
+ // InternalBoilerplateText.g:1:22: T__13
+ {
+ mT__13();
+
+ }
+ break;
+ case 4 :
+ // InternalBoilerplateText.g:1:28: T__14
+ {
+ mT__14();
+
+ }
+ break;
+ case 5 :
+ // InternalBoilerplateText.g:1:34: T__15
+ {
+ mT__15();
+
+ }
+ break;
+ case 6 :
+ // InternalBoilerplateText.g:1:40: T__16
+ {
+ mT__16();
+
+ }
+ break;
+ case 7 :
+ // InternalBoilerplateText.g:1:46: T__17
+ {
+ mT__17();
+
+ }
+ break;
+ case 8 :
+ // InternalBoilerplateText.g:1:52: T__18
+ {
+ mT__18();
+
+ }
+ break;
+ case 9 :
+ // InternalBoilerplateText.g:1:58: T__19
+ {
+ mT__19();
+
+ }
+ break;
+ case 10 :
+ // InternalBoilerplateText.g:1:64: T__20
+ {
+ mT__20();
+
+ }
+ break;
+ case 11 :
+ // InternalBoilerplateText.g:1:70: RULE_ID
+ {
+ mRULE_ID();
+
+ }
+ break;
+ case 12 :
+ // InternalBoilerplateText.g:1:78: RULE_INT
+ {
+ mRULE_INT();
+
+ }
+ break;
+ case 13 :
+ // InternalBoilerplateText.g:1:87: RULE_STRING
+ {
+ mRULE_STRING();
+
+ }
+ break;
+ case 14 :
+ // InternalBoilerplateText.g:1:99: RULE_ML_COMMENT
+ {
+ mRULE_ML_COMMENT();
+
+ }
+ break;
+ case 15 :
+ // InternalBoilerplateText.g:1:115: RULE_SL_COMMENT
+ {
+ mRULE_SL_COMMENT();
+
+ }
+ break;
+ case 16 :
+ // InternalBoilerplateText.g:1:131: RULE_WS
+ {
+ mRULE_WS();
+
+ }
+ break;
+ case 17 :
+ // InternalBoilerplateText.g:1:139: RULE_ANY_OTHER
+ {
+ mRULE_ANY_OTHER();
+
+ }
+ break;
+
+ }
+
+ }
+
+
+ protected DFA12 dfa12 = new DFA12(this);
+ static final String DFA12_eotS =
+ "\2\uffff\7\23\1\20\2\uffff\3\20\3\uffff\1\41\1\uffff\6\23\1\50\1\51\6\uffff\1\52\4\23\1\57\3\uffff\1\23\1\61\2\23\1\uffff\1\64\1\uffff\1\65\1\66\3\uffff";
+ static final String DFA12_eofS =
+ "\67\uffff";
+ static final String DFA12_minS =
+ "\1\0\1\uffff\1\146\1\142\2\150\2\157\1\145\1\101\2\uffff\2\0\1\52\3\uffff\1\60\1\uffff\1\144\2\154\1\151\1\141\1\164\2\60\6\uffff\1\60\1\157\1\145\2\154\1\60\3\uffff\1\167\1\60\1\145\1\154\1\uffff\1\60\1\uffff\2\60\3\uffff";
+ static final String DFA12_maxS =
+ "\1\uffff\1\uffff\1\146\1\156\2\150\2\157\1\145\1\172\2\uffff\2\uffff\1\57\3\uffff\1\172\1\uffff\1\144\2\154\1\151\1\141\1\164\2\172\6\uffff\1\172\1\157\1\145\2\154\1\172\3\uffff\1\167\1\172\1\145\1\154\1\uffff\1\172\1\uffff\2\172\3\uffff";
+ static final String DFA12_acceptS =
+ "\1\uffff\1\1\10\uffff\1\13\1\14\3\uffff\1\20\1\21\1\1\1\uffff\1\13\10\uffff\1\14\1\15\1\16\1\17\1\20\1\2\6\uffff\1\10\1\11\1\3\4\uffff\1\6\1\uffff\1\12\2\uffff\1\7\1\4\1\5";
+ static final String DFA12_specialS =
+ "\1\0\13\uffff\1\1\1\2\51\uffff}>";
+ static final String[] DFA12_transitionS = {
+ "\11\20\2\17\2\20\1\17\22\20\1\17\1\20\1\14\4\20\1\15\4\20\1\1\2\20\1\16\12\13\7\20\32\12\3\20\1\11\1\12\1\20\1\3\1\10\6\12\1\2\4\12\1\6\4\12\1\5\1\7\2\12\1\4\3\12\uff85\20",
+ "",
+ "\1\22",
+ "\1\26\11\uffff\1\25\1\uffff\1\24",
+ "\1\27",
+ "\1\30",
+ "\1\31",
+ "\1\32",
+ "\1\33",
+ "\32\23\4\uffff\1\23\1\uffff\32\23",
+ "",
+ "",
+ "\0\35",
+ "\0\35",
+ "\1\36\4\uffff\1\37",
+ "",
+ "",
+ "",
+ "\12\23\7\uffff\32\23\4\uffff\1\23\1\uffff\32\23",
+ "",
+ "\1\42",
+ "\1\43",
+ "\1\44",
+ "\1\45",
+ "\1\46",
+ "\1\47",
+ "\12\23\7\uffff\32\23\4\uffff\1\23\1\uffff\32\23",
+ "\12\23\7\uffff\32\23\4\uffff\1\23\1\uffff\32\23",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "\12\23\7\uffff\32\23\4\uffff\1\23\1\uffff\32\23",
+ "\1\53",
+ "\1\54",
+ "\1\55",
+ "\1\56",
+ "\12\23\7\uffff\32\23\4\uffff\1\23\1\uffff\32\23",
+ "",
+ "",
+ "",
+ "\1\60",
+ "\12\23\7\uffff\32\23\4\uffff\1\23\1\uffff\32\23",
+ "\1\62",
+ "\1\63",
+ "",
+ "\12\23\7\uffff\32\23\4\uffff\1\23\1\uffff\32\23",
+ "",
+ "\12\23\7\uffff\32\23\4\uffff\1\23\1\uffff\32\23",
+ "\12\23\7\uffff\32\23\4\uffff\1\23\1\uffff\32\23",
+ "",
+ "",
+ ""
+ };
+
+ static final short[] DFA12_eot = DFA.unpackEncodedString(DFA12_eotS);
+ static final short[] DFA12_eof = DFA.unpackEncodedString(DFA12_eofS);
+ static final char[] DFA12_min = DFA.unpackEncodedStringToUnsignedChars(DFA12_minS);
+ static final char[] DFA12_max = DFA.unpackEncodedStringToUnsignedChars(DFA12_maxS);
+ static final short[] DFA12_accept = DFA.unpackEncodedString(DFA12_acceptS);
+ static final short[] DFA12_special = DFA.unpackEncodedString(DFA12_specialS);
+ static final short[][] DFA12_transition;
+
+ static {
+ int numStates = DFA12_transitionS.length;
+ DFA12_transition = new short[numStates][];
+ for (int i=0; i<numStates; i++) {
+ DFA12_transition[i] = DFA.unpackEncodedString(DFA12_transitionS[i]);
+ }
+ }
+
+ class DFA12 extends DFA {
+
+ public DFA12(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 12;
+ this.eot = DFA12_eot;
+ this.eof = DFA12_eof;
+ this.min = DFA12_min;
+ this.max = DFA12_max;
+ this.accept = DFA12_accept;
+ this.special = DFA12_special;
+ this.transition = DFA12_transition;
+ }
+ public String getDescription() {
+ return "1:1: Tokens : ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | 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 LA12_0 = input.LA(1);
+
+ s = -1;
+ if ( (LA12_0==',') ) {s = 1;}
+
+ else if ( (LA12_0=='i') ) {s = 2;}
+
+ else if ( (LA12_0=='a') ) {s = 3;}
+
+ else if ( (LA12_0=='w') ) {s = 4;}
+
+ else if ( (LA12_0=='s') ) {s = 5;}
+
+ else if ( (LA12_0=='n') ) {s = 6;}
+
+ else if ( (LA12_0=='t') ) {s = 7;}
+
+ else if ( (LA12_0=='b') ) {s = 8;}
+
+ else if ( (LA12_0=='^') ) {s = 9;}
+
+ else if ( ((LA12_0>='A' && LA12_0<='Z')||LA12_0=='_'||(LA12_0>='c' && LA12_0<='h')||(LA12_0>='j' && LA12_0<='m')||(LA12_0>='o' && LA12_0<='r')||(LA12_0>='u' && LA12_0<='v')||(LA12_0>='x' && LA12_0<='z')) ) {s = 10;}
+
+ else if ( ((LA12_0>='0' && LA12_0<='9')) ) {s = 11;}
+
+ else if ( (LA12_0=='\"') ) {s = 12;}
+
+ else if ( (LA12_0=='\'') ) {s = 13;}
+
+ else if ( (LA12_0=='/') ) {s = 14;}
+
+ else if ( ((LA12_0>='\t' && LA12_0<='\n')||LA12_0=='\r'||LA12_0==' ') ) {s = 15;}
+
+ else if ( ((LA12_0>='\u0000' && LA12_0<='\b')||(LA12_0>='\u000B' && LA12_0<='\f')||(LA12_0>='\u000E' && LA12_0<='\u001F')||LA12_0=='!'||(LA12_0>='#' && LA12_0<='&')||(LA12_0>='(' && LA12_0<='+')||(LA12_0>='-' && LA12_0<='.')||(LA12_0>=':' && LA12_0<='@')||(LA12_0>='[' && LA12_0<=']')||LA12_0=='`'||(LA12_0>='{' && LA12_0<='\uFFFF')) ) {s = 16;}
+
+ if ( s>=0 ) return s;
+ break;
+ case 1 :
+ int LA12_12 = input.LA(1);
+
+ s = -1;
+ if ( ((LA12_12>='\u0000' && LA12_12<='\uFFFF')) ) {s = 29;}
+
+ else s = 16;
+
+ if ( s>=0 ) return s;
+ break;
+ case 2 :
+ int LA12_13 = input.LA(1);
+
+ s = -1;
+ if ( ((LA12_13>='\u0000' && LA12_13<='\uFFFF')) ) {s = 29;}
+
+ else s = 16;
+
+ if ( s>=0 ) return s;
+ break;
+ }
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 12, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+
+
+}
\ No newline at end of file
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/parser/antlr/internal/InternalBoilerplateTextParser.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/parser/antlr/internal/InternalBoilerplateTextParser.java
new file mode 100644
index 0000000..71a9a40
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/parser/antlr/internal/InternalBoilerplateTextParser.java
@@ -0,0 +1,2107 @@
+package org.eclipse.papyrus.requirements.sysml14.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.papyrus.requirements.sysml14.services.BoilerplateTextGrammarAccess;
+
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+/*****************************************************************************
+ * Copyright (c) 2017 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *
+ * Mauricio Alferez (mauricio.alferez@cea.fr) CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+@SuppressWarnings("all")
+public class InternalBoilerplateTextParser extends AbstractInternalAntlrParser {
+ public static final String[] tokenNames = new String[] {
+ "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_STRING", "RULE_ID", "RULE_INT", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "','", "'if'", "'and'", "'while'", "'shall'", "'not'", "'allow'", "'to'", "'be'", "'able'"
+ };
+ public static final int RULE_STRING=4;
+ public static final int RULE_SL_COMMENT=8;
+ public static final int T__19=19;
+ public static final int T__15=15;
+ public static final int T__16=16;
+ public static final int T__17=17;
+ public static final int T__18=18;
+ public static final int T__11=11;
+ public static final int T__12=12;
+ public static final int T__13=13;
+ public static final int T__14=14;
+ public static final int EOF=-1;
+ public static final int RULE_ID=5;
+ public static final int RULE_WS=9;
+ public static final int RULE_ANY_OTHER=10;
+ public static final int RULE_INT=6;
+ public static final int RULE_ML_COMMENT=7;
+ public static final int T__20=20;
+
+ // delegates
+ // delegators
+
+
+ public InternalBoilerplateTextParser(TokenStream input) {
+ this(input, new RecognizerSharedState());
+ }
+ public InternalBoilerplateTextParser(TokenStream input, RecognizerSharedState state) {
+ super(input, state);
+
+ }
+
+
+ public String[] getTokenNames() { return InternalBoilerplateTextParser.tokenNames; }
+ public String getGrammarFileName() { return "InternalBoilerplateText.g"; }
+
+
+
+ private BoilerplateTextGrammarAccess grammarAccess;
+
+ public InternalBoilerplateTextParser(TokenStream input, BoilerplateTextGrammarAccess grammarAccess) {
+ this(input);
+ this.grammarAccess = grammarAccess;
+ registerRules(grammarAccess.getGrammar());
+ }
+
+ @Override
+ protected String getFirstRuleName() {
+ return "Model";
+ }
+
+ @Override
+ protected BoilerplateTextGrammarAccess getGrammarAccess() {
+ return grammarAccess;
+ }
+
+
+
+
+ // $ANTLR start "entryRuleModel"
+ // InternalBoilerplateText.g:78:1: entryRuleModel returns [EObject current=null] : iv_ruleModel= ruleModel EOF ;
+ public final EObject entryRuleModel() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleModel = null;
+
+
+ try {
+ // InternalBoilerplateText.g:78:46: (iv_ruleModel= ruleModel EOF )
+ // InternalBoilerplateText.g:79:2: iv_ruleModel= ruleModel EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getModelRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleModel=ruleModel();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleModel;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleModel"
+
+
+ // $ANTLR start "ruleModel"
+ // InternalBoilerplateText.g:85:1: ruleModel returns [EObject current=null] : ( (lv_model_0_0= ruleRequirement ) ) ;
+ public final EObject ruleModel() throws RecognitionException {
+ EObject current = null;
+
+ EObject lv_model_0_0 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalBoilerplateText.g:91:2: ( ( (lv_model_0_0= ruleRequirement ) ) )
+ // InternalBoilerplateText.g:92:2: ( (lv_model_0_0= ruleRequirement ) )
+ {
+ // InternalBoilerplateText.g:92:2: ( (lv_model_0_0= ruleRequirement ) )
+ // InternalBoilerplateText.g:93:3: (lv_model_0_0= ruleRequirement )
+ {
+ // InternalBoilerplateText.g:93:3: (lv_model_0_0= ruleRequirement )
+ // InternalBoilerplateText.g:94:4: lv_model_0_0= ruleRequirement
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getModelAccess().getModelRequirementParserRuleCall_0());
+
+ }
+ pushFollow(FOLLOW_2);
+ lv_model_0_0=ruleRequirement();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getModelRule());
+ }
+ set(
+ current,
+ "model",
+ lv_model_0_0,
+ "org.eclipse.papyrus.requirements.sysml14.BoilerplateText.Requirement");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleModel"
+
+
+ // $ANTLR start "entryRuleRequirement"
+ // InternalBoilerplateText.g:114:1: entryRuleRequirement returns [EObject current=null] : iv_ruleRequirement= ruleRequirement EOF ;
+ public final EObject entryRuleRequirement() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleRequirement = null;
+
+
+ try {
+ // InternalBoilerplateText.g:114:52: (iv_ruleRequirement= ruleRequirement EOF )
+ // InternalBoilerplateText.g:115:2: iv_ruleRequirement= ruleRequirement EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getRequirementRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleRequirement=ruleRequirement();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleRequirement;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleRequirement"
+
+
+ // $ANTLR start "ruleRequirement"
+ // InternalBoilerplateText.g:121:1: ruleRequirement returns [EObject current=null] : ( ( ( (lv_prefix_0_0= rulePrefix ) ) otherlv_1= ',' )? ( (lv_system_2_0= ruleSubject ) ) ( (lv_predicate_3_0= rulePredicate ) ) ) ;
+ public final EObject ruleRequirement() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ EObject lv_prefix_0_0 = null;
+
+ EObject lv_system_2_0 = null;
+
+ EObject lv_predicate_3_0 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalBoilerplateText.g:127:2: ( ( ( ( (lv_prefix_0_0= rulePrefix ) ) otherlv_1= ',' )? ( (lv_system_2_0= ruleSubject ) ) ( (lv_predicate_3_0= rulePredicate ) ) ) )
+ // InternalBoilerplateText.g:128:2: ( ( ( (lv_prefix_0_0= rulePrefix ) ) otherlv_1= ',' )? ( (lv_system_2_0= ruleSubject ) ) ( (lv_predicate_3_0= rulePredicate ) ) )
+ {
+ // InternalBoilerplateText.g:128:2: ( ( ( (lv_prefix_0_0= rulePrefix ) ) otherlv_1= ',' )? ( (lv_system_2_0= ruleSubject ) ) ( (lv_predicate_3_0= rulePredicate ) ) )
+ // InternalBoilerplateText.g:129:3: ( ( (lv_prefix_0_0= rulePrefix ) ) otherlv_1= ',' )? ( (lv_system_2_0= ruleSubject ) ) ( (lv_predicate_3_0= rulePredicate ) )
+ {
+ // InternalBoilerplateText.g:129:3: ( ( (lv_prefix_0_0= rulePrefix ) ) otherlv_1= ',' )?
+ int alt1=2;
+ int LA1_0 = input.LA(1);
+
+ if ( (LA1_0==12||LA1_0==14) ) {
+ alt1=1;
+ }
+ switch (alt1) {
+ case 1 :
+ // InternalBoilerplateText.g:130:4: ( (lv_prefix_0_0= rulePrefix ) ) otherlv_1= ','
+ {
+ // InternalBoilerplateText.g:130:4: ( (lv_prefix_0_0= rulePrefix ) )
+ // InternalBoilerplateText.g:131:5: (lv_prefix_0_0= rulePrefix )
+ {
+ // InternalBoilerplateText.g:131:5: (lv_prefix_0_0= rulePrefix )
+ // InternalBoilerplateText.g:132:6: lv_prefix_0_0= rulePrefix
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getRequirementAccess().getPrefixPrefixParserRuleCall_0_0_0());
+
+ }
+ pushFollow(FOLLOW_3);
+ lv_prefix_0_0=rulePrefix();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getRequirementRule());
+ }
+ set(
+ current,
+ "prefix",
+ lv_prefix_0_0,
+ "org.eclipse.papyrus.requirements.sysml14.BoilerplateText.Prefix");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ otherlv_1=(Token)match(input,11,FOLLOW_4); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getRequirementAccess().getCommaKeyword_0_1());
+
+ }
+
+ }
+ break;
+
+ }
+
+ // InternalBoilerplateText.g:154:3: ( (lv_system_2_0= ruleSubject ) )
+ // InternalBoilerplateText.g:155:4: (lv_system_2_0= ruleSubject )
+ {
+ // InternalBoilerplateText.g:155:4: (lv_system_2_0= ruleSubject )
+ // InternalBoilerplateText.g:156:5: lv_system_2_0= ruleSubject
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getRequirementAccess().getSystemSubjectParserRuleCall_1_0());
+
+ }
+ pushFollow(FOLLOW_5);
+ lv_system_2_0=ruleSubject();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getRequirementRule());
+ }
+ set(
+ current,
+ "system",
+ lv_system_2_0,
+ "org.eclipse.papyrus.requirements.sysml14.BoilerplateText.Subject");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ // InternalBoilerplateText.g:173:3: ( (lv_predicate_3_0= rulePredicate ) )
+ // InternalBoilerplateText.g:174:4: (lv_predicate_3_0= rulePredicate )
+ {
+ // InternalBoilerplateText.g:174:4: (lv_predicate_3_0= rulePredicate )
+ // InternalBoilerplateText.g:175:5: lv_predicate_3_0= rulePredicate
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getRequirementAccess().getPredicatePredicateParserRuleCall_2_0());
+
+ }
+ pushFollow(FOLLOW_2);
+ lv_predicate_3_0=rulePredicate();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getRequirementRule());
+ }
+ set(
+ current,
+ "predicate",
+ lv_predicate_3_0,
+ "org.eclipse.papyrus.requirements.sysml14.BoilerplateText.Predicate");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleRequirement"
+
+
+ // $ANTLR start "entryRuleSubject"
+ // InternalBoilerplateText.g:196:1: entryRuleSubject returns [EObject current=null] : iv_ruleSubject= ruleSubject EOF ;
+ public final EObject entryRuleSubject() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleSubject = null;
+
+
+ try {
+ // InternalBoilerplateText.g:196:48: (iv_ruleSubject= ruleSubject EOF )
+ // InternalBoilerplateText.g:197:2: iv_ruleSubject= ruleSubject EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getSubjectRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleSubject=ruleSubject();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleSubject;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleSubject"
+
+
+ // $ANTLR start "ruleSubject"
+ // InternalBoilerplateText.g:203:1: ruleSubject returns [EObject current=null] : ( (lv_system_0_0= RULE_STRING ) ) ;
+ public final EObject ruleSubject() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_system_0_0=null;
+
+
+ enterRule();
+
+ try {
+ // InternalBoilerplateText.g:209:2: ( ( (lv_system_0_0= RULE_STRING ) ) )
+ // InternalBoilerplateText.g:210:2: ( (lv_system_0_0= RULE_STRING ) )
+ {
+ // InternalBoilerplateText.g:210:2: ( (lv_system_0_0= RULE_STRING ) )
+ // InternalBoilerplateText.g:211:3: (lv_system_0_0= RULE_STRING )
+ {
+ // InternalBoilerplateText.g:211:3: (lv_system_0_0= RULE_STRING )
+ // InternalBoilerplateText.g:212:4: lv_system_0_0= RULE_STRING
+ {
+ lv_system_0_0=(Token)match(input,RULE_STRING,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(lv_system_0_0, grammarAccess.getSubjectAccess().getSystemSTRINGTerminalRuleCall_0());
+
+ }
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getSubjectRule());
+ }
+ setWithLastConsumed(
+ current,
+ "system",
+ lv_system_0_0,
+ "org.eclipse.xtext.common.Terminals.STRING");
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleSubject"
+
+
+ // $ANTLR start "entryRulePrefix"
+ // InternalBoilerplateText.g:231:1: entryRulePrefix returns [EObject current=null] : iv_rulePrefix= rulePrefix EOF ;
+ public final EObject entryRulePrefix() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_rulePrefix = null;
+
+
+ try {
+ // InternalBoilerplateText.g:231:47: (iv_rulePrefix= rulePrefix EOF )
+ // InternalBoilerplateText.g:232:2: iv_rulePrefix= rulePrefix EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getPrefixRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_rulePrefix=rulePrefix();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_rulePrefix;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRulePrefix"
+
+
+ // $ANTLR start "rulePrefix"
+ // InternalBoilerplateText.g:238:1: rulePrefix returns [EObject current=null] : (this_If_0= ruleIf | this_While_1= ruleWhile ) ;
+ public final EObject rulePrefix() throws RecognitionException {
+ EObject current = null;
+
+ EObject this_If_0 = null;
+
+ EObject this_While_1 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalBoilerplateText.g:244:2: ( (this_If_0= ruleIf | this_While_1= ruleWhile ) )
+ // InternalBoilerplateText.g:245:2: (this_If_0= ruleIf | this_While_1= ruleWhile )
+ {
+ // InternalBoilerplateText.g:245:2: (this_If_0= ruleIf | this_While_1= ruleWhile )
+ int alt2=2;
+ int LA2_0 = input.LA(1);
+
+ if ( (LA2_0==12) ) {
+ alt2=1;
+ }
+ else if ( (LA2_0==14) ) {
+ alt2=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 2, 0, input);
+
+ throw nvae;
+ }
+ switch (alt2) {
+ case 1 :
+ // InternalBoilerplateText.g:246:3: this_If_0= ruleIf
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getPrefixAccess().getIfParserRuleCall_0());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_If_0=ruleIf();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_If_0;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 2 :
+ // InternalBoilerplateText.g:255:3: this_While_1= ruleWhile
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getPrefixAccess().getWhileParserRuleCall_1());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_While_1=ruleWhile();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_While_1;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "rulePrefix"
+
+
+ // $ANTLR start "entryRuleIf"
+ // InternalBoilerplateText.g:267:1: entryRuleIf returns [EObject current=null] : iv_ruleIf= ruleIf EOF ;
+ public final EObject entryRuleIf() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleIf = null;
+
+
+ try {
+ // InternalBoilerplateText.g:267:43: (iv_ruleIf= ruleIf EOF )
+ // InternalBoilerplateText.g:268:2: iv_ruleIf= ruleIf EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getIfRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleIf=ruleIf();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleIf;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleIf"
+
+
+ // $ANTLR start "ruleIf"
+ // InternalBoilerplateText.g:274:1: ruleIf returns [EObject current=null] : (otherlv_0= 'if' ( (lv_event_1_0= RULE_STRING ) ) (otherlv_2= 'and' ( (lv_event_3_0= RULE_STRING ) ) )* ) ;
+ public final EObject ruleIf() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ Token lv_event_1_0=null;
+ Token otherlv_2=null;
+ Token lv_event_3_0=null;
+
+
+ enterRule();
+
+ try {
+ // InternalBoilerplateText.g:280:2: ( (otherlv_0= 'if' ( (lv_event_1_0= RULE_STRING ) ) (otherlv_2= 'and' ( (lv_event_3_0= RULE_STRING ) ) )* ) )
+ // InternalBoilerplateText.g:281:2: (otherlv_0= 'if' ( (lv_event_1_0= RULE_STRING ) ) (otherlv_2= 'and' ( (lv_event_3_0= RULE_STRING ) ) )* )
+ {
+ // InternalBoilerplateText.g:281:2: (otherlv_0= 'if' ( (lv_event_1_0= RULE_STRING ) ) (otherlv_2= 'and' ( (lv_event_3_0= RULE_STRING ) ) )* )
+ // InternalBoilerplateText.g:282:3: otherlv_0= 'if' ( (lv_event_1_0= RULE_STRING ) ) (otherlv_2= 'and' ( (lv_event_3_0= RULE_STRING ) ) )*
+ {
+ otherlv_0=(Token)match(input,12,FOLLOW_4); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_0, grammarAccess.getIfAccess().getIfKeyword_0());
+
+ }
+ // InternalBoilerplateText.g:286:3: ( (lv_event_1_0= RULE_STRING ) )
+ // InternalBoilerplateText.g:287:4: (lv_event_1_0= RULE_STRING )
+ {
+ // InternalBoilerplateText.g:287:4: (lv_event_1_0= RULE_STRING )
+ // InternalBoilerplateText.g:288:5: lv_event_1_0= RULE_STRING
+ {
+ lv_event_1_0=(Token)match(input,RULE_STRING,FOLLOW_6); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(lv_event_1_0, grammarAccess.getIfAccess().getEventSTRINGTerminalRuleCall_1_0());
+
+ }
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getIfRule());
+ }
+ addWithLastConsumed(
+ current,
+ "event",
+ lv_event_1_0,
+ "org.eclipse.xtext.common.Terminals.STRING");
+
+ }
+
+ }
+
+
+ }
+
+ // InternalBoilerplateText.g:304:3: (otherlv_2= 'and' ( (lv_event_3_0= RULE_STRING ) ) )*
+ loop3:
+ do {
+ int alt3=2;
+ int LA3_0 = input.LA(1);
+
+ if ( (LA3_0==13) ) {
+ alt3=1;
+ }
+
+
+ switch (alt3) {
+ case 1 :
+ // InternalBoilerplateText.g:305:4: otherlv_2= 'and' ( (lv_event_3_0= RULE_STRING ) )
+ {
+ otherlv_2=(Token)match(input,13,FOLLOW_4); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_2, grammarAccess.getIfAccess().getAndKeyword_2_0());
+
+ }
+ // InternalBoilerplateText.g:309:4: ( (lv_event_3_0= RULE_STRING ) )
+ // InternalBoilerplateText.g:310:5: (lv_event_3_0= RULE_STRING )
+ {
+ // InternalBoilerplateText.g:310:5: (lv_event_3_0= RULE_STRING )
+ // InternalBoilerplateText.g:311:6: lv_event_3_0= RULE_STRING
+ {
+ lv_event_3_0=(Token)match(input,RULE_STRING,FOLLOW_6); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(lv_event_3_0, grammarAccess.getIfAccess().getEventSTRINGTerminalRuleCall_2_1_0());
+
+ }
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getIfRule());
+ }
+ addWithLastConsumed(
+ current,
+ "event",
+ lv_event_3_0,
+ "org.eclipse.xtext.common.Terminals.STRING");
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop3;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleIf"
+
+
+ // $ANTLR start "entryRuleWhile"
+ // InternalBoilerplateText.g:332:1: entryRuleWhile returns [EObject current=null] : iv_ruleWhile= ruleWhile EOF ;
+ public final EObject entryRuleWhile() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleWhile = null;
+
+
+ try {
+ // InternalBoilerplateText.g:332:46: (iv_ruleWhile= ruleWhile EOF )
+ // InternalBoilerplateText.g:333:2: iv_ruleWhile= ruleWhile EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getWhileRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleWhile=ruleWhile();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleWhile;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleWhile"
+
+
+ // $ANTLR start "ruleWhile"
+ // InternalBoilerplateText.g:339:1: ruleWhile returns [EObject current=null] : (otherlv_0= 'while' ( (lv_state_1_0= RULE_STRING ) ) ) ;
+ public final EObject ruleWhile() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ Token lv_state_1_0=null;
+
+
+ enterRule();
+
+ try {
+ // InternalBoilerplateText.g:345:2: ( (otherlv_0= 'while' ( (lv_state_1_0= RULE_STRING ) ) ) )
+ // InternalBoilerplateText.g:346:2: (otherlv_0= 'while' ( (lv_state_1_0= RULE_STRING ) ) )
+ {
+ // InternalBoilerplateText.g:346:2: (otherlv_0= 'while' ( (lv_state_1_0= RULE_STRING ) ) )
+ // InternalBoilerplateText.g:347:3: otherlv_0= 'while' ( (lv_state_1_0= RULE_STRING ) )
+ {
+ otherlv_0=(Token)match(input,14,FOLLOW_4); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_0, grammarAccess.getWhileAccess().getWhileKeyword_0());
+
+ }
+ // InternalBoilerplateText.g:351:3: ( (lv_state_1_0= RULE_STRING ) )
+ // InternalBoilerplateText.g:352:4: (lv_state_1_0= RULE_STRING )
+ {
+ // InternalBoilerplateText.g:352:4: (lv_state_1_0= RULE_STRING )
+ // InternalBoilerplateText.g:353:5: lv_state_1_0= RULE_STRING
+ {
+ lv_state_1_0=(Token)match(input,RULE_STRING,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(lv_state_1_0, grammarAccess.getWhileAccess().getStateSTRINGTerminalRuleCall_1_0());
+
+ }
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getWhileRule());
+ }
+ setWithLastConsumed(
+ current,
+ "state",
+ lv_state_1_0,
+ "org.eclipse.xtext.common.Terminals.STRING");
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleWhile"
+
+
+ // $ANTLR start "entryRulePredicate"
+ // InternalBoilerplateText.g:373:1: entryRulePredicate returns [EObject current=null] : iv_rulePredicate= rulePredicate EOF ;
+ public final EObject entryRulePredicate() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_rulePredicate = null;
+
+
+ try {
+ // InternalBoilerplateText.g:373:50: (iv_rulePredicate= rulePredicate EOF )
+ // InternalBoilerplateText.g:374:2: iv_rulePredicate= rulePredicate EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getPredicateRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_rulePredicate=rulePredicate();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_rulePredicate;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRulePredicate"
+
+
+ // $ANTLR start "rulePredicate"
+ // InternalBoilerplateText.g:380:1: rulePredicate returns [EObject current=null] : (this_Shall_0= ruleShall | this_ShallNot_1= ruleShallNot | this_ShallAllow_2= ruleShallAllow | this_ShallNotAllow_3= ruleShallNotAllow ) ;
+ public final EObject rulePredicate() throws RecognitionException {
+ EObject current = null;
+
+ EObject this_Shall_0 = null;
+
+ EObject this_ShallNot_1 = null;
+
+ EObject this_ShallAllow_2 = null;
+
+ EObject this_ShallNotAllow_3 = null;
+
+
+
+ enterRule();
+
+ try {
+ // InternalBoilerplateText.g:386:2: ( (this_Shall_0= ruleShall | this_ShallNot_1= ruleShallNot | this_ShallAllow_2= ruleShallAllow | this_ShallNotAllow_3= ruleShallNotAllow ) )
+ // InternalBoilerplateText.g:387:2: (this_Shall_0= ruleShall | this_ShallNot_1= ruleShallNot | this_ShallAllow_2= ruleShallAllow | this_ShallNotAllow_3= ruleShallNotAllow )
+ {
+ // InternalBoilerplateText.g:387:2: (this_Shall_0= ruleShall | this_ShallNot_1= ruleShallNot | this_ShallAllow_2= ruleShallAllow | this_ShallNotAllow_3= ruleShallNotAllow )
+ int alt4=4;
+ int LA4_0 = input.LA(1);
+
+ if ( (LA4_0==15) ) {
+ switch ( input.LA(2) ) {
+ case 16:
+ {
+ int LA4_2 = input.LA(3);
+
+ if ( (LA4_2==RULE_STRING||LA4_2==19) ) {
+ alt4=2;
+ }
+ else if ( (LA4_2==17) ) {
+ alt4=4;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 4, 2, input);
+
+ throw nvae;
+ }
+ }
+ break;
+ case RULE_STRING:
+ case 19:
+ {
+ alt4=1;
+ }
+ break;
+ case 17:
+ {
+ alt4=3;
+ }
+ break;
+ default:
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 4, 1, input);
+
+ throw nvae;
+ }
+
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 4, 0, input);
+
+ throw nvae;
+ }
+ switch (alt4) {
+ case 1 :
+ // InternalBoilerplateText.g:388:3: this_Shall_0= ruleShall
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getPredicateAccess().getShallParserRuleCall_0());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_Shall_0=ruleShall();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_Shall_0;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 2 :
+ // InternalBoilerplateText.g:397:3: this_ShallNot_1= ruleShallNot
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getPredicateAccess().getShallNotParserRuleCall_1());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_ShallNot_1=ruleShallNot();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_ShallNot_1;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 3 :
+ // InternalBoilerplateText.g:406:3: this_ShallAllow_2= ruleShallAllow
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getPredicateAccess().getShallAllowParserRuleCall_2());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_ShallAllow_2=ruleShallAllow();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_ShallAllow_2;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 4 :
+ // InternalBoilerplateText.g:415:3: this_ShallNotAllow_3= ruleShallNotAllow
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getPredicateAccess().getShallNotAllowParserRuleCall_3());
+
+ }
+ pushFollow(FOLLOW_2);
+ this_ShallNotAllow_3=ruleShallNotAllow();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_ShallNotAllow_3;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "rulePredicate"
+
+
+ // $ANTLR start "entryRuleShallNotAllow"
+ // InternalBoilerplateText.g:427:1: entryRuleShallNotAllow returns [EObject current=null] : iv_ruleShallNotAllow= ruleShallNotAllow EOF ;
+ public final EObject entryRuleShallNotAllow() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleShallNotAllow = null;
+
+
+ try {
+ // InternalBoilerplateText.g:427:54: (iv_ruleShallNotAllow= ruleShallNotAllow EOF )
+ // InternalBoilerplateText.g:428:2: iv_ruleShallNotAllow= ruleShallNotAllow EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getShallNotAllowRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleShallNotAllow=ruleShallNotAllow();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleShallNotAllow;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleShallNotAllow"
+
+
+ // $ANTLR start "ruleShallNotAllow"
+ // InternalBoilerplateText.g:434:1: ruleShallNotAllow returns [EObject current=null] : (otherlv_0= 'shall' ( ( 'not' )=>otherlv_1= 'not' ) ( ( 'allow' )=>otherlv_2= 'allow' ) ( ( (lv_action_3_0= RULE_STRING ) ) | ( ( (lv_entity_4_0= RULE_STRING ) ) otherlv_5= 'to' ( (lv_actionPerformedByEntity_6_0= RULE_STRING ) ) ) ) ) ;
+ public final EObject ruleShallNotAllow() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ Token otherlv_1=null;
+ Token otherlv_2=null;
+ Token lv_action_3_0=null;
+ Token lv_entity_4_0=null;
+ Token otherlv_5=null;
+ Token lv_actionPerformedByEntity_6_0=null;
+
+
+ enterRule();
+
+ try {
+ // InternalBoilerplateText.g:440:2: ( (otherlv_0= 'shall' ( ( 'not' )=>otherlv_1= 'not' ) ( ( 'allow' )=>otherlv_2= 'allow' ) ( ( (lv_action_3_0= RULE_STRING ) ) | ( ( (lv_entity_4_0= RULE_STRING ) ) otherlv_5= 'to' ( (lv_actionPerformedByEntity_6_0= RULE_STRING ) ) ) ) ) )
+ // InternalBoilerplateText.g:441:2: (otherlv_0= 'shall' ( ( 'not' )=>otherlv_1= 'not' ) ( ( 'allow' )=>otherlv_2= 'allow' ) ( ( (lv_action_3_0= RULE_STRING ) ) | ( ( (lv_entity_4_0= RULE_STRING ) ) otherlv_5= 'to' ( (lv_actionPerformedByEntity_6_0= RULE_STRING ) ) ) ) )
+ {
+ // InternalBoilerplateText.g:441:2: (otherlv_0= 'shall' ( ( 'not' )=>otherlv_1= 'not' ) ( ( 'allow' )=>otherlv_2= 'allow' ) ( ( (lv_action_3_0= RULE_STRING ) ) | ( ( (lv_entity_4_0= RULE_STRING ) ) otherlv_5= 'to' ( (lv_actionPerformedByEntity_6_0= RULE_STRING ) ) ) ) )
+ // InternalBoilerplateText.g:442:3: otherlv_0= 'shall' ( ( 'not' )=>otherlv_1= 'not' ) ( ( 'allow' )=>otherlv_2= 'allow' ) ( ( (lv_action_3_0= RULE_STRING ) ) | ( ( (lv_entity_4_0= RULE_STRING ) ) otherlv_5= 'to' ( (lv_actionPerformedByEntity_6_0= RULE_STRING ) ) ) )
+ {
+ otherlv_0=(Token)match(input,15,FOLLOW_7); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_0, grammarAccess.getShallNotAllowAccess().getShallKeyword_0());
+
+ }
+ // InternalBoilerplateText.g:446:3: ( ( 'not' )=>otherlv_1= 'not' )
+ // InternalBoilerplateText.g:447:4: ( 'not' )=>otherlv_1= 'not'
+ {
+ otherlv_1=(Token)match(input,16,FOLLOW_8); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getShallNotAllowAccess().getNotKeyword_1());
+
+ }
+
+ }
+
+ // InternalBoilerplateText.g:453:3: ( ( 'allow' )=>otherlv_2= 'allow' )
+ // InternalBoilerplateText.g:454:4: ( 'allow' )=>otherlv_2= 'allow'
+ {
+ otherlv_2=(Token)match(input,17,FOLLOW_4); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_2, grammarAccess.getShallNotAllowAccess().getAllowKeyword_2());
+
+ }
+
+ }
+
+ // InternalBoilerplateText.g:460:3: ( ( (lv_action_3_0= RULE_STRING ) ) | ( ( (lv_entity_4_0= RULE_STRING ) ) otherlv_5= 'to' ( (lv_actionPerformedByEntity_6_0= RULE_STRING ) ) ) )
+ int alt5=2;
+ int LA5_0 = input.LA(1);
+
+ if ( (LA5_0==RULE_STRING) ) {
+ int LA5_1 = input.LA(2);
+
+ if ( (LA5_1==18) ) {
+ alt5=2;
+ }
+ else if ( (LA5_1==EOF) ) {
+ alt5=1;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 5, 1, input);
+
+ throw nvae;
+ }
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 5, 0, input);
+
+ throw nvae;
+ }
+ switch (alt5) {
+ case 1 :
+ // InternalBoilerplateText.g:461:4: ( (lv_action_3_0= RULE_STRING ) )
+ {
+ // InternalBoilerplateText.g:461:4: ( (lv_action_3_0= RULE_STRING ) )
+ // InternalBoilerplateText.g:462:5: (lv_action_3_0= RULE_STRING )
+ {
+ // InternalBoilerplateText.g:462:5: (lv_action_3_0= RULE_STRING )
+ // InternalBoilerplateText.g:463:6: lv_action_3_0= RULE_STRING
+ {
+ lv_action_3_0=(Token)match(input,RULE_STRING,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(lv_action_3_0, grammarAccess.getShallNotAllowAccess().getActionSTRINGTerminalRuleCall_3_0_0());
+
+ }
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getShallNotAllowRule());
+ }
+ setWithLastConsumed(
+ current,
+ "action",
+ lv_action_3_0,
+ "org.eclipse.xtext.common.Terminals.STRING");
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalBoilerplateText.g:480:4: ( ( (lv_entity_4_0= RULE_STRING ) ) otherlv_5= 'to' ( (lv_actionPerformedByEntity_6_0= RULE_STRING ) ) )
+ {
+ // InternalBoilerplateText.g:480:4: ( ( (lv_entity_4_0= RULE_STRING ) ) otherlv_5= 'to' ( (lv_actionPerformedByEntity_6_0= RULE_STRING ) ) )
+ // InternalBoilerplateText.g:481:5: ( (lv_entity_4_0= RULE_STRING ) ) otherlv_5= 'to' ( (lv_actionPerformedByEntity_6_0= RULE_STRING ) )
+ {
+ // InternalBoilerplateText.g:481:5: ( (lv_entity_4_0= RULE_STRING ) )
+ // InternalBoilerplateText.g:482:6: (lv_entity_4_0= RULE_STRING )
+ {
+ // InternalBoilerplateText.g:482:6: (lv_entity_4_0= RULE_STRING )
+ // InternalBoilerplateText.g:483:7: lv_entity_4_0= RULE_STRING
+ {
+ lv_entity_4_0=(Token)match(input,RULE_STRING,FOLLOW_9); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(lv_entity_4_0, grammarAccess.getShallNotAllowAccess().getEntitySTRINGTerminalRuleCall_3_1_0_0());
+
+ }
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getShallNotAllowRule());
+ }
+ setWithLastConsumed(
+ current,
+ "entity",
+ lv_entity_4_0,
+ "org.eclipse.xtext.common.Terminals.STRING");
+
+ }
+
+ }
+
+
+ }
+
+ otherlv_5=(Token)match(input,18,FOLLOW_4); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_5, grammarAccess.getShallNotAllowAccess().getToKeyword_3_1_1());
+
+ }
+ // InternalBoilerplateText.g:503:5: ( (lv_actionPerformedByEntity_6_0= RULE_STRING ) )
+ // InternalBoilerplateText.g:504:6: (lv_actionPerformedByEntity_6_0= RULE_STRING )
+ {
+ // InternalBoilerplateText.g:504:6: (lv_actionPerformedByEntity_6_0= RULE_STRING )
+ // InternalBoilerplateText.g:505:7: lv_actionPerformedByEntity_6_0= RULE_STRING
+ {
+ lv_actionPerformedByEntity_6_0=(Token)match(input,RULE_STRING,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(lv_actionPerformedByEntity_6_0, grammarAccess.getShallNotAllowAccess().getActionPerformedByEntitySTRINGTerminalRuleCall_3_1_2_0());
+
+ }
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getShallNotAllowRule());
+ }
+ setWithLastConsumed(
+ current,
+ "actionPerformedByEntity",
+ lv_actionPerformedByEntity_6_0,
+ "org.eclipse.xtext.common.Terminals.STRING");
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleShallNotAllow"
+
+
+ // $ANTLR start "entryRuleShallAllow"
+ // InternalBoilerplateText.g:527:1: entryRuleShallAllow returns [EObject current=null] : iv_ruleShallAllow= ruleShallAllow EOF ;
+ public final EObject entryRuleShallAllow() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleShallAllow = null;
+
+
+ try {
+ // InternalBoilerplateText.g:527:51: (iv_ruleShallAllow= ruleShallAllow EOF )
+ // InternalBoilerplateText.g:528:2: iv_ruleShallAllow= ruleShallAllow EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getShallAllowRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleShallAllow=ruleShallAllow();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleShallAllow;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleShallAllow"
+
+
+ // $ANTLR start "ruleShallAllow"
+ // InternalBoilerplateText.g:534:1: ruleShallAllow returns [EObject current=null] : (otherlv_0= 'shall' ( ( 'allow' )=>otherlv_1= 'allow' ) ( ( (lv_action_2_0= RULE_STRING ) ) | ( ( (lv_entity_3_0= RULE_STRING ) ) otherlv_4= 'to' ( (lv_actionPerformedByEntity_5_0= RULE_STRING ) ) ) ) ) ;
+ public final EObject ruleShallAllow() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ Token otherlv_1=null;
+ Token lv_action_2_0=null;
+ Token lv_entity_3_0=null;
+ Token otherlv_4=null;
+ Token lv_actionPerformedByEntity_5_0=null;
+
+
+ enterRule();
+
+ try {
+ // InternalBoilerplateText.g:540:2: ( (otherlv_0= 'shall' ( ( 'allow' )=>otherlv_1= 'allow' ) ( ( (lv_action_2_0= RULE_STRING ) ) | ( ( (lv_entity_3_0= RULE_STRING ) ) otherlv_4= 'to' ( (lv_actionPerformedByEntity_5_0= RULE_STRING ) ) ) ) ) )
+ // InternalBoilerplateText.g:541:2: (otherlv_0= 'shall' ( ( 'allow' )=>otherlv_1= 'allow' ) ( ( (lv_action_2_0= RULE_STRING ) ) | ( ( (lv_entity_3_0= RULE_STRING ) ) otherlv_4= 'to' ( (lv_actionPerformedByEntity_5_0= RULE_STRING ) ) ) ) )
+ {
+ // InternalBoilerplateText.g:541:2: (otherlv_0= 'shall' ( ( 'allow' )=>otherlv_1= 'allow' ) ( ( (lv_action_2_0= RULE_STRING ) ) | ( ( (lv_entity_3_0= RULE_STRING ) ) otherlv_4= 'to' ( (lv_actionPerformedByEntity_5_0= RULE_STRING ) ) ) ) )
+ // InternalBoilerplateText.g:542:3: otherlv_0= 'shall' ( ( 'allow' )=>otherlv_1= 'allow' ) ( ( (lv_action_2_0= RULE_STRING ) ) | ( ( (lv_entity_3_0= RULE_STRING ) ) otherlv_4= 'to' ( (lv_actionPerformedByEntity_5_0= RULE_STRING ) ) ) )
+ {
+ otherlv_0=(Token)match(input,15,FOLLOW_8); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_0, grammarAccess.getShallAllowAccess().getShallKeyword_0());
+
+ }
+ // InternalBoilerplateText.g:546:3: ( ( 'allow' )=>otherlv_1= 'allow' )
+ // InternalBoilerplateText.g:547:4: ( 'allow' )=>otherlv_1= 'allow'
+ {
+ otherlv_1=(Token)match(input,17,FOLLOW_4); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getShallAllowAccess().getAllowKeyword_1());
+
+ }
+
+ }
+
+ // InternalBoilerplateText.g:553:3: ( ( (lv_action_2_0= RULE_STRING ) ) | ( ( (lv_entity_3_0= RULE_STRING ) ) otherlv_4= 'to' ( (lv_actionPerformedByEntity_5_0= RULE_STRING ) ) ) )
+ int alt6=2;
+ int LA6_0 = input.LA(1);
+
+ if ( (LA6_0==RULE_STRING) ) {
+ int LA6_1 = input.LA(2);
+
+ if ( (LA6_1==EOF) ) {
+ alt6=1;
+ }
+ else if ( (LA6_1==18) ) {
+ alt6=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 6, 1, input);
+
+ throw nvae;
+ }
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 6, 0, input);
+
+ throw nvae;
+ }
+ switch (alt6) {
+ case 1 :
+ // InternalBoilerplateText.g:554:4: ( (lv_action_2_0= RULE_STRING ) )
+ {
+ // InternalBoilerplateText.g:554:4: ( (lv_action_2_0= RULE_STRING ) )
+ // InternalBoilerplateText.g:555:5: (lv_action_2_0= RULE_STRING )
+ {
+ // InternalBoilerplateText.g:555:5: (lv_action_2_0= RULE_STRING )
+ // InternalBoilerplateText.g:556:6: lv_action_2_0= RULE_STRING
+ {
+ lv_action_2_0=(Token)match(input,RULE_STRING,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(lv_action_2_0, grammarAccess.getShallAllowAccess().getActionSTRINGTerminalRuleCall_2_0_0());
+
+ }
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getShallAllowRule());
+ }
+ setWithLastConsumed(
+ current,
+ "action",
+ lv_action_2_0,
+ "org.eclipse.xtext.common.Terminals.STRING");
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // InternalBoilerplateText.g:573:4: ( ( (lv_entity_3_0= RULE_STRING ) ) otherlv_4= 'to' ( (lv_actionPerformedByEntity_5_0= RULE_STRING ) ) )
+ {
+ // InternalBoilerplateText.g:573:4: ( ( (lv_entity_3_0= RULE_STRING ) ) otherlv_4= 'to' ( (lv_actionPerformedByEntity_5_0= RULE_STRING ) ) )
+ // InternalBoilerplateText.g:574:5: ( (lv_entity_3_0= RULE_STRING ) ) otherlv_4= 'to' ( (lv_actionPerformedByEntity_5_0= RULE_STRING ) )
+ {
+ // InternalBoilerplateText.g:574:5: ( (lv_entity_3_0= RULE_STRING ) )
+ // InternalBoilerplateText.g:575:6: (lv_entity_3_0= RULE_STRING )
+ {
+ // InternalBoilerplateText.g:575:6: (lv_entity_3_0= RULE_STRING )
+ // InternalBoilerplateText.g:576:7: lv_entity_3_0= RULE_STRING
+ {
+ lv_entity_3_0=(Token)match(input,RULE_STRING,FOLLOW_9); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(lv_entity_3_0, grammarAccess.getShallAllowAccess().getEntitySTRINGTerminalRuleCall_2_1_0_0());
+
+ }
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getShallAllowRule());
+ }
+ setWithLastConsumed(
+ current,
+ "entity",
+ lv_entity_3_0,
+ "org.eclipse.xtext.common.Terminals.STRING");
+
+ }
+
+ }
+
+
+ }
+
+ otherlv_4=(Token)match(input,18,FOLLOW_4); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_4, grammarAccess.getShallAllowAccess().getToKeyword_2_1_1());
+
+ }
+ // InternalBoilerplateText.g:596:5: ( (lv_actionPerformedByEntity_5_0= RULE_STRING ) )
+ // InternalBoilerplateText.g:597:6: (lv_actionPerformedByEntity_5_0= RULE_STRING )
+ {
+ // InternalBoilerplateText.g:597:6: (lv_actionPerformedByEntity_5_0= RULE_STRING )
+ // InternalBoilerplateText.g:598:7: lv_actionPerformedByEntity_5_0= RULE_STRING
+ {
+ lv_actionPerformedByEntity_5_0=(Token)match(input,RULE_STRING,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(lv_actionPerformedByEntity_5_0, grammarAccess.getShallAllowAccess().getActionPerformedByEntitySTRINGTerminalRuleCall_2_1_2_0());
+
+ }
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getShallAllowRule());
+ }
+ setWithLastConsumed(
+ current,
+ "actionPerformedByEntity",
+ lv_actionPerformedByEntity_5_0,
+ "org.eclipse.xtext.common.Terminals.STRING");
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleShallAllow"
+
+
+ // $ANTLR start "entryRuleShallNot"
+ // InternalBoilerplateText.g:620:1: entryRuleShallNot returns [EObject current=null] : iv_ruleShallNot= ruleShallNot EOF ;
+ public final EObject entryRuleShallNot() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleShallNot = null;
+
+
+ try {
+ // InternalBoilerplateText.g:620:49: (iv_ruleShallNot= ruleShallNot EOF )
+ // InternalBoilerplateText.g:621:2: iv_ruleShallNot= ruleShallNot EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getShallNotRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleShallNot=ruleShallNot();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleShallNot;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleShallNot"
+
+
+ // $ANTLR start "ruleShallNot"
+ // InternalBoilerplateText.g:627:1: ruleShallNot returns [EObject current=null] : (otherlv_0= 'shall' ( ( 'not' )=>otherlv_1= 'not' ) (otherlv_2= 'be' ( ( 'able' )=>otherlv_3= 'able' ) ( ( 'to' )=>otherlv_4= 'to' ) )? ( (lv_action_5_0= RULE_STRING ) ) ) ;
+ public final EObject ruleShallNot() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ Token otherlv_1=null;
+ Token otherlv_2=null;
+ Token otherlv_3=null;
+ Token otherlv_4=null;
+ Token lv_action_5_0=null;
+
+
+ enterRule();
+
+ try {
+ // InternalBoilerplateText.g:633:2: ( (otherlv_0= 'shall' ( ( 'not' )=>otherlv_1= 'not' ) (otherlv_2= 'be' ( ( 'able' )=>otherlv_3= 'able' ) ( ( 'to' )=>otherlv_4= 'to' ) )? ( (lv_action_5_0= RULE_STRING ) ) ) )
+ // InternalBoilerplateText.g:634:2: (otherlv_0= 'shall' ( ( 'not' )=>otherlv_1= 'not' ) (otherlv_2= 'be' ( ( 'able' )=>otherlv_3= 'able' ) ( ( 'to' )=>otherlv_4= 'to' ) )? ( (lv_action_5_0= RULE_STRING ) ) )
+ {
+ // InternalBoilerplateText.g:634:2: (otherlv_0= 'shall' ( ( 'not' )=>otherlv_1= 'not' ) (otherlv_2= 'be' ( ( 'able' )=>otherlv_3= 'able' ) ( ( 'to' )=>otherlv_4= 'to' ) )? ( (lv_action_5_0= RULE_STRING ) ) )
+ // InternalBoilerplateText.g:635:3: otherlv_0= 'shall' ( ( 'not' )=>otherlv_1= 'not' ) (otherlv_2= 'be' ( ( 'able' )=>otherlv_3= 'able' ) ( ( 'to' )=>otherlv_4= 'to' ) )? ( (lv_action_5_0= RULE_STRING ) )
+ {
+ otherlv_0=(Token)match(input,15,FOLLOW_7); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_0, grammarAccess.getShallNotAccess().getShallKeyword_0());
+
+ }
+ // InternalBoilerplateText.g:639:3: ( ( 'not' )=>otherlv_1= 'not' )
+ // InternalBoilerplateText.g:640:4: ( 'not' )=>otherlv_1= 'not'
+ {
+ otherlv_1=(Token)match(input,16,FOLLOW_10); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getShallNotAccess().getNotKeyword_1());
+
+ }
+
+ }
+
+ // InternalBoilerplateText.g:646:3: (otherlv_2= 'be' ( ( 'able' )=>otherlv_3= 'able' ) ( ( 'to' )=>otherlv_4= 'to' ) )?
+ int alt7=2;
+ int LA7_0 = input.LA(1);
+
+ if ( (LA7_0==19) ) {
+ alt7=1;
+ }
+ switch (alt7) {
+ case 1 :
+ // InternalBoilerplateText.g:647:4: otherlv_2= 'be' ( ( 'able' )=>otherlv_3= 'able' ) ( ( 'to' )=>otherlv_4= 'to' )
+ {
+ otherlv_2=(Token)match(input,19,FOLLOW_11); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_2, grammarAccess.getShallNotAccess().getBeKeyword_2_0());
+
+ }
+ // InternalBoilerplateText.g:651:4: ( ( 'able' )=>otherlv_3= 'able' )
+ // InternalBoilerplateText.g:652:5: ( 'able' )=>otherlv_3= 'able'
+ {
+ otherlv_3=(Token)match(input,20,FOLLOW_9); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_3, grammarAccess.getShallNotAccess().getAbleKeyword_2_1());
+
+ }
+
+ }
+
+ // InternalBoilerplateText.g:658:4: ( ( 'to' )=>otherlv_4= 'to' )
+ // InternalBoilerplateText.g:659:5: ( 'to' )=>otherlv_4= 'to'
+ {
+ otherlv_4=(Token)match(input,18,FOLLOW_4); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_4, grammarAccess.getShallNotAccess().getToKeyword_2_2());
+
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ // InternalBoilerplateText.g:666:3: ( (lv_action_5_0= RULE_STRING ) )
+ // InternalBoilerplateText.g:667:4: (lv_action_5_0= RULE_STRING )
+ {
+ // InternalBoilerplateText.g:667:4: (lv_action_5_0= RULE_STRING )
+ // InternalBoilerplateText.g:668:5: lv_action_5_0= RULE_STRING
+ {
+ lv_action_5_0=(Token)match(input,RULE_STRING,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(lv_action_5_0, grammarAccess.getShallNotAccess().getActionSTRINGTerminalRuleCall_3_0());
+
+ }
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getShallNotRule());
+ }
+ setWithLastConsumed(
+ current,
+ "action",
+ lv_action_5_0,
+ "org.eclipse.xtext.common.Terminals.STRING");
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleShallNot"
+
+
+ // $ANTLR start "entryRuleShall"
+ // InternalBoilerplateText.g:688:1: entryRuleShall returns [EObject current=null] : iv_ruleShall= ruleShall EOF ;
+ public final EObject entryRuleShall() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleShall = null;
+
+
+ try {
+ // InternalBoilerplateText.g:688:46: (iv_ruleShall= ruleShall EOF )
+ // InternalBoilerplateText.g:689:2: iv_ruleShall= ruleShall EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getShallRule());
+ }
+ pushFollow(FOLLOW_1);
+ iv_ruleShall=ruleShall();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleShall;
+ }
+ match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleShall"
+
+
+ // $ANTLR start "ruleShall"
+ // InternalBoilerplateText.g:695:1: ruleShall returns [EObject current=null] : (otherlv_0= 'shall' ( ( 'be' )=> (otherlv_1= 'be' ( ( 'able' )=>otherlv_2= 'able' ) ( ( 'to' )=>otherlv_3= 'to' ) ) )? ( (lv_action_4_0= RULE_STRING ) ) ) ;
+ public final EObject ruleShall() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ Token otherlv_1=null;
+ Token otherlv_2=null;
+ Token otherlv_3=null;
+ Token lv_action_4_0=null;
+
+
+ enterRule();
+
+ try {
+ // InternalBoilerplateText.g:701:2: ( (otherlv_0= 'shall' ( ( 'be' )=> (otherlv_1= 'be' ( ( 'able' )=>otherlv_2= 'able' ) ( ( 'to' )=>otherlv_3= 'to' ) ) )? ( (lv_action_4_0= RULE_STRING ) ) ) )
+ // InternalBoilerplateText.g:702:2: (otherlv_0= 'shall' ( ( 'be' )=> (otherlv_1= 'be' ( ( 'able' )=>otherlv_2= 'able' ) ( ( 'to' )=>otherlv_3= 'to' ) ) )? ( (lv_action_4_0= RULE_STRING ) ) )
+ {
+ // InternalBoilerplateText.g:702:2: (otherlv_0= 'shall' ( ( 'be' )=> (otherlv_1= 'be' ( ( 'able' )=>otherlv_2= 'able' ) ( ( 'to' )=>otherlv_3= 'to' ) ) )? ( (lv_action_4_0= RULE_STRING ) ) )
+ // InternalBoilerplateText.g:703:3: otherlv_0= 'shall' ( ( 'be' )=> (otherlv_1= 'be' ( ( 'able' )=>otherlv_2= 'able' ) ( ( 'to' )=>otherlv_3= 'to' ) ) )? ( (lv_action_4_0= RULE_STRING ) )
+ {
+ otherlv_0=(Token)match(input,15,FOLLOW_10); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_0, grammarAccess.getShallAccess().getShallKeyword_0());
+
+ }
+ // InternalBoilerplateText.g:707:3: ( ( 'be' )=> (otherlv_1= 'be' ( ( 'able' )=>otherlv_2= 'able' ) ( ( 'to' )=>otherlv_3= 'to' ) ) )?
+ int alt8=2;
+ int LA8_0 = input.LA(1);
+
+ if ( (LA8_0==19) && (synpred7_InternalBoilerplateText())) {
+ alt8=1;
+ }
+ switch (alt8) {
+ case 1 :
+ // InternalBoilerplateText.g:708:4: ( 'be' )=> (otherlv_1= 'be' ( ( 'able' )=>otherlv_2= 'able' ) ( ( 'to' )=>otherlv_3= 'to' ) )
+ {
+ // InternalBoilerplateText.g:709:4: (otherlv_1= 'be' ( ( 'able' )=>otherlv_2= 'able' ) ( ( 'to' )=>otherlv_3= 'to' ) )
+ // InternalBoilerplateText.g:710:5: otherlv_1= 'be' ( ( 'able' )=>otherlv_2= 'able' ) ( ( 'to' )=>otherlv_3= 'to' )
+ {
+ otherlv_1=(Token)match(input,19,FOLLOW_11); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getShallAccess().getBeKeyword_1_0_0());
+
+ }
+ // InternalBoilerplateText.g:714:5: ( ( 'able' )=>otherlv_2= 'able' )
+ // InternalBoilerplateText.g:715:6: ( 'able' )=>otherlv_2= 'able'
+ {
+ otherlv_2=(Token)match(input,20,FOLLOW_9); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_2, grammarAccess.getShallAccess().getAbleKeyword_1_0_1());
+
+ }
+
+ }
+
+ // InternalBoilerplateText.g:721:5: ( ( 'to' )=>otherlv_3= 'to' )
+ // InternalBoilerplateText.g:722:6: ( 'to' )=>otherlv_3= 'to'
+ {
+ otherlv_3=(Token)match(input,18,FOLLOW_4); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_3, grammarAccess.getShallAccess().getToKeyword_1_0_2());
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ // InternalBoilerplateText.g:730:3: ( (lv_action_4_0= RULE_STRING ) )
+ // InternalBoilerplateText.g:731:4: (lv_action_4_0= RULE_STRING )
+ {
+ // InternalBoilerplateText.g:731:4: (lv_action_4_0= RULE_STRING )
+ // InternalBoilerplateText.g:732:5: lv_action_4_0= RULE_STRING
+ {
+ lv_action_4_0=(Token)match(input,RULE_STRING,FOLLOW_2); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(lv_action_4_0, grammarAccess.getShallAccess().getActionSTRINGTerminalRuleCall_2_0());
+
+ }
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getShallRule());
+ }
+ setWithLastConsumed(
+ current,
+ "action",
+ lv_action_4_0,
+ "org.eclipse.xtext.common.Terminals.STRING");
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ leaveRule();
+
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleShall"
+
+ // $ANTLR start synpred7_InternalBoilerplateText
+ public final void synpred7_InternalBoilerplateText_fragment() throws RecognitionException {
+ // InternalBoilerplateText.g:708:4: ( 'be' )
+ // InternalBoilerplateText.g:708:5: 'be'
+ {
+ match(input,19,FOLLOW_2); if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred7_InternalBoilerplateText
+
+ // Delegated rules
+
+ public final boolean synpred7_InternalBoilerplateText() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred7_InternalBoilerplateText_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+
+
+
+
+ public static final BitSet FOLLOW_1 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_2 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_3 = new BitSet(new long[]{0x0000000000000800L});
+ public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x0000000000008000L});
+ public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x0000000000002002L});
+ public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000000000010000L});
+ public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000000000020000L});
+ public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000000000040000L});
+ public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0000000000080010L});
+ public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000000000100000L});
+
+}
\ No newline at end of file
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/scoping/AbstractBoilerplateTextScopeProvider.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/scoping/AbstractBoilerplateTextScopeProvider.java
new file mode 100644
index 0000000..707cbd6
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/scoping/AbstractBoilerplateTextScopeProvider.java
@@ -0,0 +1,23 @@
+/*****************************************************************************
+ * Copyright (c) 2017 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *
+ * Mauricio Alferez (mauricio.alferez@cea.fr) CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+/*
+ * generated by Xtext 2.11.0
+ */
+package org.eclipse.papyrus.requirements.sysml14.scoping;
+
+import org.eclipse.xtext.scoping.impl.DelegatingScopeProvider;
+
+public abstract class AbstractBoilerplateTextScopeProvider extends DelegatingScopeProvider {
+}
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/serializer/BoilerplateTextSemanticSequencer.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/serializer/BoilerplateTextSemanticSequencer.java
new file mode 100644
index 0000000..9ee7d04
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/serializer/BoilerplateTextSemanticSequencer.java
@@ -0,0 +1,233 @@
+/*****************************************************************************
+ * Copyright (c) 2017 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *
+ * Mauricio Alferez (mauricio.alferez@cea.fr) CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+/*
+ * generated by Xtext 2.11.0
+ */
+package org.eclipse.papyrus.requirements.sysml14.serializer;
+
+import com.google.inject.Inject;
+import java.util.Set;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.BoilerplateTextPackage;
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.If;
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.Model;
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.Requirement;
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.Shall;
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.ShallAllow;
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.ShallNot;
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.ShallNotAllow;
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.Subject;
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.While;
+import org.eclipse.papyrus.requirements.sysml14.services.BoilerplateTextGrammarAccess;
+import org.eclipse.xtext.Action;
+import org.eclipse.xtext.Parameter;
+import org.eclipse.xtext.ParserRule;
+import org.eclipse.xtext.serializer.ISerializationContext;
+import org.eclipse.xtext.serializer.acceptor.SequenceFeeder;
+import org.eclipse.xtext.serializer.sequencer.AbstractDelegatingSemanticSequencer;
+import org.eclipse.xtext.serializer.sequencer.ITransientValueService.ValueTransient;
+
+@SuppressWarnings("all")
+public class BoilerplateTextSemanticSequencer extends AbstractDelegatingSemanticSequencer {
+
+ @Inject
+ private BoilerplateTextGrammarAccess grammarAccess;
+
+ @Override
+ public void sequence(ISerializationContext context, EObject semanticObject) {
+ EPackage epackage = semanticObject.eClass().getEPackage();
+ ParserRule rule = context.getParserRule();
+ Action action = context.getAssignedAction();
+ Set<Parameter> parameters = context.getEnabledBooleanParameters();
+ if (epackage == BoilerplateTextPackage.eINSTANCE)
+ switch (semanticObject.eClass().getClassifierID()) {
+ case BoilerplateTextPackage.IF:
+ sequence_If(context, (If) semanticObject);
+ return;
+ case BoilerplateTextPackage.MODEL:
+ sequence_Model(context, (Model) semanticObject);
+ return;
+ case BoilerplateTextPackage.REQUIREMENT:
+ sequence_Requirement(context, (Requirement) semanticObject);
+ return;
+ case BoilerplateTextPackage.SHALL:
+ sequence_Shall(context, (Shall) semanticObject);
+ return;
+ case BoilerplateTextPackage.SHALL_ALLOW:
+ sequence_ShallAllow(context, (ShallAllow) semanticObject);
+ return;
+ case BoilerplateTextPackage.SHALL_NOT:
+ sequence_ShallNot(context, (ShallNot) semanticObject);
+ return;
+ case BoilerplateTextPackage.SHALL_NOT_ALLOW:
+ sequence_ShallNotAllow(context, (ShallNotAllow) semanticObject);
+ return;
+ case BoilerplateTextPackage.SUBJECT:
+ sequence_Subject(context, (Subject) semanticObject);
+ return;
+ case BoilerplateTextPackage.WHILE:
+ sequence_While(context, (While) semanticObject);
+ return;
+ }
+ if (errorAcceptor != null)
+ errorAcceptor.accept(diagnosticProvider.createInvalidContextOrTypeDiagnostic(semanticObject, context));
+ }
+
+ /**
+ * Contexts:
+ * Prefix returns If
+ * If returns If
+ *
+ * Constraint:
+ * (event+=STRING event+=STRING*)
+ */
+ protected void sequence_If(ISerializationContext context, If semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * Model returns Model
+ *
+ * Constraint:
+ * model=Requirement
+ */
+ protected void sequence_Model(ISerializationContext context, Model semanticObject) {
+ if (errorAcceptor != null) {
+ if (transientValues.isValueTransient(semanticObject, BoilerplateTextPackage.Literals.MODEL__MODEL) == ValueTransient.YES)
+ errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, BoilerplateTextPackage.Literals.MODEL__MODEL));
+ }
+ SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+ feeder.accept(grammarAccess.getModelAccess().getModelRequirementParserRuleCall_0(), semanticObject.getModel());
+ feeder.finish();
+ }
+
+
+ /**
+ * Contexts:
+ * Requirement returns Requirement
+ *
+ * Constraint:
+ * (prefix=Prefix? system=Subject predicate=Predicate)
+ */
+ protected void sequence_Requirement(ISerializationContext context, Requirement semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * Predicate returns ShallAllow
+ * ShallAllow returns ShallAllow
+ *
+ * Constraint:
+ * (action=STRING | (entity=STRING actionPerformedByEntity=STRING))
+ */
+ protected void sequence_ShallAllow(ISerializationContext context, ShallAllow semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * Predicate returns ShallNotAllow
+ * ShallNotAllow returns ShallNotAllow
+ *
+ * Constraint:
+ * (action=STRING | (entity=STRING actionPerformedByEntity=STRING))
+ */
+ protected void sequence_ShallNotAllow(ISerializationContext context, ShallNotAllow semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Contexts:
+ * Predicate returns ShallNot
+ * ShallNot returns ShallNot
+ *
+ * Constraint:
+ * action=STRING
+ */
+ protected void sequence_ShallNot(ISerializationContext context, ShallNot semanticObject) {
+ if (errorAcceptor != null) {
+ if (transientValues.isValueTransient(semanticObject, BoilerplateTextPackage.Literals.PREDICATE__ACTION) == ValueTransient.YES)
+ errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, BoilerplateTextPackage.Literals.PREDICATE__ACTION));
+ }
+ SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+ feeder.accept(grammarAccess.getShallNotAccess().getActionSTRINGTerminalRuleCall_3_0(), semanticObject.getAction());
+ feeder.finish();
+ }
+
+
+ /**
+ * Contexts:
+ * Predicate returns Shall
+ * Shall returns Shall
+ *
+ * Constraint:
+ * action=STRING
+ */
+ protected void sequence_Shall(ISerializationContext context, Shall semanticObject) {
+ if (errorAcceptor != null) {
+ if (transientValues.isValueTransient(semanticObject, BoilerplateTextPackage.Literals.PREDICATE__ACTION) == ValueTransient.YES)
+ errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, BoilerplateTextPackage.Literals.PREDICATE__ACTION));
+ }
+ SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+ feeder.accept(grammarAccess.getShallAccess().getActionSTRINGTerminalRuleCall_2_0(), semanticObject.getAction());
+ feeder.finish();
+ }
+
+
+ /**
+ * Contexts:
+ * Subject returns Subject
+ *
+ * Constraint:
+ * system=STRING
+ */
+ protected void sequence_Subject(ISerializationContext context, Subject semanticObject) {
+ if (errorAcceptor != null) {
+ if (transientValues.isValueTransient(semanticObject, BoilerplateTextPackage.Literals.SUBJECT__SYSTEM) == ValueTransient.YES)
+ errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, BoilerplateTextPackage.Literals.SUBJECT__SYSTEM));
+ }
+ SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+ feeder.accept(grammarAccess.getSubjectAccess().getSystemSTRINGTerminalRuleCall_0(), semanticObject.getSystem());
+ feeder.finish();
+ }
+
+
+ /**
+ * Contexts:
+ * Prefix returns While
+ * While returns While
+ *
+ * Constraint:
+ * state=STRING
+ */
+ protected void sequence_While(ISerializationContext context, While semanticObject) {
+ if (errorAcceptor != null) {
+ if (transientValues.isValueTransient(semanticObject, BoilerplateTextPackage.Literals.WHILE__STATE) == ValueTransient.YES)
+ errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, BoilerplateTextPackage.Literals.WHILE__STATE));
+ }
+ SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+ feeder.accept(grammarAccess.getWhileAccess().getStateSTRINGTerminalRuleCall_1_0(), semanticObject.getState());
+ feeder.finish();
+ }
+
+
+}
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/serializer/BoilerplateTextSyntacticSequencer.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/serializer/BoilerplateTextSyntacticSequencer.java
new file mode 100644
index 0000000..312ed60
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/serializer/BoilerplateTextSyntacticSequencer.java
@@ -0,0 +1,90 @@
+/*****************************************************************************
+ * Copyright (c) 2017 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *
+ * Mauricio Alferez (mauricio.alferez@cea.fr) CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+/*
+ * generated by Xtext 2.11.0
+ */
+package org.eclipse.papyrus.requirements.sysml14.serializer;
+
+import com.google.inject.Inject;
+import java.util.List;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.requirements.sysml14.services.BoilerplateTextGrammarAccess;
+import org.eclipse.xtext.IGrammarAccess;
+import org.eclipse.xtext.RuleCall;
+import org.eclipse.xtext.nodemodel.INode;
+import org.eclipse.xtext.serializer.analysis.GrammarAlias.AbstractElementAlias;
+import org.eclipse.xtext.serializer.analysis.GrammarAlias.GroupAlias;
+import org.eclipse.xtext.serializer.analysis.GrammarAlias.TokenAlias;
+import org.eclipse.xtext.serializer.analysis.ISyntacticSequencerPDAProvider.ISynNavigable;
+import org.eclipse.xtext.serializer.analysis.ISyntacticSequencerPDAProvider.ISynTransition;
+import org.eclipse.xtext.serializer.sequencer.AbstractSyntacticSequencer;
+
+@SuppressWarnings("all")
+public class BoilerplateTextSyntacticSequencer extends AbstractSyntacticSequencer {
+
+ protected BoilerplateTextGrammarAccess grammarAccess;
+ protected AbstractElementAlias match_ShallNot___BeKeyword_2_0_AbleKeyword_2_1_ToKeyword_2_2__q;
+ protected AbstractElementAlias match_Shall___BeKeyword_1_0_0_AbleKeyword_1_0_1_ToKeyword_1_0_2__q;
+
+ @Inject
+ protected void init(IGrammarAccess access) {
+ grammarAccess = (BoilerplateTextGrammarAccess) access;
+ match_ShallNot___BeKeyword_2_0_AbleKeyword_2_1_ToKeyword_2_2__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getShallNotAccess().getBeKeyword_2_0()), new TokenAlias(false, false, grammarAccess.getShallNotAccess().getAbleKeyword_2_1()), new TokenAlias(false, false, grammarAccess.getShallNotAccess().getToKeyword_2_2()));
+ match_Shall___BeKeyword_1_0_0_AbleKeyword_1_0_1_ToKeyword_1_0_2__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getShallAccess().getBeKeyword_1_0_0()), new TokenAlias(false, false, grammarAccess.getShallAccess().getAbleKeyword_1_0_1()), new TokenAlias(false, false, grammarAccess.getShallAccess().getToKeyword_1_0_2()));
+ }
+
+ @Override
+ protected String getUnassignedRuleCallToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+ return "";
+ }
+
+
+ @Override
+ protected void emitUnassignedTokens(EObject semanticObject, ISynTransition transition, INode fromNode, INode toNode) {
+ if (transition.getAmbiguousSyntaxes().isEmpty()) return;
+ List<INode> transitionNodes = collectNodes(fromNode, toNode);
+ for (AbstractElementAlias syntax : transition.getAmbiguousSyntaxes()) {
+ List<INode> syntaxNodes = getNodesFor(transitionNodes, syntax);
+ if (match_ShallNot___BeKeyword_2_0_AbleKeyword_2_1_ToKeyword_2_2__q.equals(syntax))
+ emit_ShallNot___BeKeyword_2_0_AbleKeyword_2_1_ToKeyword_2_2__q(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if (match_Shall___BeKeyword_1_0_0_AbleKeyword_1_0_1_ToKeyword_1_0_2__q.equals(syntax))
+ emit_Shall___BeKeyword_1_0_0_AbleKeyword_1_0_1_ToKeyword_1_0_2__q(semanticObject, getLastNavigableState(), syntaxNodes);
+ else acceptNodes(getLastNavigableState(), syntaxNodes);
+ }
+ }
+
+ /**
+ * Ambiguous syntax:
+ * ('be' 'able' 'to')?
+ *
+ * This ambiguous syntax occurs at:
+ * (rule start) 'shall' 'not' (ambiguity) action=STRING
+ */
+ protected void emit_ShallNot___BeKeyword_2_0_AbleKeyword_2_1_ToKeyword_2_2__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Ambiguous syntax:
+ * ('be' 'able' 'to')?
+ *
+ * This ambiguous syntax occurs at:
+ * (rule start) 'shall' (ambiguity) action=STRING
+ */
+ protected void emit_Shall___BeKeyword_1_0_0_AbleKeyword_1_0_1_ToKeyword_1_0_2__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+}
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/services/BoilerplateTextGrammarAccess.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/services/BoilerplateTextGrammarAccess.java
new file mode 100644
index 0000000..ba1e24f
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/services/BoilerplateTextGrammarAccess.java
@@ -0,0 +1,638 @@
+/*****************************************************************************
+ * Copyright (c) 2017 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *
+ * Mauricio Alferez (mauricio.alferez@cea.fr) CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+/*
+ * generated by Xtext 2.11.0
+ */
+package org.eclipse.papyrus.requirements.sysml14.services;
+
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import java.util.List;
+import org.eclipse.xtext.Alternatives;
+import org.eclipse.xtext.Assignment;
+import org.eclipse.xtext.Grammar;
+import org.eclipse.xtext.GrammarUtil;
+import org.eclipse.xtext.Group;
+import org.eclipse.xtext.Keyword;
+import org.eclipse.xtext.ParserRule;
+import org.eclipse.xtext.RuleCall;
+import org.eclipse.xtext.TerminalRule;
+import org.eclipse.xtext.common.services.TerminalsGrammarAccess;
+import org.eclipse.xtext.service.AbstractElementFinder.AbstractGrammarElementFinder;
+import org.eclipse.xtext.service.GrammarProvider;
+
+@Singleton
+public class BoilerplateTextGrammarAccess extends AbstractGrammarElementFinder {
+
+ public class ModelElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.papyrus.requirements.sysml14.BoilerplateText.Model");
+ private final Assignment cModelAssignment = (Assignment)rule.eContents().get(1);
+ private final RuleCall cModelRequirementParserRuleCall_0 = (RuleCall)cModelAssignment.eContents().get(0);
+
+ //Model:
+ // model=Requirement;
+ @Override public ParserRule getRule() { return rule; }
+
+ //model=Requirement
+ public Assignment getModelAssignment() { return cModelAssignment; }
+
+ //Requirement
+ public RuleCall getModelRequirementParserRuleCall_0() { return cModelRequirementParserRuleCall_0; }
+ }
+ public class RequirementElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.papyrus.requirements.sysml14.BoilerplateText.Requirement");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Group cGroup_0 = (Group)cGroup.eContents().get(0);
+ private final Assignment cPrefixAssignment_0_0 = (Assignment)cGroup_0.eContents().get(0);
+ private final RuleCall cPrefixPrefixParserRuleCall_0_0_0 = (RuleCall)cPrefixAssignment_0_0.eContents().get(0);
+ private final Keyword cCommaKeyword_0_1 = (Keyword)cGroup_0.eContents().get(1);
+ private final Assignment cSystemAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final RuleCall cSystemSubjectParserRuleCall_1_0 = (RuleCall)cSystemAssignment_1.eContents().get(0);
+ private final Assignment cPredicateAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cPredicatePredicateParserRuleCall_2_0 = (RuleCall)cPredicateAssignment_2.eContents().get(0);
+
+ //Requirement:
+ // (prefix=Prefix ",")?
+ // system=Subject
+ // predicate=Predicate;
+ @Override public ParserRule getRule() { return rule; }
+
+ //(prefix=Prefix ",")? system=Subject predicate=Predicate
+ public Group getGroup() { return cGroup; }
+
+ //(prefix=Prefix ",")?
+ public Group getGroup_0() { return cGroup_0; }
+
+ //prefix=Prefix
+ public Assignment getPrefixAssignment_0_0() { return cPrefixAssignment_0_0; }
+
+ //Prefix
+ public RuleCall getPrefixPrefixParserRuleCall_0_0_0() { return cPrefixPrefixParserRuleCall_0_0_0; }
+
+ //","
+ public Keyword getCommaKeyword_0_1() { return cCommaKeyword_0_1; }
+
+ //system=Subject
+ public Assignment getSystemAssignment_1() { return cSystemAssignment_1; }
+
+ //Subject
+ public RuleCall getSystemSubjectParserRuleCall_1_0() { return cSystemSubjectParserRuleCall_1_0; }
+
+ //predicate=Predicate
+ public Assignment getPredicateAssignment_2() { return cPredicateAssignment_2; }
+
+ //Predicate
+ public RuleCall getPredicatePredicateParserRuleCall_2_0() { return cPredicatePredicateParserRuleCall_2_0; }
+ }
+ public class SubjectElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.papyrus.requirements.sysml14.BoilerplateText.Subject");
+ private final Assignment cSystemAssignment = (Assignment)rule.eContents().get(1);
+ private final RuleCall cSystemSTRINGTerminalRuleCall_0 = (RuleCall)cSystemAssignment.eContents().get(0);
+
+ //Subject:
+ // system=STRING;
+ @Override public ParserRule getRule() { return rule; }
+
+ //system=STRING
+ public Assignment getSystemAssignment() { return cSystemAssignment; }
+
+ //STRING
+ public RuleCall getSystemSTRINGTerminalRuleCall_0() { return cSystemSTRINGTerminalRuleCall_0; }
+ }
+ public class PrefixElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.papyrus.requirements.sysml14.BoilerplateText.Prefix");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final RuleCall cIfParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+ private final RuleCall cWhileParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+
+ //Prefix:
+ // If | While;
+ @Override public ParserRule getRule() { return rule; }
+
+ //If | While
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //If
+ public RuleCall getIfParserRuleCall_0() { return cIfParserRuleCall_0; }
+
+ //While
+ public RuleCall getWhileParserRuleCall_1() { return cWhileParserRuleCall_1; }
+ }
+ public class IfElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.papyrus.requirements.sysml14.BoilerplateText.If");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Keyword cIfKeyword_0 = (Keyword)cGroup.eContents().get(0);
+ private final Assignment cEventAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final RuleCall cEventSTRINGTerminalRuleCall_1_0 = (RuleCall)cEventAssignment_1.eContents().get(0);
+ private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
+ private final Keyword cAndKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
+ private final Assignment cEventAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
+ private final RuleCall cEventSTRINGTerminalRuleCall_2_1_0 = (RuleCall)cEventAssignment_2_1.eContents().get(0);
+
+ //If:
+ // "if" event+=STRING ("and" event+=STRING)*;
+ @Override public ParserRule getRule() { return rule; }
+
+ //"if" event+=STRING ("and" event+=STRING)*
+ public Group getGroup() { return cGroup; }
+
+ //"if"
+ public Keyword getIfKeyword_0() { return cIfKeyword_0; }
+
+ //event+=STRING
+ public Assignment getEventAssignment_1() { return cEventAssignment_1; }
+
+ //STRING
+ public RuleCall getEventSTRINGTerminalRuleCall_1_0() { return cEventSTRINGTerminalRuleCall_1_0; }
+
+ //("and" event+=STRING)*
+ public Group getGroup_2() { return cGroup_2; }
+
+ //"and"
+ public Keyword getAndKeyword_2_0() { return cAndKeyword_2_0; }
+
+ //event+=STRING
+ public Assignment getEventAssignment_2_1() { return cEventAssignment_2_1; }
+
+ //STRING
+ public RuleCall getEventSTRINGTerminalRuleCall_2_1_0() { return cEventSTRINGTerminalRuleCall_2_1_0; }
+ }
+ public class WhileElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.papyrus.requirements.sysml14.BoilerplateText.While");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Keyword cWhileKeyword_0 = (Keyword)cGroup.eContents().get(0);
+ private final Assignment cStateAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final RuleCall cStateSTRINGTerminalRuleCall_1_0 = (RuleCall)cStateAssignment_1.eContents().get(0);
+
+ //While:
+ // "while" state=STRING;
+ @Override public ParserRule getRule() { return rule; }
+
+ //"while" state=STRING
+ public Group getGroup() { return cGroup; }
+
+ //"while"
+ public Keyword getWhileKeyword_0() { return cWhileKeyword_0; }
+
+ //state=STRING
+ public Assignment getStateAssignment_1() { return cStateAssignment_1; }
+
+ //STRING
+ public RuleCall getStateSTRINGTerminalRuleCall_1_0() { return cStateSTRINGTerminalRuleCall_1_0; }
+ }
+ public class PredicateElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.papyrus.requirements.sysml14.BoilerplateText.Predicate");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final RuleCall cShallParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+ private final RuleCall cShallNotParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+ private final RuleCall cShallAllowParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
+ private final RuleCall cShallNotAllowParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
+
+ //Predicate:
+ // Shall | ShallNot | ShallAllow | ShallNotAllow;
+ @Override public ParserRule getRule() { return rule; }
+
+ //Shall | ShallNot | ShallAllow | ShallNotAllow
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //Shall
+ public RuleCall getShallParserRuleCall_0() { return cShallParserRuleCall_0; }
+
+ //ShallNot
+ public RuleCall getShallNotParserRuleCall_1() { return cShallNotParserRuleCall_1; }
+
+ //ShallAllow
+ public RuleCall getShallAllowParserRuleCall_2() { return cShallAllowParserRuleCall_2; }
+
+ //ShallNotAllow
+ public RuleCall getShallNotAllowParserRuleCall_3() { return cShallNotAllowParserRuleCall_3; }
+ }
+ public class ShallNotAllowElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.papyrus.requirements.sysml14.BoilerplateText.ShallNotAllow");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Keyword cShallKeyword_0 = (Keyword)cGroup.eContents().get(0);
+ private final Keyword cNotKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Keyword cAllowKeyword_2 = (Keyword)cGroup.eContents().get(2);
+ private final Alternatives cAlternatives_3 = (Alternatives)cGroup.eContents().get(3);
+ private final Assignment cActionAssignment_3_0 = (Assignment)cAlternatives_3.eContents().get(0);
+ private final RuleCall cActionSTRINGTerminalRuleCall_3_0_0 = (RuleCall)cActionAssignment_3_0.eContents().get(0);
+ private final Group cGroup_3_1 = (Group)cAlternatives_3.eContents().get(1);
+ private final Assignment cEntityAssignment_3_1_0 = (Assignment)cGroup_3_1.eContents().get(0);
+ private final RuleCall cEntitySTRINGTerminalRuleCall_3_1_0_0 = (RuleCall)cEntityAssignment_3_1_0.eContents().get(0);
+ private final Keyword cToKeyword_3_1_1 = (Keyword)cGroup_3_1.eContents().get(1);
+ private final Assignment cActionPerformedByEntityAssignment_3_1_2 = (Assignment)cGroup_3_1.eContents().get(2);
+ private final RuleCall cActionPerformedByEntitySTRINGTerminalRuleCall_3_1_2_0 = (RuleCall)cActionPerformedByEntityAssignment_3_1_2.eContents().get(0);
+
+ //ShallNotAllow:
+ // "shall" -> "not" -> "allow" (action=STRING | entity=STRING "to" actionPerformedByEntity=STRING);
+ @Override public ParserRule getRule() { return rule; }
+
+ //"shall" -> "not" -> "allow" (action=STRING | entity=STRING "to" actionPerformedByEntity=STRING)
+ public Group getGroup() { return cGroup; }
+
+ //"shall"
+ public Keyword getShallKeyword_0() { return cShallKeyword_0; }
+
+ //-> "not"
+ public Keyword getNotKeyword_1() { return cNotKeyword_1; }
+
+ //-> "allow"
+ public Keyword getAllowKeyword_2() { return cAllowKeyword_2; }
+
+ //action=STRING | entity=STRING "to" actionPerformedByEntity=STRING
+ public Alternatives getAlternatives_3() { return cAlternatives_3; }
+
+ //action=STRING
+ public Assignment getActionAssignment_3_0() { return cActionAssignment_3_0; }
+
+ //STRING
+ public RuleCall getActionSTRINGTerminalRuleCall_3_0_0() { return cActionSTRINGTerminalRuleCall_3_0_0; }
+
+ //entity=STRING "to" actionPerformedByEntity=STRING
+ public Group getGroup_3_1() { return cGroup_3_1; }
+
+ //entity=STRING
+ public Assignment getEntityAssignment_3_1_0() { return cEntityAssignment_3_1_0; }
+
+ //STRING
+ public RuleCall getEntitySTRINGTerminalRuleCall_3_1_0_0() { return cEntitySTRINGTerminalRuleCall_3_1_0_0; }
+
+ //"to"
+ public Keyword getToKeyword_3_1_1() { return cToKeyword_3_1_1; }
+
+ //actionPerformedByEntity=STRING
+ public Assignment getActionPerformedByEntityAssignment_3_1_2() { return cActionPerformedByEntityAssignment_3_1_2; }
+
+ //STRING
+ public RuleCall getActionPerformedByEntitySTRINGTerminalRuleCall_3_1_2_0() { return cActionPerformedByEntitySTRINGTerminalRuleCall_3_1_2_0; }
+ }
+ public class ShallAllowElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.papyrus.requirements.sysml14.BoilerplateText.ShallAllow");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Keyword cShallKeyword_0 = (Keyword)cGroup.eContents().get(0);
+ private final Keyword cAllowKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Alternatives cAlternatives_2 = (Alternatives)cGroup.eContents().get(2);
+ private final Assignment cActionAssignment_2_0 = (Assignment)cAlternatives_2.eContents().get(0);
+ private final RuleCall cActionSTRINGTerminalRuleCall_2_0_0 = (RuleCall)cActionAssignment_2_0.eContents().get(0);
+ private final Group cGroup_2_1 = (Group)cAlternatives_2.eContents().get(1);
+ private final Assignment cEntityAssignment_2_1_0 = (Assignment)cGroup_2_1.eContents().get(0);
+ private final RuleCall cEntitySTRINGTerminalRuleCall_2_1_0_0 = (RuleCall)cEntityAssignment_2_1_0.eContents().get(0);
+ private final Keyword cToKeyword_2_1_1 = (Keyword)cGroup_2_1.eContents().get(1);
+ private final Assignment cActionPerformedByEntityAssignment_2_1_2 = (Assignment)cGroup_2_1.eContents().get(2);
+ private final RuleCall cActionPerformedByEntitySTRINGTerminalRuleCall_2_1_2_0 = (RuleCall)cActionPerformedByEntityAssignment_2_1_2.eContents().get(0);
+
+ //ShallAllow:
+ // "shall" -> "allow" (action=STRING | entity=STRING "to" actionPerformedByEntity=STRING);
+ @Override public ParserRule getRule() { return rule; }
+
+ //"shall" -> "allow" (action=STRING | entity=STRING "to" actionPerformedByEntity=STRING)
+ public Group getGroup() { return cGroup; }
+
+ //"shall"
+ public Keyword getShallKeyword_0() { return cShallKeyword_0; }
+
+ //-> "allow"
+ public Keyword getAllowKeyword_1() { return cAllowKeyword_1; }
+
+ //action=STRING | entity=STRING "to" actionPerformedByEntity=STRING
+ public Alternatives getAlternatives_2() { return cAlternatives_2; }
+
+ //action=STRING
+ public Assignment getActionAssignment_2_0() { return cActionAssignment_2_0; }
+
+ //STRING
+ public RuleCall getActionSTRINGTerminalRuleCall_2_0_0() { return cActionSTRINGTerminalRuleCall_2_0_0; }
+
+ //entity=STRING "to" actionPerformedByEntity=STRING
+ public Group getGroup_2_1() { return cGroup_2_1; }
+
+ //entity=STRING
+ public Assignment getEntityAssignment_2_1_0() { return cEntityAssignment_2_1_0; }
+
+ //STRING
+ public RuleCall getEntitySTRINGTerminalRuleCall_2_1_0_0() { return cEntitySTRINGTerminalRuleCall_2_1_0_0; }
+
+ //"to"
+ public Keyword getToKeyword_2_1_1() { return cToKeyword_2_1_1; }
+
+ //actionPerformedByEntity=STRING
+ public Assignment getActionPerformedByEntityAssignment_2_1_2() { return cActionPerformedByEntityAssignment_2_1_2; }
+
+ //STRING
+ public RuleCall getActionPerformedByEntitySTRINGTerminalRuleCall_2_1_2_0() { return cActionPerformedByEntitySTRINGTerminalRuleCall_2_1_2_0; }
+ }
+ public class ShallNotElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.papyrus.requirements.sysml14.BoilerplateText.ShallNot");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Keyword cShallKeyword_0 = (Keyword)cGroup.eContents().get(0);
+ private final Keyword cNotKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
+ private final Keyword cBeKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
+ private final Keyword cAbleKeyword_2_1 = (Keyword)cGroup_2.eContents().get(1);
+ private final Keyword cToKeyword_2_2 = (Keyword)cGroup_2.eContents().get(2);
+ private final Assignment cActionAssignment_3 = (Assignment)cGroup.eContents().get(3);
+ private final RuleCall cActionSTRINGTerminalRuleCall_3_0 = (RuleCall)cActionAssignment_3.eContents().get(0);
+
+ //ShallNot:
+ // "shall" -> "not" ("be" -> "able" -> "to")? action=STRING;
+ @Override public ParserRule getRule() { return rule; }
+
+ //"shall" -> "not" ("be" -> "able" -> "to")? action=STRING
+ public Group getGroup() { return cGroup; }
+
+ //"shall"
+ public Keyword getShallKeyword_0() { return cShallKeyword_0; }
+
+ //-> "not"
+ public Keyword getNotKeyword_1() { return cNotKeyword_1; }
+
+ //("be" -> "able" -> "to")?
+ public Group getGroup_2() { return cGroup_2; }
+
+ //"be"
+ public Keyword getBeKeyword_2_0() { return cBeKeyword_2_0; }
+
+ //-> "able"
+ public Keyword getAbleKeyword_2_1() { return cAbleKeyword_2_1; }
+
+ //-> "to"
+ public Keyword getToKeyword_2_2() { return cToKeyword_2_2; }
+
+ //action=STRING
+ public Assignment getActionAssignment_3() { return cActionAssignment_3; }
+
+ //STRING
+ public RuleCall getActionSTRINGTerminalRuleCall_3_0() { return cActionSTRINGTerminalRuleCall_3_0; }
+ }
+ public class ShallElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.papyrus.requirements.sysml14.BoilerplateText.Shall");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Keyword cShallKeyword_0 = (Keyword)cGroup.eContents().get(0);
+ private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
+ private final Group cGroup_1_0 = (Group)cGroup_1.eContents().get(0);
+ private final Keyword cBeKeyword_1_0_0 = (Keyword)cGroup_1_0.eContents().get(0);
+ private final Keyword cAbleKeyword_1_0_1 = (Keyword)cGroup_1_0.eContents().get(1);
+ private final Keyword cToKeyword_1_0_2 = (Keyword)cGroup_1_0.eContents().get(2);
+ private final Assignment cActionAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cActionSTRINGTerminalRuleCall_2_0 = (RuleCall)cActionAssignment_2.eContents().get(0);
+
+ //Shall:
+ // "shall" -> ("be" -> "able" -> "to")? action=STRING;
+ @Override public ParserRule getRule() { return rule; }
+
+ //"shall" -> ("be" -> "able" -> "to")? action=STRING
+ public Group getGroup() { return cGroup; }
+
+ //"shall"
+ public Keyword getShallKeyword_0() { return cShallKeyword_0; }
+
+ //-> ("be" -> "able" -> "to")?
+ public Group getGroup_1() { return cGroup_1; }
+
+ //"be" -> "able" -> "to"
+ public Group getGroup_1_0() { return cGroup_1_0; }
+
+ //"be"
+ public Keyword getBeKeyword_1_0_0() { return cBeKeyword_1_0_0; }
+
+ //-> "able"
+ public Keyword getAbleKeyword_1_0_1() { return cAbleKeyword_1_0_1; }
+
+ //-> "to"
+ public Keyword getToKeyword_1_0_2() { return cToKeyword_1_0_2; }
+
+ //action=STRING
+ public Assignment getActionAssignment_2() { return cActionAssignment_2; }
+
+ //STRING
+ public RuleCall getActionSTRINGTerminalRuleCall_2_0() { return cActionSTRINGTerminalRuleCall_2_0; }
+ }
+
+
+ private final ModelElements pModel;
+ private final RequirementElements pRequirement;
+ private final SubjectElements pSubject;
+ private final PrefixElements pPrefix;
+ private final IfElements pIf;
+ private final WhileElements pWhile;
+ private final PredicateElements pPredicate;
+ private final ShallNotAllowElements pShallNotAllow;
+ private final ShallAllowElements pShallAllow;
+ private final ShallNotElements pShallNot;
+ private final ShallElements pShall;
+
+ private final Grammar grammar;
+
+ private final TerminalsGrammarAccess gaTerminals;
+
+ @Inject
+ public BoilerplateTextGrammarAccess(GrammarProvider grammarProvider,
+ TerminalsGrammarAccess gaTerminals) {
+ this.grammar = internalFindGrammar(grammarProvider);
+ this.gaTerminals = gaTerminals;
+ this.pModel = new ModelElements();
+ this.pRequirement = new RequirementElements();
+ this.pSubject = new SubjectElements();
+ this.pPrefix = new PrefixElements();
+ this.pIf = new IfElements();
+ this.pWhile = new WhileElements();
+ this.pPredicate = new PredicateElements();
+ this.pShallNotAllow = new ShallNotAllowElements();
+ this.pShallAllow = new ShallAllowElements();
+ this.pShallNot = new ShallNotElements();
+ this.pShall = new ShallElements();
+ }
+
+ protected Grammar internalFindGrammar(GrammarProvider grammarProvider) {
+ Grammar grammar = grammarProvider.getGrammar(this);
+ while (grammar != null) {
+ if ("org.eclipse.papyrus.requirements.sysml14.BoilerplateText".equals(grammar.getName())) {
+ return grammar;
+ }
+ List<Grammar> grammars = grammar.getUsedGrammars();
+ if (!grammars.isEmpty()) {
+ grammar = grammars.iterator().next();
+ } else {
+ return null;
+ }
+ }
+ return grammar;
+ }
+
+ @Override
+ public Grammar getGrammar() {
+ return grammar;
+ }
+
+
+ public TerminalsGrammarAccess getTerminalsGrammarAccess() {
+ return gaTerminals;
+ }
+
+
+ //Model:
+ // model=Requirement;
+ public ModelElements getModelAccess() {
+ return pModel;
+ }
+
+ public ParserRule getModelRule() {
+ return getModelAccess().getRule();
+ }
+
+ //Requirement:
+ // (prefix=Prefix ",")?
+ // system=Subject
+ // predicate=Predicate;
+ public RequirementElements getRequirementAccess() {
+ return pRequirement;
+ }
+
+ public ParserRule getRequirementRule() {
+ return getRequirementAccess().getRule();
+ }
+
+ //Subject:
+ // system=STRING;
+ public SubjectElements getSubjectAccess() {
+ return pSubject;
+ }
+
+ public ParserRule getSubjectRule() {
+ return getSubjectAccess().getRule();
+ }
+
+ //Prefix:
+ // If | While;
+ public PrefixElements getPrefixAccess() {
+ return pPrefix;
+ }
+
+ public ParserRule getPrefixRule() {
+ return getPrefixAccess().getRule();
+ }
+
+ //If:
+ // "if" event+=STRING ("and" event+=STRING)*;
+ public IfElements getIfAccess() {
+ return pIf;
+ }
+
+ public ParserRule getIfRule() {
+ return getIfAccess().getRule();
+ }
+
+ //While:
+ // "while" state=STRING;
+ public WhileElements getWhileAccess() {
+ return pWhile;
+ }
+
+ public ParserRule getWhileRule() {
+ return getWhileAccess().getRule();
+ }
+
+ //Predicate:
+ // Shall | ShallNot | ShallAllow | ShallNotAllow;
+ public PredicateElements getPredicateAccess() {
+ return pPredicate;
+ }
+
+ public ParserRule getPredicateRule() {
+ return getPredicateAccess().getRule();
+ }
+
+ //ShallNotAllow:
+ // "shall" -> "not" -> "allow" (action=STRING | entity=STRING "to" actionPerformedByEntity=STRING);
+ public ShallNotAllowElements getShallNotAllowAccess() {
+ return pShallNotAllow;
+ }
+
+ public ParserRule getShallNotAllowRule() {
+ return getShallNotAllowAccess().getRule();
+ }
+
+ //ShallAllow:
+ // "shall" -> "allow" (action=STRING | entity=STRING "to" actionPerformedByEntity=STRING);
+ public ShallAllowElements getShallAllowAccess() {
+ return pShallAllow;
+ }
+
+ public ParserRule getShallAllowRule() {
+ return getShallAllowAccess().getRule();
+ }
+
+ //ShallNot:
+ // "shall" -> "not" ("be" -> "able" -> "to")? action=STRING;
+ public ShallNotElements getShallNotAccess() {
+ return pShallNot;
+ }
+
+ public ParserRule getShallNotRule() {
+ return getShallNotAccess().getRule();
+ }
+
+ //Shall:
+ // "shall" -> ("be" -> "able" -> "to")? action=STRING;
+ public ShallElements getShallAccess() {
+ return pShall;
+ }
+
+ public ParserRule getShallRule() {
+ return getShallAccess().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:
+ // '"' ('\\' . | !('\\' | '"'))* '"' | "'" ('\\' . | !('\\' | "'"))* "'";
+ 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/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/validation/AbstractBoilerplateTextValidator.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/validation/AbstractBoilerplateTextValidator.java
new file mode 100644
index 0000000..71c0d2a
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src-gen/org/eclipse/papyrus/requirements/sysml14/validation/AbstractBoilerplateTextValidator.java
@@ -0,0 +1,34 @@
+/*****************************************************************************
+ * Copyright (c) 2017 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *
+ * Mauricio Alferez (mauricio.alferez@cea.fr) CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+/*
+ * generated by Xtext 2.11.0
+ */
+package org.eclipse.papyrus.requirements.sysml14.validation;
+
+import java.util.ArrayList;
+import java.util.List;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.xtext.validation.AbstractDeclarativeValidator;
+
+public abstract class AbstractBoilerplateTextValidator extends AbstractDeclarativeValidator {
+
+ @Override
+ protected List<EPackage> getEPackages() {
+ List<EPackage> result = new ArrayList<EPackage>();
+ result.add(org.eclipse.papyrus.requirements.sysml14.boilerplateText.BoilerplateTextPackage.eINSTANCE);
+ return result;
+ }
+
+}
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src/org/eclipse/papyrus/requirements/sysml14/BoilerplateText.xtext b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src/org/eclipse/papyrus/requirements/sysml14/BoilerplateText.xtext
new file mode 100644
index 0000000..7fad878
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src/org/eclipse/papyrus/requirements/sysml14/BoilerplateText.xtext
@@ -0,0 +1,52 @@
+/*****************************************************************************
+ * Copyright (c) 2017 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *
+ * Mauricio Alferez (mauricio.alferez@cea.fr) CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+grammar org.eclipse.papyrus.requirements.sysml14.BoilerplateText with org.eclipse.xtext.common.Terminals
+
+generate boilerplateText "http://www.eclipse.org/papyrus/requirements/sysml14/BoilerplateText"
+
+Model:
+ model=Requirement;
+
+Requirement:
+ (prefix=Prefix ",")?
+ system=Subject
+ predicate=Predicate;
+
+Subject:
+ system=STRING;
+
+Prefix:
+ If | While;
+
+If:
+ "if" event+=STRING ("and" event+=STRING)*;
+
+While:
+ "while" state=STRING;
+
+Predicate:
+ Shall | ShallNot | ShallAllow | ShallNotAllow;
+
+ShallNotAllow:
+ "shall" -> "not" -> "allow" (action=STRING | (entity=STRING "to" actionPerformedByEntity=STRING));
+
+ShallAllow:
+ "shall" -> "allow" (action=STRING | (entity=STRING "to" actionPerformedByEntity=STRING));
+
+ShallNot:
+ "shall" -> "not" ("be" -> "able" -> "to")? action=STRING;
+
+Shall:
+ "shall" -> ("be" -> "able" -> "to")? action=STRING;
\ No newline at end of file
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src/org/eclipse/papyrus/requirements/sysml14/BoilerplateTextRuntimeModule.xtend b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src/org/eclipse/papyrus/requirements/sysml14/BoilerplateTextRuntimeModule.xtend
new file mode 100644
index 0000000..9721ea1
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src/org/eclipse/papyrus/requirements/sysml14/BoilerplateTextRuntimeModule.xtend
@@ -0,0 +1,11 @@
+/*
+ * generated by Xtext 2.10.0
+ */
+package org.eclipse.papyrus.requirements.sysml14
+
+
+/**
+ * Use this class to register components to be used at runtime / without the Equinox extension registry.
+ */
+class BoilerplateTextRuntimeModule extends AbstractBoilerplateTextRuntimeModule {
+}
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src/org/eclipse/papyrus/requirements/sysml14/BoilerplateTextStandaloneSetup.xtend b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src/org/eclipse/papyrus/requirements/sysml14/BoilerplateTextStandaloneSetup.xtend
new file mode 100644
index 0000000..99870b7
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src/org/eclipse/papyrus/requirements/sysml14/BoilerplateTextStandaloneSetup.xtend
@@ -0,0 +1,15 @@
+/*
+ * generated by Xtext 2.10.0
+ */
+package org.eclipse.papyrus.requirements.sysml14
+
+
+/**
+ * Initialization support for running Xtext languages without Equinox extension registry.
+ */
+class BoilerplateTextStandaloneSetup extends BoilerplateTextStandaloneSetupGenerated {
+
+ def static void doSetup() {
+ new BoilerplateTextStandaloneSetup().createInjectorAndDoEMFRegistration()
+ }
+}
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src/org/eclipse/papyrus/requirements/sysml14/GenerateBoilerplateText.mwe2 b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src/org/eclipse/papyrus/requirements/sysml14/GenerateBoilerplateText.mwe2
new file mode 100644
index 0000000..db58585
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src/org/eclipse/papyrus/requirements/sysml14/GenerateBoilerplateText.mwe2
@@ -0,0 +1,66 @@
+/*****************************************************************************
+ * Copyright (c) 2017 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *
+ * Mauricio Alferez (mauricio.alferez@cea.fr) CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+module org.eclipse.papyrus.requirements.sysml14.GenerateBoilerplateText
+
+import org.eclipse.xtext.xtext.generator.*
+import org.eclipse.xtext.xtext.generator.model.project.*
+
+var rootPath = ".."
+
+Workflow {
+
+ component = XtextGenerator {
+ configuration = {
+ project = StandardProjectConfig {
+ baseName = "org.eclipse.papyrus.requirements.sysml14.boilerplatetext"
+ rootPath = rootPath
+ eclipsePlugin = {
+ enabled = true
+ }
+ createEclipseMetaData = true
+ }
+ code = {
+ encoding = "windows-1252"
+ fileHeader =
+"/*****************************************************************************
+ * Copyright (c) 2017 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *
+ * Mauricio Alferez (mauricio.alferez@cea.fr) CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+/*\n * generated by Xtext \${version}\n */"
+ }
+ }
+ language = StandardLanguage {
+ name = "org.eclipse.papyrus.requirements.sysml14.BoilerplateText"
+ fileExtensions = "boil"
+
+ serializer = {
+ generateStub = false
+ }
+ validator = {
+ // composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator"
+ }
+ }
+ }
+}
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src/org/eclipse/papyrus/requirements/sysml14/generator/BoilerplateTextGenerator.xtend b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src/org/eclipse/papyrus/requirements/sysml14/generator/BoilerplateTextGenerator.xtend
new file mode 100644
index 0000000..bcda647
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src/org/eclipse/papyrus/requirements/sysml14/generator/BoilerplateTextGenerator.xtend
@@ -0,0 +1,25 @@
+/*
+ * generated by Xtext 2.10.0
+ */
+package org.eclipse.papyrus.requirements.sysml14.generator
+
+import org.eclipse.emf.ecore.resource.Resource
+import org.eclipse.xtext.generator.AbstractGenerator
+import org.eclipse.xtext.generator.IFileSystemAccess2
+import org.eclipse.xtext.generator.IGeneratorContext
+
+/**
+ * Generates code from your model files on save.
+ *
+ * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#code-generation
+ */
+class BoilerplateTextGenerator extends AbstractGenerator {
+
+ override void doGenerate(Resource resource, IFileSystemAccess2 fsa, IGeneratorContext context) {
+// fsa.generateFile('greetings.txt', 'People to greet: ' +
+// resource.allContents
+// .filter(typeof(Greeting))
+// .map[name]
+// .join(', '))
+ }
+}
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src/org/eclipse/papyrus/requirements/sysml14/scoping/BoilerplateTextScopeProvider.xtend b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src/org/eclipse/papyrus/requirements/sysml14/scoping/BoilerplateTextScopeProvider.xtend
new file mode 100644
index 0000000..d17a3b9
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src/org/eclipse/papyrus/requirements/sysml14/scoping/BoilerplateTextScopeProvider.xtend
@@ -0,0 +1,15 @@
+/*
+ * generated by Xtext 2.10.0
+ */
+package org.eclipse.papyrus.requirements.sysml14.scoping
+
+
+/**
+ * This class contains custom scoping description.
+ *
+ * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#scoping
+ * on how and when to use it.
+ */
+class BoilerplateTextScopeProvider extends AbstractBoilerplateTextScopeProvider {
+
+}
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src/org/eclipse/papyrus/requirements/sysml14/validation/BoilerplateTextValidator.xtend b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src/org/eclipse/papyrus/requirements/sysml14/validation/BoilerplateTextValidator.xtend
new file mode 100644
index 0000000..dbfacb7
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src/org/eclipse/papyrus/requirements/sysml14/validation/BoilerplateTextValidator.xtend
@@ -0,0 +1,25 @@
+/*
+ * generated by Xtext 2.10.0
+ */
+package org.eclipse.papyrus.requirements.sysml14.validation
+
+
+/**
+ * This class contains custom validation rules.
+ *
+ * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#validation
+ */
+class BoilerplateTextValidator extends AbstractBoilerplateTextValidator {
+
+// public static val INVALID_NAME = 'invalidName'
+//
+// @Check
+// def checkGreetingStartsWithCapital(Greeting greeting) {
+// if (!Character.isUpperCase(greeting.name.charAt(0))) {
+// warning('Name should start with a capital',
+// BoilerplateTextPackage.Literals.GREETING__NAME,
+// INVALID_NAME)
+// }
+// }
+
+}
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src/org/eclipse/papyrus/requirements/sysml14/visitor/BoilerplateTextKeywords.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src/org/eclipse/papyrus/requirements/sysml14/visitor/BoilerplateTextKeywords.java
new file mode 100644
index 0000000..9d248e9
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src/org/eclipse/papyrus/requirements/sysml14/visitor/BoilerplateTextKeywords.java
@@ -0,0 +1,29 @@
+/*****************************************************************************
+ * Copyright (c) 2017 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *
+ * Mauricio Alferez (mauricio.alferez@cea.fr) CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.requirements.sysml14.visitor;
+
+public interface BoilerplateTextKeywords {
+ static final String WHILE = " while ";
+ static final String IF ="if ";
+ static final String AND = " and ";
+ static final String SHALLNOTALLOW = " shall not allow ";
+ static final String SHALLALLOW = " shall allow ";
+ static final String SHALLNOT = " shall not ";
+ static final String SHALL = " shall ";
+ static final String TO = " to ";
+ static final String QUOTE = "\"";
+ static final String END_OF_CONDITIONAL_CLAUSE = ", ";
+}
\ No newline at end of file
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src/org/eclipse/papyrus/requirements/sysml14/visitor/RequirementsPrinter.java b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src/org/eclipse/papyrus/requirements/sysml14/visitor/RequirementsPrinter.java
new file mode 100644
index 0000000..ac99745
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/src/org/eclipse/papyrus/requirements/sysml14/visitor/RequirementsPrinter.java
@@ -0,0 +1,132 @@
+/*****************************************************************************
+ * Copyright (c) 2017 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *
+ * Mauricio Alferez (mauricio.alferez@cea.fr) CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.requirements.sysml14.visitor;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.common.util.TreeIterator;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.If;
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.Model;
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.Predicate;
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.Prefix;
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.Requirement;
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.Shall;
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.ShallAllow;
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.ShallNot;
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.ShallNotAllow;
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.Subject;
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.While;
+import org.eclipse.papyrus.requirements.sysml14.boilerplateText.util.BoilerplateTextSwitch;
+
+public class RequirementsPrinter extends BoilerplateTextSwitch<Object> implements BoilerplateTextKeywords {
+
+ StringBuffer sb = new StringBuffer();
+
+ @Override
+ public String caseRequirement(Requirement object) {
+ return "";
+ }
+
+ @Override
+ public String casePrefix(Prefix object) {
+ return "";
+ }
+
+ @Override
+ public String caseIf(If object) {
+ StringBuffer sb = new StringBuffer();
+ Iterator<String> it = object.getEvent().iterator();
+ sb.append(IF);
+ if (it.hasNext()) {
+ sb.append(Quote(it.next()));
+ }
+ while (it.hasNext()) {
+ sb.append(AND + Quote(it.next()));
+ }
+ return sb.toString() + END_OF_CONDITIONAL_CLAUSE;
+ }
+
+ @Override
+ public String caseWhile(While object) {
+ return WHILE + Quote(object.getState()) + END_OF_CONDITIONAL_CLAUSE;
+ }
+
+ @Override
+ public String caseSubject(Subject object) {
+ return Quote(object.getSystem());
+ }
+
+ @Override
+ public String casePredicate(Predicate object) {
+ return "";
+ }
+
+ @Override
+ public String caseShallNotAllow(ShallNotAllow object) {
+ StringBuffer sb = new StringBuffer();
+ sb.append(SHALLNOTALLOW);
+ if (null != object.getAction()) {
+ sb.append(Quote(object.getAction()));
+ }
+ if (null != object.getEntity()) {
+ sb.append(Quote(object.getEntity()) + TO + Quote(object.getActionPerformedByEntity()));
+ }
+ return sb.toString();
+ }
+
+ @Override
+ public String caseShallAllow(ShallAllow object) {
+ StringBuffer sb = new StringBuffer();
+ sb.append(SHALLALLOW);
+ if (null != object.getAction()) {
+ sb.append(Quote(object.getAction()));
+ }
+ if (null != object.getEntity()) {
+ sb.append(Quote(object.getEntity()) + TO + Quote(object.getActionPerformedByEntity()));
+ }
+ return sb.toString();
+ }
+
+ @Override
+ public String caseShallNot(ShallNot object) {
+ return SHALLNOT + Quote(object.getAction());
+ }
+
+ @Override
+ public String caseShall(Shall object) {
+ return SHALL + Quote(object.getAction());
+ }
+
+ @Override
+ public String defaultCase(EObject object) {
+ return "";
+ }
+
+ public String print(Model xtextModel) {
+ TreeIterator<Object> it = EcoreUtil.getAllProperContents(xtextModel, false);
+ while (it.hasNext()) {
+ EObject token = (EObject) it.next();
+ sb.append(this.doSwitch(token));
+ }
+ return this.sb.toString();
+ }
+
+ public static String Quote(String str) {
+ return QUOTE + str + QUOTE;
+ }
+}
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/xtend-gen/org/eclipse/papyrus/requirements/sysml14/.gitignore b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/xtend-gen/org/eclipse/papyrus/requirements/sysml14/.gitignore
new file mode 100644
index 0000000..7ac7183
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/xtend-gen/org/eclipse/papyrus/requirements/sysml14/.gitignore
@@ -0,0 +1,4 @@
+/.BoilerplateTextRuntimeModule.java._trace
+/.BoilerplateTextStandaloneSetup.java._trace
+/BoilerplateTextRuntimeModule.java
+/BoilerplateTextStandaloneSetup.java
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/xtend-gen/org/eclipse/papyrus/requirements/sysml14/generator/.gitignore b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/xtend-gen/org/eclipse/papyrus/requirements/sysml14/generator/.gitignore
new file mode 100644
index 0000000..6ab19c7
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/xtend-gen/org/eclipse/papyrus/requirements/sysml14/generator/.gitignore
@@ -0,0 +1,2 @@
+/.BoilerplateTextGenerator.java._trace
+/BoilerplateTextGenerator.java
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/xtend-gen/org/eclipse/papyrus/requirements/sysml14/scoping/.gitignore b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/xtend-gen/org/eclipse/papyrus/requirements/sysml14/scoping/.gitignore
new file mode 100644
index 0000000..b9c0434
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/xtend-gen/org/eclipse/papyrus/requirements/sysml14/scoping/.gitignore
@@ -0,0 +1,2 @@
+/.BoilerplateTextScopeProvider.java._trace
+/BoilerplateTextScopeProvider.java
diff --git a/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/xtend-gen/org/eclipse/papyrus/requirements/sysml14/validation/.gitignore b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/xtend-gen/org/eclipse/papyrus/requirements/sysml14/validation/.gitignore
new file mode 100644
index 0000000..a286313
--- /dev/null
+++ b/plugins/sysml14/org.eclipse.papyrus.requirements.sysml14.boilerplatetext/xtend-gen/org/eclipse/papyrus/requirements/sysml14/validation/.gitignore
@@ -0,0 +1,2 @@
+/.BoilerplateTextValidator.java._trace
+/BoilerplateTextValidator.java